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

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    643,97 Кб
  • Опубликовано:
    2016-09-30
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

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

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

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

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

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








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

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

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

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





МИНСК 2015

СОДЕРЖАНИЕ

Задание

Введение

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

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

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

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

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

Заключение

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

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

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

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

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

c.       Выход

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

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

-        Для администратора:) Создание/открытие файла с данными)   Добавление записи)         Редактирование записи)       Удаление записи)         Просмотр всех данных в табличной форме)       Различные процедуры поиска и фильтрации данных)         Управление пользователями)        Выход в меню 1-го уровня

         Для обычного пользователя:)        Открытие файла с данными)          Просмотр всех данных в табличной форме) Выполнение задачи)    Различные процедуры поиска и фильтрации данных)   Выход в меню 1-го уровня

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

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

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

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

ВВЕДЕНИЕ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Алгоритм - набор инструкций <#"897689.files/image001.gif">

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

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

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

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

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

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

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

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

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

void add()

{("cls");((fptr=fopen(file_FIO,"r"))==0)("откройте файл!\n");

{("введите название факультета\n");(stdin);(ship.faculty);("cls");("введите название специальности\n");(stdin);(ship.specialty);("cls");("введите номер группы\n");("%d", &ship.group);("cls");("введите номер курса\n");("%d", &ship.course);("cls");("введите Фио\n");(stdin);(ship.FIO);("cls");("введите средний балл\n");("%d", &ship.rating);("cls");("введите сумму\n");("%d", &ship.price);(begin)

{= new list;>str = ship;>next = begin;= ptr;

}{= new list;>str = ship;>next = NULL;

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

}();;

}

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

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

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

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

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

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

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

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

void edit()

{("cls");((fptr=fopen(file_FIO,"r+"))==0)("откройте файл!\n");

{number;(!begin)("Файл пуст.\n");

{("Введите номер, который вы хотите изменить:\n");(stdin);("%d",&number);i = 0;= begin;(ptr) {++;(i == number);= ptr->next;(i == number)("cls");("№ %-15s%-20s%-20s%-15s%-15s%-15s%-15s\n","Факультет","Специальность","Группа","Курс","Фамилия","Средний балл","сумма bur");("%-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);("Что вы хотите изменить?\n");("1 - название факультета.\n");("2 - название спаециальности.\n");("3 - номер группы.\n");("4 - номер курса.\n");("5 - Фамилия.\n");("6 - средний балл.\n");("7 - сумму.\n");("Esc - выход.\n");select;

{=getch();

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

{'1':printf("Введите новое название факультета:\n");(stdin);(ptr->str.faculty);;'2':printf("Введите новое название специальности:\n");(stdin);(ptr->str.specialty);;'3':printf("Введите новый номер группы:\n");("%d",&ptr->str.group);;'4':printf("Введите новый номер курса:\n");("%d",&ptr->str.course);;'5':printf("Введите новую Фамилия:\n");(stdin);(ptr->str.FIO);;'6':printf("Введите новый средний балл:\n");("%d",&ptr->str.rating);;'7':printf("Введите новую сумму:\n");("%d",&ptr->str.price);;27:return;

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

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

}

}();;

}

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

void remove()

{("cls");((fptr=fopen(file_FIO,"r"))==0)("Откройте файл!\n");

{(1)

{number=0, i=0;end, cur;("Введите номер записи, которую вы хотите удалить:\n");(stdin);("%d",&number);= begin;(ptr) {++;(i == number);= ptr->next;

}(i == number)

{("№ %-15s%-20s%-20s%-15s%-15s%-15s%-15s\n","Факультет","Специальность","Группа","Курс","Фамилия","Средний балл","сумма bur");("%-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);("Вы уверены что хотите удалить запись №%d?\n",number);("Enter - да.\nEsc - нет.\n");select=0;

{=getch();

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

{* ptr2;= begin;(ptr == begin) {= begin->next;ptr;

}{(ptr2->next != ptr) {= ptr2->next;

}->next = ptr->next;ptr;

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

}

}

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

}

}

}();

}

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

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

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

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

void search_spesialty_and_rating()

{i = 0,k=0;("cls");((fptr=fopen(file_FIO,"r"))==0)("Откройте файл\n");

{("cls");("Введите название специальности:\n");(stdin);(check.check_specialty);(!begin)("В файле нет ни одной записи.\n(Для выхода нажмите любую клавишу)\n");

{("cls");("Введите средний балл:\n");("%d",&check.check_rating);= begin;("cls");("№ %-15s%-20s%-20s%-15s%-15s%-15s%-15s\n","Факультет","Специальность","Группа","Курс","Фамилия","Средний балл","сумма bur");(ptr)

{++;(!strcmp(ptr->str.specialty,check.check_specialty))

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

{("%-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);++;

}

}= ptr->next;

}(k==0)

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

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

}

}();

}

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

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

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

search_faculty()

{i = 0,k=0;("cls");((fptr=fopen(file_FIO,"r"))==0)("Откройте файл\n");("cls");("Введите название факультета:\n");(stdin);(check.check_faculty);(!begin)("В файле нет ни одной записи.\n(Для выхода нажмите любую клавишу)\n");

{= begin;("№ %-15s%-20s%-20s%-15s%-15s%-15s%-15s\n","Факультет","Специальность","Группа","Курс","Фамилия","Средний балл","сумма bur");(ptr) {++;(!strcmp(ptr->str.faculty,check.check_faculty))

{("%-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);++;

}= ptr->next;

}(k==0)

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

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

}

}();

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

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


Функция main

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

main()

{(1251);(1251);choice1, k;

{= 0;("cls");("Выберите из перечисленного:\n");("1.Администратор\n");("2.Пользователь\n");("Esc - выход.\n");=getch();

} while((choice1<'1' || choice1>'2') && choice1!=27);(choice1)'1':administrator();;'2':user_menu1();;27:return 0;

}

} while (1);

Блок-схема

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

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

void search_faculty()

{i = 0,k=0;("cls");((fptr=fopen(file_FIO,"r"))==0)("Откройте файл\n");("cls");("Введите название факультета:\n");(stdin);(check.check_faculty);(!begin)("В файле нет ни одной записи.\n(Для выхода нажмите любую клавишу)\n");= begin;("№ %-15s%-20s%-20s%-15s%-15s%-15s%-15s\n","Факультет","Специальность","Группа","Курс","Фамилия","Средний балл","сумма bur");(ptr) {++;(!strcmp(ptr->str.faculty,check.check_faculty))("%-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);++;= ptr->next;(k==0)

{("Такого название факультетаа нет\n");("(Для продолжения нажмите любую клавишу)\n");

}

}();

}

Блок-схема

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

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

search_spesialty_and_rating()

{i = 0,k=0;("cls");((fptr=fopen(file_FIO,"r"))==0)("Откройте файл\n");

{("cls");("Введите название специальности:\n");(stdin);(check.check_specialty);(!begin)("В файле нет ни одной записи.\n(Для выхода нажмите любую клавишу)\n");

{("cls");("Введите средний балл:\n");("%d",&check.check_rating);= begin;("cls");("№ %-15s%-20s%-20s%-15s%-15s%-15s%-15s\n","Факультет","Специальность","Группа","Курс","Фамилия","Средний балл","сумма bur");(ptr) ++;(!strcmp(ptr->str.specialty,check.check_specialty))

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

{("%-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);++;= ptr->next;(k==0)("Введенных данных нет\n");

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

}

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

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

 

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

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

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

 

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

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

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

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

 

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

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

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

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

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




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

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

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

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


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

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

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

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

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

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

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


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

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

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

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

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



Рисунок 10

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

ЗАКЛЮЧЕНИЕ

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

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

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

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

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

c.       Выход

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

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

-        Для администратора:) Создание/открытие файла с данными)   Добавление записи)       Редактирование записи)       Удаление записи)         Просмотр всех данных в табличной форме)       Различные процедуры поиска и фильтрации данных)         Управление пользователями)        Выход в меню 1-го уровня

         Для обычного пользователя:)        Открытие файла с данными)          Просмотр всех данных в табличной форме)  Выполнение задачи)    Различные процедуры поиска и фильтрации данных)   Выход в меню 1-го уровня

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

МакконнеллС. Совершенный код, 2-е издание. <http://vk.com/doc-66398064_271119421?dl=8c67d82fbaa299c571> / С. Макконнелл. - Русская редакция, 2010. - 867 с.

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

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

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

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

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!