Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Лабораторная работа № 2. Объединения, перечисления, битовые поля



Задание Краткие теоретические сведения
1. Изучить принципы работы с объединениями, выполнив программу, записанную в данном пункте.     Объединение – это поименованная совокупность данных разных типов, размещаемых в одной и той же области памяти, размер которой достаточен для хранения наибольшего элемента. Объединение подобно структуре, однако в каждый момент времени может использоваться только один из элементов объединения. В примере программы выводятся компоненты объединения Utypes. Первая часть программы выполняется без ошибок, поскольку данные разных типов присваиваются объединению не одновременно, а последовательно. Во второй части правильно отобразится лишь значение типа double, поскольку оно было занесено последним.  
2. Изучить принципы работы с перечислениями, выполнив программу, записанную в данном пункте.   Перечисления используются в тех случаях, когда данные можно представить в виде нумерованного списка, например содержащего названия месяцев года или дней недели. В примере создается перечисление emonths, включающее названия месяцев. Здесь перечисление представляет собой ряд целых чисел от 1 до 12. Например, значение переменной months, после того как ей была присвоена константа December, стало равным 12. Поскольку названию каждого месяца соответствует определенное числовое значение, то элементы перечисления могут участвовать в арифметических операциях.
3. Изучить принципы работы с битовыми полями, выполнив программу, записанную в данном пункте. . Элементом структуры может быть битовое поле, обеспечивающее доступ к отдельным битам памяти, которые позволяют рационально использовать память с помощью хранения данных в минимально требуемом количестве битов. Элементы битового поля должны быть объявлены как тип int или unsigned. В программе отображается в двоичной системе счисления ASCII-код, который генерируется при нажатии любой клавиши. При этом используется объединение bitsи битовые поля byte. Объединение позволяет присвоить значение нажатой клавиши символьной переменной, а битовые поля используются для отображения отдельных битов. Программа прекращает работу при нажатии буквы q.  
4. В правой части приведен пример программы, демонстирующей использование битовых операций. Проанализировать текст программы.   В примере извлекаются 3 бита числа А, начиная со второго (справа) и вставляются в число В, начиная с первого. Стандартная функция_itoa_s (число ввода, строка вывода, основание с/с)используется для вывода двоичного представления числа. Основные битовые операции: - AND (и) - & -если какой-то бит в одном из операндов равен 0, то результирующий бит тоже будет равен 0 -сброс битов; - OR (или) - | -если какой-то бит в одном из операндов равен 1, то результирующий бит тоже будет 1 -установка битов; - XOR (исключающее или) - ^ -результирующий бит равен 1, если сравниваемые биты различны; - NOT (не) - ~ -меняются все биты на противоположные; - сдвиг влево - << -удваивается значение; - сдвиг вправо - >>– значение уменьшается в два раза.  

5. В соответствии со своим вариантом внести изменения в программу для работы с базой данных из лабораторной работы № 1. Реализовать дополнительные функции: удаление заданного элемента; изменение (редактирование) заданного элемента. Интерфейс пользователя осуществить в виде командного процессора:

1 - ввести данные

2 - вывести на экран......

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

№ варианта Условие задачи
  1.Горожанин. Фамилия И.О., дата рождения, адрес, пол (м, ж). Выборка по полу и году рождения. Дату рождения реализовать с помощью битового поля. Пол реализовать с помощью перечисления. 2. Ввести целое A и посчитать, сколько нулей в числе начиная с третьего бита по 13, включая эти биты.
  1.База данных гостиница: Список гостей: паспортные данные, даты приезда и отъезда, номер, тип размещения (люкс, одноместный, двухместный, трехместный, апартаменты). Поиск гостя по дате приезда или по фамилии. Даты приезда и отъезда реализовать с помощью битового поля. Тип размещения реализовать с помощью перечисления. 2. Извлечь 5 битов числа A, начиная со второго и вставить их в число B, начиная с третьего бита.
  1.Клиенты банка. Фамилия И.О., тип счета (срочный, льготный и т.д.), номер счета, сумма на счете, дата последнего изменения. Выбор по номеру счета, по диапазону суммы (<100, >100). Дату реализовать с помощью битового поля. Тип счета реализовать с помощью перечисления. 2. Ввести целое число A. Инвертировать все биты с 2 по 14, включая эти биты. Вывести результат.
  1. Личная библиотека. Картотека домашней библиотеки: выходные данные книги (авторы, название, издательство и так далее), раздел библиотеки (специальная литература, хобби, домашнее хозяйство, беллетристика и так далее), происхождение (покупка, кража, подарок) и наличие книги в данный момент. Выбор книг по автору, году; инвентаризация библиотеки (вывод всего списка книг по категориям). Происхождение книги реализовать с помощью перечисления. 2. Используя битовые операции проверить, кратно ли четырем число А.
  1.Ломбард. База хранимых товаров и недвижимости: анкетные данные клиента, наименование товара, оценочная стоимость; сумма, выданная под залог, дата сдачи, срок хранения. Выбор товаров по истечении срока хранения, по наименованию товара. Дату сдачи реализовать с помощью битового поля. 2. Определить, насколько в числе А больше значащих битов, равных единице, чем битов, равных нулю.
  1.Склад. Наименование товара, цена, количество, процент торговой надбавки (5, 10, 15, 20, 35, 30). Выбор по наименованию, цене. Вывод всего списка товаров на складе с расчетом сумм. Процент торговой надбавки реализовать с помощью перечисления. 2. Установить в единицу каждый второй значащий бит целого числа А.
  1.База данных авиарейсов. Номер рейса, пункт назначения, время вылета, дата вылета, стоимость билета, количество мест. Выбор по пункту назначения, дате вылета. Дату вылета реализовать с помощью битового поля. Пункт назначения реализовать с помощью перечисления. 2. Извлечь 4 бита числа A, начиная с пятого, и добавить их к числу B справа.
  1.Ученик. Фамилия И.О., класс (цифра+буква) предметы, оценки, средний балл. Выбор по фамилии, выбор по среднему баллу. Класс реализовать с помощью битового поля. Предметы реализовать через перечисление. 2. Установить в ноль каждый третий значащий бит целого числа А.
  1.База данных студент. Фамилия И.О., дата поступления, специальность, группа, факультет, дата отчисления, средний балл. Выбор по году поступления, фамилии, ср. баллу, группе. Дату поступления и отчисления реализовать с помощью битового поля. Факультет реализовать с помощью перечисления. 2. Извлечь 5 битов числа A, начиная с третьего и вставить их в число B, начиная со 2.
  1.Справочник работника ГИБДД. Марка, цвет, заводской и бортовой номера, дата выпуска, особенности конструкции и окраски, дата последнего техосмотра транспортного средства (автомобиля, мотоцикла, прицепа и т. д.), паспортные данные владельца. Выбор транспортных средств по марке или номеру. Формирование приглашений на техосмотр в соответствии со сроком.Дату выпуска реализовать с помощью битового поля. Марку реализовать с помощью перечисления. 2. Вывести 6 бит целого числа А, начиная со 2-ого.
  1.Записная книжка. Анкетные данные, адреса, телефоны, место работы или учебы, должность знакомых, коллег и родственников, характер знакомства, деловые качества и так далее. Автоматическое формирование поздравления с днем рождения (по текущей дате). Поиск по фамилии. Дату рождения реализовать с помощью битового поля, характер знакомства - с помощью перечисления. 2. Используя битовые операции проверить, кратно ли шестнадцати число А.
  1.Государство. Название; столица; численность населения; государственный язык; занимаемая площадь, денежная единица, форма правления (монархия, республика и т.д.), фамилия президента. Выбор государства по денежной единицы, занимаемой площади (> заданного значения). Форму правления реализовать с помощью перечисления. 2. Ввести целое число A. Инвертировать все биты с 4 по 8, включая эти биты. Вывести полученное число.
  1.Вокзал. Номер поезда, пункт назначения, дни следования, время выбытия, время прибытия, цена. Выбор по пункту назначения, дате. Вывод расписания по времени. Дни следования реализовать с помощью перечисления. Время выбытия и прибытия реализовать с помощью битового поля (часы, минуты). 2. Ввести целое число A. Извлечь 2 бита числа A, начиная с пятого и вставить их в число B, начиная также с пятого бита.
  1.Справочник абитуриента. База вузов: наименование, адрес, перечень специальностей, конкурс прошлого года по каждой специальности (дневной, вечерней, заочной форм), размер оплаты при договорном обучении. Выбор по разным критериям: все о данном вузе; все о данной специальности, поиск минимального конкурса по данной специальности. Конкурс прошлого года по каждой специальности дневной, вечерней, заочной форм реализовать через битовые поля. Перечень специальностей реализовать через перечисления. 2. Ввести целое число A и посчитать, сколько единиц в числе с 5 по 10 бит, включая эти биты.
  1.Преподаватели. Название экзамена, дата экзамена, фамилия преподавателя, количество оценок, оценки. Выбор по фамилии, дате экзамена. Дату экзамена реализовать с помощью битового поля. 2. Используя битовые операции проверить, кратно ли двум число А.
  1.Отдел кадров. Паспортные данные, образование, специальность, подразделение, должность, оклад, даты поступления в фирму и последнего назначения и т. д. Выбор по должности, стражу работы. Даты реализовать с помощью битового поля. Должность реализовать с помощью перечисления. 2. Ввести целое число A. Извлечь 3 бита числа A, начиная со второго и вставить их в число B, начиная с первого бита.

В начало практикума





Дата публикования: 2015-02-18; Прочитано: 1857 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...