|
Программирование >> Расширенная версия языка c++
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 для хранения размеров квадрата. Для вывода изображения квадрата на экран создайте пользовательскую функцию вывода. (Способ изображения выберите любой.)
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |