Форум программистов, компьютерный форум CyberForum.ru

Файлы и структуры. Поиск студента по имени и сортировка - C++

Восстановить пароль Регистрация
 
tibeg
0 / 0 / 0
Регистрация: 01.08.2013
Сообщений: 97
26.03.2014, 16:31     Файлы и структуры. Поиск студента по имени и сортировка #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
120
121
122
123
124
125
126
127
128
129
130
131
132
#include <iostream>
#include <fstream>
 
using namespace std;
 
 
    struct STUDENT
    {char familia[15]; char name[10]; int vozrast; int rayting; char pol;} 
 
    const char filename[]="file.txt";
    fstream file;
 
 
void WriteToFile(int num)
 
{
STUDENT st;
file.open(filename,ios::app);
cout << "Vvedite dannie\n";
for (i=0;i<num;i++)
{
 
    cout << "familia:";
    cin  >> st.familia;
 
    cout << "name:";
    cin  >> st.name;
 
    cout << "pol:";
    cin  >> st.pol;
 
    cout << "vozrast:";
    cin  >> st.vozrast;
 
    cout << "rayting:";
    cin  >> st.rayting;
 
    file<<st.familia<<"\n"<<st.name<<"\n"<<st.pol<<"\n"<<st.vozrast<<"\n"<<st.rayting<<"\n";
}
 
    file.close();
    getch();
}
 
 
 
 
void PrintFile()
{
STUDENT st;
 
file.open(filename,ios::in);
cout << "familia\tname\tpol\tvozrast\trayting\n";
 
        while(!file.eof())
            {file>>st.familia>>st.name>>st.pol>>st.vozrast>>st.rayting;
 
        if(file.peek()!=EOF)
             cout <<st.familia<<"\t"<<st.name<<"\t"<<st.pol<<"\t"<<st.vozrast<<"\t"<<rayting<<"\n";}
 
               file.close();
               getch();
}
 
 
 
 
 
void FileRewrite()
 
{file.open(filename,ios::out);
 file.close();
}
 
 
void Vibor()
{
STUDENT st;
 
 file.open(filename,ios::in);
      cout << "familia\tname\tpol\tvozrast\trayting\n";
 
         while(!file.eof())
           {file>>st.familia>>st.name>>st.pol>>st.vozrast>>st.rayting;
 
        if((file.peek()!=EOF)&&(st.pol==1990))
          cout<<st.familia<<"\t"<<st.name<<"\t"<<st.pol<<"\t"<<st.vozrast<<"\t"<<rayting<<"\n";}
 
             file.close(); 
             getch();
}
 
void Porjadok()
{
STUDENT stud[25],x;  int i,j,k=0;
 
file.open(filename, ios::in);
cout << "familia\tname\tpol\tvozrast\trayting\n";
 
     while(!file.eof())
        file>>st.familia>>st.name>>st.pol>>st.vozrast>>st.rayting;
         if (file.peek()!=EOF) {stud[k]=x; k++;}}
 
       file.close();
           for (i=0;i<k-1;i++)
                 for (j=0;j<k-1;j++)
 
                      if (strcmp(stud[j].familia,stud[j+1].familia)>0)
                         {x=stud[j]; stud[j]=stud[j+1]; stud[j+1]=x;}
 
       for(i=0;i<k;i++)
 
        cout<<stud[i].familia<<"\t"<<stud[i].name<<"\t"<<stud[i].pol<<"\t"<<stud[i].vozrast<<"\t"<<stud[i].rayting<<"\n";
getch();
}
 
 
int main()
{
    char menu; 
    int i;
 do
 {clrscr();  cout<<"1-Запись в файл\n2-Вывод на экран\n3-Очистка файла\n4-Выбор\n5-Сортировка\n6-Выход";
  menu=getch();  switch(menu)
  {case '1': cout<<"Количество записей"; cin>>i;
   WriteToFile(i); break;
   case '2':PrintFile(); break;
   case '3':FileRewrite(); break;
   case '4':Vibor(); break;
   case '5':Porjadok(); break;};
  if (menu=='6') break;
 }while(1);}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.03.2014, 16:43     Файлы и структуры. Поиск студента по имени и сортировка #2
Какие проблемы?
tibeg
0 / 0 / 0
Регистрация: 01.08.2013
Сообщений: 97
26.03.2014, 16:54  [ТС]     Файлы и структуры. Поиск студента по имени и сортировка #3
упроноине хочет работать( перебробывал ввсе
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5437 / 2561 / 233
Регистрация: 01.11.2011
Сообщений: 6,330
Завершенные тесты: 1
26.03.2014, 16:58     Файлы и структуры. Поиск студента по имени и сортировка #4
Цитата Сообщение от tibeg Посмотреть сообщение
упроноине хочет работать( перебробывал ввсе
Какие ошибки выдает регулятор? Или, если никаких, то какого поведения программы вы ждете и какое получаете?
tibeg
0 / 0 / 0
Регистрация: 01.08.2013
Сообщений: 97
26.03.2014, 17:35  [ТС]     Файлы и структуры. Поиск студента по имени и сортировка #5
Она должна искать студентов 1990 года рождения, и сортировать по Фамилии
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.03.2014, 17:39     Файлы и структуры. Поиск студента по имени и сортировка #6
Цитата Сообщение от tibeg Посмотреть сообщение
if((file.peek()!=EOF)&&(st.pol==1990))
st.pol - это год рождения?
tibeg
0 / 0 / 0
Регистрация: 01.08.2013
Сообщений: 97
26.03.2014, 17:53  [ТС]     Файлы и структуры. Поиск студента по имени и сортировка #7
сейчас переделал.
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
#include<iostream.h>
#include<fstream.h>
#include<conio.h>
#include<string.h>
 
struct STUDENT
{char fam[15]; char name[10]; char pol; int vozrast; int rayting;};
const char filename[]="file.txt";
fstream file;
 
 
void WriteToFile(int num)
{STUDENT st; clrscr();
 file.open(filename,ios::app);
 cout<<"\n";
 cout<<"Vvedite dannie";
 cout<<"\n";
 for (int i=0;i<num;i++)
  {cout<<"Familia->"; cin>>st.fam;
   cout<<"Name->"; cin>>st.name;
   cout<<"Pol->"; cin>>st.pol;
   cout<<"Vozrast->"; cin>>st.vozrast;
   cout<<"Rayting->"; cin>>st.rayting;
   file<<st.fam<<"\n"<<st.name<<"\n"<<st.pol<<"\t"<<st.vozrast<<"\t"<<st.rayting<<"\n";}
file.close();
getch();}
 
 
 
void PrintFile()
{STUDENT st; clrscr();
 file.open(filename,ios::in);
 cout<<"\tFamilia\t      Name   Pol Vozrast Rayting\n";
 while(!file.eof())
 {file>>st.fam>>st.name>>st.pol>>st.vozrast>>st.rayting;
  if(file.peek()!=EOF)
  cout<<st.fam<<"\t"<<st.name<<"\t"<<st.pol<<"\t"<<st.vozrast<<"\t"<<st.rayting<<"\n";}
 file.close();
 getch();}
 
 
 
 
void FileRewrite()
{file.open(filename,ios::out);
 file.close();}
 
 
void Vibor()
{STUDENT st; clrscr();
 file.open(filename,ios::in);
 cout<<"\tFamilia\t      Name   Pol Vozrast Rayting\n";
 while(!file.eof())
 {file>>st.fam>>st.name>>st.pol>>st.vozrast>>st.rayting;
  if((file.peek()!=EOF)&&(st.pol == "m"))                                  /[B]/Здесь ругается только.[/B]
  cout<<st.fam<<"\t"<<st.name<<"\t"<<st.pol<<"\t"<<st.vozrast<<"\t"<<st.rayting<<"\n";}
 file.close(); getch();}
 
 
 
 
void Porjadok()
{STUDENT stud[25],x;  int i,j,k=0;
 file.open(filename, ios::in);
 clrscr(); cout<<"\tFamilia\t      Name   Pol Vozrast Rayting\n";
 
 
 
while(!file.eof())
 {file>>x.fam>>x.name>>x.pol>>x.vozrast>>x.rayting;
  if (file.peek()!=EOF) {stud[k]=x; k++;}}
 file.close();
 for (i=0;i<k-1;i++)
  for (j=0;j<k-1;j++)
   if (strcmp(stud[j].fam,stud[j+1].fam)>0)
    {x=stud[j]; stud[j]=stud[j+1]; stud[j+1]=x;}
 for(i=0;i<k;i++)
  cout<<stud[i].fam<<"\t"<<stud[i].name<<"\t"<<stud[i].pol<<"\t"<<stud[i].vozrast<<"\t"<<stud[i].rayting<<"\n";
 getch();
}
 
 
 
void main()
{char menu; int i;
 do
 {clrscr();  cout<<"1-Zapis v fail\n2-Vivod na ekran\n3-Ochistka\n4-Vibor\n5-Sortirovka\n6-Exit";
  menu=getch();  switch(menu)
  {case '1': cout<<"\nKolichestvo zapisey:";
   cin>>i;
   WriteToFile(i); break;
   case '2':PrintFile(); break;
   case '3':FileRewrite(); break;
   case '4':Vibor(); break;
   case '5':Porjadok(); break;};
  if (menu=='6') break;
 }while(1);}
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.03.2014, 18:12     Файлы и структуры. Поиск студента по имени и сортировка #8
C++
1
if((file.peek()!=EOF)&&(st.pol == 'm'))
Цитата Сообщение от tibeg Посмотреть сообщение
сейчас переделал.
А как же задание?
Цитата Сообщение от tibeg Посмотреть сообщение
Она должна искать студентов 1990 года рождения
tibeg
0 / 0 / 0
Регистрация: 01.08.2013
Сообщений: 97
26.03.2014, 18:20  [ТС]     Файлы и структуры. Поиск студента по имени и сортировка #9
задание можно немного изменить) подскажите еще пожалуйста, как сделать чтобы фамиля была по фамилие, имя по именем и т.д.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.03.2014, 18:28     Файлы и структуры. Поиск студента по имени и сортировка #10
Цитата Сообщение от tibeg Посмотреть сообщение
как сделать чтобы фамиля была по фамилие, имя по именем и т.д.
Непонятно, что нужно.
tibeg
0 / 0 / 0
Регистрация: 01.08.2013
Сообщений: 97
26.03.2014, 18:35  [ТС]     Файлы и структуры. Поиск студента по имени и сортировка #11
Ну тоесть вот при сортировке криво выводит
Миниатюры
Файлы и структуры. Поиск студента по имени и сортировка  
tibeg
0 / 0 / 0
Регистрация: 01.08.2013
Сообщений: 97
26.03.2014, 18:47  [ТС]     Файлы и структуры. Поиск студента по имени и сортировка #12
тоесть после сортировки например, криво табличка выводится
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.03.2014, 18:48     Файлы и структуры. Поиск студента по имени и сортировка
Еще ссылки по теме:

Поиск студента по имени, фамилии и iq C++
Не работает сортировка по имени. Сравнение строк C++
C++ Структуры. Случайное имя и добавить нового студента

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

Или воспользуйтесь поиском по форуму:
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.03.2014, 18:48     Файлы и структуры. Поиск студента по имени и сортировка #13
Чтобы ровно выводилось, используйте манипуляторы вывода: http://www.cplusplus.com/reference/i.../setw/?kw=setw
Yandex
Объявления
26.03.2014, 18:48     Файлы и структуры. Поиск студента по имени и сортировка
Ответ Создать тему
Опции темы

Текущее время: 11:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru