ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 10.05.2024
Просмотров: 58
Скачиваний: 0
Міністерство освіти і науки, молоді та спорту України
Машинобудівний коледж
“Погоджено” Глава циклової комісії спеціальності 5.05010101 _______________________ “____”_________________ |
|
“Затверджую” _______________________ “____”_________________
|
КУРСОВА РОБОТА
З предмету _______“Алгоритмізація та програмування”__________ _______________________________________________________
СПЕЦІАЛЬНІСТЬ 5.05010101
“Обслуговування програмних систем і комплексів”
ПОЯСНЮВАЛЬНА ЗАПИСКА
Тема:______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Студент Група Керівник проекту |
________________ ________________ ________________
|
___________________
___________________
|
2013
Міністерство освіти і науки, молоді та спорту України
Сумський державний університет
Машинобудівний коледж
Дисципліна “Алгоритмізація та програмування ”
Спеціальність 5.05010101 “Обслуговування програмних систем і комплексів ”
Курс _______________ Група __________________ Семестр ______________ завдання на курсову роботу студента
______________________________________________________________________
(прізвище, ім’я, по батькові)
Тема роботи: ______________________________________________________________________
__________________________________________________________________________________________________________________________________________________________________________________________________________________
Практичне завдання: ______________________________________________________________________
__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Дата видачі завдання “____”______________2013 р.
Дата закінчення роботи “____”______________2013 р.
Керівник _____________________ _______________________
(підпис) (прізвище, ім’я, по батькові)
Завдання розглянуто на засіданні циклової комісії спеціальності 5.05010101
Протокол №________ від “____”____________2013 р.
Голова циклової комісії ___________________ _______________________
(підпис) (прізвище, ім’я, по батькові)
Зміст
Машинобудівний коледж 1
КУРСОВА РОБОТА 1
СПЕЦІАЛЬНІСТЬ 5.05010101 1
ПОЯСНЮВАЛЬНА ЗАПИСКА 1
Дисципліна “Алгоритмізація та програмування ” 2
Курс _______________ Група __________________ Семестр ______________ 2
1 Постановка задачі 3
2 Алгоритм розробки програми 4
3 Практична реалізація 11
3.1 Опис структури даних та вимоги до них 11
3.1.1 Глобальні змінні 11
3.1.2 Зберігання змінних у файлі 11
3.1.3 Локальні змінні 11
3.1.3.1 Основна програма 12
3.1.3.2 Підпрограма-процедура Menu1 12
3.1.3.3 Підпрограма-процедура Menu2 12
3.1.3.4 Підпрограма-процедура Menu3 12
3.1.3.5 Підпрограма-процедура Menu4 12
3.1.3.6 Підпрограма-процедура Menu5 12
3.1.3.7 Підпрограма-процедура Menu6 12
3.1.3.8 Підпрограма-процедура Menu7 13
3.1.3.9 Підпрограма-процедура Menu8 13
3.1.3.10 Підпрограма-процедура Menu9 13
3.1.3.11 Підпрограма-процедура Nachalo 13
3.1.3.12 Підпрограма-процедура Konec 13
3.1.3.13 Підпрограма-процедура VvodStrockiSEkrana() 13
3.1.3.14 Підпрограма-функція ChtenieMassivaIzFayla() 13
3.1.3.14 Подпрограмма-процедура ZapisMassivaVFayl (int N) 14
3.1.3.14 Подпрограмма-процедура Sortirovka(int Nomer, int Kolich) 14
3.2 Опис файлів та їх призначення 14
3.3 Опис процедур 14
3.4 Опис стандартних функцій та процедур, що використовуються в програмі 15
4 Інструкція для роботи з програмою 17
5 Приклад тестування та результату роботи програми 18
Висновок 25
Література 26
ДОДАТОК А 27
1 Постановка задачі
Практичне завдання
Створити файл, що містить інформацію про пропозицію робочих місць. Структура запису: роботодавець, спеціальність, працевлаштування за якою пропонується, кількість робочих місць, середня заробітна плата.
Написати програму, що видає наступну інформацію:
– список роботодавців та середню заробітну плату за професією Х;
– список професій, що мають попит у порядку зростання кількості робочих місць, що пропонується;
– список роботодавців за спеціальностями, що пропонуються, та відповідна кількість робочих місць;
– за заробітною платою вивести пропозиції про працевлаштування.
Вимоги до програми
Створення та обробка бази даних здійснюється шляхом вибору відповідного пункту меню.
Основні пункти меню програми:
– створення файлу записів;
– додавання інформації у файл;
– внесення змін у запис за запитом;
– видалення запису;
– виведення вмісту файлу даних у вигляді таблиці.
Обробка файлу (створення, додавання, видалення, редагування і т.д.) повинна здійснюватися за допомогою процедур та функцій.
Введення даних повинно відбуватися з перевіркою на область допустимих значень.
Всі процедури та функції повинні бути розміщенні у відповідних модулях.
Фай повинен містити не менше 10 записів.
2 Алгоритм розробки програми
-
Створюємо файл з програмою.
-
В файлі з програмою потрібно оголосити бібліотеки, які будуть потрібні для роботи з файлом.
-
Оголосити глобальні величини.
-
Створити структуру, яка відповідає одному запису в базі.
-
Оголосити глобальну змінну Strochka, Baza та вказівник файлу (який буде вказаний пізніше в підпрограмах).
-
Оголосити глобальну змінну Baza
-
Оголосити глобальну змінну вказівник файлу (який буде вказаний пізніше в підпрограмах).
-
-
Оголосити підпрограми (процедури).
-
Оголосити основні підпрограмами (ті, котрі викликаються з основної програми).
-
Оголосити допоміжні підпрограми (ті, котрі будуть визиватися основними підпрограмами).
-
-
Створити тіло основної програми.
-
Здійснюємо збільшення розмірів екрану спеціальними функціями в текстовому режимі (для того, щоб поміщалася таблиця бази даних програми). Оголошується змінна для номера вибраного пункту меню.
-
Викликається програма заставки в графічному режимі.
-
Забезпечити вивід на екран меню.
-
Ввести номер вибраного пункту з перевіркою для користувача, щоб він не ввів довжину символів яка б дорівнювала нулю (тобто не ввів нічого, або ж для того, щоб не ввів цифру, яка б була більша за кількість відповідних пунктів меню. В такому випадку буде за допомогою циклу виводитися той же самий напис поки людина не введе правильну цифру).
-
Після вибору запустити процедури підпрограми вибраного пункту меню.
-
-
Створити підпрограму, яка забезпечить виконання першого пункту меню (Створення та заповнення нової бази даних) .
-
Створити та відкрити файл бази даних baza.dat.
-
-
Перевірка створення файлу, тобто якщо створення бази даних неможливе (наприклад треба зберегти файл на диск, на який просто так не збережеш, тому що потрібні спеціальні програми для прожогу диску, або ж пам'ять заповнена) і т.д.
-
Організовуємо цикл вводу даних та їх запису в файл.
-
Визиваємо підпрограму VvodStrockiSEkrana, яка займається вводом даних про пропозицію працевлаштування і перевіряє введені данні .
-
Потім записуємо введені дані із структури Strochka у відкритий попередньо файл (кожне поле на окремому рядку).
-
Даємо можливість завершити бази по натисканню клавіші ESC.
-
-
Закрити файл бази даних.
-
По бажанню відступити місце перед подальшим виводом меню.
-
Другим пунктом є додавання запису в уже існуючу базу даних.
-
Оголошуємо локальні змінні, які потрібні для виконання цієї процедури.
-
Відкрити файл бази даних (для читання).
-
Перевірити, «чи відкрився» файл. Якщо не відкрився, виводиться повідомлення «Виникла помилка. Редагування неможливе…», якщо ж файл відкрився створюється читання з файлу, поки він не закінчиться, одночасно зчитую їх кількість.
-
Потім робиться підрахування номеру по всій базі даних (для комфорту).
-
Закриваємо відкритий для читання файл.
-
Відкриваємо файл бази даних для допису в кінець бази.
-
Відкриваємо цикл для дописування в базу.
-
Підраховуємо номер введеного запису (підраховуючи з почотку цього вводу, а потім й усієї бази).
-
Визиваємо підпрограму для однієї пропозиції про працевлаштування.
-
Записати введені дані з структури Strochka у відкритий файл (кожен пункт на окремому рядочку).
-
Дати можливість закінчити заповнення бази через натискання ESC.
-
-
Закрити файл бази даних та зробити відступ перед виводом меню.
-
-
Третім пунктом є зміна запису у базі даних.
-
З початку треба оголосити змінні, які потрібні для функціонування підпрограми.
-
Визиваємо функцію ChtenieMassivaIzFayla, яка копіює із файлу існуючу базу даних в масив у оперативній пам’яті комп’ютера та підраховує кількість структур.
-
Потім за бажанням користувача виводиться таблиця для комфорту (щоб подивитися, які дані потрібно змінювати).
-
Створюємо цикл зміни запису в базі, яка знаходиться в оперативній памяті комп’ютера.
-
Вводиться відповідний напис номеру зміни рядочка за допомогою циклу та з перевіркою на введення тільки символів-цифр, щоб нумерація рядочка не виходила за межі бази даних.
-
Визиваємо підпрограму VvodStrockiSEkrana, котра вводить нові дані в глобальну структуру Strochka (з перевіркою вводу).
-
Потім іде процес копіювання із структури у потрібний елемент масиву.
-
Надаємо користувачу можливість закінчити заповнення бази даних за натисканням клавіші ESC, та записуємо оновлений масив у файл.
-
-
Визиваємо підпрограму ZapisMassivaVFayl, котра перезаписує змінену базу з масиву в файл.
-
-
Четвертим пунктом мого інтерфейсного меню є видалення запису з бази даних.
-
Оголошуємо локальні змінні, які потрібні для виконання цієї процедури.
-
Визиваємо функцію ChtenieMassivaIzFayla, яка копіює існуючу базу даних з файлу в масив у пам’яті комп’ютера та підраховує кількість структур.
-
Потім, по бажанню, виводиться таблиця перед видаленням.
-
Відкриваємо цикл видалення записів.
-
Потім за допомогою циклу перевіряємо, чи не порожня база. Якщо ж вона порожня, то виводиться на екран напис «База повністю пуста».
-
Інакше ж, вводимо напис, який рядочок потрібно видалити. Робимо перевірку на введення тільки символів-цифр та щоб нумерація рядочка не виходила за межі бази даних.
-
Всі елементи масиву база зсуваємо на один елемент вверх.
-
Надаємо можливість користувачу закінчити заповнення бази даних за натисканням клавіші ESC, та записуємо оновлений масив у файл.
-
-
Визиваємо підпрограму ZapisMassivaVFayl, котра перезаписує змінену базу з масива у файл.
-
-
П’ятим пунктом меню програми є вивід бази даних на екран.
-
Оголошуємо локальні змінні, які потрібні для виконання цієї процедури.
-
Малюємо, відтабульовуємо та підганяємо приблизно таблицю, так би мовити робимо гарний інтерфейс, для зручності користування, редагування та видалення.
-
Визиваємо функцію ChtenieMassivaIzFayla, яка копіює з файлу в масив у пам’яті комп’ютера існуючу базу даних та підраховує кількість структур.
-
За допомогою циклу з заданою кількістю кроків виводимо елементи глобального масиву бази на екран, продовжуючи розчерчувати таблицю на екрані.
-
Виводимо напис «Для продовження натисніть будь-яку клавішу» та відступаємо місце пере роботою з наступним пунктом меню.
-
-
Шостий пункт меню називається «Вивід списку роботодавців та середньої зарплати по професії»
-
Оголошуємо локальні змінні, які потрібні для виконання цієї процедури.
-
Визиваємо функцію ChtenieMassivaIzFayla, яка копіює з файлу в масив у пам’яті комп’ютера існуючу базу даних та підраховує кількість структур.
-
Відкриваємо цикл для обробки бази за заданими професіями.
-
Просимо користувача ввести назву професії, по котрій потрібно буде робити перевірку.
-
Робимо перевірку на співпадання введеної професії з вмістом відповідного поля бази даних.
-
Якщо професії співпали, то виводимо на екран поля роботодавця та середньої зарплати даного масиву.
-
Передбачаємо перевірку на відсутність в базі вказаної користувачем професії.
-
Даємо можливість користувачу закінчити роботу з базою даних за натисканням клавіші ESC.
-
-
-
Наступним, сьомим пунктом меню, є вивід списку професій у порядку зростання робочих місць.
-
Оголошуємо локальні змінні, які потрібні для виконання цієї процедури.
-
За допомогою спеціальної функції Sortirovka сортуємо базу по професії.
-
За допомогою допоміжної бази Spisok копіюємо з основної бази Baza елементи з неспівпадаючими професіями, якщо прфесії співпали, замість копіювання робимо додавання по полю KolRabMest.
-
Сортуємо допоміжну базу Spisok за кількістю робочих місць.
-
Малюємо, відтабульовуємо та підганяємо приблизно таблицю, робимо гарний інтерфейс, для зручності користування.
-
Даємо можливість користувачу перейти до наступного пункту меню натисканням будь-якої клавіші.
-
-
Восьмим пунктом меню є виведення списку роботодавців та кількості робочих місць за спеціальностями.
-
Оголошуємо локальні змінні, які потрібні для виконання цієї процедури.
-
Визиваємо функцію ChtenieMassivaIzFayla, яка копіює з файлу в масив у пам’яті комп’ютера існуючу базу даних та підраховує кількість структур.
-
Визиваємо підпрограму Sortirovka, котра сортує базу по професіям.
-
Малюємо, відтабульовуємо та підганяємо приблизно таблицю, робимо гарний інтерфейс, для зручності користування.
-
Робимо умовне затирання повторюваної професії.
-
-
Дев’ятий пункт меню – виведення пропозицій про працевлаштування по заробітній платі.
-
Оголошуємо локальні змінні, які потрібні для виконання цієї процедури.
-
Визиваємо функцію ChtenieMassivaIzFayla.
-
Визиваємо функцію Sortirovka, котра сортує масив Baza по заробітній платі.
-
Малюємо, відтабульовуємо та підганяємо приблизно таблицю, робимо гарний інтерфейс, для зручності користування.
-
Виводимо на екран масив умовно затираючи повторювані професії.
-
-
Далі йде процедура під назвою Nachalo, яка по завданню виводить в графічному режимі початкову заставку.
-
Відкриваємо графічне вікно з заданими розмірами.
-
Встановлюємо колір тексту та фону.
-
Виводимо на екран ім’я, прізвище та варіант завдання.
-
Виводимо надпис: «Для продовження натисніть Enter…» та передбачаємо її обробку.
-
-
Далі іде процедура під назвою Vihod, яку в завданні треба було вивести в графічному режимі.
-
Відкриваємо вікно з заданими розмірами.
-
Встановлюємо колір тексту та фону.
-
Виводимо напис: : «Кінець роботи з програмою…».
-
-
Далі йдуть допоміжні процедури, які обслуговують основні підпрограми.
-
Першою такою допоміжною програмою є процедура VvodStrockiSEkrana, котра заповнює з екрана глобальну змінну Strochka, при цьому вона перевіряє всі введені дані.
-
В тимчасову текстову змінну bufer вводиться роботодавець. Дані проходять перевірки: нічого не введено та забагато введено (більше 28 символів.) По результатам перевірки відбувається копіювання даних з тимчасової змінної у змінну Strochka.Rabotodatel, або запит у користувача нових даних.
-
В тимчасову текстову змінну bufer вводиться професія. Дані проходять перевірку: нічого не введено та забагато введено (більше 28 символів.) По результатам перевірки відбувається копіювання данних з тимчасової змінної у змінну Strochka.Professiya, або запит у користувача нових даних.
-
В тимчасову текстову змінну bufer вводиться кількість робочих місць в текстовому форматі. Дані проходять перевірку: нічого не введено; введена кількість цифр, котра перевищує реально можливу кількість робочих місць при нинішній економічній ситуації в Україні; всі введені символи є цифрами з десятичної системи числення. За результатами перевірки відбувається перетворення тектових даних комірки bufer у ціле число, яке записується в змінну Strochka.KolRabMest, або запит у користувача нових даних.
-
В тимчасову текстову змінну bufer вводиться середня зарплата в формате (ГривніКрапкаКопійкиКопійки). Дані проходять перевірку: знаків не менше чотирьох (один символ-гривні, один символ – точка, два символи копійки); всі гривні записані цифрами; всі копійки записані цифрами; на третьому місці з кінця стоїть крапка; кількість цифр гривень не більше чотирьох (реальна заробітна платня в Центр зайнятості); всі цифри-символи, які пройшили перевірку копіюються на відповідні місця в тимчасову текстову змінну Dengi (тільки цифри, без крапки), звідки спочатку перетворюються в ціле число, потім, шляхом множення на 0,01, в дійсне числоі записується в числову змінну Strochka.Zarplata. Якщо хоча б одна перевірка не пройдена, від користувача вимагають ввести допустимі данні.
-
-
Функція ChtenieMassivaIzFayla зчитує дані з файлу baza.dat в глобальний масив і повертає кількість заповнених елементів масиву Baza.
-
Оголошуємо локальні змінні, які потрібні для виконання цієї процедури.
-
Відкриваємо для читання файлу baza.dat.
-
Перевірка відкриття файлу, тобто якщо відкриття бази даних не можливе (наприклад треба відкрити файл, а його не існує, або тому що не може відкритися із-за порушення спільного доступу і т.д.). Якщо, відкриття пройшло нормально, то за допомогою циклу зчитуються з файлу в масив Baza до тих пір, поки данні не закінчаться. Одночасно йде підрахунок зчитуємих даних.
-
Закриваємо файл бази даних.
-
-
Процедура ZapisMassivaVFayl записує масив Baza в текстовий файл baza.dat.
-
Оголошуємо локальні змінні, які потрібні для виконання цієї процедури.
-
Створюємо файл baza.dat і відкриваємо його для запису.
-
Циклом записуємо файл baza.dat і всі елементи масиву Baza (кожен елемент на окремий рядочок).
-
Закривається файл бази даних.
-
-
Процедура Sortirovka сортує масив база по заданому стовбцю (полю).
-
Оголошуємо локальні змінні, які потрібні для виконання цієї процедури.
-
Оператором switch-case надаємо вибір поля для сортування методом «Бульбашки».
-
-