測驗達人

susan
博一上
54270次
司法特考錄..
高二下
53569次
魯筱筱
研二下
44516次
Cyril..
研二上
38219次
(+17次)
錄事考試
小六下
25910次

資訊管理 程式設計 50%題庫

【非選題】

六、請使用.NET 或 Java 程式語言,利用物件導向程式設計的方法作答(註明所使用的程式語言)。 (一)設計具有分數四則運算功能的 Rational 類別,並符合下列規則。(15 分)

【題組】 (1)使用整數變數來表示類別的 private 實體變數 numerator(分子)及 denominator(分母)。

#17111
編輯私有筆記
1F
已刪除 (2015/12/02 15:52):
使用 java 程式語言撰寫  class Rational{ private int numerator,denominator; int temp; int s=0,x=0,y=0,t=0,f=0; Rational(){ //無參數建構子 numerator=1; denominator=1; } Rational(int n,int d){ //有參數建構子 temp=getGCD(n,d); numerator=n/temp; denominator=d/temp; } void adder(int a,int b,int c,int d){ // + s=b*d; x=a*d; y=c*b; t=x+y; getEasy(t,s); } void substracter(int a,int b,int c,int d){ // - s=b*d; x=a*d; y=c*b; t=x-y; if(t<0){ t=t*(-1); f=1; } if(t==0){ numerator=0; denominator=s; }else{ getEasy(t,s); } } void multipler(int a,int b,int c,int d){ // * t=a*c; s=b*d; getEasy(t,s); } void division(int a,int b,int c,int d){ if(b==0 || d==0){ numerator=0; denominator=0; }else{ s=b*c; t=a*d; getEasy(t,s); } } int getGCD(int n,int d){ //找出 GCD, 以方便化簡 int tmp=0; if(n>d){ tmp=n; n=d; d=tmp; } for(int i=n;i>=1;i--){ if(n%i==0 && d%i==0){ tmp=i; break; } } return tmp; } void getEasy(int n,int d) { if(n==0){ numerator=0; denominator=d; }else{ int t=getGCD(n,d); numerator=n/t; denominator=d/t; } } String getAnswer(){ String q=""; if(numerator==1 && denominator==1){ q="1"; }else if(denominator==0){ q="分母不得為 0"; }else{ if(f==1){ q="-"; } q+=numerator+"/"+denominator; } return q; } } (二)利用設計的類別計算 1/6+1/3 並將結果輸出 1.呼叫 adder(1,6,1,3) 2.開始運算:將變數 s 設成 6*3,變數 x 設成 1*3,變數 y 設成 1*6,變數 t 等於變數 x 加 上變數 y,之後呼叫 getEasy(t,s) 3. getEasy(t,s)是用來將算出來的結果進行化簡用的 4.最後只要呼叫 getAnswer()就可以將結果印出,本題結果為 1/2
2F