青島理工大學(xué)-實(shí)驗(yàn)2:類的封裝性和繼承性設(shè)計(jì)_第1頁
青島理工大學(xué)-實(shí)驗(yàn)2:類的封裝性和繼承性設(shè)計(jì)_第2頁
青島理工大學(xué)-實(shí)驗(yàn)2:類的封裝性和繼承性設(shè)計(jì)_第3頁
青島理工大學(xué)-實(shí)驗(yàn)2:類的封裝性和繼承性設(shè)計(jì)_第4頁
青島理工大學(xué)-實(shí)驗(yàn)2:類的封裝性和繼承性設(shè)計(jì)_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、課程實(shí)驗(yàn)報(bào)告課程 名稱java應(yīng)用技術(shù)班級計(jì)算112實(shí)驗(yàn)日期2013.9.26姓名學(xué)號實(shí)驗(yàn)成績實(shí)驗(yàn) 名稱實(shí)驗(yàn)2:類的封裝性和繼承性設(shè)計(jì)實(shí)驗(yàn)?zāi)康募耙?. 掌握java類的概念;2. 熟練運(yùn)用類的屬性和方法。實(shí) 驗(yàn) 環(huán) 境操作系統(tǒng):windowside: ecl ipse實(shí)驗(yàn)內(nèi)容(1)有理數(shù)四則運(yùn)算。編寫一個java應(yīng)用程序,實(shí)現(xiàn)兩個有理數(shù)的四則運(yùn)算,要求有理數(shù)用分子和分母的形 式表示。結(jié)果要求用“分子/分母”的形式表示。(2)表演最終得分。聲明一個average接口,英中約定求平均值的方法(參數(shù)為一個數(shù)組);聲明first>second類實(shí)現(xiàn)average接口,分別給出求平均值的方法實(shí)現(xiàn)

2、。a. 類first +的功能為全部數(shù)值相加后求平均值。b. 類second中的功能為去掉一個最高分和一個最低分,再將總分求平均值。調(diào)試過程及實(shí)驗(yàn)結(jié)果1、規(guī)定數(shù)據(jù)的輸入格式必須在運(yùn)算符的兩邊加一個空格。解題思想:定義一個類:包含分子,分母屬性,和四則運(yùn)算的方法還有一個私有的方 法gcd(int, int):求兩個整數(shù)的最大公約數(shù)。然后對輸入數(shù)據(jù)進(jìn)行處理分離出兩個操 作數(shù),通過構(gòu)造器形成該類的對象,傳入類方法。請輸入兩個有理數(shù)的表達(dá)式,最后讀入運(yùn)算符(運(yùn)算符號兩邊各有一個空格)12/5 * 11/3the result is 44/5請輸入兩個有理數(shù)的表達(dá)式,最后讀入運(yùn)算符(運(yùn)算符號兩邊各有一個

3、空格)12 + 16/5|the result is 76/5請輸入兩個有理數(shù)的表達(dá)式,最后讀入運(yùn)算符(運(yùn)算符號兩邊各有一個空格)19/9 / 15/9the result is 19/15請輸入兩個有理數(shù)的表達(dá)式,最后讀入運(yùn)算符(運(yùn)算符號兩邊各有一個空格)1 - 15/8(the result is -7/8請輸入兩個有理數(shù)的表達(dá)式,最后讀入運(yùn)算符(運(yùn)算符號兩邊各有一個空格)15 - 45the result is -302、定義一個接口 average 請有一個方法:averge(double )定義兩個類first,second分別事項(xiàng)average接口.英屮second自己實(shí)現(xiàn)一個私有

4、方法,用來把一組數(shù)據(jù)中的最高和最低分?jǐn)?shù)清零(前提是:分?jǐn)?shù)不能為零)請輸入一組分?jǐn)?shù)(s c o廠r )123456789 10隹掉最高最低分后的平均數(shù):5.0加權(quán)平均數(shù):4.0睛輛人一紐分?jǐn)?shù)(.score;15.235 12.365 1.023 156.2 12.3|11.256 15.213 15.246 18.2365 15.265結(jié)果:去掉最高最低分后的平均數(shù):14.0加權(quán)平均數(shù):h.0總結(jié)實(shí)驗(yàn)的結(jié)果在普通的情況下,能夠計(jì)算出正確的結(jié)果。對于大數(shù)據(jù)可能會出現(xiàn)溢出的 結(jié)果。本次實(shí)驗(yàn)掌握了寫類的一些經(jīng)驗(yàn),和類實(shí)現(xiàn)接口的經(jīng)驗(yàn)。附 錄1、import java.util. seanner;impo

5、rt java.lang.exception;import java. iang. numberformatexception;public class algrithm private long fenzi=0;private long fenmu=0;public algrithmo /構(gòu)造器pub lie algr it hm(long fen zi, long fen mu) /構(gòu)造器long x = ged(fenzi, fenmu);this, fenzi = (fenzi/x);this, fenmu = (fenmu/x);private static long gcd(lon

6、g n, long m) /返回最大公約數(shù)long r=n%m;while(r != 0) n 二 m;m=r;r二;return m;private long getfenzi () /取分子return fenzi;private long getfenniuo /取分目return fenmu;publie static algrithmadd(algrithm addend, algrithm augend)throws exceptioni/求加與被加數(shù)分母的乘積long product = addend, getfenmu() * augend. getfenmu();/adden

7、d分子與augend分母的乘積long addproduct = addend. getfen/i() * augend. geteenmu();/augend的分子與addend的分母的乘積long augproduct = augend. getfenzi () * addend. getfenmu(); long greatestdivisor = ged(addproduct+augproduct, product); returnnewalgrithm(addproduct+augproduct)/greatestdivisor, product/greatestdivisor);/

8、被減數(shù)減數(shù)public static algrithmsubtraction(algrithm minuend , algrithm subtrahend ) /求減與被減數(shù)分母的乘積long product = minuendgetfenmu() subtrahend. getfenmuo ;/求minuend分子與subtrhend的分母的乘積long minproduct = minuend. getfentsi ()*subtrahend getfenmu();/求subtrahend分子與minuend的分母的乘積long subproduct = subtrahend. getfe

9、nzi () * minuend. getfenmu();long greatestdivisor = ged(minproduct - subproduct), product); returnnewalgri thm (mi nproductsubproduct)/greatestdivisor, product/greatestdivisor);public static algrithmmultil (algrithm multiplicand , algrithm multiplier) /計(jì)算multiplicand分母的乘積和multiplier的分母的乘積long produc

10、t = multiplicand, getfenmu()*mul tipi ier. getfenmu();/計(jì)算multiplicand的分子和multiplier的分子的乘積long otherproduct =multiplicand. getfenzi () * multiplier. getfenzi ();long greatestdivisor =ged (product, otherproduct);product =product/greatestdivisor;otherproduct =otherproduct/greatestdi vi sor;return new a

11、lgrithm(otherproduct, product);public static algrithmdivision(algrithm dividend, algrithm divisor) /計(jì)算dividend的分子和divisor的分母的乘積long product = dividendgetfenzi () * divisor. getfenmu ();/計(jì)算dividend的分母和divisor的分子的乘積long otherproduct = dividendgetfenmu () * divisor.getfenzi (); long greatestdivisor =gc

12、d(product, otherproduct);product = product/greatestdivisor;otherproduct = otherproduct/greatestdivisor;return now algrithm(product,otherproduct);publ ic void palyo /顯示有理數(shù)system out. print(the result is “);systemout. print (thisfenzi );if (this. fenmu != 1)system. out> print in (,/, + +this. fenmu

13、);/* param args*/public static void main(string args) throws exceptionisystem, out. print in ("請輸入兩個有理數(shù)的表達(dá)式,最后讀入運(yùn)算符(運(yùn)算符號兩邊各有一個空格);scanner read = new scanner (system, in) ;/讀入表達(dá)式字符串iong number = new iong4;string expr = read.nextline ();expr. trim();int index = expr. indexof (,);int t二index;/提供給笫

14、二個操作數(shù)使用string first = expr substring(0, index);/system, outprintln(first: " + first);string shenyu = exprsubstring(index+l); shenyu = shenyu. trim() ;/去掉兩頭的空格 /system, outprintin("shenyu:" + shenyu);char fuhao = shenyu. charat (0);index = shenyu. indexof ('');/剩下的字符串/system, o

15、utprintln(index: + index);string second = shenyu. substring(index +1);seco nd = seco nd. trim();/system, out. pr in tin (,zseco nd: + second);/對第一個操作數(shù)進(jìn)行處理index = first, indexof ('/');if(index = -1)number0=long parselong(first);number1=1;elsenumber0=long. parselong(first, substring(0, index);

16、int length = first.length ();numberl=long parselong(first. substring(index+1, length);/對第二個操作數(shù)進(jìn)行處理index = second. indexof(');if(index = -1) number2=long. parselong (second);number3=1;else number2=long. parselong(second. substring(0, index);number3=long parselong(second, substring(index+l, second

17、. length();algrithm x = now algrithm(number0, number1);algrithm y = new algrithm(number2, number3); switch(fuhao) case ': algrithm. division(x, y). paly 0;break; case:algrithmmultil(x, y ) paly() ;break;case ':algrithm subtraction(x, y). paly();break;case ' +' :algrithm. add(x, y). p

18、aly () ;break; default :break;2、/接口public interface average public abstract double average(double array); /first類public class first implements average public double average(double array) int sum=0;for(int i=0 ; i<array.length;i+) sum+=arrayi;return sum/array.length;import java utilseanner;public class second implements average private void did(double x) doubl

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論