Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Term0
0 / 0 / 0
Регистрация: 11.12.2013
Сообщений: 12
1

Создать класс "карта",имеющий ранг и масть

15.04.2014, 15:49. Просмотров 978. Ответов 0
Метки нет (Все метки)

Задача:
Создать класс "карта",имеющий ранг и масть.Карту можно перевернуть и открыть.
Создать класс "колода карт",содержащий карты.
Создать два производных класса от "колоды карт",в одном карты могут извлекаться только по порядку, в другом - произвольно.

Класс написан на 3/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
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
117
118
119
120
121
122
123
124
125
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
 
enum Suit{clubs,diamonds,hearts,spades};
 
const int jack=11;
const int queen=12;
const int king=13;
const int ace=14;
 
class Card
{
        bool cond;
        int num;
        Suit suit;
    public:
        void open() {cond=true;}
        
        void close(){cond=false;}
        
        void set(int n,Suit s) {suit=s;num=n;}
        
        void display();
        
        Card(const Card& a)
        {
            
        }
};
 
class Deck
{
        int size;
        Card* cards;
    public:
        Deck():size(36)
        {
        cards=new Card[size];
            for(int i=0;i<size;i++)
            {
            int n=(i%9)+6;
            Suit su=Suit(i/9);
            cards[i].set(n,su); 
            }
        }
        
        void setSize(int n) {size=n;}
        
        int showSize() {return size;}
        
        void swapCards(int i,int j) {cards[i]=cards[j];}
        
        void dispDeck()
        {
            for(int i=0;i<size;i++)
            {
            cards[i].display();
            cout << " ";
                if(!((i+1)%9))
                cout << endl;   
            }
        }
 
};
 
class RemoveOrder:public Deck
{
    public:
        void remove(){setSize(showSize()-1);}
};
 
class RemoveRand:public Deck
{
    public:
        void remove()
        {
        srand(time(0));
        int r=rand()%36;
        
            for(int i=r-1;r<showSize()-1; i++)
            {
            swapCards(i,i+1);
            }
        setSize(showSize()-1);
        }
};
 
void Card::display()
{
            if(num>=6&&num<=10) cout << num;
            else
            {
                switch(num)
                {
                case jack: cout << 'J';break;   
                case queen: cout << 'Q';break;
                case king: cout << 'K';break;
                case ace: cout << 'A';break;    
                }
            }
            
            switch(suit)
            {
            case clubs: cout << "Т";break; 
            case diamonds: cout << "Б";break;
            case hearts: cout << "Ч";break;
            case spades: cout << "П";break;
            }
        
 
}
 
 
 
int main()
{
    Deck ob1;
    ob1.dispDeck();
    
    RemoveRand ob2;
    ob2.remove();
    
}
Во-первых, нужно что-то сделать с динамической памятью. Кажется,или конструктор копий, или что-то еще.
Кажется,не КК, тк здесь нет инициализации объектом, только присваивание, возврата и параметра объектом нет.
Еще вопрос: в какой класс его запихнуть?
Так что,господа, просьба помочь мне в затруднении. Плюс в карму за такие вещи,одназначно.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2014, 15:49
Ответы с готовыми решениями:

Наследуемым классом для комплексного числа объявить класс "радиус-вектор", имеющий данные "длина" и "угол"
кто то напишите пожалуйста, вот программа: наследуемым классом для комплексного числа объявить...

Создать класс "Адрес", имеющий элементы-данные и функцию печати
Создать класс, имеющий элементы-данные и функцию печати. АДРЕС (имя – char *, улица – char *,...

Создать класс "Студент", имеющий имя (указатель на строку), курс и идентификационный номер
Создать класс студент, имеющий имя (указатель на строку), курс и идентификационный номер....

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания"
Создать класс Книга поля: название книги,количество страниц,год издания методы: вычислить сколько...

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления"
Помогите с кодом написания задачи, не понимаю как написать классы в классе. Нужно создать класс...

0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2014, 15:49

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс"
1. Создать абстрактный класс Издание с методами, позволяющими вывести на экран информацию об...

Определить тип данных "Запись", имеющий поля "Фамилия", "Пол", "Зарплата"
определить тип данных запись имеющий поля фамилия пол зарплата. определить массив из 10 записей. в...

Создать класс комплексных чисел и ввести операции: "+", "-", "*", "/".
пожалуйста-помогите написатьпрограмму!!! сижу на экзамене!!! вот само задание: создать класс...


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

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

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