Файл: Руководство программисту 12 Руководство оператору 13 Выводы по работе 14 Список литературы 15.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 27.03.2024

Просмотров: 26

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.



Оглавление





1 Разработка и анализ технического задания 3

2 Разработка программы 5

Листинг программы 9

Руководство программисту 12

Руководство оператору 13

Выводы по работе 14

Список литературы 15



1 Разработка и анализ технического задания



Введение

Каждый год, число абитуриентов растет. Становится все сложнее вести учет абитуриентов и проводить отбор для поступления.

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

Учебный план изучения дисциплины «Технология разработки программных продуктов».
Назначение

Основным назначением программы является помощь приёмной комиссии в ведении списка абитуриентов.
Требование к программе

  1. Требования к функциональным характеристикам;

В программе должны присутствовать средства навигации, для удобства работы с нею.

Программа должна иметь интуитивно понятный интерфейс.

  1. Требования к надежности;

а) Программа должна исключать ошибки вода некоренных данных пользователем;

б) Программа продолжит функционировать, при отсутствии исходного файла с данными;

  1. Требования к составу и параметрам технических средств;

IBM-совместимый персональный компьютер с подключенными стандартной клавиатурой, манипулятором «мышь» и монитором с рекомендуем разрешением экрана от 1366 х 780.

Минимальные системные требования:

а) Процессор: 1 ГГц или выше;

б) Свободное место на жестком диске:50 Мб.

  1. Требования к информационной и программной совместимости;

Программа работает под управлением операционных систем Windows XP и выше.
Требования к программной документации

Должны быть разработаны следующие эксплуатационные документы:

а) Инструкция для пользователя;

б) Справка о программе;

2 Разработка программы



Для удобства разработки и дальнейшего сопровождения программы был выбран модульный подход программирования. Благодаря этому программа разбита на несколько подпрограмм:

  • char * InputStr() – функция ввода строки с пробелами.

  • int InputInt(const char * str, int a, int b) – функция ввода целого числа с проверкой корректности ввода и допустимости диапазона.

  • Student InputStudent() – ввод данных о студенте.

  • void PrintStudent(Student b) – вывод данных о студенте.

  • void Save(vector list, const char * path) – сохранение списка в файл.

  • vector Open(const char * path) – Чтение списка из файла.

  • void PrintList(vector list) – печать списка.

Таблица идентификаторов

Ниже приведены таблицы идентификаторов разработанных функций.
Таблица 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 list, const char * path)

{

FILE * tf = fopen(path, "a+b");

for(int i=0; i
fwrite(&list[i], sizeof(list[i]), 1, tf);

fclose(tf);

}
//чтение списка

vector Open(const char * path)

{

vector list;

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 list)

{

for (int i = 0; i < list.size(); i++)

PrintStudent(list[i]);

}
int main(void)

{

//включаем русский язык

SetConsoleOutputCP(1251);

SetConsoleCP(1251);

const char *path = "db.bin";

vector list = Open(path);

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 - Выход"

Выводы по работе



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

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

Список литературы





  1. Боровский, А. C++ и Pascal в Kylix 3. Разработка интернет-приложений и СУБД / А. Боровский. - М.: БХВ-Петербург, 2015. - 544 c.

  2. Панюкова, Т. А. Языки и методы программирования. Создание простых GUI-приложений с помощью Visual С++. Учебное пособие / Т.А. Панюкова, А.В. Панюков. - Москва: Мир, 2015. - 144 c.

  3. Пахомов, Б. C/C++ и MS Visual C++ 2010 для начинающих / Б. Пахомов. - М.: БХВ-Петербург, 2011. - 736 c.

  4. Полубенцева, М. C/C++. Процедурное программирование / М. Полубенцева. - М.: БХВ-Петербург, 2014. - 448 c.

  5. Секунов, Н. Программирование на C++ в Linux / Н. Секунов. - М.: БХВ-Петербург, 2016. - 425 c.

  6. Сидорина, Татьяна Самоучитель Microsoft Visual Studio C++ и MFC / Татьяна Сидорина. - М.: "БХВ-Петербург", 2014. - 848 c.