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
ИСПОЛЬЗОВАНИЕ СТРУКТУР ДАННЫХ ПРИ РЕШЕНИИ ЗАДАЧ

Цель работы

1. Научиться разрабатывать структуры данных;

2. Научиться разрабатывать программы с агрегатами данных;

3. Закрепить навыки создания исходного кода, его компиляции, компоновки и отладки.

Задание

1. Составить программу обработки данных в виде структур. Исходные данные организовать в виде массива структур и его инициализацию выполнить из файла с данными с форматом txt.

2. Разработать интерфейс пользователя в виде меню из нескольких пунктов (например, чтение данных из файла; вывод данных на экран дисплея; выборка данных из массива структур; вывод на экран результатов обработки данных; выход из программы и др.).

Отчет о работе должен содержать:

· титульный лист;

· постановку задачи;

· описание идентификаторов, используемых в программе;

· алгоритм решения задачи;

· блок-схему всей задачи;

· текст программы;

· результаты отладки и работы программы по каждому пункту меню.

Варианты задания

1. Создать файл, содержащий сведения о сдаче студентами сессии. Структура записи: индекс группы, фамилия студента с его инициалами, оценки по четырем экзаменам и пяти зачетам («з» означает зачет, «н» – незачет). Экзамены и зачеты нумеровать цифрами. Количество записей в файле не менее двадцати.

Разработать программу, выводящую следующую информацию:

· фамилии неуспевающих студентов с указанием индексов групп и вида задолженности;

· фамилии студентов, сдавших все зачеты и получившие на экзаменах четверки и пятерки;

· средний бал, полученный каждым студентом.

2. Создать файл, содержащий сведения о сдаче студентами сессии. Структура записи: фамилия студента с его инициалами, оценки по четырем экзаменам, признаки участия в общественной жизни университета (0 – не участвует, 1 – участвует), признаки участия в научно-исследовательской работе (0 – не участвует, 1 – участвует).

Разработать программу, которая по требованию деканата будет выдавать следующие сведения:

· список студентов, которым назначена повышенная (на 25 %) стипендия за отличную учебу, активное участие в общественной жизни и научно-исследовательской работе;

· список студентов, которым назначена повышенная (на 15 %) стипендия за хорошую и отличную учебу (не менее двух пятерок), активное участие в общественной жизни и научно-исследовательской работе;

· список студентов, которым назначена обычная стипендия, получившим в сессию хорошие и отличные оценки, но не участвующие в общественной жизни и научно-исследовательской работе. Студенту, получившему одну тройку, но активно занимающемуся научной работой, также назначается обычная стипендия;

· список студентов, которым не назначена стипендия (неуспевающим и имеющим более одной тройки).

3. Создать файл, содержащий сведения о студентах. Структура записи: группа, фамилия студента с его инициалами, пол, признаки успеваемости по дисциплинам (1 – тройки и четверки, 2 – тройки, четверки и пятерки, 3 – четверки и пятерки, 4 – отличник), владение специальностью (0 – нет, 1 – повар, 2 – каменщик, 3 – бетонщик, 4 – плотник).

Разработать программу, позволяющую отобрать студентов для участия в стройотряде. По требованию деканата выдавать следующие сведения:

· список всех студентов, владеющих специальностью повара, с указанием успеваемости кандидатов на вакантную должность повара;

· список студентов, владеющих строительной специальностью плотника, с указанием успеваемости для формирования бригады плотников и назначения бригадира;

· список студентов, владеющих строительной специальностью каменщика или бетонщика, для формирования бригады каменщиков и назначения бригадира.

4. Создать файл, содержащий сведения о запрошенных в течение рабочего дня в читальном зале библиотеки учебных пособиях. Структура записи: раздел обозначается цифрой (программирование – 1, математика – 2, физика – 3), автор, название пособия, издательство, год издания.

Составить программу, помогающую библиотечному работнику составить отчет о работе читального зала:

· сведения о выданных учебных пособиях по математике;

· сведения о пособиях, вышедших в свет в текущем году (т.е. сведения о новых поступлениях), по всем разделам;

· сведения о пособиях, написанных конкретным автором.

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

Составить программу обработки данных о студентах группы для их распределения по местам работы. Выдавать по требованию деканата следующие сведения:

· список всех студентов, отсортированный по убыванию среднего балла успеваемости за период обучения;

· список студентов-комсомольчан по убыванию среднего балла успеваемости;

· список девушек по убыванию среднего балла успеваемости;

· список юношей по убывания среднего балла успеваемости.

6. Создать файл, содержащий сведения о магазинах. Структура записи: название улицы, номер дома, номер телефона (пять цифр), тип магазина (булочная, гастроном и т.д.).

Составить программу, помогающую администрации района получить следующую информацию:

· сведения обо всех магазинах заданного типа (булочная, гастроном и т.д.);

· сведения обо всех магазинах, находящихся на заданной улице;

· адрес магазина по заданному номеру телефона;

7. Составить программу, помогающую сотрудникам Государственной инспекции безопасности дорожного движения (ГИБДД) обработать следующие данные: регистрационный номер автомобиля, марка автомобиля, цвет автомобиля, год выпуска, адрес владельца. Программа должна по требованию пользователя выдавать следующие сведения:

· адреса владельцев автомобилей заданной марки, определенного цвета;

· все данные об автомобиле с заданным регистрационным номером;

· все данные об автомобилях с известной цифровой частью регистрационного номера.

8. Составить программу, обрабатывающую следующую информацию о владельцах телефонов: фамилия абонента, год установки телефона, номер телефона, адрес абонента.

Программа должна по запросу пользователя выдавать следующую информацию:

· фамилии абонентов и их номера телефонов;

· список номеров телефонов и адреса абонентов;

· номера телефонов, установленных в определенном году.

9. Создать файл, содержащий сведения об ассортименте игрушек в магазине «Детский мир» по следующим данным: название игрушки, цена, количество, возрастные границы детей, для которых она предназначена (например: 2 – 5, т.е. от двух до пяти лет).

Написать программу, в результате выполнения которой выдаются следующие сведения:

· названия игрушек, которые предназначены для детей одного возрастного периода;

· стоимость самой дорогой игрушки и ее наименование;

· название игрушек, стоимость которых не превышает х рублей и подходит ребенку в возрасте от а до b лет. Значения: х, a, b ввести с клавиатуры.

10. Составить программу, помогающую сотрудникам глазной клиники. Имеются следующие данные о пациентах: фамилия, пол, возраст, место проживания (город), диагноз. Программа должна по требованию выдавать следующую информацию:

· список пациентов старше Х лет с диагнозом Y;

· список пациентов, прибывших на лечение из разных городов.

11. Имеются следующие данные о жителях микрорайона: фамилия, имя, отчество, пол, дата рождения, семейное положение, отношение к воинской службе, домашний адрес. Составить программу, выдающую следующую информацию сотрудникам паспортно-визовой службы:

· список для голосования жителей микрорайона старше 18 лет с указанием необходимых реквизитов;

· список для военкомата мужчин призывного возраста, не служивших в армии.

12. В файле записана следующая информация о сотрудниках предприятия: отдел предприятия, должность, фамилия и инициалы, пол, дата рождения, семейное положение, домашний адрес, дата поступления на работу.

Составить программу, выдающую следующую информацию сотрудникам отдела кадров:

· список для поздравления сотрудников с днем рождения в заданном месяце;

· список сотрудников, проработавших на предприятии более заданного количества лет для присуждения премии.

13. В файле записаны реквизиты 20 вкладчиков госбанка: номер счета, фамилия и инициалы, домашний адрес, дата операции, приход/расход, сумма вклада. Выдать следующую информацию контролеру госбанка:

· фамилии вкладчиков, посетивших банк в текущем месяце, и их домашний адрес;

· номера счетов, чьи вклады составляют более а рублей, и их реквизиты (переменную а запросить с клавиатуры).

14. В жилищно-эксплуатационном участке (ЖЭУ) необходимо обработать следующую информацию о каждом жильце микрорайона: фамилию и инициалы, адрес, общую жилую площадь, сумму оплаты за все услуги в месяц, дату последней оплаты за все услуги.

Выдать бухгалтеру ЖЭУ следующие документы:

· список задолженников со всеми реквизитами;

· список жителей, не имеющих задолженности на текущий момент времени.

15. В пассажирском автохозяйстве ведется учет состояния автопарка по реквизитам: марка автобуса, его гаражный номер, дата выпуска, дата последнего техосмотра, техническое состояние (требуется техосмотр, текущий ремонт, капитальный ремонт, автобус исправен), фамилия закрепленного за автобусом водителя.

Выдать механику гаража следующую информацию:

· список всех автобусов, годных к эксплуатации;

· список автобусов, требующих ремонтных работ;

· список автобусов, подлежащих техосмотру.

16. В магазине «Игротехника» ведется учет продажи лазерных дисков. Учитывается следующая информация: номер тома (диска), категория диска (игра, музыкальный диск, системное программное обеспечение (ПО), специальное ПО), стоимость диска, дата продажи.

Выдать директору магазина следующие документы:

· сводку продаж лазерных дисков в заданном месяце по категориям и общую сумму выручки;

· ведомость наличия лазерных дисков со всеми реквизитами и общую сумму их стоимости.

17. В поликлинике 5 врач-терапевт имеет следующую информацию о больных: фамилию и инициалы больного, его возраст, место работы, дату приема, диагноз заболевания, выдачу больничного листа. Сформировать и выдать сводную ведомость:

· приема больных со всеми реквизитами за текущий месяц;

· больных, получивших больничный лист, с указанием диагноза заболевания и места работы.

18. Диспетчер принимает заказы на ремонт обуви и выдает квитанции заказчикам, в которых указывает: номер квитанции, дату приема обуви, фамилию заказчика, его адрес, вид обуви, срок исполнения заказа, стоимость работы, фамилию мастера.

Сформировать и выдать следующие документы:

· сводную ведомость работ, выполненных мастерской со всеми реквизитами;

· ведомость работ по датам исполнения заказов и по фамилиям мастеров;

· ведомость заработанной суммы каждым мастером в текущем месяце с указанием общей суммы, полученной мастерской.

19. Секретарь ведет запись посетителей к народному депутату в журнале с указанием реквизитов: даты приема, фамилии и инициалов посетителя, пола, возраста, образования, местожительства, места работы, решаемого вопроса. Выдать народному депутату следующие документы:

· список посетителей на конкретный день приема с полными реквизитами;

· сводный список всех посетителей с указанием фамилии, возраста, пола, места работы.

20. На складе ведется учет поступления материалов по следующим реквизитам: дата поступления материала, наименование материала, единица измерения, стоимость единицы измерения, количество.

Выдать следующие документы заведующему складом:

· сводную ведомость поступивших материалов со всеми реквизитами;

· ведомость материалов, имеющихся на складе, с указанием их единиц измерения, количества, стоимости единицы измерения, общей суммы материала.

21. Для учёта вырабатываемой продукции хлебозавод использует следующие реквизиты: наименование изделия, сорт, единицы измерения, количество, дата выработки, срок реализации. Создать следующие документы:

· сводную ведомость изделий хлебозавода со всеми реквизитами;

· ведомость изделий хлебозавода, срок реализации которых не более 48 часов, со всеми реквизитами.

22. Аккумуляторный завод выпускает продукцию, для учёта которой использует следующие реквизиты: наименование изделия, дату выпуска, срок гарантии, количество выпущенной продукции, стоимость единицы изделия. Выдать пользователю следующие документы:

· сводную ведомость изделий со всеми реквизитами;

· список изделий, изготовленных в текущем месяце, с указанием полной стоимости изделий.

23. Трамвайное предприятие ведет учет выпущенного на линию транспорта, используя следующие реквизиты: номер маршрута, гаражный номер трамвая, фамилию водителя, время одного рейса (в минутах), количество рейсов в смену.

Выдать диспетчеру трамвая следующую информацию:

· полный список трамваев на линии со всеми реквизитами;

· список трамваев на конкретном маршруте со всеми реквизитами;

· количество отработанных часов каждым водителем трамвая.

24. На метеостанции учет данных о погоде с интервалом в один час ведется по следующим реквизитам: дате, времени, температуре, давлению, влажности, виду осадков (0 – осадков нет, 1 – дождь, 2 – снег), видимости в метрах. Аэропорт запрашивает следующие данные:

· данные о погоде на заданное число в заданный интервал времени со всеми реквизитами;

· среднюю температуру воздуха на заданное число;

· время, в которое была максимальная видимость.

25. На проходной режимного предприятия ведется учет работников предприятия по следующим реквизитам: дата входа, табельный номер, фамилия и инициалы, номер цеха, время входа, время выхода.

Отдел кадров предприятия запрашивает следующие данные:

· список работников, вышедших на работу в указанный день со всеми реквизитами;

· количество часов рабочего времени каждого работника данного цеха;

· количество часов рабочего времени конкретного работника данного цеха за регистрируемый промежуток времени.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: