Створення електронної записної книжки

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Зміст

  1. Опис типів. Процедури

  2. Тіло програми

    1. 2.1 Створення привітання

    2. 2.2 Редагування запису

    3. 2.3 Висновок поточного запису. Створення команди для виклику довідки.

    4. 2.4 Висновок певних полів. Закриття програми.

    5. 2.5 Завершення програми. Принцип роботи

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

Додаток

1. Опис типів. Процедури

Опис типів почнемо з типу «запис»: привласнимо їй ім'я «TSt». Далі опишемо компоненти (поля) запису. У даній програмі використовується 3 поля запису з назвами: Name, Group, Subject і Mark. Вони визначають відповідні поля записної книжки, які заповнюються користувачем. У даній програмі необхідно буде використовувати і масив, який також визначаємо в типах.

type TSt = record

Name: string [13];

Group: string [13];

Subject: string [13];

Mark: string [13];

end;

TASt = array [1 .. 10] of TSt;

Далі перейдемо до складання процедур, які будуть використовуватися в програмі. Нам знадобляться процедура для інтерактивного введення даних у вищеописані поля і процедура, яка виводить вже заповнені поля на екран.

Процедура щодо введення даних з ім'ям «WriteSt» буде виглядати наступним чином:

procedure WriteSt (var A: TSt);

begin

write ('group:');

readln (A. Group);

write ('Name:');

readln (A. Name);

write ('Subject:');

readln (A. Subject);

write ('Mark:');

readln (A. Mark);

writeln;

end;

Відповідно, процедура «OutputSt», що відповідає за виведення даних на екран, буде виглядати:

procedure OutputSt (A: TSt);

begin

writeln ('Group:', A. Group);

writeln ('Name:', A. Name);

write ('Subject:', A. Subject);

write (':');

writeln (A. Mark, 'ballov');

end;

Необхідні надалі типи визначено, процедури задані. Далі розглянемо безпосередньо тіло програми.

2.Тело програми

Перед написанням самого тіла програми, визначимо, які змінні будуть потрібні для подальшої роботи. Для реалізації програми задамо масив «B», рядкову змінну «a» і цілочисельний параметр «p». Масив необхідний для збереження записів під номерами, що визначаються параметром «p», а рядкова змінна «a» визначає введення команд при виконанні програми.

var B: TASt;

a: string; p: integer;

2.1 Створення привітання

Для того, щоб користувач, незнайомий з даною програмою, міг у ній орієнтуватися, створимо привітання, в якому позначимо:

  1. назва програми;

  2. ім'я творця;

  3. доступні команди.

Це буде виглядати наступним чином:

writeln ('Vas privetstvuet NoteBook v.1.0b Sozdateli: studenty gruppy 520361: Konova Elena, Pivovarov Nikolay, Kharlamov Alexey');

writeln;

writeln ('Command "new"-redaktirovanie zapisi, "w"-vyvod tekuschey zapisi, "<cifra>"-vvod nomera zapisi, "help"-vyzov spravki, "all"-pokazat' vse zapisi, "name"-pokazat 'imena, "group"-pokazat' nomera grupp, "mark"-pokazat 'ocenki, "sub"-pokazat' predmety, "q"-vyhod ');

Створення вітання закінчено.

2.2 Редагування запису

Після написання вітання задамо цикл, усередині якого будуть задаватися основні команди: вибір запису, її редагування, висновок запису з певним номером, висновок одного конкретного поля, виведення всіх заповнених полів.

Дана програма розрахована на 10 записів. Завдання номера запису буде здійснюватися в такий спосіб:

if (a = 1 ") or (a = '2 ') or (a = '3') or (a = '4 ') or (a = '5') or (a = '6 ') or ( a = '7 ') or (a = '8')

or (a = '9 ') or (a = '10') then

begin

p: = strtoint (a);

writeln ('current record', p);

end;

Після введення номера запису задамо команду «new» редагування поточного запису. Для цього задамо умова, всередині якого будемо використовувати процедуру інтерактивного введення даних.

if a = 'new' then

if (p> 0) and (p <11) then

begin

WriteSt (B [p]);

writeln ('zapis', p, 'sohranena');

writeln;

writeln ('Vvedite novuyu komandu');

end

else writeln ('choose the record');

Таким чином ми вносимо всі зміни в елементи масиву B, що складається з 10 елементів, до яких ми зможемо надалі звертатися.

2.3 Висновок поточного запису. Створення команди для виклику довідки

Вище ми задали процедуру для виводу даних. Складемо умова, яка визначатиме виведення поточної запису: параметру «a» має бути присвоєно значення «out» (це і буде командою висновку), а параметр «p» повинен бути дорівнює цілому числу від 1 і до 10 включно. Таким чином, висновок елемента масиву «B» (поточного запису блокнота) буде виглядати наступним чином:

if a = 'out' then

if (p> 0) and (p <11) then

begin

OutputSt (B [p]);

writeln;

writeln ('Vvedite novuyu komandu');

end

else writeln ('choose the record');

Для перегляду доступних команд користувачем, створимо команду «help». Висновок довідки здійснимо за допомогою звичайного відображення тексту:

if a = 'help' then

write ('command "new"-redaktirovanie zapisi, "out"-vyvod tekuschey zapisi, "<cifra>"-vvod nomera zapisi, "all"-pokazat vse zapisi, "name"-pokazat imena, "group"-pokazat nomera grupp, "mark"-pokazat ocenki, "sub"-pokazat predmety, "q"-vyhod ');

2.4 Висновок певних полів. Закриття програми

Для розширення можливостей даної програми, створимо команди з виведення певних полів. Але при цьому врахуємо, щоб незаповнені поля в будь-яких записах не виводилися. Це легко здійснити, задавши цикл, при якому будуть аналізуватися всі задані поля елементів масиву «B» і умови, що буде визначати наявність інформації в цьому полі. Оскільки запис «TSt» складається з 4-х полів, необхідно поставити 4 умови для параметра «a», які й будуть визначати команди виводу. Їх вид зазначений нижче:

if a = 'name' then

begin

for p: = 1 to 10 do

begin

if B [p]. Name <>''then

writeln ('zapis', p, '', B [p]. Name);

end;

end;

if a = 'group' then

begin

for p: = 1 to 10 do

begin

if B [p]. Group <>''then

writeln ('zapis', p, '', B [p]. Group);

end;

end;

if a = 'mark' then

begin

for p: = 1 to 10 do

begin

if B [p]. Mark <>''then

writeln ('zapis', p, '', B [p]. Mark);

end;

end;

if a = 'sub' then

begin

for p: = 1 to 10 do

begin

if B [p]. Subject <>''then

writeln ('zapis', p, '', B [p]. Subject);

end;

end;

Нарешті залишилося реалізувати завдання з виведення всіх заповнених полів записів у вигляді невеликої таблиці. Для рівності осередків обмежимо кількість символів в полях до 13, використовуючи «setlength». Тоді за виведення полів буде відповідати наступний уривок програми:

if a = 'all' then

begin

writeln ('Zapis', 'Group', 'Name', 'Subject', 'Mark');

for p: = 1 to 10 do

begin

setlength (B [p]. Subject, 13); setlength (B [p]. Mark, 13); setlength (B [p]. Group, 13); setlength (B [p]. Name, 13);

if (B [p]. Subject <>'') or (B [p]. Mark <>'') or (B [p]. Group <>'') or (B [p]. Name <> ' ') then

writeln ('Zapis', p, '', B [p]. Group, B [p]. Name, B [p]. Subject, B [p]. Mark);

end;

end;

2.5 Завершення програми. Принцип роботи

У пункті 2.2 ми задали цикл «repeat until». Щоб вийти з програми досить задати параметру «a» команду, яка визначить, до яких пір повинен виконуватися цикл:

repeat

<...>

until a = 'q';

Після цього за допомогою «writeln» виведемо на екран напис (програма «прощається» з користувачем). Щоб користувач встиг її прочитати, додамо «readln». Тоді вихід буде здійснюватися після натискання клавіші «Enter».

writeln ('Chto zh vy nadelali ...');

readln;

end.

Після запуску програма працює таким чином:

  1. на екран виводиться привітання, в якому виводиться назва програми, ім'я творця і список команд;

  2. вводиться номер запису. При цьому користувач бачить з'явився напис «current record <№ запису>»;

  3. після введення команди «new» користувачеві відкривається можливість почергового заповнення полів запису. Якщо номер запису не обраний, то на екран виводиться повідомлення «choose the record». Після закінчення редагування поточного запису, з'являється повідомлення «Vvedite novuyu komandu»;

  4. для перегляду будь-якої запису, необхідно ввести номер цього запису і команду «out», після чого інформація про цей запис буде виведена на екран;

  5. якщо необхідно переглянути певні поля (заповнені) існуючих записів, вводиться одна з команд: «name» (виводить поля з ім'ям «Name»), «group» (виводить поля з ім'ям «Group»), «mark» (виводить поля з ім'ям «Mark»), «sub» (виводить поля з ім'ям «Subject»);

  6. перегляд все існуючих записів здійснюється командою «all». У цьому випадку у вигляді таблиці виводиться всі заповнені поля із зазначенням номера запису, до якої вони належать;

  7. щоб переглянути доступні команди, досить ввести «help»;

  8. завершення роботи з програмою проводиться за допомогою команди «q». 1

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

    1. Амеліна Н. Завдання з програмування. - М.: Вузівська книга, 2000. - 104 с.

    2. Хомоненко А. Delphi 7. - СПб.: БХВ-Петербург, 2007. - 1200 с.

    3. Бобровський С. Delphi 7: Навчальний курс. - СПб.: Пітер, 2006. - 735 с.

Додаток

program notebook;

uses

SysUtils;

type TSt = record

Name: string [13];

Group: string [13];

Subject: string [13];

Mark: string [13];

end;

TASt = array [1 .. 10] of TSt;

procedure InputSt (var A: TSt; n: string; g: string; m: string; s: string);

begin

A. Subject: = s;

A. Group: = g;

A. Name: = n;

A. Mark: = m;

end;

procedure OutputSt (A: TSt);

begin

writeln ('Group:', A. Group);

writeln ('Name:', A. Name);

write ('Subject:', A. Subject);

write (':');

writeln (A. Mark, 'ballov');

end;

procedure WriteSt (var A: TSt);

begin

write ('group:');

readln (A. Group);

write ('Name:');

readln (A. Name);

write ('Subject:');

readln (A. Subject);

write ('Mark:');

readln (A. Mark);

writeln;

end;

var B: TASt;

a: string; p: integer;

begin

writeln ('Vas privetstvuet NoteBook v.1.0b Sozdateli: studenty gruppy 520361: Konova Elena, Pivovarov Nikolay, Kharlamov Alexey');

writeln;

writeln ('Command "new"-redaktirovanie zapisi, "out"-vyvod tekuschey zapisi, "<cifra>"-vvod nomera zapisi, "help"-vyzov spravki, "all"-pokazat vse zapisi, "name"-pokazat imena , "group"-pokazat nomera grupp, "mark"-pokazat ocenki, "sub"-pokazat predmety, "q"-vyhod ');

p: = 0;

repeat

readln (a);

if a = 'new' then

if (p> 0) and (p <11) then

begin

WriteSt (B [p]);

writeln ('zapis', p, 'sohranena');

writeln;

writeln ('Vvedite novuyu komandu');

end

else writeln ('choose the record');

if a = 'out' then

if (p> 0) and (p <11) then

begin

OutputSt (B [p]);

writeln;

writeln ('Vvedite novuyu komandu');

end

else writeln ('choose the record');

if (a = 1 ") or (a = '2 ') or (a = '3') or (a = '4 ') or (a = '5') or (a = '6 ') or ( a = '7 ') or (a = '8')

or (a = '9 ') or (a = '10') then

begin

p: = strtoint (a);

writeln ('current record', p);

end;

if a = 'help' then

write ('command "new"-redaktirovanie zapisi, "out"-vyvod tekuschey zapisi, "<cifra>"-vvod nomera zapisi, "all"-pokazat vse zapisi, "name"-pokazat imena, "group"-pokazat nomera grupp, "mark"-pokazat ocenki, "sub"-pokazat predmety, "q"-vyhod ');

if a = 'name' then

begin

for p: = 1 to 10 do

begin

if B [p]. Name <>''then

writeln ('zapis', p, '', B [p]. Name);

end;

end;

if a = 'group' then

begin

for p: = 1 to 10 do

begin

if B [p]. Group <>''then

writeln ('zapis', p, '', B [p]. Group);

end;

end;

if a = 'mark' then

begin

for p: = 1 to 10 do

begin

if B [p]. Mark <>''then

writeln ('zapis', p, '', B [p]. Mark);

end;

end;

if a = 'sub' then

begin

for p: = 1 to 10 do

begin

if B [p]. Subject <>''then

writeln ('zapis', p, '', B [p]. Subject);

end;

end;

if a = 'all' then

begin

writeln ('Zapis', 'Group', 'Name', 'Subject', 'Mark');

for p: = 1 to 10 do

begin

setlength (B [p]. Subject, 13); setlength (B [p]. Mark, 13); setlength (B [p]. Group, 13); setlength (B [p]. Name, 13);

if (B [p]. Subject <>'') or (B [p]. Mark <>'') or (B [p]. Group <>'') or (B [p]. Name <> ' ') then

writeln ('Zapis', p, '', B [p]. Group, B [p]. Name, B [p]. Subject, B [p]. Mark);

end;

end;

until a = 'q';

writeln ('Chto zh vy nadelali ...');

readln;

end.

1 Після завершення роботи введені дані не зберігаються.

16


Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Контрольна робота
54.9кб. | скачати


Схожі роботи:
Новий принцип створення електронної техніки безпечної для людини
Трудові книжки
Аналіз книжки Доля Росії Н А Бердяєва
Трудові книжки Ведення видача та облік
Реляційна база данних трудової книжки
Аналіз книжки Мішель Монтень Досліди Книга 1
Аналіз книжки П Ф Друкера Завдання менеджменту в XXI столітті
Видача трудової книжки при звільненні працівника за законодавств
Літературний розвиток молодших школярів засобами дитячої художньої книжки
© Усі права захищені
написати до нас