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

Классы,дружественные классы, структуры

05.05.2010, 14:33. Просмотров 1382. Ответов 0
Метки нет (Все метки)

Здравствуйте!
Вот задание:
Класс «Свойства объекта» является словарем особого вида, у которого ключи и значения являются строками: ключом эле-мента словаря является имя свойства, а значением – значение свойства. Некоторые свойства могут иметь значения по умолча-нию. Пример элемента словаря: {[Name], txtBook}.
Операции:
• создание объекта с заданным количеством свойств, часть из которых имеет заданные значения (свойства со значениями по умолчанию);
• установка значения свойства;
• получение значения свойства по ключу (если свойство ус-тановлено, возвращается установленное значение, если зна-чение свойства не устанавливалось, но у него есть значение по умолчанию, то возвращается значение по умолчанию, иначе признак того, что свойство не установлено);
• вывод текущих значений свойств объекта.
Вот код(очень немного его тут):
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.h>
#include <conio.h>
#include <stdlib.h>
#include <iomanip.h>
 
class property
{
private:
 int y,z;
 int cur;
 char key[64];
 char **value;
 char def_value[256];
public:
 property (int y): y(y) { value=new char*[y]; for (int i=0;i<y;i++) value[i]=new char[256]; }
 property (int y, int z, char def_value[256]);
 ~property() { for (int i=0;i<y;i++) delete[] value[i]; delete[] value; }
 void install_property();
};
 
class properties
{
private:
 int n;
 property *p(y);
public:
 friend class property;
 properties (int n): n(n) { p(y)=new property(y)[n]; }
};
 
int menu();
string rus(char s[]);
 
property::property(int y, int z, char def_value[256]): y(y), z(z)
{
value=new char*[y]; for (int i=0;i<y;i++) value[i]=new char[256];
for (int i=0;i<z;i++) value[i]=def_value;
}
 
void property::install_property()
{
cout<<rus("Ââåäèòå èìÿ (êëþ÷) ñâîéñòâà: "); cin.get(); cin.getline(key,64);
cout<<rus("Ââåäèòå êîëè÷åñòâî çíà÷åíèé: "); cin>>y;
}
 
void main( )
{
   int k;
   do
      {
      k=menu( );
      switch (k)
      {
      case 1:  break;
      case 2:  break;
      case 3:  break;
      case 4:  break;
      case 5:  break;
      case 0:  return;
      default: cout<<rus("Îøèáêà" );
      }
   }while (true);
}
 
 
int menu ()
{  clrscr();
   int k;
   cout<<setw(55)<<rus("Âàðèàíò 14. Êëàññ Ñâîéñòâà îáúåêòà.")<<endl<<endl;
   cout<<endl;
   cout<<rus("Ìåíþ:")<<endl;
   cout<< rus("1. Ñîçäàíèå îáúåêòà ñ çàäàííûì êîëè÷åñòâîì ñâîéñòâ")<<endl;
   cout<< rus("2. Ñîçäàíèå îáúåêòà ñ ñâîéñòâàìè ïîóìîë÷àíèþ")<<endl;
   cout<< rus("3. Óñòàíîâêà çíà÷åíèÿ ñâîéñòâà")<<endl;
   cout<< rus("4. Ïîëó÷åíèå çíà÷åíèÿ ñâîéñòâà ïî êëþ÷ó")<<endl;
   cout<< rus("5. Âûâîä òåêóùèõ çíà÷åíèé ñâîéñòâ îáúåêòà.")<<endl;
   cout<< rus("0. Âûõîä")<<endl;
   cout<<endl;
   cout<<rus("Óêàæèòå ïóíêò ìåíþ: ");
   cin>>k;
   return k;
}
string rus(char s[])
{
string t;
 int i=0;
 t=s;
 while (s[i]!=0)
 {
   if(s[i]>='À'&& s[i]<='ï') t[i]-=64;
   if(s[i]>='ð'&& s[i]<='ÿ') t[i]-=16;
   if(s[i]=='¨')t[i]=240;
   if(s[i]=='¸') t[i]=241;
   i++;
 }
 return t;
}
и вот вообщем-то в чем проблема, я очень запутался как лучше сделать: с двумя классами, с одной структурой и классом, али еще как.
с двумя классами помойму не очень потому что как писать конструктор для класса в котором объект уже элемент класса..
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.05.2010, 14:33
Ответы с готовыми решениями:

Дружественные перегрузки операторов и дружественные классы
#include &lt;iostream&gt; using namespace std; class person; class book { public: book(){}; ...

Дружественные классы
Всем привет! Нашел в интернете как подружить два класса, вышло Но в моёй ситуции нужно классы...

Дружественные классы
- У меня имеется класс: struct ListNodeBase { // ......... private: ListNodeBase ...

Дружественные классы
Нужно написать программу, в которой будут задействованны дружественные классы и подсчет чисел

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.05.2010, 14:33

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

Дружественные классы
Доброго времени суток, Господа. Собственно, хотел бы услышать Вашего мнения по поводу...

Дружественные классы
Помогите !!! Завтра надо сдавать а я ету тему совсем непонимаю... Создайте класс Matrix для...

Дружественные классы.
Есть ли смысл в коде: class A{ ... public: bool ff(); } class B{

Дружественные классы
Есть два класса. первый - основной, в нем все нужные поля. второй, в нем должен быть некий метот...


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

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

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