Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Козырева И., лабораторные работы.doc
Скачиваний:
4
Добавлен:
16.04.2019
Размер:
2.95 Mб
Скачать

Void main()

{

setlocale(LC_ALL,"Russian");

struct vyp{//вложенная структура выпуск

int god;//год выпуска

char firm[10];//фирма-производитель

};

struct album{//структура муз. альбом

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

int kol;//кол-во песен

struct vyp vyp1;//влож. выпуск

};

struct album album1;//структура

struct album *ptr_album1;//указатель

ptr_album1=&album1;

//ввод данных

cout<<"Введите название: ";

cin>>ptr_album1->name;

cout<<"Введите кол-во песен: ";

cin>>album1.kol;

cout<<"Введите год выпуска: ";

cin>>album1.vyp1.god;

cout<<"Введите фирму-производитель: ";

cin>>album1.vyp1.firm;

//вывод данных

cout<<"Муз. альбом: "<<ptr_album1->name<<"\t"<<album1.kol<<"\t"<<album1.vyp1.god<<"\t"<<album1.vyp1.firm<<endl;

}

Задание 2

Используя выполненное задание 1, сформировать в программе одномерный массив структур, организовать заполнение элементов массива с клавиатуры, при этом вести диалог с пользователем о необходимости продолжать ввод. После заполнения массива структур упорядочить его по заданному полю. Например, упорядочить государства по численности населения или в алфавитном порядке.

  1. ''Человек'': фамилия; дата рождения (месяц, число); возраст.

#include "stdafx.h"//директивы

#include <iostream>

#include <locale>

using namespace std;

Void main()

{

setlocale(LC_ALL,"Russian");

const int n=100;//размерность массива

int k=n;//кол-во введенных данных

//структура

struct Data{//вложенная структура дата рождения

int ch;//число

char month[10];//месяц

};

struct Chel{//структура Человек

char name[20];//фамилия

int vozr;//возраст

struct Data data1;//влож. дата рождения

};

struct Chel mas[n];//массив структур

for (int i=0;i<n;i++){//заполнение

cout<<"Введите фамилию: ";

cin>>mas[i].name;

cout<<"Введите возраст: ";

cin>>mas[i].vozr;

cout<<"Введите число рождения: ";

cin>>mas[i].data1.ch;

cout<<"Введите месяц рождения: ";

cin>>mas[i].data1.month;

cout<<"Продолжить ввод? y- да, n-нет. ";

char x;

cin>>x;

if (x=='n'){

k=i+1;

break;

}

else;

}

for (int i=0;i<k;i++)//вывод

cout<<mas[i].name<<"\t"<<mas[i].vozr<<" лет"<<"\t"<<mas[i].data1.ch<<"\t"<<mas[i].data1.month<<endl;

struct Chel temp;//временная структура

char l;

cout<<"Выберите поле для сортировки: 1 - фамилия, 2 - возраст: ";//диалог с пользователем

cin>>l;

if (l=='1'){//сортировка по имени

for (int i=0;i<k-1;i++)

for (int j=0;j<k-i-1;j++)

if (strcmp(mas[j].name,mas[j+1].name)>0){

temp=mas[j];

mas[j]=mas[j+1];

mas[j+1]=temp;

}

cout<<"После сортировки: "<<endl;//вывод

for (int i=0;i<k;i++)

cout<<mas[i].name<<"\t"<<mas[i].vozr<<" лет"<<"\t"<<mas[i].data1.ch<<"\t"<<mas[i].data1.month<<endl;

}

if (l=='2'){//сортировка по возрасту

for (int i=0;i<k-1;i++)

for (int j=0;j<k-i-1;j++)

if (mas[j].vozr>mas[j+1].vozr){

temp=mas[j];

mas[j]=mas[j+1];

mas[j+1]=temp;

}

cout<<"После сортировки: "<<endl;//вывод

for (int i=0;i<k;i++)

cout<<mas[i].name<<"\t"<<mas[i].vozr<<" лет"<<"\t"<<mas[i].data1.ch<<"\t"<<mas[i].data1.month<<endl;

}

else;

}

  1. ''Студент'': фамилия; группа; дата рождения (месяц, число).

#include "stdafx.h"//директивы

#include <iostream>

#include <locale>

using namespace std;