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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2011, 20:30   #1
Sokolik1
 
Регистрация: 07.06.2011
Сообщений: 7
По умолчанию C++ , вперёд к знаниям!

Здравствуйте ребята!
Помогите найти в чём ошибка.

Задача :

Напишите программу с использованием класса Employee, которая создает два объекта класса Employee; устанавливает данные члены age, YearsOfService и Salary, а затем выводит их значение.

Вот что у меня получилось:

Код:
#include <iostream.h>

class Employee
{
	
public:
	int GetAge() const;
	void SetAge(int age);
	int GetYearsOfService ()const;
	void SetYearsOfService(int years);
	int GetSalary() const;
	void SetSalary (int salary);

private:
	int Age;
	int YearsOfService;
	int Salary;
};

int main()
{
	Employee John;
	Employee Sally;
	John.SetAge (30);
	John.SetYearsOfService (5);
	John.SetSalary(50000);
	Sally.SetAge(32);
	Sally.SetYearsOfService(8);
	Sally.SetSalary(40000);
	cout << "At AcmeSexist company, John and sally have the same job.\n";
	cout << "John is" << John.GetAge() << " years old and he has been with";
	cout << "the  film for" << John.GetYearsOfService << "years. \n";
	cout << "John earns $" << John.GetSalary << "dollars per year .\n\n";
	cout << "Sally, on the other hand is" << Sally.GetAge() << " years old and has";
	cout << "been with the company " << Sally.GetYearsOfService;
	cout << "years. Yet Sally only makes $" << Sally.GetSalary();
	cout << "dollars per year! Something here is unfair.";
	return 0;
}
и вот ошибка которую дает компилятор Visual C++ 6.0

--------------------Configuration: day6 - Win32 Debug--------------------
Compiling...
day6.cpp
C:\Program Files\Microsoft Visual Studio\MyProjects\day6\day6.cpp(32) : error C2679: binary '<<' : no operator defined which takes a right-hand operand of type '' (or there is no acceptable conversion)
C:\Program Files\Microsoft Visual Studio\MyProjects\day6\day6.cpp(33) : error C2679: binary '<<' : no operator defined which takes a right-hand operand of type '' (or there is no acceptable conversion)
C:\Program Files\Microsoft Visual Studio\MyProjects\day6\day6.cpp(35) : error C2679: binary '<<' : no operator defined which takes a right-hand operand of type '' (or there is no acceptable conversion)
Error executing cl.exe.

Последний раз редактировалось Sokolik1; 08.06.2011 в 00:07. Причина: не назвал тему
Sokolik1 вне форума Ответить с цитированием
Старый 07.06.2011, 20:37   #2
Biggs
Пользователь
 
Регистрация: 15.07.2010
Сообщений: 74
По умолчанию

Определения ф-й где?
Biggs вне форума Ответить с цитированием
Старый 07.06.2011, 23:02   #3
Sokolik1
 
Регистрация: 07.06.2011
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Biggs Посмотреть сообщение
Определения ф-й где?
Понимаю что вы имеете ввиду определение функций, но как и где их прописать на сто процентов не уверен, я новичок и начал изучение программирования с книги Джесса Либерти "Освой самостоятельно С++ за 21 день" Но намерен изучить С++ на отлично. И ряд других языков чтобы иметь высокую зарплату и быть ценным специалистом.
На каждый день тут расписаны задания, сейчас я на "базовых классах" (день 6), и понимаю, что реально чтобы освоить тему надо потратить как минимум 10 часов на ее доскональное изучение.
Тут после каждой темы упражнение, а в конце книги есть ответы на упражнение, вот и я по них делал. Сейчас от сканировал страничку по которой писал задачу, и прикрепил её в файл. Буду рад прочитать полезные советы по изучению программирования.
Изображения
Тип файла: jpg upr3.jpg (191.8 Кб, 126 просмотров)
Sokolik1 вне форума Ответить с цитированием
Старый 08.06.2011, 00:16   #4
Biggs
Пользователь
 
Регистрация: 15.07.2010
Сообщений: 74
По умолчанию

Код:
#include "stdafx.h"
#include <iostream>
#include<conio.h>
using  namespace std;
class A{
	public:
	void setAge(int s){age=s;}
	void getAge(){ cout<<age<<endl;}
		private:
			int age;
			};
//Это короткая реализация
//Общая такая-
//void A::setAge(int s)
//{
//age=s;
//}

int _tmain(int argc, _TCHAR* argv[])
{
	A f;
	f.setAge(12);
	f.getAge();
	getch();
	return 0;
}
Biggs вне форума Ответить с цитированием
Старый 08.06.2011, 00:57   #5
Sokolik1
 
Регистрация: 07.06.2011
Сообщений: 7
По умолчанию

Спасибо Biggs, только одна ошибка, подозреваю что это из за моего устаревшего компилятора Visual C++ 6.0 , Вы какой кстати версией пользуетесь?

Код:
#include <iostream.h>

class Employee
{
	
public:
	int GetAge() const;
	void SetAge(int age);
	int GetYearsOfService ()const;
	void SetYearsOfService(int years);
	int GetSalary() const;
	void SetSalary (int salary);

private:
	int Age;
	int YearsOfService;
	int Salary;
};


#include "stdafx.h"
#include <iostream>
#include<conio.h>
using  namespace std;
class A{
	public:
	void setAge(int s){age=s;}
	void getAge(){ cout<<age<<endl;}
		private:
			int age;
			};
//Ýòî êîðîòêàÿ ðåàëèçàöèÿ
//Îáùàÿ òàêàÿ-
//void A::setAge(int s)
//{
//age=s;
//}

int _tmain(int argc, _TCHAR* argv[])
{
	A f;
	f.setAge(12);
	f.getAge();
	getch();
	return 0;
}

int main()
{
	Employee John;
	Employee Sally;
	John.SetAge (30);
	John.SetYearsOfService (5);
	John.SetSalary(50000);
	Sally.SetAge(32);
	Sally.SetYearsOfService(8);
	Sally.SetSalary(40000);
	cout << "At AcmeSexist company, John and sally have the same job.\n";
	cout << "John is" << John.GetAge() << " years old and he has been with";
	cout << "the  film for" << John.GetYearsOfService << "years. \n";
	cout << "John earns $" << John.GetSalary << "dollars per year .\n\n";
	cout << "Sally, on the other hand is" << Sally.GetAge() << " years old and has";
	cout << "been with the company " << Sally.GetYearsOfService;
	cout << "years. Yet Sally only makes $" << Sally.GetSalary();
	cout << "dollars per year! Something here is unfair.";
	return 0;
}

--------------------Configuration: day6 - Win32 Debug--------------------
Compiling...
day6.cpp
C:\Program Files\Microsoft Visual Studio\MyProjects\day6\day6.cpp(21) : fatal error C1083: Cannot open include file: 'stdafx.h': No such file or directory
Error executing cl.exe.

day6.exe - 1 error(s), 0 warning(s)
Sokolik1 вне форума Ответить с цитированием
Старый 08.06.2011, 01:02   #6
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Зря вы с этой книги начали, плохая она. В классе у вас есть три свойства, методы Get... Set... возвращают либо устанавливают значения этих свойств. То есть все они, в данном случае будут выглядеть как
Код:
   int Get[name]() const {
     return [name];
   }
   void Set[name](int value) {
      [name] = value;
   }
Где вместо [name] подставите правильные имена. И ещё, скобочки после имени в вызове функции обязательны. Sally.GetYearsOfService()
netrino вне форума Ответить с цитированием
Старый 08.06.2011, 01:46   #7
Sokolik1
 
Регистрация: 07.06.2011
Сообщений: 7
По умолчанию

Спасибо netrino, а скажите пожалуйста чем книга то плохая? Она просто у меня единственная которая была и прочитал уже страниц 170, неохота сейчас забрасывать.
Посоветуйте книги которые Вам понравились? Расскажите свой путь в изучении языков программирования. И я вижу Вы тоже с Украины, скажите что сейчас в Киеве популярно, в каких специалистах там больше всего нуждаются работодатели, и что из этого более всего высокооплачиваемое. Сори если слишком много вопросов
Sokolik1 вне форума Ответить с цитированием
Старый 08.06.2011, 07:36   #8
Biggs
Пользователь
 
Регистрация: 15.07.2010
Сообщений: 74
По умолчанию

Компилятор Visual Studio 2010 Express ,'stdafx.h' убери и все получится
Ничего страшного в книге Либерти нет , тока не останавливайся на ней
Biggs вне форума Ответить с цитированием
Старый 09.06.2011, 16:24   #9
Sokolik1
 
Регистрация: 07.06.2011
Сообщений: 7
По умолчанию

Вроде все по правилам написано, помогите определить ошибку:

Код:
// Ïðèìåð îáÿâëåíèÿ êîíñòðóêòîðà è
// äåñòðóêòîðà â êëàññå Cat

#include <iostream.h>			// Äëÿ îáüåêòà cout

class Cat						// Íà÷àëî îáüÿâëåíèÿ êëàññà
{
 public:						// íà÷àëî îòêðûòîãî ðàçäåëà
	 Cat (int initialAge);		// êîíñòðóêòîð
	 ~Cat();					// äåñòðóêòîð
	int GetAge();				// ìåòîä äîñòóïà
	void SetAge (int age);		// ìåòîä äîñòóïà
	void Meow();				// îáû÷íûé ìåòîä
 private:						// íà÷àëî çàêðûòîãî ðàçäåëà
	 int itsAge;				// ïåðåìåííàÿ-÷ëåí
};

// êîíñòðóêòîð êëàññà Cat
Cat::Cat(int initialAge)
{
	itsAge = initialAge;
}

Cat::~Cat()						// äåñòðóêòîð, íå âûïîëíÿþùèé äåéñòâèé
{
}


// GetAge, îòêðûòàÿ ôóíêöèÿ äîñòóïà,
// âîçâðàùàåò çíà÷åíèå ïåðåìåííîé-÷ëåíà itsAge
int Cat::GetAge()
{
	return itsAge;
}

// Îïðåäåëåíèå îòêðûòîé ôóíêöèèè äîñòóïà SetAge
//Ôóíöèÿ SetAge
//èíèöèèðóåò ïåðåìåííóþ-÷ëåí itsAge
void Cat::SetAge(int age)
{
 // Óñòàíàâëèâàåì ïåðåìåííóþ-÷ëåí itsAge ðàâíîé 
 // çíà÷åíèþ, ïåðåäàíîìó ñ ïîìîùüþ ïàðàìåòðà age
 itsAge = age;
}

// Îïðåäåëåíèå ìåòîäà Meow
// âîçâðàùàåò void
// ïàðàìåòðîâ íåò
// èñïîëüçóåòñÿ äëÿ âûâîäà íà ýêðàí òåêñòà "Meow"
void Cat::Meow()
{
	cout << "Meow. \n";
}

// Ñîçäàåì âèðòóàëüíóþ êîøêó, óñòàíàâëèâàåì åå âîçðàñò, ðàçðåøàåì
// åé ìÿóêíóòü, ñîîáùàåì åå âîçðàñò, çàòåì ñíîâà "ìÿóêàåì" è èçìåíÿåì âîçðàñò êîøêè.
int main()
{
	Cat Frisky(5);
	Frisky.Meow();
	cout << "Frisky is a cat who is ";
	cout << Frisky.GetAge() << " years old. \n";
	Frisky.Meow();
	Frisky.SetAge(7);
	cout << "Now Frisky is ";
	cout << "Frisky.GetAge() << "years old. \n";
	return 0;
}

Visual C++ 6

--------------------Configuration: listing64 - Win32 Debug--------------------
Compiling...
listing64.cpp
C:\Program Files\Microsoft Visual Studio\MyProjects\listing64\listing 64.cpp(66) : error C2146: syntax error : missing ';' before identifier 'years'
C:\Program Files\Microsoft Visual Studio\MyProjects\listing64\listing 64.cpp(66) : error C2065: 'years' : undeclared identifier
C:\Program Files\Microsoft Visual Studio\MyProjects\listing64\listing 64.cpp(66) : error C2146: syntax error : missing ';' before identifier 'old'
C:\Program Files\Microsoft Visual Studio\MyProjects\listing64\listing 64.cpp(66) : error C2065: 'old' : undeclared identifier
C:\Program Files\Microsoft Visual Studio\MyProjects\listing64\listing 64.cpp(66) : error C2017: illegal escape sequence
C:\Program Files\Microsoft Visual Studio\MyProjects\listing64\listing 64.cpp(66) : error C2001: newline in constant
C:\Program Files\Microsoft Visual Studio\MyProjects\listing64\listing 64.cpp(66) : error C2228: left of '.n' must have class/struct/union type
C:\Program Files\Microsoft Visual Studio\MyProjects\listing64\listing 64.cpp(66) : error C2143: syntax error : missing ';' before 'string'
C:\Program Files\Microsoft Visual Studio\MyProjects\listing64\listing 64.cpp(67) : error C2143: syntax error : missing ';' before 'return'
Error executing cl.exe.

listing64.exe - 9 error(s), 0 warning(s)
Sokolik1 вне форума Ответить с цитированием
Старый 09.06.2011, 16:28   #10
Sokolik1
 
Регистрация: 07.06.2011
Сообщений: 7
По умолчанию

-------------------------
и ещё вопрос вдогонку, почему у меня в компиляторе правильно отображается русский , а тут нет, как это исправить? И буду также очень признателен если скажете где в Visual C++ 6 сделать так чтобы видно было номер строки.

Последний раз редактировалось Sokolik1; 09.06.2011 в 17:06.
Sokolik1 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заголовок Shyt HTML и CSS 3 02.01.2011 20:48
Заголовок в отчете((( Arinka Помощь студентам 1 04.12.2010 19:44
Заголовок приложения xanderg Microsoft Office Access 3 24.11.2010 16:58
Заголовок окна doniyor Общие вопросы Delphi 3 14.07.2009 01:23
StringGrid заголовок Мэр Общие вопросы Delphi 3 03.06.2009 03:04