function InputByRows:string;
begin { InputByRows }
repeat
GetEvent(Ev);
if Ev.Command in [cmLeft,cmRight] then
begin
case Ev.Command of
cmLeft: if Cor<>Intel then Cor:=Pred(Cor) else Cor:=Cyrix;
cmRight:if Cor<>Cyrix then Cor:=Succ(Cor) else Cor:=Intel;
end; {case}
GotoXY(X,Y); ClrEol; Write(CorpName[Cor]);
end;
until Ev.Command in [cmEnter,cmExit];
InputByRows:=CorpName[Cor];
end; { InputByRows }
- ввод данных в виде строки с клавиатуры - функция InputString, реализующая простейшие функции редактирования;
Листинг 10
{ Функция ввода строки с клавиатуры }
function InputString:string;
var S:string; X,Y,i,j:byte;
begin InputString
{Начальные значения вводимой строки и местоположения курсора}
S:=''; X:=WhereX; Y:=WhereY; i:=1; repeat
GetEvent(Ev); { Получить событие от клавиатуры }
with Ev do
begin
case Command of { Выбор действий по командам }
cmEmpty: begin {Нет команды, тогда ввод символа }
Insert(Key,S,i); GotoXY(X,Y); write(S); inc(i); end;
cmBackSpace: begin { Удалить символ перед курсором }
Delete(S,i-1,1); GotoXY(X,Y); ClrEol; GotoXY(X,Y); write(S); if i>1 then dec(i); end;
cmDelete: begin { Удалить символ после курсора }
Delete(S,i,1); GotoXY(X,Y); ClrEol; GotoXY(X,Y); write(S); end;
cmLeft: if i>1 then dec(i); { Курсор влево }
cmRight: if i<length(S)+1 then inc(i); { Курсор вправо }
end; {case}
end; {with}
GotoXY(X+i-1,Y);
until (Ev.Command=cmExit)or(Ev.Command=cmEnter);
if Ev.Command=cmEnter { если команда cmEnter }
then InputString:=S { Тогда принять ввод строки }
else InputString:=''; { Иначе отказ от введенных данных }
end; { InputString }
- процедура ClearSpecialLines - убирает с экрана всю дополнительную информацию.
Листинг 11
{ Процедура очистки специальных строк на экране монитора }
procedure ClearSpecialLines;
begin
GoToSpecialLine(1); ClrEol; GoToSpecialLine(2); ClrEol;
end;
С учетом изложенного основная часть процедуры ввода данных с клавиатуры примет вид:
Листинг 12
begin {KeyBoardInput }
InitKeyBoardInput; { Инициализация ввода с клавиатуры }
if C=2 { Если во втором столбце - выбор вариантов }
then Si:=InputByRows { Ввод поля выбором вариантов }
else Si:=InputString; {Ввод строкой с клавиатуры} ClearSpecialLines;
if Ev.Command=cmEnter
then KeyBoardInput:=Si { Принять ввод строки }
else KeyBoardInput:=''; {Отказ от введенных данных }
end; { KeyBoardInput }
Завершающим этапом в проекте программы будет процедура Done, которая сохраняет введенные на экране изменения в файл и очищает экран. Процедура Done считывает данные непосредственно с экрана монитора. Такой вариант не совсем соответствует первоначальному плану, так как сохранение должно бы проводиться из одномерного массива записей. Данная реализация дана только в качестве примера работы с экранной областью памяти.
Листинг 13
{ Завершение работы }
procedure Done(InitY,Ny:byte);
Const ScreenWidth=80; {Ширина экрана }
ScreenLength=25; {Длина экрана }
var i,j:byte; F:Text; S:string;
{ Массив, расположенный в экранной области памяти }
s1:array[0..ScreenWidth*2*ScreenLength] of char absolute $B800:0;
begin {Done }
OpenTextFile('Table.txt',F,WriteFile);
for i:=0 to InitY+Ny do { Для всех строк экранной памяти }
begin
{ Переписать из строки экранной памяти в строку S }
S[0]:=#160; Move(s1[ScreenWidth*2*i],s[1],ScreenWidth*2);
{ Удалить из строки S атрибуты (цвет и т.п.) символа на экране,
то есть каждый второй байт }
j:=1;
while (j+1)<=length(S) do begin Delete(s,j+1,1); inc(j); end;
{ Вывести строку в файл }
WriteLn(F,S);
end;
Close(F);
end; { Done }
5. ОФОРМЛЕНИЕ ПОЯСНИТЕЛЬНОЙ ЗАПИСКИ
Пояснительная записка к курсовой работе должна содержать:
- титульный лист;
- задание на курсовое проектирование;
- аннотацию;
- *техническое задание;
- описание (спецификации) модулей программы;
- *описание программы;
- *текст программы;
- *программа и методика испытаний;
- (если это необходимо).
В некоторых документах часть содержания дублируется (например, во многих видах документов должны приводиться такие сведения, как назначение и область применения программы, структура входных и выходных данных и т.д.). Чтобы неоправданно не раздувать объем записки, такие сведения целесообразнее приводить один раз в том документе, который предшествует всем остальным, дублирующим те или иные сведения, в приведенном выше списке.
В аннотации приводится краткое изложение содержание пояснительной записки. Текст программы может быть оформлен как приложение к пояснительной записке.
1. Джонс Ж., Харроу К. Решение задач в системе Турбо Паскаль : Пер. с англ. – М.: Финансы и статистика, 1991. – 720 с.
2. Джонстон Г. Учитесь программировать : Пер. с англ. – М.: Финансы и статистика, 1989. – 368 с.
3. Единая система программной документации (сборник стандартов). – М.: Издательство стандартов, 1988. – 143 с.
4. Лингер Р., Миллс Х., Уитт Б. Теория и практика структурного программирования : Пер. с англ. – М.: Мир, 1982. – 406 с.
5. Мик Б. и др. Практическое руководство по программированию : Пер. с англ. – М.: Радио и связь, 1986. -168 с.
6. Приборы, средства автоматизации и системы управления. ТС-3 «Автоматизированные средства управления». Обзорная информация «Методология и технология программирования». – М., 1989. Вып. 1.
7. Тассел Д. Ван. Стиль, разработка, эффективность, отладка и испытание программ : Пер. с англ. – 2-е изд., испр. – М.: Мир, 1985. – 332 с.
8. Шахов Э.К. Разработка и документирование программ. - Пенза: ПГТУ, 1994. - 58 с.
Учебное издание
Разработка и документирование программ
Методические указания по курсовому проектированию для студентов направления 071900
Составители: Докторов Александр Евгеньевич
Докторова Елена Анатольевна
Корректор Ю. М. Кретова
Подписано в печать 18.05.00
Формат 60х84/16. Бумага писчая. Усл. п. л. 2,09 Уч.-изд. л. 2,00 Тираж 50 экз. Заказ
Ульяновский государственный технический университет, 432027, Ульяновск, Сев. Венец, 32.
Типография УлГТУ, 432027, Ульяновск, Сев. Венец, 32.
* Не следует путать техническое задание и задание (бланк) на курсовую работу, получаемое студентом от руководителя. На основании последнего студент разрабатывает техническое задание в соответствии с требованиями ГОСТ 19.101-77 (см. табл.1) и ГОСТ 19.102-77
* При выполнении курсовой работы исключаются вторая, третья и пятая стадии разработки программы
* Программные документы, правила оформления и содержание которых регламентированы стандартами ЕСПД. Все необходимые выдержки из стандартов, которые могут потребоваться при разработке этих документов, приведены выше, т.е. при их оформлении вполне можно обойтись без обращения непосредственно к стандартам. Указанные документы не следует оформлять титульные листы и листы утверждения (перечисленные документы являются заголовками разделов пояснительной записки).