Распечатать страницу
Главная \ База готовых работ \ Готовые работы по компьютерным дисциплинам \ Программирование (язык программирования С) \ 4890. Курсова робота Створення інформаційно-пошукової системи за допомогою мови програмування С - Завдання №15

Курсова робота Створення інформаційно-пошукової системи за допомогою мови програмування С - Завдання №15

« Назад

Код роботи: 4890

Вид роботи: Курсова робота

Предмет: Програмування (мова програмування С)

Тема: Створення інформаційно-пошукової системи за допомогою мови програмування С - Завдання №15

Кількість сторінок: 29

Дата виконання: 2018

Мова написання: українська

Ціна: безкоштовно

ВСТУП

1. Опис завдання

2. Постановка задачі

3. Код програми на мові С

4. Результати дослідження у вигляді копій відповідних екранних вікон програмного середовища

5. Оцінка результатів виконання програми

ВИСНОВОК

СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ

Курсова робота – це самостійне навчально-наукове дослідження студента, яке виконується з певного курсу або з окремих його розділів.

Виконання курсових робіт направлене на досягнення наступних цілей:

- ґрунтовне засвоєння згідно з завданням керівника необхідного теоретичного матеріалу та закріплення навичок формалізації, розробки математичної моделі та алгоритму рішення задачі, створення розрахункової програми в програмуючому середовищі, тестування та аналізу результатів виконання програми;

- уміння використовувати одержані знання в конкретній ситуації;

- уміння теоретично обґрунтувати одержані результати;

- здатність чітко формулювати одержані результати та робити з них висновки: грамотно, без помилок, написати текст роботи відповідно до правил оформлення наукової документації;

- уміння логічно побудувати доповідь, захистити сформульовані положення та висновки;

- проявити здібності до самостійного пошуку розв'язання задачі.

Курсова робота оформляється згідно з ГОСТом 7.32-81 «Отчет о научно-исследовательской работе, общие требования и правила оформления»; ГОСТ 2.105-68 «Общие требования к текстовым документам» і ГОСТ 2.106-68 «ЕСКД текстовые документи».

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

Розв'язання задачі за допомогою алгоритмічної мови передбачає наступні дії:

- визначення постановки задачі;

- створення програми на мові програмування;

- наладка та виконання програми за допомогою середовища розробки;

- тестування та аналіз результатів виконання програми.

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

1. Беспалов В. М., Вакула А. Ю., Гострик А. М. та ін.: Інформатика для економістів: Навчальний посібник. - К.: ЦУЛ, 2003. – 788 с.

2. Березин Б. И., Березин С. Б.: Начальный курс С и С++. – М.: Диалог-МИФИ, 2004. – 288 с.

3. Дональд Э. Кнут. Искусство программирования, том 1. Основные алгоритмы, 3-е из.: Пер. с англ. - М.: Издательский дом «Вильямс», 2007. – 720 с.

4. Глинський Я. М.: Практикум з інформатики. Навч. посібн. 7-е вид. - Львів: Деол, СПД Глинський, 2004. – 224 с.

5. Глинський Я. М., Анохін В. Є., Ряжська В. А.: С++ і C++Builder. Навч.посібн. 2-е вид. - Львів:Деол, СПД Глинський, 2004. – 192 с.

6. Культин Н. Б. С/С++ в задачах и примерах. СПб.: БХВ-Петербург, 2004. – 288 с.

7. Павловская Т. А., Щупак Ю. А. С/С++. Структурное программирование: Практикум. СПб.: Питер, 2005. – 239 с.

8. Подбельский В. В., Фомин С. С. Программирование на языке Си: Учеб. пособие. -2-е доп. изд. – М.: Финансы и статистика, 2000. – 600 с.

9. Постіл С. Д. Основи програмування та алгоритмичні мови: Опорний конспект лекцій. НУДПСУ. Ірпінь, 49 с.

10. Постіл С. Д. Алгоритми. Структура та наладка лінійної програми. Створення лінійної програми, вхідні дані для якої задаються самостійно із клавіатури: Методична розробка до виконання лабораторних, практичних, індивідуальних та курсової робіт. 2007 р. НУДПСУ.

11. Симонович С. В. Информатика. Базовый курс. - СПб: Питер, 2000. – 640 с.

12. Страуструп Б. Язык программирования С++. Специальное издание. Пер. с англ. – М.: ООО «Бином-Прес», 2005. – 1104 с.

КАЛЕНДАРНИЙ ПЛАН

п/п

Назва етапів магістерської роботи

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

Примітка

1.

Вибір теми, вивчення літературних джерел та складання плану роботи

 3-й місяць

(1-й семестр)

 

2.

Підготовка 35% курсової роботи та подання її керівнику (формалізація та постановка задачі)

4-й місяць

(1-й семестр)

 

3.

Підготовка 70% курсової роботи та подання керівнику (алгоритм та текст програми)

2-й місяць

(2-й семестр)

 

4.

Підготовка 100% курсової роботи та подання керівнику (алгоритм тестування, тестові завдання, виконання програми)

3-й місяць

(2-й семестр)

 

5.

Доопрацювання роботи з урахуванням зауважень керівника

4-й місяць

(2-й семестр)

 

6.

Захист курсової роботи

Останній місяць

(2 семестр)

 

1. Опис завдання

Завдання №15

Створити типований файл записів, який містить дані про підсумки зимової сесії Вашої групи. Поля запису – прізвище, 5 екзаменаційних оцінок, 4 заліки.

Довідки для пошуку:

- студентів, які склали іспити на “відмінно” і “добре”;

- студентів, що мають академзаборгованості;

- назви дисципліни, яку здали найкраще.

2. Постановка задачі

У завданні потрібно створити інформаційно-пошукову систему за допомогою мови програмування С з виконанням усіх поставлених вимог, щодо системи. Для досягнення результатів у цього завданні необхідно використати такі інструменти програмування мовою С, як:

- умови;

- масиви;

- рядки;

- функції;

- структури і т. д.

Результатом виконання поставленого завдання мають бути таблиці з верхівками в яких передбачено ПІБ студента, та оцінки за 5 екзаменів та 4 заліки.

Також необхідно створити файл з внесеною в нього необхідною інформацією.

3. Код програми на мові С

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

#include <string.h>

#include <stdbool.h>

#include <windows.h>

 

FILE *f1;

typedef struct

{

char pib[30];

int ekz_pr1; // Оцінка за екзамен з предмету 1

int ekz_pr2; // Оцінка за екзамен з предмету 2

int ekz_pr3; // Оцінка за екзамен з предмету 3

int ekz_pr4; // Оцінка за екзамен з предмету 4

int ekz_pr5; // Оцінка за екзамен з предмету 5

int z_pr6; // Оцінка за екзамен з предмету 6

int z_pr7; // Оцінка за екзамен з предмету 7

int z_pr8; // Оцінка за екзамен з предмету 8

int z_pr9; // Оцінка за екзамен з предмету 9

} SSesiya;

 

SSesiya sesiya[80]; // Масив структур

char name[20]; // Ім’я файлу

int kst=0; //Кількість введених структур

int menu(); // Меню

void crwf(); // Створити та заповнити файл

void vf(); // Відкрити файл

void vz(); // Вивести всі записи

void dov1(); // Вивести студентів, які склали іспити на “відмінно” і “добре”

void dov2(); // Вивести студентів, що мають академзаборгованість

void dov3(); // Вивести назву дисципліни, яку здали найкраще

char pr1[10]="АІП"; // Предмет 1

char pr2[10]="Фізика"; // Предмет 2

char pr3[10]="ПІС"; // Предмет 3

char pr4[10]="Історія "; // Предмет 4

char pr5[10]="Вища_мат."; // Предмет 5

char pr6[10]="Екологія"; // Предмет 6

char pr7[10]="БЖД"; // Предмет 7

char pr8[10]="Анг.мова"; // Предмет 8

char pr9[10]="Фіз.вих."; // Предмет 9

 

int main()

{

SetConsoleCP(1251); SetConsoleOutputCP(1251); // Робота з кирилицею + Lucida Console â Console

while (true)

{

switch (menu())

{

case 1: crwf(); break;

case 2: vf(); break;

case 3: vz(); break;

case 4: dov1(); break;

case 5: dov2(); break;

case 6: dov3(); break;

case 7: return 0;

default: "error!";

}

puts("Press any key to continue");

getch(); system("cls");

}

}

 

int menu() // Меню

{

puts("\n\n\n\t\t\t Інформаційно-пошукова система ");

puts("\n\t1. Створити та заповнити файл ");

puts("\t2. Відкрити файл ");

puts("\t3. Вивести всі записи ");

puts("\t4. Вивести студентів, які склали іспити на “відмінно” і “добре”);

puts("\t5. Вивести студентів, що мають академзаборгованість ");

puts("\t6. Вивести назву дисципліни, яку здали найкраще ");

puts("\t7. Вихід");

printf("\n\t Пункт: ");

int i;

scanf("%d",&i);

return i;

}

 

void crwf() // Створити та заповнити файл

{

system("cls");

//*** Ввести ім’я файлу ***

fflush(stdin);

printf("Ведіть ім’я файлу: ");

gets(name);

//*** Створити файл ***

if((f1 = fopen(name,"wb"))==NULL)

{

puts("create error");

exit(1);

}

puts("OK");

//*** Ввести дані ***

if((f1 = fopen(name,"rb+"))==NULL)

{

puts("create error");

exit(1);

}

printf("Введіть кількість студентів: ");

scanf("%d",&kst);

int i;

for(i=0; i<kst; i++)

{

fflush(stdin);

printf("Введіть ПІБ: ");

gets(sesiya[i].pib);

fflush(stdin);

printf("Введіть оцінку за предмет %s: ",pr1);

scanf("%d",&sesiya[i].ekz_pr1);

fflush(stdin);

printf("Введіть оцінку за предмет %s: ",pr2);

scanf("%d",&sesiya[i].ekz_pr2);

fflush(stdin);

printf("Введіть оцінку за предмет %s: ",pr3);

scanf("%d",&sesiya[i].ekz_pr3);

fflush(stdin);

printf("Введіть оцінку за предмет %s: ",pr4);

scanf("%d",&sesiya[i].ekz_pr4);

fflush(stdin);

printf("Введіть оцінку за предмет %s: ",pr5);

scanf("%d",&sesiya[i].ekz_pr5);

fflush(stdin);

printf("Введіть оцінку за предмет %s: ",pr6);

scanf("%d",&sesiya[i].z_pr6);

fflush(stdin);

printf("Введіть оцінку за предмет %s: ",pr7);

scanf("%d",&sesiya[i].z_pr7);

fflush(stdin);

printf("Введіть оцінку за предмет %s: ",pr8);

scanf("%d",&sesiya[i].z_pr8);

fflush(stdin);

printf("Введіть оцінку за предмет %s: ",pr9);

scanf("%d",&sesiya[i].z_pr9);

fwrite( &sesiya[i], sizeof(SSesiya), 1, f1 );

}

fclose(f1);

}

 

void vf() // Відкрити файл

{

system("cls");

//*** Ввести ім’я файлу ***

fflush(stdin);

puts("Введіть ім’я файлу ");

gets(name);

}

 

void vz() // Вивести всі записи

{

system("cls");

if((f1 = fopen(name,"rb"))==NULL)

{

puts("create error");

exit(1);

}

kst=0; SSesiya std;

 

printf("\t\t\t<<<<<<<<< Усі записи у файлі >>>>>>>>>\n");

printf(" ————————— ");

printf("| ПІБ | ПР1 | ПР2 | ПР3 | ПР4 | ПР5 | ПР6 | ПР7 | ПР8 | ПР9 |");

printf("|—————————|");

while(true)

{

int nwrt = fread( &std, sizeof(SSesiya), 1, f1 );

if(nwrt!=1) break;

sesiya[kst]=std;

printf("|%-24s|%5d|%5d|%5d|",

sesiya[kst].pib,sesiya[kst].

ekz_pr1,sesiya[kst].ekz_pr2,

sesiya[kst].ekz_pr3);

printf("%5d|%5d|%5d|",sesiya[kst].

ekz_pr4,sesiya[kst].ekz_pr5,sesiya[kst].z_pr6);

printf("%5d|%5d|%5d|",sesiya[kst].

z_pr7,sesiya[kst].z_pr8,sesiya[kst].z_pr9);

kst++;

}

printf(" ————————— ");

fclose(f1);

}

 

void dov1() // Вивести студентів, які склали іспити на “відмінно” і “добре”

{

system("cls");

printf(" <<<<<<<<< Студенти, які склали іспити на “відмінно” і “добре” >>>>>>>>>\n");

printf(" ————————— ");

printf("| ПІБ | ПР1 | ПР2 | ПР3 | ПР4 | ПР5 | ПР6 | ПР7 | ПР8 | ПР9 |");

printf("|—————————|");

int i;

for(i=0; i<kst; i++)

 if(sesiya[i].ekz_pr1>3&&sesiya[i].

ekz_pr2>3&&sesiya[i].ekz_pr3>

3&&sesiya[i].ekz_pr4>3&&sesiya[i].

ekz_pr5>3)

{

printf("|%-24s|%5d|%5d|%5d|",sesiya[i].pib,

sesiya[i].ekz_pr1,sesiya[i].

ekz_pr2,sesiya[i].ekz_pr3);

printf("%5d|%5d|%5d|",sesiya[i].

ekz_pr4,sesiya[i].ekz_pr5,sesiya[i].z_pr6);

printf("%5d|%5d|%5d|",sesiya[i].z_pr7,

sesiya[i].z_pr8,sesiya[i].z_pr9);

}

printf(" ————————— ");

}

 

void dov2() // Вивести студентів, що мають академзаборгованість

{

system("cls");

printf(" <<<<<<<<< Студенти, що мають академзаборгованість >>>>>>>>>\n");

printf(" —————————— ");

printf("| ПІБ | ПР1 | ПР2 | ПР3 | ПР4 | ПР5 | ПР6 | ПР7 | ПР8 | ПР9 printf("|————————————|");

int i;

for(i=0; i<kst; i++)

if(sesiya[i].ekz_pr1<3||sesiya[i].ekz_pr2

<3||sesiya[i].ekz_pr3<3||sesiya[i].ekz_pr4

<3||sesiya[i].ekz_pr5<3||sesiya[i].z_pr6

<3||sesiya[i].z_pr7<3||sesiya[i].z_pr8

<3||sesiya[i].z_pr9<3)

{

printf("|%-24s|%5d|%5d|%5d|",sesiya[i].

pib,sesiya[i].ekz_pr1,sesiya[i].ekz_pr2,

sesiya[i].ekz_pr3);

printf("%5d|%5d|%5d|",sesiya[i].

ekz_pr4,sesiya[i].ekz_pr5,sesiya[i].z_pr6);

printf("%5d|%5d|%5d|",sesiya[i].

z_pr7,sesiya[i].z_pr8,sesiya[i].z_pr9);

}

printf(" —————————— ");

}

 

void dov3() // Вивести назву дисципліни, яку здали найкраще

{

system("cls");

printf(" <<<<<<<<< Назва дисципліни, яку здали найкраще >>>>>>>>>\n");

printf(" ————————— ");

int sum[9];

int max;

char best[10];

int i;

int k;

sum[0]=sesiya[i].ekz_pr1;

sum[1]=sesiya[i].ekz_pr2;

sum[2]=sesiya[i].ekz_pr3;

sum[3]=sesiya[i].ekz_pr4;

sum[4]=sesiya[i].ekz_pr5;

sum[5]=sesiya[i].z_pr6;

sum[6]=sesiya[i].z_pr7;

sum[7]=sesiya[i].z_pr8;

sum[8]=sesiya[i].z_pr9;

for(i=1; i<kst; i++)

{

sum[0]+=sesiya[i].ekz_pr1;

sum[1]+=sesiya[i].ekz_pr2;

sum[2]+=sesiya[i].ekz_pr3;

sum[3]+=sesiya[i].ekz_pr4;

sum[4]+=sesiya[i].ekz_pr5;

sum[5]+=sesiya[i].z_pr6;

sum[6]+=sesiya[i].z_pr7;

sum[7]+=sesiya[i].z_pr8;

sum[8]+=sesiya[i].z_pr9;

}

max=sum[0];

k=0;

for(i=0; i<9; i++)

if(sum[i]>max)

{

max=sum[i];

k=i;

}

 

switch (k)

{

case 0: strcpy(best,pr1); break;

case 1: strcpy(best,pr2); break;

case 2: strcpy(best,pr3); break;

case 3: strcpy(best,pr4); break;

case 4: strcpy(best,pr5); break;

case 5: strcpy(best,pr6); break;

case 6: strcpy(best,pr7); break;

case 7: strcpy(best,pr8); break;

case 8: strcpy(best,pr9); break;

default: "error!";

}

printf("| %10s |",best);

printf(" —————————— ");

}

4. Результати дослідження у вигляді копій відповідних екранних вікон програмного середовища

4.1. Екранні вікна середовища розробки Dev-C++ 4.9.9.2 з налагодженою програмою

Б4890, Рис. 1 - Код програми у середовища розробки Dev-C++ 4.9.9.2(початок)

Рис. 1 - Код програми у середовища розробки Dev-C++ 4.9.9.2(початок)

Б4890, Рис. 2 - Код програми у середовища розробки Dev-C++ 4.9.9.2 (продовження)

Рис. 2 - Код програми у середовища розробки Dev-C++ 4.9.9.2 (продовження)

Б4890, Рис. 3 - Код програми у середовища розробки Dev-C++ 4.9.9.2 (продовження)

Рис. 3 - Код програми у середовища розробки Dev-C++ 4.9.9.2 (продовження)

Б4890, Рис. 4 - Код програми у середовища розробки Dev-C++ 4.9.9.2 (продовження)

Рис. 4 - Код програми у середовища розробки Dev-C++ 4.9.9.2 (продовження)

Б4890, Рис. 5 - Код програми у середовища розробки Dev-C++ 4.9.9.2 (продовження)

Рис. 5 - Код програми у середовища розробки Dev-C++ 4.9.9.2 (продовження)

Б4890, Рис. 6 - Код програми у середовища розробки Dev-C++ 4.9.9.2 (продовження)

Рис. 6 - Код програми у середовища розробки Dev-C++ 4.9.9.2 (продовження)

Б4890, Рис. 7 - Код програми у середовища розробки Dev-C++ 4.9.9.2 (продовження)

Рис. 7 - Код програми у середовища розробки Dev-C++ 4.9.9.2 (продовження)

Б4890, Рис. 8 - Код програми у середовища розробки Dev-C++ 4.9.9.2 (продовження)

Рис. 8 - Код програми у середовища розробки Dev-C++ 4.9.9.2 (продовження)

Б4890, Рис. 9 - Код програми у середовища розробки Dev-C++ 4.9.9.2 (кінець)

Рис. 9 - Код програми у середовища розробки Dev-C++ 4.9.9.2 (кінець)

 

4.2. Екранні вікна середовища розробки Dev-C++ 4.9.9.2 з результатами виконання програми

Б4890, Рис. 10 - Головне меню

Рис. 10 - Головне меню

Б4890, Рис. 11 - Таблиця усіх записів у файлі

Рис. 11 - Таблиця усіх записів у файлі

Б4890, Рис. 12 - Виконання першої поставленої довідки у таблиці

Рис. 12 - Виконання першої поставленої довідки у таблиці

Б4890, Рис. 13 - Виконання другої поставленої довідки у таблиці

Рис. 13 - Виконання другої поставленої довідки у таблиці

Б4890, Рис. 14 - Результат виконання пункту «Виведення назви дисципліни, яку здали найкраще»

Рис. 14 - Результат виконання пункту «Виведення назви дисципліни, яку здали найкраще»

 

5. Оцінка результатів виконання програми

Дана інформаційно-пошукова система цілком виконую поставлені завдання(довідки) з урахуванням усіх умов. Також результати виконання пунктів представлено в таблицях, що є результатом повного виконання поставленого завдання.