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

бесплатно 0
4.5 127
Методы обработки информации при решении прикладных задач. Математическая модель задачи. Блок-схема алгоритма программы. Компоненты, которые используются для работы в программе: элементы интерфейса; процедуры; операторы. Текст программы с пояснениями.


Аннотация к работе
Информация (ФИО, адрес, дата, тариф, начислено, долг, заранее оплачено) должна вводиться пользователем. Label11: TLABEL;Label12: TLABEL;Label13: TLABEL;Label14: TLABEL;Label15: TLABEL;Label16: TLABEL;Label17: TLABEL;Label18: TLABEL;Label19: TLABEL; Button4: TBUTTON;Кнопка Скрыть 2.Процедуры: процедуры КНОПКА НАЖАТЬ procedure Button1Click(Sender: TOBJECT); Нажатие кнопки РАСЧИТАТЬ procedure Button2Click(Sender: TOBJECT); Нажатие кнопки АВТОР procedure Button3Click(Sender: TOBJECT); Нажатие кнопки БЛАНК procedure Button4Click(Sender: TOBJECT); Нажатие кнопки СКРЫТЬ После ввода нажимаем кнопку РАСЧИТАТЬ после чего на экран будет выведено сообщение с результатом (рис.Выполняя курсовую работу я научился пользоваться средой программирования Delphi 7, освоил работу с графическим интерфейсом и научился его создавать, нашел большие различия между средами Pascal и Delphi 7 и некоторые сходства, получил новые теоретические и практические знания по программированию в новой на тот момент (ни разу до этого момента не работал с delphi 7) для меня средой программирования которой теперь с удовольствием пользуюсь и для других целей.

Введение
Цель курсовой работы обобщение, закрепление и углубление знании, полученных за время изучения дисциплины;

получение практических навыков подготовки инженерно-технических задач к решению на компьютере (ПК);

ознакомление с наиболее распространенными методами обработки информации при решении прикладных задач;

закрепление навыков работы в Pascal;

получение навыков в использовании научно-технической и нормативной литературы, ГОСТОВ;

приобретение опыта в оформлении текстовых и графических материалов курсовых работ.

1. Задание на курсовую работу

Задание: разработать и реализовать программу расчета платежей за потребленную электроэнергию.

Информация (ФИО, адрес, дата, тариф, начислено, долг, заранее оплачено) должна вводиться пользователем. Программа должна корректно воспринимать данные, а также обрабатывать их с целью получения полной информации о предстоящем платеже за электроэнергию с учетом как тарифа и текущих начислений, так и с учетом долга и заранее погашенных платежей.

2. Постановка задачи

Исходные данные: Тариф (а), начислено (b), долг (с), заранее оплачено (d).

Результаты: Результат (rez).

Операции: Результат(rez):=(тариф(а)*начислено(b)) долг(с)-заранее оплачено(d).

3. Математическая модель задачи

Пусть РЕЗУЛЬТАТ будет равен x.

Тариф обозначим как переменную а, начислено обозначим как переменную b, долг обозначим как переменную с, а заранее оплачено обозначим как переменную d.

Так как РЕЗУЛЬТАТ равен (тариф*начислено) долг-заранее оплачено то в формульном виде это будет выглядеть следюющим образом: X:=(a*b) c-d. Блок-схема алгоритма программы

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. Руководство пользователя

Системные требования: Платформа: 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>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;

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>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 учебник).
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?