Автор: Пользователь скрыл имя, 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
Ожидаемый результат: сообщение "Не найдено наименование предмета соответствующее номеру 65".
Фактический результат: совпадает с ожидаемым.
Результат
тестирования: неуспешный.
Тест 2
Цель теста: проверить функционирование программы при присутствии в файле F1 ФИО преподавателей соответствующих всем табельным номерам из файла F2.
Содержание
теста: 10.txt
№ предмета | Наименование предмета |
12 | Физика |
72 | Программирование |
30 | Электроника |
19 | История |
Содержание
теста: 20.txt
№ группы | Фамилия, имя, отчество | № предмета | Оценка |
224 | Гаскаров Рамиль Вильевич | 12 | 4 |
224 | Иванова Алла Сергеевна | 12 | 3 |
224 | Лысков Дмитрий Иванович | 12 | 4 |
224 | Гаскаров Рамиль Вильевич | 30 | 5 |
224 | Иванова Алла Сергеевна | 30 | 4 |
224 | Лысков Дмитрий Иванович | 30 | 4 |
230 | Вахитов Айнур Бакеевич | 72 | 5 |
230 | Ильясова Альбина Вильевна | 72 | 4 |
230 | Вахитов Айнур Бакеевич | 12 | 5 |
230 | Ильясова Альбина Вильевна | 12 | 3 |
Ожидаемый результат: Программа успешно выполнена.
Фактический результат: совпадает с ожидаемым.
Результат
тестирования: неуспешный.
Данная
программа была протестирована для
всех представленных в таблице решений
входных условий. Тесты не обнаружили
ошибок в работе программы. Следовательно,
программа отвечает заявленным внешним
спецификациям.
1. Технологии
программирования [Электронный ресурс]
/ коллектив авторов под рук.
Гвоздева В.Е. ; отдел образовательных
технологий УГАТУ. - Электрон. текстовые
и граф. дан. (3,9 Мб). - Уфа : УГАТУ, 2007
2. Савич
У. С++ во всей полноте. - Киев: Издательская
группа BHV; СПб.: Питер, 2005. - 784 с.
#pragma hdrstop
#include <stdlib.h>
#include <ctype.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>
void Proverka1();
void Proverka2();
void MakeFile();
int KolPol(char* str);
bool Chislo(char snum[]);
bool Correct(char str[], char sym[]);
struct st1
{
int num;
char name[30];
st1 *next;
} *beg1,*end1;
struct st2
{
int numgr;
int numpr;
char fio[50];
char ball;
st2 *next;
st2 *prev;
} *beg2,*end2;
#pragma argsused
void main()
{
clrscr();
Proverka1();
Proverka2();
MakeFile();
getch();
}
void Proverka1()
{
char fname[20];
FILE *F1;
printf("Введите имя первого файла: ");
scanf("%s",&fname);
while((F1=fopen(fname,"
{
printf("\tОшибка! Файл
с именем %s не найден\n\t\tДля повторного
ввода нажмите любую клавишу\n\
if(getch()==27)
exit(0);
else
{
printf("
scanf("%s",&
}
}
bool error=false;
char str[1000];
st1 *p1,*p2;
beg1=NULL;
while(fgets(str,1000,F1)
{
if(KolPol(str)!=2)
{
printf("\
error=true;
}
else
{
char snum[10];
char name[30];
sscanf(str,"
if(!Correct(
{
printf
error=
}
if(!Chislo(
{
printf
error=
}
else
{
p1 = (st1*) malloc(sizeof(st1));
sscanf
p1->
if(
else
end1=
end1->
}
}
}
p1=beg1;
while(p1!=NULL)
{
p2=p1->next;
while(p2!=NULL)
{
if(p1->num==
{
printf
error=
}
if(strcmp(
{
printf
error=
}
p2=p2->next;
}
p1=p1->next;
}
if(error)
printf("\
}
void Proverka2()
{
char fname[20];
FILE *F2;
printf("\nВведите имя второго файла: ");
scanf("%s",&fname);
while((F2=fopen(fname,"
{
printf("\tОшибка! Файл
с именем %s не найден\n\t\tДля повторного
ввода нажмите любую клавишу\n\
if(getch()==27)
exit(0);
else
{
printf("\
scanf("%s",&
}
}
bool error=false;
char str[1000];
st2 *p1,*p2;
beg2=NULL;
while(fgets(str,1000,F2)
{
if(KolPol(str)!=4)
{
printf("\
error=true;
}
else
{
bool zcor=true;
char snumgr[10];
char snumpr[10];
char fio[50];
char sball[10];
sscanf(str,"
if(!Chislo(
{
printf
zcor=
}
if(!Correct(
{
printf
error=