Премини към съдържанието
Georgi Kirchev

Трябва ми спешна помощ за задача на c++

Препоръчан отговор


Здравейте имам да предам курсова работа утре ,но не мога да я реша , ще бъда изключително благодарен ако може някой да ми помогне.

Дефинирайте клас Телевизор, който да е родител на клас Самсунг и клас Сони. Клас Телевизор да има цена и брой продадени за година в сектор private. Класовете Самсунг и Сони да имат в сектор public функции за определяне на общата сума от продажби за година (цена * брой продадени за година). Всички класове да имат конструктори по подразбиране.
 

Благодаря предварително !

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

преди 9 часа, Georgi Kirchev написа:

Здравейте имам да предам курсова работа утре ,но не мога да я реша , ще бъда изключително благодарен ако може някой да ми помогне.

Дефинирайте клас Телевизор, който да е родител на клас Самсунг и клас Сони. Клас Телевизор да има цена и брой продадени за година в сектор private. Класовете Самсунг и Сони да имат в сектор public функции за определяне на общата сума от продажби за година (цена * брой продадени за година). Всички класове да имат конструктори по подразбиране.
 

Благодаря предварително !

#include <iostream>
#include <cstdlib>
using namespace std;
class TV
   {
   protected:
    float price;
    int quantity;
   public:
    TV();//constructor
    TV(float price, int quantity);
    void set_price(float);
    void set_quantity(int);
    float get_price();
    int get_quantity() const;
    float get_price() const;
   };
   TV::TV()
   {
       this->price=10;
       this->quantity=2;
   }
   TV::TV(float price, int quantity)
   {
       this->price=price;
       this->quantity=quantity;
   }
   float TV::get_price() const
   {
       return price;
   }
   int TV::get_quantity() const
   {
       return quantity;
   }
   class Sony:public TV
   {
       public:
           float calculate() const;
           Sony(); //construnctor
           Sony(float price, int quantity);
   };
   class Samsung:public TV
   {
       public:
           float calculate() const;
           Samsung(); //constructor
           Samsung(float price, int quantity);
   };
   Sony::Sony(float price, int quantity)
   {
       this->price=price;
       this->quantity=quantity;
   }
   Samsung::Samsung(float price, int quantity)
   {
       this->price=price;
       this->quantity=quantity;
   }
    float Sony::calculate()const
   {
       float price=get_price();
       int quantity=get_quantity();
       cout<<"Annual sellings"<<price*quantity<<endl;
   }
    float Samsung::calculate()const
   {
       float price=get_price();
       int quantity=get_quantity();
       cout<<"Annual sellings"<<price*quantity<<endl;
   }
int main()
{
  Samsung S1(10,5);
  S1.calculate();
}

 

  • Еха 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 3 часа, Даскала написа:

#include <iostream>
#include <cstdlib>
using namespace std;
class TV
   {
   protected:
    float price;
    int quantity;
   public:
    TV();//constructor
    TV(float price, int quantity);
    void set_price(float);
    void set_quantity(int);
    float get_price();
    int get_quantity() const;
    float get_price() const;
   };
   TV::TV()
   {
       this->price=10;
       this->quantity=2;
   }
   TV::TV(float price, int quantity)
   {
       this->price=price;
       this->quantity=quantity;
   }
   float TV::get_price() const
   {
       return price;
   }
   int TV::get_quantity() const
   {
       return quantity;
   }
   class Sony:public TV
   {
       public:
           float calculate() const;
           Sony(); //construnctor
           Sony(float price, int quantity);
   };
   class Samsung:public TV
   {
       public:
           float calculate() const;
           Samsung(); //constructor
           Samsung(float price, int quantity);
   };
   Sony::Sony(float price, int quantity)
   {
       this->price=price;
       this->quantity=quantity;
   }
   Samsung::Samsung(float price, int quantity)
   {
       this->price=price;
       this->quantity=quantity;
   }
    float Sony::calculate()const
   {
       float price=get_price();
       int quantity=get_quantity();
       cout<<"Annual sellings"<<price*quantity<<endl;
   }
    float Samsung::calculate()const
   {
       float price=get_price();
       int quantity=get_quantity();
       cout<<"Annual sellings"<<price*quantity<<endl;
   }
int main()
{
  Samsung S1(10,5);
  S1.calculate();
}

 

благодаря за положения труд но за жалост не работи при мен и ми изписва следните грешки :
1>c:\users\pc\documents\visual studio 2013\projects\consoleapplication2\consoleapplication2\consoleapplication2.cpp(72): error C4716: 'Sony::calculate' : must return a value
1>c:\users\pc\documents\visual studio 2013\projects\consoleapplication2\consoleapplication2\consoleapplication2.cpp(78): error C4716: 'Samsung::calculate' : must return a value

  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 14 минути, Georgi Kirchev написа:

благодаря за положения труд но за жалост не работи при мен и ми изписва следните грешки :
1>c:\users\pc\documents\visual studio 2013\projects\consoleapplication2\consoleapplication2\consoleapplication2.cpp(72): error C4716: 'Sony::calculate' : must return a value
1>c:\users\pc\documents\visual studio 2013\projects\consoleapplication2\consoleapplication2\consoleapplication2.cpp(78): error C4716: 'Samsung::calculate' : must return a value

Аз не ползвам Visual Studio, а Code Blocks. Програмата работи, компилатора на Микромеките се цупи.
Пиши функцията calculate като VOID и виж дали ще тръгне компилацията.

п.п И на коде блока дава известие, че функцията не връща.
Пиши в public-а на децата void calculate и след това долу в описанието на функицията извън класа отново void.
 

#include <iostream>
#include <cstdlib>
using namespace std;
class TV
   {
   protected:
    float price;
    int quantity;
   public:
    TV();//constructor
    TV(float price, int quantity);
    void set_price(float);
    void set_quantity(int);
    float get_price();
    int get_quantity() const;
    float get_price() const;
   };
   TV::TV()
   {
       this->price=10;
       this->quantity=2;
   }
   TV::TV(float price, int quantity)
   {
       this->price=price;
       this->quantity=quantity;
   }
   float TV::get_price() const
   {
       return price;
   }
   int TV::get_quantity() const
   {
       return quantity;
   }
   class Sony:public TV
   {
       public:
           void calculate() const;
           Sony(); //construnctor
           Sony(float price, int quantity);
   };
   class Samsung:public TV
   {
       public:
           void calculate() const;
           Samsung(); //constructor
           Samsung(float price, int quantity);
   };
   Sony::Sony(float price, int quantity)
   {
       this->price=price;
       this->quantity=quantity;
   }
   Samsung::Samsung(float price, int quantity)
   {
       this->price=price;
       this->quantity=quantity;
   }
    void Sony::calculate()const
   {
       float price=get_price();
       int quantity=get_quantity();
       cout<<"Annual sellings"<<price*quantity<<endl;
   }
    void Samsung::calculate()const
   {
       float price=get_price();
       int quantity=get_quantity();
       cout<<"Annual sellings"<<price*quantity<<endl;
   }
int main()
{
  Samsung S1(10,5);
  S1.calculate();
}

 

Ето резултата от компилирането:
 

-------------- Build: Debug in klas (compiler: GNU GCC Compiler)---------------

mingw32-g++.exe -Wall -fexceptions -g  -c D:\cc\klas\main.cpp -o obj\Debug\main.o
mingw32-g++.exe  -o bin\Debug\klas.exe obj\Debug\main.o   
Output file is bin\Debug\klas.exe with size 1.50 MB
Process terminated with status 0 (0 minute(s), 1 second(s))
0 error(s), 0 warning(s) (0 minute(s), 1 second(s))
 

-------------- Run: Debug in klas (compiler: GNU GCC Compiler)---------------

Checking for existence: D:\cc\klas\bin\Debug\klas.exe
Executing: "C:\Program Files (x86)\CodeBlocks/cb_console_runner.exe" "D:\cc\klas\bin\Debug\klas.exe"  (in D:\cc\klas\.)
Process terminated with status -1073741510 (0 minute(s), 2 second(s))

 

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 16 часа, Даскала написа:

Аз не ползвам Visual Studio, а Code Blocks. Програмата работи, компилатора на Микромеките се цупи.
Пиши функцията calculate като VOID и виж дали ще тръгне компилацията.

п.п И на коде блока дава известие, че функцията не връща.
Пиши в public-а на децата void calculate и след това долу в описанието на функицията извън класа отново void.
 


#include <iostream>
#include <cstdlib>
using namespace std;
class TV
   {
   protected:
    float price;
    int quantity;
   public:
    TV();//constructor
    TV(float price, int quantity);
    void set_price(float);
    void set_quantity(int);
    float get_price();
    int get_quantity() const;
    float get_price() const;
   };
   TV::TV()
   {
       this->price=10;
       this->quantity=2;
   }
   TV::TV(float price, int quantity)
   {
       this->price=price;
       this->quantity=quantity;
   }
   float TV::get_price() const
   {
       return price;
   }
   int TV::get_quantity() const
   {
       return quantity;
   }
   class Sony:public TV
   {
       public:
           void calculate() const;
           Sony(); //construnctor
           Sony(float price, int quantity);
   };
   class Samsung:public TV
   {
       public:
           void calculate() const;
           Samsung(); //constructor
           Samsung(float price, int quantity);
   };
   Sony::Sony(float price, int quantity)
   {
       this->price=price;
       this->quantity=quantity;
   }
   Samsung::Samsung(float price, int quantity)
   {
       this->price=price;
       this->quantity=quantity;
   }
    void Sony::calculate()const
   {
       float price=get_price();
       int quantity=get_quantity();
       cout<<"Annual sellings"<<price*quantity<<endl;
   }
    void Samsung::calculate()const
   {
       float price=get_price();
       int quantity=get_quantity();
       cout<<"Annual sellings"<<price*quantity<<endl;
   }
int main()
{
  Samsung S1(10,5);
  S1.calculate();
}

 

Ето резултата от компилирането:
 


-------------- Build: Debug in klas (compiler: GNU GCC Compiler)---------------

mingw32-g++.exe -Wall -fexceptions -g  -c D:\cc\klas\main.cpp -o obj\Debug\main.o
mingw32-g++.exe  -o bin\Debug\klas.exe obj\Debug\main.o   
Output file is bin\Debug\klas.exe with size 1.50 MB
Process terminated with status 0 (0 minute(s), 1 second(s))
0 error(s), 0 warning(s) (0 minute(s), 1 second(s))
 

-------------- Run: Debug in klas (compiler: GNU GCC Compiler)---------------

Checking for existence: D:\cc\klas\bin\Debug\klas.exe
Executing: "C:\Program Files (x86)\CodeBlocks/cb_console_runner.exe" "D:\cc\klas\bin\Debug\klas.exe"  (in D:\cc\klas\.)
Process terminated with status -1073741510 (0 minute(s), 2 second(s))

 

още веднъж ОГРОМНО благодаря за положения труд , но за жалост така и не успях да подкарам твоят вариант , а останах да се мъча цяла вечер и в крайна сметка измъдрих това решение , но не знам как да изкарам резултата като едно цяло от TV , а не поотделно от Sony и Samsung.



 

#include "stdafx.h"
#include <iostream>
#include <string>
#include <cmath>
using namespace std;

class TV{
private:
    int sales;
    double price;
public:
};

class Sony :public TV{
private:
    int sales;
    double price;
public:
    void set(int, double);
    void print();
};

void Sony::set(int arg1, double arg2){
    sales = arg1;
    price = arg2;
}
void Sony::print(){
    cout << (price * sales) << endl;

}
class Samsung : public TV{
private:
    int sales;
    double price;
public:
    void set(int, double);
    void print();
};

void Samsung::set(int arg3, double arg4){
    sales = arg3;
    price = arg4;
}
void Samsung::print(){
    cout << (sales * price) << endl;

}
int main()
{
    Sony w1;
    w1.set(400, 30);
    w1.print();
    Samsung w2;
    w2.set(300, 40);
    w2.print();
}


Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Понеже нямам Visual Studio, дай какви грешки дава от втория ми вариант. Интересно ми е 

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход

  • Разглеждащи това в момента   0 потребители

    Няма регистрирани потребители разглеждащи тази страница.

  • Подобни теми

    • от Chris Panov
      Здравейте, 
      В момента пиша една програма, в която в една от функциите ми се налага да излезна по-рано при определено условие. Функцията връща string впрочем.
      Ето кодът:
       
      #include "stdafx.h" #include <iostream> #include <string> #include <sstream> #include <vector> #define CONSOLE_LOG(x) std::cout << x #define COMMAND_END command[0] #define COMMAND_SUM command[1] #define COMMAND_SUBTRACT command[2] #define COMMAND_CONCAT command[3] #define COMMAND_DISCARD command[4] #define COMMAND_DISPSEQ command[5] template <typename T> void top_back(std::vector<T>& v) {     v.erase(v.end() - 1); } std::string sum(std::string& x, std::string& y, std::vector<std::string>& vec) {     int xInt = atoi(x.c_str());     int yInt = atoi(y.c_str());     int result = xInt + yInt;     std::ostringstream os;     std::string strResult;     os << result;     strResult = os.str();     top_back(vec);     top_back(vec);     return strResult; } std::string subtract(std::string& x, std::string& y, std::vector<std::string>& vec) {     int xInt = atoi(x.c_str());     int yInt = atoi(y.c_str());     int result = xInt - yInt;     std::ostringstream os;     std::string strResult;     os << result;     strResult = os.str();     top_back(vec);     top_back(vec);     return strResult; } std::string concat(std::string& x, std::string& y, std::vector<std::string>& vec) {     if (atoi(x.c_str()) < 0)     {         return;     }     else {         std::string concatStr = y + x;         top_back(vec);         top_back(vec);         return concatStr;     } } void dispseq(std::vector<std::string>& vec) {     std::vector<std::string>::const_iterator iter;     for (iter = vec.begin(); iter != vec.end(); iter++)     {         std::cout << *iter << std::endl;     } } void enterSequence() {     std::vector<std::string> command =     {         "end",         "sum",         "subtract",         "concat",         "discard",         "dispseq"     };     std::vector<std::string> sequence;     std::string input;     std::string a;     std::string b;     do     {         std::cin >> input;         sequence.emplace_back(input);         if (input == COMMAND_END)         {              top_back(sequence);         }         if (input == COMMAND_SUM)         {             top_back(sequence);             a = sequence[sequence.size() - 1];             b = sequence[sequence.size() - 2];             sequence.emplace_back(sum(a, b, sequence));         }         if (input == COMMAND_SUBTRACT)         {             top_back(sequence);             a = sequence[sequence.size() - 1];             b = sequence[sequence.size() - 2];             sequence.emplace_back(subtract(a, b, sequence));         }         if (input == COMMAND_CONCAT)         {             top_back(sequence);             a = sequence[sequence.size() - 1];             b = sequence[sequence.size() - 2];             sequence.emplace_back(concat(a, b, sequence));         }         if (input == COMMAND_DISCARD)         {             top_back(sequence);             top_back(sequence);         }         if (input == COMMAND_DISPSEQ)         {             top_back(sequence);             dispseq(sequence);         }     } while (input != COMMAND_END); } int main() {     enterSequence();     std::cin.get();     std::cin.get();     return 0; } И ето проблемната функция:
       
      std::string concat(std::string& x, std::string& y, std::vector<std::string>& vec) {     if (atoi(x.c_str()) < 0)     {         return;     }     else {         std::string concatStr = y + x;         top_back(vec);         top_back(vec);         return concatStr;     } }  
      Както виждате ако стрингът x(който естествено го превръщам в интиджър) е по-малък от 0, теоритично трябва да излезна от функцията, и това е единственият начин за който се сетих, с return;, обаче пък компилаторът иска функцията да връща стойност, понеже е от тип стринг.
      Как да съчетая двете? - да връща стринг ако всичко е по план, и да излиза ако е по-малко от 0.
    • от Chris Panov
      Здравейте,
      В момента имам сериозен проблем със взимането на броят на елементи в даден вектор.
      vec.size(); и  
      sizeof(vec) / sizeof(vec[0]); не работят. Програмата те пита за брой ключове за даден тест, въвеждаш ключовете, после въвеждаш и отговорите, които са били дадени, и програмата ги сравнява и в зависимост от това колко верни отговори имаш ти дава точки. Ключовете и дадените отговори са тип char. ("A", "B", "C" etc.)
      Ето го и кода, като повечето съм го направил на коментар за да си тествам само функцията която извежда броя на елементите.
      #include "stdafx.h" #include <iostream> #include <vector> #define CONSOLE_LOG(x) std::cout << x; std::vector<char> keys = {'A', 'B', 'C', 'D', 'E'}; std::vector<char> studentAnswers; int n, points = 0; char key, answer; template <typename T> T vecSize(std::vector<T>& vec) { T size = vec.size(); return size; } /* template <typename T1> void enterKeys(std::vector<T1>& k) { CONSOLE_LOG("Please enter the number of keys: "); std::cin >> n; for (int i = 0, counter = 1; i < n, counter <= n; i++, counter++) { CONSOLE_LOG("Key " << counter << ": "); std::cin >> key; k.emplace_back(key); } } template <typename T2> void enterAnswers(std::vector<T2>& stAns) { for (int i = 0, counter = 1; i < n, counter <= n; i++, counter++) { CONSOLE_LOG("Answer " << counter << ": "); std::cin >> answer; stAns.emplace_back(answer); } } template <typename T3> void getGrade(std::vector<T3>& x, std::vector<T3>& y) { for (int i = 0; i < n; i++) { if (x[i] == y[i]) { points++; } } CONSOLE_LOG("Points: " << points); } */ int main() { /* enterKeys(keys); enterAnswers(studentAnswers); getGrade(studentAnswers, keys); */ std::cout << keys.size() << std::endl; std::cout << vecSize(keys) << std::endl; std::cin.get(); std::cin.get(); std::cin.get(); return 0; } Опитах всевъзможни начини, и пак не става. Идеята е да заместя n променливата със броя на елементите от вектора. Програмата върви по един и същи начин, защото все пак в n променливата запазваме големината на вектора, но бих искал да си го направя с функция.
      Както виждате на края на програмата си извеждам тестове. Първият, който си е по конвенционалният метод си работи сам по себе си, но пък във for цикъл не бачка.
      А вторият е функцията която съм направил. Проблемът е че ми извежда непознат символ - "�"
      Проблемът е че типът на елементите във вектора е char, защото като го направих с int тип си работеше както трябва.
      Бих бил изключително благодарен ако някой може да ме насочи и да ми бутне едно рамо :)
    • от Goshko
      Да се напише програма, която създава структура "Book" като имате следните полета - Title(заглавието на книгата), Автор(Author), Цена(Price) и уникален номер на книгата(ISBN-num). Да се ваведе цяло число n и след него n на брой данни за ученика. Да се изведе на монитора данните за книгата с цена по-висока от предварително зададена.
    • от Нели Николова
      Здравейте, имам две готови задачи, но не мога да ги компилирам. Дали може да ги проверите?
      зад.1 Да се състави програма, която да сортира едномерен масив от цели числа тип short  с име X състоящ се от 19 елемента. Сортирането да се извърши във възходящ ред чрез метода пряка селекция.
      #include <iostream>
      using namespace std;
      void sortAsc(short[]);
      int main() {
          short x[] = {123,13,23,31,1,55,36,17,8,9,10,11,6,12,14,15,16,35,184,19};
           
          sortAsc(x);
          
          return 0;
      }
      void sortAsc(short x[]){
          for(short i = 0; i < 19 ; i++) {
              for(short j = i; j < 19; j++) {
                  if(x[j] < x) {
                      swap(x[j], x);
                  }
              }    
          }
          
          for(int i=0; i<19; i++)
          {
              cout << x << endl;
          }
      }
      зад. 2 Да се състави програма,която реализира динамичен стек от реални числа тип float. Стекът да се преобразува в два нови стека, един стек P за четните и един стек O за нечетните числа от стек едно. Стековете да се извеждат на екрана.
      int main() {
          stack<float>numbers;
          stack<float>p;
          stack<float>o;
          
          for(short i = 1; i <= 200; i++) {
              numbers.push(i);
          }  
          
          numbers.push(200.64);
          numbers.push(203.34);
          
          while(!numbers.empty()) {
              int number = numbers.top();
              
              if (number % 2 == 0) {
                  p.push(number);
              } else {
                  o.push(number);
              }
              numbers.pop();
          }
          
          cout << "EVEN NUMBERS:" << endl;
          
          while(!p.empty()) {
              cout << p.top() << endl;
              p.pop();
          }
          
          cout << "ODD NUMBERS:" << endl;
          
          while(!o.empty()) {
              cout << o.top() << endl;
              o.pop();
          }
          
      }
      Много Ви благодаря :)
       
    • от Магдаленаг
      If smb has time to spare please I'd would be very greatful :))
      Дадена е следната класификация:
                                      __________             
                            _______|__________|
      Медицина-|   
                           |          __________             
                           |________|__________|                
      Класификацията да се продължи поне на още две нива. Да се състави йерархия от класове, отразяваща класификацията. Да се декларират съответните класове.
      Да се дефинира виртуална функция, която извежда характеристиките на обект от всеки клас на йерархията. Във функцията main да се изгради масив от обекти от произволни класове в йерархията. Да се разработи функция, която обхожда масива и извежда информация за признаците на включените в него обекти.
      Декларациите на всеки клас от йерархията да бъдат оформени в отделни заглавни (.h) файлове. Дефинициите на всеки клас и функцията “main” да бъдат оформени в отделни модули (.cpp файлове).  Във всички файлове, съдържащи дефинициите на класовете и функцията “main”, чрез директивата #include да се включат съответните заглавни файлове, съдържащи декларациите на класовете. Да се създаде проект, състоящ се от създадените модули.
      Обяснителната записка съдържа заданието, пълно описание на декларираните класове, алгоритми и листинги на модулите.
       
  • Дарение

×

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите условия за ползване.