|
Вопрос # 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: Вопрос закрыт (решение принял автор вопроса — Эдик): вопрос полностью или частично решён
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|