Варианты задания
В нижеследующих вариантах разработать классы и контейнеры, разработать методы ввода данных с клавиатуры, сохранение элементов в файле, поиск и сортировку элементов в массиве c использованием библиотечных функций, и вывод результатов в файл и на монитор.
Предусмотреть обработку не менее 2-х исключительных ситуаций, возникающих, например, при вводе данных с консоли и работе с файлом; обработчики данных должны указывать на ме-сто и причину возникновения ситуации и предлагать способ ее преодоления.
Во всех нижеследующих вариантах написать программу по типу приведенного примера, в основе которой лежат следующие классы:
1. Класс “Студент (Student)” с полями: ФИО студента, номер группы, успеваемость (pro-gress-массив из 3-х элементов – количество пятерок, четверок, троек. Сортировать записи по ФИО; вывести фамилии и группы студентов, средний балл больше задаваемой цифры.
2. Класс “Расписание_полетов (FlightShedule)” с полями: дата вылета, пункт назначения, номер рейса, тип самолета. Сортировать записи по дате; вывести номера рейсов и типов самолетов, вылетающих в задаваемый пункт назначения в задаваемую дату.
3. Класс «Поезд (Train)» с полями: пункт назначения, номер поезда, время отправления. Сортировать записи по пункту назначения; вывести номера поездов и пунктов назначе-ния, отправляющихся после задаваемого времени.
4. Класс “ Записная книжка (Notebook)” с полями: ФИО, номер телефона, дата рождения. Сортировать записи по ФИО; вывести ФИО и номер телефона человека с задаваемой датой рождения.
5. Класс “Знаки зодиака (ZodiacSigns)” с полями: ФИО, знак зодиака, день рождения, крат-кая характеристика знака. Сортировать записи по дате рождения; вывести дату дня рождения и знак зодиака человека, фамилия которого вводится с клавиатуры.
6. Класс “Цена(PriceList)” с полями: название товара, название магазина, стоимость товара в руб. Сортировать записи по названию товаров; вывести информацию о заданном товаре с задаваемой максимальной ценой, которую готов платить покупатель.
7. Класс “Счет(Invoice)” с полями: расчетный счет(6 знаков) плательщика, расчетный счет покупателя, перечисляемая сумма, дата. Сортировать записи по расчетным счетам платель-щиков; вывести информацию о сумме, снятой с задаваемого расчетного счета плательщика до задаваемой даты.
8. Класс “Университет(University)” с полями: название, город, перечень специальностей ( до 5), с пропускным баллом по ЕГЭ каждая. Сортировать записи по названию города; вы-вести информацию о баллах ЕГЭ по задаваемой специальности в разных университетах.
9. Класс “Общежитие (Hostel)” с полями: ФИО студента, номер группы, номер комнаты. Сортировать записи по номеру комнат; вывести информацию о студентах группы, номер которой вводится с клавиатуры.
10. Класс “Вычислительный центр(ComputingCenter)” с полями: номер лаборатории, тип процессора, величину ОЗУ, емкость диска, тип монитора. Сортировать записи по номеру лаборатории; вывести в файл и на дисплей информацию о компьютерах, величина ОЗУ ко-торого вводится с клавиатуры.
11. Класс “Работник(Employee)” с полями: ФИО, должность, год поступления на работу. вы-вод в файл и на дисплей информации о работниках, чей стаж работы превышает значение, введенное с клавиатуры.
12. Класс «Библиотека(Library)» с полями: ФИО автора книги, название, год изда¬ния, коли-чество экземпляров данной книги в библиотеке. Сортировать записи по автору;
вывести сведения о всех книгах автора, начиная с заданного года издания, ФИО которого вводится с клавиатуры.
13. Класс «Квартира(Flat)» с полями, описывающими квартиру, предназначенную к продаже: площадь, количество комнат, этаж, район. Сортировать записи и выводить по заявке на покупку, в которой указана только площадь, информацию по имеющимся квартирам, в которых площадь отличается от заявленной не более, чем на 10%.
14. Класс «Выборы(Elections)» с полями: ФИО кандидата, дата рождения, место работы, рейтинг предварительных опросов;
вывод первых 5 наиболее рейтинговых кандидатов.
15. Класс «Каталог(Catalogue)» с полями: имя файла, дата создания, количество обращений к файлу;
вывод перечня файлов с наибольшим количеством обращений.
//"IIB xodimi" klassi. Harbiy xizmatga layoqatli bo'lganlar orasida yoshi katta va kichik ismi, familiyasi va yoshini aniqlang
#include
#include
#include
using namespace std;
class Person {
public:
string name, surname;
unsigned int age;
bool reservist;
Person(string _n, string _s, unsigned int _a, bool _r):
name(_n), surname(_s), age(_a), reservist(_r) {} };
int main() {
vector
persons; persons.push_back(Person("Alisher", "Qazaqov", 20, true)); persons.push_back(Person("Temur", "Turdiyev", 18, true)); persons.push_back(Person("Doniyor", "Salayev", 22, true)); persons.push_back(Person("Jamshid", "Azamatov", 19, true)); persons.push_back(Person("Bobur", "Jalolov", 21, false)); persons.push_back(Person("Oybek", "Sherov", 19, false));
persons.push_back(Person("Jasur", "Ashirov", 23, false));
persons.push_back(Person("Elmurat", "Mahmudov", 25, false));
persons.push_back(Person("Amirbek", "Tahirov", 16, false));
unsigned int min_age = 100;
int min_index = -1;
for (unsigned int i = 0; i < persons.size(); i++)
if ((persons[i].age <= min_age) && (persons[i].reservist)) {
min_age = persons[i].age;
min_index = i;
}
cout << "harbiy xizmatga layoqatli bo'lganlar orasida yoshi eng yoshi familiyasi - " << persons[min_index].name<<" "<
unsigned int max_age = 0;
int max_index = -1;
for (unsigned int i = 0; i < persons.size(); i++)
if ((persons[i].age >= max_age) && (persons[i].reservist)) {
max_age = persons[i].age;
max_index = i;
}
cout << "harbiy xizmatga layoqatli bo'lganlar orasida eng katta ofitserning familiyasi - " <
max_age = 0;
max_index = -1;
for (unsigned int i = 0; i < persons.size(); i++)
if ((persons[i].age >= max_age) && (!persons[i].reservist)) {
max_age = persons[i].age;
max_index = i;
}
cout << "harbiy bo'lmagan eng keksa odamning familiyasi - " <
return 0;
}
Do'stlaringiz bilan baham: |