Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 6 051

Раздел: C++
/ вопрос закрыт /

Доброго времени суток, уважаемые эксперты!
Нужна программа-записная книжка.Суть программы - при компиляции выдаёт приветствие и список возможных дествий,а их всего 4:
1)Посмотреть справочник.(там уже 1-2 контакта)
2)Добавить контакт.
3)удалить контакт.
4)выйти.
При нажатии соотв. цифры выдаёт то или иное.
Основные проблемы:
1)Нужно чтоб контакт добавлялся по имени(любые символы и цифры=)),по фамилии(аналогично с именем) и по номеру(желательно чтобы принимало два формата ввода - +7******* и 8*******,а иначе просило переввести номер).
2)В удалении контактов нужно вывести список и у меня тут не получается сделать функцию сортировки(поиска),чтобы удалить контакт с помощью неё,вписав номер,имя,фамилию или всё сразу
3)Работаю над функцией помощь(help) инфа о которой будет выведена после приветствия и в которой будет разжёваны основы использования,но это последнее дело и тут впринципе всё понятно
З.ы. просьба помочь,сам попутно делаю всё.
З.з.ы.При работе буду переписывать код в виде мейна с функциями,а не как щас(один большой мейн)

Приложение:
  1. # include <stdio.h>
  2. int main ()
  3. {
  4. int a, i, n=1, m=0;
  5. struct AdressBook
  6. {
  7. char Name[40];
  8. char Surname[80];
  9. long mobile;
  10. };
  11. AdressBook A[50];
  12.  
  13.  
  14. A[0].mobile=79164253573;
  15.  
  16.  
  17. A[1].mobile=79164260503;
  18. printf ("Adress book");
  19. while (a!=5)
  20. {
  21. printf ("\nwhat do you want to do?\n1. see adress book\n2. add new name\n3. delete unit\n4. sort\n5. exit");
  22. scanf ("%d",&a);
  23. if (a==1)
  24. for (i=0;i<(n+1);i++)
  25. if (A[i].mobile!=10101)
  26. printf ("Name:%s; Surname:%s; mob:%ld\n",A[i].Name,A[i].Surname,A[i].mobile);
  27. if (a==2)
  28. {
  29. n=n+1;
  30. printf("enter Name; Surname; mobile");
  31. scanf("%s%s%ld",&A[n].Name,&A[n].Surname,&A[n].mobile);
  32. }
  33. if (a==3)
  34. {
  35. for (i=0;i<(n+1);i++)
  36. printf ("%d)Name:%s; Surname:%s; mob:%ld\n",(i+1),A[i].Name,A[i].Surname,A[i].mobile);
  37. printf ("what number of unit you want to delete");
  38. scanf ("%d",&m);
  39. A[m-1].mobile=10101;
  40. }
  41. if (a==4)
  42. {
  43. int OK=0; long q;
  44. while (!OK)
  45. {
  46. OK=1;
  47. for(i=0;i<(n+1);i++)
  48. if (A[i].mobile>A[i+1].mobile)
  49. {
  50. q=A[i].mobile;
  51. A[i].mobile=A[i+1].mobile;
  52. A[i+1].mobile=q;
  53. OK=0;
  54. }
  55. }
  56. for (i=0;i<(n+1);i++)
  57. printf ("Name:%s; Surname:%s; mob:%ld\n",A[i].Name,A[i].Surname,A[i].mobile);
  58.  
  59. }
  60. }
  61. printf ("good bye");
  62. return 0;
  63. }


Эдик Вопрос закрыт (ответы не принимаются, мини-форум закрыт)

Вопрос задал: Эдик (статус: Посетитель)
Вопрос отправлен: 6 апреля 2012, 17:50
Состояние вопроса: закрыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 10; последнее сообщение — 11 апреля 2012, 19:06; участников в обсуждении: 2.
min@y™

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™

min@y™ (статус: Доктор наук), 8 апреля 2012, 12:21 [#3]:

Цитата (Эдик):


Здраствуйте.Можете помочь в этом вопросе?Я совсем не уверен что успею это сделать

Могу помочь, конечно. А чо мне за это будет?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Эдик

Эдик (статус: Посетитель), 8 апреля 2012, 13:45 [#4]:

А что принимаете?
min@y™

min@y™ (статус: Доктор наук), 8 апреля 2012, 13:56 [#5]:

Цитата (Эдик):

А что принимаете?

Доллары США, евро, фунты стерлингов, российские рубли. Ну, в крайнем случае, гривны. Белорусских зайчиков не предлагать!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Эдик

Эдик (статус: Посетитель), 8 апреля 2012, 21:53 [#6]:

Так для вас пустяковая тем более я вобще только какой-то бред не могу понять - это не мастера на дом вызывать чтоб он одну кнопку нажал
min@y™

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™

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: Вопрос закрыт (решение принял автор вопроса — Эдик): вопрос полностью или частично решён

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:49
Выполнено за 0.03 сек.