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

Записать исходные данные на диск в виде текстовых и двоичных файлов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ где ошибка http://www.cyberforum.ru/cpp-beginners/thread1092556.html
#include <iostream> using namespace std; char *get_substr(char *sub, char *str); int main(){ char *substr; substr = get_substr("три", "один два три четыре");
C++ Поиск и удаление элементов в одномерном массиве Всем привет! Задача такая: Найти нужный элемент в массиве и удалить его. Если есть повторы, их тоже нужно удалить. Что-то у меня не получается, помогите пожалуйста разобраться в чём дело. ... http://www.cyberforum.ru/cpp-beginners/thread1092544.html
Если у диагонали этой матрицы находится обратный элемент , то матрицу транспонировать C++
Дана матрица 3х3. Если у диагонали этой матрицы находится обратный элемент , то матрицу транспонировать надо , а если нет обратного элемента ,то нижние строки превратить в нули. Помогите с написанием...
Составить описание класса для представления комплексных чисел C++
Нужна помощь новичку:-| Задание было такое Составить описание класса для представления комплексных чисел. Обеспечить выполнение операций сложения, вычитания и умножения комплексных чисел. Теперь...
C++ Подскажите пожалуйста как заполнить весь массив структур структурой p1 http://www.cyberforum.ru/cpp-beginners/thread1092512.html
Подскажите пожалуйста как заполнить весь массив структур структурой p1; { struct Univer{ char fam; char kaf; char dol; double zar;}; Univer *p1=new Univer; ...
C++ Найти для каждого студента средний бал за все пять лет и год, когда бал был максимальным Имеются сведения по студентам: студент, бал в расчете на одного человека за каждый год из последних 5-ти лет. Найти для каждого студента средний бал за все пять лет и год, когда бал был... подробнее

Показать сообщение отдельно
Polls
0 / 0 / 0
Регистрация: 09.02.2014
Сообщений: 15

Записать исходные данные на диск в виде текстовых и двоичных файлов - C++

09.02.2014, 16:14. Просмотров 233. Ответов 0
Метки (Все метки)

Имеются сведения по студентам: студент, балл в расчете на одного человека за каждый год из последних 5-ти лет. Найти для каждого студента средний балл за все пять лет и год, когда балл был максимальным
Студентов у которых баллы в течении 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
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<io.h>
#include<string.h>
#include<iostream.h>
//----------------------------------
int N_Max(int* A,int N){
//----------------------------------
int i,k=0;
for(i=1;i<N;i++)if(A[k]<A[i])k=i;
return k;              }
//----------------------------------
float SR_Mas(int* A,int N){
//----------------------------------
float S=0;
for(int i=0;i<N;i++)S+=A[i];
if(N)S/=N;
return S;                 }
//----------------------------------
void Str_RND(char* s,int M){
//----------------------------------
char st[]="QWERTYUIOPASDFGHJKLZXCVBNM";
int j,k,L=strlen(st);
k=rand()%M;
for(j=0;j<2+k;j++)s[j]=st[rand()%L];
​​  s[j]='\0';   }
//----------------------------------
int Nom_Pole(){ int i,p; char s[8];
//----------------------------------
do{
cout<<"\n Input nomer polya (1 - 8) for sorting (OR 0 - Exit): ";
gets(s);
p=atoi(s);
}while((p<0)||(p>8));
return p;       }
//----------------------------------
//  Структура данных:
//----------------------------------
struct Zap{ char Fam[10];
           int Bal[4];
​    float SRED;
           int Max;
           int Nom; };
//----------------------------------
int Sravnenie(Zap A,Zap B,int p){
//----------------------------------
int b;
switch(p){
case 1:b=strcmp(A.Fam,B.Fam)<0;break;
case 2:case 3:case 4:case 5:
      b=A.Bal[p-2]<B.Bal[p-2];break;
case 6:b=A.SRED<B.SRED;break;
case 7:b=A.Max<B.Max;break;
case 8:b=A.Nom<B.Nom;break;
        }
return b;                       }
//-------------------------------------------------
int Input(Zap* Mas,int n);                    // 0
//-------------------------------------------------
void Input_con(Zap* Mas,int n);               // 1
void Input_RND(Zap* Mas,int n);               // 2
int Input_bin(FILE* f,Zap* Mas);              // 3
void Print_table(FILE *ft,Zap* Mas,int kol);  // 4
void Action(Zap* Mas,int kol);                // 5
void Sortirovka(Zap* Mas,int kol,int p);      // 6
int Save(Zap* Mas,int kol);                   // 7
void Write_bin(FILE* f, Zap* Mas, int kol);   // 8
//-------------------------------------------------
int Input(Zap* Mas){ int N,i;char NF[15];     // 0
//-------------------------------------------------
FILE * ft;
do{ 
cout<<"\n Input data from :";
cout<<"\n 1- Consol, 2- RND, 3- File, 0- Exit: -> "; cin>>i;
if(!i)exit(0);
if(i<3){cout<<"\n Input kol-vo zapisei: "; cin>>N;}
switch(i){
case 1:Input_con(Mas,N);break;           // 1
case 2:Input_RND(Mas,N);break;           // 2
case 3:N=0;
      cout<<"\n Input File Name: ";cin>>NF;
     ft=fopen(NF,"rb");
     if(!ft){cout<<"\n File -> no exist!";break;}
      N=Input_bin(ft,Mas); fclose(ft);  // 3
         }
 }while(N==0);
return N;         }
//==================================================
void main(){ int N,p; clrscr();
//==================================================
Zap* Stud;
N=Input(Stud); // 0
//-----------------------------------
Print_table(stdout,Stud,N);// 4
Action(Stud,N);            // 5
Print_table(stdout,Stud,N);// 4
//-----------------------------------
while(p=Nom_Pole()){
Sortirovka(Stud,N,p);      // 6
Print_table(stdout,Stud,N);// 4
Save(Stud,N);      }       // 7
             }
//==================================================
//- Описания функций:  ----------------------
void Input_con(Zap* Mas,int kol){ Zap z;     // 1
//------------------------------------------------
for(int i=0;i<kol;i++){
printf("\n %d). Input FAM: ",i+1); cin>>z.Fam;
for(int j=0;j<4;j++){
printf("     Input BAL %d: ",j+1); cin>>z.Bal[j];
                    }
z.SRED=0; z.Max=0; z.Nom=0; Mas[i]=z; } }
//------------------------------------------------
void Input_RND(Zap* Mas,int n){ Zap z;       // 2
//------------------------------------------------
int i,j;
srand(1);
for(i=0;i<n;i++){ Str_RND(z.Fam,8);
for(j=0;j<4;j++)z.Bal[j]=1+rand()%15;
z.SRED=0; z.Max=0; z.Nom=0;
Mas[i]=z;       }       }
//-----------------------------------------------
int Input_bin(FILE* f,Zap* Mas){             //3
//-----------------------------------------------
int i=fileno(f);
long L=filelength(i);
int kol=L/sizeof(Zap);
cout<<"\n Kol-vo zapisei="<<kol;
Mas=new Zap[kol];
for(i=0;i<kol;i++)fread(Mas+i,sizeof(Zap),1,f);
return kol;                  }
//---------------------------------------------------------
void Print_table(FILE *ft,Zap* Mas,int kol){int i,j;  // 4
//---------------------------------------------------------
if(ft==stdout)clrscr();
fprintf(ft,"\n ----------1---------2------3------4-------5------6--------7----8---");
fprintf(ft,"\n   N      Fam        B1     B2     B3      B4    SRED     Max  Nom");
fprintf(ft,"\n -------------------------------------------------------------------");
for(i=0;i<kol;i++){ fprintf(ft,"\n %2d). %10s ",i+1,Mas[i].Fam);
for(j=0;j<4;j++)fprintf(ft," %5d ",Mas[i].Bal[j]);
if(Mas[i].Nom>0)fprintf(ft," %8.2f %6d %4d",
Mas[i].SRED,Mas[i].Max,Mas[i].Nom);
                   }
fprintf(ft,"\n -------------------------------------------------------------------");
cout<<"\n Press any key for continue ..."; getch();
                       }
//--------------------------------------------------
void Action(Zap* Mas,int kol){ int i,j;       // 5
//--------------------------------------------------
for( i=0;i<kol;i++){
j=N_Max(Mas[i].Bal,4);
Mas[i].Nom=j+1;
Mas[i].Max=Mas[i].Bal[j];
Mas[i].SRED=SR_Mas(Mas[i].Bal,4);
                  }}
//--------------------------------------------------
void Sortirovka(Zap* Mas,int kol,int p){      // 6
//--------------------------------------------------
int i,j,f,c; Zap z;
cout<<"\n Increasing (A-Z)? (1-Yes, 0-No): "; cin>>c;
for(i=0;i<kol;i++)for(j=i+1;j<kol;j++){
                 f=Sravnenie(Mas[i],Mas[j],p);
                 if(c)f=!f;
                 if(f){z=Mas[i];Mas[i]=Mas[j];Mas[j]=z;}
     вЂ‹вЂ‹вЂ‹               }}
//---------------------------------------------
int Save(Zap* Mas, int kol){              // 7
//---------------------------------------------
FILE* ft; int L; char NF[15];
cout<<"\n Save in File: 1 - txt, 2 - bin ? (0 - No): ";cin>>L;
if(L>0){cout<<"\n Input File Name: ";cin>>NF;}
switch(L){
case 1:ft=fopen(NF,"wt"); Print_table(ft,Mas,kol);fclose(ft);break;
case 2:ft=fopen(NF,"wb"); Write_bin(ft,Mas,kol); fclose(ft); // 8
         }
return L;       }
//------------------------------------------------
void Write_bin(FILE* f, Zap* Mas, int kol){ // 8
//------------------------------------------------
for(int i=0;i<kol;i++)fwrite(Mas+i,sizeof(Zap),1,f);
cout<<"\n File *.bin is ready! "; getch();}
Добавлено через 1 час 59 минут
Как переделать этот код под свою задачу?

Добавлено через 1 час 16 минут
...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru