Проект "Телефонный справочник"

Автор работы: Пользователь скрыл имя, 27 Декабря 2010 в 09:56, курсовая работа

Краткое описание

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

Содержание работы

Введение
Постановка задачи
Используемые методы
Описание алгоритма программы
Заключение
Список литературы
Приложение 1. Листинг программы

Содержимое работы - 1 файл

39408.rtf

— 188.70 Кб (Скачать файл)

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

     СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)

     дистанционная форма обучения

     Кафедра автоматизированных систем управления (АСУ) 
 
 
 

     Программирование

 

     Курсовой проект 

     «телефонный справочник» 
 
 

     Дата выполнения работы ___________________

     Дата проверки ___________________

     Оценка ___________________

     И.О.Фамилия преподавателя ___________________

     Подпись преподавателя ___________________ 

 

      Содержание: 

Содержание

Введение

Постановка задачи

Используемые методы

Описание алгоритма программы

Заключение

Список литературы

Приложение 1. Листинг программы

 

      Введение: 

     Целью курсовой работы является углубление знаний и расширение навыков по разработке алгоритмов и их реализации на персональном компьютере.

 

      Постановка задачи: 

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

     Используемые методы: 

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

     Описание алгоритма программы. 

     Создадим запись Phone, в этой записи создадим четыре поля с именами:

     SurnameS - строкового типа длинной 15 символов, данное поле будет содержать фамилию;

     NameS - строкового типа длинной 15 символов, данное поле будет содержать имя;

     PhoneS - строкового типа длинной 15 символов, данное поле будет содержать номер телефон.

     AddressS - строкового типа длинной 50 символов, данное поле будет содержать адрес. 

     Создадим переменные:

     PhoneF - файлового типа, для работы с файлами данных;

     PhoneR - произвольного типа (Phone), для работы с данными.

     а - массив от 1 до 600 типа Phone, данный массив будет необходим для организации сортировки записей.

     Процедура WritePhone - данная процедура выводит все записи из файла phone.dat на экран. При помощи оператора Assign устанавливается связь между файлом и переменной файлового типа PhoneF. С помощью команды Reset открываем файл для чтения и переводим указатель в первую позицию. Далее создаем цикл размером от первой позиции в файле до последней, в этом цикле выводим на экран значение полей: фамилия, имя, номер телефона при помощи оператора Writeln. Закрываем файл при помощи оператора Close, это необходимо для того, чтобы другие процедуры могли с ним работать.

     procedure WritePhone;

     begin

     Assign(PhoneF,'Phone\phone.dat');

     Reset(PhoneF);

     ClrScr;

     writeln('Все записи:');

     writeln;

     while not Eof(PhoneF) do

     begin

     PhoneR.SurnameS:='';

     PhoneR.NameS:='';

     PhoneR.PhoneS:='';

     PhoneR.AddressS:='';

     read(PhoneF,PhoneR);

     writeln;

     write(PhoneR.SurnameS);

     write(' ',PhoneR.NameS);

     write('',PhoneR.PhoneS);

     write('',PhoneR.AddressS);

     end;

     Close(PhoneF);

     writeln;

     writeln;

     write('Нажмите любую клавишу...');

     ReadKey;

     end;

     Процедура AddPhone - данная процедура добавляет запись. С помощью операторов Assign и Reset открываем файл phone.dat и устанавливаем указатель в первую позицию. С помощью операторов Writeln и Readln создаем интерфейс для ввода фамилии, имени, номера телефона с клавиатуры и записываем введенные значения в файл. Закрываем файл.

     procedure AddPhone;

     begin

     Assign(PhoneF,'Phone\phone.dat');

     Reset(PhoneF);

     while not Eof(PhoneF) do Read(PhoneF,PhoneR);

     PhoneR.SurnameS:='';

     PhoneR.NameS:='';

     PhoneR.PhoneS:='';

     PhoneR.AddressS:='';

     ClrScr;

     writeln('Добавление записи:');

     writeln;

     Write('Введите Фамилию:');

     readln(PhoneR.SurnameS);

     write('Введите Имя:');

     readln(PhoneR.NameS);

     write('Введите номер телефона:');

     readln(PhoneR.PhoneS);

     write('Введите адрес:');

     readln(PhoneR.AddressS);

     write(PhoneF,PhoneR);

     Close(PhoneF);

     writeln;

     writeln('Запись успешно добавлена в базу!!!');

     writeln;

     write('Нажмите любую клавишу...');

     ReadKey;

     end;

     Процедура DeletePhone - удаляет запись. Для работы данной процедуры нам потребуются дополнительные переменные:

     temp - файлового типа, в данной переменной будут хранится измененные данные;

     Nazv - строкового типа длинной 15 символов, в этой переменной будет храниться значение поля фамилии записи которую необходимо удалить.

     С помощью операторов Assign и Reset открываем файл phone.dat и устанавливаем указатель в первую позицию. С помощью операторов Assign и Reset создаем временный файл temp.dat и устанавливаем указатель в первую позицию. С помощью операторов Writeln и Readln создаем интерфейс для ввода фамилии (по фамилии мы будем искать в файле нужную нам запись) с клавиатуры, присваиваем введенное значение переменной Nazv. Далее в цикле при помощи условного оператора сравниваем поочередно значение поля SurnameS переменной PhoneF со значением переменной Nazv, если значение не совпадают то данная запись записывается в файл temp.dat, иначе пропускается. В результате имеем два файла с удаленной и не удаленной записью, закрываем оба файла. Удаляем файл phone.dat при помощи оператора Erase, а файл temp.dat переименовываем в phone.dat при помощи оператора Rename.

     procedure DeletePhone;

     var temp : file of Phone;

     Nazv : string[15];

     begin

     Assign(PhoneF,'Phone\phone.dat');

     Reset(PhoneF);

     Assign(temp,'Phone\temp.dat');

     Rewrite(temp);

     PhoneR.SurnameS:='';

     PhoneR.NameS:='';

     PhoneR.PhoneS:='';

     PhoneR.AddressS:='';

     ClrScr;

     writeln('Удаление записи:');

     writeln;

     Write('Введите Фамилию:');

     readln(Nazv);

     while not Eof(PhoneF) do

     begin

     Read(PhoneF,PhoneR);

     if PhoneR.SurnameS<>Nazv then Write(temp,PhoneR);

     end;

     Close(temp);

     Close(PhoneF);

     Erase(PhoneF);

     Rename(temp,'Phone\phone.dat');

     writeln;

     writeln('Запись успешно удалена из базы!!!');

     writeln;

     write('Нажмите любую клавишу...');

     ReadKey;

     end;

     Процедура EditPhone - редактирует запись. Работа данной процедуры аналогична работе процедуры DeletePhone. За исключением того, что во временный файл добавляется новая запись, полученная по средствам ввода с клавиатуры фамилии, имени, номера телефона.

     procedure EditPhone;

     var Nazv : string[15];

     temp : file of Phone;

     begin

     Assign(PhoneF,'Phone\phone.dat');

     Reset(PhoneF);

     Assign(temp,'Phone\temp.dat');

     Rewrite(temp);

     PhoneR.SurnameS:='';

     PhoneR.NameS:='';

     PhoneR.PhoneS:='';

     PhoneR.AddressS:='';

     ClrScr;

     writeln('Редактирование записи:');

     writeln;

     Write('Введите Фамилию, которую хотите изменить:');

     readln(Nazv);

     while not Eof(PhoneF) do

     begin

     PhoneR.SurnameS:='';

     PhoneR.NameS:='';

     PhoneR.PhoneS:='';

     PhoneR.AddressS:='';

     Read(PhoneF,PhoneR);

     if PhoneR.SurnameS<>Nazv then Write(temp,PhoneR);

     end;

     writeln;

     write('Введите новую Фамилию:');

     readln(PhoneR.SurnameS);

     write('Введите новое Имя:');

     readln(PhoneR.NameS);

     write('Введите новый номер телефона:');

     readln(PhoneR.PhoneS);

     write('Введите новый адрес:');

     readln(PhoneR.AddressS);

     write(temp,PhoneR);

     Close(temp);

     Close(PhoneF);

     Erase(PhoneF);

     Rename(temp,'Phone\phone.dat');

     writeln;

     writeln('Запись успешно изменена!!!');

     writeln;

     write('Нажмите любую клавишу...');

     ReadKey;

     end;

Информация о работе Проект "Телефонный справочник"