Створення та обробка бази даних
Procedure truncate (<�логічне ім'я файлу>); — Файл усікається до поточної позиції курсора. У цю позицію записується ознака кінця файлу. Обробка файла (створення, додавання, видалення, редагування і т.д.) повинна здійснюватися за допомогою процедур та функцій. Procedure Poisk; — виконує виведення на екран прізвища депутатів, ділянку кількість голосів за, кількість голосів проти. При виборі… Читати ще >
Створення та обробка бази даних (реферат, курсова, диплом, контрольна)
Зміст
1. Постановка задач
2. Алгоритм розробки програми
3. Практична реалізація
3.1 Опис структури даних та вимоги до них
3.2 Опис стандартних процедур та функцій, що використовувалися у програмі
3.3 Опис процедур та функцій користувача
3.4 Опис файлів та їх призначення
4 .Інструкція для роботи з програмою
5. Приклад тестування та результати роботи програми Висновок Література Додаток А. Лістинг основної програми Додаток Б. Лістинг модуля
1. Постановка задачі
Практичне завдання
Створити файл, що містить відомості про результати виборів. Структура запису: виборча ділянка, прізвище кандидата (3 кандидата), кількість голосів «за», кількість голосів «проти».
Написати програму, що видає наступну інформацію:
— результати голосування по виборчій ділянці Х;
— підсумки результатів виборів з виведенням прізвищ кандидатів та кількості. отриманих ними голосів.
Вимоги до програм
Створення та обробка бази даних здійснюється шляхом вибору відповідного пункту меню.
Основні пункти меню програми:
— створення файла записів;
— додавання інформації у файл;
— внесення змін у запис за запитом;
— видалення запису;
— виведення вмісту файла даних у вигляді таблиці;
— реалізація дій відповідно до варіанта завдання.
Обробка файла (створення, додавання, видалення, редагування і т.д.) повинна здійснюватися за допомогою процедур та функцій.
Введення даних повинно відбуватися з перевіркою на область допустимих значень.
Всі процедури та функції повинні бути розміщенні у відповідних модулях.
Файл повинен містити не менше 10 записів.
2. Алгоритм розробки програми
1. Створити два файли: основний файл з програмою та файл модуля.
2. В основному файлі зв’язати файлову змінну з файлом даних та створити меню відповідно до заданих пунктів.
3. В файлі модуля створити тип даних, який описує структуру запису та описати необхідні змінні (f — файлова змінна, z — змінна типу запису і т.д.)
4. В файлі модуля створити процедури та функції, які реалізують задані пункти меню.
4.1. Створити процедуру створення файла записів та занесення в нього даних:
— створити та відкрити файл для запису за допомогою процедури rewrite (f, `deputat.dat');
— ввести потрібні данні з клавіатури та записати їх у файл за допомогою процедури read (f, z);
— закрити файл процедурою close (f).
4.2. Створити процедуру виведення даних на екран:
— відкрити файл для читання — reset (f);
— зчитати дані з файлу — read (f, z);
— вивести дані на екран;
— закрити файл процедурою close (f).
4.3. Створити процедуру додавання інформації у файл:
— відкрити файл для читання та запису — reset (f);
— встановити вказівник файла за останнім його компонентом процедурою seek (f, filesize (f));
— записати додаткові дані аналогічно процедурі введення даних;
— закрити файл процедурою close (f).
4.4 Створити процедуру редагування запису:
— відкрити файл, що потрібно відредагувати;
— ввести номер запису для редагування;
— зчитати дані з файлу та порівняти його номер із введеним;
— встановити вказівник файла на заданий елемент seek (f, n-1);
— відредагувати поля запису та записати їх у файл;
— закрити файл процедурою close (f).
4.5. Створити процедуру видалення запису:
— відкрити файл для читання ;
— ввести номер запису, який необхідно видалити;
— зчитати дані з файлу та порівняти його номер із введеним;
— видаляємо запись;
4.6 Створити процедуру, яка проводить пошук по виборчій ділянці:
— відкрити файл для читання;
— ввести дані, які необхідно знайти;
— вивести знайдені дані на екран;
— закрити файл;
5. Відкомпілювати створений модуль та виконати програму з використання створеного модуля.
3. Практична реализация
3.1 Опис структури даних та вимоги до них
type deputat=record — тип даних, що містить відомості про депутаів.
Fam, Fam1, Fam2:string; -прізвище депутата.
dylanka, dylanka1, dylanka2 :1.25;- ділянка.
golosa_za, golosa_za1, golosa_za2 :0.120; - голоса за.
golosa_protiv, golosa_protiv1, golosa_protiv2 :0.120; - голоса проти.
i:integer; - лічильник.
n:integer; - номер шуканого запису.
st:string; - змінна, значення якої використовується для перевірки умови продовження введення даних. Якщо st='d', то продовжується введення даних.
3.2 Опис стандартних процедур та функцій, що використовувалися у програмі
Процедури і функції для роботи з екраном та клавіатурою:
procedure GoToXY (X, Y: Byte); - переводить курсор в задану позицію екрана з координатами x (стовпчик), y (рядок).
Процедури та функції для роботи з файлами:
Procedure assign (<�логічне ім'я файлу>,<�фізичне ім'я файлу>); - встановлює відповідність між логічним і фізичним іменами файлу. Логічне ім'я — це ім'я зміної з розділу опису var. За цим іменем до файлу звертаються у програмі. Фізичне ім'я — це ім'я, під яким файл записаний на диску.
Procedure reset (<�логічне ім'я файлу >); - Відкриття існуючого файлу. Якщо це текстовий файл, то допускається тільки читання з файлу; для типізованого файлу припустимі як читання, так і запис даних.
Procedure rewrite (<�логічне ім'я файлу >); - Відкриття нового файлу. Якщо це текстовий файл, то допускається тільки запис у файл; для типізованого файлу припустимі як читання, так і запис даних. Якщо файл F уже існує, то при спрацьовуванні процедури Rewrite файл F попередньо вилучається.
Procedure write (<�логічне ім'я файлу >,<�список змінних>); - Виконується запис даних в файл.
Procedure read (<�логічне ім'я файлу >,<�список змінних>); - Виконується зчитування даних з файлу.
Procedure close (<�логічне ім'я файлу >); - Виконується закриття файлу F. Якщо буфер виведення заповнений не повністю, то його вміст переноситься у файл F, після чого з оперативної пам’яті вилучається службова інформація про файл F.
Procedure seek (<�логічне ім'я файлу >, k); - Процедура переміщує покажчик файлу на компонент із номером k.
Procedure eof (<�логічне ім'я файлу >); - Функція повертає значення true, якщо досягнуто кінець файлу; у протилежному випадку вихідне значення дорівнює false.
Procedure truncate (<�логічне ім'я файлу >); - Файл усікається до поточної позиції курсора. У цю позицію записується ознака кінця файлу.
Procedure filesize (<�логічне ім'я файлу >); - Повертає поточний розмір типізованого файлу.
Процедури і функції модуля GRAPH:
Procedure setbkcolor (color:word); - Встановлює колір фону.
Procedure settextStyle (font, direction: word; charSize: word); Встановлює поточний шрифт, стиль та розмір тексту.
Procedure outtextxy (x, y: integer;textstring:string); - Виводить текст на, екран починаючи від точки (x, y).
Procedure closegraph — закриває графічну систему.
програма алгоритм дані тестування файл
3.3 Опис процедури та функцій користувача
Procedure Vvod; - виконує зчитування даних з клавіатури та заносить їх у файл runok.bat.
Procedure Vuvod; - виводить на екран дані які записані у файлі runok. bat
Procedure Dobavit; - додає інформацію у файл runok. bat
Procedure Redakt; - виконує редагування запису із заданим номером в файлі runok. bat
Procedure Delete; - видаляє запис із заданим номером із файла runok. bat
Procedure Poisk; - виконує виведення на екран прізвища депутатів, ділянку кількість голосів за, кількість голосів проти.
3.4 Опис файлів та їх призначення
Vybory_osnovna.pas — файл з основною програмою.
Vybory_osnovna.exe — відкомпільований файл з основною програмою.
Vybory.pas — файл модуля.
Vybory.tpu — відкомпільований файл модуля.
deputaty.dat — файл, що містить відомості про депутатів.
4. Інструкція для роботи з програмою
Для запуску програми необхідно запустити файл Vybory_osnovna.exe. Після запуску файлу з’явиться заставка програми при натисненні будь-якої клавіші з’явиться меню.
Пункти меню:
1 — Ввод информации о депутате
2 — Результати выборов
3 — Добавить информацию о депутате
4 — Редактировать информацию
5 — Удалить кандидата
6 — Поиск по изберательным участкам
7 — Выход У меню вибираємо необхідний пункт за допомогою введення відповідного номера і натискаємо enter.
При виборі першого пункту користувач отримує можливість створення файла записів та занесення у нього даних.
Другий пункт меню користувач зможе побачити дані які були введені.
Третій пункт меню дозволяє користувачеві додати інформацію у файл.
Четвертий пункт меню призначений для редагування запису.
П’ятий пункт меню призначений для видалення запису.
Шостий пункт меню призначений для пошук по виборчим ділянкам.
Сьомий пункт меню призначений для виходу з програми.
Для того щоб після виконання необхідної функції повернутися в головне меню досить натиснути пробіл або enter.
Для виходу із програми потрібно вибрати в головному меню пункт Выход і натиснути enter.
5. Приклад тестування та результату роботи програми
Основна програма, вигляд меню:
Створення файлу записів
Виведення даних на екран
Додавання даних у файл Редагування файлу Видалення запису Пошук по номеру ділянки
Висновок
Виконавши курсовий проект, я придбав навички роботи в середовищі програмування створив програму про вибори, з такими процедурами як додавання депутатів, редагування інформації про них, видалення депутатів, та пошук по номеру ділянки.
Підвів підсумки, що Turbo Pascal є зручною мовою програмування для початківців програмістів, до якої звертаються як прикладні програмісти, так і системні. При розробці курсової роботи був придбаний досвід роботи з мовою програмування вивчений синтаксис цієї мови, основні конструкції її семантика. Робота з даною мовою допомогла набути навичок програмування.
Література
1. Семотюк В. Програмування в середовищі Турбо Паскаль. Львів: БаК, 2000. — 248 с.
2. Ковалюк Т. В. Основи програмування. — К.: Видавнича группа BHV, 2005. — 384с.: іл.
3. Коффман Эллиот Б. Turbo Pascal. Практикум 5-е издание.: пер. с англ. М.: Издателский дом «Вильямс», 2005. — 896 c.: ил.
4. Абрамов В. Г., Тривонов Н. П.
Введение
в язик Паскаль. — М. :Наука, 1988.-320 с.
5. Епанешников А. М. Епанешников В.А. — Программирование в среде Turbo Pascal 7.0. Москва: Диалог-МИФ, 2000. 368 с.
6. Гукин Д. язык программирования Си для «чайников» = C for Dummies M: Диалектика
ДОДАТОК А
(Обов’язків)
Лістинг основної програми
program vyb;
uses crt, vybory;
label 0,1;
Var p: integer;
begin assign (f, 'rabota.dat');
1:clrscr;
gotoXY (28,8);
writeln ('Zdelayte vybor');
gotoXY (20,9);
writeln ('1 — Vvod informaciy o deputate');
gotoXY (20,10);
writeln ('2 — Rezultatu vyborov');
gotoXY (20,11);
writeln ('3 — Dobavit informaciu o deputate');
gotoXY (20,12);
writeln ('4 — Redaktirovat informaciy');
gotoXY (20,13);
writeln ('5 — Udalit kandidata');
gotoXY (20,14);
writeln ('6 — Poisk po vyborchim uchastkam');
gotoXY (20,15);
writeln ('7 — Vyhod iz programy');
gotoXY (23,16);
write ('—>');
readln (p);
case p of 1: begin Vvod;
goto 1 end;
2:begin Vyvod;
goto 1 end;
3:begin Dobavit;
goto 1 end;
4:begin Redakt;
goto 1 end;
5:begin Delete;
goto 1 end;
6:begin Poisk;
goto 1 end;
7:goto 0 else goto 1;
end;
0:end.
ДОДАТОК Б
(Обов'язковий)
Лістинг модуля Vybory
Unit vybory;
interface
uses Crt;
type rabotnik=record
Fam:string;
Fam1:string;
Fam2:string;
dylanka:1.25;
dylanka1:1.25;
dylanka2:1.25;
golosa_za:0.120;
golosa_za1:0.120;
golosa_za2:0.120;
golosa_protiv:0.120;
golosa_protiv1:0.120;
golosa_protiv2:0.120;
end;
var f, f1: file of rabotnik;
i, n, n_dylanka:integer;
z:rabotnik;
st:string;
max, s, k:real;
z_max:rabotnik;
procedure Vvod;
procedure Vyvod;
procedure Dobavit;
procedure Delete;
procedure Redakt;
procedure Poisk;
implementation
procedure Vvod;
begin
clrscr;
rewrite (f);
i:=1; st:='d';
while st='d' do
begin
clrscr;
writeln ('Vvedite dannye ', i, ' deputata');
write ('Vvedite familiju pervogo deputata: '); readln (z.fam);
write ('Vvedite familiju vtorogo deputata: '); readln (z.fam1);
write ('Vvedite familiju tretego deputata: '); readln (z.fam2);
write ('Vvedite nomer dilanky: '); readln (z.dylanka);
write ('Vvedite kolichestvo golosov za pervogo deputata: '); readln (z.golosa_za);
write ('Vvedite kolichestvo golosov za vtorogo deputata: '); readln (z.golosa_za1);
write ('Vvedite kolichestvo golosov za tretego deputata: '); readln (z.golosa_za2);
write ('Vvedite kolichestvo golosov protiv pervogo deputata: '); readln (z.golosa_protiv);
write ('Vvedite kolichestvo golosov protiv vtorogo deputata: '); readln (z.golosa_protiv1);
write ('Vvedite kolichestvo golosov protiv tretego deputata: '); readln (z.golosa_protiv2);
write (f, z);
i:=i+1;
writeln ('Hotite prodolzhit (d/n)'); readln (st);
end;
close (f);
procedure Vyvod;
begin
clrscr;
reset (f);
writeln (' Rezultaty vyborov dylanka za protiv');
if filesize (f)=0 then begin textcolor (4); writeln ('V baze net zapisej'); textcolor (15) end else
while not (eof (f)) do
begin
read (f, z);
gotoxy (45,wherey); writeln (z.dylanka);
writeln (z.fam);
gotoxy (50,wherey); write (z.golosa_za);
gotoxy (55,wherey); write (z.golosa_protiv);
writeln;
writeln (z.fam1);
gotoxy (50,wherey); write (z.golosa_za1);
gotoxy (55,wherey); write (z.golosa_protiv1);
writeln;
writeln (z.fam2);
gotoxy (50,wherey); write (z.golosa_za2);
gotoxy (55,wherey); write (z.golosa_protiv2);
writeln;
end;
close (f);
readkey;
end;
procedure Dobavit;
begin
clrscr;
reset (f);
seek (f, filesize (f));
i:=filesize (f);
st:='d';
while st='d' do
begin
clrscr;
writeln ('Vvedite dannye dobovlayemogo deputata');
write ('Vvedite familiju pervogo deputata: '); readln (z.fam);
write ('Vvedite familiju vtorogo deputata: '); readln (z.fam1);
write ('Vvedite familiju tretego deputata: '); readln (z.fam2);
write ('Vvedite nomer dilanky: '); readln (z.dylanka);
write ('Vvedite kolichestvo golosov za pervogo deputata: '); readln (z.golosa_za);
write ('Vvedite kolichestvo golosov za vtorogo deputata: '); readln (z.golosa_za1);
write ('Vvedite kolichestvo golosov za tretego deputata: '); readln (z.golosa_za2);
write ('Vvedite kolichestvo golosov protiv pervogo deputata: '); readln (z.golosa_protiv);
write ('Vvedite kolichestvo golosov protiv vtorogo deputata: '); readln (z.golosa_protiv1);
write ('Vvedite kolichestvo golosov protiv tretego deputata: '); readln (z.golosa_protiv2);
write (f, z);
i:=i+12;
writeln ('Hotite prodolzhit (d/n)'); readln (st);
end;
close (f);
end;
procedure Delete;
begin
clrscr;
reset (f);
i:=1;
while not (eof (f)) do
begin
read (f, z);
writeln ('zapis ь-', i);
writeln (z.fam);
gotoxy (45,wherey); write (z.dylanka);
gotoxy (50,wherey); write (z.golosa_za);
gotoxy (55,wherey); write (z.golosa_protiv);
writeln;
writeln (z.fam1);
gotoxy (45,wherey); write (z.dylanka1);
gotoxy (50,wherey); write (z.golosa_za1);
gotoxy (55,wherey); write (z.golosa_protiv1);
writeln;
writeln (z.fam2);
gotoxy (45,wherey); write (z.dylanka2);
gotoxy (50,wherey); write (z.golosa_za2);
gotoxy (55,wherey); write (z.golosa_protiv2);
writeln;
i:=i+1;
end;
close (f);
writeln;
reset (f);
writeln ('Zadajte nomer udaljaemoj zapisi'); readln (n);
if n>filesize (f) then write ('Takoj zapisi net')
else
begin
assign (f1,'rabota2.dat');
reset (f); rewrite (f1);
for i:=1 to filesize (f) do
begin
read (f, z);
if filepos (f)<>n then write (f1,z);
end;
close (f1); close (f);
erase (f); rename (f1,'rabota.dat');
write ('Zapis udalena');
end;
readkey;
end;
procedure Redakt;
begin
clrscr;
reset (f);
i:=1;
while not (eof (f)) do
begin
read (f, z);
writeln ('zapis ь-', i);
writeln (z.fam);
gotoxy (45,wherey); write (z.dylanka);
gotoxy (50,wherey); write (z.golosa_za);
gotoxy (55,wherey); write (z.golosa_protiv);
writeln;
writeln (z.fam1);
gotoxy (45,wherey); write (z.dylanka1);
gotoxy (50,wherey); write (z.golosa_za1);
gotoxy (55,wherey); write (z.golosa_protiv1);
writeln;
writeln (z.fam2);
gotoxy (45,wherey); write (z.dylanka2);
gotoxy (50,wherey); write (z.golosa_za2);
gotoxy (55,wherey); write (z.golosa_protiv2);
i:=i+1;
writeln;
end;
close (f);
reset (f);
writeln ('Vvedite nomer zapisi'); readln (n);
if n>filesize (f) then write ('Takoj zapisi net')
else
begin
seek (f, n-1);
writeln ('Vvedite dannye ', i, ' deputata');
write ('Vvedite familiju pervogo deputata: '); readln (z.fam);
write ('Vvedite familiju vtorogo deputata: '); readln (z.fam1);
write ('Vvedite familiju tretego deputata: '); readln (z.fam2);
write ('Vvedite nomer dilanky: '); readln (z.dylanka);
write ('Vvedite kolichestvo golosov za pervogo deputata: '); readln (z.golosa_za);
write ('Vvedite kolichestvo golosov za vtorogo deputata: '); readln (z.golosa_za1);
write ('Vvedite kolichestvo golosov za tretego deputata: '); readln (z.golosa_za2);
write ('Vvedite kolichestvo golosov protiv pervogo deputata: '); readln (z.golosa_protiv);
write ('Vvedite kolichestvo golosov protiv vtorogo deputata: '); readln (z.golosa_protiv1);
write ('Vvedite kolichestvo golosov protiv tretego deputata: '); readln (z.golosa_protiv2);
write (f, z);
write ('Zapis izmenena');
end;
readkey;
close (f);
end;
procedure Poisk;
begin
clrscr;
write ('Vvedite nomer dylanky: '); readln (n_dylanka);
s:=0; k:=0; max:=0;
reset (f);
writeln;
while not (eof (f)) do
begin
read (f, z);
if n_dylanka=z.dylanka then k:=k+1
end;
close (f);
reset (f);
if k=0 then write ('Takoy dylanky nemae')
else
begin
writeln ('Spisok deputativ, vybranoy, dylanky');
while not (eof (f)) do
begin
read (f, z);
if n_dylanka=z.dylanka then
begin
writeln (z.fam);
gotoxy (45,wherey); write (z.dylanka);
gotoxy (50,wherey); write (z.golosa_za);
gotoxy (55,wherey); write (z.golosa_protiv);
writeln;
writeln (z.fam1);
gotoxy (45,wherey); write (z.dylanka1);
gotoxy (50,wherey); write (z.golosa_za1);
gotoxy (55,wherey); write (z.golosa_protiv1);
writeln;
writeln (z.fam2);
gotoxy (45,wherey); write (z.dylanka2);
gotoxy (50,wherey); write (z.golosa_za2);
gotoxy (55,wherey); write (z.golosa_protiv2);
writeln;
end;
end;
end;
readkey;
end;