Вы находитесь на странице: 1из 8

// Glava4_stryktyri.cpp : Этот файл содержит функцию "main".

Здесь начинается и
заканчивается выполнение программы.
//
#include <stdio.h>
#include <conio.h> //директива для getche()
#include <process.h> // Директива exit()
#include <cstdio>
#include <windows.h>
#pragma execution_character_set( "utf-8" )
#include <iostream> //директива процесора
#include <iomanip> //директива для setw()
#include <ctype.h> // диреклива для islower()

using namespace std; //директива using

//Вычет эквивалента
/*
int main() {
SetConsoleOutputCP(65001);
float num1 = 9, num2 = 5;
double qwer;
cout << "Enter number: "; cin >> qwer;
cout << "Number: " << num1 / num2;
cout << endl;

return 0;
}
*/

/*Упражнение 1 Номер телефона, например (212) 767—8900, можно условно


разделить на три части: код города (212), номер телефонной станции (767) и номер
абонента (8900).
Напишите программу с использованием
структуры, позволяющую раздельно хранить эти три части телефонного номера. Назовите
структуру phone. Создайте две
структурные переменные типа
phone.Инициализацию одной из них произведите сами, а значения для другойзапросите с
клавиатуры. Затем выведите содержимое
обеих переменных на экран.*/
/*
struct phone
{
int citycode;
int numbstation;
int numbsub;
};
int main()
{
SetConsoleOutputCP(65001);
char ch;
phone sub = { 212, 767, 8900 };
phone sub1;
cout << "введите код города, номер станции и номер абонента:" << endl;
cin >> sub1.citycode >> ch >> sub1.numbstation >> ch >> sub1.numbsub;
cout << "Мой номер (" << sub.citycode << ") " << sub.numbstation << "-" <<
sub.numbsub << endl;
cout << "Ваш номер (" << sub1.citycode << ") " << sub1.numbstation << "-" <<
sub1.numbsub << endl;
return 0;

}
*/

/*Упражнение 2 Расположение точки на плоскости можно задать с помощью двух


координат: x и y.Например, если точка имеет координаты(4, 5), то это значит, что
она отстоит на
4 единицы справа от вертикальной оси и на 5
единиц вверх от горизонтальной оси.Сумма двух точек определяется как точка, име
ющая координаты, равные сумме
соответствующих координат слагаемых.Напишите
программу, использующую для интерпретации точки на плоскости структуру с названием
point.Определите три переменные
типа point,и две из них инициализируйте с
помощью значений, вводимых с клавиауры.Затем присвойте третьей переменной значение
суммы первых двух переменных
и выведите результат на экран. */

/*
struct point
{
int x;
int y;
};
int main()
{
SetConsoleOutputCP(65001);
point p1, p2, p3; // p1-первые кординаты: р2-вторые кординаты : р3-значение
после р1 и р2
cout << "Введите кординаты точки р1: ";
cin >> p1.x >> p1.y;
cout << "\nВведиет кординаты точки р2: ";
cin >> p2.x >> p2.y;
p3.x = p1.x + p2.x;
p3.y = p1.y + p2.y;
cout << "\nКардинаты точки р1+р2 равны: " << p3.x << ',' << p3.y << endl;

return 0;

}
*/

/*Упражнение 3 Создайте структуру с именем Volume, содержащую три поля


типа Distance из примера englstrc, для хранения трех измерений помещения.
Определите переменную типа
Volume, инициализируйте ее, вычислите объем,
занимаемый помещением, и выведите результат на экран. Для подсчета объема
переведите каждое из значений типа
Distance в значение типа float, равное
соответствующей длине в футах и хранимое в отдельной переменной. Затем для
вычисления объема следует перемножить три
полученные вещественные переменные.*/

/*
struct Distance
{
int feet; // Футы
float inches; // Дюймы
};
struct Volume
{
Distance lenght; // Длина
Distance width; // Ширина
Distance height; // Высота
};
int main()
{
SetConsoleOutputCP(65001);
float l, w, h;
Volume room = { {6,3.23},{7,8.45},{7,9.57} };
l = room.lenght.feet + room.lenght.inches / 12.0;
w = room.width.feet + room.width.inches / 12.0;
h = room.height.feet + room.height.inches / 12.0;
cout << "Volume = " << l * w * h << " sqr feet" << endl;

return 0;

}
*/

/*Упражнение 4 Создайте структуру с именем employee, содержащую два


поля: номер сотрудника типа int и величину его пособия в долларах типа float.
Запросите с клавиатуры
данные о трех сотрудниках, сохраните их в
трех структурных переменных типа employee и выведите информацию о каждом из
сотрудников на экран.*/

/*
struct employee
{
char empl[15];
double posob;
};

int main()
{
SetConsoleOutputCP(65001);
employee empl1, empl2, empl3;
cout << "Номер 1-го сотрудника: ";
cin >> empl1.empl;
cout << "\nПособие 1-го сотрудника: ";
cin >> empl1.posob;
cout << "\nНомер 2-го отрудника: ";
cin >> empl2.empl;
cout << "\nПособие 2-го сотрудника: ";
cin >> empl3.posob;
cout << "\nНомер 3-го сотрудника: ";
cin >> empl3.empl;
cout << "\nПособие 3-го сотрудника: ";
cin >> empl3.posob;
cout << "\nПервый сотрудник" << empl1.empl << ',' << empl1.posob << "$" <<
endl;
cout << "Второй сотрудник" << empl2.empl << ',' << empl2.posob << "$" <<
endl;
cout << "Третий сотрудник" << empl3.empl << ',' << empl3.posob << "$" <<
endl;
return 0;

}
*/

/*Упражнение 5 Создайте структуру типа date, содержащую три поля типа


int: месяц,день и год. Попросите пользователя ввести день, месяц и год в формате
31/12/2002,
сохраните введенное значение в
структурной переменной, а затем извлеките данные из этой переменной и выведите их
на экран в том же формате, в каком
они вводились.*/

/*
struct date
{
int day; // День
int month; // Месяц
int year; // Год
};

int main()
{
SetConsoleOutputCP(65001);
date date1;
char ch = '/';
cout << "Ведите дату в формате (День/Месяц/Год): ";
cin >> date1.day >> ch >> date1.month >> ch >> date1.year;
cout << "\nДата которую Вы ввели: " << date1.day << ch << date1.month << ch
<< date1.year << " г." << endl;

return 0;

}
*/

/*Уаражнение 6 Как мы говорили, стандартные средства


ввода/вывода C++ вместо значений перечисляемых типов данных выводят их внутреннее
представление в виде целых чисел.
Для того чтобы преодолеть это
ограничение, вы можете использовать конструкцию switch, с помощью которой
устанавливается соответствие между значением
переменной перечисляемого типа и ее
внутренним представлением. Пусть, например, в программе определен перечисляемый тип
данных etype, отражающий должность
сотрудника:
enum etype { laborer, secretary, manager,
accountant, executive, researcher };
Напишите программу, которая сначала по
первой букве должности, введенной пользователем, определяет соответствующее
значение переменной, помещает это
значение в переменную типа etype, а затем
выводит полностью название должности, первую букву которой ввел пользователь.
Взаимодействие программы с
пользователем может выглядеть следующим
образом:
Введите первую букву должности :
(laborer, secretary, manager,
accountant,executive, researcher);
a полное название должности:
accountant
Возможно, вам понадобится два ветвления
switch: одно — для ввода значения, другое — для вывода.*/

/*
enum etype { laborer, secretary, manager, accountant, executive, researcher };

int main()
{
SetConsoleOutputCP(65001);
char letter;
etype post;

cout << "Ведите первую букву должности (laborer, secretary, manager,


accountant, executive, researcher): ";
cin >> letter;

switch (letter)
{
case'l':post=laborer; break;
case's':post=secretary; break;
case'm':post=manager; break;
case'a':post=accountant; break;
case'e':post=executive; break;
case'r':post=researcher; break;
}
switch (post)
{
case laborer:cout << "Полное название должности: Laborer"; break;
case secretary:cout << "Полное название должности: Secretary"; break;
case manager:cout << "Полное название должности: Manager"; break;
case accountant:cout << "Полное название должности: Accountant"; break;
case executive:cout << "Полное название должности: Executive"; break;
case researcher:cout << "Полное название должности: Researcher"; break;
}
cout << endl;
return 0;

}
*/

/*Упражнение 7 Добавьте поля типа enum etype (см.


упражнение 6) и struct date (см. упражнение 5) в структуру employee из упражнения
4. Организуйте программу таким
образом, чтобы пользователь вводил
4 пункта данных о каждом из трех сотрудников: его номер, величину зарплаты, его
должность и дату принятия на работу.
Программа должна хранить введенные
значения в трех переменных типа employee и выводить их содержимое на экран.*/

struct date
{
int day; // День
int month; // Месяц
int year; // Год
};
enum etype
{
laborer, secretary, manager, accountant, executive, researcher
};
struct employee
{
char empl[8];
double posob;
etype post;
date data;
};

int main()
{
SetConsoleOutputCP(65001);
employee empl1, empl2, empl3;
char ch = '/', s;
cout << "Введите данные 1-го сотрудника: ";
cout << "\nВведите номер: "; cin >> empl1.empl;
cout << "Введите зарплату: "; cin >> empl1.posob;
cout << "Введите первую букву должности (laborer, secretary, manager,
accountant, executive, researcher): "; cin >> s;
cout << "Введите дату принятия на работу (дата в формате : День / месяц /
Год) : "; cin >> empl1.data.day >> ch >> empl1.data.month >> ch >> empl1.data.year;

switch (s) {
case'l': {empl1.post = laborer; break; }
case's': {empl1.post = secretary; break; }
case'm': {empl1.post = manager; break; }
case'a': {empl1.post = accountant; break; }
case'e': {empl1.post = executive; break; }
case'r': {empl1.post = researcher; break; }
default:cout << "Не корректный ввод";
}

cout << "Введите данные 2-го сотрудника: ";


cout << "\nВведите номер: "; cin >> empl2.empl;
cout << "Введите зарплату: "; cin >> empl2.posob;
cout << "Введите первую букву должности (laborer, secretary, manager,
accountant, executive, researcher): "; cin >> s;
cout << "Введите дату принятия на работу(дата в формате : День / месяц / Год)
: "; cin >> empl2.data.day >> ch >> empl2.data.month >> ch >> empl2.data.year;

switch (s)
{
case'l': {empl2.post = laborer; break; }
case's': {empl2.post = secretary; break; }
case'm': {empl2.post = manager; break; }
case'a': {empl2.post = accountant; break; }
case'e': {empl2.post = executive; break; }
case'r': {empl2.post = researcher; break; }
default:cout << "\nНе корректный ввод";
}

cout << "Введите данные 3-го сотрудника: ";


cout << "\nВведите номер: "; cin >> empl3.empl;
cout << "Введите зарплату: "; cin >> empl3.posob;
cout << "Введите первую букву должности (laborer, secretary, manager,
accountant, executive, researcher): "; cin >> s;
cout << "Введите дату принятия на работу(дата в формате : День / месяц / Год)
: "; cin >> empl3.data.day >> ch >> empl3.data.month >> ch >> empl3.data.year;

switch (s)
{
case'l': {empl3.post = laborer; break; }
case's': {empl3.post = secretary; break; }
case'm': {empl3.post = manager; break; }
case'a': {empl3.post = accountant; break; }
case'e': {empl3.post = executive; break; }
case'r': {empl3.post = researcher; break; }
default:cout << "Не корректный ввод...";
}
cout << endl;

cout << "Данные 1-го сотруднака: ";


cout <<"Номер: " << empl1.empl << ','<< " Зарплата: " << empl1.posob << "$, "
<< " Дата принятия на работу : " << empl1.data.day << ch << empl1.data.month << ch
<< empl1.data.year << "г. ," << " Должность: " << endl;

switch (empl1.post)
{
case laborer: {cout << "Laborer\n"; break; }
case secretary: {cout << "Secretary\n"; break; }
case manager: {cout << "Manager\n"; break; }
case accountant: {cout << "Accountant\n"; break; }
case executive: {cout << "Executive\n"; break; }
case researcher: {cout << "Researcher\n"; break; }
};
cout << "Данные 2-го сотруднака: ";
cout << "Номер: " << empl2.empl << ',' << " Зарплата: " << empl2.posob <<
"$ ," << " Дата принятия на работу: " << empl2.data.day << ch << empl2.data.month
<< ch
<< empl2.data.year << "г. ," << " Должность: " << endl;

switch (empl2.post)
{
case laborer: {cout << "Laborer\n"; break; }
case secretary: {cout << "Secretary\n"; break; }
case manager: {cout << "Manager\n"; break; }
case accountant: {cout << "Accountant\n"; break; }
case executive: {cout << "Executive\n"; break; }
case researcher: {cout << "Researcher\n"; break; }
};
cout << "Данные 3-го сотруднака: ";
cout << "Номер: " << empl3.empl << ',' << " Зарплата: " << empl3.posob <<
"$ ," << " Дата принятия на работу: " << empl3.data.day << ch << empl3.data.month
<< ch
<< empl3.data.year << "г. ," << " Должность: " << endl;

switch (empl3.post)
{
case laborer: {cout << "Laborer\n"; break; }
case secretary: {cout << "Secretary\n"; break; }
case manager: {cout << "Manager\n"; break; }
case accountant: {cout << "Accountant\n"; break; }
case executive: {cout << "Executive\n"; break; }
case researcher: {cout << "Researcher\n"; break; }
};

return 0;

Вам также может понравиться