Лабораторная работа №1 «Программирование с использованием операторов и функций»



Download 433,5 Kb.
bet6/7
Sana07.04.2020
Hajmi433,5 Kb.
#43355
TuriЛабораторная работа
1   2   3   4   5   6   7
Bog'liq
лаб янги С Каб АТ

IV. Методические указания

1. Геометрические фигуры должны быть созданы через координаты точек. Например координаты прямоугольника в котором они лежат.


2. Необходимо использовать объект структуры или класса Point ( Точка).

Class Point

{ double x, y, z;

Public:

Point(x=x1; y1=0; z1=0) { x=x1; y=y1; z=z1;}



}


2. В классах для фигур с вырезом в конструкторе предусмотреть проверку корректности данных.
3. Примеры иерархии классов:

TObject (абстр. Класс): Геометрическая фигура (абстр. класс): Круг
4. Пример определения добавленного абстрактного класса

class TObject

{

public:

virtual void Show()=0;

};
5. Абстрактный класс для геометрической фигуры

class TGraph:TObject

{

Point z1,z2;

public:

virtual void perimetr()=0;

virtual void square()=0;

virtual void draw()=0;

}

Лабораторная работа №6
«Программирование с использованием перегрузки операций и шаблонов классов»
Цель: Получить практические навыки перегрузки операций в языке С++. Получить практические навыки создания шаблонов и использования их в программах С++.
I. Краткие теоретические сведения
I. Постановка задачи
1. Выбрать класс в соответствии с вариантом. Дополнить определение класса заданными перегруженными операциями в соответствии с вариантом. Реализовать эти операции. Выполнить тестирование.

2. Создать шаблон группы объектов. Определить и реализовать методы для вычисления суммы, среднего значения, максимального и минимального значения, а также сортировки. Реализовать эти операции для объекта, выбранного класса. Выполнить тестирование.

3. Выполнить то же самое для шаблона список.
II. Варианты




Класс

1

интервал даты (год, месяц, день)

2

интервал времени (час, минута, секунда)

3

деньги (величина, единица, курс по отношению к доллару)

4

угол (градус, минута, секунда)

5

Память компьютера (мегабайт, килобайт, байт)

6

комплексное число в алгебраической форме

7

комплексное число в тригонометрической форме

8

комплексное число в экспоненциальной форме

9

рациональное число-дробь

10

десятичное число с фиксированной точкой

11

n мерный вектор

12

вычет по простому модулю p

13

квадратная вещественная матрица размером 2x2

14

конденсатор (C – ёмкость, Umax – максимальное допустимое напряжение).

15

проводник (R – сопротивление, Umax – максимальное допустимое напряжение).

16

квадратная вещественная матрица размером nxn

17

n мерный битовый вектор

18

трехмерный вектор в полярных координатах

19

множество строк

20

множество чисел


III. Содержание отчета
1. Титульный лист: название дисциплины; номер и наименование работы; фамилия, имя, отчество студента; дата выполнения.

2. Конкретное задание с указанием номера варианта, реализуемого класса и операций.

3. Определение класса.

4. Обоснование включения в класс нескольких конструкторов, деструктора и операции присваивания.

5. Объяснить выбранное представление памяти для объектов реализуемого класса.

6. Реализация перегруженных операций с обоснованием выбранного способа (функция  член класса, внешняя функция, внешняя дружественная функция).

7. Тестовые данные и результаты тестирования.
IV. Методические указания
1. В классе реализовать перегрузку следующих операций:

 бинарные операции;

 унарные операции(++ и --);

 операции отношения.


2. Для вода и вывода определить в классе функции input и print.
3. Чтобы не возникало проблем, необходимо аккуратно работать с константными объектами. Например:

  • конструктор копирования следует определить так:

MyTmp (const MyTmp& ob);

  • операцию присваивания перегрузить так:

MyTmp& operator = (const MyTmp& ob);
4. Тестирование должно быть выполнено для всех типов данных и для всех операций.
5. Реализация шаблона класса array для работы с объектами классов с перегруженными операциями.
template class array

{

T *data;

int size;

public:

array(int k) {size =k; data = new T[size]};

T& operator[](int i){return data[i];}

int size() { return size; }

~array () { delete []data; }

float max_element ()

void input_array();

void show_array ();

};
template float array:: max_element ()

// находит максимальный элемент для массива типа float

{

float max=data[0];

for ( i=1; i

if (a[i]>max) max=data[i];

return max;

}
template void array:: input_array()

{

for (int i = 0; i < index; i++) {cin>>data[i] ; cout << ' ';}

}
template void array:: show_array()

{

for (int i = 0; i < index; i++) cout << data[i] << ' '; 

}

Лабораторная работа №7
«Программирование с использованием потоковых классов»
Цель: Научиться программировать ввод и вывод в С++ используя объекты потоковых классов стандартной библиотеки С++.
I. Постановка задачи
1. Сформировать массив элементов заданной в варианте структуры. Написать функцию для сохранения массива в файле. Использовать в программе.

2. Написать функцию и реализовать в программе для чтения из файла, формирования и вывода массива структурного типа.

3. Написать функцию и реализовать в программе для корректировки (т.е. замены) записей в файл на основе выбранного критерия для структуры указанного в варианте. Выполнить программу и просмотреть полученный файл.
II. Варианты




Класс

1

Абитуриент (имя, год рождения, набранный балл, средний балл)

2

Сотрудник (имя, должность, год рождения, заработная плата)

3

Страна (название, столица, численность населения, площадь)

4

Государство (название, язык, денежная единица, курс валюты)

5

Человек (имя, домашний адрес, номер телефона, возраст)

6

Паспорт (имя, номер, дата выдачи, кем выдано)

7

Школьник (имя, класс, номер телефона, возраст)

8

Студент (имя, домашний адрес, группа, рейтинг)

9

Группа (номер, курс, факультет, количество студентов)

10

Самолёт (марка, вместимость, компания, страна)

11

Покупатель (имя, адрес, телефона номер кредитной карточки)

12

Пациент (имя, адрес, номер карты, номер страхового полиса)

13

Информация (носитель, объем, название, автор)

14

Видеокассета (название режиссер, продолжительность, цена)

15

Музыкальный диск ( название, автор, продолжительность, цена)

16

Спортивная команда (название, город, количество игроков, очки)

17

Театр (название, адрес, вместимость, вид театрального искусства)

18

Стадион (название, город, год постройки, количество площадок)

19

Автомобиль (марка, номер, цена, год выпуска)

20

Костюм (размер, страна, цена, цвет)


III. Содержание отчета


  1. Титульный лист: название дисциплины, номер и наименование работы, фамилия, имя, отчество студента, дата выполнения..

  2. Описание используемых типов данных.

  3. Текст функций для:

    • формирования файла,

    • печати файла,

    • добавления записи в файл,

    • удаления записи из файла

    • поиска структуры для удаления.

  4. Программа решения задания.

  5. Результаты работы программы.

  6. Объяснение результатов.


IV. Методические указания


  1. Для заполнения файла можно использовать функцию, формирующую одну структуру, указанного в варианте типа. Значения элементов структуры вводятся с клавиатуры. Для ввода можно использовать операцию >> и функцию gets().




  1. При вводе структур можно реализовать один из следующих механизмов:

ввод заранее выбранного количества структур (не менее 5);

ввод до появления структуры с заданным количеством признаков;

диалог с пользователем о необходимости продолжать ввод.


  1. Для записи структуры в файл и чтения структуры из файла использовать функции ввода/вывода read и write. Пример вывода в файл:

Student x={“Иванов”, 20, 4);

ofstream emp_file("EMPLOYEE.DAT") ;
emp_file.write((char *) &x, sizeof(student));


Пример ввода из файла:

   ifstream emp_file("EMPLOYEE.DAT");


   emp_file.read((char *) &worker, sizeof(employee));



  1. Для удаления/ добавления элементов в файл использовать вспомогательный файл.



  1. Предусмотреть в программе вывод сообщения о количестве сохраненных объектов и о длине полученного файла в байтах.



Лабораторная работа №8
«Программирование с использованием исключительных ситуаций»
Цель: Научиться управлять исключительными ситуациями.
I. Постановка задачи
1. Написать программу для обработки исключительных ситуаций при вычислении выражений. Реализовать функции для вычислений с учетом исключительных ситуаций. Выполнить тестирование программы.

2. Разработать класс для указанной фигуры. В классе предусмотреть различные исключительные ситуации, которые могут, возникнут во время игры.

3. С помощью класса решит следующую задачу. Во входном файле дан список ходов. Проверить правильность записи.
II. Варианты




выражение

фигура

1

n+++m m-- >n

белая шашка

2

++n*++m m++

белая пешка

3

n---m m--

белая ладья

4

n++*m n++

белый конь

5

- -m-++n m*n

белый слон

6

m-++n ++m>--n

белый король

7

m+--n m++<++n

белый ферзь

8

n++-m m-- >n

черная пешка

9

++n*++m m++

черная ладья

10

n---m m--

черный конь

11

n++*m n++

черный слон

12

- -m-++n m*n

черный король

13

m-++n ++m>--n

черный ферзь

14

m+--n m++<++n

белая пешка

15

n++-m m-- >n

белая ладья

16

++n*++m m++

белый конь

17

n---m m--

белый слон

18

n++*m n++

белый король

19

- -m-++n m*n

белый ферзь

20

m-++n ++m>--n

черная пешка

Download 433,5 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish