русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Private


Дата добавления: 2014-11-27; просмотров: 647; Нарушение авторских прав


{ Private declarations }

Public

{ Public declarations }

end;

 

Var

Form1: TForm1;

 

Implementation

{$R *.dfm}

Type

zap=record//объявление записи

fio : string[20];

dohod: integer;

mat,soch,english,inf: integer;

end;

zap1=record//объявление записи

fio : string[20];

dohod: integer;

mat,soch,english,inf: integer;

srball: extended;

end;

Var

MZap,MZap2: array[1..10] of zap; / /объявление массива записей

MZap1: array[1..10] of zap1;

FileZap: file of zap; // объявление типизированного файла

FileText: TextFile; // объявление текстового файла

FileNameZap,FileNameText: string; // имена файлов

n,k: integer; // n текущее количество элементов исходных записей;

// к количество элементов списка второй очереди

{ Обработчик события создания формы}

procedure TForm1.FormCreate(Sender: TObject);

Begin

Edit1.Text:='22'; // начальное значение поля минимальной зарплаты

SpinEdit1.Text:='9'; // начальное значение для количества записей

n:=9;

with StringGrid1 do

Begin

Cells[0,0]:='Фамилия,инициалы';

Cells[1,0]:='Доход';

Cells[2,0]:='Математика';

Cells[3,0]:='Социология';

Cells[4,0]:='Английский';

Cells[5,0]:='Информатика';

end;

with StringGrid2 do

Begin

Cells[0,0]:='Фамилия,инициалы';

Cells[1,0]:='Доход';

Cells[2,0]:='Математика';

Cells[3,0]:='Социология';

Cells[4,0]:='Английский';

Cells[5,0]:='Информатика';

end;

with StringGrid3 do

Begin

Cells[0,0]:='Фамилия,инициалы';

Cells[1,0]:='Доход';

Cells[2,0]:='Математика';

Cells[3,0]:='Социология';

Cells[4,0]:='Английский';

Cells[5,0]:='Информатика';

Cells[6,0]:='Средний балл';

end;

BitBtnSave.Hide; // Спрятать кнопку "Создать текстовый файл"



end;

 

{Сохранение файла}

procedure TForm1.BitBtnNewClick(Sender: TObject);

Var

i:integer;

Begin

if MessageDlg('Содержимое существующего файла будет уничтожено.Вы уверены?',mtConfirmation,mbYesNoCancel,0)=mrYes then

Begin

for i:=1 to n do

with StringGrid1,MZap[i] do

Begin

fio:=Cells[0,i];

dohod:=StrToInt (Cells[1,i]);

mat:=StrToInt(Cells[2,i]);

soch:=StrToInt(Cells[3,i]);

english:=StrToInt(Cells[4,i]);

inf:=StrToInt(Cells[5,i]);

end;

withOpenDialog1 do

Begin

Title:='Создание файла';

if Execute then

Begin

FileNameZap:=FileName;

AssignFile(FileZap,FileNameZap);

ReWrite(FileZap);

for i:=1 to n do

write(FileZap,MZap[i]);

CloseFile(FileZap);

end;

end;

end;

end;

{Открытие файла}

procedureTForm1.BitBtnOpenClick(Sender: TObject);

Var

i:integer;

Begin

with OpenDialog1 do

Begin

Title:='Открытие файла'; // заголовок окна диалога

if Execute then // выполнение стандартного диалога выбора имени файла

Begin

FileNameZap:=FileName; // присваивание имени файла

AssignFile(FileZap,FileNameZap);

ReSet(FileZap); // открыть файл для чтения

n:=0;

while notEoF(FileZap) do

Begin

n:=n+1; // расчет количества записей в файле

read(FileZap,MZap[n]); // чтение записей файла в массив записей

end;

SpinEdit1.Text :=IntToStr(n);

StringGrid1.RowCount :=n+1;

StringGrid2.RowCount :=n+1;

StringGrid3.RowCount :=n+1;

fori:=1 to n do

with StringGrid1,MZap[i] do

Begin

Cells[0,i]:=fio;

Cells[1,i]:=IntToStr(dohod);

Cells[2,i]:=IntToStr(mat);

Cells[3,i]:=IntToStr(soch);

Cells[4,i]:=IntToStr(english);

Cells[5,i]:=IntToStr(inf);

end;

CloseFile(FileZap); // закрытие файла

end;

end;

BitBtnSave.Show; // показать кнопку “Сохранить текстовый файл”

end;

{запись текстового файла}

procedureTForm1.BitBtnSaveClick(Sender: TObject);

Var

i:integer;

Begin

withSaveDialog1 do

if Execute then //выполнение стандартного диалога выбора имени файла

Begin

FileNameText:=FileName;//присваивание имени файла

AssignFile(FileText,FileNameText);//назначить файлу FileText имя

//FileNameText

ReWrite(FileText); //открыть текстовый файл на запись

for i:=1 to n do

with MZap[i] do //запись в текстовый файл

writeln(FileText,i:3,fio:20,mat:5,english:5,soch:5,inf:5);

CloseFile(FileText); //закрытие текстового файла по окончании записи

end;

end;

{Сортировка исходных записей по возрастанию дохода на одного члена семьи}

procedure TForm1.Button1Click(Sender: TObject);

Var

i,j:integer;

vper:zap;

Begin

for i:=1 to n do// пересылка данных в массив записей

with StringGrid1,MZap[i] do

Begin

fio:=Cells[0,i];

dohod:=StrToInt(Cells[1,i]);

mat:=StrToInt(Cells[2,i]);

soch:=StrToInt(Cells[3,i]);

english:=StrToInt(Cells[4,i]);

inf:=StrToInt(Cells[5,i]);

end;

for i:=2 ton do //сортировка методом пузырька

for j:=n downto i do

if MZap[j-1].dohod>MZap[j].dohod then

Begin

vper:=MZap[j-1];

MZap[j-1]:=MZap[j];

MZap[j]:=vper;

end;

for i:=1 to n do// Пересылка рассортированных данных из массива

// записей в StringGrid1

with stringgrid1,mzap[i] do

Begin

Cells[0,i]:=fio;

Cells[1,i]:=IntToStr(dohod);

Cells[2,i]:=IntToStr(mat);

Cells[3,i]:=IntToStr(soch);

Cells[4,i]:=IntToStr(english);

Cells[5,i]:=IntToStr(inf);

end;

end;

{ Вывод списка первоочередников в StringGrid2, а всех остальных записей в массив Mzap1}

procedure TForm1.Button2Click(Sender: TObject);

Var

i,j,m: integer;

dd: integer;

Begin

dd:=StrToInt(Edit1.Text); // ввод значения минимальной зарплаты в

//переменную dd

for i:=1 to n do

with StringGrid2 do // очистка StringGrid2

begin

Cells[0,i]:='';

Cells[1,i]:='';

Cells[2,i]:='';

Cells[3,i]:='';

Cells[4,i]:='';

Cells[5,i]:='';

end;

for i:=1 to n do

with StringGrid1,MZap[i] do// ввод данных в массив записей

Begin

fio:=Cells[0,i];

dohod:=StrToInt (Cells[1,i]);

mat:=StrToInt(Cells[2,i]);

soch:=StrToInt(Cells[3,i]);

english:=StrToInt(Cells[4,i]);

inf:=StrToInt(Cells[5,i]);

end;

m:=0;

j:=0;k:=0;

for i:=1 to n do

Begin

withStringGrid2,MZap[i] do

ifdohod<=dd then// выбор списка первой очереди

Begin

j:=j+1;

Cells[0,j]:=fio;

Cells[1,j]:=IntToStr(dohod);

Cells[2,j]:=IntToStr(mat);

Cells[3,j]:=IntToStr(soch);

Cells[4,j]:=IntToStr(english);

Cells[5,j]:=IntToStr(inf);

End

Else

Begin

k:=k+1; // выбор списка второй очереди в массив MZap1

MZap1[k].fio:=MZap[i].fio;

MZap1[k].dohod:=MZap[i].dohod;

MZap1[k].mat:=MZap[i].mat;

MZap1[k].soch:=MZap[i].soch;

MZap1[k].english:=MZap[i].english;

MZap1[k].inf:=MZap[i].inf;

MZap1[k].srball:=(MZap[i].mat+MZap[i].soch+MZap[i].english+MZap[i].inf)/4

end;

end;

end;

{сортировка списка второй очереди методом "пузырька" по убыванию среднего балла и вывод в StringGrid3}

procedure TForm1.Button3Click(Sender: TObject);

Var

i,j:integer;

vper:Zap1;

Begin

for i:=2 tok do

for j:=k downto i do

if MZap1[j-1].srball<MZap1[j].srball then

Begin

vper:=MZap1[j-1];

MZap1[j-1]:=MZap1[j];

MZap1[j]:=vper;

end;

for i:=1 to k do

withstringgrid3,mzap1[i] do

Begin

Cells[0,i]:=fio;

Cells[1,i]:=IntToStr(dohod);

Cells[2,i]:=IntToStr(mat);

Cells[3,i]:=IntToStr(soch);

Cells[4,i]:=IntToStr(english);

Cells[5,i]:=IntToStr(inf);

Cells[6,i]:=FloatToStrF(srball,ffFixed,2,1);

end;

end;

{ Изменение количества исходных записей}

procedureTForm1.SpinEdit1Change(Sender: TObject); var

i,m:integer;

Begin

m:=StrToInt(SpinEdit1.Text);

WithStringGrid1 do

Begin

RowCount:=m+1;

if m>n then

for i:=n+1 to m do

Begin

Cells[0,i]:='';

Cells[1,i]:='';

Cells[2,i]:='';

Cells[3,i]:='';

Cells[4,i]:='';

Cells[5,i]:='';

end;

end;

With StringGrid2 do

Begin

RowCount:=m+1;

if m>n then

for i:=n+1 to m do

Begin

Cells[0,i]:='';

Cells[1,i]:='';

Cells[2,i]:='';

Cells[3,i]:='';

Cells[4,i]:='';

Cells[5,i]:='';

end;

end;

With StringGrid3 do

Begin

RowCount:=m+1;

ifm>n then

for i:=n+1 to m do

Begin

Cells[0,i]:='';

Cells[1,i]:='';

Cells[2,i]:='';

Cells[3,i]:='';

Cells[4,i]:='';

Cells[5,i]:='';

end;

end;

n:=m;

end;

End.

Работа с приложением

Выполните созданное приложение. Занесите в соответствующе поля компонента StringGrid1 исходную информацию. Кнопкой «Сохранить файл» сохраните данные в файле. Завершите выполнение приложения.

Вновь запустите приложение кнопкой «Открыть файл» откройте только что созданный файл. Убедитесь, что информация не содержит ошибок. При необходимости обнаруженные ошибки можно исправить, а также дополнить ведомость новой информацией и снова нажать кнопку «Сохранить файл».

Для сортировки ведомости в порядке возрастания дохода на члена семьи воспользуйтесь кнопкой «Сортировка» и сохраните отсортированную информацию в текстовый файл (кнопкой «Сохранить текстовый файл»). Далее выведите список первоочередников и список второй очереди, воспользовавшись соответствующими кнопками.

Еще раз завершите и вновь запустите приложения.

Кнопкой «Открыть файл» откройте файл и убедитесь, что в нем теперь содержится ведомость, отсортированная в порядке возрастания дохода на члена семьи. Кнопкой «Создать текстовый файл» сохраните информацию в текстовом файле. Для просмотра содержимого текстового файла воспользуйтесь, например, приложением «Microsoft Word».

Используя все управляющие компоненты панели, убедитесь в правильном функционировании приложения во всех предусмотренных режимах работы.



<== предыдущая лекция | следующая лекция ==>
Создание процедур обработки событий | Индивидуальные задания


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.096 сек.