Ежедневник
КУРСОВАЯ РАБОТА
по дисциплине
«Программирование высокого уровня»
на тему:
«Ежедневник»
Выполнила:
Тихомирова Т.Г.
2009г
Содержание
| Введение………………………………………………………… 1 Техническое
задание……………………………………………………………
Заключение…………………………………………………… Глоссарий ……………………………………………………………………………. Список использованной литературы……………………………………………….. |
4
5 5 5 5 5 6 7 8 12 18 18 28 33 35 35 46 47 49 |
Введение
Задумывались ли вы когда-нибудь над тем, почему одни люди успевают все, а другие ничего? Вовсе не потому, что первые могут делать несколько дел одновременно. Весь секрет здесь в четком планировании своего времени. Тот, кто знает ему настоящую цену, взял себе за правило пользоваться ежедневниками, занося туда важные дела по мере их появления. Иные же с вечера составляют список мероприятий на завтра и стараются придерживаться этого расписания. Дел бывает так много, что всех не упомнишь.
Некоторые пользуются записными книжками или блокнотами со специальной разметкой страниц, которые в изобилии продаются в магазинах и киосках «Информпечать» — это органайзеры в традиционной бумажной форме. Другие — более продвинутые — компьютерами или сотовыми телефонами — это органайзеры в электронной форме. И все таки проблема эта приобрела в наш век огромное значение.
В данной курсовой работе разрабатывается прикладная программа «Ежедневник», реализующая функции телефонного справочника и планировщика заданий. Программа позволяет пользователю планировать свое расписание на целый день, который разбит с шагом 30 минут. А телефонный справочник позволяет хранить все важные контакты.
1
Техническое задание
- Название и назначение разрабатываемой программы
Представленная
программа называется «Ежедневник».
Эта программа относится к числу
программ, расширяющих возможности компьютера.
Программа предназначена для планирования
распорядка дня пользователя и выполняет
функции планировщика задач с будильником.
- Основание для разработки
Основанием
для разработки является задание
на курсовую работу по дисциплине «Программирование
высокого уровня» на тему «Ежедневник».
- Техническое требования к программе
Для работы программы необходимы:
- процессор Pentium100 или выше;
- операционная система Windows 9x или выше;
- манипулятор мышь;
- 2 Мб внешней
памяти;
- Функциональные требования к программе
В реализуемой
программе должны выполнять
- ежедневник открывается на текущей дате;
- просмотр записей без ограничений по дате;
- установление будильника на определенное время
- добавление
и изменение заметок о
- информация
о свободном времени на
- телефонный справочник;
- сохранение информации о всех внесенных записях во внешнем файле;
- программа
должна обладать понятным
- реализовать
вызов файла помощи, содержащего
руководство по пользованию
- Требования по надежности
Программа не должна проводить
к нарушению работы
- Анализ технического задания
Необходимо написать программу в среде, реализующую функцию Ежедневник. Данная программа должна полностью соответствовать требованиям технического задания. Необходимо, чтобы при запуске программы Ежедневник открывал страницу с текущей датой и информацией о свободном времени на следующую неделю. Кроме того, необходимо реализовать функцию выбора произвольной даты с формированием списка дел на выбранную дату. Кроме планировщика заданий в программе реализован справочник телефонных номеров. При разработке программы следует учесть, что информация о внесенных событиях и контактах должны храниться в файле.
Для
написания программы
Одним из основных требований к программе является требование не нарушения работы операционной системы и других приложений. Поэтому при, написании программы следует не работать или до минимума сократить работу с системными файлами.
3 Разработка и описание программу
В программе используется пять модулей:
- модуль описания классов;
-
модуль основной части
- модуль редактор дат;
- модуль для удаления записей из телефонного справочника;
- модуль для календаря.
В модуле для удаления записей из телефонного справочника используются процедуры для загрузки фамилий из файла, вызов процедур и функций для поиска и удаления нужной фамилии.
В модуле редактор дат используются процедуры для инициализации данных в таблице, загрузки списка дат, добавление, редактирование дат, удаление всех или одной определенной даты.
Модуль основной части программы использует в своей работе все остальное модули программы и процедуры, реализующие все этапы работы программы и взаимодействия с пользователем.
Рассмотрим программную реализацию этого модуля. Данный модуль включает в себя следующие процедуры:
FormCreate
FormClose
PlanDay
DateTimePicker1Change
AddPhoneClick
SaveDBClick
DelRecClick
PhoneDbButtonClick
AlarmButtonClick
GetAlarm
ControlWindow
IconMouse
Ic
PlanNextWeek
Процедура FormCreate производит открытие файла или при его отсутствии создание файла, а также инициализацию ежедневника на текущую дату, загрузка из файла список задач и инициализация заголовков таблицы телефонного справочника.
Процедура FormClose производит закрытие ежедневника и освобождение памяти.
Процедура DateTimePicker1Change производит поиск даты в файле. Если дата найдена формируется список задач на найденную дату.
Процедура AddPhoneClick производит добавление строки ввода в телефонном справочнике.
Процедура SaveDBClick производит сохранение всего телефонного справочника, при его редактировании или добавлении контакта, в файл.
Процедура DelRecClick вызывает диалоговое окно для удаления необходимого контакта.
Процедура PhoneDbButtonClick позволяет загрузить в телефонный справочник все контакты, которые хранятся в файле.
Процедура AlarmButtonClick производит включение или отключение будильника.
Процедура GetAlarm считывает время включения будильника и сообщение о том что время истекло.
Процедура ControlWindow позволяет отловить минимизацию окна главной формы и добавляет значок в системный трей.
Процедура IconMouse производит реакцию нажатия клавиш мышки на значке.
Процедура Ic производит операции со значком в системном трее. В зависимости от того какой параметр передается в процедуру изменяется операции со значком: 1 – добавить, 2 – удалить, 3 – заменить.
Процедура PlanNextWeek производит вычисление начала следующей недели, а также вычисляет количество свободного времени на следующую неделю
Рассмотрим
основные этапы работы программы. После
запуска программы происходит инициализация
ежедневника сегодняшним
Рисунок 3.1 – Блок-схема работы программы (начало)
Рисунок
3.1 – Блок-схема работы программы
(продолжение)
- Руководство пользователя
Программа «Ежедневник» позволяет составлять план дня с интервалом в 30 минут, при этом в программу встроен будильник который поможет вам не забыть о каком-нибудь важном событии, при истечении времени на экран выводиться сообщение, а на акустическую систему компьютера выводиться звуковой сигнал. В программу также встроен телефонный справочник и календарь.
Рассмотрим возможности программы. После запуска программы в разделе «Сегодня» мы видим сегодняшнюю дату (рисунок 4.1). C помощью этого раздела можно просматривать запланированные задачи на другие даты, если нажать на него, то появиться мини-календарь (рисунок 4.2), где собственно и производиться выбор необходимой даты. Выбираемый год должен входить в интервал 1980 – 2099 гг.
Рисунок 4.1 – Главное окно программы.
После выбора даты, в разделе «Запланировано» появятся все ваши запланированные задачи. Для примера выберем 10 апреля и посмотрим, что у нас там запланировано (рисунок 4.2). Мы видим, что на 10 апреля у нас назначено 3 важных задачи. Если теперь щелкнуть по одной из них мышью, то мы увидим что время и сообщение автоматически переносятся в раздел «Будильник». Будильник нам поможет не забыть о наших задачах, что бы его включить необходимо нажать на клавишу «Вкл.», после чего она примет утопленное состояние и надпись на ней измениться на «Выкл.» (рисунок 4.3).
Рисунок 4.2 – Реализация перехода по дате
Для того что бы выключить будильник вам необходимо повторно нажать на ту же самую клавишу, при этом она вернется в обратное состояние.
Рисунок 4.3 – Реализация автоматического переноса данных в раздел «Будильник»
Допустим, что у нас истекло время, при этом зазвучит звуковой сигнал, в виде сирены и на экране появиться сообщение с указанием на время и сообщение. Это окно приведено на рисунке 4.4.
Кроме запланированных задач на 10 апреля программа нам сообщает сколько у вас осталось свободного времени в разделе «Количество свободного времени» (рисунок 4.3). В этом разделе две записи первая указывает количество свободного времени на выбранный день, а вторая – на следующую неделю. Для того что бы не возникло путаницы в количестве свободного времени записи выделены разным цветом. Количество свободного времени на следующую неделю вычисляется только при запуске программы, и не меняется при смене даты в разделе «Сегодня»
Рисунок 4.4 – Диалоговое окно сообщающее, что время истекло
Для редактирования дат в программе предусмотрена дополнительная форма, в этой форме вы можете добавлять, удалять и редактировать ваши даты. Рассмотрим
ее (рисунок 4.5).
Рисунок
4.5 – Окно «Редактор дня»
Слева в окне «Редактор дня» находится таблица с помощью, которой вы можете ввести данные на определенное время. Справа находятся: кнопки управления датами, список дат, на которые у вас запланированы задачи и раздел «Дата», где указывается интересующая вас дата. Для того что бы быстро перейти к интересуемой вами дате достаточно выбрать дату в списке дат, при этом дата автоматически переноситься в раздел «Дата»
Для того чтобы добавить дату в список дат необходимо:
- Выбрать необходимую вам дату в верхней части окна, в разделе «Дата»
- Перейти к таблице находящейся слева от раздела «Дата», и внести в соответствии с указанным временем необходимые задачи
- Нажать кнопку «Добавить запись»
Если у вас по какой-то причине изменился план дня его можно легко изменить, для этого вам потребуется выполнить следующие действия:
- Выбрать необходимую вам дату в разделе «Дата» или в «Списке дат»
- Нажать на кнопку «Редактировать запись», при этом таблица заполниться запланированными задачами
- Отредактировать в таблице ваши изменения
- Нажать на кнопку «Сохранить запись»
Для удаления записи вам необходимо также выполнит несколько действий:
- Выбрать необходимую вам дату в разделе «Дата» или в «Списке дат»
- Нажать на кнопку «Удалить запись», после этого появиться диалоговое окно с подтверждением об удалении, рисунок 4.6
- В появившемся диалоговом окне подтвердить ваше действие
Для
удаления всех записей из списка дат
необходимо нажать на кнопку <Удалить
все записи>
Рисунок
4.6 – Диалоговое окно подтверждающие
удаление даты
Для
хранения телефонных номеров в программе
предусмотрен телефонный справочник (рисунок
4.7), куда вы можете занести наиболее важные
вам контакты.
Рисунок 4.7 – Телефонный справочник
Для работы с телефонным справочником предусмотрено контекстовое меню, которое вызывается щелчком правой кнопкой мышки.
Для добавлении записи необходимо выбрать раздел меню «Добавить контакт», при этом в таблице появляется свободная строка ввода данных. После того как все данные будут введены их необходимо сохранить, для этого в контекстовом меню выбираем пункт «Сохранить изменения».
Для
того чтобы удалить ненужный контакт
выбираем пункт контекстового меню
«Удалить контакт». После чего на экране
появиться диалоговое окно «Список контактов»
(рис. 4.7). В нем вам необходимо выбрать
фамилию удаляемого контакта и нажать
на кнопку «Ok». После этого таблица телефонного
справочника сократиться на одну запись.
Данные в этом случае не нужно сохранять,
через пункт контекстового меню «Сохранить
изменения»
Рисунок
4.7 – Диалоговое окно «Список контактов».
Дополнительной возможностью программы является окно «Календарь», здесь вы можете уточнить, без особых усилий, интересующую вас дату. Это окно показано на рисунке 4.8.
Рисунок
4.8 – Диалоговое окно «Календарь»
Для
удобства в использовании программой,
в ней предусмотрен механизм сворачивания
программы в системный трейе (рисунок
4.9), при этом программа не мешает работе
пользователя и может быть вызвана в любой
момент времени. При нажатии правой кнопки
мыши на значке появляется контекстовое
меню из 4 пунктов: «Восстановить», «Добавить/Редактировать
дату», «Включить/Выключить будильник»,
«Выход».
Рисунок
4.9 – Значок программы в системном
трейе
При
нажатии «Восстановить» восстанавливается
главное окно программы. При нажатии
«Добавить/Редактировать дату» на экране
появляется окно «Редактор дат», которое
было описано выше. При нажатии «Включить/Выключить
будильник» происходит включение либо
выключение будильника. При выборе пункта
«Выход» программы закрывается.
- Приложение
5.1 Модуль
класса Unit1
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls, ComCtrls, ExtCtrls, ToolWin, Menus, MyUnit,
Mask, ImgList, Grids, Buttons, ShellApi;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
MenuEg: TMenuItem;
MenuListDay: TMenuItem;
MenuEditDay: TMenuItem;
ToolBar1: TToolBar;
DayButton: TToolButton;
EditDayButton: TToolButton;
ToolButton3: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
Panel1: TPanel;
Label1: TLabel;
DateTimePicker1: TDateTimePicker;
GroupBox1: TGroupBox;
Label2: TLabel;
GroupBox2: TGroupBox;
ListBox1: TListBox;
ImageList1: TImageList;
PhoneDbButton: TToolButton;
GroupBox3: TGroupBox;
Label3: TLabel;
MaskEdit1: TMaskEdit;
Label4: TLabel;
Edit1: TEdit;
Panel2: TPanel;
StringGrid1: TStringGrid;
PopupMenu1: TPopupMenu;
AddPhone: TMenuItem;
SaveDB: TMenuItem;
DelRec: TMenuItem;
MenuCalend: TMenuItem;
Tire: TMenuItem;
MenuExit: TMenuItem;
MenuBook: TMenuItem;
PhoneBook: TMenuItem;
Timer1: TTimer;
AlarmButton: TSpeedButton;
PopupMenu2: TPopupMenu;
PopEG: TMenuItem;
PopAddDate: TMenuItem;
PopOnAlarm: TMenuItem;
N1: TMenuItem;
PopExit: TMenuItem;
Label5: TLabel;
Help: TMenuItem;
procedure MenuEditDayClick(Sender: TObject);
procedure EditDayButtonClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure DateTimePicker1Change(Sender: TObject);
procedure PhoneDbButtonClick(Sender: TObject);
procedure DayButtonClick(Sender: TObject);
procedure AddPhoneClick(Sender: TObject);
procedure SaveDBClick(Sender: TObject);
procedure DelRecClick(Sender: TObject);
procedure MenuListDayClick(Sender: TObject);
procedure MenuCalendClick(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure MenuExitClick(Sender: TObject);
procedure ToolButton6Click(Sender: TObject);
procedure PhoneBookClick(Sender: TObject);
procedure AlarmButtonClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
procedure PopEGClick(Sender: TObject);
procedure PopAddDateClick(Sender: TObject);
procedure PopOnAlarmClick(Sender: TObject);
procedure PopExitClick(Sender: TObject);
procedure HelpClick(Sender: TObject);
private
procedure ControlWindow(var MSG: TMessage); // ОТЛАВЛИМАЕМ МИНИМИЗАЦИЮ ПРИЛОЖЕНИЯ
message WM_SYSCOMMAND;
procedure IconMouse(var Msg: Tmessage); // РЕАКЦИЯ НАЖАТИЙ КНОПОК НА ЗНАЧКЕ В ТРЕЕ
message WM_USER + 1;
public
procedure PlanDay(n: integer);
procedure PlanNextWeek(DT: TDate);
procedure GetAlarm;
// СЧИТЫВАЕМ ВРЕМЯ И СООБЩЕНИЕ
procedure Ic(n: integer; Icon: TIcon);
procedure OnMinimizeProc(sender: TObject);
end;
var
Form1:
TForm1;
implementation
uses Unit2, Unit3, Unit4;
{$R *.dfm}
//****************************

- Ежедневное общественно-политическая газета «Московский комсомолец» как средство коммуникации
- Ежедневное общественно-политическое издание «Независимая газета» как средство коммуникации
- Ежелгі Грекиядағы саяси-құқықтық ойы.Даму кезеңдері.Сократтың мемлекет және құқық туралы
- Ежелгі Грекия мен Рим мәдениеті
- Ежелгі Грек философиясы
- Ежелгі Грецияның алғашқы философиялық мектептері. Ежелгі Грециядағы саяси және құқықтык ілім
- Ежелгі дүниедегі саяси және құқықтық ілідер
- Ежегодная Всероссийская Олимпиада развития Народного хозяйства России
- Ежегодная Всероссийская Олимпиада развития Народного хозяйства России
- Ежегодная Международная Олимпиада по экономическим, финансовым дисциплинам и вопросам управления
- Ежегодные оплачиваемые отпуска
- Ежегодные оплачиваемые отпуска
- Ежегодные оплачиваемые отпуска и порядок их предоставления
- Ежегодные оплачиваемые отпуска: понятие и виды, порядок предоставления