Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка Программирование C++ 2014n.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
979.32 Кб
Скачать

2. Программа

#include <conio.h>

#include <iomanip>

#include <iostream>

#include <string>

using namespace std;

struct

{

string planeta;

string sostav;

float rasst,period;

char sputnik;

} mas[20];

int n;

string buff;// переменная, использующаяся в программе для очистки буфера

void list();

void vvod();

void search();

int main()

{

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

cin>>n;

system("CLS");

vvod();

list();

search();

return 0;

}

void vvod() // Процедура ввода данных

{

system("color 17");

system("CLS");

for (int i=1; i<=n; i++)

{

system("CLS");

cout<<" Введите данные для "<<i<<" записи :"<<endl;

getline(cin,buff); // очистка буфера

cout<<" Название планеты - ";

getline(cin,mas[i].planeta);

cout<<" Расст.от Солнца - ";

cin>>mas[i].rasst;

cout<<" Период обращения - ";

cin>>mas[i].period;

do

{

cout<<"Наличие спутника (+,-) - ";

char x = getch();

if ((x == '+') || (x == '-'))

{ cout<<x<<"\n";

mas[i].sputnik=x;

}

else cout<<"\r";

}

while ( (mas[i].sputnik!='+') && (mas[i].sputnik!='-'));

cout<<" Основной состав атмосферы - ";

cin>>mas[i].sostav;

}

}

//Формирование заголовка таблицы и вывод данных в виде таблицы на экран

void list()

{

system("CLS");

system("color 1f");

cout<<endl<<endl<<endl;

cout<<" Таблица: 'ИССЛЕДОВАHИЕ КОСМОСА'"<<endl;

system("color 17");

cout<<" ╓─────╥────────────╥─────────╥─────────╥────────╥───────────────╖"<<endl;

cout<<" ║ N ║ Hазвание ║ Расcт. ║ Пеpиод ║Наличие ║Основной состав║"<<endl;

cout<<" ║ N ║ Hазвание ║ Расcт. ║ Пеpиод ║Наличие ║Основной состав║"<<endl;

cout<<" ║ №пп ║ планеты ║от Солнца║обpащения║спутника║ атмосферы ║"<<endl;

cout<<" ╟─────╫────────────╫─────────╫─────────╫────────╫───────────────╢"<<endl;

for (int i=1; i<=n; i++)

{

cout<<" ║ "<<i<<" ║"<<setw(10)<<mas[i].planeta<<" ║"<<setw(7)<<fixed<<setprecision(2)<< mas[i].rasst<<" ║"<<setw(7)<<mas[i].period;

cout<<" ║"<<setw(5)<<mas[i].sputnik<<" ║"<<setw(15)<<mas[i].sostav<<"║"<<endl;

}

cout<<" ╙─────╨────────────╨─────────╨─────────╨────────╨───────────────╜"<<endl;

system("pause");

}

void search() // Процедура поиска информации по названию планеты

{

string s;

getline(cin,buff); // очистка буфера

cout<<" Введите искомое название планеты:";

getline(cin,s);;

system("CLS");

bool f=true;

cout<<endl<<endl<<endl;

for (int i=1; i<=n; i++)

if (mas[i].planeta==s)

{

cout<<" Название планеты: "<<mas[i].planeta<<endl;

cout<<" Расстаяние то Солнца: "<<mas[i].rasst<<endl;

cout<<" Период обращения: "<<mas[i].period<<endl;

cout<<" Наличие спутника: "<<mas[i].sputnik<<endl;

cout<<" Основной состав атмосферы: "<<mas[i].sostav<<endl;

f=false;

}

if (f) cout<<" Такой планеты нет!"<<endl;

system("pause");

}

При вычерчивании рамок таблицы можно воспользоваться символами псевдографики (Alt+код соответствующего символа в кодовой таблице ASCII, набранный с использованием клавиш цифрового блока клавиатуры).

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