Форум программистов, компьютерный форум 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 подробнее

Показать сообщение отдельно
Kins
 Аватар для Kins
59 / 58 / 6
Регистрация: 03.02.2013
Сообщений: 167
25.03.2013, 20:04     Решение всех упражнений из книги Р. Лафоре "Объектно-ориентированное программирование в С++"
Глава 7 Упражнение №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
using namespace std;
 
static int n=0;
 
int maxint(int mas[])
{
    int max=0;//переменная для максимального значения массива
    static int ind=0;//перемення для значения индекса массива, содержащего макс элемент
    for(int j=0; j<n; j++)
    {if(mas[j]>max){max=mas[j];ind=j;}}
    return ind;
}       
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"");
    int chsl[100];  
    char ch;
    do{
        cout <<"Введите элемент массива: ";
        cin >>chsl[n++];
        cout <<"Еще (y/n)?";
        cin >>ch;
    }while(ch!='n');
    int d=maxint(chsl);
    cout <<"Максимальный элемент: " <<chsl[d] <<" его индекс:" <<d <<endl;
    system("pause");


Добавлено через 35 секунд
Глава 7 Упражнение №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
using namespace std;
static char ch;
////////////////////////////////////////////////////////////////
class fraction
{
private:
    int chsl, znam;
public:
    fraction(){chsl=0, znam=0;}     
    void getin()
    {cout <<"Введите числитель и знаменатель дроби: "; cin >>chsl >>ch >>znam;}
    void smm(fraction mass, fraction mas)
    {
        chsl=mass.chsl*mas.znam+mass.znam*mas.chsl;
        znam=mass.znam*mas.znam;
    }
    void dev(fraction smm, int sch)
    {
        fraction devi;
        devi.chsl=sch;
        devi.znam=1;
        chsl=smm.chsl*devi.znam;
        znam=smm.znam*devi.chsl;
    }
    void show()
        {cout <<"Среднее значение дроби: " <<chsl <<ch <<znam <<endl;}
};
///////////////////////////////////////////////////////////////
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"");
    const int max=100;
    int n=0;
    char piu='a';
    fraction fr[max], summ;;
    do{
        fr[n++].getin();
        cout <<"Еще раз (д/н)?";
        cin >>piu;
    }while(piu!='n');
    for(int j=0; j<n; j++)
    {if(j>0)summ.smm(fr[j], fr[j-1]);}
    summ.dev(summ, n);
    summ.show();
    system("pause");


Добавлено через 42 секунды
Глава 7 Упражнение №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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
using namespace std;
 
//////////////////////////////////////////////////////////////////
enum Suit {clubs, diamonds, hearts, spades};
const int jack=11;//именованные достоинства карт
const int quin=12;
const int king=13;
const int ace=14;
////////////////////////////////////////////////
class card
{
private:
    int number;//достоинство карт
    Suit suit;//масть
public:
    card()//конструктор
    {}
    void set(int n, Suit s)//установка значения
    {suit=s; number=n;}
    void display();//показ карты
};
/////////////////////////////////////////////////////////////////
void card::display()
{
    if(number>=2 && number<=10)
        cout <<number;
    else
    {
        switch(number)
        {
        case jack: cout <<'J'; break;
        case quin: cout <<'Q'; break;
        case king: cout <<'K'; break;
        case ace: cout <<'A'; break;
        }
    }
    switch(suit)
    {
    case clubs: cout <<static_cast<char>(5); break;
    case diamonds: cout <<static_cast<char>(4); break;
    case hearts: cout <<static_cast<char>(3); break;
    case spades: cout <<static_cast<char>(6); break;
    }   
}
/////////////////////////////////////////////////////////////////
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "");
    card deck[52];
    int n=0;
    card pl1[13], pl2[13], pl3[13], pl4[13];
    int j;
 
    cout <<endl;
    for(j=0; j<52; j++)//сщздаем упорядоченную колоду карт
    {
        int num=(j%13)+2;
        Suit su=Suit(j/13);
        deck[j].set(num, su);
    }
 
    srand(time(NULL));//инициализируем генератор случайных чисел
    for(j=0; j<52; j++)
    {
        int k=rand()%52;//выбираем случайную карту
        card temp=deck[j];//и меняем ее с текущей
        deck[j]=deck[k];
        deck[k]=temp;
    }
    //показываем смешанную колоду
    for(j=0; j<52; j++)
    {
        int m=j%13;
        if(m==0)cout <<"\nКарты игрока № " <<++n <<endl;
        if(j<13) {pl1[m]=deck[j]; pl1[m].display(); cout <<" ";}
        else if(j>12 && j<26) {pl2[m]=deck[j]; pl2[m].display(); cout <<" ";}
        else if(j>25 && j<39) {pl3[m]=deck[j]; pl3[m].display(); cout <<" ";}
        else {pl3[m]=deck[j]; pl3[m].display();cout <<" ";}
        if(!((j+1)%13))cout <<endl; 
    }   
    system("pause >>void");


Добавлено через 42 секунды
Глава 7 Упражнение №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
43
44
45
46
47
using namespace std;
 
////////////////////////////////////////////////////////////////
class money
{
private:
    long double cash;
    char in[80];
    char out[80];
public:
    money(){cash=0.0;}
    money(long double d):cash(d){}
    void input()
    {cout <<"Введите сумму: "; cin >>in;}
    void outg()
    {cout <<setiosflags(ios::fixed) <<setprecision(2) <<mstold(in) <<endl;}
    long double mstold(char mass[])
    {
        int n=0;
        for(int j=0; j<strlen(mass); j++)
        {
            if((mass[j]=='$')||(mass[j]==','))
                continue;
            out[n++]=mass[j];
        }
        //long double cash;
        //_atoldbl((_LDOUBLE*)(&cash),out);//не работает
        double cash=atof(out);//возвращение дабл хоть както
        return cash;        
    }
};
////////////////////////////////////////////////////////////////
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"");
    int n=0;
    char ch;
    money m[100];
    do{
        m[n++].input();
        cout <<"Еще раз (д/н)?";
        cin >>ch;
    }while(ch!='n');
    for(int j=0; j<n; j++)
        m[j].outg();    
    system("pause");


Добавлено через 39 секунд
Глава 7 Упражнение №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
32
33
using namespace std;
const int MAX=10;
////////////////////////////////////////////////////////////////
class safearray
{
private:
    int LIMIT[MAX];
public:
    safearray(){}
    void putel(int indx, int n)//индекс и значение, и вставлет это значение в массив по данному индексу
    {
        if((indx<0)||(indx>MAX))
        {cout <<"Введен некорректный индекс массива!"; getchar(); exit(1);}
        LIMIT[indx]=n;
    }
    int getel(int indx)//индекс, и возвращет значение элемента по данному индексу
    {
        if((indx<0)||(indx>MAX))
        {cout <<"Введен некорректный индекс массива!"; getchar(); exit(1);}
        return LIMIT[indx];
    }
};
////////////////////////////////////////////////////////////////
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"");
    safearray sa1;
    int temp=12345;
    sa1.putel(7,temp);
    temp=sa1.getel(7);
    cout <<"Значение элемента массива: " <<temp <<endl;
    system("pause");


Добавлено через 21 час 29 минут
Глава 7 Упражнение №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
////////////////////////////////////////////////////////////////
class queue
{
    static const int MAX=4;
    int st[MAX];
    int head, tail;
public:
    queue(){head=MAX,tail=-1;}
    void put(int var)
    {
        st[++tail]=var;
        if(tail==MAX-1)
            tail=-1;
    }
    int get()
    {
        if(head==0)
            head=MAX;
        return st[MAX-head--];
    }
};
///////////////////////////////////////////////////////////////
 
int _tmain(int argc, _TCHAR* argv[])
{
    queue q1;
    q1.put(1);
    q1.put(2);
    q1.put(3);
    q1.put(4);
    q1.put(5);
    q1.put(6);
    cout <<q1.get() <<endl;
    cout <<q1.get() <<endl;
    cout <<q1.get() <<endl;
    cout <<q1.get() <<endl;
    system("pause");


Добавлено через 4 часа 8 минут
Глава 7 Упражнение №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
class matrix
{
private:
    int str, stlb;
    int mass[10][10];
public:
    matrix(int r, int b) : str(r), stlb(b){}
    void putel(int i1, int i2, int n)
    {
        if(((i1<0)||(i1>str))||((i2<0)||(i2>stlb)))
        {cout <<"Введен некорректный индекс массива!"; getchar(); exit(1);}
        mass[i1][i2]=n;
    }
    int getel(int i1, int i2)
    {
        if(((i1<0)||(i1>str))||((i2<0)||(i2>stlb)))
        {cout <<"Введен некорректный индекс массива!"; getchar(); exit(1);}
        return mass[i1][i2];
    }
};
//////////////////////////////////////////////////////////////////////
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"");
    matrix m1 (3, 4);
    int temp=12345;
    m1.putel(7, 4, temp);
    temp=m1.getel(7, 4);
    cout <<"Значение равно: " <<temp <<endl;
    system("pause");
 
Текущее время: 00:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru