Написать программу обработки файла, содержащего информацию о рейтинге студентов. Каждая запись должна содержать Ф.И.О. и полученный балл рейтинга. Вывести информацию, отсортированную в порядке увеличения рейтинга. Результаты выполнения программы сохранить в текстовом файле. При работе с файлом должны быть выполнены следующие действия: создание, просмотр, добавление новой записи, сортировка, сохранение результатов.
#include <stdio.h>
#include <io.h>
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <fstream>
using namespace std;
struct TZap{
char FIO[30];
double s_b;
} Zap;
int size = sizeof(TZap);
FILE *Fz, *Ft;
char File_Zap[] = "zapisi.dat";
char File_Rez[] = "rezult.txt";
void Out(TZap);
int void main(int argc, char** argv[])
{
int kod, D_f, i=0, j, kol;
long len;
TZap st, *mas_Z;
Ft = fopen(File_Rez, "w");
while(true) {
puts("\n Create - 1\n Add - 2\n View - 3\n Sort - 4\n EXIT - 0");
scanf("%d", &kod);
switch(kod) {
case 1:
if ((Fz=fopen(File_Zap,"wb"))==NULL) {
puts("\n Create ERROR!");
return;
}
fclose(Fz);
printf("\n Create New File %s !\n",File_Zap);
break;
case 2:
Fz = fopen(File_Zap,"ab");
printf("\n F.I.O. - ");
fflush(stdin);
gets(Zap.FIO);
printf(" Ball - ");
scanf("%lf", &Zap.s_b);
fwrite(&Zap, size, 1, Fz);
fclose(Fz);
break;
case 3:
if ((Fz=fopen(File_Zap,"rb"))==NULL) {
puts("\n Open ERROR!");
return;
}
printf("\n\t--------- Informations ---------");
fprintf(Ft,"\n\t--------- Informations ---------");
while(1) {
if(!fread(&Zap,size,1,Fz)) break;
Out(Zap);
}
fclose(Fz);
break;
case 4:
Fz = fopen(File_Zap,"rb");
D_f = fileno(Fz);
len = filelength(D_f);
kol = len/size;
mas_Z = new TZap[kol];
for (i=0; i < kol; i++)
fread((mas_Z+i), size, 1, Fz);
fclose(Fz);
printf("\n\t----- S O R T -----\n");
fprintf(Ft,"\n\t----- S O R T -----\n");
for (i=0; i < kol-1; i++)
for (j=i+1; j < kol; j++)
if (mas_Z[i].s_b > mas_Z[j].s_b) {
st = mas_Z[i];
mas_Z[i] = mas_Z[j];
mas_Z[j] = st;
}
for (i=0; i<kol; i++)
Out(mas_Z[i]);
delete []mas_Z;
break;
case 0:
fclose(Ft);
return;
}
}
}
void Out(TZap z)
{
printf("\n %20s , %6.3lf .", z.FIO,z.s_b);
fprintf(Ft, "\n %20s , %6.3lf .", z.FIO, z.s_b);
}
E:\CProjects\1\main.cpp [Error] two or more data types in declaration of 'main' E:\CProjects\1\Makefile.win recipe for target 'main.o' failed
Ругается вот на эту строку:
int void main(int argc, char** argv[])
E:\CProjects\1\main.cpp In function 'int main()':
E:\CProjects\1\main.cpp [Error] return-statement with no value, in function returning 'int' [-fpermissive]
E:\CProjects\1\main.cpp [Error] return-statement with no value, in function returning 'int' [-fpermissive]
E:\CProjects\1\main.cpp [Error] return-statement with no value, in function returning 'int' [-fpermissive]
E:\CProjects\1\Makefile.win recipe for target 'main.o' failed
Ругается на return
Само собой - вы говорите примерно "а это моя левая правая рука".
В случае main
, к счастью, выбора никакого нет - main
возвращает int
и только int
.
Так что уберите из этой строки void
.
Далее, второе аргумент - или char*argv[]
, или char**argv
, но не ваш вариант. Выберите что-то одно.
Потом - все return
в функции main
обязаны возвращать значения. Какие - ваше дело. Обычно это код ошибки; если выход штатный и ошибок нет - return 0
.
Потом, забудьте про функцию gets
! Считайте, что ее нет в стандарте (а ее по большому счету там и нет...) fgets
из stdin
или gets_s
, но не gets
!
Если будет ругань из-за переменной size
- VC++ 2017 ругается - то укажите в тексте явно, что вы обращаетесь к глобальной переменной, написав вместо size
- ::size
.
Это так, для начала...
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Необходимо реализовать отправку данных на http серверКак это можно реализовать на java, в android приложении?
пытаюсь отправить сообщение в группу через Api Vk Android , но сообщение не отправляется, авторизация есть, стена у группы открыта