Реферат по предмету "Информатика, программирование"


Создание электронной записной книжки

Оглавление
1.      Описание типов.Процедуры
2.      Тело программы
2.1 Создание приветствия
2.2 Редактирование записи
2.3 Вывод текущей записи. Созданиекоманды для вызова справки.
2.4 Вывод определенных полей.Закрытие программы.
2.5 Завершение программы. Принципработы
Список литературы
Приложение

1. Описание типов.Процедуры
 
Описание типов начнем с типа«запись»: присвоим ей имя «TSt». Далее опишем компоненты (поля) записи. Вданной программе используется 3 поля записи с названиями: Name, Group, Subject и Mark.Они определяют соответствующие поля записной книжки, которые заполняютсяпользователем. В данной программе необходимо будет использовать и массив,который также определяем в типах.
typeTSt=record
Name:string[13];
Group:string[13];
Subject:string[13];
Mark:string[13];
end;
TASt=array[1..10]of TSt;
 
Далее перейдем ксоставлению процедур, которые будут использоваться в программе. Нам понадобятсяпроцедура для интерактивного ввода данных в вышеописанные поля и процедура,которая выводит уже заполненные поля на экран.
Процедура по вводу данныхс именем «WriteSt» будет выглядеть следующим образом:
procedureWriteSt(var A:TSt);
begin
write('group:');
readln(A.Group);
write('Name:');
readln(A.Name);
write('Subject:');
readln(A.Subject);
write('Mark:');
readln(A.Mark);
writeln;
end;
 
Соответственно, процедура«OutputSt», отвечающая за вывод данных на экран, будет выглядеть:
procedureOutputSt(A:TSt);
begin
writeln('Group:',A.Group);
writeln('Name:',A.Name);
write('Subject:',A.Subject);
write(':');
writeln(A.Mark,'ballov');
end;
 
Необходимые в дальнейшемтипы определены, процедуры заданы. Далее рассмотрим непосредственно телопрограммы.
2.Тело программы
 
Перед написанием самоготела программы, определим, какие переменные потребуются для дальнейшей работы. Дляреализации программы зададим массив «B», строчную переменную «a» ицелочисленный параметр «p». Массивнеобходим для сохранения записей под номерами, определяемые параметром «p», а строчная переменная «a» определяет ввод команд привыполнении программы.

var B:TASt;
a:string;p:integer;
 
2.1 Созданиеприветствия
Для того чтобыпользователь, незнакомый с данной программой, мог в ней ориентироваться,создадим приветствие, в котором обозначим:
1)        названиепрограммы;
2)        имя создателя;
3)        доступныекоманды.
Это будет выглядетьследующим образом:
 
writeln('Vasprivetstvuet NoteBook v.1.0b Sozdateli: studenty gruppy 520361: Konova Elena,Pivovarov Nikolay, Kharlamov Alexey');
 writeln;
 writeln('Command«new»-redaktirovanie zapisi,«w»-vyvod tekuschey zapisi, ""-vvodnomera zapisi,«help»-vyzov spravki, «all»-pokazat’ vsezapisi, «name»-pokazat’ imena, «group»-pokazat’ nomeragrupp, «mark»-pokazat’ ocenki, «sub»-pokazat’ predmety,«q»-vyhod');
 
Создание приветствияокончено.
2.2 Редактированиезаписи
После написания приветствиязададим цикл, внутри которого будут задаваться основные команды: выбор записи,её редактирование, вывод записи с определенным номером, вывод одногоконкретного поля, вывод всех заполненных полей.
Данная программарассчитана на 10 записей. Задание номера записи будет осуществляться следующимобразом:

if (a='1')or (a='2') or (a='3') or (a='4') or (a='5') or (a='6') or (a='7') or (a='8')
or (a='9')or (a='10') then
begin
p:=strtoint(a);
writeln('currentrecord ',p);
end;
 
После ввода номера записизададим команду «new»редактирования текущей записи. Для этого зададим условие, внутри которого будемиспользовать процедуру интерактивного ввода данных.
if a='new' then
if (p>0)and (p
begin
WriteSt(B[p]);
writeln('zapis',p,' sohranena');
writeln;
writeln('Vveditenovuyu komandu');
end
elsewriteln('choose the record');
Таким образом мы вносимвсе изменения в элементы массива B,состоящего из 10 элементов, к которым мы сможем в последствии обращаться.
2.3 Вывод текущейзаписи. Создание команды для вызова справки
 
Выше мы задали процедурудля вывода данных. Составим условие, которое будет определять вывод текущейзаписи: параметру «a» должно бытьприсвоено значение «out» (это и будеткомандой вывода), а параметр «p»должен быть равен целому числу от 1 и до 10 включительно. Таким образом, выводэлемента массива «B» (текущей записиблокнота) будет выглядеть следующим образом:
if a='out'then
if (p>0)and (p
begin
OutputSt(B[p]);
writeln;
writeln('Vveditenovuyu komandu');
end
elsewriteln('choose the record');
 
Для просмотра доступныхкоманд пользователем, создадим команду «help». Вывод справки осуществим с помощью обычногоотображения текста:
if a='help' then
write('command «new»-redaktirovanie zapisi,«out»-vyvod tekuscheyzapisi,""-vvod nomera zapisi, «all»-pokazatvse zapisi, «name»-pokazat imena, «group»-pokazat nomeragrupp, «mark»-pokazat ocenki, «sub»-pokazat predmety,«q»-vyhod');
 
2.4 Вывод определенныхполей. Закрытие программы
 
Для расширениявозможностей данной программы, создадим команды по выводу определенных полей.Но при этом учтем, чтобы незаполненные поля в каких-либо записях не выводились.Это легко осуществить, задав цикл, при котором будут анализироваться всезаданные поля элементов массива «B» иусловия, которое будет определять наличие информации в данном поле. Посколькузапись «TSt» состоит из 4-х полей, необходимозадать 4 условия для параметра «a»,которые и будут определять команды вывода. Их вид указан ниже:
if a='name'then
begin
for p:=1 to10 do
begin
ifB[p].Name'' then
writeln('zapis',p,' ',B[p].Name);
end;
end;
ifa='group' then
begin
for p:=1 to10 do
begin
ifB[p].Group'' then
writeln('zapis',p,' ',B[p].Group);
end;
end;
if a='mark'then
begin
for p:=1 to10 do
begin
ifB[p].Mark'' then
writeln('zapis',p,' ',B[p].Mark);
end;
end;
if a='sub'then
begin
for p:=1 to10 do
begin
ifB[p].Subject'' then
writeln('zapis',p,' ',B[p].Subject);
end;
end;
 
Наконец осталосьреализовать задачу по выводу всех заполненных полей записей в виде небольшойтаблицы. Для равенства ячеек ограничим количество символов в полях до 13,используя «setlength». Тогда за вывод полей будет отвечать следующий отрывокпрограммы:
ifa='all' then
begin
writeln('Zapis','Group ','Name ','Subject ','Mark ');
for p:=1 to10 do
begin
setlength(B[p].Subject,13);setlength(B[p].Mark,13);setlength(B[p].Group,13);setlength(B[p].Name,13);
if(B[p].Subject'') or (B[p].Mark'') or (B[p].Group'') or(B[p].Name'') then
writeln('Zapis',p,' ',B[p].Group,B[p].Name,B[p].Subject,B[p].Mark);
end;
end;
 
2.5 Завершениепрограммы. Принцип работы
 
В пункте 2.2 мы задалицикл «repeat until». Чтобы выйти из программы достаточно задатьпараметру «a» команду, определяющую, до каких пордолжен выполняться цикл:

repeat

untila='q';
 
После этого с помощью «writeln» выведем на экран надпись (программа«прощается» с пользователем). Чтобы пользователь успел её прочитать, добавим «readln». Тогда выход будет осуществлятьсяпосле нажатия клавиши «Enter».
 
writeln('Chtozh vy nadelali...');
readln;
end.
 
После запуска программаработает следующим образом:
1)        на экранвыводится приветствие, в котором выводится название программы, имя создателя исписок команд;
2)        вводится номерзаписи. При этом пользователь видит появившеюся надпись «current record »;
3)        после вводакоманды «new» пользователю открываетсявозможность поочередного заполнения полей записи. Если номер записи не выбран,то на экран выводится сообщение «choose the record». После окончания редактированиятекущей записи, появляется сообщение «Vvedite novuyu komandu»;
4)        для просмотракакой-либо записи, необходимо ввести номер этой записи и команду «out», после чего информация об этойзаписи будет выведена на экран;
5)        если необходимопросмотреть определенные поля (заполненные) существующих записей, вводится однаиз команд: «name» (выводит поля с именем «Name»), «group» (выводит поля с именем «Group»), «mark»(выводит поля с именем «Mark»),«sub» (выводит поля с именем «Subject»);
6)        просмотр всесуществующих записей осуществляется командой «all». В этом случае в виде таблицы выводится всезаполненные поля с указанием номера записи, к которой они относятся;
7)        чтобы просмотретьдоступные команды, достаточно ввести «help»;
8)        завершение работыс программой производится с помощью команды «q».[1]

Список литературы
 
1. Амелина Н. Задачипо программированию. – М .: Вузовская книга, 2000. – 104 с.
2. Хомоненко А. Delphi 7. – СПб.: БХВ-Петербург, 2007. –1200 с.
3. Бобровский С. Delphi 7: Учебный курс. – СПб.: Питер,2006. – 735 с.

Приложение
 
programnotebook;
uses
SysUtils;
typeTSt=record
 Name:string[13];
 Group:string[13];
 Subject:string[13];
 Mark:string[13];
 end;
TASt=array[1..10]of TSt;
procedureInputSt(var A:TSt;n:string;g:string;m:string;s:string);
begin
 A.Subject:=s;
 A.Group:=g;
 A.Name:=n;
 A.Mark:=m;
end;
procedureOutputSt(A:TSt);
begin
 writeln('Group:',A.Group);
 writeln('Name:',A.Name);
 write('Subject:',A.Subject);
 write(':');
 writeln(A.Mark,'ballov');
end;
procedureWriteSt(var A:TSt);
begin
 write('group:');
 readln(A.Group);
 write('Name:');
 readln(A.Name);
 write('Subject:');
 readln(A.Subject);
 write('Mark:');
 readln(A.Mark);
 writeln;
end;
var B:TASt;
 a:string;p:integer;
begin
 writeln('Vasprivetstvuet NoteBook v.1.0b Sozdateli: studenty gruppy 520361: Konova Elena,Pivovarov Nikolay, Kharlamov Alexey');
 writeln;
 writeln('Command«new»-redaktirovanie zapisi,«out»-vyvod tekuschey zapisi, ""-vvodnomera zapisi,«help»-vyzov spravki, «all»-pokazat vsezapisi, «name»-pokazat imena, «group»-pokazat nomera grupp,«mark»-pokazat ocenki, «sub»-pokazat predmety, «q»-vyhod');
 p:=0;
 repeat
 readln(a);
 if a='new' then
 if (p>0)and (p
 begin
 WriteSt(B[p]);
 writeln('zapis',p,' sohranena');
 writeln;
 writeln('Vveditenovuyu komandu');
 end
 elsewriteln('choose the record');
 if a='out'then
 if (p>0)and (p
 begin
 OutputSt(B[p]);
 writeln;
 writeln('Vveditenovuyu komandu');
 end
 elsewriteln('choose the record');
 if (a='1') or(a='2') or (a='3') or (a='4') or (a='5') or (a='6') or (a='7') or (a='8')
 or (a='9') or(a='10') then
 begin
 p:=strtoint(a);
 writeln('currentrecord ',p);
 end;
 if a='help'then
 write('command «new»-redaktirovanie zapisi,«out»-vyvod tekuscheyzapisi,""-vvod nomera zapisi, «all»-pokazatvse zapisi, «name»-pokazat imena, «group»-pokazat nomeragrupp, «mark»-pokazat ocenki, «sub»-pokazat predmety,«q»-vyhod');
 if a='name'then
 begin
 for p:=1 to10 do
 begin
 ifB[p].Name'' then
 writeln('zapis',p,' ',B[p].Name);
 end;
 end;
 if a='group'then
 begin
 for p:=1 to10 do
 begin
 ifB[p].Group'' then
 writeln('zapis',p,' ',B[p].Group);
 end;
 end;
 if a='mark'then
 begin
 for p:=1 to10 do
 begin
 ifB[p].Mark'' then
 writeln('zapis',p,' ',B[p].Mark);
 end;
 end;
 if a='sub'then
 begin
 for p:=1 to10 do
 begin
 ifB[p].Subject'' then
 writeln('zapis',p,' ',B[p].Subject);
 end;
 end;
 if a='all'then
 begin
 writeln('Zapis','Group ','Name ','Subject ','Mark ');
 for p:=1 to10 do
 begin
 setlength(B[p].Subject,13);setlength(B[p].Mark,13);setlength(B[p].Group,13);setlength(B[p].Name,13);
 if(B[p].Subject'') or (B[p].Mark'') or (B[p].Group'') or(B[p].Name'') then
 writeln('Zapis',p,' ',B[p].Group,B[p].Name,B[p].Subject,B[p].Mark);
 end;
 end;
 until a='q';
 writeln('Chtozh vy nadelali...');
 readln;
end.


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.