Главная » Просмотр файлов » Г. Шилтд - Самоучитель C++ (DJVU)

Г. Шилтд - Самоучитель C++ (DJVU) (1114955), страница 40

Файл №1114955 Г. Шилтд - Самоучитель C++ (DJVU) (Г. Шилтд - Самоучитель C++ (DJVU)) 40 страницаГ. Шилтд - Самоучитель C++ (DJVU) (1114955) страница 402019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 40)

2. Здесь создается класс 1птеп1огу (инвентарь), в котором хранится название какого-то предмета, количество выданных на руки штук и стоимость одной штуки. В программу для этого класса включены пользовательские функции ввода и вывода. ()Епс1цсе <1ояггеаза> ФЕпс1цс(е <сягг)пя> ия)пя пагпеярасе ягс); // название предмета // количество предметов на руках // цена предмета 1пг о, ооцЫс с) яггсру(1'сею, з ); опцапо = о; сояг = с; Еггепо ояггеап~ йорегасог<< (ояггеятп йяггеаан Епчепгогу оЬ); Егтепо Еясгеат йорегасог» (Еясгеаш йяягеал1, Епчепгогу йоо); ОЯ'СГЕат йОРЕГаСОГ« (ОЯГГЕат йЯГГЕавы ЕПЧЕПСОГУ ОЬ) ( аггеями « оЬ.Егеп~ << " " << оЬ.опЬап<1; ясгеап~ << " на руках по цене 3" << оЬ.сояг << ' 1п'; гегцгп аггеями; Еяггеат йорегаТог» (Еяггеагя йяЕгеав~, Епчепсогу йоЬ) сонг « "Введите название предмета: аггеями » оЬ.Егегя; сопя « "Введите число выданных на руки экземпляров: ясгеап » оЬ.

опЬапсн с1аяя (пхепЕогу 1 сцаг Егекз[4()); ш1 опЬапо; г)оиЬ)е соят; рпЬ1 Ес: Епчепгогу(сЬаг ( в систему ввода/вывода С++ Ебу Самоучитель Сь+ сопв « "введите стоимость экземпляра: зптеатп » оЬ.соз»; тесппп встеади .т п с па п (,1 ьпчепсоту оЬ( "палпет", 4, 12, 55) сопс « оЬ; сап >>оЬ р сопв « оЬ; тевптп 0; 1. Добавьте пользовательскую функцию ввода в класс в1г$уре из упражнения 1 предыдушегораздела. 2. Создайте класс для хранения целого и его наименьшего делителя. Создайте для этого класса пользовательские функции ввода и вывода.

Теперь вам необходимо выполнить следующие упражнения и ответить на вопросы: 1. Напишите программу для вывода числа 100 в десятичной, шестнадцатеричной и восьмеричной системе счисления. (Используйте флаги формата класса юа.) 2. Напишите программу для вывода значения 1000.53б4 в 20-символьном поле, с выравниванием влево, с двумя позициями после запятой и символом * в качестве символа заполнения. (Используйте флаги формата класса юв.) 3.

Перепишите ваши ответы на упражнения 1 и 2 так, чтобы использова- лись манипуляторы ввода/вывода. 4. Покажите, как записать и как отобразить для класса сои1 флаги формата. Используйте функции-члены либо манипуляторы. Глава 8, Введение в систему ввода/вывода С++ 263 5. Создайте для следующего класса пользовательские функции ввода и вывода: с1аяя рит тпб Ьаяе; 1пс ехропепс; оопше теяп1Я; /У результат возведения в степень рчЫ1с: рит(ьлс Ь, гпе е) рыл::рих(гпя Ь, (пп е( Ьаяе = Ь; ехропеп(. = е; теяп1Ь = 1; тот(; е; е --, 'теяп1с = леяп1' *' Ьаяе; 6.

Создайте класс Ьох для хранения размеров квадрата. Для вывода изображения квадрата на экран создайте пользовательскую функцию вывода. гСпособ изображения выберите любой.) В этом разделе проверяется, хорошо ли вы усвоили материал этой и предыдуших глав. 1. Используя показанный здесь класс в1ас1(, создайте пользовательскую функцию вывода для вставки в поток содержимого стека. Покажите, что функция работает.

пп1пс1нбе<гоя('.левш> пя1пц пащеярасе я'сс(; ((сеГвпе Я12Е 10 Объявление класса яяаск для хранения символов с1аяя япаск ( сиад яеск[ЯХЯЕ1,' // содержит стек 1пс боя; индекс вершины стека рпЫ 2. сн ясаск (); чога рпяЬ(сЬал си1; // помещение символа в стек сиад рор()' выталкивание символа из стека Самоучитель С++ 270 у! Инициализации стека згаси::агасси() ( соя=О) у! Помещение символа в стек то1с) агасси::ризЛ(спаг сЬ) тЙ (соз= я1ЕЕ) ( сопс « "Стек полон"; тепптп; згск(гоз)=с)1» Тоз++; 7! Выталкивание символа из стека сваг зЕаск::рор() ( тй (гоз=-О) ( соуп « "Стек пуст"; гееигп 0; )! возврат нуля при пустом стеке гоз--; гесптп згс)~(гоз) 2.

Напишите программу с классом иаМЬ, который бы играл роль обычных часов. Используя стандартные функции времени, создайте конструктор класса, который должен считывать и запоминать системное время. Для вывода этого времени на экран создайте пользовательскую функцию вывода. 3. На основе класса, созданного для преобразования футов в дюймы, напишите пользовательскую функцию ввода, формирующую строку-приглашение для записи числа футов. Кроме этого, напишите пользовательскую функцию вывода для отображения на экране как числа футов, так и числа дюймов.

Включите указанные функции в программу и продемонстрируйте их работоспособность. с1азз Гс го гас)»ез ( йопЫе геес; йопЫе тпсЬея; рпЬ11с: тоЫ яес (ЙоиЫе г); ( кеес — Й; 1псЬея = ( * 12». Глава 9 Дополнительные ВОЗможнОСти ~ввода/вывода в С++ В этой главе продолжается изучение системы ввода/вывода С++.

Здесь вы узнаете, как создать пользовательские манипуляторы ввода/вывода и как реализовать ввод/вывод в файл. Запомните, система ввода/вывода С++ очень богата, гибка и многофункциональна. Рассмотрение всех ее возможностей выходит за рамки данной книги, мы коснемся только наиболее важных из них. Представленная в этой главе система ввода/вывода С++ определена в стандарте Бгапбагб С++ и совместима с подавляющим большинством современных компиляторов С++. Если у вас устаревший или несовместимый с современной системой ввода/вывода компилятор, то не все описанные здесь возможности будут вам доступны.

Перед тем как продолжить, необходимо правильно ответить на следующие вопросы и сделать упражнения. 1. Напишите программу для вывода предложения: "С++ прекрасен" в поле шириной 40 символов с использованием двоеточия (:) в качестве символа заполнения. 2. Напишите программу для вывода результата деления 1О/3 с четырьмя знаками после десятичной точки. Для этого используйте функции-члены класса 1оз. 3. Перепишите предыдущую программу, используя манипуляторы вво- да/вывода. 4. Что такое пользовательская функция вывода? Что такое пользовательская функция ввода? Самоучитель Сч-ь 5. Дан следующий класс. Создайте для него пользовательские функции ввода и вывода.

с1авв саке ( сЬат ба~е ~Э~~ // дата хранится в виде строки: пп~/Об/уу рпЫ1с: добавьте пользовательские функпии ввода и вывода 6. Какой заголовок должен быть включен в программу для использования манипуляторов ввода/вывода с параметрами? 7. Какие создаются встроенные потоки, когда начинается выполнение программы на С++? 9.1. Создание пользовательских манипуляторов В дополнение к перегрузке операторов ввода и вывода вы можете создать свою подсистему ввода/вывода С++, определив для этого собственные манипуляторы. Использование пользовательских манипуляторов важно по двум причинам.

Во-первых, можно объединить последовательность нескольких отдельных операций по вводу/выводу в один манипулятор. Например, нередки ситуации, в которых в программе встречаются одинаковые последовательности операций ввода/вывода. Для выполнения такой последовательности можно создать пользовательский манипулятор. Этим вы упрощаете исходную программу и исключаете случайные ошибки. Во-вторых, пользовательский манипулятор может понадобиться, когда необходимо выполнить ввод/вывод на нестандартном оборудовании.

Например, вы могли бы воспользоваться манипулятором для посылки управляющих кодов на специальный принтер или в систему оптического распознавания. Пользовательские манипуляторы — это те элементы языка, которые обеспечивают поддержку в С++ объектно-ориентированного программирования, но они также удобны и для обычных, не объектно-ориентированных программ.

Как вы увидите, пользовательские манипуляторы могут помочь сделать любую программу ввода/вывода понятней и эффективней. Как вы знаете, имеется два базовых типа манипуляторов: те, которые работают с потоками ввода, и те, которые работают с потоками вывода. Однако кроме этих двух категорий имеются еще две: манипуляторы с аргументами и без них. Есть несколько важных отличий в способе создания манипуляторов с параметрами и без. Более того, создание манипуляторов с параметрами является сугцественно более трудной задачей, чем создание манипуляторов без параметров, и в этой книге не рассматривается. С другой стороны, создать пользовательский манипулятор без параметров достаточно просто, и вы скоро узнаете, как это сделать. 273 Глава 9.

Дополнительные возможности ввода/вывода в С++ Все манипуляторы без параметров для вывода имеют следующую конструкцию: оаккваи Виня иаиипулятора (оакквап ьлоток) ТУ код программы манипулятора кеЕшп поток; Здесь ичя мпивпулятора — это имя создаваемого вами пользовательского манипулятора, а поток — ссылка на вызывающий поток. Возвращаемым значением функции является ссылка на поток. Это необходимо в случае, когда манипулятор является частью большого выражения ввода/вывода. Важно понимать, что хотя у манипулятора и имеется в качестве единственного аргумента ссылка на поток, с которым он работает, но, когда манипулятор используется в операции вывода, его аргумент не используется. Все манипуляторы без параметров для ввода имеют следующую конструкцию: квекеаа ьшак манипулятора (~аекеаи бпоток1 ( 1! Код программы иапипулятора кеснкп ноток, Манипулятор ввода получает в качестве параметра ссылку на поток, для которого он вызывается.

Манипулятор должен возвращать этот поток. То, что манипулятор возвращает ссылку на вызывающий поток весьма важно. Если этого не сделать, то ваши манипуляторы нельзя будет использовать в последовательностяк операций ввода или вывода. '",.' Прамвры ' 1. Рассмотрим первый простой пример. В следующей программе создается манипулятор ведро, который устанавливает ширину поля вывода, равную 1О, точность, равную 4, и символ заполнения *. бт пс1аие <т овстеак> пагад патпеврасе з~Ф Самоучитель С++ 274 овегаав бае1пр (овегеап~ ГЬГгеат) аггее. иЫТп (10); вггеап~.ргесхэьоп(4)) вТгеап~.Г111('*'); ГЕСНГП ЯСГЕааз упс м1п() сопя «яеснр « 123,12з4<".

Характеристики

Тип файла
DJVU-файл
Размер
8,22 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6508
Авторов
на СтудИзбе
302
Средний доход
с одного платного файла
Обучение Подробнее