| 
| 
 | Вопрос # 6 051/ вопрос закрыт / | 
 |  Доброго времени суток, уважаемые эксперты!Нужна программа-записная книжка.Суть программы - при компиляции выдаёт приветствие и список возможных дествий,а их всего 4:
 1)Посмотреть справочник.(там уже 1-2 контакта)
 2)Добавить контакт.
 3)удалить контакт.
 4)выйти.
 При нажатии соотв. цифры выдаёт то или иное.
 Основные проблемы:
 1)Нужно чтоб контакт добавлялся по имени(любые символы и цифры=)),по фамилии(аналогично с именем) и по номеру(желательно чтобы принимало два формата ввода -  +7******* и 8*******,а иначе просило переввести номер).
 2)В удалении контактов нужно вывести список и у меня тут не получается сделать функцию сортировки(поиска),чтобы удалить контакт с помощью неё,вписав номер,имя,фамилию или всё сразу
 3)Работаю над функцией помощь(help) инфа о которой будет выведена после приветствия и в которой будет разжёваны основы использования,но это последнее дело и тут впринципе всё понятно
 З.ы. просьба помочь,сам попутно делаю всё.
 З.з.ы.При работе буду  переписывать код в виде мейна с функциями,а не как щас(один большой мейн)
 Приложение:Переключить в обычный режим # include <stdio.h>int main (){int a, i, n=1, m=0;struct AdressBook{char Name[40];char Surname[80];long mobile;};AdressBook A[50];  A[0].mobile=79164253573;  A[1].mobile=79164260503;printf ("Adress book");while (a!=5){printf ("\nwhat do you want to do?\n1. see adress book\n2. add new name\n3. delete unit\n4.
sort\n5. exit");scanf ("%d",&a);if (a==1)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);if (a==2){n=n+1;printf("enter Name; Surname; mobile");scanf("%s%s%ld",&A[n].Name,&A[n].Surname,&A[n].mobile);}if (a==3){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 ("what number of unit you want to delete");scanf ("%d",&m);A[m-1].mobile=10101;}if (a==4){int OK=0; long q;while (!OK){OK=1;for(i=0;i<(n+1);i++)if (A[i].mobile>A[i+1].mobile){q=A[i].mobile;A[i].mobile=A[i+1].mobile;A[i+1].mobile=q;OK=0;}}for (i=0;i<(n+1);i++)printf ("Name:%s; Surname:%s; mob:%ld\n",A[i].Name,A[i].Surname,A[i].mobile); }}printf ("good bye");return 0;}
|  |   Вопрос задал: Эдик (статус: Посетитель)Вопрос отправлен: 6 апреля 2012, 17:50
 Состояние вопроса: закрыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 10; последнее сообщение — 11 апреля 2012, 19:06; участников в обсуждении: 2. 
|   | min@y™ (статус: Доктор наук), 6 апреля 2012, 20:14 [#1]:Код просто мегакрасивый! Особенно радует оригинальное форматирование, обилие комментариев, а также информативные имена переменных (A, i, n, m и т.п.). 
 Первый совет - естественно разбить всё на отдельные функции.
 
 Вообще, я, конечно, смогу написать такую программу, но только с нуля. Править ЭТО - нервы дороже.
 
 Вопрос к автору: а нафига это всё консольно? Почему не под Windows GUI, например на C++Builder?
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Эдик (статус: Посетитель), 7 апреля 2012, 13:39 [#2]:)) среда dev cpp - выбор препода |  
|   | min@y™ (статус: Доктор наук), 8 апреля 2012, 12:21 [#3]: Цитата (Эдик): Здраствуйте.Можете помочь в этом вопросе?Я совсем не уверен что успею это сделать
 
 Могу помочь, конечно. А чо мне за это будет?
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Эдик (статус: Посетитель), 8 апреля 2012, 13:45 [#4]:А что принимаете? |  
|   | min@y™ (статус: Доктор наук), 8 апреля 2012, 13:56 [#5]: Цитата (Эдик): А что принимаете?  Доллары США, евро, фунты стерлингов, российские рубли. Ну, в крайнем случае, гривны. Белорусских зайчиков не предлагать!
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Эдик (статус: Посетитель), 8 апреля 2012, 21:53 [#6]:Так для вас пустяковая тем более я вобще только какой-то бред не могу понять - это не мастера на дом вызывать чтоб он одну кнопку нажал |  
|   | min@y™ (статус: Доктор наук), 9 апреля 2012, 08:09 [#7]: Цитата (Эдик): Так для вас пустяковая тем более я вобще только какой-то бред не могу понять - это не мастера на дом вызывать чтоб он одну кнопку нажал  Ну и что ты предлагаешь?
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Эдик (статус: Посетитель), 10 апреля 2012, 19:30 [#8]:struct AdressBook; {
 char Name[60];
 char Surname[60];
 long mobile;
 }
 просто прошу сказать где в подобных конструкциях нужно ставить точку запятой в конце(:dd но где именно)
 А так же как можно работать со структурами в программе,разбитой на функции,если структура,объявленная в мейне "будет" только в нём
 |  
|   | min@y™ (статус: Доктор наук), 10 апреля 2012, 19:50 [#9]: typedef struct 
{
  char Name[60];
  char Surname[60];
  long mobile;
} TAddress; // может быть, так лучше будет?Цитата (Эдик): где в подобных конструкциях нужно ставить точку запятой в конце
 Судя по вопросу, С++ ты не знаешь. В очередной раз удивляюсь, как же я учился, когда интернета не было, а?
 
 Цитата (Эдик): А так же как можно работать со структурами в программе,разбитой на функции,если структура,объявленная в мейне "будет" только в нём  Сначала определиться надо с типами структур, объявить эти типы глобально, а потом написать функции, принимающие в качестве параметров данные этих типов (или указатели на них).
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Эдик (статус: Посетитель), 11 апреля 2012, 19:06 [#10]:спасибо |  11 апреля 2012, 19:07: Вопрос закрыт (решение принял автор вопроса — Эдик): вопрос полностью или частично решён Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |