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

Лабораторная работа № 1. Представление информации в виде структуры



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

Задание Краткие теоретические сведения
1. Изучить способы организации данных в виде структуры, выполнив программу, записанную в данном пункте. Дополнить структуру дополнительными сведениями о работниках и вывести их вместе с фамилиями на экран. Пример. Пусть надо описать структуру с именем WORKER, содержащую следующие поля: фамилия работника; название занимаемой должности; год поступления на работу. Необходимо написать программу, выполняющую следующие действия: ввод с клавиатуры данных в массив, состоящий из трех объектов структуры WORKER; вывод на дисплей фамилий работников, чей стаж работы в организации превышает значение, введенное с клавиатуры; если таких работников нет, то на дисплей должен выводиться соответствующий текст. В программе, текст которой приведен ниже, структура описана следующим образом: struct WORKER { char F[30]; char Wrk[30]; int Year; }; Здесь предусмотрены компоненты: F[30]для ввода фамилий, Wrk[30] -для должности, Year- для года поступления на работу. Запись WORKER a[size];означает, что a[size]- массив из объектов структуры в количестве size. Для доступа к членам структуры используется операция принадлежности “. ” (точка): a[i].F, a[i].Wrk, a[i].Year.    
2. В правой части приведен пример программы, в которой используется указатель на структуру. Выполнить программу, меняя скорость вывода информации. Написать пояснения к программе. В данном примере используется указатель на структуру. При обращении к структуре с помощью указателя используется операция косвенной адресации “ -> “ (стрелка). Программа осуществляет отображение на экране программного таймера пользователя. Скорость работы таймера можно регулировать, изменяя макроопределение DELAY. Функция kbhit()возвращает истину, если нажата какая-либо клавиша на клавиатуре. В против­ном случае возвращается 0.
3. В правой части приведен пример программы, которая осуществляет работу с базой данных, содержащей информацию о студентах: №,Фамилия, Год рождения, Факультет. В программе использована структура. Проанализировать работу главной функции и функций, входящих в программу.    
# include <iostream> # define kol 30 # define zap 30 int r; using namespace std; struct student { char name[kol]; int birth; char fakultet[5]; }; struct student Stud[zap]; struct student bad; int sch = 0; void enter_new() { cout<<"Ввод информации""<<endl; if(sch < zap) { cout<<"Запись номер"; cout<<sch+1; cout<< endl<<"Фамилия "<<endl; cin>>Stud[sch].name; cout<<"Год рождения "<<endl; cin>>Stud[sch].birth; cout<<"Факультет "<<endl; cin>>Stud[sch].fakultet; sch++; } else cout<<"Введено максимальное кол-во записей"; cout<<"Что дальше?"<<endl; cin>>r; }
void del() { int d; cout<<"\nНомер записи, которую надо удалить"<<endl; cout<<"Если надо удалить все записи, нажмите '99'"<<endl; cin>>d; if (d!= 99) { for (int de_1=(d - 1); de_1<sch; de_1++) Stud[de_1] = Stud[de_1 + 1]; sch = sch - 1; } if (d == 99) for(int i = 0; i < zap; i++) Stud[i] = bad; cout<<"Что дальше?"<<endl; cin>>r; } void change() { int c, per; cout<<"\nВведите номер записи"<<endl; cin>> c; do { cout<<"Введите: "<<endl; cout<<"1-для изменения фамилии"<<endl; cout<<"2-для изменения года рождения" << endl; cout<<"3-для изменения факультета" <<endl; cout<<"4-конец\n"; cin>>per; switch (per) { case 1: cout<<"Введите новую фамилию"; cin>>Stud[c-1].name; break; case 2: cout<<"Введите новый год рождения "; cin>>Stud[c-1].birth; break; case 3: cout<<"Введите новый факультет "; cin>>Stud[c-1].fakultet; break; cin>>per; } } while(per!= 4); cout<<"Что делать дальше?"<<endl; cin>>r; }
void out() { int sw, o; cout<<endl<<"Введите: "<<endl; cout<<"1-вывод одной записи"<<endl; cout<<"2-вывод всех записей"<<endl; cin>>sw; if(sw == 1) { cout<<"Введите номер записи, которую нужно вывести"<<endl; cin>> o; cout<<endl; cout<<"Фамилия"; cout<<Stud[o-1].name <<endl; cout<<"Год рождения"; cout<<Stud[o-1].birth <<endl; cout<<"Факультет"; cout<<Stud[o-1].fakultet<<endl; } if(sw==2) { for(int i=0;i<sw;i++) { cout<<"имя"; cout<<Stud[i].name<<endl; cout<<"год рождения "; cout<<Stud[i].birth<<endl; cout<<"факультет "; cout<<Stud[i].fakultet<<endl; } } cout<<"Что делать дальше?"<<endl; cin>>er; } int main() { setlocale(LC_CTYPE, "Russian"); cout<<"Записей пока нет"<<endl; cout<<"Введите:"<<endl; cout<<"1-для удаления записи"<<endl; cout<<"2-для ввода новой записи" <<endl; cout<<"3-для изменения записи"<<endl; cout<<"4-для вывода записи(ей)"<<endl; cout<<"5-для выхода"<<endl; cin>>r; do { switch(r) { case 1: del(); break; case 2: enter_new(); break; case 3: change(); break; case 4: out(); break; } } while(r!=5); }

4. В соответствии со своим вариантом разработать программу для работы с базой данных по образцу программы п. 3. Определить структурированный тип, меню для работы с массивом структур.

В перечень обязательных функций входят:

- удаление всех структурированных переменных;

- удаление заданной структурированной переменной;

- ввод элементов (полей) структуры с клавиатуры;

- вывод элементов (полей) структуры с клавиатуры;

- поиск информации.

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

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





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



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