Created
January 5, 2015 18:21
-
-
Save Evshved/e8f4ad5c38a6e961e228 to your computer and use it in GitHub Desktop.
Lab#8
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| //--------------------------------------------------------------------------- | |
| #include <vcl.h> | |
| #pragma hdrstop | |
| #include "Unit1.h" | |
| #include <stdio.h> | |
| #include <io.h> | |
| //--------------------------------------------------------------------------- | |
| #pragma package(smart_init) | |
| #pragma resource "*.dfm" | |
| TForm1 *Form1; | |
| //--------------------------------------------------------------------------- | |
| struct TZap | |
| { | |
| char FIO[30],date_of_birth[13]; | |
| //int ; | |
| double average_count,otmM,otmX,otmI,otmF,number_of_group; | |
| } | |
| Zap; | |
| int size = sizeof(TZap); | |
| int counter_of_puts=0; | |
| double global_counter,add_of_count; | |
| FILE *Fz; | |
| AnsiString File_Zap; | |
| void Out(TZap, TMemo*); | |
| void Clear_Edit(void); | |
| //--------------------------------------------------------------------------- | |
| void Clear_Edit(void) | |
| { | |
| Form1->Edit1->Text=""; | |
| //Form1->Edit2->Text=""; | |
| Form1->Edit3->Text=""; | |
| Form1->Edit4->Text=""; | |
| Form1->Edit5->Text=""; | |
| Form1->Edit6->Text=""; | |
| Form1->Edit7->Text=""; | |
| Form1->Edit8->Text=""; | |
| } | |
| //--------------------------------------------------------------------------- | |
| __fastcall TForm1::TForm1(TComponent* Owner) | |
| : TForm(Owner) | |
| { | |
| } | |
| //--------------------------------------------------------------------------- | |
| void __fastcall TForm1::FormCreate(TObject *Sender) | |
| { | |
| Clear_Edit(); | |
| Memo1->Clear(); | |
| } | |
| //---создать------------------------------------------------------------------------ | |
| void __fastcall TForm1::Button2Click(TObject *Sender) | |
| { | |
| OpenDialog1->Title="Создать новый файл"; | |
| if (OpenDialog1->Execute()){ | |
| File_Zap = OpenDialog1->FileName; | |
| Memo1->Lines->Add("Создали новый файл: "+AnsiString(File_Zap)); | |
| if ((Fz=fopen(File_Zap.c_str(),"wb"))==NULL) { | |
| ShowMessage("Ошибка создания ФАЙЛА!"); | |
| return; | |
| } | |
| } | |
| else | |
| { | |
| Memo1->Lines->Add("Вы не создали файл."); | |
| } | |
| fclose(Fz); | |
| } | |
| //----добавить----------------------------------------------------------------------- | |
| void __fastcall TForm1::Button1Click(TObject *Sender) | |
| { | |
| Fz = fopen(File_Zap.c_str(),"ab"); | |
| strcpy(Zap.FIO, Edit1 -> Text.c_str()); | |
| strcpy(Zap.date_of_birth, Edit3 -> Text.c_str()); | |
| Zap.number_of_group = StrToFloat(Edit4->Text); | |
| Zap.otmM = StrToInt(Edit5->Text); | |
| Zap.otmF = StrToInt(Edit6->Text); | |
| Zap.otmI = StrToInt(Edit7->Text); | |
| Zap.otmX = StrToInt(Edit8->Text); | |
| Zap.average_count = (Zap.otmM+Zap.otmX+Zap.otmF+Zap.otmI)/4; | |
| Memo1->Lines->Add("----------------------------"); | |
| Out(Zap, Memo1); | |
| counter_of_puts++; | |
| fwrite(&Zap, size, 6, Fz); | |
| Clear_Edit(); | |
| fclose(Fz); | |
| } | |
| //---сортировать------------------------------------------------------------------------ | |
| void __fastcall TForm1::Button4Click(TObject *Sender) | |
| { | |
| TZap st, *mas_Z; | |
| int interest_group,counter; | |
| counter=global_counter=0; | |
| Fz = fopen(File_Zap.c_str(),"rb"); | |
| int D_f = fileno(Fz); // Находим дескриптор файла | |
| int len = filelength(D_f); // Находим размер файла | |
| int i, j, kol; | |
| kol = len/size; //Количество записей в файле | |
| mas_Z = new TZap[kol]; | |
| // Считываем записи из файла в динамический массив | |
| for (i=0; i < kol; i++) | |
| fread((mas_Z+i), size, 1, Fz); | |
| fclose(Fz); | |
| Memo1->Lines->Add("====================="); | |
| Memo1->Lines->Add("Сортированные сведения"); | |
| interest_group=StrToInt(Edit2->Text); | |
| for (i=0; i < kol-1; i++) { | |
| if ((mas_Z[i].number_of_group==interest_group) && (mas_Z[i].otmF>0)){ | |
| global_counter+=mas_Z[i].otmM+mas_Z[i].otmF+mas_Z[i].otmI+mas_Z[i].otmX; | |
| counter++; | |
| } | |
| } | |
| add_of_count=global_counter/(counter*4); | |
| Memo1->Lines->Add("Средний балл группы "+FloatToStr(add_of_count)); | |
| Memo1->Lines->Add("----------------------"); | |
| Memo1->Lines->Add("Cписок студентов, имеющих средний балл выше общего"); | |
| for (i=0; i < kol-1; i++) { | |
| if ((mas_Z[i].average_count > add_of_count) | |
| && (mas_Z[i].number_of_group==interest_group)) { | |
| Out(mas_Z[i], Memo1); | |
| } | |
| } | |
| delete []mas_Z; | |
| } | |
| //---сохранить------------------------------------------------------------------------ | |
| void __fastcall TForm1::Button5Click(TObject *Sender) | |
| { | |
| SaveDialog1->Title="Сохранить файл результатов"; | |
| if (SaveDialog1->Execute()) { | |
| AnsiString FileNameRez = SaveDialog1->FileName; | |
| Memo1->Lines->SaveToFile(FileNameRez); | |
| } | |
| } | |
| //----открытие----------------------------------------------------------------------- | |
| void __fastcall TForm1::Button3Click(TObject *Sender) | |
| { | |
| OpenDialog1->Title="Открыть файл"; | |
| if (OpenDialog1->Execute()) { | |
| File_Zap = OpenDialog1->FileName; | |
| if ((Fz=fopen(File_Zap.c_str(),"rb"))==NULL) { | |
| ShowMessage("Ошибка открытия ФАЙЛА!"); | |
| return; | |
| } | |
| } | |
| Memo1->Lines->Add("--------- Все сведения ---------"); | |
| while(1){ | |
| if(!fread(&Zap,size,1,Fz)) | |
| { | |
| break; | |
| return; | |
| } | |
| Out(Zap, Memo1); | |
| } | |
| fclose(Fz); | |
| } | |
| //--очистка------------------------------------------------------------------------- | |
| void __fastcall TForm1::Button6Click(TObject *Sender) | |
| { | |
| Memo1->Clear(); | |
| } | |
| //--------------------------------------------------------------------------- | |
| void Out(TZap z, TMemo *Memo1) | |
| { | |
| Memo1->Lines->Add("ФИО - " + AnsiString(z.FIO)); | |
| Memo1->Lines->Add("Год Рождения - "+ AnsiString(z.date_of_birth)); | |
| Memo1->Lines->Add("Номер группы - " +FloatToStr(z.number_of_group)); | |
| Memo1->Lines->Add("Математика - " + FloatToStr(z.otmM) + " Физика - " + FloatToStr(z.otmF)); | |
| Memo1->Lines->Add("Информатика - " + FloatToStr(z.otmI) + " Химия - " + FloatToStr(z.otmX)); | |
| Memo1->Lines->Add("Средний балл - " + FloatToStr(z.average_count)); | |
| } | |
| void __fastcall TForm1::Button7Click(TObject *Sender) | |
| { | |
| String First_name[5]={"Николя","Аркадий","Антон","Михаил","Валерьянтий"}; | |
| String Last_name[5]={"Иванов","Гавриилов","Зоранко","Зубко","Кабыко"}; | |
| String Middle_name[5]={"Иванович","Михайлович","Евгеньевич","Юрьевич","Валерьевич"}; | |
| Form1->Edit1->Text=Last_name[random(5)] +" " +First_name[random(5)]+" " + Middle_name[random(5)]; | |
| String Group_number[3]={"220503","220101","230001"}; | |
| Form1->Edit4->Text=Group_number[random(3)]; | |
| Form1->Edit2->Text=Group_number[random(3)]; | |
| Form1->Edit3->Text=random(11)+1990; | |
| Form1->Edit5->Text=random(4)+5; | |
| Form1->Edit6->Text=random(4)+5; | |
| Form1->Edit7->Text=random(4)+5; | |
| Form1->Edit8->Text=random(4)+5; | |
| } | |
| //--------------------------------------------------------------------------- | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment