Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР20-С++-16-сентября-2012 (1).doc
Скачиваний:
33
Добавлен:
12.11.2019
Размер:
1.18 Mб
Скачать

2.4.1.3. Программа

Полный текст программы приведен ниже.

//Лабораторная работа № 20

//Классы. Функции доступа.

//Вариант № 30

//Выполнила студ. Петрова А.А.

#include <iostream.h>

#include <stdlib.h>

#include <conio.h>

#include <string.h>

#include <stdio.h>

#include <iomanip.h>

#define N 3

const int LNAME=10;

class church {

char name[LNAME]; // Название

char school; // Школа

unsigned int count; // Количество монахов

float square; // Площадь земли

public:

void set(char *a,char b,unsigned int c, float d);

void get(char *a, char &b, unsigned int &c, float &d);

void show(void);

};

void church::set(char *a,char b,unsigned int c,float d)

{

strcpy(name,a);

//name=a;

school=b;

count=c;

square=d;

}

void church::get( char * a, char &b, unsigned int &c, float &d)

{

delete[]a;

a=new char [strlen(name)+1];

strcpy(a,name);

b=school;

c=count;

d=square;

}

void church::show(void) {

cout<<name<<" ";

cout<<school<<" ";

cout<<count<<" ";

cout<<square<<" ";

}

int main(void)

{

char *n;

char t;

unsigned int s;

float h;

short i;

church obj[N];

cout<<"Работа функции SET!\n";

for (i=0; i<N; i++)

{

cout<<"Название, Школа, Количество монахов, Площадь земли:\n ";

cin>>n;

cin>>t;

cin>>s;

cin>>h;

obj[i].set(n,t,s,h);

}

cout<<"Работа функции SHOW!\n";

cout<<"Название, Школа, Количество монахов, Площадь земли: \n";

for (i=0; i<N; i++)

{

obj[i].show();

cout<<"\n";

}

cout<<"Работа функции GET и SHOW!\n";

cout<<"Название, Школа, Количество монахов, Площадь земли: \n";

for(i=0; i<N; i++)

{

obj[i].get(n,t,s,h);

obj[i].show();

cout<<"\n";

}

cout << "\nНажмите любую клавишу..." ;

getch();

delete[] n;

return 0;

}

2.4.1.4. Тестирование

2.4.2. Задание 2. Простейшие классы и объекты

Разработать классы для описанных ниже объектов. Включить в класс методы set (…), get (…), show (…). Определить другие методы.

2.4.2.1. Условие задания

Таблица 20.4

Задание

1

Student: Фамилия, Имя, Отчество, Дата рождения, Адрес, Телефон, Факультет, Курс. Создать массив объектов. Вывести:

а) список студентов заданного факультета;

б) списки студентов для каждого факультета и курса;

в) список студентов, родившихся после заданного года.

2

Abiturient: Фамилия, Имя, Отчество, Адрес, Баллы ЕЭЕ. Создать массив объектов. Вывести:

а) список абитуриентов, имеющих балл ЕГЭ выше среднего;

б) список абитуриентов, сумма баллов ЕГЭ у которых не меньше заданной;

в) выбрать N абитуриентов, имеющих самую высокую сумму баллов, и список абитуриентов, имеющих полупроходной балл (ниже среднего).

3

Aeroflot: Пункт назначения, Номер рейса, Тип самолета, Время

вылета, Дни недели. Создать массив объектов. Вывести:

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

б) список рейсов для заданного дня недели;

в) список рейсов для заданного дня недели, время вылета для ко-

торых больше заданного.

4

Book: Автор, Название, Издательство, Год, Количество страниц.

Создать массив объектов. Вывести:

а) список книг заданного автора;

б) список книг, выпущенных заданным издательством;

в) список книг, выпущенных после заданного года.

5

Worker: Фамилия и инициалы, Должность, Год поступления на

работу, Зарплата. Создать массив объектов. Вывести:

а) список работников, стаж работы которых на данном предпри-

ятии превышает заданное число лет;

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

в) список работников, занимающих заданную должность.

6

Train: Пункт назначения, Номер поезда, Время отправления,

Число общих мест, Купейных, Плацкартных. Создать массив объек-

тов. Вывести:

а) список поездов, следующих до заданного пункта назначения;

б) список поездов, следующих до заданного пункта назначения и

отправляющихся после заданного часа;

в) список поездов, отправляющихся до заданного пункта назначе-

ния и имеющих общие места.

7

Product: Наименование, Производитель, Цена, Срок хранения,

Количество. Создать массив объектов. Вывести:

а) список товаров для заданного наименования;

б) список товаров для заданного наименования, цена которых не

превышает указанной;

в) список товаров, срок хранения которых больше заданного.

8

Patient: Фамилия, Имя, Отчество, Адрес, Номер медицинской

карты, Диагноз. Создать массив объектов. Вывести:

а) список пациентов, имеющих данный диагноз;

б) список пациентов, номер медицинской карты которых находится

в заданном интервале.

9

Bus: Фамилия и инициалы водителя, Номер автобуса, Номер

маршрута, Марка, Год начала эксплуатации, Пробег. Создать массив

объектов. Вывести:

а) список автобусов для заданного номера маршрута;

б) список автобусов, которые эксплуатируются больше 10 лет;

в) список автобусов, пробег у которых больше 10 000 км.

10

Customer: Фамилия, Имя, Отчество, Адрес, Телефон, Номер

кредитной карточки, Номер банковского счета. Создать массив объек-

тов. Вывести:

а) список покупателей в алфавитном порядке;

б) список покупателей, номер кредитной карточки которых нахо-

дится в заданном интервале.

11

File: Имя файла, Размер, Дата создания, Количество обраще-

ний. Создать массив объектов. Вывести:

а) список файлов, упорядоченный в алфавитном порядке;

б) список файлов, размер которых превышает заданный;

в) список файлов, число обращений к которым превышает задан-

ное.

12

Word: Слово, Номера страниц, на которых слово встречается

(от 1 до 10), Число страниц. Создать массив объектов. Вывести:

а) слова, которые встречаются более чем на N страницах;

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

в) для заданного слова номера страниц, на которых оно встреча-

ется.

13

House: Адрес, Этаж, Количество комнат, Площадь. Создать

массив объектов. Вывести:

а) список квартир, имеющих заданное число комнат;

б) список квартир, имеющих заданное число комнат и расположен-

ных на этаже, который находится в определенном промежутке;

в) список квартир, имеющих площадь, превосходящую заданную.

14

Phone: Фамилия, Имя, Отчество, Адрес, Номер, Время внутри-

городских разговоров, Время междугородних разговоров. Создать

массив объектов. Вывести:

а) сведения об абонентах, время внутригородских разговоров кото-

рых превышает заданное;

б) сведения об абонентах, воспользовавшихся междугородней свя-

зью;

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

15

Person: Фамилия, Имя, Отчество, Адрес, Пол, Образование,

Год рождения. Создать массив объектов. Вывести:

а) список граждан, возраст которых превышает заданный;

б) список граждан с высшим образованием;

в) список граждан мужского пола.

16

Car: Марка, Серийный номер, Регистрационный номер, Год выпуска. Создать массив объектов. Вывести:

а) список автомобилей, возраст которых превышает заданный (старые автомобили);

б) список всех автомобилей определенной марки;

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

17

Worker Структура "Сотрудник" имеет поля: фамилия, имя, отчество; должность; год рождения; заработная плата. Создать массив объектов. Вывести:

Вывести все сведения о сотрудниках, имеющих заработную плату выше средней.

18

State: Структура "Государство" имеет поля: название; столица; численность населения; занимаемая площадь. Создать массив объектов. Вывести:

Вывести все сведения о государствах, в столицах которых проживает более 5 млн жителей.

19

Man: Структура "Человек" имеет поля: фамилия, имя, отчество; домашний адрес; номер телефона; возраст. Создать массив объектов. Вывести:

Вывести все сведения о людях, имеющих возраст больше заданного.

20

Man: Структура "Человек" имеет поля: фамилия, имя, отчество; год рождения; рост; вес. Создать массив объектов. Вывести:

Вывести все сведения о людях, имеющих рост выше среднего.

21

Pupil: Структура "Школьник" имеет поля: фамилия, имя, отчество; класс; номер телефона; оценки по предметам (математика, физика, русский язык, литература). Создать массив объектов. Вывести:

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

22

Student: Структура "Студент" имеет поля: фамилия, имя, отчество; домашний адрес; группа; оценки по 5 предмета сессии. Создать массив объектов. Вывести:

Вывести все сведения о студентах имеющих 2 хотя бы по одному предмету.

23

Buyer: Структура "Покупатель" имеет поля: фамилия, имя, отчество; домашний адрес; номер телефона; номер кредитной карточки. Создать массив объектов. Вывести:

Вывести все сведения об покупателе с заданной фамилией.

24

Patient: Структура "Пациент" имеет поля: фамилия, имя, отчество; домашний адрес; номер медицинской карты; номер страхового полиса, дата рождения. Создать массив объектов. Вывести:

Вывести все сведения о пациентах, имеющих дату выше заданной.

25

Information: Структура "Информация" имеет поля: носитель; объем; название; автор. Создать массив объектов. Вывести:

Вывести все сведения о произведениях конкретного автора.

26

Disk: Структура "DVD-диск" имеет поля: название фильма; режиссер; продолжительность; цена. Создать массив объектов. Вывести:

Вывести все сведения о дисках, имеющих цену ниже средней.

27

Disk: Структура "DVD- диск" имеет поля: название; режиссер; продолжительность; цена. Создать массив объектов. Вывести:

Вывести все сведения о фильмах конкретного режиссера.

28

Team: Структура "Спортивная команда" имеет поля: название; город; количество игроков; количество набранных очков. Создать массив объектов. Вывести:

Вывести все сведения о лидирющих (трех) командах

29

Stadium: Структура "Стадион" имеет поля: название; адрес; вместимо сть;год постройки; виды спорта. Создать массив объектов. Вывести:

Вывести все сведения о стадионах, имеющих дату постройки ниже заданной (старые стадионы).

30

Car: Структура "Автомобиль" имеет поля: марка; год выпуска; мощность двигателя; цена; цвет. Создать массив объектов. Вывести:

Вывести все сведения об автомобилях, имеющих цену выше средней.