РефератыИнформатика, программированиеРаРазработка и реализация программы расчета платежа за электроэнергию

Разработка и реализация программы расчета платежа за электроэнергию

ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ


Государственное образовательное учреждение высшего профессионального образования


Находкинский инженерно-экономический институт (филиал) Дальневосточного государственного технического университета (ДВПИ имени В.В. Куйбышева)


Кафедра: Прикладная информатика


Курсовая работа


по дисциплине «Программирование на языках высокого уровня»


Тема: «Разработка и реализация программы расчета платежа за электроэнергию»


Находка


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.Процедуры:


процедурыКНОПКАНАЖАТЬ


procedure Button1Click(Sender: TObject); НажатиекнопкиРАСЧИТАТЬ


procedure Button2Click(Sender: TObject); НажатиекнопкиАВТОР


procedure Button3Click(Sender: TObject); НажатиекнопкиБЛАНК


procedure Button4Click(Sender: TObject); НажатиекнопкиСКРЫТЬ


3.Операторы:


StrToFloat – перевод строчной величины в вещественную


ShowMessage – вывод сообщения


FloatToStrF - перевод вещественной величины в строчную


IF…THEN - Оператор условия


Элемент интерфейса.Caption:= - Изменение заголовка/текста элемента


Элемент интерфейса.Visible:= - Изменение видимости элемента (True/False)


Элемент интерфейса.Height:=Изменение высоты элемента;


Сложение (+)


Вычитание(-)


Умножение (*)


6. Руководство пользователя


Cистемные требования:


Платформа: PC


Операционная система: Windowsxp/vista/seven.


Совместимость с Linux: не тестировалась.


Процессор: Pentium 3800MHz и выше.


Оперативная память: 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;


Labe

l7: 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;//Кнопкаскрыть//


//описание процедур//


//процедурыКНОПКАНАЖАТЬ//


procedure Button1Click(Sender: TObject);


procedure Button2Click(Sender: TObject);


procedure Button3Click(Sender: TObject);


procedure Button4Click(Sender: TObject);


private


{ Private declarations }


public


{ Public declarations }


end;


var


Form1: TForm1;


implementation


{$R *.dfm}


//Описание процедуры НАЖАТЬ НОПКА 1 (РАСЧИТАТЬ)//


procedure TForm1.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<10 thenbeginlabel9.Caption :='Так мало... Вы как так умудрились?';end;


Ifrez>10 thenbeginlabel9.Caption :='Вы счастливчик !!! Это совсем немного';end;


Ifrez=0 thenbeginlabel9.Caption :='Поздравляю вы не должны ни копейки'; end;


If rez<0 then begin label9.Caption :='Вы жулик !!! это невозможно'; end;


If rez>500 then begin label9.Caption :='Хм... немало... но терпимо'; end;


If rez>1000 then begin label9.Caption :='Ого... многовато'; end;


If rez>5000 then begin label10.Caption :='Быстро выключайте все !!! Уже и так света понажгли !!!'; end;


If rez>10000 then begin label9.Caption :='Вам капец...'; end;


If rez>50000 then begin label9.Caption :='Сдается мне вы юморист...'; end;


If rez>1000000 then begin label9.Caption :='Хватит прикалываться !!!'; end;


end;


//Описание процедуры КНОПКА 2 НАЖАТЬ (АВТОР)//


procedure TForm1.Button2Click(Sender: TObject);


begin


//Вывод сообщения об авторстве//


ShowMessage('Автор и разработчик данной программы: '+#13+'Оробец Максим Сергеевич НИЭИ ДВГТУ Группа 8221 2 курс '+#13+'Программа написана на Delphi 7.Код программы мой на 100 %'+#13+'Надеюсь вам понравилось');


end;


//Описание процедуры НАЖАТЬ НОПКА 3 (бланк)//


//перед выводом бланка программа предворительно рассчитывает данные используя алгоритм приведенный выше но вместо вывода сообщения «выводит» бланк//


procedure TForm1.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;


If rez<10 then begin label9.Caption :='Так мало... Вы как так умудрились?';end;


If rez>10 then begin label9.Caption :='Вы счастливчик !!! Это совсем немного';end;


Ifrez=0 thenbeginlabel9.Caption :='Поздравляю вы не должны ни копейки'; end;


If rez<0 then begin label9.Caption :='Вы жулик !!! это невозможно'; end;


If rez>500 then begin label9.Caption :='Хм... немало... но терпимо'; end;


If rez>1000 then begin label9.Caption :='Ого... многовато'; end;


If rez>5000 then begin label10.Caption :='Быстро выключайте все !!! Уже и так света понажгли !!!'; end;


If rez>10000 then begin label9.Caption :='Вам капец...'; end;


If rez>50000 then begin label9.Caption :='Сдается мне вы юморист...'; end;


If rez>1000000 then begin label9.Caption :='Хватит прикалываться !!!'; end;


//По сути так называемый «вывод» бланка представляет собой выведенную картинку таблицы (заранее заготовлена в Excel) где не указанны числа и слова с соответственных графах. На их местах стоят метки заголовки которых меняются на результаты расчетов. Изначально параметр Visible (видимость) этой картинки и Label – ов поставлен на False. А также размер программы подогнан так что пользователь не видит их, но по нажатию кнопки после выполнения расчетов размер программы меняется так, чтобы бланк и Label-ы были видны и их параметр visible меняется на false. Также параметр visible меняется у button 3 (бланк) и button 4 (скрыть) так что в результате кнопка БЛАНК исчезает и на ее месте появляется кнопка СКРЫТЬ//


//Присваивание//


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 (СКРЫТЬ)//


//Меняет размер окна программы так чтобы изображение бланка не было видно и после убирает кнопку СКРЫТЬ а на ее место возвращате кнопку БЛАНК чтобы пользователь мог повторить действие //


procedure TForm1.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 учебник).

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Разработка и реализация программы расчета платежа за электроэнергию

Слов:1581
Символов:17148
Размер:33.49 Кб.