Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2016, 19:15   #1
JetRay
Новичок
Джуниор
 
Регистрация: 24.03.2016
Сообщений: 1
По умолчанию Обработка структур с использованием файлов(C++)

Написать программу обработки файла типа запись, содержащую следующие пункты меню: «Создание», «Просмотр», «Коррекция» (добавление новых данных или редактирование старых), «Решение индивидуального задания».
Каждая запись должна содержать следующую информацию о студентах:
– фамилия и инициалы;
– год рождения;
– номер группы;
– оценки за семестр: по физике, математике, информатике, химии;
– средний балл.
Организовать ввод исходных данных, средний балл рассчитать по введенным оценкам.
Вычислить общий средний балл всех студентов и распечатать список студентов со средним баллом выше общего среднего балла.

Есть попытка что-то сделать но я не могу понять как сделать саму сортировку.
Вот код того что есть:
Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include <stdio.h>
#include <math.h>
#include <io.h>
#include <iostream.h>
#pragma argsused
struct abit{
char FIO[50],gryp[20];
int god,fiz,mat,inf,him;
double sb,sro;
}ab;
FILE *Fz,*Ft;
int size=sizeof(abit);
char File_Zap[]="zapisi.dat";
char File_Rez[]="rezult.txt";
void Out(abit);

//---------------------------------------------------------------------------


void main()
{
        int kod,kol,d,i=0;
        long len;
        abit 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");
                		cout<<"F.I.O.- ";
                		fflush(stdin);
				gets(ab.FIO);
                		cout<<"God rogdenia- ";
				cin>>ab.god;
                                cout<<"Nomer gryppi- ";
                                fflush(stdin);
				gets(ab.gryp);
                                cout<<"ball po fizike, matematike, informatike, himii: " ;
                                cin>>ab.fiz>>ab.mat>>ab.inf>>ab.him;
                                ab.sb=((ab.fiz+ab.mat+ab.him+ab.inf)/4.);
                                cout<<"sr ball "<<ab.sb;
                		fwrite(&ab, 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(&ab,size,1,Fz)) break;
        	        			Out(ab);
                		}
                		fclose(Fz);
            	break;

                case 4:

                		Fz = fopen(File_Zap,"rb");
                		d = fileno(Fz);
				len = filelength(d);
				kol = len/size;
				mas_z = new abit[kol];
                                for (i=0; i < kol; i++)
                                fread((mas_z+i), size, 1, Fz);
        			fclose(Fz);
                                Fz = fopen(File_Zap,"ab");
                                  for (i=0; i<kol; i++) {
                                  ab.sro+=mas_z[i].sb;   }
                                ab.sro=ab.sro/kol;
                                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++)
                             			     if (mas_z[i].sb > ab.sro) {
                            	 		     	st = mas_z[i]; }

        					for (i=0; i<kol; i++)
						Out(mas_z[i]);
  	        			delete []mas_z;
                                                          break;
                                    case 0:
                		fclose(Ft);

                		return;

            }
  }
}



      void Out(abit z)
{
     printf("\n%16s god:%d gruppa:%5s Fiz:%d Mat:%d Inf:%d Him:%d Sr.ball:%6.2lf.",z.FIO,z.god,z.gryp,z.fiz,z.mat,z.inf,z.him,z.sb);
     fprintf(Ft,"\n%20s god:%d gruppa:%5s Fiz:%d Mat:%d Inf:%d Him:%d Sr.ball:%6.2lf.    %6.2lf.",z.FIO,z.god,z.gryp,z.fiz,z.mat,z.inf,z.him,z.sb,z.sro);
}

//---------------------------------------------------------------------------
JetRay вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача с использованием структур TheNYT Visual C++ 3 01.04.2015 06:56
Программирование с использованием структур vbn1 Общие вопросы C/C++ 2 23.12.2014 19:52
Разработка базы данных с использованием структур deadwing C/C++ Базы данных 1 09.12.2014 20:11
Напишите программу с использованием динамических структур netiv Паскаль, Turbo Pascal, PascalABC.NET 2 02.03.2012 12:51
Обработка массивов структур с использованием контейнеров artyom060791 Помощь студентам 0 14.04.2009 22:43