Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Телефон.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
817.66 Кб
Скачать

Описание логической структуры системы

(Class diagram)

Phone

Класс – телефон. В этом классе находятся текущий статус телефона и текущий набираемый номер. А также методы для их обработки (set,get). Также этот класс взаимодействует с классами AutoTelStation и LastNumber, поэтому он включает методы передачи данных в эти классы (TakeTubeState и LastNumber)

LastNumber

Класс – память. В этом классе находится последний набранный номер. А также функции Remember и Recall для работы с этим полем и для взаимодействия с классом phone.

AutoTelStation

Класс – АТС. У данного класса есть поле статус, которое показывает текущий статус АТС. Также функции set и get для работы с этим полем. А также функция TakeTubeState для передачи сигнала в телефон и TalkState функция обработки сигналов.

PersonDlg

Класс – диалог для сбора данных. У данного класса есть поле «имя», которое содержит имя человека и поле «телефон», содержащее записанный номер телефона. А также функция OnOk() для подтверждения ввода данных для записи.

RecordTel

Класс – запись. У данного класса есть поле «имя», которое содержит имя человека и поле «телефон», содержащее записанный номер телефона.

Процесс генерации программного кода

Для создания программы в среде Visual C++ был использован проект типа SDI с поддержкой архитектуры документ/отображение и с использованием библиотеки MFC.

Таким образом, для выполнения таких вещей как хранение данных, сохранение их на диске, чтение с диска отвечает объект класса СTelSystemDoc, производного от CDocument.

Пользователь взаимодействует с документом, который изображен внутри окна-рамки. Каркас MFC приложения использует окна-рамки для обрамления окон видом, таким образом, он вводит разделение функций окна приложения на два компонента. Оба компонента представлены и управляются двумя различными классами MFC. Класс главного окна приложения CMainFrame, производный от CFrameWnd, управляет рамкой, а класс СTelSystemView, производный от CFormView, управляет содержимым окна-рамки. Содержимое окна-рамки целиком оккупируется окном вида так как использовался проект типа SDI, следовательно может быть открыт только один документ в главном окне.

Основным классом является класс СTelSystemApp, производный от CWinApp. Объект этого класса управляет всеми объектами приложения.

Описание С++ программы

Определения классов:

Phone

Данный класс используется как своеобразный интерфейс для пользователя.

Он имеет два поля типа int и char*, в которых хранится соответственно текущий статус телефона и текущий набираемый номер. А также он содержит методы для работы с этими полями и методы взаимодействия с классами LastNumber и AutoTelStation.

LastNumber

В данном классе хранится последний набранный номер типа char*. И два метода работы с ним. Методы для чтении и записи.

AutoTelStation

Данный класс используется как «посредник» между пользователем и собеседником.

Он содержит одно поле – поле статус типа int. И методы работы с ним. А также функцию передачи сигнала классу Phone.

PersonDlg

Данный класс используется как «посредник» между пользователем и телефоном.

Он содержит два поля – поле «имя» типа CString и поле «номер телефона» типа CString. И метод для подтверждения ввода данных.

RecordTel

В данном классе хранится запись телефонной книги. Он содержит два поля – поле «имя» типа CString и поле «номер телефона» типа UINT.

Определения структур хранения данных:

Phone

Сondition типа int для хранения статуса телефона

Number типа char* для хранения текущего набираемого номера телефона

AutoTelStation

Сondition типа int для хранения статуса АТС

LastNumber

Number типа char* для хранения последнего набранного номера

PersonDlg

m_fio типа CString для хранения имени человека в записи

m_phone типа CString для хранения номера телефона человека в записи

RecordTel

name типа CString для хранения имени человека в записи

number типа UINT для хранения номера телефона человека в записи