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

8) Тема: « Разработка диаграмм».

В компонент ListBox1 на форме вводится массив целых чисел. Определить количество чисел с первой цифрой =4, =7 и =1. Построить круговую диаграмму соответственно этим количествам.

unit Unit1;

procedure Button3Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button3Click(Sender: TObject);

begin

Close;

end;

procedure TForm1.Button1Click(Sender: TObject);

var n,k1,k2,k3:byte;i:integer; t:string;

begin

k1:=0;

k2:=0;

k3:=0;

n:=StrToInt(InputBox('Ввод','Введите кол чисел','0'));

for i:=0 to n-1 do begin

LB1.Items.Add(InputBox('ввод','введите '+IntToStr(i+1)+' число','0'));

t:=LB1.Items[i];

if t[1]='4' then inc(k1);

t:=LB1.Items[i];

if t[1]='7' then inc(k2);

t:=LB1.Items[i];

if t[1]='1' then inc(k3); end;

Series1.Add(k1,'1ая цифра =4',clRed);

Series1.Add(k2,'1ая цифра =7',clBlue);

Series1.Add(k3,'1ая цифра =1',clWhite);

end;

end.

10)Тема: « Разработка проектов »

Разработать проект с использованием следующих компонентов управления – меню, страниц-вкладок, переключателей и командных кнопок, для моделирования работы телефонного справочного отдела. В столбцах исходной таблицы- заполняются следующие данные: Фамилия пользователя телефоном,город, номер телефона, дата установки, тип телефона (обычный /цифровой), сумма оплаты за установку. Создать программу контроля заполнения обязательных полей и дат.

Сформировать на страницах-вкладках новые таблицы (или списки) со следующими данными:

  • Список ФАМ клиентов, у которых установлены телефоны в тек. месяце, их количество, общая сумма оплаты,

  • Переформировать фамилии в исходной таблице в алфавитном порядке,

  • Фамилии пользователей с MAX и MIN суммой оплаты, тип их телефонов,

  • ФАМ клиентов из г. Ростова,

Предусмотреть поиск и вывод № телефона по введенной в окно редактирования EDIT фамилии пользователя.

Сформировать форму2 «Оплата за телефон » для вывода счета для оплаты , с указанием фамилии пользователя, типа телефона, суммы и даты оплаты.

unit Unit1;

procedure FormCreate(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N7Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure N8Click(Sender: TObject);

procedure Max1Click(Sender: TObject);

procedure MIN1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);

begin

T1.cells[0,0]:='фамилия';

T1.cells[1,0]:='Город';

T1.cells[2,0]:='Номер телефона';

T1.cells[3,0]:='Дата установки';

T1.cells[4,0]:='Тип тел. обычный/цифровой';

T1.cells[5,0]:='Сумма оплаты за установку';

T2.cells[0,0]:='фамилия';

T2.cells[1,0]:='Установка в тек.месяце';

T2.cells[2,0]:='Общаяя сумма оплаты';

T3.cells[0,0]:='фамилия';

T3.cells[1,0]:='Max оплата';

T3.cells[2,0]:='Вид телефона';

T5.cells[0,0]:='фамилия';

T5.cells[1,0]:='Min оплата';

T5.cells[2,0]:='Вид телефона';

T4.cells[0,0]:='фамилия';

T4.cells[1,0]:='Город';

end;

procedure TForm1.N2Click(Sender: TObject); //сохранение

var i,j,n,m:byte; f:textfile;k,t:string;

begin

if savedialog1.execute=true then

begin

k:=savedialog1.FileName;

assignfile(f,k);

rewrite(f);

writeln(f,T1.rowcount);

writeln(f,T1.colcount);

for j:=0 to T1.colcount-1 do

for i:=1 to T1.rowcount-1 do

writeln(f,T1.Cells[j,i]);

closefile(f);

end;end;

procedure TForm1.N3Click(Sender: TObject); //открытие

var i,j,n,m:integer; f:textfile;k,t:string;

begin

if opendialog1.execute=true then

begin

k:=opendialog1.FileName;

assignfile(f,k);

reset(f);

readln(f,n);

T1.Rowcount:=n;

readln(f,m);

T1.ColCount:=m;

for j:=0 to T1.ColCount-1 do

for i:=1 to T1.Rowcount-1 do begin

readln(f,k);

T1.Cells[j,i]:=k;end;

closefile(f);

end;

end;

procedure TForm1.N5Click(Sender: TObject); //выход

begin

close;

end;

procedure TForm1.N7Click(Sender: TObject); //фамилиии общая сумма!var i,j,sum,k,kol:integer;

begin

sum:=0;

kol:=0;

k:=1;

j:=1;

for i:=1 to T1.RowCount-1 do

if copy(T1.cells[3,i],4,2)=copy(edit2.Text,4,2) then begin

Sum:=strtoint(T1.cells[5,i])+sum;

T2.Cells[T2.Colcount-1,j]:=inttostr(sum);

T2.cells[3,k]:=T1.cells[5,i];

T2.cells[0,k]:=T1.cells[0,i];

T2.cells[1,k]:=T1.cells[3,i];

inc(k); inc(kol);

end;

edit4.text:=Inttostr(kol);

end;

procedure TForm1.N4Click(Sender: TObject); //очистка

var i,j:integer;

begin

for i:=1 to T1.RowCount-1 do

T1.rows[i].clear;

end;

procedure TForm1.N8Click(Sender: TObject);// город

var i,j,k:integer;

begin

k:=1;

for i:=1 to T1.rowcount-1 do

if T1.Cells[1,i]='Ростов' then begin

T4.cells[0,k]:=T1.cells[0,i];

T4.cells[1,k]:=T1.cells[1,i];

Inc(k);

end;

end;

procedure TForm1.Max1Click(Sender: TObject);//max

var i,j,max,k:integer;

begin

k:=1;

max:=strtoint(T1.Cells[5,1]);

for i:=1 to T1.RowCount-1 do begin

if strtoint(T1.Cells[5,i])>max then max:=strtoint(T1.Cells[5,i]);

end;

For i:=1 to T1.RowCount-1 do

if strtoint(T1.Cells[5,i])=max then begin

T3.Cells[0,k]:=T1.cells[0,i];

T3.Cells[1,k]:=T1.cells[5,i];

T3.Cells[2,k]:=T1.cells[4,i];

inc(k);

end;

end;

procedure TForm1.MIN1Click(Sender: TObject); //min

var i,j,min,k:integer;

begin

k:=1;

min:=strtoint(T1.Cells[5,1]);

for i:=1 to T1.RowCount-1 do begin

if strtoint(T1.Cells[5,i])<min then min:=strtoint(T1.Cells[5,i]);

end;

For i:=1 to T1.RowCount-1 do

if strtoint(T1.Cells[5,i])=min then begin

T5.Cells[0,k]:=T1.cells[0,i];

T5.Cells[1,k]:=T1.cells[5,i];

T5.Cells[2,k]:=T1.cells[4,i];

inc(k);

end;

end;

procedure TForm1.Button2Click(Sender: TObject);

var k,j,i,k1,n,sum:integer;cop:string;

begin

for k:=1 to T2.RowCount-2 do

for k1:=k+1 to T2.rowcount-1 do begin

if T1.cells[0,k]>T1.cells[0,k1] then

begin

cop:=T1.cells[0,k];

T1.cells[0,k]:=T1.cells[0,k1] ;

T1.cells[0,k1]:=cop;

cop:=T1.cells[1,k];

T1.cells[1,k]:=T1.cells[1,k1];

T1.cells[1,k1]:=cop;

cop:=T1.cells[2,k];

T1.cells[2,k]:=T1.cells[2,k1];

T1.cells[2,k1]:=cop;

cop:=T1.cells[3,k];

T1.cells[3,k]:=T1.cells[3,k1];

T1.cells[3,k1]:=cop;

cop:=T1.cells[4,k];

T1.cells[4,k]:=T1.cells[4,k1];

T1.cells[4,k1]:=cop;

cop:=T1.cells[5,k];

T1.cells[5,k]:=T1.cells[5,k1];

T1.cells[5,k1]:=cop;

end;end;end;

procedure TForm1.Button1Click(Sender: TObject);

var i:integer;

begin

for i:=1 to T1.RowCount-1 do

if edit1.text=T1.cells[2,i] then

edit3.text:=T1.cells[0,i];

end;

end.