注册 登录
编程论坛 C++教室

大家帮忙看下这段代码算不算用了类的思想呢

onlyzm 发布于 2013-03-31 20:15, 769 次点击
#include<iostream.h>
class CPetrol
{
private:
    double price,gross,quantity;
public:
    void Setinfo(double p,double g)
    {
        double sum;
        quantity=0;
        price=p;
        gross=g;
        sum=price*gross;
        quantity+=sum;
    }
    void display( )
    {
        cout<<"今天总收入为"<<quantity<<endl;
        
        
    }
};
void main()
{
    CPetrol gas;
    int j,a,b,c;
    char k;
    k='y';
    for(;k=='y';)
    {
        cout<<"请选择汽油品种:"<<endl;
        cout<<"1.  90号汽油"<<endl;
        cout<<"2.  93号汽油"<<endl;
        cout<<"3.  98号汽油"<<endl;
        cout<<"4.  显示今天的总收入"<<endl;
        cin>>j;
        switch(j)
        {
        case 1:
            {
                cout<<"输入90号汽油今天的加油量:"<<endl;
                cin>>a;
                gas.Setinfo(3.96,a);
            };break;
        case 2:
            {
                cout<<"输入93号汽油今天的加油量:"<<endl;
                cin>>b;
                gas.Setinfo(4.05,b);
            };break;
        case 3:
            {
                cout<<"输入90号汽油今天的加油量:"<<endl;
                cin>>c;
                gas.Setinfo(4.38,c);
            };break;
        case 4:    gas.display( );
        }
        cout<<"要继续吗<y/n>"<<endl;
        cin>>k;
    }
   
}
7 回复
#2
onlyzm2013-03-31 20:19
帮忙顶啊,大神求指教啊,刚刚学c++有点闹不清这些思想
#3
peach54602013-03-31 21:09
面向过程的伪面向对象

不是说,把以前C里面的函数,用个类包一下就算面向对象了...


[ 本帖最后由 peach5460 于 2013-3-31 21:12 编辑 ]
#4
wl12594724212013-03-31 21:19
你只是用刀了类的定义,但绝不是类的思想。面向对象的最大好处就是代码重用和数据的保护。
#5
TonyDeng2013-03-31 22:04
不算
#6
peach54602013-03-31 22:33
妈的,我的codelite崩溃了,搞了一个多小时了...整不好了
要不然我给你写一个
#7
好聚好散2013-03-31 22:41
咋没分哦
#8
peach54602013-04-01 19:58
程序代码:
#include<iostream>
using namespace std;

class IPetrol
{
public:
    IPetrol() {}
    virtual ~IPetrol() {}

    virtual double setinfo(double g) = 0;

protected:
    double price;
};

class CPetrol90 : public IPetrol
{
public:
    CPetrol90() { price = 3.96; };
    virtual ~CPetrol90() {}

    double setinfo(double g) { return g * price; }
};

class CPetrol93 : public IPetrol
{
public:
    CPetrol93() { price = 4.05; };
    virtual ~CPetrol93() {}

    double setinfo(double g) { return g * price; }
};

class CPetrol98 : public IPetrol
{
public:
    CPetrol98() { price = 4.38; };
    virtual ~CPetrol98() {}

    double setinfo(double g) { return g * price; }
};

int main()
{
    int j,a,b,c;
    char k;
    k='y';
    double sum = 0.0f;
    for(;k=='y';)
    {
        cout<<"请选择汽油品种:"<<endl;
        cout<<"1.  90号汽油"<<endl;
        cout<<"2.  93号汽油"<<endl;
        cout<<"3.  98号汽油"<<endl;
        cout<<"4.  显示今天的总收入"<<endl;
        cin>>j;
        switch(j)
        {
        case 1:
            {
                cout<<"输入90号汽油今天的加油量:"<<endl;
                cin>>a;
                CPetrol90 gas;
                sum += gas.setinfo(a);
            };break;
        case 2:
            {
                cout<<"输入93号汽油今天的加油量:"<<endl;
                cin>>b;
                CPetrol93 gas;
                sum += gas.setinfo(b);
            };break;
        case 3:
            {
                cout<<"输入98号汽油今天的加油量:"<<endl;
                cin>>c;
                CPetrol98 gas;
                sum += gas.setinfo(c);
            };break;
        case 4:    cout << "今天总油" << sum << endl;
        }
        cout<<"要继续吗<y/n>"<<endl;
        cin>>k;
    }
}


差不多是这个样子...
抛砖引玉,还有很多可改的地方
1