Создать компьютерный вариант записной книжки. В структурном шаблоне должны содержаться следующие сведения: фамилия, имя, дата рождения, номер телефона. По требованию пользователя предусмотреть вывод:
- списка фамилий в алфавитном порядке с указанием номеров телефонов
- списка лиц, которых необходимо поздравить с днем рождения в заданном месяце.
Собственно,проблема одна. Не получается сделать сортировку фамилий по алфавиту в case 1. Максимум что вышло сортировка по первой букве
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
| #include<iostream.h>
#include<string.h>
#include<iomanip.h>
#include<windows.h>
#include<conio.h>
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
struct notebook
{char family[20];
char name[20];
int day,month,year;
char telephone[11];
};
struct notebook *tr;
tr=new notebook[50];
int i,n,m=0,nom,min=30;
cout<<"Ââåäèòå êîëè÷åñòâî ÷åëîâåê"<<endl;
cin>>n;
for(i=0;i<n;i++)
{cout<<"Ââåäèòå ôàìèëèþ(çàãëàâíûìè áóêâàìè)"<<endl;
cin>>tr[i].family;
cout<<"Ââåäèòå èìÿ"<<endl;
cin>>tr[i].name;
cout<<"Ââåäèòå äàòó ðîæäåíèÿ"<<endl;
cout<<"äåíü: ";
cin>>tr[i].day;
while(tr[i].day>30)
{cout<<"îøèáêà, ïîïðîáóéòå ñíîâà"<<endl;
cin>>tr[i].day;}
cout<<"ìåñÿö: ";
cin>>tr[i].month;
while(tr[i].month>12)
{cout<<"îøèáêà, ïîïðîáóéòå ñíîâà"<<endl;
cin>>tr[i].month;}
cout<<"ãîä: ";
cin>>tr[i].year;
while(tr[i].year>2012)
{cout<<"îøèáêà, ïîïðîáóéòå ñíîâà"<<endl;
cin>>tr[i].year;}
cout<<"Ââåäèòå íîìåð òåëåôîíà"<<endl;
cin>>tr[i].telephone;}
system("cls");
while(m!=4)
{
cout<<"Âûáåðèòå:"<<endl;
cout<<"'1'-ñïèñîê ôàìèëèé â àëôàâèòíîì ïîðÿäêå ñ óêàçàíèåì íîìåðîâ òåëåôîíîâ"<<endl;
cout<<"'2'-ñïèñîê ëèö, êîòîðûõ íåîáõîäèìî ïîçäðàâèòü ñ äíåì ðîæäåíèÿ â çàäàííîì ìåñÿöå"<<endl;
cout<<"'3'-íîâûé ââîä äàííûõ"<<endl;
cout<<"'4'-âûõîä"<<endl;
cin>>m;
switch(m)
{case 1:
{
cout<<"----------------------------------------------------------"<<endl;
cout<<"| Ôàìèëèÿ | Íîìåð òåëåôîíà |"<<endl;
cout<<"----------------------------------------------------------"<<endl;
/*for(j=0;j<n;j++)
cout<<"|"<<setw(26)<<tr[h[j]].family<<" | "<<setw(16)<<"8"<<tr[h[j]].telephone<<" | "<<endl;*/
cout<<"----------------------------------------------------------"<<endl;
cout<<"Íàæìèòå ëþáóþ êëàâèøó äëÿ ïðîäîëæåíèÿ";
getch();
system("cls");
break;}
case 2:
{
cout<<"Ââåäèòå íîìåð ìåñÿöà"<<endl;
cin>>nom;
while (nom>12)
{cout<<"îøèáêà, ïîïðîáóéòå ñíîâà"<<endl;
cin>>nom;}
cout<<endl;
cout<<"--------------------------------------------------------"<<endl;
cout<<"| Ôàìèëèÿ | Äàòà ðîæäåíèÿ |"<<endl;
cout<<"--------------------------------------------------------"<<endl;
for(i=0;i<n;i++)
{if(tr[i].month==nom)
if (tr[i].day<min) min=tr[i].day;}
for(i=0;i<n;i++)
{if((tr[i].day==min) && (tr[i].month==nom))
cout<<"|*"<<setw(22)<<tr[i].family<<"|"<<setw(22)<<tr[i].day<<"."<<tr[i].month<<"."<<tr[i].year<<"*|"<<endl;
else if((tr[i].day!=min) && (tr[i].month==nom))
cout<<"|"<<setw(23)<<tr[i].family<<"|"<<setw(23)<<tr[i].day<<"."<<tr[i].month<<"."<<tr[i].year<<"|"<<endl;}
cout<<"--------------------------------------------------------"<<endl;
cout<<"Íàæìèòå ëþáóþ êëàâèøó äëÿ ïðîäîëæåíèÿ";
getch();
system("cls");
break;}
case 3:
{system("cls");
return main();
break;}
case 4:
{system("cls");
delete []tr;
break;}
default:cout<<"îøèáêà"<<endl;}}
system("pause");
return 0;
} |
|