Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Описание результатов испытаний программы






В ходе испытаний (тестирования и контрольных примеров исполнения) программы решения задачи «Получение сведений о результативности футболистов» использовались тестовые файлы, тексты содержимого которых приведены в приложении 2 (программа создания и печати тестовых файлов приведены в приложении 3), а также запросы для разных вариантов решения задачи:

1) Введите минимальное количество голов: 7

2) Введите минимальное количество голов: 4

3) Введите минимальное количество голов: 1

4) Введите минимальное количество голов: -1

5) Введите минимальное количество голов: 13

6) Введите минимальное количество голов: аа

После устранения ошибок в программе для указанных исходных данных (контрольных примеров) получены правильные результаты решения задачи (приложение 4), что свидетельствует о правильности разработанной программы.

 

Приложения

Приложение 1

Исходный текст программы решения задачи «Получение сведений о результативности футболистов»

Приложение 2

Тексты содержимого файлов

Приложение 3

Текст программ создания и печати тестовых файлов

Приложение 4

Контрольные примеры исполнения программы


 

Приложение 1. Исходный текст программы.

Основная программа

Program Resultat_futbolistov;

uses u1, u2, u3, u4, u5, u6, u7, crt;

Var

q: st;

I, t, l: integer;

s: arr1;

tab: arr;

f, p: Boolean;

a: kol_gol;

b: name;

c: komands;

Begin

clrscr;

textcolor(15);

Writeln (‘Добро пожаловать в базу данных результативности футболистов’);

Writeln (‘У вас есть 5 попыток, чтобы ввести запрос’);

input (q, i, f);

if f=true then begin

calculation (a, s, l);

Search (i, l, s, tab, t, p); end;

if p=true then begin

NameSearch (b, t, tab);

KomSearch (c, t, tab);

Sort (tab, t);

Output (tab, t); end;

readln;

 

End.

 

 

Модуль «U1»

Unit u1;

interface

uses u7, crt;

Procedure input (quanp: st; var intquanp: integer; var f: boolean);

Implementation

Procedure input;

Var

f1, f2; boolean;

I, attempt, err: integer;

Begin

attempt: =attempt+1;

textcolor(15);

Write (‘Введите минимальное количество голов: ’);

textcolor(3);

readln (quanp);

textcolor (15);

f1: =fasle;

f2: =false;

While (quanp> ’’) and (pos(‘ ‘, quanp)> 0) do

delete (quanp, (pos(‘ ‘, quanp)), 1);

if quanp=” then Begin

textcolor(12);

Writeln (‘Вы ничего не ввели. Попробуйте ввести запрос снова.’);

textcolor(15);

end else

Begin

i: =1;

if quanp[i]=’-‘ then Begin

f1: =true; i: =i+1; end;

While i< =length(quanp) do Begin

if (quanp[i]< ’0’) or (quanp[i]> ’9’) then

f2: =true;

i: =i+1;

end;

if (f1=true) and (f2=false) then Begin

textcolor(12);

Writeln (‘Значение не может быть отрицательным. Попробуйте ввести его снова.’);

textcolor(15); end else

if (f2=true) or ((f2=true) and (f1=true)) then Begin

textcolor(12);

Writeln (‘Запрос должен состоять только из цифр. Попробуйте ввести его снова);

textcolor(15);

end else f: =true;

end; end;

if f=true then

Val(quanp, intquanp, err)

else Begin

textcolor(7);

Writeln (‘Вы пытаетесь ввести некорректный запрос. Попытки закончились.’);

Writeln (‘Для того, чтобы попробовать снова, перезапустите программу.’);

end; end;

end.

 

Модуль «U2»

Unit u2;

interface

uses u7, crt;

Procedure Calculation (x: kol_gol; var y: arr1; var c: integer);

Procedure Search(intquanp, c: integer; y: arr1; var z_tablica: arr; var u: integer; var p: boolean);

implementation

Procedure Calculation;

var

goli: file of kol_gol;

Begin

assign(goli, adr_gol);

reset(goli);

read(goli, x);

c: =1;

y[c].allkol: =x.kol;

y[c].numk: =x.numk;

y[c].numf: =x.numf;

While not Eof(goli) do

Begin

read(goli, x);

y[c].allkol: =y[c].allkol+x.kol;

if not (y[c].numk=x.numk) or not (y[c].numf=x.numf) then

Begin

c: =c+1;

y[c].numk: =x.numk;

y[c].numf: =x.numf;

y[c].allkol: =y[c].allkol+x.kol;

y[c-1].allkol: =y[c-1].allkol-x.kol;

end;

end;

close(goli);

end;

Procedure Search;

Var

i, j: integer;

Begin

P: =true;

u: =0;

i: =1;

j: =0;

while i< =c do Begin

if y[i].allkol> =intquanp then Begin

u: =u+1;

z_tablica[u].allkol: =y[i].allkol;

z_tablica[u].numf: =y[i].numf;

z_tablica[u].numk: =y[i].numk;

end else

j: =j+1;

i: =i+1;

end;

if j=c then Begin

p: =false;

textcolor(12);

Writeln(‘К сожалению, в списке нет футболистов, забивших столько голов’);

textcolor(7);

Wtireln(‘Для того, чтобы попробовать снова, перезапустите программу.’);

end; end;

end.

 

Модуль «U3»

Unit U3;

interface

uses u7;

procedure NameSearch (x: name; u; integer; var z_tablica: arr);

implementation

procedure NameSearch;

var

imena: file of name;

i: integer;

f1: boolean;

Begin

assign (imena, adr_name);

reset (imena);

while not Eof(imena) do begin

read(imena, x);

i: =0;

f1: =false;

while (f1=false) and (i< u) do Begin

i: =i+1;

if (z_tablica[i].numk=x.numk) and (z_tablica[i].numf=x.numf) then Begin

f1: =true;

z_tablica[i].namef: =x.namef; end;

end;

end;

close(imena);

end.

 

Модуль «U4»

Unit u4;

interface

uses u7;

Procedure KomSearch (x: komands; u: integer; var z_tablica: arr);

implementation

procedure KomSearch;

var

komandi: file of komads;

i: integer;

Begin

assign (komandi, adr_komands);

reset(komandi);

while not Eof(komandi) do begin

read(komandi, x);

i: =0;

while i< u do Begin

i: =i+1;

if z_tablica[i].numk=x.numk then Begin

z_tablica[i].namekom: =x.namekom; end;

end;

end;

close(komandi);

end;

end.

 

 

Модуль «U5»

Unit U5;

interface

uses u7;

Procedure Sort (var z_tablica: arr; u: integer);

implementation

Procedure Sort;

var

c: tablica;

i, j: integer;

Begin

for i: =1 to u do

for j: =i+1 to u do

if z_tablica[i].allkol< z_tablica[j].allkol then Begin

c: =z_tablica[j];

z_tablica[j]: =z_tablica[i];

z_tablica[i]: =c;

end;

end;

end.

 

Модуль «U6»

Unit U6;

interface

uses crt, u7;

procedure output(z_tablica: arr; u: integer);

implementation

procedure output;

var

i: integer;

Begin

writeln;

writeln;

textcolor(14);

writeln (‘Сведения о результативности футболистов’);

writeln;

writeln(‘╔ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ╦ ═ ═ ═ ═ ═ ═ ═ ═ ╦ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ╗ ’);

writeln(‘║ Фамилия и инициалы║ Команда ║ Количество забитых голов ║ ’);

writeln(‘╠ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ╬ ═ ═ ═ ═ ═ ═ ═ ═ ╬ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ╣ ’);

for i: =1 to u do Begin

writeln(‘║ ’, z_tablica[i].namef: 18, ’║ ’, z_tablica[i].namekom: 16, ’║ ’, z_tablica[i].allkol, ’║ ’);

end;

writeln(‘╚ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ╩ ═ ═ ═ ═ ═ ═ ═ ═ ╩ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ╝ ’);

writeln;

end;

end.

 

Модуль «U7»

Unit u7;

interface

const n=26;

adr_gol=’F: \dosbox1\kursa4\kolgol.dat’;

adr_name=’F: \dosbox1\kursa4\spisokfu.dat’;

adr_komands=’F: \dosbox1\kursa4\spisokko.dat’;

Type

kol_gol=record

dat: string[10];

numf: integer;

numk: integer;

kol: integer;

end;

obsh_kol=record

numk: integer;

numf: integer;

allkol: integer;

end;

Name=record

Namef: string[30];

numk: integer;

numf: integer;

end;

Komands=record

namekom: string[30];

numk: integer;

end;

Tablica=record

namef: string[30];

namekom: string[30];

allkol: integer;

numf: integer;

numk: integer;

end;

st=string;

arr1=array[1..n] of obsh_kol;

arr=array[1..n] of tablica;

implementation

end.

 


 

Приложение 2. Тексты содержимого файлов

 

Тестовый файл «Сведения о голах»

 

Дата Код футболиста Количество забитых голов
Номер команды Номер футболиста
22.12.2012      
15.12.2012      
29.12.2012      
07.01.2013      
02.02.2012      
15.02.2013      
31.03.2013      
27.02.2013      
15.01.2013      
30.02.2013      
21.01.2013      
01.02.2013      
24.09.2012      
01.10.2012      
27.08.2012      
05.04.2013      
29.03.2013      
21.03.2013      
27.01.2013      
21.01.2013      
31.01.2013      
14.05.2012      
07.05.2012      
01.06.2012      
31.03.2012      
07.04.2012      
18.04.2012      

 

 

Тестовый файл «Список футболистов»

 

Фамилия и инициалы футболиста Код футболиста
Номер команды Номер футболиста
Тючин П.С.    
Харьков А.Н.    
Патренко М.В.    
Малкин Л.П.    
Прандеев О.Д.    
Хваленко Я.Ю.    
Федотов Р.Г.    
Иванов Е.И.    
Воевода Т.Н.    

 

 

Тестовый файл «Список команд»

 

Название команды Номер команды
Спартак М.  
Свобода  
Стрела  
Торпедо  

 

Приложение 3. Тексты программ создания и печати файлов

Создание тестового файла «Сведения о голах»:

 

Program create;

uses crt;

type

kol_gol=record

dat: string[10];

numf: integer;

numk: integer;

kol: integer;

end;

var

goli: file of kol_gol;

x: kol_gol;

k: integer;

Begin

clrscr;

k: =0;

assign(goli, ’F: \dosbox1\kursa4\kolgol.dat’);

rewrite(goli);

while not (readkey=’*’) do

with x do Begin

k: =k+1;

writeln(k);

write(‘дата: ’); readln(dat);

writeln(‘Введите код футболиста’);

write(‘Номер команды: ’); readln(numk);

write(‘Номер футболиста: ’); readln(numf);

writeln(‘Введите количество забитых футболистом голов: ’)readln(kol);

write(goli, x);

end;

close(imena);

end.

 

 

Создание тестового файла «Список футболистов»:

 

Program create;

uses crt;

type

name=record

namef: string[30];

numf: integer;

numk: integer;

end;

var

imena: file of name;

x: name;

k: integer;

Begin

clrscr;

k: =0;

assign(imena, ’F: \dosbox1\kursa4\spisokfu.dat’);

rewrite(imena);

while not (readkey=’*’) do

with x do Begin

k: =k+1;

writeln(k);

writeln(‘Введите код футболиста’);

write(‘Номер команды: ’); readln(numk);

write(‘Номер футболиста: ’); readln(numf);

writeln(‘Фамилия и инициалы: ’)readln(namef);

write(imena, x);

end;

close(imena);

end.

 

 

Создание тестового файла «Список команд»:

 

Program create;

uses crt;

type

komands=record

namekom: string[30];

numk: integer;

end;

var

komandi: file of komands;

x: komands;

k: integer;

Begin

clrscr;

k: =0;

assign(komandi, ’F: \dosbox1\kursa4\spisokko.dat’);

rewrite(komandi);

while not (readkey=’*’) do

with x do Begin

k: =k+1;

writeln(k);

write(‘Номер команды: ’); readln(numk);

writeln(‘Название команды: ’)readln(namekom);

write(komandi, x);

end;

close(komandi);

end.

 

Приложение 4. Контрольные примеры исполнения программы

Пример 1.

Запрос:

Введите минимальное количество голов: 7;

Результат:

 

Пример 2.

Запрос:

Введите минимальное количество голов: 4;

Результат:

 

Пример 3.

Запрос:

Введите минимальное количество голов: 1;

Результат:

 

Пример 4.

Запрос:

Введите минимальное количество голов: -1;

Результат:

 

Пример 5.

Запрос:

Введите минимальное количество голов: 13;

Результат:

 

Пример 6.

Запрос:

Введите минимальное количество голов: аа;

Результат:

 

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.