| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 893 人关注过本帖
标题:修改个小程序,跪求高手帮忙,感激不尽!!!!!!!!!!!!!!!!!!!!!!!!11
只看楼主 加入收藏
sndgvmtd
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-9-8
收藏
 问题点数:0 回复次数:6 
修改个小程序,跪求高手帮忙,感激不尽!!!!!!!!!!!!!!!!!!!!!!!!11
可能是算法错误,结果老不正确,希望详细解释
#include<iostream.h>
#include<stdlib.h>
class TBox
{
float l,w,c,s;
void SRSJ()
{
cout<<"输入矩形长和宽:\n";
cin>>l>>w;
}
public:
double JXZC()
{
cout<<"c="<<(l+w)*2<<'\n';
return(c);
}
double JXMJ()
{
cout<<"s="<<l*w<<'\n';
return(s);
}
};
class TCube:public TBox
{
double l,w,h,v,q;
public:
void SRSJ()
{
cout<<"输入立方体的长宽高:\n";
cin>>l>>w>>h;
}
void JXTJ()
{
cout<<"立方体体积为:\n";
cout<<"v="<<JXMJ()*h<<'\n';
}
void JXBMJ()
{
cout<<"立方体表面积为:\n";
cout<<"q="<<JXZC()*h+2*JXMJ()<<'\n';
}
};
void main()
{
int m;
TCube a;
while(m)
{
cout<<"1 立方体体积\n"<<"2 立方体表面积\n"<<"3 退出该程序\n";
cin>>m;
if(m==1)
{
a.SRSJ();
a.JXTJ();
}
if(m==2)
{
a.SRSJ();
a.JXBMJ();
}
if(m==3)
exit(0);
}
}


运行结果

1 立方体体积
2 立方体表面积
3 退出该程序
1
输入立方体的长宽高:
2 2 2
立方体体积为:
s=1.15292e+016
v=-2.14748e+008
1 立方体体积
2 立方体表面积
3 退出该程序
2
输入立方体的长宽高:
2 2 2
立方体表面积为:
c=-4.29497e+008
s=1.15292e+016
q=-4.29497e+008
1 立方体体积
2 立方体表面积
3 退出该程序
3
Press any key to continue
搜索更多相关主题的帖子: 感激不尽 
2008-09-08 20:41
梦想3366
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-9-9
收藏
得分:0 
成员函数JXZC() 、JXMJ() 中的C、S并未得到赋值。
2008-09-09 16:52
蓝带
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-6-12
收藏
得分:0 
构造函数没有
2008-09-09 22:42
origin1987
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-9-10
收藏
得分:0 
你在TBox、TCube中定义了同名的l、w变量,而后来又把它们混淆在一起,当成同一个变量使用了。其实它们是不同的。也就是说,在JXTJ()函数中调用了JXMJ(),根据同名变量作用域规则,JXMJ()使用的是JXMJ()中的l,w,而不是JXTJ()中的l,w,于是JXTJ()中的l,w被屏蔽掉,导致输入的l,w不起作用,所以得出来的结果是随机的数字。
2008-09-10 11:21
origin1987
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-9-10
收藏
得分:0 
其实这道题很简单的,完全没必要用到继承。
#include<iostream.h>
#include<stdlib.h>

class TCube
{
    double l,w,h,v,q;
public:
    void SRSJ()
    {
        cout<<"&Ecirc;&auml;&Egrave;&euml;&Aacute;&cent;·&frac12;&Igrave;&aring;&micro;&Auml;&sup3;¤&iquest;í&cedil;&szlig;:\n";
        cin>>l>>w>>h;
    }
    void JXTJ()
    {
        cout<<"&Aacute;&cent;·&frac12;&Igrave;&aring;&Igrave;&aring;&raquo;&yacute;&Icirc;&ordf;:\n";
        cout<<"v="<<l*w*h<<'\n';
    }
    void JXBMJ()
    {
        cout<<"&Aacute;&cent;·&frac12;&Igrave;&aring;±í&Atilde;&aelig;&raquo;&yacute;&Icirc;&ordf;:\n";
        cout<<"q="<<(l+w)*2*h+2*l*w<<'\n';
    }
};

void main()
{
    int m;
    TCube a;
    while(m)
    {
        cout<<"1 &Aacute;&cent;·&frac12;&Igrave;&aring;&Igrave;&aring;&raquo;&yacute;\n"<<"2 &Aacute;&cent;·&frac12;&Igrave;&aring;±í&Atilde;&aelig;&raquo;&yacute;\n"<<"3 &Iacute;&Euml;&sup3;&ouml;&cedil;&Atilde;&sup3;&Igrave;&ETH;ò\n";
        cin>>m;
        if(m==1)
        {
            a.SRSJ();
            a.JXTJ();
        }
        if(m==2)
        {
            a.SRSJ();
            a.JXBMJ();
        }
        if(m==3)
            exit(0);
    }
}
这样就行了。
2008-09-10 11:24
origin1987
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-9-10
收藏
得分:0 
希望你加强基础知识!
2008-09-10 11:26
lyd253261362
Rank: 1
等 级:新手上路
帖 子:91
专家分:2
注 册:2007-4-26
收藏
得分:0 
可以通过调试的代码
#include "stdafx.h"
#include<iostream.h>
#include<stdlib.h>
class TBox
{
private:
    float l,w,c,s;
    void SRSJ()
    {
        cout<<"输入矩形长和宽:\n";
        cin>>l>>w;
        cout<<"tbox l is =="<<l<<endl;
        cout<<"tbox w is =="<<w<<endl;
    }
public:
    //用构造函数对变量赋值
    TBox(float b_l,float b_w)
    {
        l=b_l;
        w=b_w;
    }
    double JXZC()
    {   
        c=(l+w)*2;
        cout<<"c="<<(l+w)*2<<'\n';
        return(c);
    }
    double JXMJ()
    {
        s=l*w;
        cout<<"s="<<s<<'\n';
        return s;
    
    }
};
class TCube:public TBox
{
private:
    double l,w,h,v,q;
public:
    //构造函数对变量进行赋值。
    TCube(double c_l,double c_w,double c_h):TBox((float)c_l,(float)c_w)
    {
       h=c_h;
    }
    void SRSJ()
    {
        cout<<"输入立方体的长宽高:\n";
        cin>>l>>w>>h;
        cout<<"tcute l is =="<<l<<endl;
        cout<<"tcute w is =="<<w<<endl;
        cout<<"tcute h is =="<<h<<endl;
    }
    void JXTJ()
    {
        cout<<"立方体体积为:\n";
        cout<<"h======="<<h<<endl;
        cout<<"JXMJ()===="<<JXMJ()<<endl;
        cout<<"v="<<JXMJ()*h<<endl;
    }
    void JXBMJ()
    {
        cout<<"立方体表面积为:\n";
        cout<<"JXZC()======"<<JXZC()<<endl;
        cout<<"q="<<JXZC()*h+2*JXMJ()<<'\n';
    }
};
void main()
{
    int m;
    double l,w,h;
    while(m)
    {
        cout<<"1 立方体体积\n"<<"2 立方体表面积\n"<<"3 退出该程序\n";
        cin>>m;
        if(m==1)
        {
            cout<<"输入立方体的长宽高:\n";
            cin>>l>>w>>h;
            cout<<"tcute l is =="<<l<<endl;
            cout<<"tcute w is =="<<w<<endl;
            cout<<"tcute h is =="<<h<<endl;
            TCube a(l,w,h);
            a.JXTJ();
        }
        if(m==2)
        {  
            cout<<"输入立方体的长宽高:\n";
            cin>>l>>w>>h;
            cout<<"tcute l is =="<<l<<endl;
            cout<<"tcute w is =="<<w<<endl;
            cout<<"tcute h is =="<<h<<endl;
            TCube a(l,w,h);
            a.JXBMJ();
        }
        if(m==3)
        {    
            exit(0);
        }
    }
}
2008-09-10 12:54
快速回复:修改个小程序,跪求高手帮忙,感激不尽!!!!!!!!!!!!!!!!!!!!!!!!11
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021626 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved