Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 09.02.2014
Сообщений: 15
1

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

09.02.2014, 16:14. Показов 462. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Имеются сведения по студентам: студент, балл в расчете на одного человека за каждый год из последних 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.02.2014, 16:14
Ответы с готовыми решениями:

Продажи жилья за полгода: Напечатать исходные данные в виде таблицы
Здравствуйте! Передо мной встал вопрос о решении задачи в системе VBA. Но возникли трудности, я...

Подпрограмма, в которую исходные данные передаются в виде входных параметров
Сторону и периметр квадрата со стороной а. S = a2 P = 4a оформить в виде подпрограммы, в...

Исходные данные для 5-ти товаров записать в типизированный фаил
Исходные данные для 5-ти товаров записать в типизированный фаил.(Модуль1) Результат сохранять в...

Помогите пожалуйста!Написать программу, используя только побитовые операции. Представить исходные данные и/или результаты в двоичном виде
!И ПОЖАЛУЙСТА с построчными комментариями, чтоб легче потом разобраться было, и меньше вопросов...

0
09.02.2014, 16:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.02.2014, 16:14
Помогаю со студенческими работами здесь

Составить линейный алгоритм и программу в которой вводятся исходные данные, вычисляются исходные выражения и выводятся на экран результаты вычислений
Приветствую! Вот попалась задачка - уже второй час ломаю голову. Надо составить линейный алгоритм...

Разработать приложение, позволяющее представлять информацию из текстовых файлов в виде круговых диаграмм
Задача: разработать приложение, позволяющее представлять информацию из текстовых файлов, в каждой...

Как записать несколько текстовых файлов с ограничением количества строк
Добрый день, необходимо записать данные в текстовый файл, но в файле не должно быть более 255...

Как считать данные из нескольких текстовых файлов?
Есть некая папка, в ней может находится каждый раз РАЗНОЕ количество текстовых файлов. Нужно,...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru