Showing Page:
1/36
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ
СУМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
КАФЕДРА ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ
ПРОЕКТИРОВАНИЯ
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовой работе
Объектно-ориентированное программирование
Выполнил: студент группы ИТ-01
Коршунов Д. А
Вариант: 6
Проверила: Ващенко С.М.
2021
Showing Page:
2/36
2
Оглавление
1 Введение ................................................................................................... 3
2 Постановка задачи ................................................................................... 4
3 Описание программы .............................................................................. 6
4 Руководство пользователя ...................................................................... 9
5 Блок-схема программы ......................................................................... 10
6 Текст программы {DataBaseByTolanuch} ........................................... 19
7 Контрольный пример ............................................................................ 34
Showing Page:
3/36
3
1 Введение
Будущие специалисты должны иметь четкое представление обо всех
этапах создания и эксплуатации информационных технологий, уметь
осуществлять выбор из широкого арсенала современных средств и методов
проектирования и программирования.
Поэтому причины актуальности данной программы могут быть
следующие:
- закрепление практических навыков программирования, полученных
на занятиях по дисциплине «Объектно-ориентированное
программирование»;
- углубление теоретических и практических знаний в области
методологии программирования и разработки программных комплексов;
- получение дополнительных навыков в работе с базами данных Access.
Showing Page:
4/36
4
2 Постановка задачи
Взяв за основу свой вариант структуры записи, реализовать работу с
базой данных. Структуру таблицы создать с помощью утилиты DataBase
Desktop.
В программе реализовать следующие возможности:
- просмотр всей таблицы;
- навигация по таблице;
- добавление новой записи;
- просмотр конкретной записи;
- редактирование конкретной записи по выбору пользователя с
возможностью варьировать редактируемое поле;
- поиск конкретной записи по ключу (задание 1);
- обработку информации по заданию 2;
- удаление конкретной записи из таблицы.
Исходные данные должны вводиться с проверкой на область
допустимых значений. Все действия пользователя должны контролироваться
и снабжаться осмысленными сообщениями.
В программе должна быть предусмотрена возможность вывода на
экран данных о разработчике.
Для оценки «3» структуру таблицы можно создать с помощью утилиты
DataBase Desktop.
Для получения оценок «и «5» необходимо создать пользовательский
объект по схеме записи и организовать работу с ним; результаты заданий
вывести в виде отчетов в Word и Excel; нельзя использовать стандартные
средства для навигации по таблицам. Структуру таблицы создать с помощью
Access.
Задания выбрать по номеру варианта из таблицы, приведенной ниже.
Схемы записей приведены в приложении Б. Количесчтво записей в базе
данных – не менее 10.
Showing Page:
5/36
5
Рисунок 1 – Схема записи «Хозяйственная деятельность»
Таблица 1 – Задание варианта №6
№ вар.
Схема записи
Задание 1 - Вывести
информацию
Задание 2
6
Рисунок 1
По наименованию товара
Определить
фирму, у которой
издержки
превышают
чистую прибыль
Хозяйственная
деятельность
товар
Себестоимость
реализованного
товара
наименование
издержки
чистая
прибыль
наименование
Типа
деятельности
Объем
продаж
Showing Page:
6/36
6
3 Описание программы
В программе присутствуют 4 модуля: Work - основное окно
программы, QuaryName - окно первого запроса, Cover-экран загрузки
программы и MyClass модуль, где описан мой класс TDataBase.
Модуль MyClass:
Таблица 2 – Символьные имена класса TDataBase.
Обозначение в
программе
Объяснение
FF1
Наименование товара
FF2
Издержки
FF3
Чистая прибыль
FF4
Объем продаж
FF5
Себестоимость реализованного товара
FF6
Наименование фирмы
FF7
Тип деятельности фирмы
x
Глобальная переменная класса TDataBase
1) Constructor TDataBase.Create(a,f,g:String;b,c,e:Real;d:Integer)
конструктор для класса TDataBase;
2) procedure TDataBase.CreateRecord метод, входящий в данный
класс, для создания записи в таблице базы данных;
3) Procedure TDataBase.EditRecord - метод, входящий в данный
класс, для редактирования записи в таблице базы данных.
Модуль QuaryName:
1) procedure TForm2.Button1Click процедура для формирования
запроса и отображения его результатов с возможностью вывода
последних в документ MS Excel;
Таблица 2 – Символьные имена procedure TForm2.Button1Click
Обозначение в
программе
Объяснение
w
Переменная для вывода результата в
документ MS Word
i
Счетчик
Showing Page:
7/36
7
Модуль Cover:
1) procedure TForm3.Timer1Time процедура срабатывающая после
окончания счетчика (применяется для визуальных эффектов
программы, то есть загрузки);
Модуль Work:
1) procedure TForm1.ApplyClick процедура подтверждения
добавления записи в таблицу;
2) procedure TForm1.Apply_Click процедура подтверждения
редактирования записи в таблице;
3) procedure TForm1.Button1Click процедура открытия формы для
запроса «поиск по ключу»;
4) procedure TForm1.Button2Click процедура вывода всей таблицы
в окне программы;
5) procedure TForm1.Button3Click процедура выполнения 2-го
запроса по заданию;
Таблица 3 – Символьные имена procedure TForm1.Button3Click
Обозначение в
программе
Объяснение
e
Переменная для вывода результата в
документ MS Excel
i,j
Счетчики
6) procedure TForm1.Button4Click отмена
добавления/редактирования записи.
7) procedure TForm1.Edit2KeyPress процедура, разрешающая
пользователю вводить только числа;
8) procedure TForm1.Edit4KeyPress процедура, разрешающая
вводить пользователю только целые числа;
9) procedure TForm1.EditRecordClick переводит программу в
режим редактирования текущей записи;
10) procedure TForm1.DeleteClick удаляет запись;
11) procedure TForm1.FirstClick переводит курсор таблицы на
первую запись;
Showing Page:
8/36
8
12) procedure TForm1.FormClose принудительно удаляет
программу из списка процессов запущенных программ Windows;
13) procedure TForm1.LastClick переводит курсор таблицы на
последнюю запись;
14) procedure TForm1.NewRecordClick переводит программу в
режим добавления новой записи в таблице;
15) procedure TForm1.NextClick передвигает курсор таблицы
на следующую запись;
16) procedure TForm1.PreviousClick передвигает курсор
таблицы на предыдущую запись;
Showing Page:
9/36
9
4 Руководство пользователя
В основном окне присутствует множество кнопок для использования
данной программы. Для навигации используются соответствующие кнопки
на панели «Navigation». Для добавления нужно нажать кнопку «New record»,
заполнить появившиеся поля и нажать «Apply». Для редактирования записи
следует кликнуть по «Edit record», провести нужные изменения в записи и
так же нажать «Apply». Данные изменения сразу же сохраняются в таблице
без возможности возврата в предыдущее состояние таблицы (так что будьте
внимательны при заполнении полей). Для выхода из режима
добавления/редактирования записи следует кликнуть по кнопке «Cancel».
Чтобы удалить текущую запись нужно кликнуть по «Delete current record».
Для запросов в окне программы присутствует отдельная панель. Для
поиска по наименованию товара нажмите кнопку «Find name product» и в
появившемся окне введите наименование товара, которое хотите найти. При
желании поставьте галочку для сохранения результата в MS Word. Чтобы
определить, какие продукты имеют издержки, превышающие чистую
прибыль, следует кликнуть по «Show costs>clear profit». Для сохранения
результата данного запроса в документ MS Excel поставьте галочку возле
«Save in MS Excel». Для возврата к таблице кликните по «Show all table».
Примечание: навигация работает исключительно в таблице. При
просмотре результатов запроса, навигация не работает.
Showing Page:
10/36
10
5 Блок-схема программы
Модуль MyClass
Constructor TDataBase.Create(a,f,g:String;b,c,e:Real;d:Integer)
procedure TDataBase.CreateRecord
inherited create
FF1:=a
FF6:=f
FF7:=g
FF2:=b
FF3:=c
FF4:=d
Возврат
Вход
1
2
3
4
5
6
7
8
FF5:=e
9
10
Вход
1
Form1.Table.Append
2
2
Showing Page:
11/36
11
Procedure TDataBase.EditRecord
1
Form1.Table.FieldByName('Name_product').AsString:=FF1
Form1.Table.FieldByName('Costs').AsFloat:=FF2
Form1.Table.FieldByName('Clear_profit').AsFloat:=FF3
Form1.Table.FieldByName('Sales_volume').AsInteger:=FF4
Form1.Table.FieldByName('Cost_price').AsFloat:=FF5
Form1.Table.FieldByName('Name_company').AsString:=FF6
Form1.Table.FieldByName('Type_activity').AsString:=FF7
Form1.Table.Post
Возврат
3
4
5
6
7
8
9
10
11
Вход
1
Form1.Table.Edit
2
Form1.Table.FieldByName('Name_product').AsString:=FF1
Form1.Table.FieldByName('Costs').AsFloat:=FF2
Form1.Table.FieldByName('Clear_profit').AsFloat:=FF3
3
4
5
Form1.Table.FieldByName('Sales_volume').AsInteger:=FF4
Form1.Table.FieldByName('Cost_price').AsFloat:=FF5
6
7
2
Showing Page:
12/36
12
Модуль QuaryName
procedure TForm2.Button1Click
True
False
1
Form1.Table.FieldByName('Name_company').AsString:=FF6
Form1.Table.FieldByName('Type_activity').AsString:=FF7
Form1.Table.Post
Возврат
8
9
10
11
Вход
1
Form1.Query.Active:=False
Form1.Query.SQL.Clear
Form1.Query.SQL.Add('SELECT * FROM Table1 WHERE
Name_product="'+Edit1.Text+'"')
Form1.Query.Active:=True
Form1.Query.Fields[0].AsS
tring=''
showmessage('Sorry,not
found your query...')
exit
27
Form1.Source.DataSet:=Form1.Query
Form2.Visible:=False
2
2
3
4
6
7
8
9
10
5
Showing Page:
13/36
13
1
checkbox1.Checked
True
False
27
w:=createoleobject('word.application')
w.visible:=true
w.Documents.Add
Form1.Table.first
not Form1.Query.Eof
i:=Form1.Query.FieldC
ount downto 1
w.activedocument.range.insertbefore(Form
1.Query.Fields[i-1].AsString+' | ')
i=1
False
True
w.activedocument.range.ins
ertbefore(#13#10)
Form1.Table. Next
16
21
w.activedocument.range.insertbefore('Name_product |
Costs | Clear_profit | Sales_volume | Cost_price |
Name_company | Type_activity')
w.displayalerts:=false
w.activedocument.saveas(extractfilepath
(application.exename)+'Report.docx')
3
11
12
13
14
15
16
17
19
20
21
22
23
24
18
Showing Page:
14/36
14
2
w.quit
w:=unassigned
Возврат
25
26
27
11
8
Showing Page:
15/36