Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Класы,структуры 
:(
    Опции темы
Warden
  Дата 30.1.2009, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 5.11.2008
Где: Ukraine

Репутация: -1
Всего: -1



Добро дня суток, сразу к делу, есть задание:
Создать клас для храненияданых про любой предмет (3 члена данных,3члена метода,конструктор,деструкто+член данных что являеться структурой)
Создать клас для хранения колекции объектов предедущего(можно использовать стаитческий масив, метод добавление елимента в колекцию,удаление и отображения всего на экране).
Вот что у меня получилось при объявлении в котором я уже запутался, может кому не труднопомогите либо ктото похожее делалsmile
Либо есть хорошые примерыsmile вобщем нужна большая помощьsmile
Код

#include <alloc.h>
#include <iostream.h>
struct Date{
unsigned int day;
unsigned int mounth;
unsigned int year;
};

class monitor{
char *brand;
char *model;
unsigned int price;
Date *buyDay;
 public:
 monitor();
 ~monitor();
 char* getBrand(){return brand;}
 char* getModel(){return model;}
 int getPrice(){return price;}
};

class shop{
monitor mas[50];
 public:
 void* addElement();
 void* delElement(int number);
 void showAll();

};
/////////////////////////////////////////////////////////////
monitor::monitor(){
brand=(char*)malloc(sizeof(char) * 15);
model=(char*)malloc(sizeof(char) * 10);
brand="none";
model="none";
price=0;
buyDay->day=0;
buyDay->mounth=0;
buyDay->year=0;
}

monitor::~monitor(){
delete brand;
delete model;
}

void*shop::addElement(){

}

////////////////////////////////////////////////////////////
void main(){
}

PM MAIL ICQ Skype GTalk   Вверх
Dmi3ev
Дата 30.1.2009, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



можно такое сделать... удаление осиль сам... erase смотри у вектора, там ничего сложного...
Код

//---------------------------------------------------------------------------
#include <iostream.h>
#include <vector>
//---------------------------------------------------------------------------
struct info
{
char* madein;//где сделан
double d;//диагональ
bool rusins;//есть ли русская инструкция
};
//---------------------------------------------------------------------------
class Monitor//Монитор
{
public:
 Monitor(){};//можно сделать покруче
 void SetParam(char* s1, char* s2, double a)// задаем значения брэнду, модели, цене
 {
  price=a;
  model=s2;
  brand=s1;
 };
 void SetInfo(char *s1, bool b, double a)//задаем значения для информации (наша структура, созданная выше)
 {
  moninfo.madein=s1;
  moninfo.d=a;
  moninfo.rusins=b;
 };
 void Show()//показываем все, кроме информации
 {
  cout<<"By "<<brand<<endl;
  cout<<"Model"<<model<<endl;
  cout<<"Price: "<<price<<endl;
 };
 void ShowInfo()//показываем инфо
 {
  cout<<"Made in: "<<moninfo.madein<<endl;
  if(moninfo.rusins)
   cout<<"Rus instruction: yes"<<endl;
  else
   cout<<"Rus instruction: no"<<endl;
  cout<<"D: "<<moninfo.d<<endl;
 };
 ~Monitor(){};//деструктор, можно покруче сделать
private:
 char* model;
 char* brand;
 double price;
 struct info moninfo;
};
//---------------------------------------------------------------------------
class Shop//Магазин мониторов
{
public:
 Shop(){};//Конструктор, можно сделать лучше
 void AddMonitor(Monitor c)//Добавить новый монитор
 {
  v.push_back(c);
 }
 void ShowAll()//Показать все, что есть
 {
  for (int i=0; i<v.size(); i++)
   {
    cout<<"------------"<<i+1<<"------------"<<endl;
    v[i].Show();
    v[i].ShowInfo();
    cout<<"--------------------------"<<endl;
   }
 }
 ~Shop(){};//Деструктор, можно сделать лучше
private:
 vector<Monitor> v;//Тут будут хранится все мониторы в магазине
} ;
//---------------------------------------------------------------------------

//Затестим
int main()
{
//Сначала работаем с классом монитор
cout<<"Work with Monitor"<<endl;

Monitor m;//объявили
m.SetParam("LG", "L1950B", 6000);//задали значения брэнду, модели, цене
m.Show();//Показали это все
m.SetInfo("China", true, 19);//Задали значения дополнительной информации
m.ShowInfo();//И ее тоже показали
//Теперь поработаем с магазином
cout<<"Work with Shop"<<endl;

Shop mys;//объявили
mys.AddMonitorA(m);//Добавили
mys.AddMonitorA(m);//Лень, поэтому добавили то же самое
mys.AddMonitorA(m);//Лень, поэтому добавили то же самое
mys.ShowAll();//Показали все, что есть в нашем небогатом магазине (3 монитора)

system("pause");
        return 0;
}
//---------------------------------------------------------------------------



--------------------

PM MAIL   Вверх
Warden
Дата 30.1.2009, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 5.11.2008
Где: Ukraine

Репутация: -1
Всего: -1



спасибо огромное я болье-неменее всё до векторов, я понимаю что єто динамическая структура для хранения даных, но кто может либо есть без векторовsmile
PM MAIL ICQ Skype GTalk   Вверх
Dmi3ev
Дата 30.1.2009, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



вот тебе на 100 мониторов
Код

//---------------------------------------------------------------------------

#include <iostream.h>
#include <vector>
//---------------------------------------------------------------------------
struct info
{
char* madein;
double d;
bool rusins;
};
//---------------------------------------------------------------------------
class Monitor
{
public:
 Monitor(){};
 void SetParam(char* s1, char* s2, double a)
 {
  price=a;
  model=s2;
  brand=s1;
 };
 void SetInfo(char *s1, bool b, double a)
 {
  moninfo.madein=s1;
  moninfo.d=a;
  moninfo.rusins=b;
 };
 void Show()
 {
  cout<<"By "<<brand<<endl;
  cout<<"Model"<<model<<endl;
  cout<<"Price: "<<price<<endl;
 };
 void ShowInfo()
 {
  cout<<"Made in: "<<moninfo.madein<<endl;
  if(moninfo.rusins)
   cout<<"Rus instruction: yes"<<endl;
  else
   cout<<"Rus instruction: no"<<endl;
  cout<<"D: "<<moninfo.d<<endl;
 };
 ~Monitor(){};
private:
 char* model;
 char* brand;
 double price;
 struct info moninfo;
};
//---------------------------------------------------------------------------
class Shop
{
public:
 Shop(){k=0;};
 void AddMonitor(Monitor c)
 {
  v[k]=c;
  k++;
 }
 void ShowAll()
 {
  for (int i=0; i<k; i++)
   {
    cout<<"------------"<<i+1<<"------------"<<endl;
    v[i].Show();
    v[i].ShowInfo();
    cout<<"--------------------------"<<endl;
   }
 }
 ~Shop(){};
private:
 Monitor v[100];//наши мониторы
 int k;//счетчик
} ;
//---------------------------------------------------------------------------


int main()
{
cout<<"Work with Monitor"<<endl;

Monitor m;
m.SetParam("LG", "L1950B", 6000);
m.Show();
m.SetInfo("China", true, 19);
m.ShowInfo();

cout<<"Work with Shop"<<endl;

Shop mys;
mys.AddMonitorA(m);
mys.AddMonitorA(m);
mys.AddMonitorA(m);
mys.ShowAll();

system("pause");
        return 0;
}
//---------------------------------------------------------------------------


Добавлено через 54 секунды
суть та же...


--------------------

PM MAIL   Вверх
mes
Дата 30.1.2009, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(Dmi3ev @  30.1.2009,  15:33 Найти цитируемый пост)
 void SetInfo(char *s1, bool b, double a)
 {
  moninfo.madein=s1;


Dmi3ev, а про strcpy() не забыто ?

Это сообщение отредактировал(а) mes - 30.1.2009, 17:26


--------------------
PM MAIL WWW   Вверх
Dmi3ev
Дата 30.1.2009, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



mes, захотелось не использовать ничего... кроме cout для вывода... вот такое было настроение... а что, совсем плохо без strcpy()?


--------------------

PM MAIL   Вверх
mes
Дата 30.1.2009, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(Dmi3ev @  30.1.2009,  16:30 Найти цитируемый пост)
а что, совсем плохо без strcpy()? 

не знаю совсем или не очень, но глаз режется, от того, что внутренним переменным классам присваивается указатель на чужую память.
как минимум желателен статический массив +strcpy().. легче конечно сразу std::string, но такое задание вряд ли  примут,
да и тс желательно научиться пользоваться "голыми" типами, чтоб лучше понимать как "работает" язык ...

Это сообщение отредактировал(а) mes - 30.1.2009, 18:08


--------------------
PM MAIL WWW   Вверх
Warden
Дата 30.1.2009, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 5.11.2008
Где: Ukraine

Репутация: -1
Всего: -1



лана не ругайтесь я повтыкаю не ругайтесьsmile, спасибо огромноеsmile, если чтото переделаю то скинуsmile
PM MAIL ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0588 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.