- •Ф.Ф. Павлов языки программирования
- •Санкт-Петербург
- •230201 - Информационные системы и технологии
- •Тема 2 посвящена изучению жизненного цикла программы и основным этапам решения задач на эвм.
- •Тема 4 изучает типы пользовательских интерфейсов, классификацию диалогов и основные компоненты графических пользовательских интерфейсов.
- •Тема 8 посвящена структурам данных фиксированного размера (массивы), а также типам данных, определяемых пользователем (структуры, объединения, перечисления).
- •Тема 10 изучает динамические структуры данных: виды и способы реализации списков, динамическое выделение памяти.
- •Тема 12 затрагивает вопросы обработки файлов данных: понятия записи, файла данных и способы доступа, операции и средства обработки файлов, контроль операций обработки файлов.
- •Тема 14 вводит в технологию объектно-ориентированного программирования.
- •Раздел I Принципы программирования на языках высокого уровня
- •Тема 1. Эволюция языков программирования
- •1.1. Неструктурированное, «стихийное» программирование
- •1.2. Процедурное (модульное) программирование
- •1.3. Объектно-ориентированное программирование
- •1.4. Компонентные технологии программирования
- •Тема 2. Жизненный цикл программы и основные
- •2.1. Дружественность, жизненный цикл программы
- •2.2. Постановка задачи и спецификация программы
- •2.3. Проектирование и реализация программы
- •2.4. Способы записи алгоритма
- •2.5. Критерии качества программы
- •3.1. Классификация программных продуктов
- •3.3. Модели программирования в ms-dos и Windows
- •Тема 4. Диалоговые программы
- •4.1. Типы пользовательских интерфейсов
- •4.2. Классификация диалогов и их реализация
- •4.3. Основные компоненты графических
- •Тема 5. Программа на языке высокого уровня
- •5.1. Структура программы и функции
- •5.2. Стандартные типы данных и операции над ними
- •5.3. Адресные типы данных: указатели и ссылки
- •5.4. Стандартные библиотеки языка
- •5.5. Классы памяти
- •Раздел 2 Управляющие структуры и структуры данных
- •Тема 6. Представление управляющих структур
- •6.1. Структура следования
- •6.2. Структуры ветвления
- •6.3. Структуры повторения
- •Int kol, //счетчик введенных оценок
- •Int god; //число лет
- •Тема 7. Адресные типы данных
- •7.1. Указатели
- •7.2. Ссылки
- •Тема 8. Структуры данных фиксированного размера
- •8.1. Массивы
- •8.2. Типы данных, определяемые пользователем
- •Тема 9. Функции (процедуры)
- •9.1. Определение, прототип и вызов функции
- •9.2. Передача параметров
- •9.3. Программирование рекурсивных алгоритмов
- •Тема 10. Динамические структуры данных
- •10.1. Списки: основные виды и способы реализации
- •10.2. Динамическое выделение памяти
- •Раздел 3 Процедурное программирование
- •Тема 11. Ввод/вывод данных
- •11.1. Видеофункции библиотеки conio.H
- •11.2. Функции библиотеки потокового ввода/вывода
- •Тема 12. Обработка файлов данных
- •12.1. Записи и файлы данных
- •12.2. Операции и средства обработки файлов
- •12.3. Контроль операций обработки файлов
- •Тема 13 Технология процедурного программирования
- •13.1. Способы конструирования программ
- •13.2. Проектирование программы: методы декомпозиции и и модульного программирования
- •13.3. Реализация программы: методы структурного
- •Тема 14. Введение в технологию объектно-
- •14.1. Основные понятия объектно-ориентированного
- •14.2. Проектирование программы
- •14.3. Реализация программы
- •Утверждаю
- •Рабочая программа
- •Технология программирования
- •Санкт-Петербург
- •Тема 1. Технология программирования и этапы ее
- •Тема 2. Жизненный цикл программы и основные этапы
13.2. Проектирование программы: методы декомпозиции и и модульного программирования
Рассмотрим технологию процедурного программирования на конкретном примере операций с базой данных.
Пример 8. «БД счетов клиентов банка»
Условие задачи:
имеются сведения о счетах клиентов банка: номер счета, фамилия, имя, баланс;
создать программу «БД счетов клиентов банка», которая способна добавлять новый счет, обновлять счет, удалять счет, выводить все данные по счетам.
Этап постановки задачи заканчивается разработкой технического задания:
1 Введение
ТЗ распространяется на разработку программной системы «БД счетов клиентов банка».
2 Основание для разработки
Система разрабатывается в качестве индивидуального задания по дисциплине «Технология программирования».
3 Назначение
Система предназначена для хранения и обработки сведений о счетах клиентов банка.
4 Требования к программному изделию.
4.1 Требования к функциональным характеристикам
4.1.1 Система должна обеспечить выполнение следующих функций:
создание текстового файла о счетах клиентов банка;
добавление нового счета клиента;
обновление счета клиента;
удаление счета клиента.
4.1.2 Исходные данные:
номер счета клиента (от 1 до 100);
фамилия;
имя;
баланс клиента.
4.1.3 Результаты:
список счетов клиентов банка;
сведения о новом счете клиента банка;
сведения об обновлении счета клиента банка;
сведения об удалении счета клиента банка.
4.2 Требования к надежности
4.2.1 Предусмотреть контроль открытия файлов.
4.2.2 Предусмотреть контроль ввода номера счета
(от 1 до 100)
4.3 Требования к составу и параметрам технических средств
4.3.1 Система должна работать на ПК IBM PC
4.3.2 Минимальная конфигурация:
тип процессора – Pentium;
объем ОЗУ – 32 Мб
4.4 Требования к информационной и программной
совместимости.
Система должна работать под управлением семейства операционных систем Win32 (Windows 95, 98, 2000, NT, XP).
5 Требования к программной документации
5.1 Разрабатываемые программные модули должны быть самодокументированы, т. е. тексты программ должны содержать комментарии.
5.2. В состав сопровождающей документации входят:
пояснительная записка, содержащая описание разработки;
руководство пользователя;
тексты программ.
6 Технологические требования:
архитектура – однопользовательская;
класс программного продукта – программная система;
интерфейс – меню;
метод программирования – процедурный;
язык и среда программирования – С++ , Microsoft Studio 2005.
Этап определения спецификаций заканчивается эскизным проектом. Эскизный проект представляет полное и точное описание функций, выраженное в виде диаграммы переходов состояний, представленной на рис. 13.1.
Рис. 13.1. Диаграмма переходов состояний
Четыре скругленных линии определяют четыре функции программного обеспечения, ожидающие команд меню:
создание текстового файла и вывод данных;
добавление нового счета;
обновление счета;
удаление счета.
Переходим к этапу проектирования программы.
Спроектируем меню задачи:
MENU
1-Sozdanie textfile
2-Dobavlenie zap
3-Zamena zap
4-Udalenie zap
5-Konec
Применяя метод функциональной декомпозиции, спроектируем структуру программы, как иерархию функций. Разобъем алгоритм программы на функциональные части согласно опциям меню, каждая из которых будет реализована отдельной функцией. Далее анализируя алгоритмы функций zamzap(), dobzap, udzap, обнаруживаем общий фрагмент, связанный с вводом номера счета. Выносим этот фрагмент из функций на нижний уровень и создаем новую функцию, а в функциях вставляем по одному оператору вызова новой функции. Аналогично формируем новую функцию vyvod(). Структура программы представлена на рис. 13.2.
Рис. 13.2. Структура программы
Меню программы имеет 5 опций.
Опция «1-Sozdanie textfile» вызывает функцию textfile, которая создает текстовый файл с именем print.txt для последующего форматированного вывода. Функция textfile принимает объект класса fstream в качестве аргумента, который используется при вводе данных из файла credit.dat. Функция использует элемент-функцию read класса istream и методы последовательного доступа к файлу для ввода данных из файла credit.dat. Функция vyvod используется для вывода данных из файла используется для вывода данных в файл print.txt. После выбора опции 1 файл print.txt будет содержать:
Счет Фамилия Имя Баланс
хх хх хх хх
Опция «2-Dobavlenie zap» вызывает функцию dobzap для добавления нового счета в файл. Если пользователь вводит номер существующего счета, то функция dobzap выводит сообщение о том, что счет уже имеется, и выводит на экран меню.
Типичный вывод для опции 2 следующий:
Введите новый номер счета: 22
Введите фамилию, имя, баланс
? Ivanov Ivan 247.45
Опция «3- Zamena zap» вызывает функцию zamzap для обновления счета. Функция будет обновлять только существующую запись, поэтому функция сначала определяет, не является ли указанная запись незанятой. Запись считывается в структуру client с помощью элемента-функции read класса istream, затем client.nomer сравнивается с нулем, чтобы определить, содержит ли запись какую-либо информацию. Если client.nomer – нуль, то печатается сообщение, что запись является пустой, и на экран выводится меню. Если запись содержит какие-либо сведения, то функция zamzap выводит запись на экран, используя функцию vyvod , затем вводит данные, вычисляет новый баланс и перезаписывает данные в файле.
Типичный вывод для опции 3 следующий:
Введите счет для обновления: 37
37 Petrov Petr 0.00
Введите расход (+) или доплату (-) : +87.99
37 Petrov Petr 87.99
Опция «4-Udalenie zap» вызывает функцию udzap для удаления записи из файла. Пользователю печатается приглашение ввести номер счета. Только существующая запись может быть удалена. Поэтому, если указанный счет является пустым, выводится сообщение об ошибке. Если счет существует, то он заново инициализируется путем копирования в файл незаполненной записи (client0). На экран выводится сообщение, что запись удалена. Типичный вывод для опции следующий:
Введите номер счета для удаления: 29
Счет № 29удален