Мова програмування Pascal
Постановка задачі: створення списку співробітників інституту. Аналіз мов програмування та вибір мови PascalABC.Net - 32-розрядної програми, яка може працювати на сучасних версіях Windows. Опис функцій та процедур, реалізації інтерфейсу користувача.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 25.06.2015 |
Размер файла | 277,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Зміст
- Вступ
- 1. Постановка задачі
- 2. Опис алгоритму задачі
- 3. Опис програми
- 3.1 Аналіз мов програмування та вибір мови
- 3.2 Опис структури даних
- 3.3 Опис функцій та процедур
- 3.4 Опис реалізації інтерфейсу користувача
- 3.5 Выбор действия
- 3.6 Інструкція для користувача
- Висновок
- Список використаної літератури
- Додаток
програмування pascal інтерфейс windows
Вступ
Pascal (названий на честь Блеза Паскаля) - це чисто процедурна мова програмування, що часто використовується для навчання структурному програмуванню.
Pascal був розроблений Ніклаус Віртом в 1970; всупереч розхожій думці, він не був виключно навчальною мовою, а призначався для практичного застосування. Прототипом послужив Algol. Спочатку мова компілювалась в байт-код, подібно до мови Java.
У 1983 році був прийнятий перший стандарт мови, ISO 7185: 1983, який також називають Standard Pascal. Цей Стандарт не додавав в мову нові елементи, а тільки формально описував існуючі особливості мови. У 1990 році був прийнятий стандарт ISO / IEC 10206, що визначає так називаемий Extended Pascal. Основною зміною стало додавання модульності.
Особливостями мови є строга типізація і наявність коштів структурного (процедурного) програмування. Pascal був одним з перших таких мов. На думку Н. Вірта, мова повинна була сприяти дисциплінированістю програмування, тому, поряд зі строгою типізацією, в Pascal зведені до мінімуму можливі синтаксичні неоднозначності, а сам синтаксис інтуїтивно зрозумілий навіть при першому знайомстві з мовою. Це спрощує написання компіляторів мови.
Крім того, мова надавала ряд вбудованих структур даних: записи, масиви, файли, множини і покажчики.
Проте, спочатку мова мала безліч недоліків: неможливість передачі функцій масивів змінної довжини, відсутність нормальних засобів роботи з динамічною пам'яттю, обмежена бібліотека введення-виведення, відсутність коштів для підключення функцій написаних на інших мовах, відсутність коштів роздільної компіляції і т. п.
1. Постановка задачі
Список співробітників інституту містить такі відомості: прізвище, ім'я, по батькові, факультет, кафедра, вчений ступінь, рік народження, домашня адреса. Розділити список на окремі списки по факультетам, які містять тільки співробітників зі ступенем кандидата або доктора, вилучивши графу факультету зі списку
Скласти програму відповідно до варіанту завдання з розробкою процедур (функцій). У програмі має бути передбачено головне меню з наступними пунктами (приблизний перелік).
1. Введення даних (читання даних з файлу)
2. Обробка даних (додавання і видалення даних)
3. Пошук інформації
4. Висновок впорядкованої інформації (висновок результов)
5. Вихід з програми
2. Опис алгоритму задачі
В описі алгоритму задачі буде описана основна частина програми
vvod - процедура введення запису в файл
chten - процедура читання записів з файла
dobav - процедура додавання запису в файл
delete - процедура видалення запису з файлу
poisk - процедура пошуку ты выводу запису у файлі
3. Опис програми
3.1 Аналіз мов програмування та вибір мови
Я використовував у своїй курсовій роботі PascalABC.Net.
Це незамінна програма для людей, що вивчають Pascal і не тільки, бо в ній реалізовано безліч конструкцій, що використовуються в інших мовах програмування і полегшують процес написання коду.
PascalABC.Net - це 32-розрядна програма, яка може працювати на сучасних версіях Windows.
Ця мова має більш зручний інтерфейс для написання коду.
3.2 Опис структури даних
У цій програмі використовується ім'я такого запису як Zap.
Запис у Паскалі являє собою сукупність певного числа компонентів, що мають однакові або різні типи даних. Ці компоненти називаються полями і мають іменем та типом. Також як і масиви, поля запису можуть бути будь-якого (за винятком файлового) типу даних.
Типізований файл-це послідовність компонентів одного і того ж типу. Число компонент не фіксовано.
Функція FileSize-видає розмір відкритого файлу в записах.
Seek- Переміщує поточну позицію файла до заданого компоненту.
Масив записів - список об'єктів, які складаються з декількох полів:
Familiya - прізвище співробітника
Imya - ім'я співробітника
Otchestvo - по батькові співробітника
nazvfak - факультет
nazvkaf - кафедра
sotrstep - вчений ступінь
god_r - рік народження
adres - адреса
У даній програмі використовуємо такі змінні як:
Zap - запис в записі
Zaparray- масив
F - типізований файл
Vibor - вибір дії в меню програми
sotrstep - змінна для пошуку інформації
b,n,- глобальні змінні
I - локальна змінна в кожній процедурі
3.3 Опис функцій та процедур
1. Процедура введення нових записів у файл
Ця процедура дозволяє водити N кількість записів у файлі
2. Процедура читання з запису файла
Ця процедура робить читання з запису з типізованого файла.
3. Процедура додавання запису в файл
Ця процедура додає ще один запис у файл
4. Процедура видалення запису з файла
Ця процедура робить видалення запису з файла.
5. Процедура пошуку записів
Ця процедура дозволяє знайти потрібні записи, пошук відбувається по назві вченого ступеня
3.4 Опис реалізації інтерфейсу користувача
Інтерфейс користувача представлений у виді основного меню програми і реалізований в основному блоці програми ( алгоритм представлений у пункті опису програми)
3.5 Выбор действия
1-Ввод новых данных
2-Чтение данных
3-Добавление записей
4-Удаление записи
5-Поиск информации
6-Выход
begin
clrscr;
Writeln('Выбор действия');
Writeln('1-Ввод новых данных');
Writeln('2-Чтение данных');
Writeln('3-Добавление записей');
Writeln('4-Удаление записи');
Writeln('5-Поиск информации');
Writeln('6-Выход');
readln(vibor);
while vibor < 6 do
begin
case vibor of
1: vvod;
2: schitivanie;
3: dobavlenie;
4: delete;
5: poisk;
end;
writeln;
Writeln('Выбор действия 1-7');
Writeln('Выбор действия');
Writeln('1-Ввод новых данных');
Writeln('2-Чтение данных');
Writeln('3-Добавление записей');
Writeln('4-Удаление записи');
Writeln('5-Поиск информации');
Writeln('6-Выход');
readln(vibor);
end;
end.
3.6 Інструкція для користувача
При запуску програми з'явиться невелике меню, яке складається з:
1-Ввод новых данных
2-Чтение данных
3-Добавление записей
4-Удаление записи
5-Поиск информации
6-Выход
1) Натиснувши на 1 зможете додавати нові записи в типізований файл 2) Натиснувши на 2 з'являться всі записи з типізованого файлу на екран
Выбор действия
1-Ввод новых данных
2-Чтение данных
3-Добавление записей
4-Удаление записи
5-Поиск информации
6-Выход
2
12 12 12, 12, 12, доктор, 12, 12
23 23 23, 23, 23, доктор, 23, 23
34 34 34, 34, 34, кандидат, 34, 34
45 45 45, 45, 45, кандидат, 45, 45
56 56 56, 56, 56, доктор, 56, 56
3) Натиснувши на 3 ви зможете додати ще один запис
Выбор действия
1-Ввод новых данных
2-Чтение данных
3-Добавление записей
4-Удаление записи
5-Поиск информации
6-Выход
3
Добавление записи
Введите 6-го сотрудника
але після цього потрібно натиснути на 2 щоб новий запис зберігся в типізованому файлі
4) натиснувши на 4 ви зможете видалити будь-яку зазначений вами запис (водимо тільки цифру) Приклад: натискаєте 4 і будь-яку цифру припустимо 6 та Enter - віддалиться 6 запис файлу
Выберите номер удаляемой записи которую вы хотите: 6
Удаление прошло успешно
Количество записей (сотрудников) 5
5) Натиснувши на 5 ви зможете знайти з усіх записів тільки тих співробітників, які мають вчений ступінь доктора або кандидата.
Приклад: натискаємо на 5 і вводимо доктор/кандидат та Enter виводиться новий список співробітників, які мають науковий ступінь доктора або кандидата
Выбор действия
1-Ввод новых данных
2-Чтение данных
3-Добавление записей
4-Удаление записи
5-Поиск информации
6-Выход
2
12 12 12, 12, 12, доктор, 12, 12
23 23 23, 23, 23, доктор, 23, 23
34 34 34, 34, 34, кандидат, 34, 34
45 45 45, 45, 45, кандидат, 45, 45
56 56 56, 56, 56, доктор, 56, 56
Выбор действия 1-7
Выбор действия
1-Ввод новых данных
2-Чтение данных
3-Добавление записей
4-Удаление записи
5-Поиск информации
6-Выход
5
Введите степень доктор
Найдены сотрудники!
12 12 12 12, доктор, 12, 12Найдены сотрудники!
23 23 23 23, доктор, 23, 23Найдены сотрудники!
56 56 56 56, доктор, 56, 56
6) Висновок (результати пошуку) виводиться відразу в процедурі пошуку
12 12 12 12, доктор, 12, 12Найдены сотрудники!
23 23 23 23, доктор, 23, 23Найдены сотрудники!
56 56 56 56, доктор, 56, 56
7) Натиснувши на 6 програма завершиться і (може вимагати натиснути будь-яку кнопку)
Висновок
В процесі виконання цієї курсової роботи всі пункти меню видають правильні результати.
Висновок програми ( новий список ) виводиться відразу в процедурі пошуку, пошук заснований на науковому ступені доктора або кандидата, у новому списку виводяться всі записи ( співробітники), які мають вчений ступінь доктора або кандидата
Я більш досконаліше навчився програмувати не тільки меню програми, але і окремі процедури, вивчив принципи роботи з записами та роботу з файлами, більш увагу приділяв процедурі пошуку та налагоджуванню програми. Тестування програми на контрольних прикладах показало, що програма працює правильно і видає правильні результати.
Список використаної літератури
1. Аляев Ю.А. Алгоритмизация и языки программирования: Учебно-справочное издание Москва: 2004
2. Ставровский А.Б. Турбо Паскаль 7.0. Учебник К.: BHV, 2000
3. Грызлов В.И. Turbo Pascal 7.0: Учебное пособие Москва: ДМК,1999
Інтернет ресурси:
http://itteach.ru/pascal/pascal-zapis-record
http://progopedia.ru/language/pascal
http://www.cyberforum.ru/poisk
Додаток
Лістинг програми
program kursovaya;
uses crt;
type
Zap = record
familiya: string[20];
imya: string[20];
otchestvo: string[20];
nazvfak: string[20];
nazvkaf: string[20];
sotrstep: string[20];
god_r: integer;
adres: string[50];
end;
var
f: file of Zap;
Zapis: Zap;
Zaparray: array[1..20] of Zap;
poisks: string[30];
b, n: integer;
vibor: byte;
{-------------------------------------------------------------}
procedure vvod;
var
i: integer;
begin
assign(f, 'Spisok.dat');
rewrite(f);
writeln('Введите количество сотрудников института ');
readln(n);
writeln('_________________________________________');
for i := 1 to n do
begin
writeln('Введите ', i, '-го сотрудника');
writeln('Введите фамилию');
readln(Zapis.familiya);
writeln('Введите имя');
readln(Zapis.imya);
writeln('Введите отчество');
readln(Zapis.otchestvo);
writeln('Введите Факультет');
readln(Zapis.nazvfak);
writeln('Введите кафедру');
readln(Zapis.nazvkaf);
writeln('Введите учёную степень');
readln(Zapis.sotrstep);
writeln('Введите год рождения');
readln(Zapis.god_r);
writeln('Введите домашний адрес');
readln(Zapis.adres);
write(f, Zapis);
//Write(f,Zapis.familiya,' ',Zapis.imya,' ',Zapis.otchestvo,', ',Zapis.nazvfak,', ',Zapis.nazvkaf,', ',Zapis.sotrstep,', ',Zapis.god_r,', ',Zapis.adres,'сотрудника');
end;
close(f);
end;
procedure schitivanie;
var
i: integer;
begin
Assign(f, 'Spisok.dat');
reset(f);
i := 1;
while not (Eof(f)) do
begin
read(f, Zaparray[i]);
Writeln(Zaparray[i].familiya, ' ', Zaparray[i].imya, ' ', Zaparray[i].otchestvo, ', ', Zaparray[i].nazvfak, ', ', Zaparray[i].nazvkaf, ', ', Zaparray[i].sotrstep, ', ', Zaparray[i].god_r, ', ', Zaparray[i].adres);
i := i + 1;
end;
close(f);
n := i - 1;
end;
//read
{---------------------------------------------------------------------}
procedure dobavlenie;
var
i: integer;
begin
rewrite(f);
writeln('Добавление записи');
for i := 1 to n do
write(f, Zaparray[i]);
writeln('Введите ', n + 1, '-го сотрудника');
writeln('Введите фамилию');
readln(Zapis.familiya);
writeln('Введите имя');
readln(Zapis.imya);
writeln('Введите отчество');
readln(Zapis.otchestvo);
writeln('Введите Факультет');
readln(Zapis.nazvfak);
writeln('Введите кафедру');
readln(Zapis.nazvkaf);
writeln('Введите учёную степень');
readln(Zapis.sotrstep);
writeln('Введите год рождения');
readln(Zapis.god_r);
writeln('Введите домашний адрес');
readln(Zapis.adres);
write(f, Zapis);
close(f);
end;
{-----------------------------------------------------------------------------}
procedure delete;
var
i: integer;
begin
clrscr;
i := 1;
assign(f, 'Spisok.dat');
reset(f);
while not eof(f) do
begin
read(f, Zaparray[i]);
i := i + 1
end;
close(f);
write('Выберите номер удаляемой записи которую вы хотите: ');
readln(n);
reset(f);
seek(f, filesize(f) - 1);
read(f, Zaparray[i]);
seek(f, n - 1);
write(f, Zaparray[i]);
seek(f, filesize(f) - 1);
truncate(f);
Writeln('Удаление прошло успешно!!!');
Writeln('Количество записей', n - 1);
end;
{------------------------------------------------------------------------------}
procedure poisk;
begin
write('Введите степень ');
readln(poisks);
reset(f);
b := 0;
while not (Eof(f)) do
begin
read(f, Zapis);
if Zapis.sotrstep = poisks then
begin
b := 1;
Writeln('Найден сотрудник!');
Write(Zapis.familiya, ' ', Zapis.imya, ' ', Zapis.otchestvo, ', ', Zapis.nazvfak, ', ', Zapis.nazvkaf, ', ', Zapis.sotrstep, ', ', Zapis.god_r, ', ', Zapis.adres);
end;
end;
if b = 0 then
writeln('Нет данных');
close(f);
end;
procedure vivod;
var
i: integer;
begin
for i := 1 to n do
if (Zapis.sotrstep = 'доктор') or (Zapis.sotrstep = 'кандидат') then
writeln(Zapis.familiya, ' ', Zapis.imya, ' ', Zapis.otchestvo, ', ', Zapis.nazvkaf, ', ', Zapis.sotrstep, ', ', Zapis.god_r, ', ', Zapis.adres);
end;
begin
clrscr;
Writeln('Выбор действия');
Writeln('1-Ввод новых данных');
Writeln('2-Чтение данных');
Writeln('3-Добавление записей');
Writeln('4-Удаление записи');
Writeln('5-Поиск информации');
Writeln('6-Выход');
readln(vibor);
while vibor < 6 do
begin
case vibor of
1: vvod;
2: schitivanie;
3: dobavlenie;
4: delete;
5: poisk;
end;
writeln;
Writeln('Выбор действия 1-7');
Writeln('Выбор действия');
Writeln('1-Ввод новых данных');
Writeln('2-Чтение данных');
Writeln('3-Добавление записей');
Writeln('4-Удаление записи');
Writeln('5-Поиск информации');
Writeln('6-Выход');
readln(vibor);
end;
end.
Размещено на Allbest.ru
Подобные документы
Характеристика предметної області: FTP-server для ОС Windows. Шляхи встановлення FTP-серверу в ОС Windows. Опис мови та середовища програмування, компонентів та функцій програми. Аналіз реалізованої програми FTP-клієнта. Тестовий запуск та опис програми.
курсовая работа [1,7 M], добавлен 22.06.2017Розрахунок собівартості інструментальної системи створення електронних підручників. Вибір технології та мови програмування. Загальна характеристика програми і принцип роботи. Вибір мови програмування. Опис тегів, які підтримуються HTML-редактором.
дипломная работа [112,7 K], добавлен 04.06.2010Розробка програми на мові програмування С++ з використанням об'єктно-орієнтованого програмування. Робота з файлами, графікою, класами, обробка числової інформації. Графічні засоби мови програмування. Алгоритм задачі та допоміжні програмні засоби.
курсовая работа [102,5 K], добавлен 14.03.2013Програми і мови програмування. Алфавіт мови програмування. Лексеми, зарезервовані слова мови Pascal. Ідентифікатори, типи даних. Арифметичні вирази, операції. Стандартні функції, структура програми. Процедури введення-виведення. Правила написання команд.
лекция [445,0 K], добавлен 24.07.2014Модель аналізу-синтезу компіляції. Формальний опис вхідної мови програмування. Вибір технології програмування, проектування таблиць транслятора та вибір структур даних. Опис програми реалізації лексичного аналізатора. Розробка дерев граматичного розбору.
курсовая работа [75,8 K], добавлен 26.12.2009Визначення поняття автоматизації та інформаційної технології. Вибір мови програмування, аналіз бібліотеки класів та системи масового обслуговування. Реалізація інтерфейсу програми Visual C# 2010 Express. Діаграма класів до основних функцій программи.
курсовая работа [1,5 M], добавлен 28.04.2012Використання мови програмуванння Java при виконанні "задачі лінійного програмування": її лексична структура і типи даних. Методи розв’язання задачі. Особливості логічної структури програми, побудова її зручного інтерфейсу за допомогою симплекс методу.
курсовая работа [437,9 K], добавлен 24.01.2011Дослідження середовища візуального програмування Delphi. Вивчення процесу створення навчальної програми "Електронний словник". Опис графічного інтерфейсу. Характеристика структури та основних процедур даної програми. Аналіз роботи з програмним кодом.
курсовая работа [831,2 K], добавлен 01.03.2014Написання програми для мобільного приладу, яка буде переводити числа з однієї системи числення в іншу. Розробка графічного інтерфейсу, яким зручно буде користуватись. Опис процедур, обробників та мови програмування. Дослідження логічних частин програми.
курсовая работа [1,2 M], добавлен 27.08.2014Побудування блок-схеми рішення завдання зі знайдення центра ваги однорідної усіченої призми. Розробка програми за допомогою язика програмування C++, опис змінних та функцій програми та загальної математичної моделі. Розробка інструкції користувача.
курсовая работа [1,1 M], добавлен 04.01.2012