Академический Документы
Профессиональный Документы
Культура Документы
Отчет
по лабораторной работе № 2
по дисциплине «Алгоритмизация и компьютерное программирование»
Тема: «Разработка программ с использованием базовых конструкций С++»
Цель: научиться использовать средства ввода/вывода данных управляющие
конструкции (условные, циклические) языка С++; научиться разрабатывать и
вызывать пользовательские функции, в том числе с использованием массивов
и указателей.
Модуль 1а
1. Условие задачи.
2.Программный код
#include <iostream>
using namespace std;
class Car
{
public:
void input();
void output();
int getPrice();
private:
string mark;
int price;
};
class Buyer
{
public:
int getMoney();
Buyer(int money)
{
this->money = money;
}
private:
int money;
};
int Buyer::getMoney()
{
return money;
}
void Car::input()
{
cout << "Введите марку автомобиля: " << endl;
cin >> this->mark;
cout << "Введите стоимость автомобиля в у.е.: " << endl;
cin >> this->price;
}
void Car::output()
{
cout << "Автомобиль марки " << mark << " который стоит " << price << " у.е." <<
endl;
}
int Car::getPrice()
{
return price;
}
int main()
{
setlocale(LC_ALL, "Russian");
Car Cars[3];
for (Car& theCar : Cars) {
theCar.input();
}
cout << "Вы успешно ввели данные об автомобиле!" << endl;
for (Car& theCar : Cars) {
theCar.output();
}
Buyer A(6000);
for (Car& theCar : Cars) {
if (theCar.getPrice() <= A.getMoney()) {
cout << "Покупатель может приобрести следующие автомобили: " << endl;
theCar.output();
}
}
cout << "Нажмите любую кнопку для продолжения!" << endl;
return 0;
Тест
1 Анализ простой дроби
Шаги:
1 Запустить программу
2 6000-Вы ввели количество вашей суммы
3 Введите марку автомобиля:
BMW
4 Введите стоимость автомобиля в у.е.:
15500
3 Введите марку автомобиля:
Citroen
4 Введите стоимость автомобиля в у.е.:
7500
3 Введите марку автомобиля:
Lada
4 Введите стоимость автомобиля в у.е.:
4500
4 Введите стоимость автомобиля в у.е.:
Ожидаемый результат
На экран должно быть выведено:
Автомобиль марки BMW стоит 15500 у.е.
Автомобиль марки Citroen стоит 7500 у.е.
Автомобиль марки Lada стоит 4500 у.е.
Фактический результат:
Модуль 1
1. Условие задачи
Разработать программу согласно варианту задания. Добавить в
класс и показать использование в главной программе конструктора,
get- и set- методов.
2. Описать объект «правильный шестиугольник» в виде класса
RegularHexagon. Свойства: длина стороны. Методы: ввести, вывести
значения свойств, вычислить периметр. Использовать созданный класс
для написания программы вычисления периметра по заданному
значению длины стороны.
3. Программный код
#include <iostream>
using namespace std;
class RegularHexgon
{
public:
void input();
void output() const;
float getPerimiter() const;
private:
int length;
};
void RegularHexgon::input()
{
cout << "Ввод значения шестиуголника:" << endl;
cout << "Введите длину ";
cin >> this->length;
int main()
{
setlocale(LC_ALL, "Russian");
RegularHexgon A;
A.input();
cout << "Вы ввели длину: ";
A.output();
cout << endl;
cout << "Периметр: " << A.getPerimiter() << endl;
}
}3. Тестирование работы программы.
Тест
1 Анализ простой дроби
Шаги:
1 Запустить программу
2 Введите длину:5
Ожидаемый результат
На экран должно быть выведено:
Периметр = 30
Фактический результат:
Модуль 2
1. Условие задачи.
2. UML-диаграмма классов.
3. Программный код.
# #include <iostream>
class Сorpus {
public:
Сorpus(int price) :price{ price } {}
int getPrice() const
{
return price;
}
private:
int price = 0;
};
class Handle{
public:
Handle(int price) :price{ price } {}
int getPrice() const
{
return price;
}
private:
int price = 0;
};
class Shelves {
public:
Shelves(int price) :price{ price } {}
int getPrice() const
{
return price;
}
private:
int price = 0;
};
class Komod {
public:
Komod(Сorpus* exСorpus, Handle* exHandle, Shelves* exShelves)
private:
Сorpus* theСorpus;
Handle* theHandle;
Shelves* theShelves;
};
int Komod::getPrice() const
{
return theСorpus->getPrice() + theHandle->getPrice() + theShelves->getPrice();
}
int main()
{
setlocale(LC_ALL, "Russian");
Сorpus СorpusA(120), СorpusB(135), СorpusC(180), * pСorpus;
Handle HandleA(15), HandleB(20), HandleС(30), * pHandle;
Shelves ShelvesA(45), ShelvesB(60), ShelvesC(75), * pShelves;
int type;
switch (type) {
switch (type) {
switch (type) {
}
1. }Тестирование работы программы.
Пример
1 Анализ простой дроби
Шаги:
1 Выберите тип корпуса 1
2 Выберите тип ручки 2
3 Выберите тип полок 3
Ожидаемый результат
На экран должно быть выведено:
Стоимость комода:215
Фактический результат:
Контрольные вопросы
class имя {
тип1 переменная-свойство1;
тип2 переменная-свойство2;
public :
тип функция-метод1(параметры);
тип функция-метод2(параметры);
};
Пример.
B[i].input();
B [ i ]. output ();
fraction A; // дробь
// объявляем указатель типа fraction и присваиваем ему адрес дроби A
fraction* p=&A;
p->input();// ввод дроби
int х = 1, у = 2, z[10];
int *ip; /* ip - указатель на int */
class cl {
int num;
public:
};
class string { . . .
public:
...
};
Конструктор по умолчанию.
Это конструктор без аргументов. Попробуем привести пример. Создадим
класс String, а в нем создадим конструктор по умолчанию и посмотрим
когда он вызовется.
Конструктор копирования.
Конструктор преобразования.
1. Абстрация
2. Инкапсуляция
3. Наследование
4. Полиморфизм