У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент



Дипломна робота - Розробка програми на мові С
20
типу). У проекті ми використали такі масиви: oc[8] – масив оцінок, які поставили судді(8 елементів), kvn[4] – масив, що складається з 4 елементів типу command(структура).

Структури – це сукупність різнорідних даних, що описуються і обробляються як одне ціле. Структури використовують для зберігання комбінованої інформації, яка може складатися з чисел, символів, рядків, масивів (у нашому випадку структурою є

дані, які стосуються команд КВН: ім’я(name), бали(oc[5]), середній бал(results)).

У програмі структуру записуємо у файл Yarik2.dat. Для доступу до файлу використовуємо вказівник на файл (*iop).

2 ТЕХНІЧНИЙ ПРОЕКТ

Опис програми

Програма складається з 7 функцій. А саме:

menu() – функція меню, яка дає можливість вибирати режими роботи програми;

save() – функція збереження даних у файл yarik2.dat;

load() – завантаження даних з файлу yarik2.dat;

new_zapus() – функція вводу нових даних (назв команд, поточних оцінок і обчислення середнього арифметичного);

new_marks() – функція вводу нових поточних оцінок і обчислення середнього балу за всі пройдені конкурси;

vuvid() – вивід результатів на екран;

sort() – функція, яка сортує дані по середньому балу.

Функція меню (menu()) викликається з головної функції main(). Вона викликає функції new_marks(), new_zapus(), vuvid() в залежності від вибраного режиму роботи програми.

Функція вводу нових даних викликає функції сортування, збереження даних у файл та меню.

Функція вводу нових поточних оцінок також викликає ті ж функції, що і вводу нових даних.

Функція виводу викликає функції завантаження даних з файлу, сортування та меню.

Блок-схема алгоритму та її опис

Програма складається з 7 функцій. Нижче наведені блок – схеми кожної з них.

2.2.1 Основна програма.

Блок 1 : Початок.

Блок 2 : Очистка екрану, встановлення синього кольору фону, і жовтого кольру тексту;

Блок 3 : Виклик функції меню;

Блок 4 :Кінець.

2.2.2 Функція меню.

Блок 1 : Вхід.

Блок 2 : Ввід пункта меню

Блок 3 : Умова q=1

Блок 4 : Виклик функції вводу нових даних

Блок 5 : Умова q=2

Блок 6 :Виклик функції вводу поточних результатів

Блок 7 : Умова q=3

Блок 8 : Виклик функції виводу даних на екран

Блок 9 : Вихід.

2.2.3 Функція запису даних у файл

Блок 1 : Вхід.

Блок 2 : Умова відкриття файлу =NULL

Блок 3 : Вивід повідомлення.

Блок 4 : Вихід з програми.

Блок 5 : Цикл 0 до n (n=4).

Блок 6 : Умова запису структури у файл !=1

Блок 7 : Вивід повідомлення.

Блок 8 : Закриття файлу.

Блок 9 : Вихід

2.2.4 Функція зчитування даних з файлу.

Блок 1 : Вхід.

Блок 2 : Умова відкриття файлу =NULL

Блок 3 : Вивід повідомлення.

Блок 4 : Вихід з програми.

Блок 5 : Цикл 0 до n (n=4).

Блок 6 : Умова зчитування структури з файлу !=1

Блок 7 : Вивід повідомлення.

Блок 8 : Закриття файлу.

Блок 9: Вихід.

2.2.5 Функція сортування

Блок 1 : Вхід.

Блок 2 : Цикл 0 до n (n=4).

Блок 3 : Присвоєння змінним max i k значень kvn[i].results i і відповідно.

Блок 4 : Цикл 0 до 8

Блок 5 : Умова kvn[i].results>max

Блок 6 : Присвоєння змінним max i k значень kvn[j].results i j відповідно.

Блок 7 : Присвоєння temp kvn[i]; kvn[i] - kvn[k]; kvn[k] – temp;

Блок 8: Вихід.

2.2.6 Функція виводу даних на екран

Блок 1 : Вхід.

Блок 2 : Виклик функції завантаження даних з файлу, та функції сортування;

Блок 3 : Цикл 0 до n (n=4).

Блок 4 : Вивід kvn[i].name, kvn[i].results

Блок 5 : Цикл 0 до 8

Блок 6 : Вивід kvn[i].oc[j].

Блок 7 : Виклик функції меню;

Блок 8: Вихід.

2.2.7 Функція вводу поточних оцінок

Блок 1 : Вхід.

Блок 2 : Виклик функції завантаження даних з файлу;

Блок 3 : Цикл 0 до n (n=4).

Блок 4 : Присвоєння s 0.

Блок 5 : Цикл 0 до 8

Блок 6 : Ввід kvn[i].oc[j].

Блок 7 : Додавання до суми kvn[i].oc[j].

Блок 8 : Умова kvn[i].oc[j]>5&&kvn[i].oc[j]<2(істина – перехід до блоку 7)

Блок 9 : Присвоєння kvn[i].now та kvn[i].results s/8 та kvn[i].now відповідно

Блок 10 : Виклик функцій сортування, збереження даних у файл та меню.

Блок 11 : Вихід

2.2.8 Функція вводу нових даних

Блок 1 : Вхід.

Блок 2 : Цикл 0 до n (n=4).

Блок 3 : Присвоєння s 0.

Блок 4 : Ввід kvn[i].name

Блок 5 : Цикл 0 до 8

Блок 6 : Ввід kvn[i].oc[j].

Блок 7 : Додавання до суми kvn[i].oc[j].

Блок 8 : Умова kvn[i].oc[j]>5&&kvn[i].oc[j]<2(істина – перехід до блоку 6)

Блок 9 : Присвоєння kvn[i].now та kvn[i].results s/8 та kvn[i].now відповідно

Блок 10 : Виклик функцій сортування, збереження даних у файл та меню.

Блок 11 : Вихід

2.3 Таблиця ідентифікації

Таблиця 2.1 – Таблиця ідентифікації

У задачі | У програмі

Дані про команди | struct command kvn[n]

Кількість команд | n

Файли для збереження даних та результатів виконання завдання | FILE *iop

Вибраний пункт меню | q

Тимчасові змінні, змінні для роботи із циклами | i, j, s, temp, max

3 РОБОЧИЙ ПРОЕКТ

3.1 Програма та її опис

//Перед процесорні директиви

#include<stdio.h>

#include<math.h>

#include<conio.h>

#include<process.h>

#include<graphics.h>

#include<dos.h>

#define n 4 // кількість команд

/*---------------------------------------Опис структури-----------------------------------------------*/

struct command

{

char name[25];

float results,now;

int oc[8];

} kvn[n];

/*------------------------------------------Прототипи функцій-------------------------------------------*/

char menu(); // функція меню

void save(void); //функція збереження даних у файл

void load(void); //функція завантаження даних з файлу

void new_zapus(void); //функція вводу нових даних

void new_marks(void); //функція вводу поточних оцінок

void vuvid(void); //вивід результатів

void sort(void); //сортування даних

/*----------------------------------Головна функція----------------------------------*/

void main()

{

clrscr(); //очистка екрану

textbackground(1); //колір фону - синій

textcolor(YELLOW); //колір тексту - жовтий

char q;

q=menu(); //виклик функції меню

}

/*---------------------------------Функція меню-----------------------------------*/

char menu()

{

char q;

clrscr(); //очистка екрану

gotoxy(35,19); //перехід на вказане місце екрану

printf("г=========¬"); //вивід рамки

gotoxy(35,20); //перехід на вказане місце екрану

printf("¦ 1. NEW ¦"); //вивід рамки

gotoxy(35,21); //перехід на вказане місце екрану

printf("¦ 2. ADD ¦"); //вивід рамки

gotoxy(35,22); //перехід на вказане місце екрану

printf("¦ 3. PRINT¦"); //вивід рамки

gotoxy(35,23); //перехід на вказане місце екрану

printf("¦ 4. EXIT ¦");


Сторінки: 1 2 3