| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 635 人关注过本帖
标题:这个代码问题出现在哪里? 总是出现提错?关于类的问题。
只看楼主 加入收藏
董世
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2012-11-26
结帖率:33.33%
收藏
已结贴  问题点数:20 回复次数:9 
这个代码问题出现在哪里? 总是出现提错?关于类的问题。
要求就是要有一个ifraction子类,然后继承Fraction里的东西,还要有一个convertF来把假分数换算成带分数。
程序代码:
#include "iostream"
using namespace std;
class Fraction
{
protected:
int fenzi;
int fenmu;
double valud;
public :
Fraction(int m,int n)
{
Set(m,n);
}
Fraction(int k)
{
Set(k,1);
}
Fraction()
{
Set(0,1);
}
double GetValue()
{
return valud;
}
void GetFraction(int *Fenzi, int *Fenmu)
{
*Fenzi = fenzi;
*Fenmu=fenmu;
}
void Set(int Fenzi,int Fenmu)
{
fenzi=Fenzi;
fenmu=Fenmu;
if (Fenmu)
valud=Fenzi/Fenmu;
}
static Fraction Addition(Fraction m,Fraction n)
{
int a,b,c,d;
m.GetFraction(&a,&b);
n.GetFraction(&c,&d);
Fraction result;
if(b==d)
result.Set(a+c,b);
else
result.Set(a*d+b*c,b*d);
return result;
}
static Fraction Subtraction(Fraction m,Fraction n)
{
int a,b,c,d;
m.GetFraction(&a,&b);
n.GetFraction(&c,&d);
Fraction result;
if(b==d)
result.Set(a-c,b);
else
result.Set(a*d-b*c,b*d);
return result;
}
static Fraction Multiplication(Fraction m,Fraction n)
{
int a,b,c,d;
m.GetFraction(&a,&b);
n.GetFraction(&c,&d);
Fraction result;
result.Set(a*c,b*d);
return result;
}
static Fraction Division(Fraction m,Fraction n)
{
int a,b,c,d;
m.GetFraction(&a,&b);
n.GetFraction(&c,&d);
Fraction result;
result.Set(a*d+b*c,b*d);
return result;
}
};
class iFraction:public Fraction
{
int number;
public:
iFraction()
{
number=0;fenzi=0;fenmu=1;
}
iFraction(int Fenzi,int Fenmu,int Number)
{
fenzi=Fenzi;
fenmu=Fenmu;
number=Number;
}
int GetNumber()
{
return number;
}
void SetNumer(int n)
{
number=n;
}
void Show()
{
if (number)
cout<<number<<"#<"<<fenzi<<'/'<<fenmu<<'>'<<endl;
else
cout<<"<"<<fenzi<<'/'<<fenmu<<'>'<<endl;
}
};
iFraction convertF(Fraction f)
{
int a,b;
f.GetFraction(&a,&b);
iFraction i;
i.SetNumer(a/b);
i.Set(a-i.GetNumber()*b,b);
return i;
}
int main()
{
Fraction test1(11,3);
Fraction test2(6,3);
iFraction test3;
test3=convertF(Fraction::Addition(test1,test2));
test3.Show();
}
搜索更多相关主题的帖子: 东西 public 带分数 假分数 
2013-05-03 12:23
董世
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2012-11-26
收藏
得分:0 
求大神指点下,怎么没人回复我啊
2013-05-03 12:58
笑傲
Rank: 8Rank: 8
来 自:迪拜
等 级:蝙蝠侠
威 望:5
帖 子:223
专家分:856
注 册:2013-3-9
收藏
得分:7 
太长了,你说一下哪错了吧,没耐心看下去

练就一身本领,只为笑傲江湖!
2013-05-03 13:57
天使梦魔
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:37
帖 子:564
专家分:2754
注 册:2007-8-29
收藏
得分:7 
5#<2/3>
这是输出结果?
如果是编译有问题注意一下你编译器的标准,随便把你代码标准弄一下
比如编译器提供的头文件用<>符号
2013-05-03 16:45
董世
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2012-11-26
收藏
得分:0 
回复 4楼 天使梦魔
对,我编译的就是这个结果,不知道为什么
2013-05-03 20:32
董世
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2012-11-26
收藏
得分:0 
回复 3楼 笑傲
我编译之后老师运行出现乱码
2013-05-03 20:57
董世
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2012-11-26
收藏
得分:0 
程序代码:
#include "iostream"
using namespace std;
class Fraction
{
protected://保护成员,使得iFraction可以从Fraction继承
int fenzi;//分子
int fenmu;//分母
double valud;//计算的结果
public :
Fraction(int m,int n)//构造函数
{
Set(m,n);
}
Fraction(int k)
{
Set(k,1);
}
Fraction()
{
Set(0,1);
}
double GetValue()//获得分式的value
{
return valud;
}
void GetFraction(int *Fenzi, int *Fenmu)//间接获得分子,分母的值
{
*Fenzi = fenzi;
*Fenmu=fenmu;
}
void Set(int Fenzi,int Fenmu)//设置分子分母的值
{
fenzi=Fenzi;
fenmu=Fenmu;
if (Fenmu)//如果分母不为0,计算value的值
valud=Fenzi/Fenmu;
}
static Fraction Addition(Fraction m,Fraction n)//静态成员函数,加法
{
int a,b,c,d;
m.GetFraction(&a,&b);
n.GetFraction(&c,&d);
Fraction result;
if(b==d)
result.Set(a+c,b);
else
result.Set(a*d+b*c,b*d);
return result;
}
static Fraction Subtraction(Fraction m,Fraction n)//静态成员函数,减法
{
int a,b,c,d;
m.GetFraction(&a,&b);
n.GetFraction(&c,&d);
Fraction result;
if(b==d)
result.Set(a-c,b);
else
result.Set(a*d-b*c,b*d);
return result;
}
static Fraction Multiplication(Fraction m,Fraction n)//静态成员函数,乘法
{
int a,b,c,d;
m.GetFraction(&a,&b);
n.GetFraction(&c,&d);
Fraction result;
result.Set(a*c,b*d);
return result;
}
static Fraction Division(Fraction m,Fraction n)//静态成员函数,除法
{
int a,b,c,d;
m.GetFraction(&a,&b);
n.GetFraction(&c,&d);
Fraction result;
result.Set(a*d+b*c,b*d);
return result;
}
};
class iFraction:public Fraction//从Fraction类公有的方式继承
{
int number;//私有成员,整数部分
public:
iFraction()//iFraction的构造函数
{
number=0;fenzi=0;fenmu=1;
}
iFraction(int Fenzi,int Fenmu,int Number)/构造函数
{
fenzi=Fenzi;
fenmu=Fenmu;
number=Number;
}
int GetNumber()
{
return number;
}
void SetNumer(int n)//设置带分数的整数部
{
number=n;
}
void Show()//带分数的显示
{
if (number)
cout<<number<<"#<"<<fenzi<<'/'<<fenmu<<'>'<<endl;
else
cout<<"<"<<fenzi<<'/'<<fenmu<<'>'<<endl;
}
};
iFraction convertF(Fraction f)//外部函数,讲Fraction转换为Fraction
{
int a,b;
f.GetFraction(&a,&b);
iFraction i;
i.SetNumer(a/b);
i.Set(a-i.GetNumber()*b,b);
return i;
}
int main()//主函数,用来测试
{
Fraction test1(11,3);
Fraction test2(6,3);
iFraction test3;
test3=convertF(Fraction::Addition(test1,test2));
test3.Show();
}



这个是一个程序用到分类,可以输入两个数分子和分母,能把假分数换为带分数,还能让两个分数加减乘除
2013-05-03 20:59
董世
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2012-11-26
收藏
得分:0 
能不能有个大神出来下指出我哪里错了??
2013-05-03 20:59
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:7 
编译也没问题啊!你能不能把问题说的明白点

Maybe
2013-05-03 22:35
董世
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2012-11-26
收藏
得分:0 
回复 9楼 邓士林
编译是没问题,但是不能运行啊,运行后出现结果是5#(3/2) 没有任何操作
2013-05-03 22:39
快速回复:这个代码问题出现在哪里? 总是出现提错?关于类的问题。
数据加载中...
 
   



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

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