Розробка додатку "Календар"
Створення програми для виконання найпростіших функцій календаря за допомогою Borland DELPHI 2007. Аналіз процесу обробки інформації і побудова функціональних діаграм. Розробка інтерфейсу користувача, форм вводу-виводу інформації, основних алгоритмів.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 01.06.2013 |
Размер файла | 1,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
Размещено на http://www.allbest.ru
Зміст
ВСТУП
1. АНАЛІЗ ВИМОГ ТА УТОЧНЕННЯ СПЕЦИФІКАЦІЙ
1.1 Аналіз завдання і вибір технології, мови та середовища розробки
1.2 Аналіз процесу обробки інформації і побудова функціональних діаграм
1.3 Аналіз збереженої інформації і вибір структур даних для її представлення
2. ПРОЕКТУВАННЯ СТРУКТУРИ І КОМПОНЕНТІВ ПРОГРАМНОГО ПРОДУКТУ
2.1 Розробка інтерфейсу користувача
2.1.1 Побудова діаграми станів інтерфейсу
2.1.2 Розробка форм вводу-виводу інформації
2.2 Розробка алгоритму основної програми та структурної схеми програмного продукту
2.3 Розробка основних алгоритмів програмного продукту
3. ВИБІР СТРАТЕГІЇ ТЕСТУВАННЯ ТА РОЗРОБКА ТЕСТІВ
ВИСНОВКИ
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
ВСТУП
Завданням курсової роботи є створення програми «Календар».
Календар - це програма, що містить замітки про сплановану подію, де користувач може встановлювати довільну подію. Календар генерується для будь-якого року в минулому або в майбутньому. Тиждень може розпочинатися з понеділка або неділі. Кілька нотаток можуть бути додані до кожної дати. Всі дати можуть бути збережені в файл або завантажені з нього.
Для зручності пошуку необхідної події та виведення її в потрібний час підтримується загальна база подій.
Програма «Календар» дуже зручна для домашнього використання, а також для ділових людей. Вона є дуже популярною, адже зручна та проста у використанні.
Основною метою курсової роботи є створення програми для виконання найпростіших функцій календаря, а також закріплення знань по програмуванню, проектуванню і налагодженню програми. Програма виконується за допомогою Borland DELPHI 2007.
1. АНАЛІЗ ВИМОГ ТА УТОЧНЕННЯ СПЕЦИФІКАЦІЙ
У даному розділі обґрунтовується і здійснюється вибір однієї з сучасних технологій програмування. А потім пояснюється вибір мови та середовища розробки.
1.1 Аналіз завдання і вибір технології, мови та середовища розробки
Завданням курсової роботи є розробка додатку «Калентар». Потрібно створити програму, яка може генерувати будь-який рік (минулий чи майбутній) додавати нові події до будь-якої дати, підтримується пошук події.
Програма повинна забезпечувати виконання наступних функцій:
Завантаження даних.
Зберігання даних.
Створення подій.
Вибір дня початку тижня.
Пошук подій.
Дана програма буде реалізована на основі структурного підходу розробки програмного продукту.
У даний час все частіше використовуються візуальні мови програмування. Значна частина візуальних мов програмування базується на ідеї «фігур і ліній», де фігури (прямокутники, овали та ін.) розглядаються як суб'єкти і з'єднуються лініями (стрілками, дугами тощо), які представляють собою відношення. Найбільш повними, універсальними і часто використовуваними системами є Delphi і Builder C++ від Borland.
Система Delphi є ще й однією з найпростіших у вивченні, що дає їй перевагу над іншими візуальними мовами. Delphi має прекрасні засоби для обробки і збереження як локальних так і мережевих баз даних. Виходячи із цього зупиняємо вибір на системі Delphi 2007.
1.2 Аналіз процесу обробки інформації і побудова функціональних діаграм
Наступним кроком реалізації курсової роботи є визначення специфікації розроблюваного програмного забезпечення.
Діаграма варіантів використання - це граф, що складається з множини акторів, прецедентів, асоціацій між акторами та прецедентами, відношень серед прецедентів, та відношень узагальнення між акторами.
Діаграми прецедентів відображають елементи моделі варіантів використання (рисунок 1.1).
Рисунок 1.1 - Діаграма варіантів використання
Потік даних визначає інформацію, яка передається через деяке з'єднання від джерела до приймача. Першим кроком при побудові ієрархії ДПД є побудова контекстних діаграм. Звичайно при проектуванні простих ІС будується єдина контекстна діаграма із зіркоподібною топологією, у центрі якої знаходиться так званий головний процес, який сполучений із приймачами і джерелами інформації, за допомогою яких з системою взаємодіють користувачі та інші зовнішні системи.
Якщо ж для складної системи обмежитися єдиною контекстною діаграмою, то вона міститиме дуже велику кількість джерел і приймачів інформації, які важко розташувати на листі паперу нормального формату, і крім того, єдиний головний процес не розкриває структури розподіленої системи.
Рисунок 1.2 - Діаграма потоків даних
Функціональна схема використовується, щоб показати розроблювані функції системи, процес реалізації діаграми даних. Крім того, функціональна діаграма використовуватиметься для визначення частоти появи меншого процесу у діаграмі потоків даних.
Функціональна схема тільки показує, що робити, а не як робити. У ній функція ділиться на багато менших функцій і кожна менша функція містить багато дрібніших функцій. Побудова діаграми полягає у процесі поділу, від вищої функції до необхідних менших функцій. Діаграми потрібно представляти чітко, просто, точно, повністю і збалансовано (рисунок 1.3).
Рисунок 1.3 - Функціональна діаграма
Аналіз збереженої інформації і вибір структур даних для її представлення
Даний проект передбачає збереження інформації у типізованому файлі.
2. ПРОЕКТУВАННЯ СТРУКТУРИ І КОМПОНЕНТІВ ПРОГРАМНОГО ПРОДУКТУ
Цей розділ передбачає огляд різних способів і форм взаємодії користувача з системою і обґрунтування вибору певної форми діалогу (що лежить в основі будь-якої взаємодії) для спілкування з програмним продуктом, який розробляється.
2.1 Розробка інтерфейсу користувача
Принципи розробки інтерфейсу - це високорівневі концепції та уявлення, які можуть використовуватися при проектуванні програмного забезпечення. Потрібно визначити, який з принципів найбільш важливий і прийнятний для вашої системи.
Найменування програми: «Календар». Для завантаження програми потрібно активізувати файл PROJECT1.ЕХЕ. Після завантаження програми бачимо головну форму програми, що представлена у вигляді головного меню та засобів маніпуляції календарем (рисунок 2.1).
Рисунок 2.1 - Головна форма програми
Пункт головного меню «Меню» передбачає підпункти
«Зберегти»
«Завантажити»
«Вийти» (рисунок 2.2):
Рисунок 2.2 - Пункт головного меню «МЕНЮ»
Пункт головного меню «Автор» (рисунок 2.3).
Рисунок 2.3 - Пункт головного меню «Автор»
2.1.1 Побудова діаграми станів інтерфейсу
Головне призначення цієї діаграми - описати можливі послідовності станів та переходів, які в сукупності характеризують поведінку елемента моделі на протязі її життєвого циклу (рисунок 2.6).
Рисунок 2.4 - Діаграма стану інтерфейсу
У разі табличної форми діалогу проводиться опис усіх віконних форм та меню (рисунок 2.5). У разі використання директивної або фразової форми описуються основні команди.
Рисунок 2.5 - Діаграма об'єктів
2.1.2 Розробка форм вводу-виводу інформації
Під час розробки інтерфейсу програми використовувалася форма.
Рисунок 2.6 - Головна форма програми
Після огляду форм програми, розглянемо основні компоненти, які використовуються у програмі. Головна форма програми (рисунок 2.7):
Рисунок 2.7 - Компоненти головної форми програми
RadioButton - перемикачі днів тижня.
DateTimePicker1-2 - поле виводу дати та часу.
Label1 - поля виводу інформації.
ListView1- розширені можливості ListBox.
Month - календар.
2.2 Розробка алгоритму основної програми та структурної схеми програмного продукту
Структурна схема -- схема, яка визначає основні функціональні частини виробу, їх взаємозв'язки та призначення. Під функціональною частиною розуміють складову частину схеми: елемент, пристрій, функціональну групу, функціональну ланку
Структурна схема - схема, що відображає склад і взаємодія з управління частин розроблювального продукту. При об'єктної декомпозиції такими частинами є об'єкти (рисунок 2.8).
Рисунок 2.8 - Структурна схема
На етапі проектування здійснюється побудова моделі реалізації (або фізичної моделі), яка демонструє, як система буде задовольняти вимоги які пред'являються до неї (без технічних деталей). Одним з самих розповсюджених є метод структурного проектування. Структурні карти Константайна являються моделлю відношень ієрархії між програмними модулями. Вузли структурних карт відповідають модулям і областям даних, потоки відображають міжмодульні виклики. Базовим елементом структурної карти є модуль (рисунок 2.9).
Рисунок 2.9 - Структурна карта Константайна
2.3 Розробка основних алгоритмів програмного продукту
програма календар інтерфейс
Далі наводиться алгоритм основної програми при структурному підході. Розглянемо метод покрокової деталізації:
Лістинг 2.1 - Загальна структура програми
Програма
Виведення форми на екран
Вибір дії
Якщо вибрана дія
То Виконати дію
Інакше продовжити виконання
Все якщо
Все програма
Лістинг 2.2 - Деталізація команди «Виконати дію»
Виконати дію
Якщо дія = Завантажити
ТоЗавантажити дані до програми
Все якщо
Якщо дія = Зберегти
ТоЗберегти дані до файлу
Все якщо
Якщо дія = Додати подію
ТоВвести необхідну подію
Все якщо
Якщо дія = Пошук події
Товвести шукану подію
Все якщо
Якщо дія = вибір дня початку тижня
Тооновити календар
Все якщо
Все виконати дію
Представимо процедури обробки подій:
1. Збереження
procedure SaveItems(FileName: String; ListView: TListView);
var
CCount: Integer;
CStr: Integer;
CName: String;
CSize: Integer;
ICount: Integer;
IStr: Integer;
IName: String;
ISubName: String;
OStr: Integer;
IIndex,SIndex: Integer;
begin
{ Save Columns }
IFile := TINIFile.Create(FileName);
CCount := ListView.Columns.Count;
IFile.WriteInteger('Columns','Count',CCount);
for CStr := 0 to CCount - 1 do
begin
CName := ListView.Columns.Items[CStr].Caption;
CSize := ListView.Columns.Items[CStr].Width;
IFile.WriteString('ColumnsItem'+IntToStr(CStr),'Text',CName);
IFile.WriteInteger('ColumnsItem'+IntToStr(CStr),'Size',CSize);
end;
{ Save Items }
ICount := ListView.Items.Count;
IFile.WriteInteger('Items','Count',ICount);
for IStr := 0 to ICount - 1 do
begin
IName := ListView.Items.Item[IStr].Caption;
IFile.WriteString('Items'+IntToStr(IStr),'Text',IName);
IIndex := ListView.Items.Item[IStr].ImageIndex;
IFile.WriteInteger('Items'+IntToStr(IStr),'ImageIndex',IIndex);
SIndex := ListView.Items.Item[IStr].StateIndex;
IFile.WriteInteger('Items'+IntToStr(IStr),'StateIndex',SIndex);
for OStr := 0 to CCount -2 do
begin
ISubName := ListView.Items.Item[IStr].SubItems.Strings[OStr];
IFile.WriteString('Items'+IntToStr(IStr),'Sub'+IntToStr(OStr),ISubName);
end;
end;
end;
2. Завантаження
CCount: Integer;
CStr: Integer;
CName: String;
CSize: Integer;
ICount: Integer;
IStr: Integer;
IName: String;
ISubName: String;
OStr: Integer;
IIndex,SIndex: Integer;
begin
{ Load Columns }
IFile := TINIFile.Create(FileName);
ListView.Columns.Clear;
CCount := IFile.ReadInteger('Columns','Count',0);
for CStr := 0 to CCount - 1 do
begin
CName := IFile.ReadString('ColumnsItem'+IntToStr(CStr),'Text','');
CSize := IFile.ReadInteger('ColumnsItem'+IntToStr(CStr),'Size',0);
with ListView.Columns do
begin
Add.Caption := CName;
Items[CStr].Width := CSize;
end;
end;
{ Load Items }
ListView.Items.Clear;
ICount := IFile.ReadInteger('Items','Count',0);
for IStr := 0 to ICount - 1 do
begin
IName := IFile.ReadString('Items'+IntToStr(IStr),'Text','');
IIndex := IFile.ReadInteger('Items'+IntToStr(IStr),'ImageIndex',0);
SIndex := IFile.ReadInteger('Items'+IntToStr(IStr),'StateIndex',0);
with ListView.Items do
begin
Add.Caption := IName;
Item[IStr].ImageIndex := IIndex;
Item[IStr].StateIndex := SIndex;
for OStr := 0 to CCount -2 do
begin
ISubName := IFile.ReadString('Items'+IntToStr(IStr),'Sub'+IntToStr(OStr),'');
Item[IStr].SubItems.Add(ISubName);
end;
end;
end;
end;
3. Вибір дня початку тижня
procedure TForm1.Radio1Click(Sender: TObject);
begin
month.FirstDayOfWeek:=dowSunday;
end;
procedure TForm1.Radio2Click(Sender: TObject);
begin
month.FirstDayOfWeek:=dowMonday;
end;
4. Додати подію
procedure TForm1.Button1Click(Sender: TObject);
var item:tlistitem;
begin
if edit1.Text<>'' then begin
Item := ListView1.Items.Add;
Item.Caption := datetostr(DTP.Date);
Item.SubItems.Add(timetostr(DTP2.Time));
Item.SubItems.Add(edit1.text);
LVUtils.SaveItems('c:/1.txt',ListView1);
button1.Hide;
label2.Hide;
edit1.Hide;
edit1.Text:='';
end else if MessageDlg('Введіть будь ласка подію',mtCustom,
mbOKCancel, 0)= mrCancel then begin button1.Hide;
label2.Hide;
edit1.Hide; end;
end;
5. Пошук події
procedure TForm1.N7Click(Sender: TObject);
var IFile: TINIFile; ICount: Integer;
IStr: Integer;
IName: String;
IIndex,SIndex: string; item:tlistitem;
begin
ListView1.Items.Clear;
IFile := TINIFile.Create('c:/1.txt');
ICount := IFile.ReadInteger('Items','Count',0);
for IStr := 0 to ICount - 1 do
begin
IName := IFile.ReadString('Items'+IntToStr(IStr),'Text','');
if IName= datetostr(DTP.Date) then
begin
IIndex := IFile.Readstring('Items'+IntToStr(IStr),'Sub0','');
SIndex := IFile.Readstring('Items'+IntToStr(IStr),'Sub1','');
Item := ListView1.Items.Add;
item.Caption := IName;
item.SubItems.Add(IIndex);
item.SubItems.Add(SIndex);
end;
end;
end;
Видалення події
procedure TForm1.N6Click(Sender: TObject);
var item:tlistitem; i,j:integer;
begin
j:=listview1.Items.Count-1;
for i:=0 to j do
begin
Item := ListView1.Items[i];
if Item.Caption = datetostr(DTP.Date) then ListView1.Items[i].Delete; end;
end;
Повний програмний код можна подивитись на вкладеному в роботу диску.
3. ВИБІР СТРАТЕГІЇ ТЕСТУВАННЯ ТА РОЗРОБКА ТЕСТІВ
Тестування ПЗ - це процес перевірки готової програми в статистиці (перегляди, інспекції, налагодження вихідного коду) і в динаміці шляхом прогону кінцевого набору тестових даних, що перевіряють різні шляхи виконання програми й порівнянні отриманих результатів із заздалегідь запланованими.
Під час запуску програми виводиться головне вікно (рисунок 3.1).
Рисунок 3.1 - головне вікно
Після натисненні лівою кнопкою на календарі з'являється підменю (рисунок 3.2)
Рисунок 3.2 - Підменю
Клацнувши по кнопці «Додати подію» - у вікні програми з'являється кнопка та поле для введення події (рисунок 3.3).
Рисунок 3.3 - Додавання події
Також програма дозволяє користувачу видаляти події(рисунок 3.4).
Рисунок 3.4 - Видалення події
Одною з можливостей програми є пошук необхідної події за датою.
Рисунок 3.4 - Пошук події
Були протестовані різноманітні ситуації роботи програми. При появі помилок програма доопрацьовувалася. Програма працює достатньо правильно, але стверджувати про відсутність помилок не можна.
ВИСНОВКИ
При виконанні курсової роботи я поглибив свої знання в області комп'ютерної техніки, набув практичних навичок роботи з елементами Delphi та їх функціями, особливостями. Удосконалив вміння розробки модулів для оптимізації роботи програми. Зумів самостійно знайти метод розв'язку поставленої задачі, а також освоїв прийоми систематизації знань та використав їх на практиці. Глибше зрозумів основи алгоритмізації та програмування при розв'язку задач, навчився виконувати оформлення результатів роботи та представляти їх при захисті, освоїв основні елементи практичного програмування, добре засвоїв принципи роботи з найбільш необхідним програмним забезпеченням та мовами програмування.
Размещено на http://www.allbest.ru
Подобные документы
Розробка прикладного додатку для побудови графіків тригонометричних функцій з використанням програмного середовища Delphi. Схема алгоритму, методи створення, структура та особливості програмної реалізації прикладного додатку. Умови виконання програми.
курсовая работа [643,1 K], добавлен 19.11.2013Користування стандартним та форматованим вводом-виводом. Використання вводу та виводу аргументу. Розробка лінійних програм. Програми з розгалуженням, циклічні програми з регулярною змінною аргументу. Використання вказівників для роботи з масивами даних.
курсовая работа [4,6 M], добавлен 27.02.2014Розробка програми GameBox, яка включає в себе дві гри, судоку та пятнашки. Опис структури даних та вимоги до них, процедур і функцій користувача, стандартних процедур і функцій, які використовувались в програмі, та файлів. Результати роботи програми.
курсовая работа [5,3 M], добавлен 12.11.2011Методи первинної обробки даних - згладжування та характеристика сплайнів. Загальна характеристика об'єктно-орієнтованої мови Java. Принципи побудови графічного інтерфейсу. Розробка алгоритму програми та інтерфейсу користувача програмного продукту.
дипломная работа [3,3 M], добавлен 10.10.2013Головні принципи візуального програмування, опис компонентів Delphi, використаних при розробці проекту. Опис програми-додатку "Психологічний тест" та список дій користувача. Алгоритм роботи програми, її форма та ієрархія. Опис графічного інтерфейсу.
курсовая работа [1,2 M], добавлен 08.06.2010Аналіз теоретичної бази методів інтерполювання функцій. Розробка алгоритмів та вибір оптимального. Приклад програми інтерполювання функції за допомогою інтерполяційного многочлена Лагранжа: інструкція користувача, опис, тестування та лістинг програми.
курсовая работа [1,0 M], добавлен 19.09.2013Аналіз технічного забезпечення, вибір інструментального програмного забезпечення та середовища розробки програм. Створення класів для реалізації необхідних функцій для роботи програмного засобу. Розробка інтерфейсу для користувача та лістинг програми.
курсовая работа [343,9 K], добавлен 24.08.2012Розробка компонентів технічного і програмного забезпечення мікропроцесорного пристрою, аналогово-цифровий і цифро-аналоговий перетворювачі. Синтез структурної схеми фільтру. Структурна схема та алгоритм функціонування пристрою. Програми вводу, виводу.
курсовая работа [869,6 K], добавлен 15.02.2011Автоматизація процесу зберігання та обробки інформації про перелік собак на виставці. Аналіз предметної області. Створення концептуальної моделі даних, її перетворення в логічну і реалізація. Розробка механізмів управління даними за допомогою тригерів.
курсовая работа [3,0 M], добавлен 25.08.2014Створення програми для роботи зі зв'язаними списками засобами Delphi. Причини використання динамічної пам'яті комп’ютера. Розробка технічного завдання. Аналіз вимог та визначення специфікації. Етап реалізації та розробка документації користувача.
курсовая работа [487,5 K], добавлен 08.08.2011