Разработка приложения, начисляющего стипендию студентам

Анализ технических средств и современных технологий разработки программного обеспечения. Разработка программы для упрощения поиска студентов. Создание учетных записей администратора и обычного пользователя. Изучение правил построения программного кода.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 30.09.2016
Размер файла 1,9 M

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

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

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

Министерство образования Республики Беларусь

БЕЛОРУСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ

Инженерно-экономический факультет

Кафедра экономической информатики

Курсовая работа

на тему: «Разработка приложения начисляющего стипендию студентам»

Студент Кунцевич А.А.

Руководитель Мытник Н.П.

МИНСК 2015

СОДЕРЖАНИЕ

Задание

Введение

1. Краткие теоретические сведения об используемых алгоритмах

2. Описание организации структур хранимых данных

3. Создание пользовательских функций приложения

4. Схемы алгоритмов работы приложения

5. Описание программы

Заключение

Список использованных источников

ЗАДАНИЕ ПО КУРСОВОЙ РАБОТЕ

1. Разработать функциональную схему задачи, а также схемы двух модулей по указанию руководителя.

2. Создать программу (консольный режим), выполнив функциональное разбиение, реализующую следующие функции работы с бинарным/текстовым файлом. Предусмотреть создание меню 1-го уровня со следующими пунктами:

a. Вход под администратором

b. Вход под пользователем

c. Выход

Учетные записи администратора и обычного пользователя должна содержать логин и пароль. Сведения об учетных записях должны храниться в отдельном файле, желательно предусмотреть механизм шифрования/дешифрования логинов/паролей.

3. Меню 2-го уровня:

- Для администратора:

a) Создание/открытие файла с данными

b) Добавление записи

c) Редактирование записи

d) Удаление записи

e) Просмотр всех данных в табличной форме

f) Различные процедуры поиска и фильтрации данных

g) Управление пользователями

h) Выход в меню 1-го уровня

- Для обычного пользователя:

a) Открытие файла с данными

b) Просмотр всех данных в табличной форме

c) Выполнение задачи

d) Различные процедуры поиска и фильтрации данных

e) Выход в меню 1-го уровня

4. Данные должны быть организованы в структуре (struct), не менее 7-ми полей, обязательно предусмотреть использование вложенных структур.

5. Предусмотреть обработку исключительных ситуаций

6. Построение программного кода должно соответствовать правилам, определенным в документе «CodeConventions» для соответствующего языка (технологии).

7. Предусмотреть использование различных встроенных функций для работы со строками

ВВЕДЕНИЕ

В настоящее время почти во всех отраслях человеческой деятельности использование компьютеров все более расширяется. На фоне постоянно растущих цен стоимость вычислительной техники драматически падает благодаря значительным успехам как в разработке аппаратной части, так и в развитии программного обеспечения. В настоящее время в мире насчитывается приблизительно 150 миллионов компьютеров общего назначения, которые помогают людям в бизнесе, промышленности, политике и в повседневной жизни. Через несколько лет это число вполне может быть удвоено.

Данная программа была написана на языке программирования Си с использованием компилятора MicrosoftVisualStudio 2008.

Основные достоинства языка Си:

1.Лаконичность записи алгоритмов

2.Экономичность в расходовании памяти

3.Возможность низкоуровневого программирования

4.Логическая стройность написанных на нем программ

5.Переносимость программ между компьютерами с разной архитектурой и различными операционными средами.

Цель данной курсовой работы: помочь пользователю, в нашем случае бухгалтеру, упростить поиск студентов, заранее зная, какой он имеет средний балл, с какого факультета, специальности, группы и курса обучения.

Данная работа, выполняемая вручную, является довольно долгой и монотонной, также могут быть допущены ошибки в вычислениях.

С помощью компьютера данная работа была автоматизирована. Основные принципы автоматизации это надёжность, гибкость и безопасность. Надёжность обеспечивается за счёт решения задач в короткий срок. Это достигается при помощи надёжных технических средств, современных технологий разработки программного обеспечения.

Гибкость подразумевает лёгкую адаптацию системы ко всем изменениям требований к ней.

Безопасность работы подразумевает защиту данных от несанкционированного доступа, а также от различных потерь данных и т.п.

Данная программа легко справляется с поставленной задачей. Программа в автоматическом режиме подсчитывает суммы, дружественный интерфейс облегчает работу с программой. Таким образом в полуавтоматическом режиме можно ускорить выполнение данной работы, что весьма удобно. Также необходимым условием выполнения данной работы являлось разделение привелегий для различных пользователей. Так, к примеру, ко всему функционалу программы должен быть доступ только у одного пользователя, а у остальных - частичный доступ.

1. КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ ОБ ИСПОЛЬЗУЕМЫХ АЛГОРИТМАХ

Алгоритм - набор инструкций, описывающих порядок действий исполнителя для достижения результата решения задачи за конечное число действий. Алгоритм означает точное описание некоторого процесса, инструкцию по его выполнению. Разработка алгоритма является сложным и трудоемким процессом.

Особую роль выполняют прикладные алгоритмы, предназначенные для решения определённых прикладных задач.

Принцип программирования “сверху вниз” требует, чтобы блок-схема поэтапно конкретизировалась и каждый блок “расписывался” до элементарных операций. Но такой подход можно осуществить при решении несложных задач. При решении сколько-нибудь серьезной задачи блок-схема “расползется” до такой степени, что ее невозможно будет охватить одним взглядом.

Блок-схемы алгоритмов удобно использовать для объяснения работы уже готового алгоритма, при этом в качестве блоков берутся действительно блоки алгоритма, работа которых не требует пояснений. Блок-схема алгоритма должна служить для упрощения изображения алгоритма, а не для усложнения. В курсовой работе, в основном, используются линейные, разветвляющиеся и циклические алгоритмы.

Так же широко используется алгоритмы поиска. В алгоритмах поиска существует два возможных окончания работы: поиск может оказаться удачным - заданный элемент найден в массиве и определено его место расположения, либо поиск может оказаться неудачным - необходимого элемента в данном объеме информации нет.

Общая классификация алгоритмов поиска:

1) Все методы можно разделить на статические и динамические. При статическом поиске массив значений не меняется во время работы алгоритма. Во время динамического поиска массив может перестраиваться или изменять размерность.

2) Так же методы поиска можно разделить на методы, использующие истинные ключи и на методы, работающие по преобразованным ключам. В данном случае "ключом" называют то значение, которое мы ищем.

3) Ну и еще вариант классификации - методы, основанные на сравнении самих значений и методы, основанные на их цифровых свойствах. Так называемые методы хеширования.

Линейный поиск:

Линейный поиск это самый простой тип поиска, потому что при его выполнении просто просматривается множество элементов данных и эти элементы сравниваются с искомыми данными, пока не обнаружится совпадение. Линейный поиск прост в реализации.

Пример:

void search_faculty()

{

int i = 0,k=0;

system("cls");

if((fptr=fopen(file_FIO,"r"))==0)

printf("Откройте файл\n");

else

{

system("cls");

printf ("Введите название факультета:\n");

fflush(stdin);

gets(check.check_faculty);

if(!begin)

printf("В файле нет ни одной записи.\n(Для выхода нажмите любую клавишу)\n");

else

{

ptr = begin;

printf("№ %-15s%-20s%-20s%-15s%-15s%-15s%-15s\n","Факультет","Специальность","Группа","Курс","Фамилия","Средний балл","сумма bur");

while (ptr) {

i++;

if(!strcmp(ptr->str.faculty,check.check_faculty))

{

printf("%-5d%-17s%-15s%-20d%-15d%-20s%-13d%-13d\n", i, ptr->str.faculty, ptr->str.specialty, ptr->str.group, ptr->str.course, ptr->str.FIO, ptr->str.rating, ptr->str.price);

k++;

}

ptr = ptr->next;

}

if(k==0)

{

printf("Такого название факультетаа нет\n");

}

printf("(Для продолжения нажмите любую клавишу)\n");

}

}

getch();

}

2. ОПИСАНИЕ ОРГАНИЗАЦИИ СТРУКТУР ХРАНИМЫХ ДАННЫХ

Структура - тип данных, задаваемый пользователем. В общем случае при работе со структурами следует выделить четыре шага:

1. объявление и определение типа структуры,

2. объявление структурной переменной,

3. инициализация структурной переменной,

4. использование структурной переменной.

Структура, являющаяся компонентом другой структуры, называется вложенной.

Структуры хранимых данных выглядят так:

Рисунок 1 - Структуры хранимых данных

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

Так же курсовая работа написана через односвязные списки.

В односвязном списке каждый элемент информации содержит ссылку на следующий элемент списка. Каждый элемент данных обычно представляет собой структуру, которая состоит из информационных полей и указателя связи.

Существует два основных способа построения односвязного списка. Первый способ -- помещать новые элементы в конец списка. Второй -- вставлять элементы в определенные позиции списка, например, в порядке возрастания. От способа построения списка зависит алгоритм функции добавления элемента. Давайте начнем с более простого способа создания списка путем помещения элементов в конец.

Как правило, элементы связанного списка являются структурами, так как, помимо данных, они содержат ссылку на следующий элемент. Поэтому необходимо определить структуру, которая будет использоваться в последующих примерах.

3. СОЗДАНИЕ ПОЛЬЗОВАТЕЛЬСКИХ ФУНКЦИЙ ПРИЛОЖЕНИЯ

Функциядобавления информации в файл

Функция, реализованная для администратора, которая запрашивает ввод с клавиатуры данных, после чего записывает их в файл. Но для начала функция выполняет проверку на открытие файла, и если файл не открыт, то функция возвращает нас в меню второго уровня.

void add()

{

system("cls");

if ((fptr=fopen(file_FIO,"r"))==0)

printf("откройте файл!\n");

else

{

printf("введите название факультета\n");

fflush(stdin);

gets(ship.faculty);

system("cls");

printf("введите название специальности\n");

fflush(stdin);

gets(ship.specialty);

system("cls");

printf("введите номер группы\n");

scanf("%d", &ship.group);

system("cls");

printf("введите номер курса\n");

scanf("%d", &ship.course);

system("cls");

printf("введите Фио\n");

fflush(stdin);

gets(ship.FIO);

system("cls");

printf("введите средний балл\n");

scanf("%d", &ship.rating);

system("cls");

printf("введите сумму\n");

scanf("%d", &ship.price);

if (begin)

{

ptr = new list;

ptr->str = ship;

ptr->next = begin;

begin = ptr;

}

else {

begin = new list;

begin->str = ship;

begin->next = NULL;

}

system("cls");

printf("Запись успешно добавлена\n");

}

getch();

return;

}

Функция редактирования информации. Функция, которая редактирует информацию, путем линейного поиска. С помощью поиска находим нужную нам информацию, перед этим программа проверяет ее на существование, после чего программа вызывает меню, в котором при помощи оператора switch-case реализовано меню редактирования. Функция запрашивает ввод переменной select. Если select равен:

1. Мы редактируем название факультета.

2. Редактируем название специальности.

3. Редактируем номер группы.

4. Редактируем курс обучения.

5. Редактируем ФИО.

6. Редактируем средний балл.

7. Редактируем сумму стипендии.

После редактированиямы возвращаемся в функцию admin_menu ().

void edit()

{

system("cls");

if ((fptr=fopen(file_FIO,"r+"))==0)

printf("откройте файл!\n");

else

{

int number;

if(!begin)

printf("Файл пуст.\n");

else

{

printf("Введите номер, который вы хотите изменить:\n");

fflush(stdin);

scanf("%d",&number);

int i = 0;

ptr = begin;

while (ptr) {

i++;

if (i == number)

break;

ptr = ptr->next;

if(i == number)

system("cls");

printf("№ %-15s%-20s%-20s%-15s%-15s%-15s%-15s\n","Факультет","Специальность","Группа","Курс","Фамилия","Средний балл","сумма bur");

printf("%-5d%-17s%-15s%-20d%-15d%-20s%-13d%-13d\n", number, ptr->str.faculty, ptr->str.specialty, ptr->str.group, ptr->str.course, ptr->str.FIO, ptr->str.rating, ptr->str.price);

printf("Что вы хотите изменить?\n");

printf("1 - название факультета.\n");

printf("2 - название спаециальности.\n");

printf("3 - номер группы.\n");

printf("4 - номер курса.\n");

printf("5 - Фамилия.\n");

printf("6 - средний балл.\n");

printf("7 - сумму.\n");

printf("Esc - выход.\n");

int select;

do

{

select=getch();

} while((select<'1' || select>'7') && select!=27);

system("cls");

switch(select)

{

case '1':printf("Введите новое название факультета:\n");

fflush(stdin);

gets(ptr->str.faculty);

break;

case '2':printf("Введите новое название специальности:\n");

fflush(stdin);

gets(ptr->str.specialty);

break;

case '3':printf("Введите новый номер группы:\n");

scanf("%d",&ptr->str.group);

break;

case '4':printf("Введите новый номер курса:\n");

scanf("%d",&ptr->str.course);

break;

case '5':printf("Введите новую Фамилия:\n");

fflush(stdin);

gets(ptr->str.FIO);

break;

case '6':printf("Введите новый средний балл:\n");

scanf("%d",&ptr->str.rating);

break;

case '7':printf("Введите новую сумму:\n");

scanf("%d",&ptr->str.price);

break;

case 27:return;

}

printf("Запись успешно изменена.\n");

getch();

return;

}

printf("В файле нет записи с таким номером.\n");

}

}

getch();

return;

}

Функция удаления информации. Функция, которая может удалить запрашиваемую запись. С самого начала функция делает проверку на открытие файла. Потом ищет данные о запрашиваемой информации, выводит их на экран, затем удаляет данную информацию.

void remove()

{

system("cls");

if((fptr=fopen(file_FIO,"r"))==0)

printf("Откройте файл!\n");

else

{

while(1)

{

int number=0, i=0;

long end, cur;

printf("Введите номер записи, которую вы хотите удалить:\n");

fflush(stdin);

scanf("%d",&number);

ptr = begin;

while (ptr) {

i++;

if (i == number)

break;

ptr = ptr->next;

}

if(i == number)

{

printf("№ %-15s%-20s%-20s%-15s%-15s%-15s%-15s\n","Факультет","Специальность","Группа","Курс","Фамилия","Средний балл","сумма bur");

printf("%-5d%-17s%-15s%-20d%-15d%-20s%-13d%-13d\n", number, ptr->str.faculty, ptr->str.specialty, ptr->str.group, ptr->str.course, ptr->str.FIO, ptr->str.rating, ptr->str.price);

printf("Вы уверены что хотите удалить запись №%d?\n",number);

printf("Enter - да.\nEsc - нет.\n");

int select=0;

do

{

select=getch();

} while(select!=13 && select!=27);

if(select==27)

return;

if(select==13)

{

list * ptr2;

ptr2 = begin;

if (ptr == begin) {

begin = begin->next;

delete ptr;

}

else {

while (ptr2->next != ptr) {

ptr2 = ptr2->next;

}

ptr2->next = ptr->next;

delete ptr;

}

printf("\nЗапись успешно удалена.\n(Нажмите любую клавишу)\n");

getch();

return;

}

}

else

{

printf("\nВ файле нет записи с таким номером.\n");

getch();

return;

}

}

}

getch();

}

Функция поиска по двум полям,в данном случаи это поле «Специальность» и «Средний балл».

Функция изначальноделает проверку на открытие файла,если файл открыт,нас просят ввести название скомой специальности и среднего балла.

После чего,сравнивая введенные значения с имеющимися в файле,функция отбирает нужные данные,после того как отбор закончен,следует вывод запрашиваемой информации на экран в табличной форме.

программный код пользователь студент

void search_spesialty_and_rating()

{

int i = 0,k=0;

system("cls");

if((fptr=fopen(file_FIO,"r"))==0)

printf("Откройте файл\n");

else

{

system("cls");

printf ("Введите название специальности:\n");

fflush(stdin);

gets(check.check_specialty);

if(!begin)

printf("В файле нет ни одной записи.\n(Для выхода нажмите любую клавишу)\n");

else

{

system("cls");

printf ("Введите средний балл:\n");

scanf("%d",&check.check_rating);

ptr = begin;

system("cls");

printf("№ %-15s%-20s%-20s%-15s%-15s%-15s%-15s\n","Факультет","Специальность","Группа","Курс","Фамилия","Средний балл","сумма bur");

while (ptr)

{

i++;

if(!strcmp(ptr->str.specialty,check.check_specialty))

{

if(ptr->str.rating==check.check_rating)

{

printf("%-5d%-17s%-15s%-20d%-15d%-20s%-13d%-13d\n", i, ptr->str.faculty, ptr->str.specialty, ptr->str.group, ptr->str.course, ptr->str.FIO, ptr->str.rating, ptr->str.price);

k++;

}

}

ptr = ptr->next;

}

if(k==0)

{

printf("Введенных данных нет\n");

}

printf("(Для выхода нажмите любую клавишу)\n");

}

}

getch();

}

Функция поиска по одному полю,в данном случаи это поле «Факультет».

В начале деается проверка на открытие файла,если файл открыт,нас просят ввести название искомого факультета.

Полсе чего, простым линейным поиском ,описанным ранее,функция ищет введенные данные,сравнивает их с хранящимися в файле и выводит в табличной форме.

void search_faculty()

{

int i = 0,k=0;

system("cls");

if((fptr=fopen(file_FIO,"r"))==0)

printf("Откройте файл\n");

else

system("cls");

printf ("Введите название факультета:\n");

fflush(stdin);

gets(check.check_faculty);

if(!begin)

printf("В файле нет ни одной записи.\n(Для выхода нажмите любую клавишу)\n");

else

{

ptr = begin;

printf("№ %-15s%-20s%-20s%-15s%-15s%-15s%-15s\n","Факультет","Специальность","Группа","Курс","Фамилия","Средний балл","сумма bur");

while (ptr) {

i++;

if(!strcmp(ptr->str.faculty,check.check_faculty))

{

printf("%-5d%-17s%-15s%-20d%-15d%-20s%-13d%-13d\n", i, ptr->str.faculty, ptr->str.specialty, ptr->str.group, ptr->str.course, ptr->str.FIO, ptr->str.rating, ptr->str.price);

k++;

}

ptr = ptr->next;

}

if(k==0)

{

printf("Такого название факультетаа нет\n");

}

printf("(Для продолжения нажмите любую клавишу)\n");

}

}

getch();

Оставшиеся функции поиска,схожи с выше описанными.

Воизбежании засорения и загромождения пояснительной записки,я посчитал правильным не описывать их, повторяясь вновь и вновь.

4. СХЕМЫ АЛГОРИТМОВ РАБОТЫ ПРИЛОЖЕНИЯ

Функция main

Листинг программного кода:

int main()

{

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

int choice1, k;

do

{

k = 0;

system("cls");

printf("Выберите из перечисленного:\n");

printf("1.Администратор\n");

printf("2.Пользователь\n");

printf("Esc - выход.\n");

do

choice1=getch();

} while((choice1<'1' || choice1>'2') && choice1!=27);

switch (choice1)

case '1':administrator();

break;

case '2':user_menu1();

break;

case 27:return 0;

}

} while (1);

Блок-схема

Функция поиск по факультету

Листинг программного кода:

void search_faculty()

{

int i = 0,k=0;

system("cls");

if((fptr=fopen(file_FIO,"r"))==0)

printf("Откройте файл\n");

else

system("cls");

printf ("Введите название факультета:\n");

fflush(stdin);

gets(check.check_faculty);

if(!begin)

printf("В файле нет ни одной записи.\n(Для выхода нажмите любую клавишу)\n");

else

ptr = begin;

printf("№ %-15s%-20s%-20s%-15s%-15s%-15s%-15s\n","Факультет","Специальность","Группа","Курс","Фамилия","Средний балл","сумма bur");

while (ptr) {

i++;

if(!strcmp(ptr->str.faculty,check.check_faculty))

printf("%-5d%-17s%-15s%-20d%-15d%-20s%-13d%-13d\n", i, ptr->str.faculty, ptr->str.specialty, ptr->str.group, ptr->str.course, ptr->str.FIO, ptr->str.rating, ptr->str.price);

k++;

ptr = ptr->next;

if(k==0)

{

printf("Такого название факультетаа нет\n");

printf("(Для продолжения нажмите любую клавишу)\n");

}

}

getch();

}

Блок-схема

Функция поиска по специальности и среднему баллу

Листинг программного кода:

void search_spesialty_and_rating()

{

int i = 0,k=0;

system("cls");

if((fptr=fopen(file_FIO,"r"))==0)

printf("Откройте файл\n");

else

{

system("cls");

printf ("Введите название специальности:\n");

fflush(stdin);

gets(check.check_specialty);

if(!begin)

printf("В файле нет ни одной записи.\n(Для выхода нажмите любую клавишу)\n");

else

{

system("cls");

printf ("Введите средний балл:\n");

scanf("%d",&check.check_rating);

ptr = begin;

system("cls");

printf("№ %-15s%-20s%-20s%-15s%-15s%-15s%-15s\n","Факультет","Специальность","Группа","Курс","Фамилия","Средний балл","сумма bur");

while (ptr)

i++;

if(!strcmp(ptr->str.specialty,check.check_specialty))

{

if(ptr->str.rating==check.check_rating)

{

printf("%-5d%-17s%-15s%-20d%-15d%-20s%-13d%-13d\n", i, ptr->str.faculty, ptr->str.specialty, ptr->str.group, ptr->str.course, ptr->str.FIO, ptr->str.rating, ptr->str.price);

k++;

ptr = ptr->next;

if(k==0)

printf("Введенных данных нет\n");

}

printf("(Для выхода нажмите любую клавишу)\n");

getch();

}

5. ОПИСАНИЕ ПРОГРАММЫ

Данная программа начинается с главного меню или меню первого уровня.

Рисунок 2 - Главное меню

Рассмотрим подробнее возможности администратора.

Если пароль и логин администратора введен верно, то пользователю представляется меню второго уровня для администратора или меню всех возможных функций, которыми может пользоваться администратор.

Рисунок 3 - Меню администратора

Теперь рассмотрим работу каждой из функций отдельно.

1. Создание/открытие файла с данными.

Если мы нажмем `1', то перед нами появится меню, где нам предложат создать или открыть файл. Если мы попробуем открыть файл, который еще не создан, то увидим:

Рисунок 4 - Ошибка открытия файла.

При создании файла мы вводим его название, после чего мы увидим сообщение «Файл создан», при успешном открытии файла мы увидим: «Файл открыт» (Рисунок 13).

Если файл не открыть, то все далее описанные функции работать не будут, а будут выдавать ошибку.

После нажатия клавиши `Esc' мы опять окажемся в меню второго уровня для администратора.

2. Добавление записи.

Рисунок 5 - Добавление записи

3. Редактирование записи.

Перед тем как редактировать запись, нужно воспользоваться функцией «Просмотр всех данных в табличной форме» и запомнить номер редактируемой строки, который вы хотите отредактировать.

После того, как вы выбрали запись, возвращаетесь в меню второго уровня, нажимаете `3', после чего перед вами появляется окно, где вас просят ввести название игрушки, записи о которой вы хотите изменить. После чего вы увидете окно, представленное на Рисунке 6.

После введенного номера вбранной записи,перед нами разворачивается меню:

Рисунок 6 - Вывод еще не измененной записи

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

4. Удаление записи

Cсамого начала вас поросят ввести номер записи которую вы хотите удалить. После чего, программа проверяет на наличие записи , если данные существуют, то мы увидим:

Рисунок 7 - Удаление записи

Далее работ программы зависит от того, какой пункт меню мы выберем.

5. Просмотр всех данных в табличной форме.

Рисунок 8 - Данные в табличной форме

После нажатия `Esc' мы возвращаемся в меню 2-го уровня для администратор.

6. Различные процедуры поиска и фильтрации данных.

Рисунок 9 - Меню поиска и фильтраций

После выбора любого пункта меню мы увидим:

Рисунок 10

Дальше все аналогично.

После нажатия `esc' мы возвращаемся в меню (Рисунок 9)

А сейчас мы рассмотрим все возможности пользователя.

Вход под пользователем начинается с меню.

Рисунок 11 - Меню для входа пользователя.

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

Если логин и пароль введены правильно, то мы попадаем в меню пользователя.

Рисунок 12 - Меню пользователя

Рассмотрим каждую функцию отдельно.

1. Открытие файла с данными.

Данная функция отличается от функции администратора лишь тем, что не имеет возможности создавать файл.

Если файла, который мы хотим отрыть. Не существует, то мы увидим окно, представленное на Рисунке 4.

В обратном случае, мы увидим:

Рисунок 13 - Открытие файла.

2. Просмотр всех данных в табличной форме.

Функция аналогичная функции администратора. Поэтому ее работу можно посмотреть на Рисунке 8.

3. Выполнение задачи.

Функция, которая выполняет основную задачу курсовой работы.

Функция осуществляет поиск и вывод данных на экран(по ФИО).

Рисунок 14 -Выполнения задачи.

4. Различные процедуры поиска и фильтрации данных.

Процедуры поиска и фильтрации данных для пользователя неотличаются от процедур поиска и фильтрации для администратора.

Их работу можно посмотреть на рисунке 9-10.

В данном описании подробно рассмотрена работа программы, ее некоторые исключительные ошибки и информация, которую следует прочитать перед началом работы с программой.

ЗАКЛЮЧЕНИЕ

Подводя итог можно сделать вывод о результатах, достигнутых при написании курсовой работы.

Задача курсовой работы:

1. Разработать функциональную схему задачи, а также схемы двух модулей по указанию руководителя.

2. Создать программу (консольный режим), выполнив функциональное разбиение, реализующую следующие функции работы с бинарным/текстовым файлом. Предусмотреть создание меню 1-го уровня со следующими пунктами:

a. Вход под администратором

b. Вход под пользователем

c. Выход

Учетные записи администратора и обычного пользователя должна содержать логин и пароль. Сведения об учетных записях должны храниться в отдельном файле, желательно предусмотреть механизм шифрования/дешифрования логинов/паролей.

3. Меню 2-го уровня:

- Для администратора:

i) Создание/открытие файла с данными

j) Добавление записи

k) Редактирование записи

l) Удаление записи

m) Просмотр всех данных в табличной форме

n) Различные процедуры поиска и фильтрации данных

o) Управление пользователями

p) Выход в меню 1-го уровня

- Для обычного пользователя:

f) Открытие файла с данными

g) Просмотр всех данных в табличной форме

h) Выполнение задачи

i) Различные процедуры поиска и фильтрации данных

j) Выход в меню 1-го уровня

4. Данные должны быть организованы в структуре (struct), не менее 7-ми полей, обязательно предусмотреть использование вложенных структур.

5. Предусмотреть обработку исключительных ситуаций

6. Построение программного кода должно соответствовать правилам, определенным в документе «CodeConventions» для соответствующего языка (технологии).

7. Предусмотреть использование различных встроенных функций для работы со строками

Цель: помочь пользователю, в нашем случае бухгалтеру, упростить поиск студентов, заранее зная, какой он имеет средний балл,с какого факультета,специальности,группы и курса обучения.

При написании курсовой работы была изучена специальная литература, включающая книги по программированию, такие как «Язык программирования С» и «Как программировать на С++». Так же были использованы интернет - ресурсы: поисковик гугл и база гостов.

В курсовой работе были использованы структуры, различные алгоритмы поиска, фильтрации , списки, а так же показано умение работать с файлами.

В программе можно зарегистрировать неограниченное количество пользователей, однако регистрация администратора происходит лишь один раз при начальном запуске программы. Администратор имеет возможность редактировать свою учетную запись.

Логины и пароли администратора и пользователей хранятся в файлах в зашифрованном виде, причем для администратора и пользователя применено разное шифрование. Тематика курсовой работы актуальна в настоящее время, а так же будет пользоваться спросом и в будущем. Так как каждый год в университеты поступает большое количество людей, а следовательно остается потребность в начисление стипендии.

Так же важно заметить, что программа, при внедрении ее в работу предприятия, упростит и ускорит работу персонала.

Делая вывод, можно сказать, что цели и задачи, поставленные в данной курсовой работе, выполнены и достигнуты.

Но в будущем данную программу можно усовершенствовать и добавить что-то новое, например, добавить новые данные, которые так же будут учитываться при поиске нужных данных, а так же больше возможностей поиска и фильтрации данных.

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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

Дейтел Х. Как программировать на С++. / Х. Дейтел, П. Дейтел. - 1005 с.

Доманов А. Т. Стандарт предприятия. / А. Т. Доманов, Н. И. Сорока. - Минск БГУИР, 2011. - 169 с.

МакконнеллС. Совершенный код, 2-е издание. / С. Макконнелл. - Русская редакция, 2010. - 867 с.

Керниган Б. Язык программирования С. / Б. Керниган, Д. Ритчи. - Вильямс, 2013. - 304 с.

Мелещенко А. А. Основы программирования на языке С. / А. А. Мелещенко. - Минск, 2004. - 232 с.

Поисковик Google. Web: https://www.google.ru/

Единая база гостов. Web: http://gostexpert.ru/

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


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

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