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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.95
Rayman24
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 42
#1

Объявите класс TCar, создающий тип – автомобиль - C++

21.11.2011, 19:18. Просмотров 2520. Ответов 30
Метки нет (Все метки)

ВАРИАНТ 8

Объявите класс TCar, создающий тип – автомобиль.
Элементы – данные класса – название автомобиля, год выпуска.
Предусмотрите конструкторы класса:
- по умолчанию;
- получающий параметры;
- копирования.
Напишите функции – методы класса:
- для ввода – вывода данных об автомобиле;
- определения, относится ли год выпуска автомобиля к какому – либо, значение которого передается через параметр;
- определения, совпадает ли название автомобиля со значением, передаваемым в виде параметра.
Напишите программу, в которой создайте массив объектов типа TCar, заполните его в диалоговом режиме и найдите в этом массиве все автомобили определенной марки, выпущенные после, например, 1990 года.
Примечание:
Массив объектов класса может быть создан, как статически, так и динамически. Объекты класса, которые будет содержать массив, обязательно должны иметь конструкторы по умолчанию. При создании массива объектов класса для каждого объекта массива будет вызван конструктор по умолчанию.

Ребята помогите с программой, в с++ особо не понимаю...а сдать нужно)вот нашел на сайте что то подобное как переделать под мой вариант?
Объявите класс TGoods, создающий тип – товар.
Элементы – данные класса – наименование товара, год производства.
Предусмотрите конструкторы класса:
- по умолчанию;
- получающий параметры;
- получающий параметр –ссылку на класс TGoods
Напишите функции – методы класса:
- определения, относится ли год производства товара к какому – либо, значение которого передается через параметр;
- определения, совпадает ли наименование товара со значением, передаваемым в виде параметра.
Напишите программу, в которой создайте массив объектов типа TGoods, заполните его в диалоговом режиме и найдите в этом массиве все товары определенного наименования, дата производства которых соответствует, например, 1998 году.
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
#include <iostream>
#include <cstring>
#include <ctime>
#include <cstdlib>
 
class TGoods
{
public:
        TGoods() : year_(0), name_(NULL)
        {
        }
        TGoods(int year, const char *name): year_(year),name_(strcpy(new char[strlen(name) + 1], name))
        {
        }
 
        void set()
        {
                int year;
                char name[25];
 
                std::cout<<"Enter name of goods\t";
                std::cin>>name;
                delete name_;
                name_ = strcpy(new char[strlen(name) + 1], name);
 
                std::cout<<"Enter year\t";
                std::cin>>year;
                year_ = year;
        }
        void TGoods::out()
        {
                std::cout<<"Name of goods\t"<<name_<<std::endl;
                std::cout<<"Year of goods\t"<<year_<<std::endl;
        }
        void setYear(int year)
        {
                year_ = year;
        }
        int getYear() const
        {
                return year_;
        }
        void setName(const char *name)
        {
                delete name_;
                name_ = strcpy(new char[strlen(name) + 1], name);
        }
        const char *getName() const
        {
                return name_;
        }
        
        virtual ~TGoods()
        {
                delete [] name_;
        }
        
        friend std::ostream &operator<<(std::ostream &stream, const TGoods &TGoods)
        {
                return stream << "Name: " << TGoods.getName() << std::endl << "Year: " << TGoods.getYear() << std::endl;
        }
private:
        
        int year_;
        char *name_;
};
 
int main(int argc, char *argv[])
{
        srand(time(NULL));
        int TGoodssCount,year;
 
        std::cout<<"Enter Count Array of Objects ";
        std::cin>>TGoodssCount;
        TGoods *TGoodss = new TGoods[TGoodssCount];
 
        for (int i = 0; i < TGoodssCount; ++i)
        {
                /*TGoodss[i].setName(randomSymbols(9, buffer));
                TGoodss[i].setYear(rand() % 7 + 2005);*/
                TGoodss[i].set();
                std::cout << TGoodss[i];
        }
 
 
          // поиск товара по name:
        std::cout<<"Enter name\t";
        char buffer[25];
        std::cin>>buffer;
        std::cout << std::endl << "Searching for TGoods with name " << buffer << std::endl;
 
        std::cout<<TGoodss[1].getName()<<std::endl;
        for (size_t i = 0; i < TGoodssCount; ++i)
    if (strcmp(TGoodss[i].getName(), buffer)==0)
                std::cout << TGoodss[i];
 
 
  // поиск товара по году:
        std::cout<<"Enter year ";
        std::cin>>year;
        std::cout << std::endl << "Searching for TGoods with year " << year << std::endl;
 
        for (size_t i = 0; i < TGoodssCount; ++i)
    if (TGoodss[i].getYear() == year)
                std::cout << TGoodss[i];
 
        delete [] TGoodss;
        return 0;
}
Ребят очень надеюсь на вашу помощь)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2011, 19:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Объявите класс TCar, создающий тип – автомобиль (C++):

Класс TGoods, создающий тип – товар - C++
Задание вот: Объявите класс TGoods, создающий тип – товар. Элементы – данные класса – наименование товара, год производства. ...

Класс создающий класс и любого его наследника - C++
Есть класс: #pragma once #include &lt;string&gt; #include &quot;Entity.h&quot; class ObjectList { private: //Global List struct List_ {...

Класс создающий другой класс (ошибка) - C++
Начал писать прогу, суть в том, что один класс должен создавать группу объектов другого класса, написал один класс - работало, а во втором...

Создать иерархии наследования: автомобиль - легковой автомобиль, грузовой автомобиль – внедорожник - C++
Создать иерархии наследования: автомобиль - легковой автомобиль, грузовой автомобиль – внедорожник.

Создать класс «Автомобиль» - C++
Создать класс «Автомобиль». Свойства класса: модель, тип, идентификационный номер, владелец.Методы класса: конструктор с параметрами и без...

Описать класс автомобиль - C++
помогите создать класс любой можно про автомобиль,мяч,прямоугольник и тд...,чтобы были конструктор,диструктор,продемонстрировать работу.. ...

30
mc.Duck
Заблокирован
21.11.2011, 19:35 #2
Rayman24, вот класс:
C++
1
2
3
4
5
6
7
8
9
10
     class TCar{
           string name;
           int make_year;
           public:
           TCar();
           TCar(const TCar& car){name=car.name; make_year=car.make_year;}
           bool Setcar(TCar& car, string name2, int make_year2) {car.name=name2; car.make_year=make_year2;}
           bool issameyear(TCar car, int year_make) {if(car.make_year==year_make) return true; else return false;};
           bool issamename(TCar car, string name2) {if(car.name==name2) return true; else return false;};
           };
0
Bers
Заблокирован
21.11.2011, 19:36 #3
Цитата Сообщение от Rayman24 Посмотреть сообщение
Объявите класс TCar, создающий тип – автомобиль.
Сама формулировка фейловая.

Преподавателю своему скажите: классы не создают типы. Классы - это и есть типы.
И хотя, формально класс - это тип. Но даже такая формулировка не корректна с точки зрения ООП.

С точки зрения ООП, класс - описание объекта.

Объект, в контексте данной задачи - это автомобиль.

Любой объект имеет параметры. В нашем случае можно сказать: любые автомобили имеют такие параметры, как "марка машины", "дата выпуска" и тд.

Класс лишь описывает объект. Описывает умения объекта, и его параметры.

ООП оперирует абстракциями на уровне классов и объектов, а не на уровне типов и данных.

Твой класс - прост как пробка. Его с нулевыми знаниями можно сваять за 1-2 часа. Информация "как это делается" в любом учебнике для начинающих. Поэтому подсказывать по реализации ничего не буду.
0
mc.Duck
Заблокирован
21.11.2011, 19:46 #4
Bers, да какой там 1-2 часа - минут 30 с головой хватит)))
0
Bers
Заблокирован
21.11.2011, 19:49 #5
Цитата Сообщение от mc.Duck Посмотреть сообщение
Bers, да какой там 1-2 часа - минут 30 с головой хватит)))
Я ж специально уточнил - с нулевыми знаниями) На случай, если балбес весь семестр девок щупал, и вообще впервые в жизни услышал о существовании с++, а зачет уже завтра сдавать надо.
0
Rayman24
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 42
21.11.2011, 19:51  [ТС] #6
Пожалуйста можно по подробнее, я совсем не шарю

Добавлено через 1 минуту
Цитата Сообщение от Bers Посмотреть сообщение
Я ж специально уточнил - с нулевыми знаниями) На случай, если балбес весь семестр девок щупал, и вообще впервые в жизни услышал о существовании с++, а зачет уже завтра сдавать надо.
Не надо я на лекциях присутствовал и записывал все. Не мое это просто..
0
Bers
Заблокирован
21.11.2011, 19:51 #7
Цитата Сообщение от Rayman24 Посмотреть сообщение
Пожалуйста можно по подробнее, я совсем не шарю
Учебник почитать не пробовали?
0
mc.Duck
Заблокирован
21.11.2011, 19:53 #8
Rayman24, зачем тогда на программиста пошли учиться? Посвятите себя спорту - идите в шахматы)
0
Rayman24
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 42
22.11.2011, 06:08  [ТС] #9
Цитата Сообщение от mc.Duck Посмотреть сообщение
Rayman24, зачем тогда на программиста пошли учиться? Посвятите себя спорту - идите в шахматы)
Будьте так добры помогите кто нибудь...

Добавлено через 10 часов 9 минут
Up!!! )
0
mc.Duck
Заблокирован
22.11.2011, 13:18 #10
Rayman24, я описал класс в самом первом сообщении!!!
0
Bers
Заблокирован
22.11.2011, 14:06 #11
mc.Duck, почему твой автомобиль, что бы получить имя, должен самого себя собственному методу в качестве аргумента передавать?


Ты на первый этаж к себе домой тоже через чердак соседнего дома ходишь?
0
mc.Duck
Заблокирован
22.11.2011, 14:09 #12
Bers, он не себя передает, а переменную типа Tcar, с которой, собственно, и будет сравниваться значение обьекта TCar, который вызвал метод.
0
Bers
Заблокирован
22.11.2011, 14:13 #13
Цитата Сообщение от mc.Duck Посмотреть сообщение
Bers, он не себя передает, а переменную типа Tcar, с которой, собственно, и будет сравниваться значение обьекта TCar, который вызвал метод.
Забудь про "переменную типа Tcar"

Нет никаких переменных типа *пальцы веером*

Есть только объекты. Которые наделены некими умениями, и предоставляют вызывающей стороне неккие услуги. Все.

Есть объект - автомобиль. У него есть имя. И есть умение, с помощью которого это имя можно изменить.

У меня есть объект сконструированный с помощью твоего класса.
Я хочу заменить ему имя. Я хочу что б его звали "быстрый как молния"

Почему для того, что бы мой автомобиль смог изменить своё собственное имя, он должен самого себя передавать самому себе в качестве аргумента своего собственного метода?
Что это за идиотизм?
1
mc.Duck
Заблокирован
22.11.2011, 14:17 #14
Bers, ай, точно! Просто, я подумал, что разговор идет про метод "bool issamename".
Спасибо, Bers. В методе "Setname" действительно не надо передавать объект типа
TCar. Еще раз спасибо.
0
Bers
Заблокирован
22.11.2011, 14:25 #15
mc.Duck, объект в ООП, это не просто "умное хранилище данных".

Это полностью самостоятельная, целостная логическая единица.
Это - полнофункциональный механизм.
Это - инструмент, рассчитанный на выполнение конкретной задачи.

Единственная причина, которая оправдывает создание очередного класса - это облегчение жизни программиста.

Объект - это инструмент, с помощью которого конечный программист будит быстрее и качественнее выполнять свою непосредственную задачу.

И как и любой другой инструмент (взять хотя бы самую обычную электро-дрель, или молоток), у этого инструмента есть:

1. Задача, которую он решает.
2. Интерфейс управления.

Ну так вот, проектируя классы, ты разрабатываешь инструмент. Всегда думай о том, как именно твоим инструментом будут пользоваться конечные пользователи.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2011, 14:25
Привет! Вот еще темы с ответами:

Написать класс Автомобиль - C++
1. Создать запись для хранения следующей информации: – код владельца, – номер автомобиля, – марка автомобиля, – дата выпуска, –...

Разработать класс Car (автомобиль) - C++
Разработать класс Car (автомобиль). Объявить переменные типа этого класса. Определить данные и методы.

Описать базовый класс автомобиль - C++
Помогите написать программу Описать базовый класс автомобиль со следующими данными: количество колес тип двигателя ...

Классы : Создать класс автомобиль - C++
Само задание : Создать класс , который описывает автомобиль . Минимально с 3 атрибутами . Добавить каждому атрибуту set и get метод ....


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
22.11.2011, 14:25
Ответ Создать тему
Опции темы

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