Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> создание структуры с последующей сортирокой даты, сортровка людей по полу и дате 
:(
    Опции темы
shpilivil
Дата 25.3.2012, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 25.3.2012

Репутация: нет
Всего: нет



Здравствуйте,помогите пожалуйста с данной задачей:
создать структурный шаблон содержащий фамилию, имя, пол, рост, дату рождения человека.По запросу пользователя вывести :
-всех данных отсортированных в алфавитном порядке;
-отдельно данных о мужчинах, о женщинах;
-средний рост мужчин;
-фамилии и имени самой молодой женщины, из тех, чей рост  превосходит
 средний рост мужчин(возрост рассматривать программно по текушей дате в количестве полных лет с точностью до дня).
В данной задаче выполнены все пункты кроме последнего, вывода самой молодой женщины.
В программе используется русский язык,так как работа курсовая.
Для распознавания в окне русского языка нужно сменить шрифт.(щелкнуть правой кнопкой по окну, выбрать свойства, в вкладке шрифт изменить шрифт на 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;
}


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0452 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.