МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ
МІНІСТЕРСТВО ОСВІТИ «Білоруський державний університет інформатики і радіоелектроніки»
КАФЕДРА: Економічної інформатики
ФАКУЛЬТЕТ: Інженерно-економічний
ПОЯСНЮВАЛЬНА ЗАПИСКА
до курсового проекту з курсу: «Основи конструювання програм»
НА ТЕМУ: «Автоматизація процесу нарахування стипендій»
МІНСЬК +2014
ЗАВДАННЯ до КУРСОВОМУ ПРОЕКТУ
Створити файл, що містить відомості про результати здачі студентами сесії. Структура запису: номер групи, ПІБ, оцінки з 3 предметів, ознака участі в громадській роботі: 1 -активно участь, 0 - неучасть. Програма повинна нараховувати студентам групи Х стипендію. При цьому: відмінники і громадські працівники отримують 50% надбавки, а просто відмінники отримують 25%. Студент-громадський з однією трійкою також отримує стипендію.
ВСТУП
Мова Сі, створений Денисом Рітчі на початку 70-х років в Bell Laboratory американської корпорації AT amp; T, є одним з універсальних мов програмування. Мова Сі вважається мовою системного програмування, хоча він зручний і для написання прикладних програм.
Серед переваг мови Сі слід зазначити переносимість програм на комп'ютери різної архітектури та з однієї операційної системи в іншу, лаконічність запису алгоритмів, логічну стрункість програм, а також можливість отримати програмний код, порівнянний по швидкості виконання з програмами, написаними на мові асемблера. Останнє пов'язано з тим, що хоча Сі є мовою високого рівня, які мають повний набір конструкцій структурного програмування, він також володіє набором низькорівневих засобів, що забезпечують доступ до апаратних засобів комп'ютера. Сі пропонує наступні важливі особливості:
просту мовну базу, з якої винесені в бібліотеки багато істотні можливості, начебто математичних lt; # justify gt; 3.2 Функції для роботи з двусвязний списком студентів
Насамперед визначена функція void init (), призначена для початкової ініціалізації полів списку, вона проставляє в них нульові і NULL-значення для числових полів і покажчиків відповідно.
Далі йде функція void add_front (student pdata) для додавання даних в початок списку. Як параметр приходять дані про студента. У функції розглядаються два випадки: список порожній і необхідно створити перший і єдиний поки елемент; перший або більш елемент вже існує і необхідно додати до нього ще один. Якщо ми створюємо перший елемент, то спершу виділяємо пам'ять під новий вузол, записуємо в нього дані про студента, обнуляем покажчики на попередній і наступний вузол, покажчик на останній елемент ініціалізіруем першим, тому що вони збігаються у випадку одного елемента, інкрементіруем лічильник кількості елементів. Якщо в списку вже є хоча б один елемент, то необхідно виділити пам'ять для нового вузла, записати в нього дані про студента, покажчик на наступний вузол проініціалізувати покажчиком на перший вузол, покажчик на попередній вузол -NULL. Для першого вузла покажчик на попередній вузол инициализируется поточним вузлом, який ми збираємося додавати, сам він займає місце першого вузла у списку, розмір списку інкрементується на одиницю.
Функція voidadd_back (studentpdata) необхідна для додавання даних в кінець списку. Реалізована аналогічно додаванню в кінець, тільки з роботою з останнім вузлом. Також розглядається два випадки: список порожній і в списку є хоча б один елемент.
Функція voidrem (intindex) видалення елемента. Як параметр приймається індекс елемента, який необхідно видалити. Розглядаються наступні ситуації: список порожній, тоді видаляти нічого; видаляється перший елемент; видаляється останній елемент; віддаляється єдиний елемент списку; видаляється елемент з середини списку.
Функція studentget (intindex) повертає інформацію про студента по заданому індексу. Пошук потрібного елемента в списку здійснюється за допомогою циклу.
Функція int get_size () повертає поточне значення розміру списку.
Функція voidchange (intindex) потрібна для заміни даних про студента за вказаною індексом в списку. Передбачає введення невірного індексу (лежить за межами діапазону від нуля до кількості елементів списку); список порожній і не можна нічого змінювати; змінюється перший елемент списку; змінюється останній елемент списку; змінюється елемент в середині списку (не перший і...