
- •Содержание
- •Основные теоретические сведения:
- •Константы в языке с
- •Операции отношения и логические операции
- •Операции присваивания
- •Поразрядные операции
- •Приоритет операций
- •Функции языка с
- •Операторы языка с Условный оператор if
- •Операторы цыклов
- •Оператор цикла с параметром for
- •Понятие массива
- •Объявление одномерных массивов
- •Указатели
- •Понятие статической и динамической памяти
- •Двоичные файлы в с
- •Главный модуль Unit1.Cpp
- •Модуль «Про автора» Unit3.Cpp
- •Модуль «Задание» Unit2.Cpp
- •Модуль «Заставка» Unit4.Cpp
- •Список использованной литературы:
Главный модуль Unit1.Cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <stdio.h>
#include <DateUtils.hpp>
#include "Unit1.h"
#include "Unit2.h"
#include "Unit3.h"
#include "Unit4.h"
#include "bibl.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "sEdit"
#pragma resource "*.dfm"
TForm1 *Form1;
int n=0;
FILE *f2;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void setka1(TStringGrid *sg)
{sg->Cells[0][0]="№";
sg->Cells[1][0]="Фамилия";
sg->Cells[2][0]="Имя";
sg->Cells[3][0]="Отчество";
sg->Cells[4][0]="Пол";
sg->Cells[5][0]="Должность";
sg->Cells[6][0]="Дата приема";
}
void setka2(TStringGrid *sg,int i)
{sg->Cells[1][i+1]=AnsiString(r.fam);
sg->Cells[2][i+1]=AnsiString(r.im);
sg->Cells[3][i+1]=AnsiString(r.o);
sg->Cells[4][i+1]=AnsiString(r.p);
sg->Cells[5][i+1]=AnsiString(r.dol);
sg->Cells[6][i+1]=DateTimeToStr(r.d);
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{f=fopen("a.dat","ab+");
strcpy(r.fam,Edit1->Text.c_str());
strcpy(r.im,Edit2->Text.c_str());
strcpy(r.o,Edit3->Text.c_str());
strcpy(r.p,ComboBox1->Text.c_str());
strcpy(r.dol,Edit4->Text.c_str());
r.d=StrToDateTime(Edit5->Text);
fwrite(&r,sizeof(r),1,f);
n++;
fclose(f);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{setka1(sg1);
int i=0,k=0;
f=fopen("a.dat","rb+");
while(fread(&r,sizeof(r),1,f)>0)
{setka2(sg1,i);
i++;}
for(int j=1;j<=n;j++)
sg1->Cells[0][j]=IntToStr(j);
sg1->RowCount=i+1;
fclose(f);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{setka1(sg2); float sr=0;
int i=0,k=0;
f=fopen("a.dat","rb+");
sg2->Cells[7][0]="Средний стаж";
while(fread(&r,sizeof(r),1,f)>0)
{sr+=YearsBetween(TDateTime(Now()),TDateTime(r.d));
k++;} sr=sr/k;
fclose(f); f=fopen("a.dat","rb+");
while(fread(&r,sizeof(r),1,f)>0)
if((float)YearsBetween(TDateTime(Now()),TDateTime(r.d))>sr)
{sg2->Cells[7][i+1]=IntToStr(YearsBetween(TDateTime(Now()),TDateTime(r.d)));
setka2(sg2,i);
i++;}
for(int j=1;j<=i;j++)
sg2->Cells[0][j]=IntToStr(j);
sg2->RowCount=i+1;
fclose(f);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{Memo1->Clear();
int i=0,k=0;
f=fopen("a.dat","rb+");
f2=fopen("b.txt","at+");
while(fread(&r,sizeof(r),1,f)>0)
if(AnsiString(r.p)=="М")
{char *w=DateTimeToStr(r.d).c_str();
fprintf(f2,"%s %s %s %s %s %s\n",r.fam,r.im,r.o,r.p,r.dol,w);}
sg2->RowCount=i;
fclose(f);
fclose(f2);
Memo1->Lines->LoadFromFile("b.txt");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
f=fopen("a.dat","wb");
Form4=new TForm4(this);
Form4->ShowModal();
Form4->Free();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N5Click(TObject *Sender)
{
Form3->Show();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N4Click(TObject *Sender)
{
Form2->Show();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{setka1(sg3);
int i,k=kol(f);
rab *mas=new rab[k];
formir(f,mas,k);
sort(mas,k);
for(i=0;i<k;i++)
{sg3->Cells[1][i+1]=AnsiString(mas[i].fam);
sg3->Cells[2][i+1]=AnsiString(mas[i].im);
sg3->Cells[3][i+1]=AnsiString(mas[i].o);
sg3->Cells[4][i+1]=AnsiString(mas[i].p);
sg3->Cells[5][i+1]=AnsiString(mas[i].dol);
sg3->Cells[6][i+1]=AnsiString(mas[i].d);
}
sEdit1->Text=IntToStr(k);
for(int j=1;j<=k;j++)
sg3->Cells[0][j]=IntToStr(j);
sg3->RowCount=k+1;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N2Click(TObject *Sender)
{
f=fopen("a.dat","wb");
f2=fopen("b.txt","wt");
fclose(f);
fclose(f2);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N3Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------