Мне нужна помощь с проблемой C++
это проблема Ма:
Определите класс под названием “Дом”, который представляет информацию о доме. А дом есть
определяется с помощью следующих атрибутов: возраст (int), тип (строка) (отдельно стоящий, полу‐прикрепленный, прикрепленный), комнаты (int)
и стоимость (двойная). Функции класса House должны выполнять следующие операции:
Верните возраст дома
Измените возраст дома
Верните тип дома
Верните количество комнат
Функция estimatePrice (), которая возвращает стоимость дома в зависимости от типа и возраста. Один
пристроенный дом, стоит 100 000 долларов, дорожает на 1% каждый год в первые пять лет и на 2% каждый год.
год спустя. Двухквартирный дом, стоящий 150 000 долларов, ценится на 2% каждый год в первом квартале
пять лет и 3% каждый год после этого. Отдельно стоящий дом, стоит 200 000 долларов, ценит 2%
каждый год в первые пять лет и 2% каждый год после этого.
Проверьте свой класс, предложив пользователю ввести информацию о двух разных домах. Создать два
объекты класса House с информацией, введенной пользователем, и, наконец, тестируемый член
функции класса. Также рассчитайте расчетную цену домов данного типа и возраста (включая 1
прилагается и 1 отсоединяется)
Результаты:
Файл под названием Дом.h, который содержит спецификацию класса.
Файл под названием house.cpp это содержит реализацию функций-членов класса.
Файл под названием testhouse.cpp в этом и заключается основная функция.
Что я уже пробовал:
#ifndef HOUSE_H #define HOUSE_H class House { public: House(int age,string type,int rooms); void setAge(int age); int getAge(); string getType(); int getNumOfRooms(); double estimatedPrice(); private: // Declaring variables int age; string type; int rooms; double cost; }; #endif ________ // House.cpp #include <iostream> using namespace std; #include "House.h" House::House(int age,string type,int rooms) { this->age=age; this->type=type; this->rooms=rooms; } void House::setAge(int age) { this->age=age; } int House::getAge() { return age; } string House::getType() { return type; } int House::getNumOfRooms() { return rooms; } double House::estimatedPrice() { if(type.compare("Attached")==0) { cost=100000; if(age<=5) { for(int i=1;i<=age;i++) { cost=cost+cost*0.01; } } else { for(int i=1;i<=5;i++) { cost=cost+cost*0.01; } for(int i=1;i<=age-5;i++) { cost=cost+cost*0.02; } } } else if(type.compare("Semi-detached")==0) { cost=150000; if(age<=5) { for(int i=1;i<=age;i++) { cost=cost+cost*0.02; } } else { for(int i=1;i<=5;i++) { cost=cost+cost*0.02; } for(int i=1;i<=age-5;i++) { cost=cost+cost*0.03; } } } else if(type.compare("Detached")==0) { cost=150000; for(int i=1;i<=age;i++) { cost=cost+cost*0.02; } } return cost; } __________ // main.cpp #include <iostream> using namespace std; #include "House.h" int main() { int age; string type; int rooms; cout<<":: House#1 ::"<<endl; cout<<"enter house="" age="" :"; cin>>age; cout<<"Enter House Type :"; cin>>type; cout<<"Enter No of Rooms :"; cin>>rooms; House house1(age,type,rooms); cout<<":: House#2 ::"<<endl; cout<<"enter house="" age="" :"; cin>>age; cout<<"Enter House Type :"; cin>>type; cout<<"Enter No of Rooms :"; cin>>rooms; House house2(age,type,rooms); cout<<"\nHouse Estimated Cost :$"<
Rick York
Похоже, ваш код был обрезан. Я добавил предварительные теги и отступы в четыре пробела на уровень табуляции.
Вам нужно задать вопрос. Неразумно ожидать, что люди будут пробираться через кучу кода и выяснять, что, если что-то не так.
Я рекомендую вам немного изменить класс дома. Добавьте пустой конструктор по умолчанию, который принимает нулевые Аргументы, и добавьте метод Prompt, который запрашивает у пользователя данные. Вы повторили этот раздел кода дважды, так что это хороший кандидат для метода или функции.
Кроме того, std::string имеет оператор==, так что вы можете напрямую сравнить равенство с ним.
Возможно, вам захочется сделать член типа house перечислением, а не строкой, и принять ввод без учета регистра.
Если ваша программа работает неправильно, это будет хорошей возможностью научиться использовать отладчик. Они являются важным инструментом для эффективного программирования.
CPallini
Ваш код почти завершен. В чем же тогда проблема?