Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Лабораторная работа №




Begin

Begin

Begin

Begin

if Form2.ShowModal=mrOK then

{Если Form2 закрыта кнопкой OK}

StringGrid1.cells[0,StringGrid1.RowCount]:=

DateToStr(Form2.MonthCalendar1.Date);

{Получить дату из Form2}

StringGrid1.cells[1,StringGrid1.RowCount]:=

TimeToStr(Form2.DateTimePicker1.Time);

{Получить время из Form2}

StringGrid1.cells[2,StringGrid1.RowCount]:=

{Получить текст события из Form2}

Form2.Memo1.Text;

{Увеличить число строк в таблице}

StringGrid1.RowCount:=StringGrid1.RowCount+1;

StringGrid1.FixedRows:=1;

end;

end;

17.Сохраните, запустите проект и проверьте его работу. Ежедневник должен заполняться записями.

18.Организуйте удаление записей. Схема удаления представ-лена на Рис.5.

Рис. 5. Схема удаления строк

19.Зайдите в процедуру, вызываемую по нажатию пункта Событие\Удалить (TForm1.N7Click) и откорректируйте обработчик события следующим образом:

procedure TForm1.N7Click(Sender: TObject);
var i: integer;
begin

for i:=StringGrid1.Row to StringGrid1.RowCount-1 do
StringGrid1.Rows[i]:=StringGrid1.Rows[i+1];
if StringGrid1.RowCount>1

then StringGrid1.RowCount:=StringGrid1.RowCount-1;
end;

20.Сохраните, запустите проект и проверьте его работу.

21.Следующий этап создания программы–коррекция событий в ежедневнике. Для этого перед вызовом формы Form2 необходимо присвоить начальные значения ее полям из редактируемой строчки. Далее–аналогично добавлению. Зайдите в процедуру, вызываемую по нажатию пункта Событие\Корректировать (TForm1.N8Click) и откорректируйте ее следующим образом:

procedure TForm1.N8Click(Sender: TObject);
begin
if
StringGrid1.Row<>0 then

{если в таблице более 1 строки}

Form2.Memo1.Text:= StringGrid1.cells[2,StringGrid1.Row];
Form2.MonthCalendar1.Date:=
StrToDate(StringGrid1.cells[0,StringGrid1.Row]);

Form2.DateTimePicker1.Time:=
StrToTime(StringGrid1.cells[1,StringGrid1.Row]);
if Form2.ShowModal=mrOK then

{если Form2 закрыта кнопкой OK}

StringGrid1.cells[0,StringGrid1.Row]:=
DateToStr(Form2.MonthCalendar1.Date);
StringGrid1.cells[1,StringGrid1.Row]:=

TimeToStr(Form2.DateTimePicker1.Time);
StringGrid1.cells[2,StringGrid1.Row]:=
Form2.Memo1.Text;
end;
end;
end;

22. Сохраните, запустите проект и проверьте его работу рис.6.

Рис. 6. Работа пункта менюСобытие\Корректировать

23. Последний этап работы – научиться сохранять и считывать файлы.

Сохранять результаты работы будем в типизированный файл следующей структуры:

 

DateS - string [8] дата;

TimeS - string [5] время; 1 – е событие

EvenS - string [200] событие;

_________________________________________________ _____________________________________________

 

DateS - string [8] дата;

TimeS - string [5] время; 2 – е событие и т.д.

EvenS - string [200] событие;

25.В начало модуля Unit1 в раздел Type после описания класса формы TForm1 добавьте описание типов записи и файла, как это показано на Рис. 6.7.

Рис. 7. Объявление типов записи и файла

26.Откройте закладку Диалоги (Dialogs) на панели компонент. Добавьте на форму Form1 два диалога: TSaveDialog и TOpenDialog.

27.Откройте процедуру, выполняемую по нажатию пункта Файл\Сохранить - TForm1.N3Click. Измените ее в соответствии с рис. 8.

28.Сохраните, запустите проект и проверьте его работу. Добавьте в ежедневник несколько событий и сохраните результат. Откройте созданный вами файл какой–либо программой просмотра (например, F3 в Far). Попробуйте найти фрагменты сохраненного вами события.

Рис. 8. Текст процедуры записи в файл

29.Откройте на редактирование процедуру, выполняемую по нажатию пункта Файл\Загрузить - TForm1.N4Click. Измените ее в соответствии с Рис.9.

30.Сохраните, запустите проект и проверьте его работу.

32.Для компоненты StringGrid1 формы Form1 выберите событие OnDblClick и из выпадающего списка выберите N8Click. Таким образом, по двойному нажатию на элемент списка будет происходить то же самое, что и при нажатии пункта меню Событие\Корректировать.

33.Сохраните, запустите проект и проверьте его работу.

Рис. 9. Процедура чтения событий из файла

Выполнение индивидуального задания

Разработайте программу (см. табл. 1). Обязательная особенность заданий–возможность сохранения и загрузки результатов работы.

Таблица 1

Варианты заданий к лабораторной работе

Наименование варианта Задание
1. Библиотека Вести список книг в библиотеке (номер, наименование, автор, число экземпляров, число выданных экземпляров), при выдаче и приеме книг корректировать соответствующие значения.
2. Видеотека Вести список видеокассет в видеотеке (номер, наименование, режиссер, жанр, главные актеры, выдана ли на руки и если да, то кому), при выдаче и приеме кассет корректировать соответствующие значения.
  Учет доходов и расходов физического лица Список доходов/расходов (вид–доход/расход, наиме-нование, сумма, дата). Программа должна считать общую сумму доходов и расходов, а также их разницу.
  Учет разрешений на сдачу экзаменов в деканате Список лиц, которым выданы разрешения (номер разрешения, дата, дата сдачи, ФИО, группа, предмет). В списке при возврате разрешения должна фиксироваться оценка и дата сдачи. Программа должна считать средний балл по списку.
5. Картотека граждан Список физических лиц (ФИО, адрес, номер паспорта (если есть), кем и когда выдан). Программа должна выдавать списки по гражданам с паспортом и без, корректировать список при выдаче паспорта.
6. Картотека автомагазина Список автомобилей (номер, марка, цена, продан или нет, кому и когда, сумма сделки). Программа должна выдавать списки проданных и непроданных автомобилей, с указанием сумм.
7. Картотека угнанных автомобилей Список автомобилей (номер, марка, дата угона, дата обнаружения, место угона, место обнаружения). Программа должна выдавать списки угнанных и найденных автомобилей с вычислением отношения угнано / найдено.
  Путевые листы Программа должна вести список выданных путевых листов (номер листа, ФИО водителя, номер машины, дата, маршрут – откуда и куда, протяженность в км, груз). Программа должна выдавать список листов за дату, список листов с протяженностью более заданной, определять общую протяженность пробега всех автомобилей за день.
  Отдел кадров Список работников (ФИО, номер контракта, даты начала и окончания контракта, оклад, стаж, уволен – да / нет). При увольнении выбор должен осуществляться из списка. Программа должна определять работников с истекшей датой контракта, вычислять ежемесячную потребность в заработной плате, выдавать общий список сотрудников.
10. Регистратура Программа должна вести список направлений к врачу (ФИО больного, дата, время, ФИО врача, посетил–да/нет). Программа должна выдавать списки больных, которые не посетили врачей в определенную даты, определять общее число больных в определенную дату.

 

 




Поделиться с друзьями:


Дата добавления: 2015-05-09; Просмотров: 540; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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