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

Не сложная элементарная легкая задача с хэдерами,поинтерами и тд - C++

Восстановить пароль Регистрация
 
renataakhm
20 / 5 / 1
Регистрация: 10.09.2012
Сообщений: 115
25.02.2013, 22:44     Не сложная элементарная легкая задача с хэдерами,поинтерами и тд #1
Здравствуйте, ребята! Столкнулась с задачей..времени,как всегда не хватает(( Вообщем, есть задача у меня такая:
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
#include<iostream>
#include"car.h"
#include"mazda.h"
 
using namespace std;
 
template <typename T>
const T& compare(const T& c1, const T& c2){
c1<c2;
}
 
int main(){
car c1("Matiz", 1983);
car c2("Volga", 1997);
 
cout«c1«c2;
 
if (c1<c2){
 cout«c1.getName()«" is older"«endl;
}
else {
cout «c2.getName()« " is older"«endl;
}
 
car *ptr1 =&c1;
car *ptr2=&c2;
ptr1->setYear(2005);
cout«"After setting new age to Matiz:"«endl;
if (*ptr1 < *ptr2) {
cout « ptr1->getName()«" is older."«endl;
}
else {
cout « ptr2-> getName()«" is older."«endl;
}
 
car* c3 = new mazda();
c3->setName("Mazda");
c3->setYear(1998);
cout«c3->getName()«" is "«c3->getYear«" years old"«endl;
return 0;
}
Это вот то, что мне дали в задании... Нужно добавить хэдеры, как видно.... Вообщем, вам то видно, что нужно, а мне нет.
И вот в конце написано, что в общем то, должно выводиться:

Matiz made in 1983 year (Матиз произведен в 1983 году)
Volga made in 1997 (Волга произведена в 1997 году)
Matiz is older (Матиз старше)
After setting new age to Matiz: (После задания нового возраста Матизу)
Volga is older. (Волга старше)
Mazda Cronors is 15 years old (Мазда кронорс 15 лет)
Press any key to continue... (Нажмите любую клавишу для продолжения..)

Перевод добавила я, на всякий случай..

Я обещаю, что научусь все это делать!!Просто помогите разочек. Элементарный синтаксис знаю, а вот про это все ну уж очень практики мало было у меня,ну не могу понять(( Это всего первая контрольная, а будет еще 3.. Так что времени выучить будет. Но эту задачу нужно завтра(( Стыдно, противно...но не могу! Не оставляйте в беде =(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.02.2013, 22:44     Не сложная элементарная легкая задача с хэдерами,поинтерами и тд
Посмотрите здесь:

C++ легкая задача - график параболы
C++ Легкая задача с массивами! очень...
C++ думаю легкая задача, посмотрите
C++ Найти ln(x) используя разложением в ряд (элементарная задача)
C++ легкая задача
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
anmartex
...
 Аватар для anmartex
1699 / 1192 / 494
Регистрация: 12.02.2013
Сообщений: 1,978
26.02.2013, 05:21     Не сложная элементарная легкая задача с хэдерами,поинтерами и тд #2
car.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
#ifndef CAR_H_INCLUDED
#define CAR_H_INCLUDED
 
#include <string>
 
class car
{
   protected:
      std::string name;
      unsigned year;
 
   public:
      car(const std::string& theName, unsigned theYear)
         : name(theName), year(theYear) { ; }
 
      virtual ~car() { ; }
 
      virtual car& setYear(unsigned theYear)
      {
         year = theYear;
         return *this;
      }
 
      virtual car& setName(const std::string& theName)
      {
         name = theName;
         return *this;
      }
 
      virtual unsigned getYear() const
      {
         return year;
      }
 
      virtual std::string getName() const
      {
         return name;
      }
 
      bool operator < (const car& theCar) const
      {
         return (year < theCar.year);
      }
};
 
std::ostream& operator << (std::ostream& os, const car& theCar)
{
   os << theCar.getName() << " made in " << theCar.getYear() << " year\n";
 
   return os;
}
 
#endif // CAR_H_INCLUDED
mazda.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
#ifndef MAZDA_H_INCLUDED
#define MAZDA_H_INCLUDED
 
#include "car.h"
 
class mazda: public car
{
   public:
      mazda(): car("", 0) { ; }
 
      virtual std::string getName() const
      {
         return (name + " Cronors");
      }
 
      virtual unsigned getYear() const
      {
         return (2013 - year);
      }
 
};
 
#endif // MAZDA_H_INCLUDED
Не сложная элементарная легкая задача с хэдерами,поинтерами и тд

Исходники + бинарник: program.7z
renataakhm
20 / 5 / 1
Регистрация: 10.09.2012
Сообщений: 115
26.02.2013, 09:53  [ТС]     Не сложная элементарная легкая задача с хэдерами,поинтерами и тд #3
anmartex, о огромнейшее спасибо!! Вчера как написала этутему, не сдавалась, сидела делала.. Вот я поняла, что в car должно быть setName,setYear, ну и так же с get. Использовала virtual, и вот тут я фигней страдать начала. Начала прописывать функции, которые должны вводить год (cin), но когда я дошла до setName, я поняла, что там ничего не вводится -____-, и в очередной раз поняла, что все, что я 3 часа пыталась накалякать-охинея.. Радует, что хотябы 30% додумала сама... Теперь буду сидеть разбирать код.. Поняла, что с учителем нужно бить тревогу! И вот ладно бы, так нам такие задачи постоянно дают. Новая тема. Домашнее. 70% кода уже написано, вот сидишь и додумываешь их мысль... Из-за этого никакой практики, и я не шарю поэтому((( это как крик души(( Спасибо огромнейшее!!
anmartex
...
 Аватар для anmartex
1699 / 1192 / 494
Регистрация: 12.02.2013
Сообщений: 1,978
26.02.2013, 10:08     Не сложная элементарная легкая задача с хэдерами,поинтерами и тд #4
Рад был помочь.
Цитата Сообщение от renataakhm Посмотреть сообщение
Вчера как написала эту тему, не сдавалась, сидела делала.
Сразу вспомнилась вот эта статья на хабре.
Yandex
Объявления
26.02.2013, 10:08     Не сложная элементарная легкая задача с хэдерами,поинтерами и тд
Ответ Создать тему
Опции темы

Текущее время: 07:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru