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

справочник на STL - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Учебник для начинающих http://www.cyberforum.ru/cpp-beginners/thread159103.html
Здравствуйте, уважаемые программисты. Этим летом я поступил в университет нефти и газа на спец-ть Прикладная математика. Узнал, что первые полгода у нас будет С. Остальное время С++. С этими языками...
C++ правильно ли я составил код ? помогите , правильно ли я составил код ? псевдокод : программа... в зависимости от оценки , выдается результат ... 5-просто отлично!! 4-среднячок... http://www.cyberforum.ru/cpp-beginners/thread159082.html
CheckRadioButton C++
Здравствуйте! Я столкнулся с проблемой, решение которой пока немогу нигде найти, может Вы поможете? Имеется следующая функция: void CL1E2Dlg::OnBnClickedRadio1() { m_GrEn = 1; //устанавливаю...
C++ Разработка оконных приложений.
Возможно вы скажите иди ищи на форуму, пользуйся поиском и т.д... Правда, прочитал много и на нашем форуме)) Но у каждого наверное частный случай.. В общем, хочу постепенно с пониманием научиться...
C++ Соединение Strings http://www.cyberforum.ru/cpp-beginners/thread159045.html
Как обьеденить 2 строки char* в одну чтобы в последущем использовать в system(string) что то типа char* A, ip; ip="192.168.0.1" A="ping ",ip system(A) это примерно так набросал но при этом...
C++ Шаблончики, С++. Доброго Всем времени суток, уважаемые программисты. Начинаю осваивать STL и её реализацию. Собственно, с шаблонами особо раньше не встречался, поэтому решил в них разобраться получше. А теперь,... подробнее

Показать сообщение отдельно
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,545
Завершенные тесты: 3
15.08.2010, 20:38
Я тут немножко переписал классы, чтобы было понятнее... Остальное перепишу потом. Я думаю так легче разбираться, да и вообще, так - по правилам.

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
//Human.h
 
#ifndef HUMAN_H
#define HUMAN_H
 
#include "Weapon.h"
#include "Things.h"
#include <cstdio>
#include <cstdlib>
 
enum TypeHuman {hHuman, hTank, hDoctor, hShturm, hUvorot };
 
class Human
{
protected:
  char *name;
  int life, Respect, Level,   Money,   Expirience;
  // Жизнь, Уважение, Уровень, Деньги,  Опыт
 
  int currentThing; //вещь на игорке
  int current;      //оружие в руках игрока
 
  Weapon **W;   //массив для хранения оружия
  Things **Th;  //массив для хранения вещей
 
  TypeHuman Type;
public:
  Human(char*n);
  virtual~Human();
  //ф-я которая изменяет жизнь
  int Changelife(int l);
  int ChangeExpiriens();
  virtual void Defence(Human*h);
  virtual void Shoot(Human*h);// в кого стрелять
  void SetWeapon(int  c);//выбор оружия
  void SetThings(int  t);//выбор вещей
  void Print();
  void SaveToFile(FILE* file);
  void LoadFromFile(FILE* file);
  TypeHuman GetType();
};
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
class Tank:public Human
{
public:
  Tank(char*n);
};
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
class Doctor:public Human
{
public:
  Doctor(char*n);
  virtual void Heel(Human*h);
};
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
class Shturm:public Human
{
public:
  Shturm(char*n);
  void Shoot(Human*h);
};
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
class Uvorot:public Human
{
public:
  Uvorot(char*n);
};
 
#endif HUMAN_H
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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
//Human.cpp
 
//Human.cpp
 
#include "human.h"
 
Human::Human(char *n)
{
    name=new char[strlen(n)+1];
    strcpy(name,n);
    current=0;
    life=50;
    currentThing=0;
    Respect=0,  Level=1,   Money=100,   Expirience=0;
    Type = hHuman;  // Тип hHuman
        
    W=new Weapon*[3];
        
    W[0]=new Knife("BigKnife");
    W[1]=new Pulemet("Pulemet");
    W[2]=new Gung("AKM");
        
 
    Th=new Things*[2];
        
    Th[0]=new Bronegelet("Bronegelet");
    Th[1]=new Helmet("Helmet");
}
 
Human::~Human()
{
    delete  [] name;
    delete W[0];
    delete W[1];
    delete W[2];
 
    delete Th[0];
    delete Th[1];
}
 
int Human::Changelife(int l)
{
    return life+=l;
}
 
int Human::ChangeExpiriens()
{
    return Expirience++;
}
 
void Human::Defence(Human*h)
{
    h->Changelife(Th[currentThing]->Defence());
}
 
void Human::Shoot(Human*h)
{
    int i=rand()%100;
    if ( (h->Type == hUvorot) ? i<40 : i<20)
    {
      cout<<"Promazal!!!:))\n";
    }
    else
    {
      h->Changelife(-W[current]->Shoot());
    }
}
 
void Human::SetWeapon(int  c)
{
    current=c;
}
 
void Human::SetThings(int  t)
{
    currentThing=t;
}
 
void Human::Print()
{
    cout<<"name="<<name<<"\n"<<"life"<<life<<"\n";
    cout<<"Level="<<Level<<"\n";
    cout<<"Money="<<Money<<"\n";
    cout<<"Expirience="<<Expirience<<"\n";
    W[current]->Print();
    Th[currentThing]->Print();
}
 
void Human::SaveToFile(FILE* file)
{
    int size=strlen(name)+1;
    fwrite(&life, sizeof(int), 1, file);
    fwrite(&current, sizeof(int), 1, file);
    fwrite(&size, sizeof(int), 1, file);
    fwrite(name, sizeof(char) , size, file);
}
 
void Human::LoadFromFile(FILE* file)
{
    int size;
    fread(&life, sizeof(int), 1, file);
    fread(&current, sizeof(int), 1, file);
    fread(&size, sizeof(int), 1, file);
    fread(name, sizeof(char) , size, file);
    fclose(file);
}
 
TypeHuman Human::GetType()
{
   return Type;
}
 
/////////////////////////////////////////////////
 
Tank::Tank(char *n):Human(n)
{
    Type = hTank;
    life=100;
}
 
/////////////////////////////////////////////////
 
Doctor::Doctor(char *n):Human(n)  
{
    Type = hDoctor;
}
 
void Doctor::Heel(Human*h )
{
    h->Changelife(10);
}
 
///////////////////////////////////////////////////
 
Shturm::Shturm(char *n):Human(n)
{
    Type = hShturm;
}
 
void Shturm::Shoot(Human*h )
{
    int i=rand()%100;
    if( (h->GetType() == hUvorot) ? i<40 : i<20 )
    {
      cout<<"Promazal!!!:))\n";
    }
    else
    {
      h->Changelife(-W[current]->Shoot()+10);
    }
}
 
////////////////////////////////////////////////////
 
Uvorot::Uvorot(char *n):Human(n)
{
    Type=hUvorot;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru