2015-07-28 2 views
2

Garden содержит n яблони. Каждая яблоня может быть охарактеризована следующим образом: урожай первого года, увеличение на каждый год прошлого и закон, согласно которому количество яблок увеличивается с каждым годом. Закон использует два коэффициента coef1 и coef2. Закон распространен для всех яблонь, но коэффициенты могут отличаться. Вы должны:
a) Узнайте количество выращенных яблок для каждой яблони в течение многих лет. Количество лет либо вводится с клавиатуры, либо определяется как постоянное значение;
b) Узнайте количество выращенных яблок для каждой яблони в течение определенного года;
c) Создайте новый сад из яблони, который увеличил количество яблок в течение лет не менее определенного значения. Значения чисел яблок и периода лет могут быть либо , определяемые как константы, либо введенные формы клавиатуры.
Это только начальная часть и дает ошибки:Ошибка при запуске программы класса контейнера

Предупреждение 3 предупреждение C4183: «Печать»: отсутствует тип возвращаемого значения; предполагается, что это функция-член, возвращающая «int» c: \ users \ kumar anubhav \ documents \ garden \ atree.h 11 1 сад

Предупреждение 6 предупреждение C4183: 'Печать': отсутствует тип возврата; предполагается, что это функция-член, возвращающая «int» c: \ users \ kumar anubhav \ documents \ garden \ atree.h 11 1 garden 9 IntelliSense: оператор «< <» соответствует этим операндам Типы операндов: std :: ostream < < std :: string c: \ Users \ kumar anubhav \ Documents \ garden \ Source.cpp 42 6 garden

Ошибка 2 ошибка C4430: отсутствует спецификатор типа - int. Примечание: C++ не поддерживает default-int c: \ users \ kumar anubhav \ documents \ garden \ atree.h 11 1 garden

Ошибка ошибки 5 C4430: отсутствует спецификатор типа - int. Примечание: C++ не поддерживает default-int c: \ users \ kumar anubhav \ documents \ garden \ atree.h 11 1 сад

Ошибка 7 ошибка C2556: 'std :: string Atree :: Print (void)': перегруженная функция отличается только возвращаемым типом от «int Atree :: Print (void)» c: \ users \ kumar anubhav \ documents \ garden \ atree.cpp 9 1 сад

Ошибка 8 ошибка C2371: 'Atree :: Печать ': переопределение; различные основные типы c: \ users \ kumar anubhav \ documents \ garden \ atree.cpp 9 1 сад

Ошибка 1 ошибка C2146: синтаксическая ошибка: отсутствует ';' перед идентификатором «Печать» c: \ users \ kumar anubhav \ documents \ garden \ atree.h 11 1 сад

Ошибка 4 ошибка C2146: синтаксическая ошибка: отсутствует ';' перед идентификатором 'Печать' C: \ Users \ Кумар Анубхав \ документы \ сад \ atree.h 11 1 сад

class Atree 
{ 
private: 
int year, increa; 
int coef1, coef2; 
public: 
Atree(): year(0), increa(16), coef1(1), coef2(2) { } 
Atree(int year, int increa, int coef1, int coef2): 
year(year), increa(increa), coef1(coef1), coef2(coef2) { } 
string Print(); 
}; 


#include "Atree.h" 
#include <sstream> 
#include <iomanip> 
using namespace std; 
//------------------------------------------------------------ 
// Writes data into a line 
string Atree::Print() 
{ 
stringstream sr; 
sr << setw(6) << coef1 << setw(6) << coef2 
<< setw(5) << year << setw(7) << increa ; 
return sr.str(); 
} 
#pragma once 
//------------------------------------------------------------ 
#include "Atree.h" 
class Garden 
{ 
public: 
static const int CMaxi = 100; 
private: 
Atree Atrees[CMaxi]; 
int n; 
public: 
Garden():n(0) { } 
Atree Get(int i) { return Atrees[i]; } 
int Get() { return n; } 
void Set(Atree ob) { Atrees[n++] = ob; } 
}; 
//------------------------------------------------------------ 
#include "Garden.h" 
#include <fstream> 
#include <iostream> 
#include <iomanip> 
using namespace std; 
//------------------------------------------------------------ 
const char Cu1[]="U1.txt"; 
//------------------------------------------------------------ 
void Read(Garden & Gard, const char fv []); 
void Print(Garden & Gard); 
//------------------------------------------------------------ 
int main() 
{ 
Garden Gard; 
Read(Gard, Cu1); 
Print(Gard); 
return 0; 
} 
//------------------------------------------------------------ 
// Reads data from the file fv 
void Read(Garden & Gard, const char fv []) 
{ 
    ifstream fd(fv); 
int n; 
fd >> n; 
int coef1, coef2, year, increa; 
for (int i = 0; i < n; i++) { 
fd >> coef1 >> coef2 >> year >> increa; 
Gard.Set(Atree(year, increa, coef1, coef2)); 
} 
fd.close(); 
} 
//------------------------------------------------------------ 
// Prints the data of object Gard 
void Print(Garden & Gard) 
{ 
cout << " Information on apple trees\n"; 
cout << " Coef1 coef2 year increa\n"; 
for (int i = 0; i < Gard.Get(); i++) 
cout << Gard.Get(i).Print() << endl; 
} 
//------------------------------------------------------------ 
+0

Этот вопрос довольно грязный. Вы должны попытаться очистить его и быть конкретным в том, что ваша проблема. Вам не нужно вставлять все домашние задания, так как проблема только в том, что ваш код не компилируется. Вы всегда должны попытаться уменьшить свой вопрос до [Минимального, полного, проверяемого примера] (http://stackoverflow.com/help/mcve), и часто, делая это, вы обнаружите проблему. – Tas

ответ

1

В декларации Atree, вы объявили метод, называемый Print который возвращает string. Компилятор не знает, что такое string, и в отличие от языка C он не может просто по умолчанию возвращать тип до int.Вы, наверное, имели в виду использовать std::string и, таким образом, написать:

class Atree 
{ 
std::string Print(); 
}; 

Вам может понадобиться #include <string> заранее.

Компилятор также жалуется, потому что ваше определение типа возврата Atree::Print отличается. Здесь он знает, вы пытаетесь использовать std::string, потому что вы принесли std пространство имен для связи с using ключевого слова:

using namespace std; 
string Atree::Print() 
{ 
} 

компилятор знает, что вы хотите вернуть std::string, но это отличается от Atree::Print декларации, в который компилятор предполагает, что вы пытаетесь вернуть int.

Вам следует избегать using namespace std. Выполнение этого просто дало бы вам ошибки в компиляторе, не зная, что такое string, что бы (надеюсь) облегчало его решение.

+0

, но все же ошибки идут ... –

+0

Пожалуйста, помогите, как я новичок, но много пробовал, чтобы закончить это с помощью заметок .... ошибки все еще идут ... Я использую VS 2012 –

Смежные вопросы