В разделе спецификация приводится точное название программы и ее состав. Форма спецификации приведена в приложении А. Графы спецификации заполняют следующим образом:
- в графе “Обозначение” указывают обозначение основных программных компонентов;
- в графе “Наименование” - полное наименование соответствующего компонента;
- в графе “Примечание” – дополнительные сведения, относящиеся к записанным в специи-фикации программам.
Пример
Исполняемый файл программы “Игра “Лабиринт” имеет название Labirint.exe и расположен на компакт-диске (дискете) в каталоге Kursov\Labirint. Состав проекта.
Приводится полный листинг программы.
Пример листинга:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, Menus, ExtCtrls;
type
TForm1 = class(TForm)
Image1: TImage;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Panel1: TPanel;
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Label3: TLabel;
BitBtn3: TBitBtn;
Label4: TLabel;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
BitBtn6: TBitBtn;
BitBtn7: TBitBtn;
BitBtn8: TBitBtn;
Panel2: TPanel;
Memo1: TMemo;
ListBox1: TListBox;
Button1: TButton;
N4: TMenuItem;
N5: TMenuItem;
Label5: TLabel;
procedure BitBtn1Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var Form1: TForm1;
//Перечисляемый тип для определения направления движения
Type Trend = (nord, ost, zued, west);
// Структура элемента списка
Uk = ^Room;
Room = Record Num: Integer;
Door: Array [Trend] Of Uk;
Next: Uk;
End;
// Структура компонента файла помощи
THelp = Record v: String[100];
otv: Array [1..4] Of String[100];
End;
TNameFile = String[20];
Var Spi, pp, Iroom: Uk;
r: Trend; ff: File Of THelp;
// Spi – указатель на начало списка; pp, Iroom –рабочие указатели;
// r – для определения направления движения;
// ff – файловая переменная для обращения к файлу помощи.
implementation
Uses Unit2, Unit3;
{$R *.DFM}
Function Nroom(Spi: Uk; n: Integer): Uk;
// В списке помещений находим указатель на n - oe
Var q: Uk;
Begin
q:= Spi;
While (q<>nil) and (q^.num<>n) Do q:= q^.next;
Nroom:= q;
End;
procedure TForm1.BitBtn1Click(Sender: TObject);
// Построение связанного списка помещений
Var FileName: TNameFile; f: TextFile;
p: Uk; i, nr: Integer;
begin
FileName:= InputBox(‘План помещений’,’Введите имя файла ‘,’’);
AssignFile(f, FileName);
Reset(f);
//Считываем только номера помещений и составляем связанный список
Spi:= nil;
While not Eof(f) Do
Begin
New(p);
Readln(f, i);
p^.Num:= i;
For r:= nord To west Do p^.Door [r]:= nil;
p^.next:= Spi;
Spi:= p;
End;
//Еще раз считываем из файла, но уже с дверьми
Reset (f);
While not Eof(f) Do
Begin
Read(f, i);
p:= Nroom(Spi, i);
For r:= nord To west Do
Begin Read(f, nr);
If nr = 0 Then p^.Door[r]:= nil
Else p^.Door[r]:= Nroom(Spi, nr);
End;
End;
// Подготовка формы для ввода номера начала помещения
label1.Caption:= ‘Введите № комнаты, с которой хотите начать движение’;
Edit1.Visible:= True;
label1.Visible:= True;
Button1.Visible:= True;
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
// Защита от недопустимых символов (вводятся только цифры)
begin
If not (key in [‘1’..’9']) Then Key:= #27;
end;
procedure TForm1.BitBtn3Click(Sender: TObject);
// Перемещение. BitBtn3 – север; BitBtn4 – запад;
//BitBtn5 – восток; BitBtn6 – юг.
Var aa: String[8]; c: Integer; pp: Uk;
//aa – имя кнопки; c – номер кнопки;
//pp – указатель текущего помещения.
begin
pp:= Iroom;
aa:= (sender as TBitBtn).Name;
c:= StrToInt(Copy(aa,7,1));
Case c of
3: r:= nord;
5: r:= ost;
6: r:= zued;
4: r:= west;
End;
Iroom:= Iroom^.Door[r];
If Iroom = nil Then
Begin ShowMessage(‘Это невозможно!’);Iroom:= pp; End
Else Label3.Caption:= IntToStr(Iroom^.Num);
Label4.Caption:= IntToStr(Iroom^.Num);
If Iroom^.Num = 999 Then
Begin ShowMessage(‘Свобода!!!’);
Panel1.hide; label1.Hide; Button1.Hide;
Exit End;
end;
procedure TForm1.BitBtn7Click(Sender: TObject);
// Вывод содержимого справки в компоненты панели Panel2
Var i: Integer; a: THelp;
Begin
Panel1.Visible:= False;
Panel2.Visible:= True;
Label5.Caption:= IntToStr(Iroom^.Num);
// Устанавливаем указатель текущего компонента файла
Reset(ff); Seek(ff, Iroom^.Num - 1);
Read(ff, a); Memo1.Lines.Add(a.v);
For i:= 1 To 4 Do ListBox1.items[i]:= a.otv[i];
end;
procedure TForm1.ListBox1Click(Sender: TObject);
//Определение направления путем выбора верного ответа в списке
Var r1: Trend;
begin
pp:= Iroom;
Panel2.Visible:= False;
Panel1.Visible:= True;
for r1:= nord To west Do
If ListBox1.ItemIndex = ord(r1) + 1 Then r:= r1;
Iroom:= Iroom^.Door[r];
If Iroom = nil Then
Begin ShowMessage(‘Это невозможно!’);Iroom:= pp; End
Else Label3.Caption:= IntToStr(Iroom^.Num);
Label4.Caption:= IntToStr(Iroom^.Num);
If Iroom^.Num = 999 Then
Begin Writeln(‘Свобода!!!’);
Panel1.hide; label1.Hide; Button1.Hide;
Exit End;
end;
procedure TForm1.Button1Click(Sender: TObject);
// Ввод номера начала помещения
Var nr: Integer; FileName: TNameFile;
// nr – номер помещения для начала движения
// File Name – имя файла помощи
begin
If Edit1.Text = ‘’ Then Exit;
nr:= StrToInt(Edit1.Text);
Iroom:= Nroom(Spi, nr);
If Iroom = nil Then
Begin
ShowMessage(‘Такого помещения нет!’);
Edit1.Text:= ‘’; Label1.Caption:= ‘’;
Exit;
End;
panel1.Visible:= True;
Label3.Caption:= IntToStr(Iroom^.Num);
Label4.Caption:= IntToStr(Iroom^.Num);
FileName:= InputBox(‘Имя файла помощи’, ‘Введите имя файла помощи’,’’);
AssignFile(ff, FileName);
Edit1.Hide; Label1.Hide; Button1.Hide;
end;
procedure TForm1.N4Click(Sender: TObject);
// Переход к форме №2, осуществляющей запись плана помещений на диск.
Begin
Form1.Hide; Form2.Show;
End;
procedure TForm1.N3Click(Sender: TObject);
//Закрыть приложение
begin
Form1.Close; Form2.Close; Form2.Close;
Application.Terminate;
end;
procedure TForm1.N5Click(Sender: TObject);
//Переход к форме №3, осуществляющей запись на диск файла помощи.
begin
Form1.Hide; Form3.Show;
end;
end.
Далее приводятся листинги остальных модулей.
Раздел “Описание программы” согласно ГОСТ 19.402–78* должен содержать следующие подразделы:
· общие сведения;
· функциональное назначение;
· описание логической структуры;
· используемые технические средства;
· вызов и загрузка;
· входные данные;
· выходные данные.
Отдельные разделы можно объединять. Некоторые пункты этого раздела повторяют разделы технического проекта. Такие повторения предусмотрены ГОСТом, так как на этапе рабочего проекта возникают некоторые дополнения или изменения в составе технических средств или программе. Здесь приводятся более конкретные и точные данные.
В подразделе “Общие сведения” должны быть указаны: обозначение и наименование программы; программное обеспечение, необходимое для функционирования программы; языки программирования, на которых написана программа.
В подразделе “Функциональное назначение” должны быть указаны классы решаемых задач и (или) назначение программы и сведения о функциональных ограничениях на применение.
В подразделе “Описание логической структуры” должны быть указаны используемые методы; структура программы с описанием функций составных частей и связи между ними; связи программы с другими программами. Описание логической структуры программы выполняют с учетом текста программы на исходном языке.
В подразделе “Используемые технические средства” должны быть указаны типы ЭВМ и устройств, которые используются при работе программы.
В подразделе “Вызов и загрузка” должны быть указаны способ вызова программы с соответствующего носителя данных, входные точки в программу.
В подразделе “Входные данные” должны быть указаны: характер, организация и предварительная подготовка входных данных, формат, описание и способ кодировки входных данных.
В подразделе “Выходные данные” должны быть указаны: характер, организация и предварительная подготовка выходных данных, формат, описание и способ кодировки выходных данных.
Перечисляются требования, подлежащие проверке при испытании программы, а также порядок и методика их контроля. Приводятся исходные данные для решения контрольного примера и ожидаемые результаты.
Прилагается распечатка решения контрольного примера и снимки экрана с результатами тестирования.
В разделе описываются (руководство оператора ГОСТ 19.505–79):
· условия выполнения программы;
· выполнение программы;
· сообщения оператору.
В разделе “Условия выполнения программы” должны быть указаны условия, необходимые для выполнения программы (минимальный и/или максимальный состав аппаратурных и программных средств и т.п.).
В разделе “Выполнение программы” должна быть указана последовательность действий оператора, обеспечивающих загрузку, запуск, выполнение и завершение программы. В разделе приводятся сведения для проверки, обеспечения функционирования и настройки программы на условия конкретного применения. Перечисляется порядок и последовательность ввода исходных данных и получения результатов расчета.
В разделе “Сообщения оператору” должны быть приведены тексты сообщений, выдаваемых в ходе выполнения программы, описание их содержания и соответствующие действия оператора.
Содержание разделов допускается иллюстрировать поясняющими примерами, таблицами, схемами.
В разделе перечисляется литература, использованная при выполнении курсовой работы.
В тексте пояснительной записки должны быть приведены ссылки на используемые литературные источники.
Источники нумеруются для того, чтобы на них можно было ссылаться из текста пояснительной записки.
Например:
1. Александр и Наполеон [Электронный ресурс] : История двух императоров / Музей-панорама «Бородинская битва», Интерсофт. — Электрон. дан. — М. : Интерсофт, сор. 1997. — 1 электрон. опт. диск (CD-ROM) : зв., цв.12 см. — Систем. требования: ПК с процессором 486 DX2-66 ; 8 Мб ОЗУ ; Microsof Windows 3.1 или Windows 95 ; 2-скоростной дисковод CD-ROM ; видеокарта SVGA 256 цв. ; зв. карта 16 бит стандарта МРС ; стереоколонки или наушники. — Загл. с этикетки диска.