Читайте также: |
|
Скласти програму для обробки файла (бази) даних по заданому об’єкту
Програма повинна мати наступне меню:
- Додавання записів;
- Редагування записів;
- Вилучення запису із заданим номером;
- Перегляд усіх записів;
- Видача звіту. Для введення, редагування та перегляду записів розробити необхідні екранні форми.
Початкові дані:
Ведення обліку на елеваторі.
Вміст кожного запису:
1) Номер накладної;
2) Дата надходження;
3) Назва агрофірми;
4) Найменування зернової культури;
5) Кількість, ц;
6) Вологість, %;
7) % білка;
Об’єм бази даних повинен складати 10 – 15 записів. Звітна форма повинна виводити на екран список агрофірм, що поставляють задану зернову культуру (уводиться з клавіатури).
2.2 Виконання індивідуального завдання
Розроблюємо учбово-демонстраційну програму для дослідження алгоритмів обробки даних.
Завдання реалізоване в одній программі, котра поділена на чотири частини. Всі підпрограми пов’язані з головною формою та викликаються з меню головної форми.
Рис. 1 - Головна форма завдання
Програма містить наступні команди меню:
1 Одномірний масив
2 Матриця
3 Обробка рядів
4 Табулювання функції
Надалі запускаємо програму, вставляємо свої задані величини.
Результат на рис.2-5:
Рис. 2 – меню «Одномірний масив»
Рис. 3 – меню «Матриця»
Рис. 4 – меню «Обробка рядів»
Рис. 5 - меню «Табулювання функції»
Мною був використаний такий програмний код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, Grids, Math, TeEngine, TeeFunci, Series,
ExtCtrls, TeeProcs, Chart;
type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
Label1: TLabel;
Button1: TButton;
StringGrid1: TStringGrid;
TabSheet2: TTabSheet;
Label4: TLabel;
StringGrid2: TStringGrid;
Button2: TButton;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
Label8: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Button4: TButton;
Memo1: TMemo;
Memo2: TMemo;
Button3: TButton;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Label13: TLabel;
StringGrid4: TStringGrid;
OpenDialog1: TOpenDialog;
Button5: TButton;
Label14: TLabel;
Label15: TLabel;
Edit5: TEdit;
Edit6: TEdit;
Label9: TLabel;
Label16: TLabel;
Chart1: TChart;
Series1: TFastLineSeries;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
Label24: TLabel;
StringGrid5: TStringGrid;
Label2: TLabel;
StringGrid3: TStringGrid;
StringGrid6: TStringGrid;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
procedure TabSheet1Show(Sender: TObject);
procedure TabSheet2Show(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure TabSheet4Show(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
i, iParn, iNeParn: integer;
begin
iParn:= 0;
iNeParn:= 0;
for i:= 0 to 19 do
if StrToInt(StringGrid1.Cells[i, 0]) mod 2 = 0
then begin
StringGrid5.Cells[iParn, 0]:= StringGrid1.Cells[i, 0];
inc(iParn);
end
else begin
StringGrid6.Cells[iNeParn, 0]:= StringGrid1.Cells[i, 0];
inc(iNeParn);
end;
end;
procedure TForm1.TabSheet1Show(Sender: TObject);
var
i: integer;
begin
for i:= 0 to 19 do
StringGrid1.Cells[i, 0]:= IntToStr(random(20) - 10);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i, j, iMax, jMax, max: integer;
buf: string;
begin
iMax:= 0;
jMax:= 0;
max:= StrToInt(StringGrid2.Cells[0, 0]);
for i:= 0 to 5 do
for j:= 0 to 5 do
begin
StringGrid3.Cells[i, j]:= StringGrid2.Cells[i, j];
if StrToInt(StringGrid2.Cells[i, j]) > max
then begin
iMax:= i;
jMax:= j;
max:= StrToInt(StringGrid2.Cells[i, j]);
end;
end;
buf:= StringGrid3.Cells[5, 5];
StringGrid3.Cells[5, 5]:= StringGrid3.Cells[iMax, jMax];
StringGrid3.Cells[iMax, jMax]:= buf;
end;
procedure TForm1.TabSheet2Show(Sender: TObject);
var
i, j: integer;
begin
randomize;
for i:= 0 to 5 do
begin
for j:= 0 to 5 do
StringGrid2.Cells[i, j]:= IntToStr(random(10));
stringGrid3.Rows[i].Clear;
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
if OpenDialog1.Execute then
memo1.Lines.LoadFromFile(openDialog1.FileName);
memo2.Lines.Clear;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
i: integer;
begin
memo2.Lines.Clear;
for i:= 0 to memo1.Lines.Count - 1 do
if pos(' ', memo1.Lines[i]) = 0
then memo2.Lines.Add(memo1.Lines[i]);
end;
procedure TForm1.TabSheet4Show(Sender: TObject);
begin
stringGrid4.ColCount:= 1;
stringGrid4.Cells[0,0]:= 'X';
stringGrid4.Cells[0,1]:= 'Y';
chart1.Series[0].Clear;
label22.Caption:= '';
label23.Caption:= '';
label24.Caption:= '';
end;
procedure TForm1.Button5Click(Sender: TObject);
var
i, cellsCount: integer;
x0, x1, xCur, dx, y, a, b: double;
sry, min, max: double;
first: bool;
begin
chart1.Series[0].Clear;
if (edit2.text <> '') and (edit3.Text <> '') and (edit4.Text <> '')
and (edit5.Text <> '') and (edit6.Text <> '') and (StrToFloat(edit4.Text) > 0)
then begin
x0:= strToFloat(edit2.Text);
x1:= strToFloat(edit3.Text);
dx:= strToFloat(edit4.Text);
a:= strToFloat(edit5.Text);
b:= strToFloat(edit6.Text);
xCur:= x0;
cellsCount:= 1;
i:= 1;
first:= true;
repeat
inc(cellsCount);
stringGrid4.ColCount:= cellsCount;
stringGrid4.Cells[i, 0]:= FloatToStr(xCur);
if xCur > ln (a)
then begin
if a >= 0
then begin
y:= power (a/(a+xCur*xCur),1/3);
stringGrid4.Cells[i, 1]:= FloatToStr(y);
chart1.Series[0].AddXY(xCur, y, '', 545);
if first
then begin
max:= y;
min:= y;
sry:= sry + y;
first:= false;
end
else begin
if y > max
then max:= y;
if y < min
then min:= y;
sry:= sry + y;
first:= false;
end;
end
else stringGrid4.Cells[i, 1]:= 'NaN';
end
else begin
y:=(10* exp(-b*xCur))+ power(ln (a/xCur),2);
stringGrid4.Cells[i, 1]:= FloatToStr(y);
chart1.Series[0].AddXY(xCur, y, '', 545);
if first
then begin
max:= y;
min:= y;
sry:= sry + y;
first:= false;
end
else begin
if y > max
then max:= y;
if y < min
then min:= y;
sry:= sry + y;
first:= false;
end;
end;
xCur:= xCur + dx;
inc(i);
until (xCur >= x1);
sry:= sry / i;
label22.Caption:= FloatToStr(min);
label23.Caption:= FloatToStr(max);
label24.Caption:= FloatToStr(sry);
end;
end;
end.
Дата добавления: 2015-07-16; просмотров: 39 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Системні вимоги Borland Delphi | | | Иван III Васильевич |