курсовая. Курсовая Бойков И.Р.. Руководство программисту 12 Руководство оператору 13 Выводы по работе 14 Список литературы 15
Скачать 85.1 Kb.
|
Оглавление1 Разработка и анализ технического задания 3 2 Разработка программы 5 Листинг программы 9 Руководство программисту 12 Руководство оператору 13 Выводы по работе 14 Список литературы 15 1 Разработка и анализ технического заданияВведение Каждый год, число абитуриентов растет. Становится все сложнее вести учет абитуриентов и проводить отбор для поступления. Программа позволит пользователю вести учет списка абитуриентов, а также просматривать его с различным типом упорядочивания. Основания для разработки Учебный план изучения дисциплины «Технология разработки программных продуктов». Назначение Основным назначением программы является помощь приёмной комиссии в ведении списка абитуриентов. Требование к программе Требования к функциональным характеристикам; В программе должны присутствовать средства навигации, для удобства работы с нею. Программа должна иметь интуитивно понятный интерфейс. Требования к надежности; а) Программа должна исключать ошибки вода некоренных данных пользователем; б) Программа продолжит функционировать, при отсутствии исходного файла с данными; Требования к составу и параметрам технических средств; IBM-совместимый персональный компьютер с подключенными стандартной клавиатурой, манипулятором «мышь» и монитором с рекомендуем разрешением экрана от 1366 х 780. Минимальные системные требования: а) Процессор: 1 ГГц или выше; б) Свободное место на жестком диске:50 Мб. Требования к информационной и программной совместимости; Программа работает под управлением операционных систем Windows XP и выше. Требования к программной документации Должны быть разработаны следующие эксплуатационные документы: а) Инструкция для пользователя; б) Справка о программе; 2 Разработка программыДля удобства разработки и дальнейшего сопровождения программы был выбран модульный подход программирования. Благодаря этому программа разбита на несколько подпрограмм: char * InputStr() – функция ввода строки с пробелами. int InputInt(const char * str, int a, int b) – функция ввода целого числа с проверкой корректности ввода и допустимости диапазона. Student InputStudent() – ввод данных о студенте. void PrintStudent(Student b) – вывод данных о студенте. void Save(vector vector void PrintList(vector Таблица идентификаторов Ниже приведены таблицы идентификаторов разработанных функций. Таблица 1 – Описание идентификаторов функции InputStr
Таблица 2 – Описание идентификаторов функции InputStudent
Таблица 3 – Описание идентификаторов функции PrintStudent
Таблица 4 – Описание идентификаторов функции InputInt
Таблица 5 – Описание идентификаторов функции Save
Таблица 6 – Описание идентификаторов функции Open
Таблица 5 – Описание идентификаторов функции main
Алгоритм решения задачи Ниже приведены блок-схемы основных функций. Рисунок 1 – Блок-схемы функции main Рисунок 2 – Блок-схемы функции Open Рисунок 3 – Блок-схемы функции Save Листинг программы#include #include #include #include #include using namespace std; //объявление структуры - объекта struct Enrollee { char FIO[255]; //фамилия int Year; //Год рождения int Math; //Математика int Phys; //Физика int Russ; //Русский }; //функиця ввода строки char * InputStr() { char * str = (char *)malloc(sizeof(char) * 512); fgets(str, 512, stdin); str[strlen(str) - 1] = '\0'; return str; } //ввод числа с проверкой диапазона int InputInt(const char * str, int a, int b) { while (1) { cout << str; char * num = InputStr(); int n = atoi(num); int size = strlen(num); if (n == 0 && (size != 1 || size == 1 && num[0] != '0')) printf("Ошибка ввода числа!\n"); else if (nb) printf("Число из недопустимого диапазона!\n"); else return n; } } //функция ввода данных о студенте Enrollee InputStudent() { Enrollee b; cout << "Введите данные о абитуриенте: " << endl; cout << "Ф.И.О..............: "; strcpy(b.FIO, InputStr()); b.Year = InputInt("Год рождения.......: ", 1950, 2015); b.Math = InputInt("Математика.........: ", 0, 100); b.Russ = InputInt("Русский язык.......: ", 0, 100); b.Phys = InputInt("Физика.............: ", 0, 100); return b; } //функция вывода данных о студенте void PrintStudent(Enrollee b) { cout << "----------------------" << endl; cout << "Ф.И.О..............: " << b.FIO << endl; cout << "Год рождения.......: " << b.Year << endl; cout << "Русский язык.......: " << b.Russ << endl; cout << "Математика.........: " << b.Math << endl; cout << "Физика.............: " << b.Phys << endl; cout << "----------------------" << endl; } //Сохранение списка void Save(vector { FILE * tf = fopen(path, "a+b"); for(int i=0; i fwrite(&list[i], sizeof(list[i]), 1, tf); fclose(tf); } //чтение списка vector { vector FILE *tf = fopen(path, "rb"); if (tf) { Enrollee sp; fread(&sp, sizeof(sp), 1, tf); while (!feof(tf)) { list.push_back(sp); fread(&sp, sizeof(sp), 1, tf); } fclose(tf); } return list; } //пердикат для сортировки по ФИО struct predFIO { bool operator()(const Enrollee& s1, const Enrollee& s2) { return s1.FIO > s2.FIO; } }; //пердикат для сортировки по году рождения struct predYear { bool operator()(const Enrollee& s1, const Enrollee& s2) { return s1.Year > s2.Year; } }; //пердикат для сортировки по среднему баллу struct predBall { bool operator()(const Enrollee& s1, const Enrollee& s2) { return s1.Math + s1.Russ + s1.Phys > s2.Math + s2.Russ + s2.Phys; } }; void PrintList(vector { for (int i = 0; i < list.size(); i++) PrintStudent(list[i]); } int main(void) { //включаем русский язык SetConsoleOutputCP(1251); SetConsoleCP(1251); const char *path = "db.bin"; vector int a; do { cout << "1 - Добавить запись" << endl; cout << "2 - Печать списка (Сортировка по ФИО)" << endl; cout << "3 - Печать списка (Сортировка по среднему баллу)" << endl; cout << "4 - Печать списка (Сортировка по году рождения)" << endl; cout << "0 - Выход" << endl; a = InputInt("> ", 0, 4); switch (a) { case 1: list.push_back(InputStudent()); break; case 2: sort(list.begin(), list.end(), predFIO()); PrintList(list); break; case 3: sort(list.begin(), list.end(), predBall()); PrintList(list); break; case 4: sort(list.begin(), list.end(), predYear()); PrintList(list); break; } system("pause"); system("cls"); } while (a!= 0); Save(list, path); return 0; } Руководство программистуНазначение и условия применения программ Основным назначением программы является помощь приёмной комиссии в ведении списка абитуриентов. Характеристика программы Программа не имеет пользовательского интерфейса и не предоставляет конечному пользователю возможности настройки и изменения своих параметров. Минимальные системные требования для ее использования: а) Процессор: 1 ГГц или выше; б) Свободное место на жестком диске:50 Мб. Программа работает под управлением операционных систем Windows XP и выше. Обращение к программе Запуск программы осуществляется двойным кликом по файлу программы. Входные и выходные данные Данные о абитуриенте: фамилии, имени и отчества, года рождения, оценок за вступительные экзамены. Сообщения Программа отображает поля подсказки для удобства ввода данных и просмотра списка абитуриентов. Пример, меню для взаимодействия: "1 - Добавить запись" "2 - Печать списка (Сортировка по ФИО)" "3 - Печать списка (Сортировка по среднему баллу)" "4 - Печать списка (Сортировка по году рождения)" "0 - Выход" Руководство операторуНазначение программы Основным назначением программы является помощь приёмной комиссии в ведении списка абитуриентов. Условия выполнения программы Программа не имеет пользовательского интерфейса и не предоставляет конечному пользователю возможности настройки и изменения своих параметров. Минимальные системные требования для ее использования: а) Процессор: 1 ГГц или выше; б) Свободное место на жестком диске:50 Мб. Программа работает под управлением операционных систем Windows XP и выше. Выполнение программы Запуск программы осуществляется двойным кликом по файлу программы. Сообщения оператору Программа отображает поля подсказки для удобства ввода данных и просмотра списка абитуриентов. Пример, меню для взаимодействия: "1 - Добавить запись" "2 - Печать списка (Сортировка по ФИО)" "3 - Печать списка (Сортировка по среднему баллу)" "4 - Печать списка (Сортировка по году рождения)" "0 - Выход" Выводы по работеВыполнив данную работу, была создана и протестирована программа, основным назначением которой является помощь приёмной комиссии в ведении списка абитуриентов. По результат тестирования ошибок не обнаружено, следовательно, программа готова к работе. Список литературыБоровский, А. C++ и Pascal в Kylix 3. Разработка интернет-приложений и СУБД / А. Боровский. - М.: БХВ-Петербург, 2015. - 544 c. Панюкова, Т. А. Языки и методы программирования. Создание простых GUI-приложений с помощью Visual С++. Учебное пособие / Т.А. Панюкова, А.В. Панюков. - Москва: Мир, 2015. - 144 c. Пахомов, Б. C/C++ и MS Visual C++ 2010 для начинающих / Б. Пахомов. - М.: БХВ-Петербург, 2011. - 736 c. Полубенцева, М. C/C++. Процедурное программирование / М. Полубенцева. - М.: БХВ-Петербург, 2014. - 448 c. Секунов, Н. Программирование на C++ в Linux / Н. Секунов. - М.: БХВ-Петербург, 2016. - 425 c. Сидорина, Татьяна Самоучитель Microsoft Visual Studio C++ и MFC / Татьяна Сидорина. - М.: "БХВ-Петербург", 2014. - 848 c. |