Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
stepa3800
2 / 2 / 0
Регистрация: 10.12.2013
Сообщений: 41
#1

Сделать сортировку или выбор из класса? - C++

09.06.2014, 16:33. Просмотров 195. Ответов 2
Метки нет (Все метки)

помогите вставить сортировку ну или выборку
Создать класс, содержащий сведения о том, какие из пяти дисциплин по выбору желает изучить студент. Структура: Фамилия студента, индекс группы, пять дисциплин, средний балл успеваемости. Выбираемая дисциплина отмечается -1, иначе 0. Написать программу, выдающую список студентов, желающих прослушать дисциплину Х. Если число желающих превысит 5 человек, то отобрать студентов, имеющих более высокий средний балл. Данные и результаты должны храниться в файлах. Предусмотреть возможность добавления информации, удаления отдельных записей.
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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <fstream>
 
int n=3;
using namespace std;
class instityt
{
char familia[25];
char index[25];
int diciplina1;
int diciplina2;
int diciplina3;
int diciplina4;
int diciplina5;
int sredni;
public:
    void fam(char* str){strcpy(familia,str);}
    char* fam2(){return familia;}
    void ind(char* str){strcpy(index,str);}
    char* ind2(){return index;}
    void dis11(int a){diciplina1=a;}
    int dis12(){return diciplina1;}
    void dis21(int a){diciplina2=a;}
    int dis22(){return diciplina2;}
    void dis31(int a){diciplina3=a;}
    int dis32(){return diciplina3;}
    void dis41(int a){diciplina4=a;}
    int dis42(){return diciplina4;}
    void dis51(int a){diciplina5=a;}
    int dis52(){return diciplina5;}
    void sre(int a){sredni=a;}
    int sre2(){return sredni;}
};
 
void vvod()
{
 FILE *fp;
    fp=fopen("instityt.txt","w");
    int i,diciplina1,diciplina2,diciplina3,diciplina4,diciplina5,sredni;
    char familia[25],index[25];
    instityt *vk;
    vk=new instityt[n];
    for(i=0;i<n;i++){
        cout<<"familia: "; cin>>familia;
        cout<<"index: "; cin>>index;
        cout<<"diciplina1: "; cin>>diciplina1;
        cout<<"diciplina2: "; cin>>diciplina2;
        cout<<"diciplina3: "; cin>>diciplina3;
        cout<<"diciplina4: "; cin>>diciplina4;
        cout<<"diciplina5: "; cin>>diciplina5;
        cout<<"sredni' ball: "; cin>>sredni; cout<<"\n"<<"\n";
        vk[i].fam(familia);
        vk[i].ind(index);
        vk[i].dis11(diciplina1);
        vk[i].dis21(diciplina2);
        vk[i].dis31(diciplina3);
        vk[i].dis41(diciplina4);
        vk[i].dis51(diciplina5);
        vk[i].sre(sredni);
        fwrite(&vk[i],sizeof(instityt),1,fp);
    }fclose(fp);
}
 
void vivod()
{ cout<<"\n"<<"\n";
    FILE *fp;
    int i,j,num[5];
    instityt *vk;
    vk=new instityt[n];
    fp=fopen("instityt.txt","r");
    for(i=0;i<n;i++){
       fread(&vk[i],sizeof(instityt),1,fp);
    }
    for(i=0;i<n;i++){
        cout<<"familia: "<<vk[i].fam2()<<"\n";
        cout<<"index: "<<vk[i].ind2()<<"\n";
        cout<<"diciplini1: "<<vk[i].dis12()<<"\n";
        cout<<"diciplini2: "<<vk[i].dis22()<<"\n";
        cout<<"diciplini3: "<<vk[i].dis32()<<"\n";
        cout<<"diciplini4: "<<vk[i].dis42()<<"\n";
        cout<<"diciplini5: "<<vk[i].dis52()<<"\n";
        cout<<"sredni' ball: "<<vk[i].sre2()<<"\n"<<"\n";
    }
 
}
 
void zadanie()
{
   FILE *fp,*fp1;
    int b,i,j,z=0,num;
    instityt *vk;
    //char familia[25];
    vk=new instityt[n];
    fp=fopen("instityt.txt","rb");
    fp1=fopen("zadanie.txt","wt");
    for(i=0;i<n;i++){
       fread(&vk[i],sizeof(instityt),1,fp);
    }
 
    cout<<"Viberite discipiny: ";
    cin>>b;
    switch(b){
        case 1:
            for(i=0;i<n;i++)
            {if(vk[i].dis12()!=0){
                       fprintf(fp1,"familia: ");fprintf(fp1,"%s",vk[i].fam2());fprintf(fp1,"\n");
                        fprintf(fp1,"index: ");fprintf(fp1,"%s",vk[i].ind2());fprintf(fp1,"\n");
                        fprintf(fp1,"sredni' ball: ");fprintf(fp1,"%d",vk[i].sre2());fprintf(fp1,"\n\n");
                       //fwrite(&vk[i],sizeof(instityt),1,fp1);};
                       z++;}
                 };break;
        case 2:
            for(i=0;i<n;i++)
            {if(vk[i].dis22()!=0){
                       fprintf(fp1,"familia: ");fprintf(fp1,"%s",vk[i].fam2());fprintf(fp1,"\n");
                        fprintf(fp1,"index: ");fprintf(fp1,"%s",vk[i].ind2());fprintf(fp1,"\n");
                        fprintf(fp1,"sredni' ball: ");fprintf(fp1,"%d",vk[i].sre2());fprintf(fp1,"\n\n");
                       //fwrite(&vk[i],sizeof(instityt),1,fp1);};
                       z++;}
                 };break;
        case 3:
            for(i=0;i<n;i++)
            {if(vk[i].dis32()!=0){
                       fprintf(fp1,"familia: ");fprintf(fp1,"%s",vk[i].fam2());fprintf(fp1,"\n");
                        fprintf(fp1,"index: ");fprintf(fp1,"%s",vk[i].ind2());fprintf(fp1,"\n");
                        fprintf(fp1,"sredni' ball: ");fprintf(fp1,"%d",vk[i].sre2());fprintf(fp1,"\n\n");
                       //fwrite(&vk[i],sizeof(instityt),1,fp1);};
                       z++;}
                 };break;
        case 4:
            for(i=0;i<n;i++)
            {if(vk[i].dis42()!=0){
                       fprintf(fp1,"familia: ");fprintf(fp1,"%s",vk[i].fam2());fprintf(fp1,"\n");
                        fprintf(fp1,"index: ");fprintf(fp1,"%s",vk[i].ind2());fprintf(fp1,"\n");
                        fprintf(fp1,"sredni' ball: ");fprintf(fp1,"%d",vk[i].sre2());fprintf(fp1,"\n\n");
                       //fwrite(&vk[i],sizeof(instityt),1,fp1);};
                       z++;}
                 };break;
        case 5:
            for(i=0;i<n;i++)
            {if(vk[i].dis52()!=0){
                       fprintf(fp1,"familia: ");fprintf(fp1,"%s",vk[i].fam2());fprintf(fp1,"\n");
                        fprintf(fp1,"index: ");fprintf(fp1,"%s",vk[i].ind2());fprintf(fp1,"\n");
                        fprintf(fp1,"sredni' ball: ");fprintf(fp1,"%d",vk[i].sre2());fprintf(fp1,"\n\n");
                       //fwrite(&vk[i],sizeof(instityt),1,fp1);};
                       z++;}
                 };break;
            }
 
 
    cout<<"soxraneny v file\n";
   fclose(fp);fclose(fp1);getch();
}
 
void udal()
{
 int i;
    instityt *vk;
    int k;
    vk=new instityt[n];
    FILE *fp;
    fp=fopen("instityt.txt","r");
    for(i=0;i<n;i++){
      fread(&vk[i],sizeof(instityt),1,fp);
    } fclose(fp);
    fp=fopen("instityt.txt","wb");
    cout<<"Kakuy zapis udalit?";cin>>k;
    for(i=0;i<n;i++){
            if(i!=k){
      fwrite(&vk[i],sizeof(instityt),1,fp);
            }
    }fclose(fp);n-=1;
}
 
void dobavit()
{
   FILE *fp,*fp1;
    int i,diciplina1,diciplina2,diciplina3,diciplina4,diciplina5,sredni;
    char familia[25],index[25];
    instityt *vk;
    vk=new instityt[n+1];
    fp1=fopen("instityt.txt","r");
    for(i=0;i<n;i++){
       fread(&vk[i],sizeof(instityt),1,fp1);
    }fclose(fp1);
 
       cout<<"familia: "; cin>>familia;
        cout<<"index: "; cin>>index;
        cout<<"diciplina1: "; cin>>diciplina1;
        cout<<"diciplina2: "; cin>>diciplina2;
        cout<<"diciplina3: "; cin>>diciplina3;
        cout<<"diciplina4: "; cin>>diciplina4;
        cout<<"diciplina5: "; cin>>diciplina5;
        cout<<"sredni' ball: "; cin>>sredni; cout<<"\n";
        vk[i].fam(familia);
        vk[i].ind(index);
        vk[i].dis11(diciplina1);
        vk[i].dis21(diciplina2);
        vk[i].dis31(diciplina3);
        vk[i].dis41(diciplina4);
        vk[i].dis51(diciplina5);
        vk[i].sre(sredni);
fp=fopen("instityt.txt","w");
n=n+1;
for(i=0;i<=n;i++){
                cout<<"familia: "<<vk[i].fam2()<<"\n";
        cout<<"index: "<<vk[i].ind2()<<"\n";
        cout<<"diciplini1: "<<vk[i].dis12()<<"\n";
        cout<<"diciplini2: "<<vk[i].dis22()<<"\n";
        cout<<"diciplini3: "<<vk[i].dis32()<<"\n";
        cout<<"diciplini4: "<<vk[i].dis42()<<"\n";
        cout<<"diciplini5: "<<vk[i].dis52()<<"\n";
        cout<<"sredni' ball: "<<vk[i].sre2()<<"\n"<<"\n";
        fwrite(&vk[i],sizeof(instityt),1,fp);}
    fclose(fp);;
}
 
int main()
{   int nomer;
    vvod();
    cout<<n<<"\n\n";
    cout<<"::MENU::";
    cout<<"\n1.Vivod dannix"<<"\n2.Zadanie"<<"\n3.Dobavit"<<"\n4.Udalit"<<"\n5.Exit\n";
    cin>>nomer;
    while(nomer!=5)
    {
    switch(nomer)
    {
    case 1:vivod();break;
    case 2:zadanie();break;
    case 3:dobavit();break;
    case 4:udal();break;
    case 5:break;
    }cout<<"\n\n::MENU::";
    cout<<"\n1.Vivod dannix"<<"\n2.Zadanie"<<"\n3.Dobavit"<<"\n4.Udalit"<<"\n5.Exit\n";
    cin>>nomer;
    }
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2014, 16:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сделать сортировку или выбор из класса? (C++):

как сделать чтобы объект производного класса сам себя добавлял в список или массив указателей базового класса? - C++
я хотел так, но программа просто падает void Student::add(Base** head) { cout &lt;&lt; &quot;I here&quot; &lt;&lt; endl; this-&gt;setName(); //все...

Что лучше: расширить интерфейс класса или сделать публичным подкласс? - C++
Вопрос такой. Вот у меня есть устройство (class device ), у него есть регистры (class register) . Легче всего, по - моему, создать класс...

Сортировку вставками меняем на Пирамидальную сортировку и на Сортировку подсчётом - C++
Здравствуйте. Я не как не могу разобраться.Помогите. У меня есть листинг сортировки вставками: #include &quot;stdafx.h&quot; #include...

Улучшить сортировку или? - C++
На шоу стало больше участников и (сортировка пузырьком) работает очень долго. Поэтому вам необходимо сформировать итоговый протокол более...

Как сделать, чтобы функция класса могла работать с обьектами другого класса - C++
есть класс к примеру class One и класс к примеру class Two нужно чтобы элемент функция класса One могла работать в обьектами класа...

не могу сделать сортировку - C++
здравствуйте,помогите пожалуйста,уже хрен знает сколько мучаюсь и никак не могу осилить сортировку в такое задаче: В одномерном...

2
Kukurudza
105 / 86 / 6
Регистрация: 29.08.2012
Сообщений: 539
09.06.2014, 18:34 #2
А человеческим языком можно задание оформить?
0
stepa3800
2 / 2 / 0
Регистрация: 10.12.2013
Сообщений: 41
09.06.2014, 18:47  [ТС] #3
не я составлял, так что нет

Добавлено через 32 секунды
Kukurudza,не я составлял, так что нет
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2014, 18:47
Привет! Вот еще темы с ответами:

Как сделать членом класса экземпляр этого же класса - C++
class Operation { public: bool type; //true = operation, false = number char Operator; Operation L_Op; Operation R_Op; ...

помогите сделать сортировку массива. - C++
есть вектор(одномерный массив). из рандомного числа элементов, и рандомными элементами от 0 до 100. вывод такого массива. #include...

Как правильно сделать сортировку? - C++
Никак не получается отсортировать так, чтобы сначала сортировались люди военнообязанные и по году рождения, а затем невоеннообязанные. ...

Друзья, подскажите, говорят, что можно поля класса инициализировать в момент объявления класса. Как это сделать? - C++
Скажу сразу, а то сейчас начнется, что я прекрасно понимаю, что поля класса при объявлении инициализировать нельзя. Можно конструктором при...


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

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

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