我有一道题不会做,谁能帮帮我(100分)

  • 主题发起人 主题发起人 echolike
  • 开始时间 开始时间
E

echolike

Unregistered / Unconfirmed
GUEST, unregistred user!
这是在继承和多态这章后的一道习题:我不会,很着急,谁能帮帮我
创建一个Fraction类执行分数运算。要求如下:
1。用整形数表示类的 private成员变量:f1 和f2
2。提供构造方法,将分子存入f1 ,分母存入f2
3。提供两个分数相加的运算方法,结果分别存入f1 和f2
4。提供两个分数相减的运算方法,结果分别存入f1 和f2
5。提供两个分数相乘的运算方法,结果分别存入f1 和f2
6。提供两个分数相除的运算方法,结果分别存入f1 和f2
7。以a/b的形式打印Fraction数
8。以浮点数的形式打印Fraction数
9。编写主控程序运行分数运算
 
type
TFraction =Class
private
f1,f2:integer;
// f1/f2;
public
constructor Create(a:integer;b:integer);
procedure add(a:integer;b:integer);//加
procedure sub(a:integer;b:integer);
//减
procedure Mul(a:integer;b:integer);
//乘
procedure Fdiv(a:integer;b:integer);
//除
function printString:string;
function PrintValue:Real;
end;

implementation
procedure TFraction.add(a, b: integer);
begin
f1:=f1*b+f2*a;
f2:=f2*b;
end;

constructor TFraction.Create(a, b: integer);
begin
f1:=a;
f2:=b;
end;

procedure TFraction.Fdiv(a, b: integer);
begin
f1:=f1 * b;
f2:=f2 * a;
end;

procedure TFraction.Mul(a, b: integer);
begin
f1:=f1*a;
f2:=f2*b;
end;

function TFraction.printString;
begin
result:=inttostr(f1)+'/'+Inttostr(f2);
end;

function TFraction.PrintValue: Real;
begin
result:=f1/f2;
end;

procedure TFraction.sub(a, b: integer);
begin
f1:=f1*a-f2*b;
f2:=f2*b;
end;

/// 主程序:
procedure TForm1.btn1Click(Sender: TObject);
var
f:TFraction;
begin
f:=TFraction.Create(3,4);
f.add(4,3);
Mmo1.Lines.Add (f.printString);
Mmo1.Lines.Add (FloatToStr(F.PrintValue));
end;
 
再加上公约数, 零分母的处理, 就完美了
 
打出题目的老师PP:
1。用整形数表示类的 private成员变量:f1 和f2
6。提供两个分数相除的运算方法,结果分别存入f1 和f2
做不到吧?[:D]
 
我想要一个java 中的程序
java application
能不能详细些,准确些,我是一个新手
 
怎么没有人再给我回答问题呢
我还没给分呢
帮帮忙么!![:D]
 
/*
//下記のソースを名前「TFraction.java」つけて、保存してください。
//不过只生成一个加函数,因为要传入分数作为参数,所以用字符串的形式进入。
//实际调用的时候可以这样
先调用add函数,然后再用GetF1和GetF2取值,如果GetF2返回0,就是有错误。
*/
public class TFraction
{
int f1;
int f2;
public TFraction(int a,int b){
f1=a;
f2=b;
}
//Get
public int GetF1(){
return f1;
}
public int GetF2(){
return f2;
}
//Set
public void SetF1(int a){
f1=a;
}
public void SetF2(int a){
f2=a;
}
/***
** Get Sum for two value, Input with String Format as [X/X,X/X]
* Has Error: Set f2=0
*/
public void add(String a,String b){
int son1,son2,realSon;
int fat1,fat2,realFat;
String sSon1,sSon2;
String sFat1,sFat2;
int intIndex;
try{
// the first Value
sSon1="";
sFat1="";
for (int i=0;i<a.length() ;i++ )
{
if(a.charAt(i)!='/'){
sSon1=sSon1+a.charAt(i);
}else
{
sFat1=a.substring(i+1,a.length());
}
}
if (sSon1.compareTo("")==0 || sFat1.compareTo("")==0)
{// if no son or no father, set f2 to 0 ;
SetF2(0);
return;
}
son1=Integer.parseInt(sSon1);
fat1=Integer.parseInt(sFat1);
if(fat1==0){
SetF2(0);
return;
}
// the Sencond Value
sSon2="";
sFat2="";
for (int i=0;i<b.length() ;i++ )
{
if(b.charAt(i)!='/'){
sSon2=sSon2+b.charAt(i);
}else
{
sFat2=b.substring(i+1,b.length());
}
}
if (sSon2.compareTo("")==0 || sFat2.compareTo("")==0)
{// if no son or no father, set f2 to 0 ;
SetF2(0);
return;
}
son2=Integer.parseInt(sSon2);
fat2=Integer.parseInt(sFat2);
if(fat2==0){
SetF2(0);
return;
}
// OK , Now begin
to deal Add Function
realFat=fat1*fat2;
realSon=fat1*son2+son1*fat2;
// 再加上公?数
//
//Set Return Value
SetF1(realSon);
SetF2(realFat);
return;
}catch(Exception e){
System.out.println("Error:"+e);
SetF2(0);
return;
}
}
/***
** //With the Same way, u can get other functions.
*
*/
public void del(String a,String b){
//
}
/***
** //With the Same way, u can get other functions.
*
*/
public void div(String a,String b){
//
}
/***
** //With the Same way, u can get other functions.
*
*/
public void plus(String a,String b){
//
}
}
 
后退
顶部