StringGrid1->Cells[3][0]="Математика";
StringGrid2->Cells[3][0]="Математика";
StringGrid1->Cells[4][0]="Физика";
StringGrid2->Cells[4][0]="Физика";
StringGrid1->Cells[5][0]="Язык";
StringGrid2->Cells[5][0]="Язык";
StringGrid1->Cells[6][0]="Аттестат";
StringGrid2->Cells[6][0]="Аттестат";
StringGrid1->Cells[7][0]="Средн. экз.";
StringGrid2->Cells[7][0]="Средн. экз.";
StringGrid1->Cells[8][0]="Общ. средн.";
StringGrid2->Cells[8][0]="Общ. средн.";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N5Click(TObject *Sender)
{ //Запись таблицы в файл:
int i, n;
AnsiString str;
try { //Блок защиты операторов.
//Пересчет средних баллов перед сохранением:
N8Click(Sender);
//Открытие файла для записи:
if (SaveDialog1->Execute()){
File_Zap = SaveDialog1->FileName;
f=fopen(File_Zap. c_str(),"wb");
n=StringGrid1->RowCount-1;
//Запись строк таблицы в файл:
for(i=1;i<=n;i++) {
sprav. namber=StrToInt(StringGrid1->Cells[0][i]);
str=StringGrid1->Cells[1][i];
strcpy(sprav. FIO, str. c_str());
str=StringGrid1->Cells[2][i];
strcpy(sprav. adres, str. c_str());
sprav. matem=StrToInt(StringGrid1->Cells[3][i]);
sprav. fizika=StrToInt(StringGrid1->Cells[4][i]);
sprav. lang=StrToInt(StringGrid1->Cells[5][i]);
sprav. sb_attestat=StrToFloat(StringGrid1->Cells[6][i]);
sprav. sb_examen=StrToFloat(StringGrid1->Cells[7][i]);
sprav. sredball=StrToFloat(StringGrid1->Cells[8][i]);
fwrite(&sprav, size,1,f);
}
//Закрытие файла:
fclose(f);
ShowMessage("Данные с таблицы успешно записаны в файл!");
}
}
catch ( ... ){
//Обработка ошибки некорректности данных:
fclose(f);
ShowMessage("Некорректные данные!");
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N14Click(TObject *Sender)
{
int i, j;
//Удаление текущей строки.
if(StringGrid1->RowCount>2) {
for(i=StringGrid1->Row;i<StringGrid1->RowCount-1;i++) {
StringGrid1->Cells[0][i]=IntToStr(i);
for(j=1;j<=StringGrid1->ColCount-1;j++) {
StringGrid1->Cells[j][i]=StringGrid1->Cells[j][i+1];
}
}
StringGrid1->RowCount--;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N13Click(TObject *Sender)
{
//Добавление строки в конец таблицы
StringGrid1->RowCount++;
StringGrid1->Cells[0][StringGrid1->RowCount-1]=IntToStr(StringGrid1->RowCount-1);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N4Click(TObject *Sender)
{
//Открытие файла и чтение его в таблицу:
if (OpenDialog1->Execute()){
File_Zap = OpenDialog1->FileName;
f=fopen(File_Zap. c_str(),"rb");
//Чтение n (количество записей):
int D_f = fileno(f); // Находим дескриптор файла
int len = filelength(D_f); // Находим размер файла
int i, n;
n = len/size; //Количество записей в файле
StringGrid1->RowCount=n+1;
//Чтение n записей из файла в таблицу:
for(i=1;i<=n;i++) {
fread(&sprav, size,1,f);
StringGrid1->Cells[0][i]=IntToStr(sprav. namber);
StringGrid1->Cells[1][i]=sprav. FIO;
StringGrid1->Cells[2][i]=sprav. adres;
StringGrid1->Cells[3][i]=IntToStr(sprav. matem);
StringGrid1->Cells[4][i]=IntToStr(sprav. fizika);
StringGrid1->Cells[5][i]=IntToStr(sprav. lang);
StringGrid1->Cells[6][i]=FloatToStrF(sprav. sb_attestat, ffFixed,8,2);
StringGrid1->Cells[7][i]=FloatToStrF(sprav. sb_examen, ffFixed,8,2);
StringGrid1->Cells[8][i]=FloatToStrF(sprav. sredball, ffFixed,8,2);
}
//Закрытие файла:
fclose(f);
ShowMessage("Данные успешно прочитаны из файла!");
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N6Click(TObject *Sender)
{
int j;
//Создать (очистка таблиц):
StringGrid1->RowCount=2;
for(j=1;j<=StringGrid1->ColCount-1;j++)
StringGrid1->Cells[j][1]="";
StringGrid2->RowCount=2;
for(j=1;j<=StringGrid1->ColCount-1;j++)
StringGrid2->Cells[j][1]="";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N16Click(TObject *Sender)
{
AnsiString gorod, adr;
int i, j,row2,k;
//Поиск (Выборка данных по запросу "Город = Edit1"
gorod=Edit1->Text;
Edit2->Text="";
k=0;
StringGrid2->RowCount=2;
for(j=0;j<=StringGrid2->ColCount-1;j++) StringGrid2->Cells[j][1]="";
row2=1;
for(i=1;i<StringGrid1->RowCount;i++) {
adr=StringGrid1->Cells[2][i];
if(adr. Pos(gorod)>0) {
StringGrid2->RowCount=row2+1;
k++;
for(j=0;j<=StringGrid2->ColCount-1;j++)
StringGrid2->Cells[j][row2]=StringGrid1->Cells[j][i];
row2++;
}
}
Label4->Caption=IntToStr(k);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N8Click(TObject *Sender)
{
//Вычислить для каждой записи средний балл по экзаменам и общий средний балл:
int i;
for(i=1;i<StringGrid1->RowCount;i++) {
//Чтение оценок:
sprav. matem=StrToInt(StringGrid1->Cells[3][i]);
sprav. fizika=StrToInt(StringGrid1->Cells[4][i]);
sprav. lang=StrToInt(StringGrid1->Cells[5][i]);
sprav. sb_attestat=StrToFloat(StringGrid1->Cells[6][i]);
//Вычисление среднего балла за экзамены:
sprav. sb_examen=(sprav. matem+sprav. fizika+sprav. lang)/3;
//Вычисление общего среднего балла (за экзамены и аттестат):
sprav. sredball=(sprav. sb_attestat+sprav. sb_examen)/2;
//Вывод в таблицу средних баллов:
StringGrid1->Cells[7][i]=FloatToStrF(sprav. sb_examen, ffFixed,8,2);
StringGrid1->Cells[8][i]=FloatToStrF(sprav. sredball, ffFixed,8,2);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N11Click(TObject *Sender)
{
float sb;
int i, j,row2,n;
AnsiString sfio, sfio_next, st;
bool p;
//Поиск (Выборка данных по запросу "Средний балл по экзаменам >= Edit2"
sb=StrToFloat(Edit2->Text);
Edit1->Text="";
n=0;
StringGrid2->RowCount=2;
for(j=0;j<=StringGrid2->ColCount-1;j++) StringGrid2->Cells[j][1]="";
row2=1;
for(i=1;i<StringGrid1->RowCount;i++) {
sprav. sb_examen=StrToFloat(StringGrid1->Cells[7][i]);
if(sprav. sb_examen>=sb) {
StringGrid2->RowCount=row2+1;
n++;
for(j=0;j<=StringGrid2->ColCount-1;j++)
StringGrid2->Cells[j][row2]=StringGrid1->Cells[j][i];
row2++;
}
}
Label4->Caption=IntToStr(n);
//Сортировка данных в таблице выборки в алфавитном порядке ФИО:
n=StringGrid2->RowCount-1;
do {
p=false;
for(i=1;i<n;i++) {
sfio=StringGrid2->Cells[1][i];
sfio_next=StringGrid2->Cells[1][i+1];
if(sfio>sfio_next) {
//Обмен строк
for(j=0;j<=StringGrid2->ColCount-1;j++) {
st=StringGrid2->Cells[j][i];
StringGrid2->Cells[j][i]=StringGrid2->Cells[j][i+1];
StringGrid2->Cells[j][i+1]=st;
}
p=true;
}
}
}
while(p);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N2Click(TObject *Sender)
{
//Сортировка данных в порядке убывания общего среднего балла:
float sb, sb_next;
int i, j,n;
bool p;
AnsiString st;
n=StringGrid1->RowCount-1;
do {
p=false;
for(i=1;i<n;i++) {
sb=StrToFloat(StringGrid1->Cells[8][i]);
sb_next=StrToFloat(StringGrid1->Cells[8][i+1]);
if(sb<sb_next) {
//Обмен строк
for(j=0;j<=StringGrid1->ColCount-1;j++) {
st=StringGrid1->Cells[j][i];
StringGrid1->Cells[j][i]=StringGrid1->Cells[j][i+1];
StringGrid1->Cells[j][i+1]=st;
}
p=true;
}
}
}
while(p);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N12Click(TObject *Sender)
{
Form2->ShowModal();
}
//---------------------------------------------------------------------------
Модуль формы «О программе и авторе» Unit2.cpp
//---------------------------------------------------------------------------
#include <vcl. h>
#pragma hdrstop
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
Заголовочный файл Unit1.h
//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes. hpp>
#include <Controls. hpp>
#include <StdCtrls. hpp>
#include <Forms. hpp>
#include <Menus. hpp>
#include <Grids. hpp>
#include <Dialogs. hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TMainMenu *MainMenu1;
TMenuItem *N1;
TMenuItem *N3;
TMenuItem *N4;
TMenuItem *N5;
TMenuItem *N6;
TMenuItem *N9;
TMenuItem *N10;
TMenuItem *N13;
TMenuItem *N14;
TMenuItem *N16;
TStringGrid *StringGrid1;
TLabel *Label1;
TStringGrid *StringGrid2;
TLabel *Label3;
TEdit *Edit1;
TLabel *Label6;
TEdit *Edit2;
TMenuItem *N7;
TMenuItem *N2;
TOpenDialog *OpenDialog1;
TSaveDialog *SaveDialog1;
TMenuItem *N8;
TMenuItem *N11;
TLabel *Label2;
TLabel *Label4;
TMenuItem *N12;
void __fastcall N10Click(TObject *Sender);
void __fastcall FormCreate(TObject *Sender);
void __fastcall N5Click(TObject *Sender);
void __fastcall N14Click(TObject *Sender);
void __fastcall N13Click(TObject *Sender);
void __fastcall N4Click(TObject *Sender);
void __fastcall N6Click(TObject *Sender);
void __fastcall N16Click(TObject *Sender);
void __fastcall N8Click(TObject *Sender);
void __fastcall N11Click(TObject *Sender);
void __fastcall N2Click(TObject *Sender);
void __fastcall N12Click(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
Заголовочный файл Unit2.h
#ifndef Unit2H
#define Unit2H
#include <Classes. hpp>
#include <Controls. hpp>
#include <StdCtrls. hpp>
#include <Forms. hpp>
#include <ExtCtrls. hpp>
#include <Graphics. hpp>
class TForm2 : public TForm
{
__published: // IDE-managed Components
TImage *Image1;
TMemo *Memo1;
private: // User declarations
public: // User declarations
__fastcall TForm2(TComponent* Owner);
};
extern PACKAGE TForm2 *Form2;
#endif
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 |


