Добавлен: 23.11.2023
Просмотров: 94
Скачиваний: 6
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РЕСПУБЛИКИ КАЗАХСТАН
КАЗАХСКИЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ
ИМЕНИ ТУРАРА РЫСКУЛОВА
Кафедра: Прикладная информатика
КУРСОВАЯ РАБОТА
по дисциплине
“Алгоритмизация и языки программирования”
на тему:
«Телефонный справочник»
Проверила: Тимофеева Е. П.
Выполнила: ст.гр. ВТ-109
Мырзаханов Ержан
Алматы 2008
СОДЕРЖАНИЕ
-
Введение….....................................................................................................3 -
Постановка задачи………………………………………………………….6 -
Алгоритм задач …………………………………………………………….7-
Блок-схема алгоритма программы………………………………….7 -
Блок-схема процедуры формирования справочника………………8 -
Блок-схема процедуры просмотра справочника …………………..9 -
Блок-схема редактирования записей………………………………10 -
Блок-схема поиска номера абонента по фамилий………………...11
-
4. Инструкция пользователя…………………………………………………12
-
Список используемой литературы……………………………………….13 -
Приложение………………………………………………………………..14
1.Введение
Алгоритмический язык Паскаль разработан профессором Цюрихского технологического института Никлаусом Виртом в 1969-71 годах для обучения студентов структурному программированию. Идеи, заложенные в основу создания языка, позволили фирме Borland International значительно расширить алгоритмические средства языка, а удобный интерфейс (меню команд) и высокая скорость компиляции (процесса перевода текста программы в машинные коды) сделали язык Турбо-Паскаль (Turbo-Pascal) одним из самых распространенных среди начинающих и профессиональных программистов.
Процесс программирования начинается, как правило, с составления алгоритма - последовательности операций, описывающих процесс решения задачи. Графическая запись алгоритма представляется в виде блок-схемы. Составление алгоритма заключается в логическом описании процесса решения задачи и требует знания элементов математической логики. Следует отметить, что программированию предшествует важнейший этап - постановка задачи. Постановка задачи может включать широкий спектр вопросов (разработка математических и физических моделей, вывод расчетных формул и т. п.). Программист должен четко представлять явление или формулу, которые он алгоритмизирует.
Программирование заключается в записи алгоритма на языке программирования и отладке программы. Текст программы записывается в текстовом редакторе, затем программа компилируется - переводится транслятором (переводчиком) в машинные коды и запускается на выполнение. Процесс отладки программы начинается с выявления:
- синтаксических ошибок в тексте (неверно записанных операторов),
- ошибок при выполнении программы (недопустимые математические действия, операции с числами, превосходящими предельные значения),
- алгоритмических ошибок (неверно составлен или запрограммирован алгоритм),
и заканчивается, как правило, написанием новой программы, поскольку каждый программист знает, что программу можно усовершенствовать до бесконечности, а отлаженную программу лучше не изменять.
Массив - упорядоченные данные одного типа. Возможно создание массива, включающего массив другого типа. Массивом часто обозначают характеристики объектов одного типа, имеющих одинаковые единицы измерения. Массив состоит из элементов, имеющих порядковые номера, т. е. элементы массива упорядоченные. Таким образом, если объекты одного типа обозначить именем, например "A", то элементы объекта будут A[1], A[2] и т. д. В квадратных скобках указан номер элемента. Порядковый номер элемента массива, обычно не несет никакой информации о значении элемента, а показывает расположение элемента среди других. К элементам массива можно обращаться только по их номеру (индексу). Значения элементам массива присваиваются также как и другим переменным с учетом типа массива. Если элементы массива имеют один индекс, то массив называется одномерным или линейным, либо массив - вектор. Значения элементов одномерного массива обычно выводят на экран или бумагу в виде столбца или строки. В некоторых случаях удобно элементы массива пронумеровывать двумя независимыми индексами, такие массивы называются двумерными или матрицами. Значения элементов двумерного массива обычно выводят на экран в виде таблицы. Если элементы массива имеют три независимых индекса, то массив называется трехмерным. Значения элементов трехмерного массива обычно выводят на экран в виде набора таблиц.
-
Var A: array[1..30, 1..7] of byte;
Процедура. Практически во всех алгоритмических языках имеется возможность программирования функций и процедур - блоков операторов, оформленных в виде подпрограмм. Разработка функций и процедур необходима при многократном использовании в разных местах программы или в нескольких программах блока операторов, выполняющих однотипные действия, например, расчет значений сложной функции при различных значениях аргумента. В Турбо - Паскале имеется также возможность создавать библиотеки (модули), состоящие из специальных процедур и функций, отличных от поставляемых в пакете (модули System, Crt, Graph).
Процедуры (подпрограммы) и функции, определяемые программистом, приводятся в разделе описания основной программы. Процедуры и функции имеют заголовок, раздел описания и раздел операторов.
Заголовок процедуры состоит из служебного слова Procedure, имени процедуры и списка параметров, например:
P rocedure Name_P(p1, p2,...: "тип"; Var p3,p4,...: "тип";...);
Файл. В прикладных программах, как правило, имеется большое число входных и выходных данных, причем часто возникает необходимость передачи данных из одной программы в другую. Поэтому данные хранятся в файлах и при необходимости считываются, а также записываются в файлы операторами программы. Напомним, что файлом называется именованная область внешней памяти ЭВМ, содержащая различные данные. Доступ к данным в файле может быть прямым или последовательным в зависимости от типа файла. Рассмотрим работу с данными текстовых файлов.
Текстовые файлы представляют совокупность строк переменной длины с последовательным доступом к данным, т. е. данные записываются на диск и считываются только последовательно. Информация в текстовых файлах хранится в символьном (текстовом) виде. При записи числовых или логических значений происходит автоматическое преобразование данных в символьный тип, а при считывании данные автоматически преобразуются в машинные коды. Строки текстового файла заканчиваются символом #13- Enter и #10 - возврат каретки. В конце файла устанавливается код #26. При записи, в файл данные записываются подряд, а управляющие символы устанавливаются автоматически оператором Writeln. Управляющие символы работают при просмотре/редактировании
файла на экране или при печати, но при этом, как правило, не показываются.
2. Постановка задачи
Условие задачи: написать программу, создающую телефонный справочник с реквизитами: Фамилия, имя, отчество; номер телефона. Обеспечить просмотр записей справочника, редактирование номера телефона абонента, поиск.
Для формирования массива записей справочника разработана процедура Creat_Book_Phone. Для просмотра записей справочника – процедура Output_All_Record, для редактирования номеров телефонов - Update_Record, для поиска абонента по фамилии – процедура Find_Fio.
При выполнении программа выводит на экран меню, состоящее из 5 пунктов: 1-создание телефонной книги, 2 – обзор телефонного справочника, 3 - редактирование справочника, 4 - поиск абонента, 0 - выход.
В программе используются следующие данные:
-
Baza – массив записей телефонного справочника. Каждая запись массива состоит из двух полей: Fio – фамилия, имя, отчество абонента, длина поля состоит из 20 символов, Phone – номер абонента, длина поля – 10 символов. -
N – максимальное количество записей в справочнике, целочисленная константа равна 50. -
Phonebook – файл, в который записываются данные из массива. Из файла данные считываются, и выполняются пункты меню: «2», «3», «4». -
Count – текущее количество записей в справочнике, целочисленная переменная, значение которой не должно превышать значение N. -
Name – строка длинной в 20 символов для доступа к полю Fio записи справочника. -
Vid – целочисленная переменная для выбора вида работы, принимает значения 0,1,2,3,4. -
End_Menu – логическая переменная, значение True которой является условием завершения работы программы.
3. Алгоритм решения задач
нет
a) Блок-схема алгоритма программы
b) Блок-схема процедуры формирования справочника
1
c) Блок-схема процедуры просмотра справочника
d) Блок-схема процедуры редактирования записей
1
e) Блок-схема поиска номера абонента по фамилии
1
4. Инструкция пользователя
1) Запустить программу Turbo Pascal 7.0
2) Открыть файл «Телефонный справочник» с расширением pas
3) Нажать Ctrl+F9 для запуска телефонного справочника
4) В появившемся меню, выбрать необходимый пункт:
- Sozdanie telefonnoi knigi
- Obzor telefonnogo spravo4nika
- Redaktirovanie spravo4nika
- Poisk abonenta
- Vyhod
Sozdanie telefonnoi knigi – функция для формирования справочника, внесение в телефонную книгу фамилии, имени, отчества и номера абонента.
Obzor telefonnogo spravo4nika – функция для просмотра всего справочника, с выводом всех данных, находящихся в справочнике.
Redaktirovanie spravo4nika – функция для редактирования телефонного справочника, которая позволяет редактировать номер телефона любого абонента, находящегося в справочнике и добавлять новых абонентов.
Poisk abonenta – функция для поиска номера телефона абонента, находящегося в телефонном справочнике.
Vyhod – функция для завершения работы с телефонным справочником.
5) Для выхода из Turbo Pascal 7.0 необходимо выбрать в меню функцию File, затем в появившемся подменю выберите Exit, ваша работа с Turbo Pascal 7.0 завершена.
5. Список используемой литературы
1.Сидоров М. Е. , Трушин О. В.
Школа работы на IBM PC. пакета Turbo-Pascal 7.0 Часть 2.
2.В.И. Зелинский
Учебник по Turbo-Pascal 7.0
3.В.В. Фараонов
Программирование на персональных ЭВМ в среде Turbo-Pascal
4.Д.Б. Поляков, И.Ю. Круглов
Программирование в среде Turbo-Pascal
5.В.А. Зуев
Программирование на языке Turbo-Pascal 6.0, 7.0
-
Приложение
program phonbook;
uses crt;
const n=50;
type
stfio=string[20];
stphone=string[10];
recbook=record
end;
recbaza=record
fio:stfio;
phone:stphone;
end;
var
{book:array [1..n] of recbook;}
baza:array [1..n] of recbaza;