*1. Номер телефона, например (212) 767—8900, можно условно разделить на
три части: код города (212), номер телефонной станции (767) и номер
абонента (8900). Напишите программу с использованием структуры, поз-
воляющую раздельно хранить эти три части телефонного номера. Назо-
вите структуру phone. Создайте две структурные переменные типа phone.
Инициализацию одной из них произведите сами, а значения для другой
запросите с клавиатуры. Затем выведите содержимое обеих переменных
на экран. Результат работы программы должен выглядеть приблизитель-
но так:
Введите код города, номер станции и номер абонента:
415 555 1212
Мой номер (212) 767-8900
Ваш номер (415) 555-1212
*2. Расположение точки на плоскости можно задать с помощью двух коорди-
нат: x и y. Например, если точка имеет координаты (4, 5), то это значит, что
она отстоит на 4 единицы справа от вертикальной оси и на 5 единиц вверх
от горизонтальной оси. Сумма двух точек определяется как точка, име-
ющая координаты, равные сумме соответствующих координат слагаемых.
Напишите программу, использующую для интерпретации точки на плоско-
сти структуру с названием point. Определите три переменные типа point,
и две из них инициализируйте с помощью значений, вводимых с клавиа-
туры. Затем присвойте третьей переменной значение суммы первых двух
переменных и выведите результат на экран. Результат работы программы
может выглядеть следующим образом:
Введите координаты точки p1: 3 4
Введите координаты точки p2: 5 7
Координаты точки p1 + p2 равны 8.11
*3. Создайте структуру с именем Volume, содержащую три поля типа Distance
из примера englstrc, для хранения трех измерений помещения. Определи-
те переменную типа Volume, инициализируйте ее, вычислите объем, зани-
маемый помещением, и выведите результат на экран. Для подсчета объема
переведите каждое из значений типа Distance в значение типа float, равное
соответствующей длине в футах и хранимое в отдельной переменной. За-
тем для вычисления объема следует перемножить три полученные веще-
ственные переменные.
4. Создайте структуру с именем employee, содержащую два поля: номер со-
трудника типа int и величину его пособия в долларах типа float. Запроси-
те с клавиатуры данные о трех сотрудниках, сохраните их в трех струк-
турных переменных типа employee и выведите информацию о каждом из
сотрудников на экран.
5. Создайте структуру типа date, содержащую три поля типа int: месяц,
день и год. Попросите пользователя ввести день, месяц и год в формате
31/12/2002, сохраните введенное значение в структурной переменной, а за-
тем извлеките данные из этой переменной и выведите их на экран в том же
формате, в каком они вводились.
6. Как мы говорили, стандартные средства ввода/вывода C++ вместо значе-
ний перечисляемых типов данных выводят их внутреннее представление
в виде целых чисел. Для того чтобы преодолеть это ограничение, вы мо-
жете использовать конструкцию switch, с помощью которой устанавлива-
ется соответствие между значением переменной перечисляемого типа и ее
внутренним представлением. Пусть, например, в программе определен пе-
речисляемый тип данных etype, отражающий должность сотрудника:
enum etype { laborer, secretary, manager, accountant, executive, researcher };
Напишите программу, которая сначала по первой букве должности, введен-
ной пользователем, определяет соответствующее значение переменной, по-
мещает это значение в переменную типа etype, а затем выводит полностью
название должности, первую букву которой ввел пользователь. Взаимодей-
ствие программы с пользователем может выглядеть следующим образом:
Введите первую букву должности
(laborer, secretary, manager, accountant,
executive, researcher); a
полное название должности: accountant
Возможно, вам понадобится два ветвления switch: одно — для ввода значе-
ния, другое — для вывода.
7. Добавьте поля типа enum etype (см. упражнение 6) и struct date (см. упраж-
нение 5) в структуру employee из упражнения 4. Организуйте программу
таким образом, чтобы пользователь вводил 4 пункта данных о каждом из
трех сотрудников: его номер, величину зарплаты, его должность и дату
принятия на работу. Программа должна хранить введенные значения в трех
переменных типа employee и выводить их содержимое на экран.
8. Вернитесь к упражнению 9 главы 2 «Основы программирования на C++».
В этом упражнении требуется написать программу, которая хранит значе-
ния двух дробей в виде числителя и знаменателя, а затем складывает эти
дроби согласно арифметическому правилу. Измените эту программу так,
чтобы значения дробей хранились в струкtype fraction, состоящей из двух
полей типа int, предназначенных для хранения числителя и знаменателя.
Все значения дробей должны храниться в переменных типа fraction.
9. Создайте структуру с именем time. Три ее поля, имеющие тип int, будут
называться hours, minutes и seconds. Напишите программу, которая просит
пользователя ввести время в формате часы, минуты, секунды. Можно
запрашивать на ввод как три значения сразу, так и выводить для каж-
дой величины отдельное приглашение. Программа должна хранить время
в структурной переменной типа time и выводить количество секунд в вве-
денном времени, определяемое следующим образом:
long totalseсs = t1.hours * 3600 + t1.minutes * 60 + t1.seconds
10. Создайте структуру с именем sterling, хранящую денежные суммы в старой
английской системе, описанной в упражнениях 8 и 11 главы 3 «Циклы и
ветвления». Поля структуры могут быть названы pounds, shillings и pence
и иметь тип int. Программа должна запрашивать у пользователя значение
денежной суммы в новых десятичных фунтах (значение должно хранить-
ся в переменной типа double), затем переводить эту сумму в старую систе-
му, сохранять переведенное значение в переменной типа sterling и выво-
дить на экран полученную сумму в фунтах, шиллингах и пенсах.
11. Используя структуру time из упражнения 9, напишите программу, кото-
рая получает от пользователя два значения времени в формате 12:59:59,
сохраняет их в переменных типа struct time, затем переводит оба значения
в секунды, складывает их, переводит сумму в исходный формат, сохраня-
ет его в переменной типа time и выводит полученный результат на экран
в формате 12:59:59.
12. Переработайте программу-калькулятор для дробей, описанную в упраж-
нении 12 главы 3 так, чтобы каждая из дробей хранилась как значение пе-
ременной типа struct fraction, по аналогии с упражнением 8 этой главы.
1)
#include "stdafx.h"
#include <iostream>
#include <iomanip>
using namespace std;
struct phone
{
int citycode;
int numstation;
int numsub;
};
int main()
{
setlocale (0, "");
char ch;
phone subi = {212, 767, 8900};
phone sub1;
cout << "введите код города, номер станции и номер абонента:" << endl;
cin >> sub1.citycode >> ch >> sub1.numstation >> ch >> sub1.numsub;
cout << "Мой номер (" << subi.citycode << ") " << subi.numstation << "-" << subi.numsub << endl;
cout << "Ваш номер (" << sub1.citycode << ") " << sub1.numstation << "-" << sub1.numsub << endl;
system ("pause");
return 0;
}
2)
#include "stdafx.h"
#include <iostream>
using namespace std;
struct point
{
int x;
int y;
};
int main()
{
setlocale (0, "");
point p1, p2, p3;
cout << "Введите координаты р1" << endl;
cin >> p1.x >> p1.y;
cout << "Введите координаты р2" << endl;
cin >> p2.x >> p2.y;
p3.x = p1.x + p2.x;
p3.y = p1.y + p2.y;
cout << "Координаты точки р1+р2 = " << p3.x << "." << p3.y << endl;
system ("pause");
return 0;
}
3)
#include "stdafx.h"
#include <iostream>
using namespace std;
struct Distance
{
int feet;
float inches;
};
struct volume
{
Distance length;
Distance width;
Distance height;
};
int main()
{
float l, w, h;
volume room1 = {{6, 3.23}, {7, 8.45}, {7, 9.57}};
l = room1.length.feet + room1.length.inches/12.0;
w = room1.width.feet + room1.width.inches/12.0;
h = room1.height.feet + room1.height.inches/12.0;
cout << "V = " << l*w*h << " sqr feets" << endl;
system ("pause");
return 0;
}
4)
#include "stdafx.h"
#include <iostream>
using namespace std;
struct employee
{
char empl[15];
double salary;
};
int main()
{
employee empl_1, empl_2, empl_3;
cout << "name of the employee 1" << endl;
cin >> empl_1.empl;
cout << "salary of the enployee 1" << endl;
cin >> empl_1.salary;
cout << "name of the employee 2" << endl;
cin >> empl_2.empl;
cout << "salary of the enployee 2" << endl;
cin >> empl_2.salary;
cout << "name of the employee 3" << endl;
cin >> empl_3.empl;
cout << "salary of the enployee 3" << endl;
cin >> empl_3.salary;
cout << "1-st employee " << empl_1.empl << ", " << empl_1.salary << "$" << endl
<< "2-nd employee " << empl_2.empl << ", " << empl_2.salary << "$" << endl
<< "3-rd employee " << empl_3.empl << ", " << empl_3.salary << "$" << endl;
system ("pause");
return 0;
}
5)
#include "stdafx.h"
#include <iostream>
using namespace std;
struct date
{
int day, month, year;
};
int main()
{
date date_1;
char ch = '/';
cout << "enter day, month and year (XX/XX/XXXX) " << endl;
cin >> date_1.day >> ch >> date_1.month >> ch >> date_1.year;
cout << "You entered the date: " << date_1.day << ch << date_1.month << ch << date_1.year << endl;
system ("pause");
return 0;
}
6)
#include <iostream>
using namespace std;
enum etype {laborer, secretary, manager, accountant, executive, researcher};
int main()
{
char letter;
etype post;
setlocale (0, "");
cout << "(laborer, secretary, manager, accountant, executive, researcher)"
<<"\nВведите первую букву должности: ";
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;
system ("pause");
return 0;
}
7)
#include <iostream>
using namespace std;
struct date
{
int day, month, year;
};
enum etype
{
laborer, secretary, manager, accountant, executive, researcher
};
struct employee
{
char empl[15];
double salary;
etype post;
date data;
};
int main()
{
employee empl_1, empl_2, empl_3;
char ch = '/', s;
cout << "name of the employee 1, salary, date of employment (xx/xx/xxxx), post (1-st letter)" << endl;
cin >> empl_1.empl >> empl_1.salary >> empl_1.data.day >> ch >> empl_1.data.month >> ch >> empl_1.data.year >> s;
switch(s)
{
case 'l':{empl_1.post=laborer;break;}
case 's':{empl_1.post=secretary;break;}
case 'm':{empl_1.post=manager;break;}
case 'a':{empl_1.post=accountant;break;}
case 'e':{empl_1.post=executive;break;}
case 'r':{empl_1.post=researcher;break;}
default:cout << "Не корректный ввод";
}
cout << "name of the employee 2, salary, date of employment, post (1-st letter)" << endl;
cin >> empl_2.empl >> empl_2.salary >> empl_2.data.day >> ch >> empl_2.data.month >> ch >> empl_2.data.year >> s;
switch(s)
{
case 'l':{empl_2.post=laborer;break;}
case 's':{empl_2.post=secretary;break;}
case 'm':{empl_2.post=manager;break;}
case 'a':{empl_2.post=accountant;break;}
case 'e':{empl_2.post=executive;break;}
case 'r':{empl_2.post=researcher;break;}
default:cout << "Не корректный ввод";
}
cout << "name of the employee 3, salary, date of employment, post (1-st letter)" << endl;
cin >> empl_3.empl >> empl_3.salary >> empl_3.data.day >> ch >> empl_3.data.month >> ch >> empl_3.data.year >> s;
switch(s)
{
case 'l':{empl_3.post=laborer;break;}
case 's':{empl_3.post=secretary;break;}
case 'm':{empl_3.post=manager;break;}
case 'a':{empl_3.post=accountant;break;}
case 'e':{empl_3.post=executive;break;}
case 'r':{empl_3.post=researcher;break;}
default:cout << "Не корректный ввод";
}
cout << "1-st employee " << empl_1.empl << ", " << empl_1.salary << "$, " << empl_1.data.day << ch << empl_1.data.month << ch << empl_1.data.year << " date of employment, " << endl;
cout << "post" << endl;
switch(empl_1.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-nd employee " << empl_2.empl << ", " << empl_2.salary << "$, " << empl_2.data.day << ch << empl_2.data.month << ch << empl_2.data.year << " date of employment, " << endl;
cout << "post" << endl;
switch(empl_2.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-rd employee " << empl_3.empl << ", " << empl_3.salary << "$, " << empl_3.data.day << ch << empl_3.data.month << ch << empl_3.data.year << " date of employment, " << endl;
cout << "post" << endl;
switch(empl_3.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;}
};
system ("pause");
return 0;
}
{
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;}
};
system ("pause");
return 0;
}
8)
#include <iostream>
#include <iomanip>
using namespace std;
struct fraction
{
int numerator;
int denominator;
};
int main()
{
fraction f1, f2;
char charvar = '/';
cout << "enter 1-st fraction" << endl;
cin >> f1.numerator >> charvar >> f1.denominator;
cout << "enter 2-nd fraction" << endl;
cin >> f2.numerator >> charvar >> f2.denominator;
cout << (f1.numerator * f2.denominator) + (f1.denominator * f2.numerator) << charvar << f1.denominator * f2.denominator << endl;
system ("pause");
return 0;
}
9)
#include "stdafx.h"
#include <iostream>
using namespace std;
struct Time
{
int hours;
int minutes;
int seconds;
};
int main()
{
Time t1;
cout << "Enter the time through the gap (hours, minutes, seconds)" << endl;
cin >> t1.hours >> t1.minutes >> t1.seconds;
long totalsecs = (t1.hours * 3600) + (t1.minutes * 60) + t1.seconds;
cout << "number of seconds: " << totalsecs << endl;
system ("pause");
return 0;
}
10)
#include "stdafx.h"
#include <iostream>
using namespace std;
struct sterling
{
int pounds;
int shilling;
int pens;
};
int main()
{
sterling newp, oldp;
char ch = '.';
int sumpens;
cout << "Enter decimal pounds" << endl;
cin >> newp.pounds >> ch >> newp.pens;
sumpens = ((newp.pounds * 100) + newp.pens) * 2.4;
newp.pounds = sumpens/(20*12);
newp.shilling = sumpens % (20*12)/12;
newp.pens = sumpens%(20*12)%12;
cout << "Old pounds: J" << newp.pounds << ch << newp.shilling << ch << newp.pens << endl;
system ("pause");
return 0;
}
11)
#include "stdafx.h"
#include <iostream>
using namespace std;
struct Time
{
int hours;
int minutes;
int seconds;
};
int main()
{
Time t1, t2, tsum;
char ch;
cout << "Enter the 1-st time (hours. minutes. seconds)" << endl;
cin >> t1.hours >> ch >> t1.minutes >> ch >> t1.seconds;
cout << "Enter the 2-nd time (hours. minutes. seconds)" << endl;
cin >> t2.hours >> ch >> t2.minutes >> ch >> t2.seconds;
long totalsecs = ((t1.hours * 3600) + (t1.minutes * 60) + t1.seconds) + ((t2.hours * 3600) + (t2.minutes * 60) + t2.seconds);
tsum.hours = totalsecs/(60*60);
tsum.minutes = totalsecs % (60*60)/60;
tsum.seconds = totalsecs % (60*60) % 60;
cout << "Time: " << tsum.hours << ch << tsum.minutes << ch << tsum.seconds << endl;
system ("pause");
return 0;
}
12)
#include "stdafx.h"
#include <iostream>
#include <iomanip>
using namespace std;
struct fraction
{
int numerator;
int denominator;
};
int main()
{
fraction f1, f2, sumf;
char ch = '/', zn;
do
{
cout << "enter 1-st fraction" << endl;
cin >> f1.numerator >> ch >> f1.denominator;
cout << "Enter symbol" << endl;
cin >> zn;
cout << "enter 2-nd fraction" << endl;
cin >> f2.numerator >> ch >> f2.denominator;
switch (zn)
{
case '+': sumf.numerator =f1.numerator * f2.denominator + f1.denominator * f2.numerator;
sumf.denominator = f1.denominator * f2.denominator; break;
case '-': sumf.numerator = f1.numerator * f2.denominator - f1.denominator * f2.numerator;
sumf.denominator = f1.denominator * f2.denominator; break;
case '*': sumf.numerator = f1.numerator * f2.denominator;
sumf.denominator = f1.denominator * f2.denominator; break;
case '/': sumf.numerator = f1.numerator * f2.denominator;
sumf.denominator = f1.denominator * f2.numerator; break;
}
cout << sumf.numerator << ch << sumf.denominator << endl;
cout << "esche raz? (y,n)" << endl;
cin >> ch;
}
while (ch != 'n');
return 0;
}
три части: код города (212), номер телефонной станции (767) и номер
абонента (8900). Напишите программу с использованием структуры, поз-
воляющую раздельно хранить эти три части телефонного номера. Назо-
вите структуру phone. Создайте две структурные переменные типа phone.
Инициализацию одной из них произведите сами, а значения для другой
запросите с клавиатуры. Затем выведите содержимое обеих переменных
на экран. Результат работы программы должен выглядеть приблизитель-
но так:
Введите код города, номер станции и номер абонента:
415 555 1212
Мой номер (212) 767-8900
Ваш номер (415) 555-1212
*2. Расположение точки на плоскости можно задать с помощью двух коорди-
нат: x и y. Например, если точка имеет координаты (4, 5), то это значит, что
она отстоит на 4 единицы справа от вертикальной оси и на 5 единиц вверх
от горизонтальной оси. Сумма двух точек определяется как точка, име-
ющая координаты, равные сумме соответствующих координат слагаемых.
Напишите программу, использующую для интерпретации точки на плоско-
сти структуру с названием point. Определите три переменные типа point,
и две из них инициализируйте с помощью значений, вводимых с клавиа-
туры. Затем присвойте третьей переменной значение суммы первых двух
переменных и выведите результат на экран. Результат работы программы
может выглядеть следующим образом:
Введите координаты точки p1: 3 4
Введите координаты точки p2: 5 7
Координаты точки p1 + p2 равны 8.11
*3. Создайте структуру с именем Volume, содержащую три поля типа Distance
из примера englstrc, для хранения трех измерений помещения. Определи-
те переменную типа Volume, инициализируйте ее, вычислите объем, зани-
маемый помещением, и выведите результат на экран. Для подсчета объема
переведите каждое из значений типа Distance в значение типа float, равное
соответствующей длине в футах и хранимое в отдельной переменной. За-
тем для вычисления объема следует перемножить три полученные веще-
ственные переменные.
4. Создайте структуру с именем employee, содержащую два поля: номер со-
трудника типа int и величину его пособия в долларах типа float. Запроси-
те с клавиатуры данные о трех сотрудниках, сохраните их в трех струк-
турных переменных типа employee и выведите информацию о каждом из
сотрудников на экран.
5. Создайте структуру типа date, содержащую три поля типа int: месяц,
день и год. Попросите пользователя ввести день, месяц и год в формате
31/12/2002, сохраните введенное значение в структурной переменной, а за-
тем извлеките данные из этой переменной и выведите их на экран в том же
формате, в каком они вводились.
6. Как мы говорили, стандартные средства ввода/вывода C++ вместо значе-
ний перечисляемых типов данных выводят их внутреннее представление
в виде целых чисел. Для того чтобы преодолеть это ограничение, вы мо-
жете использовать конструкцию switch, с помощью которой устанавлива-
ется соответствие между значением переменной перечисляемого типа и ее
внутренним представлением. Пусть, например, в программе определен пе-
речисляемый тип данных etype, отражающий должность сотрудника:
enum etype { laborer, secretary, manager, accountant, executive, researcher };
Напишите программу, которая сначала по первой букве должности, введен-
ной пользователем, определяет соответствующее значение переменной, по-
мещает это значение в переменную типа etype, а затем выводит полностью
название должности, первую букву которой ввел пользователь. Взаимодей-
ствие программы с пользователем может выглядеть следующим образом:
Введите первую букву должности
(laborer, secretary, manager, accountant,
executive, researcher); a
полное название должности: accountant
Возможно, вам понадобится два ветвления switch: одно — для ввода значе-
ния, другое — для вывода.
7. Добавьте поля типа enum etype (см. упражнение 6) и struct date (см. упраж-
нение 5) в структуру employee из упражнения 4. Организуйте программу
таким образом, чтобы пользователь вводил 4 пункта данных о каждом из
трех сотрудников: его номер, величину зарплаты, его должность и дату
принятия на работу. Программа должна хранить введенные значения в трех
переменных типа employee и выводить их содержимое на экран.
8. Вернитесь к упражнению 9 главы 2 «Основы программирования на C++».
В этом упражнении требуется написать программу, которая хранит значе-
ния двух дробей в виде числителя и знаменателя, а затем складывает эти
дроби согласно арифметическому правилу. Измените эту программу так,
чтобы значения дробей хранились в струкtype fraction, состоящей из двух
полей типа int, предназначенных для хранения числителя и знаменателя.
Все значения дробей должны храниться в переменных типа fraction.
9. Создайте структуру с именем time. Три ее поля, имеющие тип int, будут
называться hours, minutes и seconds. Напишите программу, которая просит
пользователя ввести время в формате часы, минуты, секунды. Можно
запрашивать на ввод как три значения сразу, так и выводить для каж-
дой величины отдельное приглашение. Программа должна хранить время
в структурной переменной типа time и выводить количество секунд в вве-
денном времени, определяемое следующим образом:
long totalseсs = t1.hours * 3600 + t1.minutes * 60 + t1.seconds
10. Создайте структуру с именем sterling, хранящую денежные суммы в старой
английской системе, описанной в упражнениях 8 и 11 главы 3 «Циклы и
ветвления». Поля структуры могут быть названы pounds, shillings и pence
и иметь тип int. Программа должна запрашивать у пользователя значение
денежной суммы в новых десятичных фунтах (значение должно хранить-
ся в переменной типа double), затем переводить эту сумму в старую систе-
му, сохранять переведенное значение в переменной типа sterling и выво-
дить на экран полученную сумму в фунтах, шиллингах и пенсах.
11. Используя структуру time из упражнения 9, напишите программу, кото-
рая получает от пользователя два значения времени в формате 12:59:59,
сохраняет их в переменных типа struct time, затем переводит оба значения
в секунды, складывает их, переводит сумму в исходный формат, сохраня-
ет его в переменной типа time и выводит полученный результат на экран
в формате 12:59:59.
12. Переработайте программу-калькулятор для дробей, описанную в упраж-
нении 12 главы 3 так, чтобы каждая из дробей хранилась как значение пе-
ременной типа struct fraction, по аналогии с упражнением 8 этой главы.
1)
#include "stdafx.h"
#include <iostream>
#include <iomanip>
using namespace std;
struct phone
{
int citycode;
int numstation;
int numsub;
};
int main()
{
setlocale (0, "");
char ch;
phone subi = {212, 767, 8900};
phone sub1;
cout << "введите код города, номер станции и номер абонента:" << endl;
cin >> sub1.citycode >> ch >> sub1.numstation >> ch >> sub1.numsub;
cout << "Мой номер (" << subi.citycode << ") " << subi.numstation << "-" << subi.numsub << endl;
cout << "Ваш номер (" << sub1.citycode << ") " << sub1.numstation << "-" << sub1.numsub << endl;
system ("pause");
return 0;
}
2)
#include "stdafx.h"
#include <iostream>
using namespace std;
struct point
{
int x;
int y;
};
int main()
{
setlocale (0, "");
point p1, p2, p3;
cout << "Введите координаты р1" << endl;
cin >> p1.x >> p1.y;
cout << "Введите координаты р2" << endl;
cin >> p2.x >> p2.y;
p3.x = p1.x + p2.x;
p3.y = p1.y + p2.y;
cout << "Координаты точки р1+р2 = " << p3.x << "." << p3.y << endl;
system ("pause");
return 0;
}
3)
#include "stdafx.h"
#include <iostream>
using namespace std;
struct Distance
{
int feet;
float inches;
};
struct volume
{
Distance length;
Distance width;
Distance height;
};
int main()
{
float l, w, h;
volume room1 = {{6, 3.23}, {7, 8.45}, {7, 9.57}};
l = room1.length.feet + room1.length.inches/12.0;
w = room1.width.feet + room1.width.inches/12.0;
h = room1.height.feet + room1.height.inches/12.0;
cout << "V = " << l*w*h << " sqr feets" << endl;
system ("pause");
return 0;
}
4)
#include "stdafx.h"
#include <iostream>
using namespace std;
struct employee
{
char empl[15];
double salary;
};
int main()
{
employee empl_1, empl_2, empl_3;
cout << "name of the employee 1" << endl;
cin >> empl_1.empl;
cout << "salary of the enployee 1" << endl;
cin >> empl_1.salary;
cout << "name of the employee 2" << endl;
cin >> empl_2.empl;
cout << "salary of the enployee 2" << endl;
cin >> empl_2.salary;
cout << "name of the employee 3" << endl;
cin >> empl_3.empl;
cout << "salary of the enployee 3" << endl;
cin >> empl_3.salary;
cout << "1-st employee " << empl_1.empl << ", " << empl_1.salary << "$" << endl
<< "2-nd employee " << empl_2.empl << ", " << empl_2.salary << "$" << endl
<< "3-rd employee " << empl_3.empl << ", " << empl_3.salary << "$" << endl;
system ("pause");
return 0;
}
5)
#include "stdafx.h"
#include <iostream>
using namespace std;
struct date
{
int day, month, year;
};
int main()
{
date date_1;
char ch = '/';
cout << "enter day, month and year (XX/XX/XXXX) " << endl;
cin >> date_1.day >> ch >> date_1.month >> ch >> date_1.year;
cout << "You entered the date: " << date_1.day << ch << date_1.month << ch << date_1.year << endl;
system ("pause");
return 0;
}
6)
#include <iostream>
using namespace std;
enum etype {laborer, secretary, manager, accountant, executive, researcher};
int main()
{
char letter;
etype post;
setlocale (0, "");
cout << "(laborer, secretary, manager, accountant, executive, researcher)"
<<"\nВведите первую букву должности: ";
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;
system ("pause");
return 0;
}
7)
#include <iostream>
using namespace std;
struct date
{
int day, month, year;
};
enum etype
{
laborer, secretary, manager, accountant, executive, researcher
};
struct employee
{
char empl[15];
double salary;
etype post;
date data;
};
int main()
{
employee empl_1, empl_2, empl_3;
char ch = '/', s;
cout << "name of the employee 1, salary, date of employment (xx/xx/xxxx), post (1-st letter)" << endl;
cin >> empl_1.empl >> empl_1.salary >> empl_1.data.day >> ch >> empl_1.data.month >> ch >> empl_1.data.year >> s;
switch(s)
{
case 'l':{empl_1.post=laborer;break;}
case 's':{empl_1.post=secretary;break;}
case 'm':{empl_1.post=manager;break;}
case 'a':{empl_1.post=accountant;break;}
case 'e':{empl_1.post=executive;break;}
case 'r':{empl_1.post=researcher;break;}
default:cout << "Не корректный ввод";
}
cout << "name of the employee 2, salary, date of employment, post (1-st letter)" << endl;
cin >> empl_2.empl >> empl_2.salary >> empl_2.data.day >> ch >> empl_2.data.month >> ch >> empl_2.data.year >> s;
switch(s)
{
case 'l':{empl_2.post=laborer;break;}
case 's':{empl_2.post=secretary;break;}
case 'm':{empl_2.post=manager;break;}
case 'a':{empl_2.post=accountant;break;}
case 'e':{empl_2.post=executive;break;}
case 'r':{empl_2.post=researcher;break;}
default:cout << "Не корректный ввод";
}
cout << "name of the employee 3, salary, date of employment, post (1-st letter)" << endl;
cin >> empl_3.empl >> empl_3.salary >> empl_3.data.day >> ch >> empl_3.data.month >> ch >> empl_3.data.year >> s;
switch(s)
{
case 'l':{empl_3.post=laborer;break;}
case 's':{empl_3.post=secretary;break;}
case 'm':{empl_3.post=manager;break;}
case 'a':{empl_3.post=accountant;break;}
case 'e':{empl_3.post=executive;break;}
case 'r':{empl_3.post=researcher;break;}
default:cout << "Не корректный ввод";
}
cout << "1-st employee " << empl_1.empl << ", " << empl_1.salary << "$, " << empl_1.data.day << ch << empl_1.data.month << ch << empl_1.data.year << " date of employment, " << endl;
cout << "post" << endl;
switch(empl_1.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-nd employee " << empl_2.empl << ", " << empl_2.salary << "$, " << empl_2.data.day << ch << empl_2.data.month << ch << empl_2.data.year << " date of employment, " << endl;
cout << "post" << endl;
switch(empl_2.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-rd employee " << empl_3.empl << ", " << empl_3.salary << "$, " << empl_3.data.day << ch << empl_3.data.month << ch << empl_3.data.year << " date of employment, " << endl;
cout << "post" << endl;
switch(empl_3.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;}
};
system ("pause");
return 0;
}
{
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;}
};
system ("pause");
return 0;
}
8)
#include <iostream>
#include <iomanip>
using namespace std;
struct fraction
{
int numerator;
int denominator;
};
int main()
{
fraction f1, f2;
char charvar = '/';
cout << "enter 1-st fraction" << endl;
cin >> f1.numerator >> charvar >> f1.denominator;
cout << "enter 2-nd fraction" << endl;
cin >> f2.numerator >> charvar >> f2.denominator;
cout << (f1.numerator * f2.denominator) + (f1.denominator * f2.numerator) << charvar << f1.denominator * f2.denominator << endl;
system ("pause");
return 0;
}
9)
#include "stdafx.h"
#include <iostream>
using namespace std;
struct Time
{
int hours;
int minutes;
int seconds;
};
int main()
{
Time t1;
cout << "Enter the time through the gap (hours, minutes, seconds)" << endl;
cin >> t1.hours >> t1.minutes >> t1.seconds;
long totalsecs = (t1.hours * 3600) + (t1.minutes * 60) + t1.seconds;
cout << "number of seconds: " << totalsecs << endl;
system ("pause");
return 0;
}
10)
#include "stdafx.h"
#include <iostream>
using namespace std;
struct sterling
{
int pounds;
int shilling;
int pens;
};
int main()
{
sterling newp, oldp;
char ch = '.';
int sumpens;
cout << "Enter decimal pounds" << endl;
cin >> newp.pounds >> ch >> newp.pens;
sumpens = ((newp.pounds * 100) + newp.pens) * 2.4;
newp.pounds = sumpens/(20*12);
newp.shilling = sumpens % (20*12)/12;
newp.pens = sumpens%(20*12)%12;
cout << "Old pounds: J" << newp.pounds << ch << newp.shilling << ch << newp.pens << endl;
system ("pause");
return 0;
}
11)
#include "stdafx.h"
#include <iostream>
using namespace std;
struct Time
{
int hours;
int minutes;
int seconds;
};
int main()
{
Time t1, t2, tsum;
char ch;
cout << "Enter the 1-st time (hours. minutes. seconds)" << endl;
cin >> t1.hours >> ch >> t1.minutes >> ch >> t1.seconds;
cout << "Enter the 2-nd time (hours. minutes. seconds)" << endl;
cin >> t2.hours >> ch >> t2.minutes >> ch >> t2.seconds;
long totalsecs = ((t1.hours * 3600) + (t1.minutes * 60) + t1.seconds) + ((t2.hours * 3600) + (t2.minutes * 60) + t2.seconds);
tsum.hours = totalsecs/(60*60);
tsum.minutes = totalsecs % (60*60)/60;
tsum.seconds = totalsecs % (60*60) % 60;
cout << "Time: " << tsum.hours << ch << tsum.minutes << ch << tsum.seconds << endl;
system ("pause");
return 0;
}
12)
#include "stdafx.h"
#include <iostream>
#include <iomanip>
using namespace std;
struct fraction
{
int numerator;
int denominator;
};
int main()
{
fraction f1, f2, sumf;
char ch = '/', zn;
do
{
cout << "enter 1-st fraction" << endl;
cin >> f1.numerator >> ch >> f1.denominator;
cout << "Enter symbol" << endl;
cin >> zn;
cout << "enter 2-nd fraction" << endl;
cin >> f2.numerator >> ch >> f2.denominator;
switch (zn)
{
case '+': sumf.numerator =f1.numerator * f2.denominator + f1.denominator * f2.numerator;
sumf.denominator = f1.denominator * f2.denominator; break;
case '-': sumf.numerator = f1.numerator * f2.denominator - f1.denominator * f2.numerator;
sumf.denominator = f1.denominator * f2.denominator; break;
case '*': sumf.numerator = f1.numerator * f2.denominator;
sumf.denominator = f1.denominator * f2.denominator; break;
case '/': sumf.numerator = f1.numerator * f2.denominator;
sumf.denominator = f1.denominator * f2.numerator; break;
}
cout << sumf.numerator << ch << sumf.denominator << endl;
cout << "esche raz? (y,n)" << endl;
cin >> ch;
}
while (ch != 'n');
return 0;
}
В задаче 11 забыли значение переменной totalsecs разделить на два перед обратным переводом в час.мин.сек. Объяснять зачем не буду (долго писать), скомпилируйте и сами поймете.
ОтветитьУдалитьif (tsum.hours>=24) tsum.hours=tsum.hours%24;
ОтветитьУдалить