ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ
Государственное образовательноеучреждение высшего профессионального образования
Находкинскийинженерно-экономический институт (филиал) Дальневосточного государственноготехнического университета (ДВПИ имени В.В. Куйбышева)
Кафедра: Прикладная информатика
Курсовая работа
по дисциплине«Программирование на языках высокого уровня»
Тема: «Разработка иреализация программы расчета платежа за электроэнергию»
Находка
2010
Введение
Цель курсовой работы
- обобщение, закрепление иуглубление знании, полученных за время изучения дисциплины;
- получение практическихнавыков подготовки инженерно-технических задач к решению на компьютере (ПК);
- ознакомление с наиболеераспространёнными методами обработки информации при решении прикладных задач;
- закрепление навыков работыв Pascal;
- получение навыков виспользовании научно-технической и нормативной литературы, ГОСТов;
- приобретение опыта в оформлениитекстовых и графических материалов курсовых работ.
1. Задание на курсовуюработу
Задание: разработать и реализовать программурасчета платежей за потребленную электроэнергию.
Информация (ФИО, адрес,дата, тариф, начислено, долг, заранее оплачено) должна вводиться пользователем.Программа должна корректно воспринимать данные, а также обрабатывать их с цельюполучения полной информации о предстоящем платеже за электроэнергию с учетомкак тарифа и текущих начислений, так и с учетом долга и заранее погашенныхплатежей.
2. Постановка задачи
Исходные данные: Тариф(а), начислено (b), долг (с), заранее оплачено (d).
Результаты: Результат(rez).
Операции:Результат(rez):=(тариф(а)*начислено(b))+долг(с)-заранее оплачено(d).
3. Математическаямодель задачи
Пусть РЕЗУЛЬТАТ будетравен x.
Тариф обозначим какпеременную а, начислено обозначим как переменную b, долг обозначим какпеременную с, а заранее оплачено обозначим как переменную d.
Так как РЕЗУЛЬТАТ равен(тариф*начислено)+долг-заранее оплачено то в формульном виде это будетвыглядеть следюющим образом:
X:=(a*b)+c-d
4.Блок-схема алгоритма программы
/>
5. Разработка программы
Для работы в программеиспользуются:
1.Элементы интерфейса:
TForm1= class(TForm)экран приложения
Строки в которыепользователь вводит информацию
Edit1:TEdit; Фио
Edit2:TEdit; Адрес
Edit3:TEdit; Дата
Edit4:TEdit; Тариф
Edit5:TEdit; Начисленно
Edit6:TEdit; долг
Edit7:TEdit; заранееоплачено
Надписи-метки
Label1:TLabel; «Заранее оплачено»
Label2:TLabel; «Адрес»
Label3:TLabel; «Дата»
Label4:TLabel; «Тариф»
Label5:TLabel; «Начисленно»
Label6:TLabel; «Долг»
Label7:TLabel; «ФИО»
Label9:TLabel, Label10: TLabel; Вывод оценки
Label11:TLabel;Label12: TLabel;Label13: TLabel;Label14: TLabel;Label15: TLabel;Label16:TLabel;Label17: TLabel;Label18: TLabel;Label19: TLabel;
Вывод результата вбланк
Картинки
Image1:TImage; Картинка (фон)
Image2:TImage; Картинка – бланк
Кнопки
Button1:TButton; Кнопка РАСЧИТАТЬ
Button2:TButton; Кнопка Автор
Button3:TButton; Кнопка Бланк
Button4:TButton; Кнопка Скрыть
Другие элементы:
MonthCalendar1:TMonthCalendar; календарь
2.Процедуры:
процедурыКНОПКАНАЖАТЬ
procedureButton1Click(Sender: TObject); НажатиекнопкиРАСЧИТАТЬ
procedureButton2Click(Sender: TObject); НажатиекнопкиАВТОР
procedureButton3Click(Sender: TObject); НажатиекнопкиБЛАНК
procedureButton4Click(Sender: TObject); НажатиекнопкиСКРЫТЬ
3.Операторы:
StrToFloat– перевод строчной величины в вещественную
ShowMessage– вывод сообщения
FloatToStrF- перевод вещественной величины в строчную
IF…THEN- Оператор условия
Элемент интерфейса.Caption:=- Изменение заголовка/текста элемента
Элементинтерфейса.Visible:= — Изменение видимости элемента (True/False)
Элемент интерфейса.Height:=Изменениевысоты элемента;
Сложение (+)
Вычитание(-)
Умножение (*)
6. Руководство пользователя
Cистемные требования:
Платформа: PC
Операционнаясистема: Windows xp/vista/seven.
Совместимость с Linux: нетестировалась.
Процессор: Pentium 3 800MHz и выше.
Оперативнаяпамять: 128 и выше.
Объем на HDD:544КБ (557 056 байт)
Для начала работы с программой щелкните2 раза левой кнопкой мыши по иконке «Миниэлектрик V 1.0.exe» вследствие чегооткроется главное окно программы с которым впоследствии мы и будем оперировать(рис. 1).
/>
Рис. 1
Для начала введем данные длярасчетов про помощи клавиатуры в следующие поля (рис. 2):
/>
Рис. 2
ФИО это имя и инициалы абонента
АДРЕС это адрес его прописки
ДАТА это текущее число и месяц
ТАРИФ это стоимость за Квт. энергиив рублях (дробные числа вводятся в формате 3,5 в противном случае будетвыведено сообщение об ошибке)
НАЧИСЛЕННО это сколько вам«накрутил» кВт в этом месяце счетчик.
ДОЛГ это ваша задолженность попредыдущим периодам (если таковая имеется) (рис. 3).
/>
Рис. 3
Заранее оплачено это размер платежейвнесенных вами заранее (если таковые имеются)
Для удобства пользователя впрограмму встроен календарь, который поможет вам мгновенно вспомнить текущуюдату. Найти его всегда можно в левом нижнем углу.
После ввода нажимаем кнопку РАСЧИТАТЬпосле чего на экран будет выведено сообщение с результатом (рис. 4).
/>
Рис. 4
Для продолжения работы с программойнажмите ОК.
Под кнопкой РАСЧИТАТЬ теперь мывидим текущую оценку ваших расходов которая меняется в зависимости от величинырезультата (рис. 5).
/>
Рис. 5
/>
Рис. 6
Программа также имеет второй режимработы – вывод бланка. Для вывода бланка нажмите кнопку БЛАНК (рис. 6).
На экран будет выведен бланк срезультатом (рис. 7)
/>
Рис. 7
Для возврата программы в нормальныйвид нажмите кнопку СКРЫТЬ.
Для получения информации об авторенажмите кнопку АВТОР после чего на экран будет выведено окно с информацией осоздателе программы.
Для завершения работы с программойнажмите на крестик в верхнем правом углу.
7. Текст программы с пояснениями
unitUnit1; //Имя программы//
interface
uses
Windows,Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,StdCtrls, jpeg, ExtCtrls, ComCtrls;
//Создание графическогоинтерфейса//
type
TForm1= class(TForm)//экран приложения//
//Строки в которыепользователь вводит информацию//
Edit1:TEdit; //Фио//
Edit2:TEdit; //Адрес //
Edit3:TEdit; //дата //
Edit4:TEdit;//Тариф(ценазакВ)//
Edit5:TEdit;//начисленно//
Edit6:TEdit;//долг//
Edit7:TEdit;//заранееоплачено//
Label1:TLabel;//Надписи-метки//
Label2:TLabel;
Label3:TLabel;
Label4:TLabel;
Label5:TLabel;
Label6:TLabel;
Label7:TLabel;
Button1:TButton;//Кнопка РАСЧИТАТЬ//
MonthCalendar1:TMonthCalendar; //календарь(дляудобствапользователя)//
Image1:TImage; //Картинка (фон)//
Label8:TLabel;
Label9:TLabel;
Label10:TLabel;
Button2:TButton; //Кнопка Автор//
Image2:TImage;//картинка — бланк//
Label11:TLabel;
Label12:TLabel;
Label13:TLabel;
Label14:TLabel;
Label15:TLabel;
Label16:TLabel;
Label17:TLabel;
Label18:TLabel;
Label19:TLabel;
Button3:TButton; //Кнопка Бланк//
Button4:TButton;//Кнопка скрыть//
//описание процедур//
//процедурыКНОПКАНАЖАТЬ//
procedureButton1Click(Sender: TObject);
procedureButton2Click(Sender: TObject);
procedureButton3Click(Sender: TObject);
procedureButton4Click(Sender: TObject);
private
{Private declarations }
public
{Public declarations }
end;
var
Form1:TForm1;
implementation
{$R*.dfm}
//Описание процедурыНАЖАТЬ НОПКА 1 (РАСЧИТАТЬ)//
procedureTForm1.Button1Click(Sender: TObject);
//Описание переменных//
var
a:Real48;
b:Real48;
c:Real48;
d:Real48;
rez:Real48;
begin
//Присваиваемпеременным значения введенные пользователем в строки //
a:=StrToFloat(Edit4.Text);//переводим строчные переменные в вещественные для дальнейших вычислений.//
b:=StrToFloat(Edit5.Text);
c:=StrToFloat(Edit6.Text);
d:=StrToFloat(Edit7.Text);
rez:= (a*b)+c-d;
//вывод сообщения срезультатом //
ShowMessage('Уважаемый'+Edit1.Text+#13+'Проживающийпо адресу '+Edit2.Text+#13+
'Сообщаем вам что на '+Edit3.Text+#13+'выдолжны '+
FloatToStrF(rez,ffFixed,90,2)+'рублей'+#13+'за используемую вами электроэнергию.');
//Создание такназываемой «системы оценки». Это так называемый Easter egg программы – взависимости от полученной суммы программа будет выводить различные сообщения(используется оператор УСЛОВИЕ)//
Ifrez
Ifrez>10 thenbegin label9.Caption:='Вы счастливчик!!! Этосовсем немного';end;
Ifrez=0 thenbegin label9.Caption:='Поздравляю вы не должны ни копейки'; end;
Ifrez
Ifrez>500 then begin label9.Caption :='Хм… немало… но терпимо'; end;
Ifrez>1000 then begin label9.Caption :='Ого… многовато'; end;
Ifrez>5000 then begin label10.Caption :='Быстро выключайте все!!! Уже и таксвета понажгли !!!'; end;
Ifrez>10000 then begin label9.Caption :='Вам капец...'; end;
Ifrez>50000 then begin label9.Caption :='Сдается мне вы юморист...'; end;
Ifrez>1000000 then begin label9.Caption :='Хватит прикалываться !!!'; end;
end;
//Описание процедурыКНОПКА 2 НАЖАТЬ (АВТОР)//
procedureTForm1.Button2Click(Sender: TObject);
begin
//Вывод сообщения обавторстве//
ShowMessage('Автори разработчик данной программы: '+#13+'Оробец Максим Сергеевич НИЭИ ДВГТУГруппа 8221 2 курс '+#13+'Программа написана на Delphi7.Код программы мой на 100 %'+#13+'Надеюсь вам понравилось');
end;
//Описание процедурыНАЖАТЬ НОПКА 3 (бланк)//
//перед выводом бланкапрограмма предворительно рассчитывает данные используя алгоритм приведенныйвыше но вместо вывода сообщения «выводит» бланк//
procedureTForm1.Button3Click(Sender: TObject);
//Предыдущий алгоритмрасчета и оценки//
var
a:Real48;
b:Real48;
c:Real48;
d:Real48;
rez:Real48;
begin
a:=StrToFloat(Edit4.Text);
b:=StrToFloat(Edit5.Text);
c:=StrToFloat(Edit6.Text);
d:=StrToFloat(Edit7.Text);
rez:= (a*b)+c-d;
Ifrez
Ifrez>10 then begin label9.Caption :='Вы счастливчик!!! Этосовсем немного';end;
Ifrez=0 thenbegin label9.Caption:='Поздравляю вы не должны ни копейки'; end;
Ifrez
Ifrez>500 then begin label9.Caption :='Хм… немало… но терпимо'; end;
Ifrez>1000 then begin label9.Caption :='Ого… многовато'; end;
Ifrez>5000 then begin label10.Caption :='Быстро выключайте все!!! Уже и таксвета понажгли !!!'; end;
Ifrez>10000 then begin label9.Caption :='Вам капец...'; end;
Ifrez>50000 then begin label9.Caption :='Сдается мне вы юморист...'; end;
Ifrez>1000000 then begin label9.Caption :='Хватит прикалываться !!!'; end;
//По сути такназываемый «вывод» бланка представляет собой выведенную картинку таблицы(заранее заготовлена в Excel) где не указанны числа и слова с соответственныхграфах. На их местах стоят метки заголовки которых меняются на результатырасчетов. Изначально параметр Visible (видимость) этой картинки и Label – овпоставлен на False. А также размер программы подогнан так что пользователь невидит их, но по нажатию кнопки после выполнения расчетов размер программыменяется так, чтобы бланк и Label-ы были видны и их параметр visibleменяется на false. Также параметр visibleменяется у button 3 (бланк) и button4 (скрыть) так что в результате кнопка БЛАНК исчезает и на ее месте появляетсякнопка СКРЫТЬ//
//Присваивание//
label11.Caption:=Edit3.Text;
label13.Caption:=Edit1.Text;
label14.Caption:=Edit2.Text;
label15.Caption:=FloatToStrF(rez,ffFixed,90,2);
label16.Caption:=Edit7.Text;
label17.Caption:=Edit6.Text;
label18.Caption:=Edit5.Text;
label19.Caption:=Edit4.Text;
//включение видимостиизображения бланка и меток-надписей//
image2.Visible:=true;
label19.Visible:=true;
label18.Visible:=true;
label17.Visible:=true;
label16.Visible:=true;
label15.Visible:=true;
label14.Visible:=true;
label13.Visible:=true;
label12.Visible:=true;
label11.Visible:=true;
//Изменение размерапрограммы//
Form1.height:=593;
//Изменение видимостикнопок//
Button3.Visible:=false;
Button4.Visible:=true;
end;
//Описание процедурыНАЖАТЬ НОПКА 4 (СКРЫТЬ)//
//Меняет размер окнапрограммы так чтобы изображение бланка не было видно и после убирает кнопкуСКРЫТЬ а на ее место возвращате кнопку БЛАНК чтобы пользователь мог повторитьдействие //
procedureTForm1.Button4Click(Sender: TObject);
begin
//Изменение размера//
Form1.height:=490;
//Настройка видимостикнопок//
Button4.Visible:=false;
Button3.Visible:=true;
end;
//Конец программы//
end.
Заключение
Результатом выполнения курсовойработы является программа «Миниэлектрик V 1.0.exe»,разработанная в среде Delphi 7.
Выполняя курсовую работу я научилсяпользоваться средой программирования Delphi 7, освоилработу с графическим интерфейсом и научился его создавать, нашел большиеразличия между средами Pascal и Delphi 7 и некоторые сходства, получил новыетеоретические и практические знания по программированию в новой на тот момент(ни разу до этого момента не работал с delphi 7) для меня средойпрограммирования которой теперь с удовольствием пользуюсь и для других целей.
Список использованной литературы
1. Самоучитель по Delphi 7 дляначинающих (Электронный .chm учебник).