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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
V_Ghost
9 / 9 / 0
Регистрация: 03.03.2011
Сообщений: 116
#1

Создать Класс Coins (монеты). Класс сохраняет массив из 3 монет ... - C++

30.03.2011, 21:48. Просмотров 1219. Ответов 6
Метки нет (Все метки)

Помогите написать програмку, где:
Нужно создать Класс Coins (монеты). Класс сохраняет массив из 3 монет и общее количество лицевых сторон после последнего кидания. Должны быть предусмотрены методы, реализующие инициализацию и кидание монет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2011, 21:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создать Класс Coins (монеты). Класс сохраняет массив из 3 монет ... (C++):

Создать класс Rectangle, который сохраняет Декартовы координаты четырех вершин прямоугольника - C++
Создать класс Rectangle, который сохраняет Декартовы координаты четырех вершин прямоугольника, конструктор для инициализации закрытых...

Создать класс Man (человек), с полями: имя, возраст, пол и вес. Создать производный класс Student ... - C++
Создать класс Man (человек), с полями: имя, возраст, пол и вес. Определить методы задания имени, возраста и веса. Создать производный класс...

Создать абстрактный базовый класс Тройка чисел с виртуальными методами увеличения на 1. Создать производный класс Время со своими функциями - C++
Здравствуйте, пожалуйста помогите написать код к данной задаче, с таким условием: Создать абстрактный базовый класс Тройка чисел с...

Создать класс - данные - абстрактный базовый класс. Создать производные классы - C++
Всем привет! У меня вот такая проблема.... Создать класс - данные - абстрактный базовый класс. Создать производные классы - данные типа...

Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени? - C++
На самом деле ничё фантастического я не прошу, ведь: template <class T> class matrix { friend class diagonal; ...

Создать класс Элемент списка (Node), а затем класс Список (List) - C++
Задание: Создать класс Элемент списка (Node), а затем класс Список (List). В зависимости от варианта список должен быть одно или...

6
bigredcat
366 / 313 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
31.03.2011, 09:12 #2
Что подразумевается под массивом из 3 монет? Какую информацию о монетах там хранить?
0
V_Ghost
9 / 9 / 0
Регистрация: 03.03.2011
Сообщений: 116
31.03.2011, 15:25  [ТС] #3
bigredcat,
Информацию хранить что випало: орёл или рёшка... наверное в текстовом файле..
нуу.. насколько я понимаю, из 3-х монет подразумевается, что 3 монеты подкидиваются сразу...
0
bigredcat
366 / 313 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
01.04.2011, 11:08 #4
Значит сохраняем значения последнего броска для каждой монеты и общее количество случаев за все время, когда выпал орел. Если я правильно понял, тогда получается примерно такой класс (без реализации):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class Coins
{
public:
    ~Coins() {};
    Coins();
    void SpinCoins();
 
private:
    // Значения последнего подбрасывания.
    int _coin[3];
    // Общий счетчик выпадания орлов.
    int _headsCount;
};
Но вот вопрос возникает, на кой упал этот счетчик орлов, если нет информации о количестве подбрасываний. Он не несет нам никакой полезной информации. Допустим выпало 5 орлов, но за сколько подбрасываний: два, двадцать или миллион.
1
V_Ghost
9 / 9 / 0
Регистрация: 03.03.2011
Сообщений: 116
01.04.2011, 13:37  [ТС] #5
Ёсли не трудно, напиши еще самую програмку)
и хедерный файл(или как то так)
0
bigredcat
366 / 313 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
02.04.2011, 05:56 #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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#include <iostream>
#include <time.h>
#include <locale.h>
 
class Coins
{
public:
    ~Coins() {};
    Coins();
    // Вывод результатов.
    void PrintResult();
    // Сброс результатов.
    void ResetResult();
    // Одновременное подкидывание трех монет.
    void SpinCoins();
 
private:
    // Признак инициализации генератора псевдослучайных чисел.
    static int _isInit;
 
    // Информация о последнем подкидывании монет:
    // (-1) - подкидываение не выполнялось; 0 - решка; 1 - орел.
    int _coin[3];
    // Общий счетчик орлов.
    int _headCount;
    // Счетчик подкидываний.
    int _spinCount;
};
 
int Coins::_isInit;
 
Coins::Coins()
{
    // Если требуется, то выполняем инициализацию
    // генератора псевдослучайных чисел
    if (!_isInit)
    {
        srand((unsigned)time(NULL));
        _isInit = 1;
    }
 
    // Исходное состояние.
    memset(_coin, -1, sizeof (int) * 3);
    _headCount = 0;
    _spinCount = 0;
}
 
void Coins::ResetResult()
{
    memset(_coin, -1, sizeof (int) * 3);
    _headCount = 0;
    _spinCount = 0;
}
 
void Coins::SpinCoins()
{
    _spinCount++;
 
    for (int i = 0; i < 3; i++)
    {
        _headCount += _coin[i] = rand() % 2;
    }
}
 
void Coins::PrintResult()
{
    // С проверкой того, что монеты подкидывались.
    if (_coin[0] == -1)
    {
        std::cout << "После инициализации или сброса результатов подкидывание монет не выполнялось\n";
    }
    else
    {
        for (int i = 0; i < 3; i++)
        {
            std::cout << "Монета " << i << ": " << (_coin[i] == 0 ? "решка" : "орел") << std::endl;
        }
        std::cout << "Всего подкидываний (по три монеты): " << _spinCount << std::endl;
        std::cout << "Всего орлов выпало: " << _headCount << std::endl;
    }
    std::cout << std::endl;
}
 
int main()
{
    setlocale (LC_ALL, ".1251");
 
    Coins coins;
    coins.PrintResult();
 
    for (int i = 0; i < 3; i++)
    {
        coins.SpinCoins();
        coins.PrintResult();
    }
 
    coins.ResetResult();
    coins.PrintResult();
 
    system("PAUSE");
    return 0;
}
Насчет генератора (псевдо)случайных чисел ничего лучше что-то не придумал
1
V_Ghost
9 / 9 / 0
Регистрация: 03.03.2011
Сообщений: 116
02.04.2011, 09:33  [ТС] #7
Спасибо.. ток чуть - чуть надо переделать)
еще у меня есть файлик Coins.cpp... в него то что писать то?)
и надо так, чтобы спрашивало: подкидивать еще раз?
Наперед очень благодарен
0
02.04.2011, 09:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2011, 09:33
Привет! Вот еще темы с ответами:

Создать класс Pair(пара чисел) и класс-наследник Fraction - C++
Создать класс Pair (пара чисел); определить методы изменения полей и сравнения пар: пара p1 больше пары p2, если (first.p1&gt;first.p2) или...

Класс: создать класс Fraction для работы с дробными числами - C++
Необходимо создать класс Fraction для работы с дробными числами. Число должно быть представлено двумя полями: целая часть – длинное целое...

Создать класс Point и производный класс ColoredPoint (цветная точка) - C++
Создайте класс Point (точка на плоскости), характеризующийся двумя координатами. Создайте производный класс ColoredPoint (цветная точка), в...

Класс: Создать абстрактный базовый класс Figure с виртуальными методами вычисления площади и периметра. - C++
Создать абстрактный базовый класс Figure с виртуальными методами вычисления площади и периметра. Создать производные классы: Rectangle...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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