Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [c] dev c++ программа-записная книжка, срок - сегодня-завтра 
:(
    Опции темы
Михаил14
Дата 12.4.2012, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 8.4.2012

Репутация: нет
Всего: нет



Просьба помочь в задачке записной книжонке.Я довольно подробно описал что не получается в коментариях.Большая просьба - тут выходит такой баг даже еслиб работало - что заходя например в функцию удаления контактов и выбирая там среди цифр мы теряем доступ к функции главного меню т.е. в каждой функции нужно что-то типа команды выхода (допустим /leave или -leave) либо наоборот команда вызывающая меню либо наоборот сделать вызов функция по командам типа -menu -addcontact и т.д.     
Я пока не пресдтавляю как это обыграть....
# include <stdio.h>
# include <string.h>
# include <conio.h>
struct AdressBook  ///структура
    {
           char Name[50];
           char Surname[50];
           char mobile[25];
    };
void menu() ///меню
{
     printf ("Adressbook v.0.47 fixed");
     printf ("Now you are using the multifunctional address book");
     printf ("Enter command /help to see tips");
     printf ("1. view adress book\n2. add new contacts\n3. delete contacts\n4. help\n5. exit");
    
}
void view_contacts () ///функция просмотра контактов
{
     int a, i, n=0;
     scanf ("%d",&a);
     for (i=0;i<(n+1);i++)
     {
             if (A[i].mobile!=10101)
             {
                    printf ("Name:%s; Surname:%s; mob:%ld\n",A[i].Name,A[i].Surname,A[i].mobile);
             }
                                 
     }
}
void new_contacts () ///функция добавления контактов
{                              ///тут нужна роверка на отсутствие цифр и символов в имени
     int n=1;               ///(просьба тут подсказать кусок кода,который нужно добавить в функцию добавления контактов
     n=n+1;                               ///чтоб принимало номера по форме:либо 12 цифр начиная с плюса(+),либо 11 цифр                                    
     printf("enter Name; Surname; mobile");       ///без букв и символов кроме "+"
     scanf("%s%s%s",&A[n].Name,&A[n].Surname,&A[n].mobile);
}   
void delete_contacts () ///функция удаления контактов
{
     int a=0, i, m=0;                                    
     for (i=0;i<(n+1);i++)
     {
            printf ("%d)Name:%s; Surname:%s; mob:%ld\n",(i+1),A[i].Name,A[i].Surname,A[i].mobile);
            printf ("do you want to delete a contact by\n1. name\n2. surname\n3. phone number\n4.contact number?\n5. all infomation");
            scanf ("%d",&a);               
            switch(a)
            {
                    case 1:   printf ("what number of contact you want to delete");
                              printf ("Name:%s\n",.Name,A[i]);
                              scanf ("%d",&m);
                              A[m-1].mobile=10101;   
                              break;
                    case 2:   printf ("what number of contact you want to delete");
                              printf ("Surname:%s\n",.Surname,A[i]);   
                              scanf ("%d",&m);
                              A[m-1].mobile=10101;  
                              break;  
                    case 3:   printf ("what number of contact you want to delete");
                              printf ("contact number\n",A[i]); 
                              scanf ("%d",&m);
                              A[m-1].mobile=10101;    
                    case 4:   printf ("what number of contact you want to delete");
                              printf ("mob:%s\n",.mobile);
                              scanf ("%d",&m);
                              A[m-1].mobile=10101;
                              break;
                    case 5:   printf ("what number of cntact you want to delete");
                              printf ("%d)Name:%s; Surname:%s; mob:%ld\n",(i+1),A[i].Name,A[i].Surname,A[i].mobile);
                              scanf ("%d",&m);
                              A[m-1].mobile=10101;
                              break;

             }
     }         
}
void quit () ///функция выхода
{
     int a=5,
     scanf ("%d",&a);   ///правилен ли тут выход
     if(a==5)
     {
     }exit 0;
}
void help () ///функция гид по программе
{                  
     int a=0;int b=0; 
     printf("1. Some tips about using Adressbook\n2. Some tips about mobile numbers\n3. Tip about exit"); 
     switch(a)
     {
            case 1:  printf ("Tip 1.1 : enter the number in the beginning of the string to take appropriate action"); 
                     printf ("Tip 1.2 : you can view,add,delete contacts");
                     printf ("Tip 1.3 : also you can leave programm\n*how you can do this you can read in 3rd tip*");
                     printf ("Tip 1.4 : you can delete contacts by name,surnames,numbers,or they numbers in Adressbook");                         
                     break;
            case 2:  printf ("tip 2.1 : You can enter only the numbers that correspond to the form +*-***-***-**-** or *-***-***-**-**");  
                     break;
            case 3:  printf ("Tip 3.1 If you want to quit programm enter 4 in mane menu");
                     printf ("*you must be sure that you want to leave programm because if you leave information wouldn`t be saved*"):
                     break;
     } 
}
int main ()
{
    int a, i;       
    AdressBook A[50];                    ///возможно стоит глобализовать объявденый массив?
    sprintf (A[0].Name,"%s","Þëèÿ");           ///первые 2 контакта(возможно их стоит перенести в другую функцию(добавление контактов)?)
    sprintf (A[0].Surname,"%s","Âàëåðèåâíà");
    sprintf (A[0].mobile=89636336934);
    sprintf (A[1].Name,"%s","Ãîãåí");
    sprintf (A[1].Surname,"%s","Ñîëíöåâ");
    sprintf (A[1].mobile=89637840754);
    menu();
    scanf("%d",a);
    switch(a)              /// реализация перехода по пунктам
    {                       ///функции идут по очереди,но нужно чтобы
        case 1: view_contacts();  ///использовать их по нажатию клавищы можно было в любое время
        break;
        case 2: new_contacts();
        break;
        case3: delete_contacts();
        break;
        case 4: help();
        break;
        case 5: quit();
        break;
    }
    getchar();
    scanf("%d",&A[i]);
    return 0;
}


Это сообщение отредактировал(а) Михаил14 - 12.4.2012, 13:06
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0400 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.