Программирование >>  Расширенная версия языка c++ 

1 ... 84 85 86 [ 87 ] 88 89 90 ... 227


ostream ator (ostream eam, inventory ob) {

stream ob.item : ob. onhand;

stream на руках по цене $ ob.cost \n;

return stream;

istream ator (istream eam, inventory &ob) {

cou Введите название предмета: ; i ,

stream >> ob.item;

cout < Введите число выданных на руки экземпляров: ; stream >> ob. onhand;

ci> a;

cout < а;

return 0;

Обратите внимание, как пользовательская функция ввода формирует строку-приглашение для ввода данных. Хотя во многих случаях этого не требуется (или даже это нежелательно), пользовательская функция ввода показывает, как в случае необходимости почти без усложнения программы можно выдать приглашающее сообщение.

2. Здесь создается класс inventory (инвентарь), в котором хранится название какого-то предмета, количество выданных на руки штук и стоимость одной штуки. В программу для этого класса включены пользовательские функции ввода и вывода.

ttinclude <iostreain> ttinclude <cstring> using namespace std;

class inventory {

cha [40]; название предмета

int onhand; количество предметов на руках .

double cost; цена предмета public;

inventory (char *i, int o, double c)

strcpy(item, i);

onhand = o; cost = c;

friend ostream soperator<< (ostream bstream, inventory ob!; friend istream £operator (istream bstream, inventory iob) ;



268 Самоучитель C+ +

cou Введите стоимость экземпляра ; stream ob.cost;

return stream;

intmain ( )

inventory ainmer , 4, 12.55);

cou ob; cin ob;

cout -.:< ob; ,

return 0;

лразкнения

1. Добавьте пользовательскую функцию ввода в клас уре из упражнения I предыдущего раздела.

2. Создайте класс для хранения целого и его наименьшего делителя. Создайте для этого класса пользовательские функции ввода и вывода.

Проверка усвоения с материала главы


Теперь вам необходимо выполнить следующие упражнения и ответить на вопросы:

1. Напишите программу для вхвода числа 100 в десятичной, шестнаццгпепич--ной и восьмеричной системе счисления. (Используйте флаги формата класса ios.)

2. Напишите программу для вывода значения 1000.5364 в 20-символьном . : . с выравниванием влево, с двумя позициями после запятой и символом * в качестве символа заполнения. (Используйте флаги формата класса ios.)

3. Перепишите ваши ответы на упражнения 1 и 2 так, чтобы использовались манипуляторы ввода/вывода.

4. Покажите, как записать и как отобразить для класса cout флаги формата. Используйте функции-члены либо манипуляторы.



Проверка усвоения материала в целом

В этом разделе проверяется, хорошо ли вы усвоили материал этой и предыдущих глав.

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

ttinclude iostream> . . , ......

using namespace

#define SI2E 10 ,

Объявление класса stack для хранения стволов

class stack {

cha SIZE] ; содержит стек

int tos; индекс вершины Стека

public;

stack

voi ar ch) ; помещение ствола в стек char из стека

5. Создайте для следующего класса пользовательские токции ввода и вывода:

class pwr (

int base;

int exponent;

double result; результат возведения в степень public: . .

pwr (int b, int e)

pwr::pwr(int b, int e)

base - b; , .

exponent e; result 1;

for(; e; e -) result result base; ...... .

6. Создайте класс box для хранения размеров квадрата. Для вывода изображения квадрата на экран создайте пользовательскую функцию вывода. (Способ изображения выберите любой.)



1 ... 84 85 86 [ 87 ] 88 89 90 ... 227

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика