Бондарчук Роман Анатольевич Группа: повт-41 Тема работы: Телефонный справочник

Вид материалаСправочник

Содержание


ЗАДАНИЕ НА КУРСОВУЮ РАБОТУ ФИО студента: Бондарчук Роман Анатольевич Группа: ПОВТ-41 Тема работы: Телефонный справочник
Постановка задачи 1.1. словесная постановка
1.2. СПОСОБЫ РЕШЕНИЯ Способ решения: программа, написанная с использованием пакета программирования Borland Pascal 7.0 2. РЕШЕНИ
3. Описание по 3.1. общий подход к программной реализации
3.2. ВХОДНЫЕ И ВЫХОДНЫЕ ДАННЫЕ Все вводимые и выводимые данные сохраняются в соответствующем файле. 3.3. АЛГОРИТМ
3.4. МОДУЛЬНАЯ СТРУКТУРА ПО Иерархия модулей: 3.5. СОСТАВ ПО
Список используемых источников
Приложение а текст программы
Приложение б тестирование программы
Приложение в руководство системного программиста
Подобный материал:

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ


АЛТАЙСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ИМЕНИ И.И. ПОЛЗУНОВА


Кафедра прикладной математики





Курсовая работа защищена с оценкой

__________________

Руководитель работы

__________________

доцент Е.В. Егорова



УДК 681.3.


ТЕЛЕФОННЫЙ СПРАВОЧНИК


пояснительная записка к курсовой работе по дисциплине

«Программирование на языке высокого уровня»

КР 220400.04.000ПЗ


Работу выполнил студент группы ПОВТ-41 __________ Р. А. Бондарчук

Нормоконтролер __________ доцент Е.В. Егорова




2005

ЗАДАНИЕ НА КУРСОВУЮ РАБОТУ

ФИО студента: Бондарчук Роман Анатольевич


Группа: ПОВТ-41

Тема работы: Телефонный справочник


Разделы работы и сроки выполнения: – постановка задачи (февраль – март 2005)

– решение задачи (апрель – май 2005)

– оформление отчета (май 2005)

Срок представления работы к защите: 27 мая 2005

ФИО руководителя: Егорова Елена Викентьевна

Должность: доцент

Подпись: ________________

Дата выдачи задания: 5 февраля 2005

СОДЕРЖАНИЕ


МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ 1

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ 1

Кафедра прикладной математики 1

Работу выполнил студент группы ПОВТ-41 __________ Р. А. Бондарчук 1

Нормоконтролер __________ доцент Е.В. Егорова 1

ЗАДАНИЕ НА КУРСОВУЮ РАБОТУ 2

ФИО студента: Бондарчук Роман Анатольевич 2

Тема работы: Телефонный справочник 2

СОДЕРЖАНИЕ 3

1.ПОСТАНОВКА ЗАДАЧИ 5

1.1. СЛОВЕСНАЯ ПОСТАНОВКА 5

1.2. СПОСОБЫ РЕШЕНИЯ 5

2. РЕШЕНИЕ ЗАДАЧИ 6

2.1. АЛГОРИТМ 6

3. ОПИСАНИЕ ПО 7

3.1. ОБЩИЙ ПОДХОД К ПРОГРАММНОЙ РЕАЛИЗАЦИИ 7

3.2. ВХОДНЫЕ И ВЫХОДНЫЕ ДАННЫЕ 7

3.3. АЛГОРИТМ 7

3.4. МОДУЛЬНАЯ СТРУКТУРА ПО 7

3.5. СОСТАВ ПО 8

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ 10

ПРИЛОЖЕНИЕ А 11

ТЕКСТ ПРОГРАММЫ 11

ПРИЛОЖЕНИЕ Б 19

ТЕСТИРОВАНИЕ ПРОГРАММЫ 19

ПРИЛОЖЕНИЕ В 22

РУКОВОДСТВО СИСТЕМНОГО ПРОГРАММИСТА 22

ПРИЛОЖЕНИЕ Г 23

РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ 23

ВВЕДЕНИЕ

Разрабатываемый программный продукт – телефонный справочник. Цель работы – создание программного продукта, который позволит без особой траты времени найти информацию о любом человеке, имеющим городской телефонный номер. Программа будет иметь не только поисковые функции, но и позволит редактировать, добавлять, удалять записи при возникновении таковой необходимости, что сделает её универсальной и актуальной для любого человека, имеющего компьютер, независимо от возраста, социального положения и т.д. Интерфейс программного продукта должен быть понятен для любого пользователя.
  1. ПОСТАНОВКА ЗАДАЧИ

1.1. СЛОВЕСНАЯ ПОСТАНОВКА


При запуске программы на экране появляется главное меню:

Выберите свой вариант

1 – view(просмотр)

2 – add(добавить)

3 – remove(удалить)

4 – edit(редактировать)

5 – find(найти)

6 – quit(выход)

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

1.2. СПОСОБЫ РЕШЕНИЯ


Способ решения: программа, написанная с использованием пакета программирования Borland Pascal 7.0

2. РЕШЕНИЕ ЗАДАЧИ

2.1. АЛГОРИТМ



2.2. СТРУКТУРА ДАННЫХ

Все данные расположены в файлe c именем sprav.dat.

3. ОПИСАНИЕ ПО

3.1. ОБЩИЙ ПОДХОД К ПРОГРАММНОЙ РЕАЛИЗАЦИИ


Данный программный продукт имеет модульную структуру, каждая подпрограмма выполняет строго ограниченное количество логически связанных действий. Почти все подпрограммы являются процедурами и не требуют передачи параметров, так как читают данные из файлов. Основные подпрограммы: View, Add, Remove, Edit, Find, Quit. Программа написана на языке Pascal. Программа работает с большинством DOS-совместимых систем. Программа занимает 16 Кб в исходных кодах, готовый программный продукт занимает 80 Кб.

3.2. ВХОДНЫЕ И ВЫХОДНЫЕ ДАННЫЕ


Все вводимые и выводимые данные сохраняются в соответствующем файле.

3.3. АЛГОРИТМ


Пользователь выбирает в главном меню режим работы, далее выполняет действия соответствующие режиму, а за тем выходит в главное меню, а оттуда можно выйти из программы.

3.4. МОДУЛЬНАЯ СТРУКТУРА ПО


Иерархия модулей:



3.5. СОСТАВ ПО


1. Название подпрограммы: add.

Назначение: пп для добавления записи в файл.

Указания по вызову: вызывается при необходимости добавления нового телефонного номера.

Параметры: нет

2. Название подпрограммы: edit.

Назначение: пп для редактирования записи.

Указания по вызову: вызывается при необходимости изменения каких либо пунктов в записи.

Параметры: i,j.

3. Название подпрограммы: find.

Назначение: пп для поиска нужной записи.

Указания по вызову: вызывается при необходимости найти ту или иную информацию о человеке.

Параметры: i,j.

4. Название подпрограммы: view.

Назначение: пп для просмотра файла.

Указания по вызову: вызывается при желании полностью просмотреть содержимое файла.

Параметры: i.

5. Название подпрограммы: remove.

Назначение: пп для удаления записи из файла.

Указания по вызову: вызывается при желании удаления из файла телефонного номера..

Параметры: i,j


ЗАКЛЮЧЕНИЕ

В процессе обработки были изучены средства разработки программного обеспечения Borland Pascal 7.0, методы разбиения монолитной программы на отдельные модули, независимые друг от друга.

Полученный программный продукт отвечает всем заявленным требованиям: достаточно понятен интерфейс, организованы разные варианты работы. В режимах редактирования и поиска выбирается один из параметров, таких как номер, фамилия, адрес. Недостатком программного продукта является слишком простой интерфейс.

Преимуществом данной тестовой системы перед другими существующими на данный момент – это универсальность, позволяющая выполнять различные функции, простым и доступным способом. Продукт может использоваться абсолютно всеми людьми. В качестве усовершенствований рекомендовалось бы организовать более наглядный интерфейс, и ввести возможность выхода из программы в любом режиме, не выходя в главное меню.




СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

  1. Ускова О. Ф. Программирование на языке Паскаль. – М.: Питер,2002. – 333 с.
  2. Егорова Е.В. Программирование на языке высокого уровня. Часть I: Учебное пособие / Алтайский государственный технический университет имени И.И.Ползунова. – Барнаул: 1998. – 209 с.
  3. Рапаков Г. Г. Turbo Pascal для студентов и школьников. – СПб.: БХВ-Петербург, 2002. – 349 с.
  4. Turbo Pascal Help.



ПРИЛОЖЕНИЕ А

ТЕКСТ ПРОГРАММЫ


/*Телефонный справочник*/

uses

crt;


const

maxN = 100;


type

tBook = record

n : longint;

fam, adress : string;

end;


var

i, cnt : longint;

book : array [1..maxN] of tBook;

ch : char;


/*ПП добавления записи*/

procedure add;

begin

clrscr;

writeln('Adding:');

inc(cnt);

writeln('Enter number:');

readln(book[cnt].n);

writeln('Enter name:');

readln(book[cnt].fam);

writeln('Enter adress:');

readln(book[cnt].adress);

writeln('Press any key to continue!');

readkey;

end;

/*ПП удаления записи*/

procedure remove;

var i, j : longint;

bFlag : boolean;

begin

clrscr;

writeln('Removing:');

writeln('Enter number:');

readln(j);

bFlag := false;

for i := 1 to cnt do

if book[i].n = j then

begin

for j := i to cnt - 1 do

book[j] := book[j + 1];

dec(cnt);

bFlag := true;

break;

end;

if not bFlag then

writeln('Such record not found!')

else

writeln('Record succesfully removed!');

writeln('Press any key to continue!');

readkey;

end;


/*ПП редактирования записей*/

procedure edit;

var i, j : longint;

bFlag : boolean;

st : string;

begin

clrscr;

writeln('Editing:');

writeln('Choose type:');

writeln('1 - by number');

writeln('2 - by family');

writeln('3 - by adress');

ch := readkey;

bFlag := false;

case ch of

'1':

begin

writeln('Enter number:');

readln(j);

for i := 1 to cnt do

if book[i].n = j then

begin

writeln('Enter new family:');

readln(book[i].fam);

writeln('Enter new adress:');

readln(book[i].adress);

bFlag := true;

break;

end;

end;

'2':

begin

writeln('Enter family:');

readln(st);

for i := 1 to cnt do

if book[i].fam = st then

begin

writeln('Enter new number:');

readln(book[i].n);

writeln('Enter new adress:');

readln(book[i].adress);

bFlag := true;

break;

end;

end;

'3':

begin

writeln('Enter adress:');

readln(st);

for i := 1 to cnt do

if book[i].adress = st then

begin

writeln('Enter new family:');

readln(book[i].fam);

writeln('Enter new number:');

readln(book[i].n);

bFlag := true;

break;

end;

end;

end;

if not bFlag then

writeln('Record succesfully edited!')

else

writeln('Such record not found!');

writeln('Press any key to continue!');

readkey;

end;


/*ПП поиска записей*/

procedure find;

var i, j : longint;

bFlag : boolean;

st : string;

begin

clrscr;

writeln('Searching:');

writeln('Choose type:');

writeln('1 - by number');

writeln('2 - by family');

writeln('3 - by adress');

ch := readkey;

bFlag := false;

case ch of

'1':

begin

writeln('Enter number:');

readln(j);

for i := 1 to cnt do

if book[i].n = j then

begin

writeln('Family:');

writeln(book[i].fam);

writeln('Adress:');

writeln(book[i].adress);

bFlag := true;

break;

end;

end;

'2':

begin

writeln('Enter family:');

readln(st);

for i := 1 to cnt do

if book[i].fam = st then

begin

writeln('Number:');

writeln(book[i].n);

writeln('Adress:');

writeln(book[i].adress);

bFlag := true;

break;

end;

end;

'3':

begin

writeln('Enter adress:');

readln(st);

for i := 1 to cnt do

if book[i].adress = st then

begin

writeln('Family:');

writeln(book[i].fam);

writeln('Number:');

writeln(book[i].n);

bFlag := true;

break;

end;

end;

end;

if bFlag then

writeln('Record succesfully edited!')

else

writeln('Such record not found!');

writeln('Press any key to continue!');

readkey;

end;


/*ПП просмотра файла*/

procedure view;

var i : longint;

begin

clrscr;

writeln('Showing:');

for i := 1 to cnt do

begin

write('Number - ', book[i].n, ' Family - ', book[i].fam,' ');

writeln('Adress - ', book[i].adress);

end;

writeln('Press any key to continue!');

readkey;

end;


/*Основная программа*/

var

quit : boolean;

f : text;


begin

assign(f, 'DAT\sprav.dat');

reset(f);

readln(f, cnt);

for i := 1 to cnt do

begin

readln(f, book[i].n);

readln(f, book[i].fam);

readln(f, book[i].adress);

end;

close(f);

quit := false;

repeat

clrscr;

writeln('Choose your variant:');

writeln('1 - view');

writeln('2 - add');

writeln('3 - remove');

writeln('4 - edit');

writeln('5 - find');

writeln('6 - quit');

ch := readkey;

case ch of

'1': view;

'2': add;

'3': remove;

'4': edit;

'5': find;

'6': quit := true;

end;

until quit = true;


assign(f, 'DAT\sprav.dat');

rewrite(f);


writeln(f, cnt);

for i := 1 to cnt do

begin

writeln(f, book[i].n);

writeln(f, book[i].fam);

writeln(f, book[i].adress);

end;


close(f);

end.


ПРИЛОЖЕНИЕ Б

ТЕСТИРОВАНИЕ ПРОГРАММЫ


Главное меню




Просмотр файла




Добавление записи




Редактирование записи по номеру




Поиск записи по адресу


Просмотр преобразованного файла




ПРИЛОЖЕНИЕ В

РУКОВОДСТВО СИСТЕМНОГО ПРОГРАММИСТА


Исполняемый файл – CURS2.exe. Этот файл имеет объем 11 Кб и работает в среде DOS. Программа совместима оперативная система Windows 9X (3.11, 95, 98, ME) и Windows NT (2000, XP). Необходимо, чтобы на компьютере был установлен Pascal.

Минимальные системные требования:

Процессор: Intel 286 SX

Оперативная память: не менее 2 Мб

Видеопамять: 512 Кб

Свободное место: не менее 80 Кб

Оперативная система DOS

Клавиатура

ПРИЛОЖЕНИЕ Г

РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ


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