- •1)Тема: « Работа с числом. Формирование нового числа».
- •2) Тема: « Работа с компонентами – списки tListBox и tComboBox при обработке линейных массивов »
- •3) Тема: «Работа со списками на форме. Сортировка массива».
- •4)Тема: « Работа с таблицами. Компонент tStringGrid»
- •5)Тема: « Работа с несколькими формами»
- •6)Тема: « Работа с несколькими таблицами.
- •7)Тема: Оpганизация последовательного файла.
- •8) Тема: « Разработка диаграмм».
- •10)Тема: « Разработка проектов »
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.