Автор: Пользователь скрыл имя, 17 Ноября 2010 в 19:32, курсовая работа
Задание к работе
Разработать программу совместной обработки файлов типа F1 и F2 для формирования выходного документа типа F3.
1. Задание к работе 3
2. Ограничения на входные и выходные данные 4
2.1 Ограничения, накладываемые на входные данные, считываемые из первого файла: 4
2.2 Ограничения, накладываемые на входные данные, считываемые из второго файла: 4
2.3 Другие ограничения: 4
3. Структура целей разрабатываемой программы 4
4. Таблицы решений 5
4.1 ТР для функции “Проверка на корректность файла F1” 5
4.2 ТР для функции “Проверка на корректность файла F2” 6
4.3 ТР для функции “Формирование выходного файла” 6
5. Схема работы системы 7
5.1 Схема основной функции 7
5.2 Схема функции “Проверка на корректность файла F1” 8
5.3 Схема функции “Проверка на корректность файла F2” 12
5.4 Схема функции “Формирование выходного файла” 15
6. Тестирование программы 17
6.1 Тестирование функции “Проверка на корректность файла F1” 17
6.2 Тестирование функции “Проверка на корректность файла F2” 19
6.3 Тестирование функции “Формирование выходного файла” 22
7. Выводы 23
8. Список используемой литературы 24
Приложение А. Текст программы 25
Приложение Б. Результаты работы программы 31
Содержание:
Разработать
программу совместной обработки
файлов типа F1 и F2 для формирования
выходного документа типа F3.
ИСХОДНЫЕ ДАННЫЕ И ОСОБЕННОСТИ АЛГОРИТМА
Текстовые
файлы на МД, структура записей
которых приведена ниже:
Таблица 1 - Структура файла F1
№ предмета | Наименование предмета |
Таблица 2 - Структура файла F2
№ группы | Фамилия, имя, отчество | № предмета | Оценка |
Результат
обработки в виде выходного документа,
представленного в таблице F3:
Таблица 3 - Структура файла F3
№ группы | Наименование предмета | ФИО студента | Оценка |
Выходной
документ представляет собой ведомость
успеваемости студентов в академических
группах по предметам. Рекомендуется
сгруппировать подряд все записи, относящиеся
к одной академической группе, а в каждой
группе – по конкретному предмету. Для
демонстрации работы программы необходимо
иметь не менее 2-ух групп и не менее 2-ух
предметов в каждой группе. Рекомендуется
имена файлов типа F1 и F2 запрашивать с
клавиатуры дисплея.
а) Номер предмета должен быть числом, большим нуля.
б) Наименование предмета должно состоять из допустимых символов (а-я, А-Я,_,-).
в) Номера предметов не должны повторяться.
г) Наименования предметов не должны повторяться.
д) В каждой записи должно быть два поля.
а) Номер группы должен быть числом, большим нуля.
б) ФИО студента должно состоять из допустимых символов (а-я, А-Я,_).
в) Номер предмета должен быть числом, большим нуля.
г) Оценка должна быть допустимым символом (2,3,4,5).
д) Для одной группы ФИО студента и номер предмета не должны повторяться.
е) Одинаковым ФИО студентов должны соответствовать одинаковые № групп.
ж) В каждой записи должно быть четыре поля.
а) Производится проверка правильности открытия файлов F1 и F2, если файлы не существуют, то по выбору пользователя производится либо повторный ввод, либо выход из программы.
б) Номеру предмета
из файла F2 должно соответствовать наименование
предмета из файла F1.
Составлению внешних спецификаций разрабатываемого ПО предшествует анализ целей будущего продукта, который в методиках разработки ПО называется структурным анализом и методической базой которого является нисходящая стратегия.
Структурным анализом принято называть такое исследование системы, которое начинается с ее общего обзора и затем детализируется, приобретая иерархическую структуру со все большим числом уровней. Для таких методов характерно разбиение на уровни абстракции с ограничением числа элементов на каждом из уровней (обычно от 3 до 6-7). В технологии программирования эта идея была сформулирована как один из принципов структурного программирования: разработку программ рекомендуется вести сверху вниз или, иначе, по нисходящей стратегии.
Суть нисходящей стратегии в том, что цели разрабатываемого ПП структурируются по схеме: цели - подцели 1-го уровня - ... - подцели i-го уровня - ... - подцели n-уровня - функции до такой степени детализации, когда реализация подцелей последнего уровня (функций) становится очевидной.
Методика построения ТР заключается в следующем:
а) определить все условия и действия в спецификации;
б) вписать действия и условия в таблицу;
в) в нумерованных столбцах отметить все возможные комбинации условий и выполняемых при выполнении условий действий;
г) при необходимости редуцировать таблицу (если есть 2 столбца, у которых перечень действий совпадает и которые отличаются только результатами условий ‘Д’ и ‘Н’ в одной строке, то такие столбцы могут быть слиты в один).
Условия | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
Удалось открыть файл? | Н | Н | Д | Д | Д | Д | Д | Д | Д | Д |
Нажата клавиша Esc? | Н | Д | - | - | - | - | - | - | - | - |
Достигнут конец файла? | - | - | Н | Н | Н | Н | Д | Д | Д | Д |
В записи два поля? | - | - | Н | Д | Д | Д | - | - | - | - |
Номер предмета - число большее нуля? | - | - | - | Н | - | Д | - | - | - | - |
Наименование предмета состоит из допустимых символов? | - | - | - | - | Н | - | - | - | - | - |
Проверены все записи? | - | - | - | - | - | - | Н | Н | Д | Д |
Номера предметов равны | - | - | - | - | - | - | Д | - | - | - |
Наименования предметов равны? | - | - | - | - | - | - | - | Д | - | - |
Флаг присутствия ошибок равен true? | - | - | - | - | - | - | - | - | Н | Д |
Действия | ||||||||||
Вывод сообщения: “ Файл с именем <имя файла> не найден. Для повторного ввода нажмите любую клавишу. Для выхода нажмите Esc” | 1 | 1 | ||||||||
Вывод сообщения “В записи <запись> не хватает либо присутствуют лишние поля. Запись не будет учитываться при формировании выходного файла” | 1 | |||||||||
Вывод сообщения “Номер предмета <номер> не является числом большим нуля. Запись не будет учитываться при формировании выходного файла” | 1 | |||||||||
Вывод сообщения “Наименование предмета <наименование> содержит недопустимые символы” | 1 | |||||||||
Вывод сообщения “В записях присутствуют одинаковые номера предметов <номер>” | 1 | |||||||||
Вывод сообщения “В записях присутствуют одинаковые наименования предметов <наименование>” | 1 | |||||||||
Установить флаг присутствия ошибок true | 2 | 2 | 2 | 2 | 2 | |||||
Добавить данные в список | 1 | |||||||||
Продолжить обработку | 2 | 3 | 3 | 3 | 2 | 3 | 3 | |||
Вывод сообщения “В связи с наличием ошибок возможна не корректность выходного файла” | 1 | |||||||||
Завершить обработку | 1 | 2 | ||||||||
Завершить программу | 2 |
Условия | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
Удалось открыть файл? | Н | Н | Д | Д | Д | Д | Д | Д | Д | Д | Д | Д |
Нажата клавиша Esc? | Н | Д | - | - | - | - | - | - | - | - | - | - |
Достигнут конец файла? | - | - | Н | Н | Н | Н | Н | Н | Д | Д | Д | Д |
В записи четыре поля? | - | - | Н | Д | Д | Д | Д | Д | - | - | - | - |
Номер группы - число большее нуля? | - | - | - | Н | - | - | - | Д | - | - | - | - |
ФИО студента состоит из допустимых символов? | - | - | - | - | Н | - | - | - | - | - | - | - |
Номер предмета – число большее нуля? | - | - | - | - | - | Н | - | Д | - | - | - | - |
Оценка – допустимый символ? | - | - | - | - | - | - | Н | - | - | - | - | - |
Проверены все комбинации записей? | - | - | - | - | - | - | - | - | Н | Н | Д | Д |
Номера групп равны? | - | - | - | - | - | - | - | - | Н | Д | - | - |
ФИО студентов равны? | - | - | - | - | - | - | - | - | Д | Д | - | - |
Номера предметов равны? | - | - | - | - | - | - | - | - | - | Д | - | - |
Флаг присутствия ошибок равен true? | - | - | - | - | - | - | - | - | - | - | Н | Д |
Действия | ||||||||||||
Вывод сообщения: “ Файл с именем <имя файла> не найден. Для повторного ввода нажмите любую клавишу. Для выхода нажмите Esc” | 1 | 1 | ||||||||||
Вывод сообщения “В записи <запись> не хватает либо присутствуют лишние поля. Запись не будет учитываться при формировании выходного файла” | 1 | |||||||||||
Вывод сообщения “Номер группы <номер> не является числом большим нуля. Запись не будет учитываться при формировании выходного файла” | 1 | |||||||||||
Вывод сообщения “ФИО студента <ФИО> содержит недопустимые символы” | 1 | |||||||||||
Вывод сообщения “Номер предмета <номер> не является числом большим нуля. Запись не будет учитываться при формировании выходного файла” | 1 | |||||||||||
Вывод сообщения “Оценка <оценка> является недопустимым символом” | 1 | |||||||||||
Вывод сообщения “Одинаковым ФИО студентов <ФИО> соответствуют разные номера групп” | 1 | |||||||||||
Вывод сообщения “Для группы <номер> повторяются ФИО студента <ФИО> и номер предмета <номер>” | 1 | |||||||||||
Установить флаг присутствия ошибок true | 2 | 2 | 2 | 2 | 2 | 2 | 2 | |||||
Добавить данные в список | 1 | |||||||||||
Продолжить обработку | 2 | 3 | 3 | 3 | 3 | 3 | 2 | 3 | 3 | |||
Вывод сообщения “В связи с наличием ошибок возможна не корректность выходного файла” | 1 | |||||||||||
Завершить обработку | 1 | 2 | ||||||||||
Завершить программу | 2 |
Условия | 1 | 2 | 3 | 3 | 4 |
Достигнут конец списка 2? | Н | Н | Н | Н | Д |
Закончена обработка данной группы? | Н | Н | Н | Д | - |
Закончена обработка данного предмета? | Н | Н | Д | - | - |
В списке 1 найдено наименование предмета соответствующее данному номеру? | Н | Д | Д | Д | - |
Действия | |||||
Вывести в выходной файл ФИО студента и оценку | 1 | ||||
Вывести сообщение "Не найдено наименование предмета соответствующее номеру <номер>" | 1 | ||||
Вывести в выходной файл номер группы | 1 | ||||
Вывести в выходной файл наименование предмета | 1 | ||||
Продолжить обработку | 2 | 2 | 2 | 2 | |
Завершить обработку | 1 |