рефератырефератырефератырефератырефератырефератырефератырефераты

рефераты, скачать реферат, современные рефераты, реферат на тему, рефераты бесплатно, банк рефератов, реферат культура, виды рефератов, бесплатные рефераты, экономический реферат

"САМЫЙ БОЛЬШОЙ БАНК РЕФЕРАТОВ"

Портал Рефератов

рефераты
рефераты
рефераты

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

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

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

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

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

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

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

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

Находка

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

рефераты
РЕФЕРАТЫ © 2010