Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2010, 19:16   #1
dziga1989
 
Регистрация: 21.10.2009
Сообщений: 7
По умолчанию Многократное наследование с++

помогите доработать прогу............
7) Отели Кишинева обслуживают гражданин из разных стран. Отели включены в базе данных: отель ={название отеля, адрес, номер телефона, количество звезд}. У каждого номера отеля есть следующие характеристики: {номер, имя клиента, дата приезда, дата отъезда, цена}. Каждый клиент зарегистрирован в отеле: клиент ={имя, страна, улица, номер дома, подъезд, номер телефона}. Вычислить из какой страны посещаемость больше.
Я начал писать прогу,но не знаю правильна ли она:
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TEdit *Edit1;
TEdit *Edit2;
TEdit *Edit3;
TEdit *Edit4;
TLabel *Label1;
TLabel *Label2;
TLabel *Label3;
TLabel *Label4;
TLabel *Label5;
TLabel *Label6;
TEdit *Edit5;
TEdit *Edit6;
TEdit *Edit7;
TEdit *Edit8;
TEdit *Edit9;
TEdit *Edit10;
TLabel *Label7;
TLabel *Label8;
TLabel *Label9;
TLabel *Label10;
TLabel *Label11;
TLabel *Label12;
TEdit *Edit11;
TEdit *Edit12;
TEdit *Edit13;
TEdit *Edit14;
TEdit *Edit15;
TLabel *Label13;
TLabel *Label14;
TLabel *Label15;
TLabel *Label16;
TLabel *Label17;
TLabel *Label18;
TButton *Button1;
TButton *Button2;
TButton *Button3;
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};

class month
{
protected:
int month;
public:
month(int)
{}
};

class date
{
protected:
int date;
public:
date(int)
{}
};

class year
{
protected:
int year;
public:
year(int)
{}
};

class arrival_date: public date, public month, public year
{
public:
arrival_date(int d, int m, int y): date(d), month(m), year(y){}
};

class departure_date: public date, public month, public year
{
public:
departure_date(int d, int m, int y): date(d), month(m), year(y){}
};

class phone
{
protected:
int phone;
public:
phone(int)
void get_phone(int p)
{}
};

class country
{
protected:
char country[20];
public:
country(char *);
void get_country(char *c)
{}
};


class street
{
protected:
char street[20];
public:
street(char *);
void get_street(char *s)
{};
};

class apartment
{
protected:
int apartment;
public:
apartment(int)
void get_apartment(int a)
{}
};

class floors
{
protected:
int floors;
public:
floors(int)
void get_floors(int f)
{}
};

class house
{
protected:
int house;
public:
house(int)
void get_house(int h)
{}
};

class hotel_name
{
protected:
int hotel_name;
public:
hotel_name(char *);
void get_hotel_name(char *hn)
{}
};

class person_name
{
protected:
int person_name;
public:
person_name(char *);
void get_person_name(char *pn)
{}
};

class hotel: public hotel_name, public phone
{
public:
char address;
int stars;
hotel(char *hn, int p): hotel_name(hn), phone(p)
{}
};

class person: public country, public street, public number, public floors,
public apartment, public phone
{
public:
person(char *c, char *s, int n, int f, int a, int p): country(h), street(s),
number(n), floors(f), apartment(a){}
};

class number: public person_name, public arrival_date, public departure_date
{
int num;
float price;
char person_name;
number(char *pn, class arrival_date, class departure_date): person_name(pn)
}
не знаю как делать дальше,выручайте,заранее благодарю............
dziga1989 вне форума Ответить с цитированием
Старый 17.01.2010, 19:12   #2
_Ч_
Форумчанин
 
Регистрация: 07.01.2010
Сообщений: 141
По умолчанию

ваши проблемы решаются не наследованием а включением.
например, если отель характеризуется именем, количеством звезд и комнатами, то это должно выглядеть примерно так:

struct Отель
{
строковый_тип Имя;
числовой_тип КоличествоЗвезд;
массив_комнат Комнаты;
};

Вы же сделали так:
struct Отель : public строковый_тип, public числовой_тип, ...
{
};

И еще: не надо на каждую сущность создавать отдельный класс.
Например для представления номера телефона вполне пойдет обычный строковый класс. Для представления имени страны - тоже обычная строка. и т.д.
_Ч_ вне форума Ответить с цитированием
Старый 17.01.2010, 20:44   #3
dziga1989
 
Регистрация: 21.10.2009
Сообщений: 7
По умолчанию

спасибо что ответил,просто я мало шарю по програмированию,и если тебе это не будет в тягость помоги ее сделать,просто он нужен мне позорез
спасибо что страешься помочь.........................
dziga1989 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Многократное наследование с++ bashkan-nik Помощь студентам 1 16.01.2010 19:00
Многократное наследование dziga1989 Помощь студентам 2 28.10.2009 09:20
Наследование на C++ dziga1989 Помощь студентам 5 22.10.2009 11:25
[С++] Задача на многократное наследование Maxim_Burea Помощь студентам 10 01.10.2009 02:52
Многократное включение таблицы в запрос Kofer SQL, базы данных 0 14.08.2008 22:59