Програма обліку комунальних платежів на мові Pascal - Курсовая работа

бесплатно 0
4.5 90
Постановка задачі та визначення її функціоналу: записи в файл бази, їх перегляд та редагування, видалення та використання. Формування коду програми з основного коду і процедур, що ведуть облік у базі даних абонентів та оплат за комунальні послуги.

Скачать работу Скачать уникальную работу

Чтобы скачать работу, Вы должны пройти проверку:


Аннотация к работе
Програма дозволяє виконувати наступні операції: Записати даних у файл. Після перевірки успішності відкриття бази даних вона просто зчитує дані з файлу і деякі з них, а саме: прізвище, імя та адресу абонента, виводить у вікно програми: Procedure SHOWALL; Якщо знайдено збіг, то процедура виводить на екран всі дані, що є у запису, тарифи, і обраховує плату за послуги, показує, чи оплачено їх. Процедура Add дозволяє додати запис про абонента до бази даних. Вона переписує усі дані в файл тимчасового зберігання, дописує записи, а потім перезаписує дані з тимчасового файлу у файл бази даних.Програмування дозволяє значно простіше обходитися із записами, але найголовніше - дуже легко знайти необхідний запис у базі даних за будь-яким із запропонованих параметрів.

План
Зміст

Вступ

Постановка задачі

Алгоритм роботи програми

Тестування та від лагодження програмного коду

Висновок

Список використаної літератури

Програмний код

Додатки

Вывод
Програмування дозволяє значно простіше обходитися із записами, але найголовніше - дуже легко знайти необхідний запис у базі даних за будь-яким із запропонованих параметрів.

Завдяки мові програмування Pascal дуже легко зрозуміти суть і сутність програмування і роботи з файлами. Компютер допомагають нам у всьому Компютери навіть встановлюють в автомобілі, сучасні мобільні телефони теж по суті є компютерами як і багато інших сучасних приладів. Але до кожного компютера потрібне своє програмне забезпечення, яке створюється в середовищі різних мов програмування і тому зараз найбільша увага приділяється максимальному наближенню мови програмування або мови компютера до людської. Це в свою чергу веде до створення не просто досконалої мови програмування, а до самої людської мови, яку б розумів компютер, що гарно продемонстровано на прикладі Pascal і створеної мної програми.

Список литературы
Ставровський А.Б., Коваль Ю.В. Вступний курс програмування.- К., 1998

Грызлов В.И., Грызлова Т.П. Турбо Паскаль 7.0. М.: "ДМК", 2000. - 416 с.

Семотюк В. Програмування в середовищі Турбо Паскаль. - Львів: СП “БАК”, 2000. - 123 с.

Турбо Паскаль 7.0. - Киев: Издательская группа BHV, 1999. - 257 с.

Додаток 1.

Program komun_posl;

uses wincrt;

type

Abonent=record fam:string;

name:string;

fath:string;

misto:string;

vul:string;

bud:integer;

kvar:integer;

tel:longint;

percent:byte;

vod_p:integer;

vod_t:integer;

gas_p:integer;

gas_t:integer;

elect_p:integer;

elect_t:integer;

tel_p:real;

opl:array[1..4] of boolean;

end;

DB=file of Abonent;

const vod_tar=0.65;

gas_tar=0.87;

tel_a=18.5;

elect_tar=0.225;

var f:DB;

tf:DB;

abon:Abonent;

a:integer;

i:integer;

str:string;

str2:string;

int:integer;

sum:real;

borg:real;

Function oplata(i:boolean):string;

begin if i=true then oplata:="оплачено" else oplata:="не оплачено";

end;

Function Open:Boolean;

begin clrscr;

{$I-}

Reset(f);

{$I } if IORESULT0 then begin clrscr;

Open:=false;

writeln("Невдається відкрити файл бази даних!");

writeln;

writeln;

writeln;

writeln("Для повернення в Головне меню натисніть будь-яку кнопку...");

readkey;

clrscr;

end else Open:=true;

end;

Procedure SHOWALL;

begin if Open=true then begin with abon do while not EOF(f) do begin

Read(f,abon);

write(fam, " ", name," ",fath);

writeln(" Адреса: ",misto," ",vul," ",bud," кв.",kvar);

end;

writeln;

writeln;

writeln("Кінець бази даних");

writeln;

writeln;

writeln("Натисніть будь-яку клавішу");

readkey;

close(f);

clrscr end end;

Procedure Pay(fa:string; n:string; s:integer);

begin if Open=true then rewrite(tf);

begin while not EOF(f) do with abon do begin

Read(f, abon);

if (fastr) or (nstr2) then write(tf, abon) else begin if (s5) and (s0) then opl[s]:=true else if s=5 then for s:=1 to 4 do opl[s]:=true;

if s0 then writeln("Борг оплачено");

end;

write(tf, abon);

end;

end;

close(f);

close(tf);

Rewrite(f);

Reset(tf);

while not EOF(tf) do begin

Read(tf, abon);

write(f, abon);

end;

close(f);

close(tf);

reset(f);

writeln("Натисніть будь-яку клавішу для продовження...");

readln;

end;

Procedure Show;

begin if Open=true then begin write("Введіть прізвище абонента: ");

readln(str);

write("Введіть ім""я абонента: ");

readln(str2);

i:=0;

with abon do while not EOF(f) do begin

Read(f, abon);

if (fam=str) and (name=str2) then begin writeln(fam," ", name, " ",fath);

writeln("Адреса: ",misto," ",vul," ", bud," ",kvar," тел.",tel);

writeln;

write(" Попередні"," Теперішні");

writeln(" Спожито "," Тариф "," До оплати");

write("Вода: ",vod_p," ",vod_t," ",vod_t-vod_p," ");

sum:=(vod_t-vod_p)*vod_tar*percent/100;

borg:=0;

writeln(vod_tar:5:2," ",sum:5:2," ",oplata(opl[1]));

if opl[1]=false then borg:=borg sum;

write("Газ: ",gas_p," ",gas_t," ",gas_t-gas_p," ");

sum:=(gas_t-gas_p)*gas_tar*percent/100;

writeln(gas_tar:5:2," ",sum:5:2," ",oplata(opl[2]));

if opl[2]=false then borg:=borg sum;

write("Ел-енергія:",elect_p," ",elect_t," ",elect_t-elect_p," ");

sum:=(elect_t-elect_p)*elect_tar*percent/100;

writeln(elect_tar:5:2," ",sum:5:2," ",oplata(opl[3]));

if opl[3]=false then borg:=borg sum;

writeln("Телефон:");

writeln(" Абонплата: ",tel_a:5:2," Переговори: ",tel_p:5:2," ",oplata(opl[4]));

writeln;

writeln("Загальна сума до оплати: ",borg:5:2," грн.");

writeln;

writeln("Виберіть борг для погашення:");

writeln("1.- Вода");

writeln("2.- Газ");

writeln("3.- Електроенергія");

writeln("4.- Телефон");

writeln("5.- Увесь борг");

writeln;

writeln("0.- Пропустити");

readln(a);

Pay(fam,name,a);

break;

i:=-1;

end;

end;

close(f);

clrscr;

end end;

Procedure Add;

begin clrscr;

Rewrite(tf);

if Open=true then begin with abon do begin while not EOF(f) do begin

Read(f, abon);

write(tf, abon) end;

a:=1;

while a 0 do begin write("Прізвище: ");

readln(fam);

write("Ім""я: ");

readln(name);

write("По батькові: ");

readln(fath);

write("Місто: ");

readln(misto);

write("Вулиця: ");

readln(vul);

write("Будинок: ");

readln(bud);

write("Квартира: ");

readln(kvar);

write("Телефон: ");

readln(tel);

write("Відсоток сплати(якщо немає пільг, то 100): ");

readln(percent);

writeln("Покази лічильників:");

writeln("Вода: ");

write("Попередні: ");

readln(vod_p);

write("Теперішні: ");

readln(vod_t);

writeln("Газ: ");

write("Попередні: ");

readln(gas_p);

write("Теперішні: ");

readln(gas_t);

writeln("Електроенергія: ");

write("Попередні: ");

readln(elect_p);

write("Теперішні: ");

readln(elect_t);

write("За телефонні переговори: ");

read(tel_p);

for i:=1 to 4 do opl[i]:=false;

write(tf, abon);

writeln;

write("Додати ще один запис? 1 - так / 0 - ні ");

readln(a);

end;

close(f);

close(tf);

Rewrite(f);

Reset(tf);

while not EOF(tf) do begin

Read(tf, abon);

write(f, abon) end end;

close(f);

close(tf);

writeln("Збережено!");

writeln;

writeln("Натисніть будь-яку клавішу..");

readkey;

clrscr end end;

Procedure EDITCOUNT;

begin clrscr;

Rewrite(tf);

reset(f);

if Open=true then begin with abon do begin write("Введіть прізвище: ");

readln(str);

write("Введіть ім""я: ");

readln(str2);

while not EOF(f) do begin

Read(f, abon);

if (famstr) or (namestr2) then write(tf, abon) else begin writeln("Ввиберіть лічильник:");

writeln("1.- Вода");

writeln("2.- Газ");

writeln("3.- Електроенергія");

writeln("4.- Телефон");

writeln("5.- Всі покази");

writeln;

writeln("0.- Пропустити");

readln(a);

case a of

1:begin vod_p:=vod_t;

write("Нові покази лічильника: ");

readln(vod_t);

opl[1]:=false;

end;

2:begin gas_p:=gas_t;

write("Нові покази лічильника: ");

readln(gas_t);

opl[2]:=false;

end;

3:begin elect_p:=elect_t;

write("Нові покази лічильника: ");

readln(elect_t);

opl[3]:=false;

end;

4:begin write("Рахунок за переговори: ");

readln(tel_p);

opl[4]:=false;

end;

5:begin vod_p:=vod_t;

writeln("Введіть нові покази лічильників: ");

vod_p:=vod_t;

write("Вода: ");

readln(vod_t);

gas_p:=gas_t;

write("Газ: ");

readln(gas_t);

elect_p:=elect_t;

write("Електроенргія: ");

readln(elect_t);

write("Рахунок за телефонні переговори: ");

readln(tel_p);

for i:=1 to 4 do opl[i]:=false;

end;

end;

write(tf, abon);

end;

end end;

close(f);

close(tf);

Rewrite(f);

Reset(tf);

while not EOF(tf) do begin

Read(tf, abon);

write(f, abon);

end;

close(f);

close(tf);

end;

writeln("Зміни збережено!");

writeln("Натисніть будь-яку клавішу для продовження...");

readkey;

end;

Procedure EDITABON;

begin clrscr;

Rewrite(tf);

reset(f);

if Open=true then begin with abon do begin write("Введіть прізвище: ");

readln(str);

write("Введіть ім""я: ");

readln(str2);

while not EOF(f) do begin

Read(f, abon);

if (famstr) or (namestr2) then write(tf, abon) else begin writeln("Ввиберіть поле редагування:");

writeln("1.- Прізвище, ім""я та по-батькові");

writeln("2.- Адресу і телефон");

writeln;

writeln("0.- Пропустити");

readln(a);

case a of

1:begin clrscr;

writeln("Нові дані: ");

write("Прізвище: ");

readln(fam);

write("Ім""я: ");

readln(name);

write("По батькові: ");

readln(fath);

end;

2:begin clrscr;

writeln("Нові дані: ");

write("Місто: ");

readln(misto);

write("Вулиця: ");

readln(vul);

write("Будинок: ");

readln(bud);

write("Квартира: ");

readln(kvar);

write("Телефон: ");

readln(tel);

end;

end;

write(tf, abon);

end;

end end;

close(f);

close(tf);

Rewrite(f);

Reset(tf);

while not EOF(tf) do begin

Read(tf, abon);

write(f, abon);

end;

close(f);

close(tf);

end;

writeln("Зміни збережено!");

writeln("Натисніть будь-яку клавішу для продовження...");

readkey;

end;

Procedure Delete;

begin clrscr;

Rewrite(tf);

if Open=true then begin with abon do begin write("Введіть прізвище абонента: ");

readln(str);

write("Введіть ім""я абонента: ");

readln(str2);

while not EOF(f) do begin

Read(f, abon);

if (famstr) or (namestr2) then write(tf, abon) end;

close(f);

close(tf);

Rewrite(f);

Reset(tf);

while not EOF(tf) do begin

Read(tf, abon);

write(f, abon) end end;

close(f);

close(tf);

writeln("Видалено!");

writeln;

writeln("Натисніть будь-яку клавішу..");

readkey;

clrscr end end

Procedure REWRITEDB;

begin writeln("Увага! Зараз Базу Даних буде знищено!!!");

writeln;

writeln("Ви впевнені? 1.- ТАК \ 0.- НІ");

readln(a);

if a=1 then begin clrscr;

Rewrite(f);

writeln("Базу даних знищено!!! Натисніть будь-яку клавішу..");

close(f);

readln;

clrscr;

end end;

Procedure MAINMENU;

begin clrscr;

writeln("1.- Показати список всіх абонентів");

writeln("2.- Додати абонента");

writeln("3.- Пошук абонента");

writeln("4.- Змінити покази лічильників");

writeln("5.- Редагувати дані про абонента");

writeln("6.- Видалити абонента зі списку");

writeln("7.- Стерти базу даних");

writeln;

writeln("0.- Вихід") end;

begin writeln(" Міністерство освіти та науки України");

writeln(" Тернопільський національний технічний університет ім. І. Пулюя");

writeln;

writeln;

writeln;

writeln(" КУРСОВА РОБОТА");

writeln(" на тему:");

writeln(" ОПЛАТА КОМУНАЛЬНИХ ПОСЛУГ");

writeln;

writeln;

writeln;

writeln(" Група СІ-12");

writeln(" Сівіцький Олександр");

writeln;

writeln;

writeln;

writeln(" Тернопіль");

writeln(" 2010 рік");

readkey;

clrscr;

Assign(f, "data.dat");

Assign(tf, "data_temp.dat");

int:=1;

while int 0 do begin

MAINMENU;

readln(int);

case int of

1:SHOWALL;

2:Add;

3:Show;

4:EDITCOUNT;

5:EDITABON;

6:Delete;

7:REWRITEDB;

end;

end;

clrscr;

write("Тепер можна закрити вікно програми");

end.

Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность
своей работы


Новые загруженные работы

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





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