Створення програми електронного обліку успішності студентів

Написання програми для створення журналу. Розробка алгоритму функціонування програми. Функція, яка відповідає за вибір потрібного пункту в головному меню та виконує пошук середнього балу студента за тиждень. Тестування та результати роботи програми.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 21.05.2014
Размер файла 169,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru

Размещено на http://www.allbest.ru

Размещено на http://www.allbest.ru

Зміст

Вступ

Розділ I. Аналіз завдання

Розділ IІ. Розробка алгоритму функціонування

Розділ IІІ. Створення програми із описом основних функцій програми

Розділ IV. Опис технології роботи програми

Висновок

Перелік використаної літератури

Додаток 1 Лістинг програми мовою С

Вступ

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

Розділ I. Аналіз завдання

Завдання даної курсової роботи полягає у написанні програми для створення журналу. Також за допомогою цієї програм можна слідкувати за відвідуваністю та успішністю студентів, та з легкістю доповняти базу даних.

Для забезпечення виконання поставленого завдання, потрібно розробити функції, а в них описати їх призначення:

а) внесення в базу даних дані ;

б) виведення журналу;

в) пошук студента;

г) функція виходу з програми.

Програма складається з таких пунктів:

1. Завантажити дані.

2. Вивести дані.

3. Пошук.

4. Вихід.

Для виконання вище поставленого завдання було створено функції, які забезпечують виконання програми.

Розділ IІ. Розробка алгоритму функціонування програми

електронний облік програма журнал

Алгормитм (латинізов. Algorithmi, від імені перського математика IX ст. аль-Хорезмі) -- послідовність,система, набір систематизованих правил виконання обчислювального процесу, що обов'язково приводить до розв'язання певного класу задач після скінченного числа операцій. При написанні комп'ютерних програм алгоритм описує логічну послідовність операцій. Для візуального зображення алгоритмів часто використовують блок-схеми.

Дана програма складається з таких функцій:

struct menu(); -- структура меню;

struct Zurnal(); -- структура бази даних журналу;

int main(); -- функція, яка відповідає за основне меню, візуальне керування пунктами меню;

void _menu(int); -- функція, яка відповідає за колір та вибір пунктів меню;

void inp(Zurnal Zurnal st); -- функція, яка записує дані в базу;

void out(Zurnal st); -- функція, яка виводить дані з бази даних;

void poshuk(Zurnal st); -- функція, яка виводить «н» вибраного студента.

float max_sr_ball(Zurnal st); -- функція, яка яка виводить середній бал студента.;

Для простішого користування даними була створена структура, яка складається декількох змінних типу char та int:

struct Zurnal

{

char name_student[32];

char second_name[32];

int day[7];

}st;

Розділ IІІ. Створення програми із описом основних функцій

Основна частина програми

Дана частина програми є основною і дає можливість працювати усім іншим функціям.

Вона складається з: оголошення бібліотек, структури меню, структури бази журналу, з циклу управління клавішами, а також виведення головного меню.

#include <iostream>

#include <fstream>

#include <windows.h>

#include <conio.h>

#include <iomanip>

#include <stdlib.h>

#define n 5

using namespace std;

struct menu

{

char a[45];

}menu[5];

struct Zurnal

{

char name_student[32];

char second_name[32];

int day[7];

}st;

void _menu(int);

void inp(Zurnal st);

void out(Zurnal st);

void poshuk_st(Zurnal st);

float max_sr_ball(Zurnal st);

FILE *f;

int main(){

setlocale(LC_ALL,"Ukrainian");

strcpy(menu[0].a," Завантажити даннi ");

strcpy(menu[1].a," Вивести данi ");

strcpy(menu[2].a," Пошук");

strcpy(menu[3].a," max середнiй балл студента протягом тижня");

strcpy(menu[4].a," Вихiд ");

cout<<menu[0].a<<endl;

cout<<menu[1].a<<endl;

cout<<menu[2].a<<endl;

cout<<menu[3].a<<endl;

cout<<menu[4].a<<endl;

int code,c=1;

while(1)

{

code=getch();

system("cls");

switch(code)

{

case 72:

{

if(c>0)

c--;

else

cout<<"\a";

}

break;

case 80:

{

if(c<4)

c++;

else

cout<<"\a";

}

break;

case 13:

switch(c)

{

case 0:inp(st);break;

case 1:out(st);break;

case 2:poshuk_st(st);break;

case 3:cout<<"max середній балл студента протягом тижня = "<<max_sr_ball(st)<<endl;

cout<<endl; break;

case 4:

{

cout<<"\a";

return 0;

}

}

}

_menu(c);

getch();

return 0;

}

Функція, яка відповідає за вибір потрібного пункту в головному меню:

void _menu(int c)

{

for(int i=0;i<5;i++)

if(i==c)

{

cout<<"->"<<menu[i].a<<endl;

}

else

{

cout<<menu[i].a<<endl;

}

}

Функція, яка дозволяє записувати дані:

void inp(Zurnal st)

{

f=fopen("zurnal.txt","a+");

cout<<"Iм`я студента: ";

cin>>st.name_student;

cout<<"Прiзвище студента: ";

cin>>st.second_name;

cout<<"Введiть оцiнку, якщо у студента пропуск,то введiть 0:\n ";

for(int i = 0; i < 5; i ++)

{

cout<<"день # "<<i+1<<": ";

cin>>st.day[i];

if(st.day[i]>5)

{

cout<<"оцiнка не може бути вищою, нiж 5, введіть знову: "<<endl;

i--;

}

}

fwrite(&st,sizeof(Zurnal),1,f);

fclose(f);

}

Функція для виведення журналу:

void out(Zurnal st)

{

system("cls");

f=fopen("zurnal.txt","ab+");

int c;

while((c=fread(&st,sizeof(Zurnal),1,f))!=NULL)

{

cout<<st.name_student<<" "<<st.second_name<<endl;

for(int i=0; i<5; i++)

{

if(!st.day[i])

cout<<"день "<<i+1<<" вiдсутнiй"<<endl;

else

cout<<"день "<<i+1<<" "<<st.day[i]<<endl;

}

cout<<endl;

}

fclose(f);

}

Функція, яка виконує пошук:

void poshuk_st(Zurnal st)

{

system("cls");

f=fopen("zurnal.txt","ab+");

int c;

int flat;

bool k=0;

char buf[32];

cout<<"Iм`я студента: ";

cin>>buf;

while((c=fread(&st,sizeof(Zurnal),1,f))!=NULL)

{

if(strcmp(st.name_student, buf) == 0)

{

cout<<st.name_student<<" "<<st.second_name<<endl;

for(int i=0; i<5; i++)

{

if(!st.day[i])

cout<<"день "<<i+1<<" вiдсутнiй"<<endl;

else

cout<<"день "<<i+1<<" "<<st.day[i]<<endl;

}

cout<<endl;

}

}

Функція, яка виконує пошук середнього балу студента за тиждень

float max_sr_ball(Zurnal st)

{

system("cls");

f=fopen("zurnal.txt","ab+");

int c;

float sr = 0;

float sum;

while((c=fread(&st,sizeof(Zurnal),1,f))!=NULL)

{

sum = 0;

for(int i = 0; i < 7; i++)

sum+=st.day[i];

if(sr < sum/7)

sr = sum/7;

}

return sr;

}

Розділ IV. Тестування та результати роботи програми

Після компіляції з'являється головне меню програми


Рисунок 1 - головне меню програми

Тут для вибору потрібного нам розділу ми керуємо і вибираємо клавішами наводячи голубий колір на потрібний нам рядок і натискаючи клавішу вводу.

Рисунок 2 - ввід даних

Для виведення журналу виберіть пункт: «Вивести дані»

Рисунок 3 вивід журналу

Для пошуку студента в базі даних нам потрібно вибрати розділ: «Пошук».

Рисунок 4 - пошук

Для пошуку середнього балу студента протягом тижня вибираємо: «max середній балл студента протягом тижня»

Рисунок 5 - середній балл студента протягом тижня

Для виходу з програми ми вибираємо розділ: «Вихід»

Висновок

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

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

Перелік використаної літератури

1. К. Джамаса. Учимся програмировать на языке С++: Пер. С англ.. - Москва: Мир, 1997. 320с.

2. Стефенс Д.Р.С++.Сборник рецептов. - КУДИЦ-ПРЕСС, 2007. - 624 с. - ISBN 5-91136-0306

3. С++, Культин Н.Б, СПб:БХВ-Петербург, 2005г. 288с.

4. Герберт Шилдт. Полный справочник по С++=С++:The Complete

Reference. - 4-е изд. - М. Вильямс, 2006. - 800с. ISBN 0-07-2226803

5. Шпак З.Я. Програмування мовою С -Львів: Оріяна-Нова, 2006 р.-432с.

Додаток 1

Лістинг програми мовою С

#include <iostream>

#include <fstream>

#include <windows.h>

#include <conio.h>

#include <iomanip>

#include <stdlib.h>

#define n 5

using namespace std;

struct menu

{

char a[45];

}menu[5];

struct Zurnal

{

char name_student[32];

char second_name[32];

int day[7];

}st;

void _menu(int);

void inp(Zurnal st);

void out(Zurnal st);

void poshuk_st(Zurnal st);

float max_sr_ball(Zurnal st);

void tytul();

FILE *f;

int main(){

setlocale(LC_ALL,"Ukrainian");

strcpy(menu[0].a," Завантажити даннi ");

strcpy(menu[1].a," Вивести данi ");

strcpy(menu[2].a," Пошук");

strcpy(menu[3].a," max середнiй балл студента протягом тижня");

strcpy(menu[4].a," Вихiд ");

tytul();

cout<<menu[0].a<<endl;

cout<<menu[1].a<<endl;

cout<<menu[2].a<<endl;

cout<<menu[3].a<<endl;

cout<<menu[4].a<<endl;

int code,c=1;

while(1)

{

code=getch();

system("cls");

switch(code)

{

case 72:

{

if(c>0)

c--;

else

cout<<"\a";

}

break;

case 80:

{

if(c<4)

c++;

else

cout<<"\a";

}

break;

case 13:

switch(c)

{

case 0:inp(st);break;

case 1:out(st);break;

case 2:poshuk_st(st);break;

case 3:cout<<"max середній балл студента протягом тижня = "<<max_sr_ball(st)<<endl;

cout<<endl; break;

case 4:

{

cout<<"\a";

return 0;

}

}

}

_menu(c);

}

getch();

return 0;

}

void _menu(int c)

{

for(int i=0;i<5;i++)

if(i==c)

{

cout<<"->"<<menu[i].a<<endl;

}

else

{

cout<<menu[i].a<<endl;

}

}

void inp(Zurnal st)

{

f=fopen("zurnal.txt","a+");

cout<<"Iм`я студента: ";

cin>>st.name_student;

cout<<"Прiзвище студента: ";

cin>>st.second_name;

cout<<"Введiть оцiнку, якщо у студента пропуск,то введiть 0:\n ";

for(int i = 0; i < 5; i ++)

{

cout<<"день # "<<i+1<<": ";

cin>>st.day[i];

if(st.day[i]>5)

{

cout<<"оцiнка не може бути вищою, нiж 5, введіть знову: "<<endl;

i--;

}

}

fwrite(&st,sizeof(Zurnal),1,f);

fclose(f);

}

void out(Zurnal st)

{

system("cls");

f=fopen("zurnal.txt","ab+");

int c;

while((c=fread(&st,sizeof(Zurnal),1,f))!=NULL)

{

cout<<st.name_student<<" "<<st.second_name<<endl;

for(int i=0; i<5; i++)

{

if(!st.day[i])

cout<<"день "<<i+1<<" вiдсутнiй"<<endl;

else

cout<<"день "<<i+1<<" "<<st.day[i]<<endl;

}

cout<<endl;

}

fclose(f);

}

void poshuk_st(Zurnal st)

{

system("cls");

f=fopen("zurnal.txt","ab+");

int c;

int flat;

bool k=0;

char buf[32];

cout<<"Iм`я студента: ";

cin>>buf;

while((c=fread(&st,sizeof(Zurnal),1,f))!=NULL)

{

if(strcmp(st.name_student, buf) == 0)

{

cout<<st.name_student<<" "<<st.second_name<<endl;

for(int i=0; i<5; i++)

{

if(!st.day[i])

cout<<"день "<<i+1<<" вiдсутнiй"<<endl;

else

cout<<"день "<<i+1<<" "<<st.day[i]<<endl;

}

cout<<endl;

}

}

fclose(f);

}

float max_sr_ball(Zurnal st)

{

system("cls");

f=fopen("zurnal.txt","ab+");

int c;

float sr = 0;

float sum;

while((c=fread(&st,sizeof(Zurnal),1,f))!=NULL)

{

sum = 0;

for(int i = 0; i < 7; i++)

sum+=st.day[i];

if(sr < sum/7)

sr = sum/7;

}

return sr;

}

void tytul()

{

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12);

cout<<"\n"<<setw(60)<<"Miнiстерство освiти i науки України\n\n\n";

cout<<"\tТернопiльський технiчний коледж\n\n\n";

cout<<"\t\t\t\tКУРСОВА РОБОТА\n";

cout<<"\t\t\t\t на тему:\n\n";

cout<<"\t\t\t\Розробка програми цифрового журналу із змінною базою даних \n\n\n\n\n\n";

cout<<"\t\t\t\t\t\t\tРозробив студент\n";

cout<<"\t\t\t\t\t\t\tгрупи ОКС-407\n";

cout<<"\t\t\t\t\t\t\tКороль О.\n\n\n\n";

cout<<"\t\t\t\tТернопiль 2014\n";

cout<<"\Для продовження натиснути Enter";

getch();

system("cls");

}

Размещено на Allbest.ru


Подобные документы

  • Створення програми, що видає результати голосування та підсумки виборів. Алгоритм розробки програми. Опис структури даних та вимоги до них, стандартних процедур та функцій, файлів та їх призначення. Приклад тестування та результати роботи програми.

    курсовая работа [1,0 M], добавлен 28.06.2012

  • Алгоритмічна мова програмування універсального призначення Turbo Pascal. Розробка і створення програми для гри "Шибениця". Алгоритм функціонування программи, блок-схема алгоритму. Використання додаткових модулів Graph та Crt у процессі створення програми.

    курсовая работа [2,0 M], добавлен 23.06.2010

  • Призначення гри в хрестики-нулики та програмне забезпечення, необхідне для її функціонування. Написання програми в середовищі Borland C++ Builder. Способи виклику програми. Характер вхідних та вихідних даних. Алгоритм та тестування роботи програми.

    курсовая работа [321,6 K], добавлен 01.04.2016

  • Розробка програми для вирішення графічної задачі. При вирішенні задачі необхідно cтворювати програму у середовищі програмування Turbo Pascal. Розробка алгоритму функціонування програми і надання блок-схеми алгоритму. Демонстрація роботи програми.

    курсовая работа [1,3 M], добавлен 23.06.2010

  • Розробка кросплатформового інструменту електронного тестування учнів молодших та середніх класів по іноземній мові. Вибір середовища розробки та системи контролю версій. Опис мови програмування Java та лістинг програми. Апаратні та програмні вимоги.

    дипломная работа [608,3 K], добавлен 26.10.2010

  • Функції комп'ютерної програми-органайзера, пов'язані із забезпеченням роботи календаря, записної книжки, менеджера контактів (адресно-телефонної книги), годинника, калькулятора. Програмна модель, розробка інтерфейсу і тестування програми, інсталяція.

    курсовая работа [932,8 K], добавлен 03.06.2010

  • Обліковий запис root. Настройка атрибутів користувацького облікового запису. Програми для створення облікових записів користувачів. Створення програми-скрипта add_user для надання робочого інтерфейсу програмі useradd. Блок схема алгоритму програми.

    курсовая работа [35,9 K], добавлен 10.01.2013

  • Розробка програми мовою Turbo Pascal для автоматизації процесу перевірки оцінок та аналізу успішності групи, для збереження і перегляду всієї інформації стосовно навчання. Формальна постановка задачі, створення алгоритму та вихідного коду програми.

    курсовая работа [36,0 K], добавлен 13.10.2010

  • Розробка та налагодження програми "Заробітна плата" на мові високого рівня С++ для комп'ютерів з операційною системою Windows 7. Текстуальний опис алгоритму. Створення UML-діаграми та обробка інформації з бази даних. Інструкція по роботі з програмою.

    курсовая работа [698,4 K], добавлен 14.10.2012

  • Теоретичні відомості про язик С++. Розробка програми, що виконує основні арифметичні дії над простими та складними числами на язику С++. Опис алгоритму програми та її код. Інструкція по користуванню. Обгрунтовування вибору та складу технічних засобів.

    курсовая работа [852,8 K], добавлен 30.11.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.