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

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

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

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

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

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

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

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

Находка

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;

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

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

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

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


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