rlab1 (Лабораторная работа №1)
Описание файла
Файл "rlab1" внутри архива находится в следующих папках: Лабораторная работа №1, лаба 1, Documents, 1. Документ из архива "Лабораторная работа №1", который расположен в категории "". Всё это находится в предмете "объектно-ориентированное программирование (ооп)" из 3 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "объектно-ориентированное программирование (ооп)" в общих файлах.
Онлайн просмотр документа "rlab1"
Текст из документа "rlab1"
4
Утверждаю: | |
Большаков С.А. | "__"_____________2006 г. |
Лабораторная работа №1
"Изучение классов потокового ввода вывода и стандартных объектов CIN и COUT"
Отчет
(вид документа)
писчая бумага
(вид носителя)
4
(количество листов)
ИСПОЛНИТЕЛЬ: | |
студент группы ИУ5-54 | _____________________ |
Киреев И. А. | "__"_____________2007 г. |
Москва - 2007
________________________________________________________________
1. Цель работы
Целью лабораторной работы является детальное изучение системы программирования BC3.1 C++ и классов для работы с потоковым вводом выводом С++ (системные объекты: CIN и COUT). В результате студенты должны приобрести навыки работы в среде С++ и уметь выполнять операции потокового ввода вывода текстовой информации при программировании на С++.
2. Содержание работы
В ЛР нужно выполнить следующее:
-
Изучение оболочки BC 3.1 C++ в интерактивном режиме (всех пунктов меню и окон настройки работы оболочки).
-
Изучение редактирования и сохранения текстов в среде оболочки (подготовка двух файлов: основного и вспомогательного, содержащего функцию, вызываемую из потока вывода)
-
Описание модульной структуры программы и написание программы, состоящей из двух исходных файлов (диаграмма структуры должна иметь вид функциональной декомпозиционной диаграммы - FDD).
-
Получить диаграмму наследования классов потокового ввода вывода автоматически в броузере классов оболочки BC++ (browse->classes) и построить ее на основе файлов описаний классов (iostream.h). Отобразить диаграмму в отчете по ЛР (нужно уметь пояснять назначение всех классов составляющих данную диаграмму, их связи и типы связей).
-
Создать проектный файл для объединения двух исходных программ лабораторной работы (Project-> Open Project -> <новое имя>, Project-> Add Item -> <выбор модуля> и кнопка Add), настроить параметры проектного файла (option -> directories, option ->compilers->Code generation <small>).
-
Изучить работу в отладчике С++ и отладить программы с его помощью (пошаговая отладка, просмотр переменных программы, просмотр стека вызываемых функций).
-
Сформировать листинг программы и листинг результатов ее работы.
-
Оформить отчет в соответствии с требованиями к лабораторной работе и общими требованиями.
3. Перечень ошибок
1. Оператор >> класса CIN определен как
istream _FAR & _Cdecl operator>> (int _FAR &);
Ключевое слово _FAR не позволяет использовать объект CIN для ввода локальных переменных процедуры. Самым простым решением этой проблемы является использование в программе глобальных переменных.
4. Диаграмма классов
5. Листинги программ
5.1. lab11.cpp
#include <iostream.h>
char* strPrint( char* );
int iPrint( int );
int iVal = 0;
float fVal = 0.0;
char sVal[256] = "";
void main( void )
{
//Заголовок
cout << " Лаб. работа №1.\n Киреев Иван.\n";
//Работа с целым числом
cout << " Введите целое число: ";
cin >> iVal;
cout << " Вы ввели целое число = " << iVal << endl;
//Работа с действительным числом
cout << " Введите действительное число: ";
cin >> fVal;
cout << " Вы ввели действительное число = " << fVal << endl;
//Работа со строкой
cout << " Введите строчку длиной не более 255 символов: ";
cin >> sVal;
cout << " Вы ввели строку = " << sVal <<endl;
//Работа с функциями
cout << " Работа с функциями \n";
cout << " Вы ввели число " << iPrint( iVal ) << endl;
cout << " Вы ввели строку " << strPrint( sVal ) << endl;
//Форматированный вывод
cout << " Форматированный вывод \n";
cout.setf( ios::hex + ios::uppercase );
cout << " в 16 с\\с " << iPrint( iVal ) << endl;
cout.setf( ios::dec + ios::uppercase );
cout << " в 10 с\\с " << iPrint( iVal ) << endl;
cout.setf( ios::dec );
cout << oct << " в 8 с\\с " << iPrint( iVal ) << endl;
}
5.2. lab12.cpp
//Вывод строки
char* strPrint( char* str )
{
return str;
}
//Вывод числа
int iPrint( int i )
{
return i;
}