Страница 1 из 1

Виртуальный класс

Добавлено: 25 июн 2013, 04:20
mr_is_Ds

Код: Выделить всё

#include<iostream>
using namespace std;

// одля начала объявим классы
class office{ //собственно класс и его имя, Базовый класс
protected: //доступно ток для наследования что и будем делать дальше, ДА и протектед паблик и так далее ->
//это спецификаторы
//объявим переменные целого типа int
    int dni;//рабочие дни
    int chasi;//соответственно рабочие часы
    int summa_za_dni;//сколько денег в день
    int oplata_za_chasi;// оплата в час
    int procent_ot_prodaj;//процент от продаж
    int summa_prodaj;//сумма продаж
};



class pochasovaj :p ublic office{ //класс для рачёта почасовой оплаты, тут у нас public наследование, тогда public члены базового класса ->
//доступны как public члены производного класса, protected члены базового класса доступны как protected члены производного класса.
public://доступно дрим функциям и объектам программы
    pochasovaj(int h, int r){chasi=h; oplata_za_chasi=r;}//в классе объявляем переменные и присваем им значания часов оплат и прочей хрени
    int dengi_calc(){
        int dengi=chasi*oplata_za_chasi; //перемножаем колличсетво часов на оплату в час
        return dengi;}
};


class shtatnij :p ublic office{ //класс для штатного служающего, про наследование суть та же что и в классе сверху
public://доступно дрим функциям и объектам программы
    shtatnij(int r, int d){summa_za_dni=r; dni=d;}//в классе объявляем переменные и присваем им значания часов оплат и прочей хрени
    int dengi_calc(){
        int dengi=summa_za_dni*dni;//деньги в день на день
        return dengi;}

};


class percent_ot_prodaj :p ublic office{ //класс для расчёта процента от продаж
public://доступно дрим функциям и объектам программы
    percent_ot_prodaj(int p, int s){procent_ot_prodaj=p; summa_prodaj=s;}//в классе объявляем переменные и присваем им значания часов оплат и прочей хрени
    int dengi_calc(){
        int dengi=(procent_ot_prodaj*summa_prodaj)/100; //процент от продаж умножаем на сумму и потом делим на сто
        return dengi;}
};
//и кашевар
int main()
{setlocale(0,"rus");
int n;
cout<<"\t\t\tЖмякай"<<'\n';
cout<<"--------------------------------------------------------"<<'\n';
cout<<"Для расчёта почасовой оплаты нажмите клавишу 1 "<<'\n';
cout<<"Для расчёта оплаты штатного служающего нажмите клавишу 2 "<<'\n';
cout<<"Для расчёта процентной оплаты нажмите клавишу 3 "<<'\n';
cout<<"--------------------------------------------------------"<<'\n';
cin>>n;
cout<<"--------------------------------------------------------"<<'\n';
  if(n==1){
  int h,r;
  cout<<"Введите количиство рабочих часов "<<'\n';
  cin>>h;cout<<"часа(ов)"<<'\n';
  cout<<"--------------------------------------------------------"<<'\n';
  cout<<"Введите оплату за час "<<'\n';
  cin>>r;cout<<"рубля(ей)"<<'\n';
  cout<<"--------------------------------------------------------"<<'\n';
  pochasovaj f(h,r);
  cout<<"\t\tЗарплата "<<f.dengi_calc()<<" рубля(ей)"<<'\n';}
    else if(n==2){
    int r,d;
    cout<<"Введите сумму за день "<<'\n';
    cin>>r;cout<<"рубля(ей)"<<'\n';
    cout<<"--------------------------------------------------------"<<'\n';
    cout<<"Введите количиство рабочих дней "<<'\n';
    cin>>d;cout<<"лня(ей)"<<'\n';
    cout<<"--------------------------------------------------------"<<'\n';
    shtatnij f(r,d);
    cout<<"\t\tЗарплата "<<f.dengi_calc()<<" рубля(ей "<<'\n';}
      else if(n==3){
      int p,s;
      cout<<"Введите процент от продаж "<<'\n';
      cin>>p;cout<<"%"<<'\n';
      cout<<"--------------------------------------------------------"<<'\n';
      cout<<"Введите сумму продаж "<<'\n';
      cin>>s;cout<<"рубля(ей)"<<'\n';
      cout<<"--------------------------------------------------------"<<'\n';
      percent_ot_prodaj f(p,s);
      cout<<"\t\tЗарплата "<<f.dengi_calc()<<" рубля(ей"<<'\n';}

cin.get();
cin.get();

    return 0;
}
ПОМОГИТЕ СОЗДАТЬ ВИРТУАЛЬНЫЙ КЛАСС

Re: Виртуальный класс

Добавлено: 29 июл 2013, 11:32
Romeo
Понятие виртуального класса в языке С++, ровно как и в других языках, которые мне известны, не существует. Предлагаю уточнить задание.

Re: Виртуальный класс

Добавлено: 30 июл 2013, 12:51
rrrFer
Romeo
наверняка имеется ввиду "абстрактный класс"

но по коду все очень криво. Там ненужно (или неправильно вкручено) наследование.

когда ты создашь экземпляр класса pochasovaj, память выделится под все эти поля:

Код: Выделить всё

int dni;//рабочие дни
    int chasi;//соответственно рабочие часы
    int summa_za_dni;//сколько денег в день
    int oplata_za_chasi;// оплата в час
    int procent_ot_prodaj;//процент от продаж
    int summa_prodaj;//сумма продаж
Фактически используются только эти поля: chasi, oplata_za_chasi - зачем ты расходуешь память впустую?
Поля нигде не инициализируются, странно это.

Re: Виртуальный класс

Добавлено: 30 июл 2013, 13:09
Romeo
Понятно, что криво всё.

Судя по тому, что человек регнулся 25-го июня и в тот же день оставил своё единственное сообщение, он сюда уже не заглянет, так что можно даже не напрягаться пытаясь угадать, что именно он хотел от нас :)

Re: Виртуальный класс

Добавлено: 30 июл 2013, 13:59
somewhere
человек регнулся и в тот же день оставил своё единственное сообщение, он сюда уже не заглянет
Что-то дофига стало таких случаев. Запостил и ушел. Нужно какой нибудь механизм валидации придумать, а то иногда время тратишь - и все впустую.

Re: Виртуальный класс

Добавлено: 30 июл 2013, 17:55
rrrFer
Romeo

Да я видел что ты снекропостил, новых тем чето нету, я тоже решил старую поддержать )

Re: Виртуальный класс

Добавлено: 30 июл 2013, 18:23
Romeo
somewhere писал(а):Что-то дофига стало таких случаев. Запостил и ушел. Нужно какой нибудь механизм валидации придумать, а то иногда время тратишь - и все впустую.
Ну таких случаев до зимы уже не будет, сам же понимаешь. У нас всегда наблюдаеться летнее и зимнее обострение - время сессий как-никак :)
rrrFer писал(а): Romeo
Да я видел что ты снекропостил, новых тем чето нету, я тоже решил старую поддержать )
Значит не одному мне тоскливо без этих наивных студиоусов :)

Re: Виртуальный класс

Добавлено: 13 авг 2013, 14:24
strsdenis
http://wm-scripts.ru
Спешите скачать новые скрипты)

Re: Виртуальный класс

Добавлено: 13 авг 2013, 14:25
strsdenis
http://wm-scripts.ru
Поспешите скачать новые скрипты!