Автор работы: Пользователь скрыл имя, 07 Июля 2013 в 09:05, курсовая работа
Целью данного курсового проекта является реализация программы «База данных «Завуч школы», в которой организуется ввод следующих данных: фамилия, имя ученика, название улицы, номер дома, номер телефона; записывает их в массиве записей и обеспечивает поиск номера телефона по фамилии и имени оператора.
Проанализировав работу завуча школы, мы можем сказать, что разработка базы данных для завуча актуальна. Завуч школы должен знать имена, фамилии, место жительства и номера телефонов каждого ученика класса, быстро и оперативно находить нужные ему данные. Использование базы данных в работе поиска необходимых данных, существенно упростит работу завуча и вся информация, касающаяся класса, будет храниться в одном месте.
Для ввода данных о ученике, места жительства, номера телефона, класс, запишем процедуру WriteRecord, в которой выводятся запросы на ввод данных и считываются значения этих данных в соответствующие поля записи.
В разделе описаний запишем переменные:
- fu типа string и максимальной длиной 15 символов, которая будет принимать значение фамилии ученика;
- n типа string и длиной не более 15 символов, которая будет принимать значение имени ученика;
- st типа string и длиной не более 20 символов, которая будет принимать значение названия улицы;
- nm типа byte, которые будут принимать значение вида письма, полученных оператором;
- ph типа longint, принимающее значение номера телефона ученика;
- k типа word, принимает значение номер класса ученика.
То есть раздел описаний выглядит так:
var
fu: string[15];
n: string[15];
st: string[20];
nm: byte;
ph: longint;
k: word.
Раздел операторов начинается зарезервированным словом begin. Далее с помощью процедуры ввода writeln выводим запрос о вводе следующих данных: фамилия, имя ученика, название улицы, номер дома, телефон ученика, класс.
Процедура readln необходима для того, чтобы ввести данные для последующей обработки их программой.
Для обращения к полям записи мы используем оператор присоединения with:
with <имя переменной>
do <имя поля> := <значение>;
with p
do begin
with pname
do begin
familiyauchenika:= fu;
imyauchenika := n
end;
with paddr
do begin
street := st;
number :=nm;
end;
phone := ph;
klass := k
end;
write(f, p)
Для создания файла и ввода в него необходимой операции запишем процедуру CreateFile.
В разделе описаний введем переменную n типа string (строка до 8 символов) для имени файла, переменной a присваиваем значения от 0 до 1:
var
n: string[8];
a: 0..1;
В разделе операторов мы выводи запрос с именем файла не более 8 символов (переменная n). Для того чтобы файлы стали доступны программе, необходимо выполнить особую процедуру открытия файла – assign. Эта процедура должна всегда предшествовать другим процедурам работы с файлами, так как в соответствие конкретному файлу переменную языка, к которой впоследствии будут обращаться все другие файловые процедуры.
Затем нужно открыть файл для записи, для этого используется стандартная процедура rewrite.
begin
write('vvedite imya faila ');
write('(ne bolee 8 simvilov): ');
readln(n);
assign(f, n);
rewrite(f);
С помощью оператора повтора repeat … until мы вводим данные об ученике, после введения которых, необходимо ответить на вопрос – будут ли вводиться новые данные, если будут вводиться – нужно нажать 1, если нет – 0. Цикл repeat оканчивается, если вводится 0. Далее процедура close закрывает файл, обеспечивая сохранения в файле всех новых записей. Связь файловой переменной с именем файла, установленная ранее процедурой assign, сохраняется, поэтому файл можно повторно открыть без дополнительного использования процедуры assign.
repeat
WriteRecord;
write('vy budete vvodit sleduyuchuyu ');
write('zapis? 1 - da, 0 - net ');
readln(a);
until a = 0;
writeln;
close(f)
Процедура чтения данных из файла и вывода информации на экран происходит с помощью Procedure ReadData, сразу начинающаяся с раздела операторов, где с помощью процедуры reset файл открывается для чтения.
reset(f);
write('fail dannych sodergit ');
writeln('sleduyuchuyu informaciyu:');
Операцию вывода содержимого текстового файла на экран запишем с применением оператора повтора while … do. Условием продолжения цикла запишем недостижение конца файла not eof(f). Процедурой read(f, p) организуем считывание данных из файла по строкам, а процедура write будет построчно выводить данные на экран.
while not eof(f)
do begin
read(f, p);
write('familiyauchenika: ');
writeln(p.pname.
write('imyauchenika: ');
writeln(p.pname.imyauchenika);
write('nazvanie ulicy: ');
writeln(p.paddr.street);
write('nomer doma: ');
writeln(p.paddr.numder);
write('telefon uchenika: ');
writeln(p.paddr.phone);
write('nomer klassa: ');
writeln(p.klass);
writeln;
end;
close(f)
end;
Процедура close закрывает файл.
Процедура Procedure SearchData – процедура поиска информации по фамилии и имени ученика.
Вводим в разделе описаний следующие переменные:
- fu типа string и максимальной длиной 15 символов, которая будет принимать значение фамилии ученика;
- n типа string и длиной не более 15 символов, принимающее значение имени ученика;
- flag типа boolean, которая будет принимать значения true или false в зависимости от результатов поиска.
var
fn: string[15];
n: string[15];
flag: boolean;
Процедура reset открывает файл для чтения. Выводятся запросы о фамилии и имени музыканта, по которому необходимо найти какие-либо данные.
begin
reset(f);
write('poisk adresa uchenika nomera telefona, klass ');
writeln('po imeni i familii uchenika');
write('vvedite familiyuchenika');
readln(fu);
write('vvadite imyauchenika: ');
readln(n);
Перед поиском присвоим переменной flag значение true.
Просмотр всех записей файла данных при поиске запишем, используя оператор повтора while … do. Условие завершения поиска – not eof (f) (недостижение конца файла) и false.
flag := true;
while not eof(f) and flag
do begin
read(f, p);
При помощи условного оператора if, запишем при каких значениях переменной flag (true и false) выводится информация о завершении поиска. Если переменная flag принимает значение false, то выводятся данные об ученику, названии улицы, номер дома, номер телефона, класс. Если flag не принимает значение false, тогда выводится сообщение: «Запись о таком музыканте отсутствует».
if (fu = p.pname.familiyauchenika)
and (n = p.pname.imyauchenika)
then begin
write('address: ');
writeln(p.paddr.street);
write('nomer doma');
writeln(p.paddr.number);
write(‘telefon uchenika:’);
writeln(p.phone);
write(‘klass:’);
writeln(p.klass);
flag := false
end
end;
if flag
then writeln('zapis o takom ychenike otsutstvuet');
writeln;
end;
В разделе операторов основной программы мы прописываем названия процедур:
begin
CreateFile; {вызов процедуры создания данных и ввода в него
необходимой информации}
ReadData; {вызов процедуры чтения данных из файла и вывода
информации на экран}
SearchData {вызов процедуры поиска данных по фамилии и
имени ученика}
end.
Заключение
В курсовом проекте решена задача разработки базы данных завуча школы в Turbo Pascal. В базе данных организуется ввод следующих данных: фамилия, имя ученика, места жительства, класса, номер телефона; записывается в массиве записей и обеспечивается поиск даты дежурства по фамилии и имени оператора.
База данных в Turbo Pascal значительно повысит качество и скорость работы завуча школы при поиске необходимой информации.
Список использованных источников