Министерство образования и науки Российской Федерации
Московский государственный университет дизайна и технологии
Секция САПР
Задания для лабораторных работ по дисциплине
"Технология разработки ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ"
для студентов механического факультета, обучающихся по специальности
220300 - Системы автоматизированного проектирования
Курс: 2
Семестр: 4
Разработал:
к.т.н., ассистент секции САПР
Семёнов А.А.
Москва « 2005
Лабораторная работа № 2:
Потоки С++ и бинарные файлы
Вариант 1
Напишите программу, которая позволяет создавать базу данных авиакомпании и хранить её в бинарном файле (например, …\aviabase.dat). Каждая запись бинарного файла содержит: наименование рейса (30 байт); тип самолёта(10 байт); количество проданных билетов (sizeof(int) байт); цена одного билета (sizeof(float) байт). Программа должна позволять: а) добавлять в двоичный файл записи, причём столько раз, сколько угодно пользователю; б) показывать все записи в наглядном формате, причём стоимость одного билета должна выводиться с двумя знаками после запятой; в) подсчитывать общую выручку от всех рейсов. Пользователь должен иметь возможность в любой момент выбрать необходимое ему действие с помощью меню, например следующего вида:
==================AviaBase=====================
1 - dobavit zapis; 2 - pokazat vse zapisi;
3 - pokazat obshuyu vyruchku; 4 - vyhod;
Vash vybor:
Меню реализуйте с помощью функции, возвращающей значение. Предусмотрите обработку исключительных ситуаций.
Вариант 2
Напишите программу, которая позволяет создавать базу данных железнодорожных поездов и хранить её в бинарном файле (например, …\railwaybase.dat). Каждая запись бинарного файла содержит: номер поезда (sizeof(int) байт); пункт отправления-прибытия (30 байт); количество проданных билетов (sizeof(int) байт); цена одного билета (sizeof(float) байт). Программа должна позволять: а) добавлять в двоичный файл записи, причём столько раз, сколько угодно пользователю; б) показывать все записи в наглядном формате, причём стоимость одного билета должна выводиться с двумя знаками после запятой; в) подсчитывать выручку указанного номера поезда. Пользователь должен иметь возможность в любой момент выбрать необходимое ему действие с помощью меню, например следующего вида:
===================RailwayBase=====================
1 - dobavit zapis; 2 - pokazat vse zapisi;
3 - pokazat vyruchku poezda; 4 - vyhod;
Vash vybor:
Меню реализуйте с помощью функции, возвращающей значение. Предусмотрите обработку исключительных ситуаций.
Лабораторная работа № 3:
Массивы структур (структурные массивы)
Вариант 1
На основе задания предыдущей л/р создайте структуру Avia, содержащую 4 поля: наименование рейса (30 байт); тип самолёта(10 байт); количество проданных билетов; цена одного билета. Программа должна позволять:
-
считывать записи из бинарного файла (…\aviabase.dat) и путём динамического выделения памяти формировать массив структуры;
-
показывать все записи в наглядном формате и в упорядоченном по алфавиту виде (сортировка по наименованию рейса);
-
по желанию пользователя редактировать данные указанного им рейса;
-
по желанию пользователя сохранять изменения (перезаписывать файл).
Пункт 2, 3 и 4 необходимо реализовать в виде функций. Предусмотрите обработку исключительных ситуаций.
Вариант 2
На основе задания предыдущей л/р создайте структуру Railway, содержащую 4 поля: номер поезда; пункт отправления-прибытия (30 байт); количество проданных билетов; цена одного билета. Программа должна позволять:
-
считывать записи из бинарного файла (…\railwaybase.dat) и путём динамического выделения памяти формировать массив структуры;
-
показывать все записи в наглядном формате и в упорядоченном по алфавиту виде (сортировка по наименованию пункта отправления-прибытия);
-
по желанию пользователя редактировать данные указанного им маршрута;
-
по желанию пользователя сохранять изменения (перезаписывать файл).
Пункт 2, 3, 4 необходимо реализовать с помощью функций. Предусмотрите обработку исключительных ситуаций.