Файл: Руководство программисту 12 Руководство оператору 13 Выводы по работе 14 Список литературы 15.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 27.03.2024
Просмотров: 26
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Оглавление
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(vectorlist, const char * path) – сохранение списка в файл.
vectorOpen(const char * path) – Чтение списка из файла.
void PrintList(vectorlist) – печать списка.
Таблица идентификаторов
Ниже приведены таблицы идентификаторов разработанных функций.
Таблица 1 – Описание идентификаторов функции InputStr
Наименование | Тип | Назначение |
str | char * | Вводимая строка |
Таблица 2 – Описание идентификаторов функции InputStudent
Наименование | Тип | Назначение |
b | Student | Вводимые данные о абитуриенте |
Таблица 3 – Описание идентификаторов функции PrintStudent
Наименование | Тип | Назначение |
b | Student | Выводимые данные о студенте |
Таблица 4 – Описание идентификаторов функции InputInt
Наименование | Тип | Назначение |
str | char * | Выводимая строка |
a | int | Левая граница интервала |
b | int | Правая граница интервала |
num | char * | Вводимое строковое значение пользователем |
size | int | Длина вводимого значения |
n | int | Числовое представление значения |
Таблица 5 – Описание идентификаторов функции Save
Наименование | Тип | Назначение |
tf | FILE | Файловый поток для сохранения |
path | char * | Путь к файлу, для сохранения списка |
list | vector | Список абитуриентов |
Таблица 6 – Описание идентификаторов функции Open
Наименование | Тип | Назначение |
tf | FILE | Файловый поток для чтения |
path | char * | Путь к файлу, для чтения списка |
list | vector | Список абитуриентов |
sp | Enrollee | Читаемый из файла абитуриент |
Таблица 5 – Описание идентификаторов функции main
Наименование | Тип | Назначение |
a | int | Поле для выбора пункта меню |
list | vector | Список абитуриентов |
Алгоритм решения задачи
Ниже приведены блок-схемы основных функций.
Рисунок 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.