Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Конвертер текстового файла http://www.cyberforum.ru/cpp-beginners/thread439174.html
Добрый день!!! Простите за наглость... Помогите пожалуйста написать программу-конвертер текстовых файлов из dos в windows и обратно. С командной строки должно вводится направление /d или /w. Я очень...
C++ Проблема с libmms - ошибка при компиляции. Здравствуйте. Уже который день не могу разобраться с упомянутой в заголовке библиотекой, а именно: пишу примерно такой тестовый код #include <iostream> #include <libmms/mms.h> int main() { ... 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 С++
Здравствуйте, подскажите где ошибка? Задание Даны действительные числа х, у . Если х, у отрицательные то каждое значение заменить его модулем; если отрицательное только одно из них, то оба...
C++ Запись текста в файл http://www.cyberforum.ru/cpp-beginners/thread439138.html
Нужно составить прогрумма которая создает файл и записывает в него текст. Программа не записывает в файл текст после пробела, помогите пожалуйста. char name; char text; cout<<"vvedite put' i im9...
C++ allocator std::map Подскажите вопрос, есть тестовое задание: Написать allocator для std::map, располагающий элементы контейнера последовательно в памяти. Подскажите где про это почитать и разъясните... подробнее

Показать сообщение отдельно
Ferrari F1
619 / 513 / 101
Регистрация: 27.01.2015
Сообщений: 2,986
Записей в блоге: 1
Завершенные тесты: 1
05.02.2015, 14:56
Глава 6


Номер 1

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
#include <iostream>
#include <iomanip>
#include <windows.h>
#include <ctype.h>
#include <conio.h>
using namespace std;
 
class Int
{
    __int16 a;
public:
    Int() : a(0)
    {}
    Int(const __int16& tmp) : a(tmp)
    {}
    inline void show(void) const;
    inline void set(void);
    inline Int add(const Int& tmp) const;
};
 
inline Int Int::add(const Int& tmp) const
{
    Int temp(a + tmp.a);
    return temp;
}
 
inline void Int::set(void)
{
    cout << "Введите значение поля:" << endl;
    cin >> a;
}
 
inline void Int::show(void) const
{
    cout << a << endl;
}
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    Int a(5), b(6), c;
    a.show(); b.show();
    c = a.add(b); c.show();
    system("pause");
    return 0;
}


Номер 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
#include <iostream>
#include <iomanip>
#include <windows.h>
#include <ctype.h>
#include <conio.h>
using namespace std;
 
class tollBooth
{
    unsigned __int32 cars;
    double money;
public:
    tollBooth() : cars(0), money(0)
    {}
    tollBooth(const unsigned __int32& c, const double& m) : cars(c), money(m)
    {}
    void payingCar()
    {
        cars++;
        money += 0.5;
    }
    void nopayCar()
    {
        cars++;
    }
    void display() const
    {
        cout << cars << ' ' << money << endl;
    }
};
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    tollBooth t1;
    for (char ch('z'); ch != 27;)
    {
        cout << "Проехать машине? (1 - да. 0 - нет.) ";
        switch (ch = getche())
        {
        case '1': t1.payingCar();
            break;
        case '0': t1.nopayCar();
            break;
        }
        cout << endl;
    }
    t1.display();
    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
44
45
46
47
48
49
50
51
52
53
#include <iostream>
#include <iomanip>
#include <windows.h>
#include <conio.h>
using namespace std;
 
class Time
{
    unsigned __int16 h, m, s;
public:
    Time() : h(0), m(0), s(0)
    {}
    inline Time(const unsigned __int16&, const unsigned __int16&, const unsigned __int16&);
    void show() const
    {
        cout << h << ':' << m << ':' << s << endl;
    }
    void add(const Time& t1, const Time& t2)
    {
        if (t1.s + t2.s < 60)
            s = t1.s + t2.s;
        else
        {
            m = (t1.s + t2.s) / 60;
            s = (t1.s + t2.s) % 60;
        }
        if (m + t1.m + t2.m < 60)
            m += t1.m + t2.m;
        else
        {
            h = (m + t1.m + t2.m) / 60;
            m = (m + t1.m + t2.m) % 60;
        }
        if (h + t1.h + t2.h < 12)
            h += t1.h + t2.h;
        else
            h = (h + t1.h + t2.h) % 12;
    }
};
 
inline Time::Time (const unsigned __int16& a, const unsigned __int16& b, const unsigned __int16& c) : h(a), m(b), s(c)
{}
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    Time t1(6, 34, 25), t2(7, 25, 35), t3;
    t1.show(); t2.show(); t3.show();
    t3.add(t1, t2); t3.show();
    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
#include <iostream>
#include <iomanip>
#include <windows.h>
#include <conio.h>
using namespace std;
 
class employee
{
    unsigned __int16 number;
    float salary;
public:
    employee() : number(0), salary(0)
    {}
    void show() const
    {
        cout << number << ' ' << salary << endl;
    }
    void set()
    {
        cout << "Введите номер и оклад сотрудника:" << endl;
        cin >> number >> salary;
    }
};
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    employee t1, t2, t3;
    t1.set(); t2.set(); t3.set(); cout << endl;
    t1.show(); t2.show(); t3.show();
    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
#include <iostream>
#include <iomanip>
#include <windows.h>
#include <conio.h>
using namespace std;
 
class date
{
    __int16 day, month, year;
public:
    date() : day(0), month(0), year(0)
    {}
    void getdate()
    {
        cout << "Введите день, месяц и год:" << endl;
        cin >> day >> month >> year;
    }
    void showdate() const
    {
        cout << day << '/' << month << '/' << year << endl;
    }
};
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    date t1;
    t1.getdate();
    t1.showdate();
    system("pause");
    return 0;
}


Номер 6

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
#include <iostream>
#include <iomanip>
#include <windows.h>
#include <conio.h>
using namespace std;
 
class employee
{
    enum etype { laborer, secretary, manager, accountant, executive, researcher };
    class date
    {
    public:
        __int16 day, month, year;
    };
    unsigned __int16 number;
    float salary;
    etype job;
    date data;
public:
    void getemploy()
    {
        cout << "Введите номер сотрудника, его оклад, первую букву должности"
             << ",\nа также дату принятия его на работу:" << endl;
        char ch;
        cin >> number >> salary >> ch
            >> data.day >> data.month >> data.year;
        switch (ch)
        {
        case 'l': job = laborer; break;
        case 's': job = secretary; break;
        case 'm': job = manager; break;
        case 'a': job = accountant; break;
        case 'e': job = executive; break;
        case 'r': job = researcher; break;
        }
    }
    void putemploy() const
    {
        cout << number << ' ' << salary << ' ';
        switch (job)
        {
        case laborer: cout << "laborer"; break;
        case secretary: cout << "secretary"; break;
        case manager: cout << "manager"; break;
        case accountant: cout << "accountant"; break;
        case executive: cout << "executive"; break;
        case researcher: cout << "researcher"; break;
        }
        cout << ' ' << data.day << '/' << data.month << '/' << data.year << endl;
    }
};
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    employee t1, t2, t3;
    t1.getemploy(); t2.getemploy(); t3.getemploy();
    cout << endl;
    t1.putemploy(); t2.putemploy(); t3.putemploy();
    cout << endl;
    system("pause");
    return 0;
}


Номер 7

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
#include <iostream>
#include <iomanip>
#include <windows.h>
#include <conio.h>
using namespace std;
 
class angle
{
    __int16 a;
    float b;
    char ch;
public:
    angle(const __int16& c, const float& d, const char& e) : a(c), b(d), ch(e)
    {}
    void set()
    {
        cout << "Введите координаты точки (градусы, минуты и направление.)"
             << endl;
        cin >> a >> b >> ch;
    }
    void show() const
    {
        cout << a << '\"' << b << '\'' << ch << endl;
    }
};
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    angle t1(179, 59.9F, 'E'), t2(0, 0, 'A'); t1.show();
    do
    {
        cout << endl;
        t2.set();
        t2.show();
        cout << "Повторить? (1 - да. 0 - нет.) ";
    } while (getche() != '0');
    cout << endl;
    system("pause");
    return 0;
}


Номер 8

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
#include <iostream>
#include <iomanip>
#include <windows.h>
#include <conio.h>
using namespace std;
 
class someshit
{
    static __int16 count;
    __int16 xcount;
public:
    someshit() : xcount(++count)
    {}
    void show(void) const
    {
        cout << "Порядковый номер объекта: " << xcount << endl;
    }
};
 
__int16 someshit::count(0);
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    someshit t1, t2, t3;
    t1.show(); t2.show(); t3.show();
    cout << endl;
    system("pause");
    return 0;
}


Номер 9

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
#include <iostream>
#include <iomanip>
#include <windows.h>
#include <conio.h>
using namespace std;
 
class fraction
{
    __int32 a, b;
public:
    void set()
    {
        cout << "Введите числитель и знаменатель дроби: " << endl;
        cin >> a >> b;
    }
    void show() const
    {
        cout << a << '/' << b << endl;
    }
    void add(const fraction& tmp) const
    {
        cout << "Сумма дробей равна:\n"
            << a * tmp.b + b * tmp.a << '/' << b * tmp.b << endl;
    }
};
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    fraction d1, d2;
    do
    {
        cout << endl;
        d1.set(); d2.set();
        d1.add(d2);
        cout << "Повторить? (1 - да. 0 - нет.) ";
    } while (getche() != '0');
    cout << endl;
    system("pause");
    return 0;
}


Номер 10

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
#include <iostream>
#include <iomanip>
#include <windows.h>
#include <conio.h>
using namespace std;
 
class ship
{
    class angle
    {
    public:
        __int16 a;
        float b;
        char ch;
    };
    static __int16 count;
    __int16 number;
    angle dolg, shir;
public:
    ship() : number(++count)
    {}
    void set(void)
    {
        cout << "Введите координаты корабля №" << number << endl;
        cin >> dolg.a >> dolg.b >> dolg.ch
            >> shir.a >> shir.b >> shir.ch;
    }
    void show(void) const
    {
        cout << number << ' ' << dolg.a << ' ' << dolg.b << ' ' << dolg.ch
             << ' ' << shir.a << ' ' << shir.b << ' ' << shir.ch << endl;
    }
};
 
__int16 ship::count(0);
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    ship t1, t2, t3;
    t1.set(); t2.set(); t3.set();
    cout << endl;
    t1.show(); t2.show(); t3.show();
    cout << endl;
    system("pause");
    return 0;
}


Номер 11

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
#include <iostream>
#include <iomanip>
#include <windows.h>
#include <conio.h>
using namespace std;
 
class fraction
{
    __int32 a, b;
public:
    fraction() : a(0), b(0)
    {}
 
    fraction(__int32 c, __int32 d) : a(c), b(d)
    {}
 
    fraction fadd(const fraction& t1, const fraction& t2)
    {
        fraction tmp;
        tmp.a = t1.a * t2.b + t1.b * t2.a;
        tmp.b = t1.b * t2.b;
        return tmp;
    }
 
    fraction fsub(const fraction& t1, const fraction& t2)
    {
        fraction tmp;
        tmp.a = t1.a * t2.b - t1.b * t2.a;
        tmp.b = t1.b * t2.b;
        return tmp;
    }
 
    fraction fmul(const fraction& t1, const fraction& t2)
    {
        fraction tmp;
        tmp.a = t1.a * t2.a;
        tmp.b = t1.b * t2.b;
        return tmp;
    }
 
    fraction fdiv(const fraction& t1, const fraction& t2)
    {
        fraction tmp;
        tmp.a = t1.a * t2.b;
        tmp.b = t1.b * t2.a;
        return tmp;
    }
 
    void nod(void)
    {
        __int16 A(a), B(b), C;
        while (B)
        {
            C = A % B;
            A = B;
            B = C;
        }
        a /= abs(A);
        b /= abs(A);
    }
 
    void set()
    {
        cin >> a >> b;
    }
 
    void show() const
    {
        cout << a << '/' << b << endl;
    }
};
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    for (char ch('z'); ch != '0'; ch = getche())
    {
        if (ch != 'z') cout << '\n' << endl;
        fraction t1, t2, t3;
        cout << "Введите первую дробь:" << endl;
        t1.set();
        cout << "Введите вторую дробь:" << endl;
        t2.set();
        cout << "Введите операцию:" << endl;
        cin >> ch;
        switch (ch)
        {
        case '+':
            t3 = t1.fadd(t1, t2); t3.nod();
            cout << "Результат равен:\n"; t3.show();
            break;
        case '-':
            t3 = t1.fsub(t1, t2); t3.nod();
            cout << "Результат равен:\n"; t3.show();
            break;
        case '*':
            t3 = t1.fmul(t1, t2); t3.nod();
            cout << "Результат равен:\n"; t3.show();
            break;
        case '/':
            t3 = t1.fdiv(t1, t2); t3.nod();
            cout << "Результат равен:\n"; t3.show();
            break;
        default: cout << "Такой операции не существует." << endl;
        }
        cout << "Повторить? (1 - да. 0 - нет.) ";
    }
    cout << '\n' << endl;
    system("pause");
    return 0;
}


Номер 12

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
#include <iostream>
#include <iomanip>
#include <windows.h>
#include <conio.h>
using namespace std;
 
class fraction
{
    __int32 a, b;
public:
    fraction(void) : a(1), b(1)
    {}
    fraction(__int32 c, __int32 d) : a(c), b(d)
    {}
    fraction fmul(const fraction& t1, const fraction& t2) const
    {
        fraction tmp = { t1.a * t2.a, t1.b * t2.b };
        tmp.gcd();
        return tmp;
    }
    void gcd(void)
    {
        __int16 A(a), B(b), C;
        while (B)
        {
            C = A % B;
            A = B;
            B = C;
        }
        a /= abs(A);
        b /= abs(A);
    }
    __int32 outznam(void) const
    {
        return b;
    }
    void setznam(void)
    {
        cout << "Введите знаменатель дроби: ";
        cin >> b;
        cout << endl;
    }
    void show(void) const
    {
        cout << a << "/" << b;
    }
    void setfrac(const __int32& c, const __int32& d)
    {
        a = c;
        b = d;
    }
};
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    fraction t1, temp;
    t1.setznam();
    temp = t1;
    for (int i(1); i < t1.outznam(); i++)
    {
        if (i == 1)
            cout << setw(9);
        else
            cout << setw(7);
        temp.setfrac(i, t1.outznam());
        temp.gcd();
        temp.show();
    }
    cout << endl;
    for (int i(1); i < t1.outznam(); i++)
    {
        for (int j(1); j <= 10; j++)
            cout << '-';
    }
    cout << endl;
    temp = t1;
    for (int i(1), count(t1.outznam()); i < count; i++)
    {
        t1.setfrac(i, count);
        t1.gcd();
        cout << setw(2); t1.show(); cout << setw(5);
        for (int j(1); j < count; j++)
        {
            temp = temp.fmul(temp, t1);
            temp.show();
            temp.setfrac(j + 1, count);
            cout << setw(6);
        }
        temp.setfrac(1, count);
        cout << endl;
    }
    cout << endl;
    system("pause");
    return 0;
}




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