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

Тип работы:
Курсовая
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

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

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

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

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

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

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

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

Находка

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

Операционная система: 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. Текст программы с пояснениями

unit Unit1; //Имя программы//

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 программы — в зависимости от полученной суммы программа будет выводить различные сообщения (используется оператор УСЛОВИЕ)//

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

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

If rez=0 then begin label9. 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> 10 000 then begin label9. Caption: ='Вам капец… '; end;

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

If rez> 1 000 000 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;

If rez=0 then begin label9. 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> 10 000 then begin label9. Caption: ='Вам капец… '; end;

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

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

ПоказатьСвернуть
Заполнить форму текущей работой