![]() |
|
Модераторы: Poseidon |
![]()
|
|
| Михаил14 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 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 |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |