Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 66
1

Найти и вывести на экран самого молодого студента, родившегося осенью

01.10.2013, 15:17. Просмотров 1085. Ответов 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
#include <iostream>
#include <fstream>
#include <string>
#include <conio.h>
#include <stdlib.h>
#include <iomanip>
const int L=10;
struct student
{char fam[L];
 char iniziali[5];
 int day;
 int mon;
 int year;
};
void inputStudentFile(student x[], int&n);
void outputStudentFile(student x[], int n);
void outputStudent(student x[], int n);
void sort(student x[], int n);
int main()
{
const int N=100;
student a[N];
int m;
clrscr();
cout.setf(ios::left);
inputStudentFile(a,m);
cout<<" Ishodniy massiv struktur\n";
outputStudent(a,m);
sort(a,m);
outputStudentFile(a,m);}
 
void inputStudentFile(student x[], int&n)
{ifstream fin;
char file[L];
cout<<"Vvedite nazwanie faila\n";cin>>file;
fin.open(file);
if(fin.fail())
  {cout<<"Nevozmozno otkrit fail"<<file<<endl;
  getche();exit(1);
 }
n=0;
do{fin>>x[n].fam>>x[n].iniziali>>x[n].day>>x[n].mon>>x[n].year;
  n++;
}while(fin.good());
n--;
fin.close();
}
 
void outputStudentFile(student x[], int n)
{ofstream fout;
int i;
char file[L];
cout<<"Save ? ";cin>>file;
fout.open(file);
if (fout.fail())
    {cout<<"Cannot save the file "<<file<<endl;
     getch();
     }  for(i=0;i<n;i++)
   if(x[i].mon==3||x[i].mon==4||x[i].mon==5)
    {fout<<x[i].fam<<" "<<x[i].iniziali<<" "<<x[i].day<<" "<<x[i].mon<<" "<<x[i].year<<endl;
     i=n;}
cout<<"File was succesfully saved";
getch();
fout.close();
}
void outputStudent(student x[], int n)
{int i;
    cout<<"Familiya  Iniz D  M  Y   \n";
   for(i=0;i<n;i++)
   cout<<setw(10)<<x[i].fam<<setw(5)<<x[i].iniziali<<setw(3)<<x[i].day<<setw(3)<<x[i].mon<<setw(5)<<x[i].year<<endl;
   getch();
}
    void sort(student x[], int n)
{int i, fl;
student t;
do {fl=0;
    for(i=0;i<n;i++)
    if(x[i].year>x[i+1].year)
      { t=x[i]; x[i]=x[i+1]; x[i+1]=t; fl=1; }
    else if(x[i].year==x[i+1].year)
       {if(x[i].mon>x[i+1].mon)
          { t=x[i]; x[i]=x[i+1]; x[i+1]=t; fl=1; }
        else if(x[i].mon==x[i+1].mon)
           {if(x[i].day>x[i+1].day)
             {t=x[i]; x[i]=x[i+1]; x[i+1]=t; fl=1; }}}
 }while(fl==1);
for(i=0;i<n;i++)
      if(x[i].mon==3||x[i].mon==4||x[i].mon==5)
     {cout<<"\n Studenty rodivshiesya osenoy\n\n";
      cout<<"Familiya  Iniz D  M  Y   \n";
        cout<<setw(10)<<x[i].fam<<setw(5)<<x[i].iniziali<<setw(3)<<x[i].day<<setw(3)<<x[i].mon<<setw(5)<<x[i].year<<endl;
     getche();
      }
}
Но он выводит студента, который родился осенью. Не подскажете, в чем я ошибся? Заранее благодарен.

Добавлено через 40 минут
Всем спасибо. Сам нашел ошибку.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.10.2013, 15:17
Ответы с готовыми решениями:

Найти самого молодого родившегося осенью студента
помогите исправить код данный код: найти самого молодого родившегося осенью исправить: найти...

Найти и вывести на экран самого молодого студента
Дан массив записей, содержащй сведения о студентах группы: фамилия и нициалы студента, дата...

Найти и вывести на экран самого молодого студента
Дан массив записей, содержащий сведения о студентах группы: фамилия и инициалы студента, Дата...

Вывести на экран фамилию самого молодого студента и его возраст.
Помогите с задачами. 1.Дан текстовый файл, содержащий данные о студентах: фамилия студента,...

1
120 / 120 / 47
Регистрация: 29.03.2013
Сообщений: 237
01.10.2013, 15:33 2
Обращайтесь
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.10.2013, 15:33

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Структуры и массивы структур: найти самого старшего студента, родившегося летом
Нужна помощь с задачей: Найти и вывести на экран самого старшего студента родившегося летом....

По списку студентов из файла найти самого молодого студента
Дан список студунтов в катором указан фамилия и год рождения студента Отпечатать список студентов...

Заполнение анкеты и поиск самого молодого и умного студента
Есть задача на PASCAL. Условие: Используя записи, написать программу, которая заполняет анкеты...

Вывести на экран фамилию самого старшего студента и средний возраст для всех студентов
Создать файл, элементами которого являются сведения о студентах: фамилия, возраст, место...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.