Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Типис.docx
Скачиваний:
9
Добавлен:
16.12.2018
Размер:
349.18 Кб
Скачать

Лабораторная работа № 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

Методические указания:

  1. На форму поместить компонент StringGrid1.

  2. В Инспекторе объектов задать ширину столбца и высоту строки.

  3. Написать программу для заполнения таблицы в диалоге. Заполнение таблицы выполнять в цикле.

  4. При заполнении таблицы учесть, что оно идёт по столбцам: сначала вводятся элементы первого столбца, затем второго и т.д.

  5. Подсчитать объем продаж всех товаров за каждый квартал, за год.

  6. Выбрать наибольшую и наименьшую суммы продаж за кварталы.

  7. Выбрать товар, сумма продаж которого наибольшая.

  8. Выбрать квартал с наибольшей суммой продаж.

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.