Форум программистов, компьютерный форум CyberForum.ru

Решение всех упражнений из книги Р. Лафоре "Объектно-ориентированное программирование в С++" - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Конвертер текстового файла http://www.cyberforum.ru/cpp-beginners/thread439174.html
Добрый день!!! Простите за наглость... Помогите пожалуйста написать программу-конвертер текстовых файлов из dos в windows и обратно. С командной строки должно вводится направление /d или /w. Я очень мало в этом понимаю. Заранее спасибо!!!
C++ Проблема с libmms - ошибка при компиляции. Здравствуйте. Уже который день не могу разобраться с упомянутой в заголовке библиотекой, а именно: пишу примерно такой тестовый код #include <iostream> #include <libmms/mms.h> int main() { mms_t *stream; char mms_link="mms://audio.rfn.ru/radiorus/audio/710/90.asf"; stream=mms_connect(0, 0, mms_link, 128); http://www.cyberforum.ru/cpp-beginners/thread439169.html
C++ Привет. Как можна найти с даного примера умножение элементов массива с четными номерами?
#include "stdafx.h" #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <iostream> using namespace std; int main(int argc, _TCHAR* argv)
C++ Начало DEV С++
Здравствуйте, подскажите где ошибка? Задание Даны действительные числа х, у . Если х, у отрицательные то каждое значение заменить его модулем; если отрицательное только одно из них, то оба значения увеличить на 0.5; если оба значения не отрицательные и ни одно из них не принадлежат отрезку , то оба значения уменьшить в 10 раз; в остальных случаях х, у оставить без изменения. Решение ...
C++ Запись текста в файл http://www.cyberforum.ru/cpp-beginners/thread439138.html
Нужно составить прогрумма которая создает файл и записывает в него текст. Программа не записывает в файл текст после пробела, помогите пожалуйста. char name; char text; cout<<"vvedite put' i im9 faila:\n"; cin>>name; ofstream out(name); cout<<"vvedite text:\n"; cin>>text; out<<text; out.close();
C++ allocator std::map Подскажите вопрос, есть тестовое задание: Написать allocator для std::map, располагающий элементы контейнера последовательно в памяти. Подскажите где про это почитать и разъясните по-возможности, что это вообще такое (std::map я вкурсе что это контейнер и как с ним работать) в ступор вводит allocator подробнее

Показать сообщение отдельно
Ferrari F1
Заблокирован
18.03.2015, 18:45     Решение всех упражнений из книги Р. Лафоре "Объектно-ориентированное программирование в С++"
Глава 11


Номер 1 и 2

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include <iostream>
#include <iomanip>
#include <windows.h>
#include <string>
using namespace std;
 
class publication
{
    string name;
    float cost;
public:
    virtual void getdata() = 0
    {
        cout << "Введите стоимость книги и ее название:" << endl;
        cin >> cost >> name;
    }
    virtual void putdata() const = 0
    {
        cout << "Cтоимость книги и ее название:" << endl;
        cout << cost << ' ' << name << endl;
    }
};
 
class book : public publication
{
    short pages, count;
public:
    void getdata()
    {
        publication::getdata();
        cout << "Введите кол-во страниц в книге:" << endl;
        cin >> pages;
        count = pages;
    }
    void putdata() const
    {
        publication::putdata();
        cout << "Ее стоимость:\n" << pages << endl;
        cout << "Кол-во страниц:\n" << count << endl;
    }
};
 
class tape : public publication
{
    float time;
    float count;
public:
    void getdata()
    {
        publication::getdata();
        cout << "Введите время записи:" << endl;
        cin >> time;
        count = time;
    }
    void putdata() const
    {
        publication::putdata();
        cout << "Время записи книги:\n" << time << endl;
        cout << "Кол-во страниц:\n" << count << endl;
    }
};
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    const short MAX(3);
    publication* mas[MAX];
    for (short i(0); i < MAX;)
    {
        cout << "Ввести данные о книге(1) или о записи(2)?" << endl;
        char ch; cin >> ch;
        if (ch == '1')
        {
            mas[i] = new book;
            mas[i++]->getdata();
        }
        else if (ch == '2')
        {
            mas[i] = new tape;
            mas[i++]->getdata();
        }
        else
            cout << "Введена некорректная цифра. Повторите ввод.\n";
        cin.clear();
        cin.sync();
        cout << endl;
    }
    for (short i(0); i < MAX; i++)
    {
        mas[i]->putdata();
        cout << endl;
    }
    system("pause");
    return 0;
}


Номер 3

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
#include <iomanip>
#include <windows.h>
#include <string>
using namespace std;
 
class Distance
{
    int feet;
    float inches;
public:
    Distance() : feet(0), inches(0.0)
    { }
    Distance(float fltfeet)
    {
        feet = int(fltfeet);
        inches = 12 * (fltfeet - feet);
    }
    Distance(int ft, float in) : feet(ft), inches(in)
    { }
    void showdist()
    {
        cout << feet << "\'-" << fixed << setprecision(1) << inches << '\"';
    }
    friend Distance operator*(const Distance&, const Distance&);
};
 
Distance operator*(const Distance& tmp1, const Distance& tmp2)
{
    float mult(float(tmp1.feet + tmp1.inches / 12) * float(tmp2.feet + tmp2.inches / 12));
    return Distance(mult, (mult - int(mult)) * 12);
}
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    Distance dist2(3), Wdist(7.5 * dist2);
    Wdist.showdist();
    cout << endl;
    system("pause");
    return 0;
}


Номер 4

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <iostream>
#include <iomanip>
#include <windows.h>
#include <string>
using namespace std;
 
class Array
{
    int* ptr, size;
public:
    Array(int s)
    {
        size = s;
        ptr = new int[s];
    }
    Array(Array& temp)
    {
        size = temp.size;
        ptr = new int[size];
        for (short i(0); i < size;)
            ptr[i++] = temp.ptr[i];
    }
    ~Array()
    {
        delete[] ptr;
    }
    int& operator[](int j)
    {
        return ptr[j];
    }
    Array& operator=(const Array& temp)
    {
        size = temp.size;
        delete[] ptr;
        ptr = new int[size];
        for (short i(0); i < size;)
            ptr[i++] = temp.ptr[i];
        return *this;
    }
};
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    const int ASIZE(10), BSIZE(15);
    Array arr1(ASIZE), arr2(BSIZE);
    cout << "arr1:" << endl;
    for (int j = 0; j < ASIZE; j++)
        arr1[j] = j*j;
    for (int j = 0; j < ASIZE; j++)
        cout << arr1[j] << ' ';
    cout << endl;
    cout << "\narr2:" << endl;
    for (int j = 0; j < BSIZE; j++)
        arr2[j] = j*j;
    for (int j = 0; j < BSIZE; j++)
        cout << arr2[j] << ' ';
    cout << endl;
    arr1 = arr2;
    cout << "\nПосле выполнения arr1 = arr2:" << endl;
    for (int j = 0; j < BSIZE; j++)
        cout << arr1[j] << ' ';
    cout << endl;
    Array arr3(arr2);
    cout << "\nПосле выполнения Array arr3(arr2):" << endl;
    for (int j = 0; j < BSIZE; j++)
        cout << arr3[j] << ' ';
    cout << '\n' << endl;
    system("pause");
    return 0;
}


Номер 5

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#include <iostream>
#include <iomanip>
#include <windows.h>
#include <string>
using namespace std;
 
class publication
{
    string name;
    float cost;
public:
    virtual void getdata() = 0
    {
        cout << "Введите стоимость книги и ее название:" << endl;
        cin >> cost >> name;
    }
    virtual void putdata() const = 0
    {
        cout << "Cтоимость книги и ее название:" << endl;
        cout << cost << ' ' << name << endl;
    }
    virtual bool isOveersize() = 0
    {
        cout << "Превышение размера!" << endl;
        return 0;
    }
};
 
class book : public publication
{
    short pages, count;
public:
    void getdata()
    {
        publication::getdata();
        cout << "Введите кол-во страниц в книге:" << endl;
        cin >> pages;
        count = pages;
    }
    void putdata() const
    {
        publication::putdata();
        cout << "Ее стоимость:\n" << pages << endl;
        cout << "Кол-во страниц:\n" << count << endl;
    }
    bool isOveersize()
    {
        if (count > 800)
            publication::isOveersize();
        else
            return 1;
    }
};
 
class tape : public publication
{
    float time;
    float count;
public:
    void getdata()
    {
        publication::getdata();
        cout << "Введите время записи:" << endl;
        cin >> time;
        count = time;
    }
    void putdata() const
    {
        publication::putdata();
        cout << "Время записи книги:\n" << time << endl;
        cout << "Кол-во страниц:\n" << count << endl;
    }
    bool isOveersize()
    {
        if (count > 90)
            publication::isOveersize();
        else
            return 1;
    }
};
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    const short MAX(2);
    publication* mas[MAX];
    for (short i(0); i < MAX;)
    {
        cout << "Ввести данные о книге(1) или о записи(2)?" << endl;
        char ch; cin >> ch;
        if (ch == '1')
        {
            mas[i] = new book;
            mas[i++]->getdata();
        }
        else if (ch == '2')
        {
            mas[i] = new tape;
            mas[i++]->getdata();
        }
        else
            cout << "Введена некорректная цифра. Повторите ввод.\n";
        cin.clear();
        cin.sync();
        cout << endl;
    }
    for (short i(0); i < MAX; i++)
    {
        mas[i]->putdata();
        mas[i]->isOveersize();
        cout << endl;
    }
    system("pause");
    return 0;
}


 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru