Министерство образования
Российской Федерации
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Пояснительная записка
к курсовому проекту
по дисциплине
«Информационные технологии обработки данных»
вариант № 5
2007
Введение
Целью выполнения данного курсового проекта является приобритение навыков программирования в среде Турбо-Паскаль.
По результатам данной курсовой работы должна быть представлена программа имитирующая работу базы данных телефонного справочника, позволяющая вносить данные в файл, производить поиск абонента и выводить результат поиска в файл и на экран.
1. Постановка и анализ задачи
По требованиям, представленным в задании, нужно написать программу, выполняющую следующие функции:
-
Создавать записи абонентов, каждый элемент записи должен содержать номер телефона, фамилию и адрес абонента;
-
Реализовать поиск абонента по адресу (улицы) проживания;
-
Вывод результата поиска на экран и в файл;
Средством реализации по заданию является язык программирования PASCAL. Для реализации выбрана среда программирования Borland Turbo Pascal Version 7.1
2. Описание реализации программы
Программа реализована в среде разработки Borland Turbo Pascal Version 7.1 В VisualC++6.0 c использованием стандартного модуля CRT.
Файловая структура программы представлена ниже
Файл программы – Adres5.pas;
Файл хранения записей - Adress.dat;
Файл хранения результатов поиска абонентов – Find.txt
Для описания записи с указанными в задании параметрами, в разделе описания используемых типов, создан тип записи TDlgData, который включает три поля типа string:
Number – поле хранения номера телефона абонента;
Name - поле хранения имени абонента;
Street – поле хранения адреса (улицы) проживания абонента.
Для реализации необходимой функциональности программы, были созданы соответствующие процедуры:
procedure LData – процедура листинга, вывода на экран всех имеющихся записей;
procedure XData – процедура поиска и отображения найденных записей на экран и в файл;
procedure WData – процедура создания новой записи в файл.
Описание процедуры LData
Задача процедуры состоит в построчном выводе элементов записей из файла Dress.dat на экран.
Assign(AdrR,'Adress.dat'); связываем переменную для считывания с файлом записей
Reset(AdrR); открываем связанный файл
writeln(' List racords');
writeln('Number of phone Abonent Name Street'); выводим на экран шапку поиска записей
цикл считывания и вывода на экран записи
while not Eof(AdrR) do
begin
read(AdrR,t);{считали запись}
writeln(' '+t.Number + ' ' + t.Name + ' ' + t.Street);{вывели запись}
Описание процедуры XData. Задача процедуры состоит в построчном поиске необходимой записи и выводе элементов записей из файла Dress.dat на экран и в файл Find.txt.
Writeln('Enter Street');
readln(S);{запрос параметра поиска}
writeln(' Finding racords');
writeln('Number of phone Abonent Name Street'); вывод шапки результатов поиска
Assign(AdrR,'Adress.dat');{связываемся с файлом хранения всех записей}
Reset(AdrR);
Assign(AdrS,'Find.txt'); {связываемся с файлом хранения найденных записей}
Rewrite(AdrS);{очищаем файл найденных записей}
цикл поэлементного поиска записей
while not Eof(AdrR) do
begin
read(AdrR,t);
{поиск нужной записи}
if t.Street= S then
begin
writeln(' '+t.Number + ' ' + t.Name + ' ' + t.Street);
write(AdrS,t.Number + ' ' + t.Name + ' ' + t.Street);
end;
Описание процедуры WData. Задача процедуры состоит в добавлении новых записей.
{запрос параметров добавления записи}
Writeln('Enter number phone');
readln(N);
Writeln('Enter abonent Name');
readln(Na);
Writeln('Enter Street');
readln(S);
{сохранение параметров в запись}
RData.Number := N;
RData.Name := Na;
RData.Street := S;
Assign(f,'Adress.dat');{связываемся с файлом хранения найденных записей}
Reset(f);
Seek(f,FileSize(f));{переходим в конец файла}
write(f,RData); {создаем запись в файле}
В целях удобства работы с программой для пользователя, было создано интуитивное текстово-графичесское меню.
Элементы меню:
Константа элементов меню:
menu : array[1..4] of string=('[ Create record ]',
'[ Find record ]',
'[ List record ]',
'[ Exit ]');
Для отключения курсора использована вставка кода на ассемблере
asm mov ah,01;mov cl,$20;int $10;end;
Вывод меню на экран реализован в цикле:
for temp:=1 to 4 do writeln(menu[temp]); { // выводим меню}
repeat
{ // цикл идет..}
gotoxy(1,curchoice); textcolor(20); { // рисуем полоску}
textbackground(7); write(menu[curchoice]); {// выбора}
if keypressed then
case readkey of { // проверяем кнопки}
#72: if curchoice>1 then begin { // вниз, если можно}
textcolor(7);textbackground(0); {// стираем пред.}
{ // надпись}
gotoxy(1,curchoice);write(menu[curchoice]);dec(curchoice);
end;
#80: if curchoice<4 then begin { // вверх, если можно}
textcolor(7);textbackground(0);
gotoxy(1,curchoice);write(menu[curchoice]);inc(curchoice);
end;
#27: status:=4; { // escape}
{если нажат enter то вызываем соответствующую процедуру}
#13: case curchoice of
1: begin
WData; вызов процедуры WData
curchoice:=1;status:=128;textcolor(7);textbackground(0);
for temp:=1 to 4 do writeln(menu[temp]);
end;
2:begin
XData; вызов процедуры XData
curchoice:=1;status:=128;textcolor(7);textbackground(0);
for temp:=1 to 4 do writeln(menu[temp]);
end;
3:begin
LData; вызов процедуры LData
curchoice:=1;status:=128;textcolor(7);textbackground(0);
for temp:=1 to 4 do writeln(menu[temp]);
end;
4:exit; { // enter}
end;
end;
until status=4; { // ..пока не выбран последний}
{ // пункт/не нажат escape}
asm mov ah,01; mov cx,$0E0D; int $10; end;
textcolor(7); textbackground(0); {// ставим нормальный цвет}
3. Описание программы для пользователя
Для начала работы программы нужно запустить файл adres5.exe. После запуска на экране появится меню программы (см. рис.1).
рис 1. Меню программы.
Меню содержит 4 пункта Create record – создание записи, Find record –поиск записи, List record – вывод записей на экран и Exit – завершение работы программы. Перемещать курсор по элементам меню можно при помощи кнопок «вверх»и «вниз»
При выборе пункта Create record запускается процедура WData и на экране выводятся указания для ввода параметров новых записей(см. рис.2).
рис 2. Функция создания записи.
При выборе пункта меню «Find record» запускается процедура XData – поиск записи и вывода результата поиска в файл и на экран. Для поиска записи необходимо ввести название улицы и нажать Enter(см. рис.3).
Рис 3. Поиск записи.
При выборе пункта меню «List record» запускается процедура LData – вывод всех имеющихся записей на экран (см. рис.4).
Рис 4. Вывод записей.
Заключение
В ходе курсового проекта была изучена система программирования Турбо-Паскаль. Рассмотрены основные методы программирования, типы данных, переменные и выражения.
В данной курсовой работе представлена программа имитирующая работу базы данных телефонного справочника, позволяющая вносить данные в файл, производить поиск абонента и выводить результат поиска в файл и на экран. Основными достоинствами программы являются отсутствие сложных алгоритмов и простота использования для пользователя.
Список литературы
-
Епанешников А.М., Епанешников В.А. Программирование в среде Турбо-Паскаль 7.0. – М.: Диалог-МИФИ, 1995.
-
Перминов О.Н. Программирование на языке Паскаль – М.: Радио и связь, 1988.