- •Лабораторная работа № 2
- •Лабораторная работа № 3 Разработка приложений для обработки данных с использованием графики в Delphi
- •Лабораторная работа № 4 Работа с графикой в Delphi
- •Лабораторная работа № 5 Разработка элементов интерфейса приложений
- •Лабораторная работа № 7 Работа с текстом и рисованной таблицей
- •Лабораторная работа № 8 Работа с процедурами, функциями и файлами
Лабораторная работа № 5 Разработка элементов интерфейса приложений
Цель работы: проектирование пользовательского интерфейса.
Содержание: разработка интерфейса приложения .
13. Разработать приложение для анализа продаж товаров в фирме. На первой странице организовать ввод наименований товаров и сумм продаж. На второй странице в виде гистограммы показать суммы продаж товаров. На третьей странице вывести наименования трех товаров, сумма продаж которых наименьшая.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, TeEngine, Series, TeeProcs, Chart, Grids, ComCtrls, StdCtrls,
ExtCtrls;
type
TForm1 = class(TForm)
Panel1: TPanel;
Button1: TButton;
Button2: TButton;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
StringGrid1: TStringGrid;
Chart1: TChart;
Series1: TBarSeries;
Button3: TButton;
Button4: TButton;
ListBox1: TListBox;
Button5: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
type bud=record
n:string;
r:integer;
end;
var
b:array[1..10] of bud;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);var i,c:integer;
s:string;
begin
stringgrid1.defaultcolwidth:=250;//ширина ячейки таблицы
stringgrid1.defaultrowheight:=24; //высота ячейки
stringgrid1.colcount:=2;//число столбцов
stringgrid1.Cells[0,0]:='Наименование товара';
stringgrid1.Cells[1,0]:='Стоимость товара';
for i:=1 to 5 do
begin
stringgrid1.RowCount:=i+1;
b[i].n:=inputbox('Ввод товаров','Введите название товара','');
stringgrid1.Cells[0,i]:=b[i].n;
s:=inputbox('Ввод товаров','Введите стоимостьтоваров','');
stringgrid1.Cells[1,i]:=s;
val(s,b[i].r,c);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
s:Tcolor;
begin
for i:=1 to 5 do
begin
case i of
1: s:=clwhite;
2: s:=clblue;
3: s:=clfuchsia;
4: s:=clgray;
5: s:=clgreen;
6: s:=clteal;
7: s:=clnavy;
8: s:=clred;
9: s:=clpurple;
10: s:=clyellow;
end;
form1.series1.AddBar(b[i].r,b[i].n,s);
end;end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Form1.close;
end;
procedure TForm1.Button4Click(Sender: TObject);
var i:integer;
begin
Listbox1.Clear;
series1.Clear;
For i:=0 to StringGrid1.RowCount-1 do
StringGrid1.Rows[i].Clear;
end;
procedure TForm1.Button5Click(Sender: TObject);
var k,i,j,buf,min_1,min_2,min_3:integer;
mm:string;
begin
{for i:=5 downto 2 do
begin
for j:=2 to i do
if b[j-1].r>b[j].r then
begin
buf:=b[j-1].r;
b[j-1].r:=b[j].r;
b[j].r:=buf;
mm:=b[j-1].n;
b[j-1].n:=b[j].n;
b[j].n:=mm; end;
end; }
min_1:=b[1].r;
min_2:=b[2].r;
min_3:=b[3].r;
for i:=4 to 5 do
begin
if b[i].r < min_1 then min_1:=b[i].r
else
begin
if b[i].r < min_2 then min_2:=b[i].r
else
if b[i].r < min_3 then min_3:=b[i].r
end;
end;
listbox1.items.Add(inttostr(min_1));
listbox1.items.Add(inttostr(min_2));
listbox1.items.Add(inttostr(min_3));end;end.
http://www.business-process.ru/interface/design_prof_interface.html - TopTextЛабораторная работа №6 Обработка информации в табличной форме
Цель работы: обработка информации, представленной в табличной форме.
Содержание: разработка приложения для обработки экономической информации, представленной в табличной форме.
13.Заполнить в диалоге таблицу объёма продаж различных категорий товаров фирмой (фирме дать название) за 2005 год.
№ п/п |
Наименование товара |
I квартал |
II квартал |
III квартал |
IV квартал |
1 |
|
|
|
|
|
2 |
|
|
|
|
|
3 |
|
|
|
|
|
4 |
|
|
|
|
|
Методические указания:
-
На форму поместить компонент StringGrid1.
-
В Инспекторе объектов задать ширину столбца и высоту строки.
-
Написать программу для заполнения таблицы в диалоге. Заполнение таблицы выполнять в цикле.
-
При заполнении таблицы учесть, что оно идёт по столбцам: сначала вводятся элементы первого столбца, затем второго и т.д.
-
Подсчитать объем продаж всех товаров за каждый квартал, за год.
-
Выбрать наибольшую и наименьшую суммы продаж за кварталы.
-
Выбрать товар, сумма продаж которого наибольшая.
-
Выбрать квартал с наибольшей суммой продаж.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Grids;
type
TForm1 = class(TForm)
St: TStringGrid;
BitBtn1: TBitBtn;
Button1: TButton;
Button2: TButton;
Memo1: TMemo;
GroupBox1: TGroupBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Memo1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
i,j,w:integer;
begin
W:=0;
with St do
begin
for i:=0 to ColCount-1 do
begin
St.ColWidths[0]:=30;
W:=W+ColWidths[i]+2;
St.Width:=W;
end;
St.cells[0,0]:='№';
St.cells[1,0]:='Наименование товара';
St.cells[2,0]:='I квартал';
St.cells[3,0]:='II квартал';
St.cells[4,0]:='III квартал';
St.cells[5,0]:='IV квартал';
for j:=0 to RowCount-1 do
begin
St.Cells[0,j+1]:=inttostr(j+1);
end;
St.Cells[1,1]:='Микрософт Офис';
St.Cells[1,2]:='Фотошоп';
St.Cells[1,3]:='Windows 7';
St.Cells[1,4]:='Windiws XP';
for i:=2 to colcount-1 do
for j:=1 to rowcount-1 do
St.Cells[i,j]:=InputBox('Ввод объема','Введите объем продаж','0');
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i,j,k,g: integer;
begin
g:=0;
with st do
for i:=2 to colcount-1 do
begin
k:=0;
for j:=1 to rowcount-1 do
begin
k:=k+(strtoint(st.cells[i,j]));
g:=g+(strtoint(st.cells[i,j]));
end;
Memo1.lines.add(st.Cells[i,0]+'='+inttostr(k));
end;
Memo1.lines.add('За год='+inttostr(g));
end;
procedure TForm1.RadioButton1Click(Sender: TObject);
var
i,j,k,p,maxq: integer;
L: array [0..3] of integer;
begin
k:=0;
p:=0;
with st do
while p<=3 do
for i:=2 to colcount-1 do
begin
for j:=1 to rowcount-1 do
begin
k:=k+(strtoint(st.cells[i,j]));
end;
L[p]:=k;
p:=p+1;
k:=0;
end;
maxq:=L[0];
for p:=0 to 3 do
begin
if L[p]<L[p+1] then
maxq:=L[p+1];
L[p+1]:=maxq;
end;
memo1.Lines.add('Наибольшая сумма продаж='+' '+inttostr(maxq));
end;
procedure TForm1.RadioButton2Click(Sender: TObject);
var
i,j,k,p,minq: integer;
L: array [0..3] of integer;
begin
k:=0;
p:=0;
with st do
while p<=3 do
for i:=2 to colcount-1 do
begin
for j:=1 to rowcount-1 do
begin
k:=k+(strtoint(st.cells[i,j]));
end;
L[p]:=k;
p:=p+1;
k:=0;
end;
minq:=L[3];
for p:=3 downto 1 do
begin
if L[p]>L[p-1] then
minq:=L[p-1];
{L[p-1]:=minq;}
end;
memo1.Lines.add('Наименьшая сумма продаж='+' '+inttostr(minq));
end;
procedure TForm1.Button3Click(Sender: TObject);
var
i,j,k,p,s4et: integer;
L: array [0..3] of integer;
begin
k:=0;
p:=0;
with st do
while p<=3 do
for j:=1 to rowcount-1 do
begin
for i:=2 to colcount-1 do
begin
k:=k+(strtoint(st.cells[i,j]));
end;
L[p]:=k;
p:=p+1;
k:=0;
end;
s4et:=0;
for p:=0 to 3 do
begin
if L[p]<L[p+1] then
s4et:=p+1;
end;
case s4et of
0: memo1.Lines.add('Samii prodavaemii tovar='+' '+st.cells[1,1]);
1: memo1.Lines.add('Samii prodavaemii tovar='+' '+st.Cells[1,2]);
2: memo1.Lines.add('Samii prodavaemii tovar='+' '+st.Cells[1,3]);
3: memo1.Lines.add('Samii prodavaemii tovar='+' '+st.Cells[1,4]);
end;
end;
procedure TForm1.Memo1Change(Sender: TObject);
begin
end;
end.