Разработка и реализация программы расчета платежа за электроэнергию
ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ
Государственное образовательное
учреждение высшего профессионального образования
Находкинский
инженерно-экономический институт (филиал) Дальневосточного государственного
технического университета (ДВПИ имени В.В. Куйбышева)
Кафедра: Прикладная информатика
Курсовая работа
по дисциплине
«Программирование на языках высокого уровня»
Тема: «Разработка и
реализация программы расчета платежа за электроэнергию»
Находка
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); Нажатие
кнопки
СКРЫТЬ
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;
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 НАЖАТЬ (АВТОР)//
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.
Заключение
Выполняя курсовую работу я научился
пользоваться средой программирования Delphi 7, освоил
работу с графическим интерфейсом и научился его создавать, нашел большие
различия между средами Pascal и Delphi 7 и некоторые сходства, получил новые
теоретические и практические знания по программированию в новой на тот момент
(ни разу до этого момента не работал с delphi 7) для меня средой
программирования которой теперь с удовольствием пользуюсь и для других целей.
Список использованной литературы
1. Самоучитель по Delphi 7 для
начинающих (Электронный .chm учебник).