Здравствуйте,помогите пожалуйста с данной задачей: создать структурный шаблон содержащий фамилию, имя, пол, рост, дату рождения человека.По запросу пользователя вывести : -всех данных отсортированных в алфавитном порядке; -отдельно данных о мужчинах, о женщинах; -средний рост мужчин; -фамилии и имени самой молодой женщины, из тех, чей рост превосходит средний рост мужчин(возрост рассматривать программно по текушей дате в количестве полных лет с точностью до дня). В данной задаче выполнены все пункты кроме последнего, вывода самой молодой женщины. В программе используется русский язык,так как работа курсовая. Для распознавания в окне русского языка нужно сменить шрифт.(щелкнуть правой кнопкой по окну, выбрать свойства, в вкладке шрифт изменить шрифт на Lucida) код: | Код | #include<iostream.h> #include<stdlib.h> #include<windows.h> #include<stdio.h> #include<string.h> #include<algorithm>
using namespace std;
//////////////////////////////////////////////////////////////////////////////// #define c system("cls") //чистим экран при помощи "c" struct birth_date //структура даты рождения {int d, m, y;};
struct men //структура всех данных { char surname[30]; char name[25]; birth_date dat; char sex[1]; float hight; }; bool comp(men, men);
//////////////////////////////////////////////////////////////////////////////// int main() { SetConsoleOutputCP(1251);// распознавание русского языка SetConsoleCP(1251); //////////////////////////////////////////////////////////////////////////////// int t=0,l=120,s=0,e=0,y=0,N,a,q,k,i,w; float higt=0,symm=0; int min; int r[99]; ////////////////////////////////////////////////////////////////////////////////
men* people = new men[N]; //////////////////////////////////////////////////////////////////////////////// cout<<"введите количество человек"<<endl; cin>>N; c; //////////////////////////////////////////////////////////////////////////////// for (i=0; i<N; i++) { printf("Введите фамилию: \n"); scanf("%s", people[i].surname); printf("Введите имя: \n"); scanf("%s", people[i].name); printf("Введите день рождения : \n"); for(q=0;q<100;q++) {scanf("%d", &people[i].dat.d); if(people[i].dat.d>30) printf("неверно введеy день, введите снова \n"); else break;} printf("Введите месяц рождения : \n"); for(q=0;q<100;q++) {scanf("%d", &people[i].dat.m); if (people[i].dat.m>12) printf("неверно введен месяц, введите снова \n"); else break;} printf("Введите год рождения : \n"); for(q=0;q<100;q++) {scanf("%d", &people[i].dat.y); if (people[i].dat.y<1930 || people[i].dat.y>2012 ) printf("неверно введен год, введите снова \n"); else break;} printf("рост: \n"); for(q=0;q<100;q++) {scanf("%f", &people[i].hight); if(people[i].hight>250) printf("слишком большой рост, введите снова \n"); else if(people[i].hight<120) printf("слишком маленький рост, введите снова \n"); else break;} printf("пол м или ж: \n"); scanf("%s", people[i].sex); c; //отчистка экрана } //////////////////////////////////////////////////////////////////////////////// cout<<"**1. Вывести перечень**"<<endl; cout<<"**2. Отсортировать фамилии по алфавиту**"<<endl; cout<<"**3. Вывести данные о мужчинах**"<<endl; cout<<"**4. Вывести данные о женщинах**"<<endl; cout<<"**5. вывести средний рост мужчины**"<<endl; cout<<"**6. вывести имя самой молодой девушки, чей рост выше среднего роста мужчины**"<<endl; cout<<"**7. выход из программы**"<<endl; cout<<"Введите номер операции"<<endl; for(i=0;i<l;i++) {cin>>k; if (k>8) cout<<"неверно введена операция "<<endl; else break; } cout<<endl; while(s<100) {if (k<8){ switch(k){ ////////////////////////////////////////////////////////////////////// case 1: for (i=0;i<N;i++) {cout<<people[i].surname<<" "<<people[i].name<<" рост "<<people[i].hight<<" Дата рождения:"<<people[i].dat.y<<"."<<people[i].dat.m<<"."<<people[i].dat.d<<". пол "<<people[i].sex<<" "<<endl;}; s=s+1; cout<<"еще операции"<<endl; for(i=0;i<l;i++) {cin>>k; if (k>8) cout<<"неверно введена операция "<<endl; else break;} break; ////////////////////////////////////////////////////////////////////// case 2: std::sort(people, people+N,comp); for (i=0;i<N;i++) {cout<<people[i].surname<<" "<<people[i].name<<" рост "<<people[i].hight<<" Дата рождения:"<<people[i].dat.y<<"."<<people[i].dat.m<<"."<<people[i].dat.d<<". пол "<<people[i].sex<<" "<<endl;}; s=s+1;cout<<"еще операции"<<endl; for(i=0;i<l;i++) {cin>>k; if (k>8) cout<<"неверно введена операция "<<endl; else break;} break; ////////////////////////////////////////////////////////////////////// case 3: for (i=0;i<N;i++) {if (people[i].sex[0]=='м') {cout<<people[i].surname<<" "<<people[i].name<<" рост "<<people[i].hight<<" Дата рождения:"<<people[i].dat.y<<"."<<people[i].dat.m<<"."<<people[i].dat.d<<". пол "<<people[i].sex<<" "<<endl;e++;} } if (e==0) cout<<"мужчин нет в списке"<<endl; s=s+1;cout<<"еще операции"<<endl; for(i=0;i<l;i++) {cin>>k; if (k>8) cout<<"неверно введена операция "<<endl; else break;} break; ////////////////////////////////////////////////////////////////////// case 4: e=0; for (i=0;i<N;i++) { if (people[i].sex[0]=='ж') {cout<<people[i].surname<<" "<<people[i].name<<" рост "<<people[i].hight<<" Дата рождения:"<<people[i].dat.y<<"."<<people[i].dat.m<<"."<<people[i].dat.d<<". пол "<<people[i].sex<<" "<<endl;e++;} } if (e==0) cout<<"женщин нет в списке"<<endl ; s=s+1;cout<<"еще операции"<<endl; for(i=0;i<l;i++) {cin>>k; if (k>8) cout<<"неверно введена операция "<<endl; else break;} break; ///////////////////////////////////////////////////////////////////// case 5: t=0; for(i=0;i<N;i++) {if (people[i].sex[0]=='м') {symm+=people[i].hight;t++;} } higt=symm/t; if(t==0)cout<<"музжин нет в списке"<<endl; else cout<<"средний рост мужчины "<<higt<<endl; s=s+1;cout<<"еще операции"<<endl; for(i=0;i<l;i++) {cin>>k; if (k>8) cout<<"неверно введена операция "<<endl; else break;} break; ////////////////////////////////////////////////////////////////////// case 6: t=0; symm=0; higt=0; for(i=0;i<N;i++) {if (people[i].sex[0]=='м') {symm+=people[i].hight;t++;} } higt=symm/t; cout<<higt<<endl; t=0; for(i=0;i<N;i++) {if ((people[i].sex[0]=='ж') && (people[i].hight>higt)) {cout<<people[i].name<<" "<<endl;r[t]=i; t++;} } for(i=0;i<t;i++) {w=r[i]; min=r[0]; if(people[w].dat.y>=people[min].dat.y){min=w; r[y]=w; y++; } } t=0; w=0; for(i=0;i<y;i++) {w=r[i]; min=r[0]; if(people[w].dat.m>=people[min].dat.m){min=w; r[t]=w; t++; } } y=0; w=0; for(i=0;i<t;i++) {w=r[i]; min=r[0]; if(people[w].dat.d>=people[min].dat.d){min=w; r[y]=w; y++; } } for(i=0;i<y;i++) {w=r[i]; cout<<people[y-1].surname<<" "<<people[w].name<<"1 "; break; } s=s+1;cout<<"еще операции"<<endl; for(i=0;i<l;i++) {cin>>k; if (k>8) cout<<"неверно введена операция "<<endl; else break;} break; ///////////////////////////////////////////////////////////////////// case 7:return(0) ; }
} }
system("pause"); } bool comp(men a, men b) { if (strcmp(a.surname, b.surname)>=0) return 0; else return 1; }
|
|