LAB1PPPO (Лабораторная работа №1)

2018-01-10СтудИзба

Описание файла

Файл "LAB1PPPO" внутри архива находится в следующих папках: Лабораторная работа №1, [ООП - 2 курс] Лабораторная работа №1. Документ из архива "Лабораторная работа №1", который расположен в категории "". Всё это находится в предмете "объектно-ориентированное программирование (ооп)" из 3 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "объектно-ориентированное программирование (ооп)" в общих файлах.

Онлайн просмотр документа "LAB1PPPO"

Текст из документа "LAB1PPPO"

4

ООП – Большаков С.А. 2009/2010

Требования к ЛР № 1 по курсу ООП

(2 курс ИУ5 - 3 семестр)

Изучение классов потокового ввода вывода и стандартных объектов CIN и COUT”

  1. Цель работы

Целью лабораторной работы является детальное изучение системы программирования BC 3.1 C++ и классов для работы с потоковым вводом выводом С++ (системные объекты: CIN и COUT). В результате студенты должны приобрести навыки работы в среде С++ и уметь выполнять операции потокового ввода вывода текстовой информации при программировании на С++.

  1. Изучаемые вопросы и задачи выполнения ЛР:

В процессе лабораторной работы (она рассчитана на 6 часов) студентам необходимо:

  1. Изучить порядок и особенности работы с оболочкой: подготовка и редактирование текста программы; создание проектов (в программе должно быть минимально 2 исходных файла - *.CPP); процессы трансляции и редактирования; порядок отладки программ; настройка оболочки, задание параметров командной строки и задание необходимых переменных окружения. Для отладки программ используется TD под ДОС или TDW. При использовании TD под ДОС целесообразно использовать программу перекодировки trans.exe (см. 5-й семестр) для подготовки отчета на русском языке.

  2. Изучить перегруженные операции для классов ввода/вывода – ">>" и "<<" (и их использование для выполнения операций потокового ввода/вывода информации и реализацию в виде описаний классов и методов)

  3. Освоить ввод данных с помощью объектов CIN (изучить файл - fstream.h)

  4. Освоить вывод данных с помощью объектов COUT (изучить файл - iostream.h)

  5. Применить вызов функции в потоке вывода объект COUT (изучить файл - iostream.h)

  6. Выполнить форматирование вывода данных в COUT и освоить использование манипуляторов (изучить дополнительно файлы - iomanip.h, iostream.h)

  7. Освоить порядок применения операторов, функций форматирования в потоковом вводе выводе.

  8. Найти в файлах каталогов (…\BC31\Include и …\BC31\crtl\Iostream) два различных определения для элементов языка: dec, hex, oct. Разобраться в том, чем они отличаются и где описываются, что означают с точки зрения языка программирования С++ и как используются в программах.

Примечание: Файлы для изучения располагаются в каталогах:

  • Iostream.h, fstream.h и Iomanip.h в каталоге <путь к BC>\INCLUDE,

  • Sthex.cpp и др. в каталоге <путь к BC>crtl\Iostream

  • Кроме того, я их разместил на сайте, для тех, кто инсталлировал BC не полном комплекте!

  1. Содержание работы:

В ЛР нужно выполнить следующее:

  1. Изучение оболочки BC 3.1 C++ в интерактивном режиме (всех пунктов меню и окон настройки работы оболочки).

  2. Изучение редактирования и сохранения текстов в среде оболочки (подготовка двух файлов: основного и вспомогательного, содержащего функцию, вызываемую из потока вывода)

  3. Описание модульной структуры программы и написание программы, состоящей из двух исходных файлов (диаграмма структуры должна иметь вид функциональной декомпозиционной диаграммы - FDD).

  4. Получить диаграмму наследования классов потокового ввода вывода автоматически в броузере классов оболочки BC++ (browse->classes) и построить ее на основе файлов описаний классов (iostream.h). Отобразить диаграмму в отчете по ЛР (нужно уметь пояснять назначение всех классов составляющих данную диаграмму, их связи и типы связей).

  5. Создать проектный файл для объединения двух исходных программ лабораторной работы (Project-> Open Project -> <новое имя>, Project-> Add Item -> <выбор модуля> и кнопка Add), настроить параметры проектного файла (option -> directories, option ->compilers->Code generation <small>).

  6. Изучить работу в отладчике С++ и отладить программы с его помощью (пошаговая отладка, просмотр переменных программы, просмотр стека вызываемых функций).

  7. Сформировать листинг программы и листинг результатов ее работы.

  8. Оформить отчет в соответствии с требованиями к лабораторной работы и общими требованиями.

  1. Требования к работе

В лабораторной работе № 1, с учетом общих требований, изложенных выше, должны быть отражены следующие программные действия в заданном порядке:

  • Ввод данных с консоли с запросом в виде текста "Введите …"(ввод с клавиатуры): ввод числа целого типа; ввод числа действительного типа; ввод строки текста (ввод выполняется посредством объекта CIN). Строка определяется в виде массива типа char или указателя char * с последующим динамическим распределением памяти new. Размер массива должен быть достаточным для ввода строки.

  • Вывод всех введенных чисел и строки в соответствующих форматах с пояснительным текстом "Вы ввели …" (посредством объекта COUT).

  • Вывод строки или целого числа посредством двух собственных пользовательских функций, определенных в другом исходном файле проекта и вызываемой непосредственно из оператора потока COUT (а не отдельной функцией в строке, а между операциями "<<"). Функции должны возвращать типы строка (char * - функцию нужно назвать strPrint) и целого числа (int – функцию нужно назвать iPrint). Эти обе функции размещаются во втором исходном модуле. Не забудьте в первом исходном модуле правильно описать прототипы этих функций.

  • Выполнить форматирование для введенного целого числа и вывод данных с помощью методов настройки (метод – setf вызываемый в отдельной строке программы) и манипуляторов (dec, hex, oct, endl размещаемых в потоке).

  • Продемонстрировать, в проихвольной форме, использование всех методов классов для объектов CIN и COUT: setf (для целого числа при выводе в шестнадцатеричном виде), width (для строки), fill (для строки) и precision (для действительного числа).

  1. Оформление отчета и защита

В отчет по ЛР должно быть включено:

  1. Титульный лист с номером ЛР (форма титульного листа дана в документе описания требований к документации по ДЗ - см. на сайте)

  2. Цель работы и порядок выполнения работы по шагам.

  3. Перечень ошибок исправленных при отладке программы (обязательно).

  4. Полная диаграмма классов потокового ввода вывода с пояснениями отличий классов при наследовании и других связей. Отметить галочкой классы, на основе которых создаются объекты CIN и COUT.

  5. Листинги программ (два файла программы и листинг проекта).

  6. Листинг результатов работы программы (пояснить метод его получения).

  1. Контрольные вопросы к ЛР №1

  1. Что такое проект в BC++? Для чего нужны проекты и в чем из преимущество?

  2. Что такое CIN и COUT?

  3. В каких файлах, и как описаны CIN и COUT?

  4. Что такое манипуляторы как элементы программы?

  5. Что нужно сделать для вызова функции, расположенной в другом объектном модуле?

  6. Какие основные действия можно предпринять в процессе отладки программы на TD? Перечислите основные операции и возможности, которые можно использовать при отладке программных проектов.

  7. Каково назначение функций (методов): setf, width, fill и precision ?

  8. Для чего нужны элементы программы dec, hex, oct? Где и как описаны? Что они представляют с точки зрения языка программирования СИ++?

  9. Что такое endl и где этот элемент описан?

  10. В каких файлах дано определение элемента языка hex ? Нужно указать два определения и два файла.

  11. В чем заключаются требования к функциям, вызываемым из потока COUT? Где можно уточнить эти требования (файл и место - класс);

  12. Для чего нужны в СП проекты? Как создать новый проект в BC 3.1?

  13. Что включается в проекты для DOS и WINDOWS приложений и чем они отличаются?

  14. Какие стандартные объекты классов потокового ввода вывода Вы знаете (четыре объекта)?

  15. Поясните полную диаграмму классов потокового ввода вывода (наследование и разновидности классов и связей), показанную в броузере классов. Какие связи отражены в этой диаграмме, а какие нет.

  16. Объясните назначение и отличие классов, входящих в диаграмму классов потокового ввода вывода.

  17. Поясните следующую запись на языке СИ++: cout.setf(ios::showpoint);

  18. В каком классе описаны следующие методы: setf, width, fill и precision.

  19. В каких классах потокового ввода вывода перегружены операции: “<<” и “>>”.

  1. Примеры операторов ввода и вывода

Ниже приведены только фрагменты программы и использования объектов и их методов потокового ввода и вывода в СИ++.

#include <iostream.h>

int iVal;

/* Вывод подзаголовка и ввод целой переменной */

cout << " Введите число : ";

cin >> iVal;

/* Вывод подзаголовка и вывод целой переменной */

cout << " Вы ввели число = " << iVal <<endl;

/* Использование манипулятора и вывод переменной в шестн. виде */

cout << " Число в шестн. виде = " << hex << iVal <<endl;

/* Вызов функции из потока вывода */

cout << " Число из функции = " << IntFunc() <<endl;

/* Использование функций форматирования: ширина, заполнение, точность и установка форматирования целых в шестн. Форме */

cout.width(50);

cout.fill('*');

cout.precision(3);

cout.setf(hex);

  1. Литература (из списка литературы к курсу)

Д. Рассохин стр. 88-92

Е.Козелл и др. стр. 173-191

  1. Консультации:

Консультации по ЛР и прием ЛР выполняется преподавателем. Большаковым С.А. Время консультаций согласовывается со старостами групп. Консультироваться можно также на сайте в онлайн режиме

  1. Примечание

Все пояснения для вызова пунктов меню даны для системы программирования BC++ 3.1. Данную систему необходимо использовать во всех лабораторных работах и для выполнения домашнего задания.

Срок сдачи ЛР № 1 - 4-я неделя семестра.

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