![](/user_photo/2706_HbeT2.jpg)
- •Ю.А Петров Программирование на языке высокого уровня
- •Часть 1
- •Введение
- •Задание
- •Комментарии
- •Идентификаторы
- •Ключевые слова
- •Константы
- •Управляющие последовательности
- •Строковые литералы
- •Константные выражения
- •Пунктуаторы
- •Операции
- •Задание на лабораторную работу 2 разработка программы линейной структуры Цель работы
- •Отчет по лабораторной работе должен содержать:
- •Задание
- •Замечания
- •Варианты заданий
- •Классификация ошибок
- •Ошибки, не обнаруженные компилятором
- •Ситуации, возникающие при неверных результатах
- •Отладка программы
- •Предупреждения
- •Первое сообщение об ошибке
- •Использование команд Find и Replace
- •Быстрое обнаружение ошибочных строк
- •Продолжение отладки
- •Использование встроенного отладчика
- •Разница между командами Step Into и Step Over
- •Дополнительные средства отладки
- •Работа с точками останова
- •Краткая характеристика объектов
- •Формат 1:
- •Стиль программирования
- •Задание на лабораторную работу 4 объекты и их характеристики Цель работы
- •В отчете по лабораторной работе следует представить:
- •5 Структурное программирование
- •Пример1
- •Пример 2
- •Задание на лабораторную работу 5 разработка программы со структурой «развилка» Цель работы
- •Задание:
- •Варианты задания
- •Задание на лабораторную работу 6 создание цикловых программ с фиксированным числом повторений Цель работы
- •Задание
- •Варианты задания
- •Задание на лабораторную работу 7 создание программ с итерационными циклами Цель работы
- •Задание
- •Варианты задания
- •Пояснения к выполнению лабораторной работы 7
- •6 Агрегаты данных
- •Структура
- •Объединения
- •Перечисления
- •Int array[3]; // Объявление определения;
- •Многомерные массивы
- •Вывод в файловый поток
- •Чтение из входного файлового потока
- •Чтение целой строки файлового ввода
- •Определение конца файла
- •Проверка ошибок при выполнении файловых операций
- •Закрытие файла
- •Управление открытием файла
- •Выполнение операций чтения и записи
- •Задание на ргз 1 использование структур данных при решении задач Цель работы
- •Задание
- •Варианты задания
- •7 Модульное программирование
- •Задание на ргз 2 использование модульного программирования при решении задач
- •Перемещаемые панели инструментов
- •Меню File
- •Меню Edit
- •Меню View
- •Меню Insert
- •Меню Project
- •Меню Build
- •Меню Tools
- •Меню Window
- •Список открытых окон
- •Меню Help
- •Приложение 2 Некоторые функции языка с
- •Используемая литература
- •Оглавление
- •5 Структурное программирование 53
Выполнение операций чтения и записи
Все рассмотренные нами программы выполняли файловые операции над символьными строками, однако такие операции могут выполняться над массивами и структурами данных. В этом случае используются функции read() и write().
При использовании функций read() и write() следует использовать буфер данных, в котором данные будут накапливаться, а затем переписываться. Размер буфера определяется операцией sizeof():
input_file.read(buffer, sizeof(buffer)) ;
output_file.write(buffer, sizeof(buffer));
Следующая программа STRU_OUT.CPP использует функцию write() для вывода содержимого структуры в файл EMPLOYEE.DAT:
#include <iostream.h>
#include <fstream.h>
void main(void)
{
struct employee
{
char name[64];
int age;
float salary;
} worker = { "Джон Дой", 33, 25000.0 };
ofstream emp_file("EMPLOYEE.DAT") ;
emp_file.write((char *) &worker, sizeof(employee));
}
Функция write() обычно получает указатель на символьную строку. Символы (char *) представляют собой оператор приведения типов, который информирует компилятор, что передается указатель на другой тип. Подобным образом следующая программа STRU_IN.CPP использует метод read() для чтения из файла информации о служащем:
#include <iostream.h>
#include <fstream.h>
void main(void)
{
struct employee
{
char name [6 4] ;
int age;
float salary;
} worker = { "Джон Дой", 33, 25000.0 };
ifstream emp_file("EMPLOYEE.DAT");
emp_file.read((char *) &worker, sizeof(employee));
cout << worker.name << endl;
cout << worker.age << endl;
cout << worker.salary << endl;
}
Задание на ргз 1 использование структур данных при решении задач Цель работы
Научиться разрабатывать структуры данных;
Научиться разрабатывать программы с агрегатами данных;
Закрепить навыки создания исходного кода, его компиляции, компоновки и отладки.
Задание
Составить программу обработки данных в виде структур. Исходные данные организовать в виде массива структур и его инициализацию выполнить из файла с данными с форматом txt.
Разработать интерфейс пользователя в виде меню из нескольких пунктов (например, чтение данных из файла; вывод данных на экран дисплея; выборка данных из массива структур; вывод на экран результатов обработки данных; выход из программы и др.).
Отчет о работе должен содержать:
титульный лист;
постановку задачи;
описание идентификаторов, используемых в программе;
алгоритм решения задачи;
блок-схему всей задачи;
текст программы;
результаты отладки и работы программы по каждому пункту меню.
Варианты задания
Создать файл, содержащий сведения о сдаче студентами сессии. Структура записи: индекс группы, фамилия студента с его инициалами, оценки по четырем экзаменам и пяти зачетам («з» означает зачет, «н» – незачет). Экзамены и зачеты нумеровать цифрами. Количество записей в файле не менее двадцати.
Разработать программу, выводящую следующую информацию:
фамилии неуспевающих студентов с указанием индексов групп и вида задолженности;
фамилии студентов, сдавших все зачеты и получившие на экзаменах четверки и пятерки;
средний бал, полученный каждым студентом.
Создать файл, содержащий сведения о сдаче студентами сессии. Структура записи: фамилия студента с его инициалами, оценки по четырем экзаменам, признаки участия в общественной жизни университета (0 – не участвует, 1 – участвует), признаки участия в научно-исследовательской работе (0 – не участвует, 1 – участвует).
Разработать программу, которая по требованию деканата будет выдавать следующие сведения:
список студентов, которым назначена повышенная (на 25 %) стипендия за отличную учебу, активное участие в общественной жизни и научно-исследовательской работе;
список студентов, которым назначена повышенная (на 15 %) стипендия за хорошую и отличную учебу (не менее двух пятерок), активное участие в общественной жизни и научно-исследовательской работе;
список студентов, которым назначена обычная стипендия, получившим в сессию хорошие и отличные оценки, но не участвующие в общественной жизни и научно-исследовательской работе. Студенту, получившему одну тройку, но активно занимающемуся научной работой, также назначается обычная стипендия;
список студентов, которым не назначена стипендия (неуспевающим и имеющим более одной тройки).
Создать файл, содержащий сведения о студентах. Структура записи: группа, фамилия студента с его инициалами, пол, признаки успеваемости по дисциплинам (1 – тройки и четверки, 2 – тройки, четверки и пятерки, 3 – четверки и пятерки, 4 – отличник), владение специальностью (0 – нет, 1 – повар, 2 – каменщик, 3 – бетонщик, 4 – плотник).
Разработать программу, позволяющую отобрать студентов для участия в стройотряде. По требованию деканата выдавать следующие сведения:
список всех студентов, владеющих специальностью повара, с указанием успеваемости кандидатов на вакантную должность повара;
список студентов, владеющих строительной специальностью плотника, с указанием успеваемости для формирования бригады плотников и назначения бригадира;
список студентов, владеющих строительной специальностью каменщика или бетонщика, для формирования бригады каменщиков и назначения бригадира.
Создать файл, содержащий сведения о запрошенных в течение рабочего дня в читальном зале библиотеки учебных пособиях. Структура записи: раздел обозначается цифрой (программирование – 1, математика – 2, физика – 3), автор, название пособия, издательство, год издания.
Составить программу, помогающую библиотечному работнику составить отчет о работе читального зала:
сведения о выданных учебных пособиях по математике;
сведения о пособиях, вышедших в свет в текущем году (т.е. сведения о новых поступлениях), по всем разделам;
сведения о пособиях, написанных конкретным автором.
Создать файл, содержащий сведения о студентах. Структура записи: фамилия студента и его инициалы; пол (один символ «м» или «ж»); средний бал за весь период обучения; признак места проживания родителей студента (один символ: К – комсомольчанин, Н – живет в Комсомольском районе, И – иногородний).
Составить программу обработки данных о студентах группы для их распределения по местам работы. Выдавать по требованию деканата следующие сведения:
список всех студентов, отсортированный по убыванию среднего балла успеваемости за период обучения;
список студентов-комсомольчан по убыванию среднего балла успеваемости;
список девушек по убыванию среднего балла успеваемости;
список юношей по убывания среднего балла успеваемости.
Создать файл, содержащий сведения о магазинах. Структура записи: название улицы, номер дома, номер телефона (пять цифр), тип магазина (булочная, гастроном и т.д.).
Составить программу, помогающую администрации района получить следующую информацию:
сведения обо всех магазинах заданного типа (булочная, гастроном и т.д.);
сведения обо всех магазинах, находящихся на заданной улице;
адрес магазина по заданному номеру телефона;
Составить программу, помогающую сотрудникам Государственной инспекции безопасности дорожного движения (ГИБДД) обработать следующие данные: регистрационный номер автомобиля, марка автомобиля, цвет автомобиля, год выпуска, адрес владельца. Программа должна по требованию пользователя выдавать следующие сведения:
адреса владельцев автомобилей заданной марки, определенного цвета;
все данные об автомобиле с заданным регистрационным номером;
все данные об автомобилях с известной цифровой частью регистрационного номера.
Составить программу, обрабатывающую следующую информацию о владельцах телефонов: фамилия абонента, год установки телефона, номер телефона, адрес абонента.
Программа должна по запросу пользователя выдавать следующую информацию:
фамилии абонентов и их номера телефонов;
список номеров телефонов и адреса абонентов;
номера телефонов, установленных в определенном году.
Создать файл, содержащий сведения об ассортименте игрушек в магазине «Детский мир» по следующим данным: название игрушки, цена, количество, возрастные границы детей, для которых она предназначена (например: 2 – 5, т.е. от двух до пяти лет).
Написать программу, в результате выполнения которой выдаются следующие сведения:
названия игрушек, которые предназначены для детей одного возрастного периода;
стоимость самой дорогой игрушки и ее наименование;
название игрушек, стоимость которых не превышает х рублей и подходит ребенку в возрасте от а до b лет. Значения: х, a, b ввести с клавиатуры.
Составить программу, помогающую сотрудникам глазной клиники. Имеются следующие данные о пациентах: фамилия, пол, возраст, место проживания (город), диагноз. Программа должна по требованию выдавать следующую информацию:
список пациентов старше Х лет с диагнозом Y;
список пациентов, прибывших на лечение из разных городов.
Имеются следующие данные о жителях микрорайона: фамилия, имя, отчество, пол, дата рождения, семейное положение, отношение к воинской службе, домашний адрес. Составить программу, выдающую следующую информацию сотрудникам паспортно-визовой службы:
список для голосования жителей микрорайона старше 18 лет с указанием необходимых реквизитов;
список для военкомата мужчин призывного возраста, не служивших в армии.
В файле записана следующая информация о сотрудниках предприятия: отдел предприятия, должность, фамилия и инициалы, пол, дата рождения, семейное положение, домашний адрес, дата поступления на работу.
Составить программу, выдающую следующую информацию сотрудникам отдела кадров:
список для поздравления сотрудников с днем рождения в заданном месяце;
список сотрудников, проработавших на предприятии более заданного количества лет для присуждения премии.
В файле записаны реквизиты 20 вкладчиков госбанка: номер счета, фамилия и инициалы, домашний адрес, дата операции, приход/расход, сумма вклада. Выдать следующую информацию контролеру госбанка:
фамилии вкладчиков, посетивших банк в текущем месяце, и их домашний адрес;
номера счетов, чьи вклады составляют более а рублей, и их реквизиты (переменную а запросить с клавиатуры).
В жилищно-эксплуатационном участке (ЖЭУ) необходимо обработать следующую информацию о каждом жильце микрорайона: фамилию и инициалы, адрес, общую жилую площадь, сумму оплаты за все услуги в месяц, дату последней оплаты за все услуги.
Выдать бухгалтеру ЖЭУ следующие документы:
список задолженников со всеми реквизитами;
список жителей, не имеющих задолженности на текущий момент времени.
В пассажирском автохозяйстве ведется учет состояния автопарка по реквизитам: марка автобуса, его гаражный номер, дата выпуска, дата последнего техосмотра, техническое состояние (требуется техосмотр, текущий ремонт, капитальный ремонт, автобус исправен), фамилия закрепленного за автобусом водителя.
Выдать механику гаража следующую информацию:
список всех автобусов, годных к эксплуатации;
список автобусов, требующих ремонтных работ;
список автобусов, подлежащих техосмотру.
В магазине «Игротехника» ведется учет продажи лазерных дисков. Учитывается следующая информация: номер тома (диска), категория диска (игра, музыкальный диск, системное программное обеспечение (ПО), специальное ПО), стоимость диска, дата продажи.
Выдать директору магазина следующие документы:
сводку продаж лазерных дисков в заданном месяце по категориям и общую сумму выручки;
ведомость наличия лазерных дисков со всеми реквизитами и общую сумму их стоимости.
В поликлинике 5 врач-терапевт имеет следующую информацию о больных: фамилию и инициалы больного, его возраст, место работы, дату приема, диагноз заболевания, выдачу больничного листа. Сформировать и выдать сводную ведомость:
приема больных со всеми реквизитами за текущий месяц;
больных, получивших больничный лист, с указанием диагноза заболевания и места работы.
Диспетчер принимает заказы на ремонт обуви и выдает квитанции заказчикам, в которых указывает: номер квитанции, дату приема обуви, фамилию заказчика, его адрес, вид обуви, срок исполнения заказа, стоимость работы, фамилию мастера.
Сформировать и выдать следующие документы:
сводную ведомость работ, выполненных мастерской со всеми реквизитами;
ведомость работ по датам исполнения заказов и по фамилиям мастеров;
ведомость заработанной суммы каждым мастером в текущем месяце с указанием общей суммы, полученной мастерской.
Секретарь ведет запись посетителей к народному депутату в журнале с указанием реквизитов: даты приема, фамилии и инициалов посетителя, пола, возраста, образования, местожительства, места работы, решаемого вопроса. Выдать народному депутату следующие документы:
список посетителей на конкретный день приема с полными реквизитами;
сводный список всех посетителей с указанием фамилии, возраста, пола, места работы.
На складе ведется учет поступления материалов по следующим реквизитам: дата поступления материала, наименование материала, единица измерения, стоимость единицы измерения, количество.
Выдать следующие документы заведующему складом:
сводную ведомость поступивших материалов со всеми реквизитами;
ведомость материалов, имеющихся на складе, с указанием их единиц измерения, количества, стоимости единицы измерения, общей суммы материала.
Для учёта вырабатываемой продукции хлебозавод использует следующие реквизиты: наименование изделия, сорт, единицы измерения, количество, дата выработки, срок реализации. Создать следующие документы:
сводную ведомость изделий хлебозавода со всеми реквизитами;
ведомость изделий хлебозавода, срок реализации которых не более 48 часов, со всеми реквизитами.
Аккумуляторный завод выпускает продукцию, для учёта которой использует следующие реквизиты: наименование изделия, дату выпуска, срок гарантии, количество выпущенной продукции, стоимость единицы изделия. Выдать пользователю следующие документы:
сводную ведомость изделий со всеми реквизитами;
список изделий, изготовленных в текущем месяце, с указанием полной стоимости изделий.
Трамвайное предприятие ведет учет выпущенного на линию транспорта, используя следующие реквизиты: номер маршрута, гаражный номер трамвая, фамилию водителя, время одного рейса (в минутах), количество рейсов в смену.
Выдать диспетчеру трамвая следующую информацию:
полный список трамваев на линии со всеми реквизитами;
список трамваев на конкретном маршруте со всеми реквизитами;
количество отработанных часов каждым водителем трамвая.
На метеостанции учет данных о погоде с интервалом в один час ведется по следующим реквизитам: дате, времени, температуре, давлению, влажности, виду осадков (0 – осадков нет, 1 – дождь, 2 – снег), видимости в метрах. Аэропорт запрашивает следующие данные:
данные о погоде на заданное число в заданный интервал времени со всеми реквизитами;
среднюю температуру воздуха на заданное число;
время, в которое была максимальная видимость.
На проходной режимного предприятия ведется учет работников предприятия по следующим реквизитам: дата входа, табельный номер, фамилия и инициалы, номер цеха, время входа, время выхода.
Отдел кадров предприятия запрашивает следующие данные:
список работников, вышедших на работу в указанный день со всеми реквизитами;
количество часов рабочего времени каждого работника данного цеха;
количество часов рабочего времени конкретного работника данного цеха за регистрируемый промежуток времени.