Введите первую букву должности




Лабораторная работа №3

Структуры и перечисления.

1. Номер телефона, например (212) 767—8900, можно условно разделить на три части: код города (212), номер телефонной станции (767) и номер абонента (8900). Напишите программу с использованием структуры, позволяющую раздельно хранить эти три части телефонного номера. Назовите структуру phone. Создайте две структурные переменные типа phone. Инициализацию одной из них произведите сами, а значения для другой запросите с клавиатуры. Затем выведите содержимое обеих переменных на экран. Результат работы программы должен выглядеть приблизительно так:

Введите код города, номер станции и номер абонента:

415 555 1212

Мой номер (212) 767-8900

Ваш номер (415) 555-1212

// uses structure to store phone number

#include <iostream>

using namespace std;

////////////////////////////////////////////////////////////////

Struct phone

{

Int area; //area code (3 digits)

Int exchange; //exchange (3 digits)

Int number; //number (4 digits)

};

////////////////////////////////////////////////////////////////

Int main()

{

phone ph1 = { 212, 767, 8900 }; //initialize phone number

Phone ph2; //define phone number

// get phone no from user

cout << "\nEnter your area code, exchange, and number";

cout << "\n(Don't use leading zeros): ";

cin >> ph2.area >> ph2.exchange >> ph2.number;

cout << "\nMy number is " //display numbers

<< '(' << ph1.area << ") "

<< ph1.exchange << '-' << ph1.number;

cout << "\nYour number is "

<< '(' << ph2.area << ") "

<< ph2.exchange << '-' << ph2.number << endl;

return 0;

}

Расположение точки на плоскости можно задать с помощью двух координат: х и у. Например, если точка имеет координаты (4, 5), то это значит, что она отстоит на 4 единицы справа от вертикальной оси и на 5 единиц вверх от горизонтальной оси. Сумма двух точек определяется как точка, имеющая координаты, равные сумме соответствующих координат слагаемых.

Напишите программу, использующую для интерпретации точки на плоскости структуру с названием point. Определите три переменные типа point, и две из них инициализируйте с помощью значений, вводимых с клавиатуры. Затем присвойте третьей переменной значение суммы первых двух переменных и выведите результат на экран. Результат работы программы может выглядеть следующим образом:

Введите координаты точки p1: 3 4

Введите координаты точки р2: 5 7

Координаты точки p1+p2 равны 8.11

// structure models point on the plane

#include <iostream>

using namespace std;

////////////////////////////////////////////////////////////////

Struct point

{

Int xCo; //X coordinate

Int yCo; //Y coordinate

};

////////////////////////////////////////////////////////////////

Int main()

{

Point p1, p2, p3; //define 3 points

cout << "\nEnter coordinates for p1: "; //get 2 points

cin >> p1.xCo >> p1.yCo; //from user

cout << "Enter coordinates for p2: ";

cin >> p2.xCo >> p2.yCo;

p3.xCo = p1.xCo + p2.xCo; //find sum of

p3.yCo = p1.yCo + p2.yCo; //p1 and p2

cout << "Coordinates of p1+p2 are: " //display the sum

<< p3.xCo << ", " << p3.yCo << endl;

return 0;

}

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

// uses structure to model volume of room

#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 = { { 16, 3.5 }, { 12, 6.25 }, { 8, 1.75 } };

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 << "Volume = " << l*w*h << " cubic feet\n";

return 0;

}

// englstrc.cpp

// demonstrates structures using English measurements

#include <iostream>

using namespace std;

////////////////////////////////////////////////////////////////

Struct Distance //English distance

{

int feet;

float inches;

};

////////////////////////////////////////////////////////////////

Int main()

{

Distance d1, d3; //define two lengths

Distance d2 = { 11, 6.25 }; //define & initialize one length

//get length d1 from user

cout << "\nEnter feet: "; cin >> d1.feet;

cout << "Enter inches: "; cin >> d1.inches;

//add lengths d1 and d2 to get d3

d3.inches = d1.inches + d2.inches; //add the inches

d3.feet = 0; //(for possible carry)

if(d3.inches >= 12.0) //if total exceeds 12.0,

{ //then decrease inches by 12.0

d3.inches -= 12.0; //and

d3.feet++; //increase feet by 1

}

d3.feet += d1.feet + d2.feet; //add the feet

//display all lengths

cout << d1.feet << "\'-" << d1.inches << "\" + ";

cout << d2.feet << "\'-" << d2.inches << "\" = ";

cout << d3.feet << "\'-" << d3.inches << "\"\n";

return 0;

}

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

Создайте структуру типа 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



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: