四則運算測試_第1頁
四則運算測試_第2頁
四則運算測試_第3頁
四則運算測試_第4頁
四則運算測試_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、課課程程設(shè)設(shè)計計報報告告 課程名稱:課程名稱: java 面向?qū)ο蟮某绦蛟O(shè)計 設(shè)計題目設(shè)計題目: 四則運算測試 系系 別:別: 計算機與信息工程學院 專專 業(yè):業(yè): 計算機科學與技術(shù) 組組 別:別: 第一組 起止日期起止日期: 年 月 日 年 月 日 指導(dǎo)教師指導(dǎo)教師: 計算機與信息工程學院計算機與信息工程學院 目錄目錄 1 引言.1 2 需求分析.1 2.1 系統(tǒng)設(shè)計總體目標.1 2.2 系統(tǒng)流程設(shè)計.1 2.3 系統(tǒng)任務(wù)要求.2 3 概要設(shè)計.2 3.1 開發(fā)環(huán)境.2 3.2 界面設(shè)計.2 3.2.1 主界面結(jié)構(gòu)圖.2 3.2.2 測試結(jié)果圖.3 4 詳細設(shè)計.3 4.1 設(shè)計思想.4 4

2、.2 界面設(shè)計結(jié)果圖.4 4.2.1 系統(tǒng)主界面.4 4.2.2 測試結(jié)果界面.4 4.2.3 評價消息框界面.5 4.3 設(shè)計代碼.5 4.3.1 主界面代碼.5 4.3.2 測試結(jié)果代碼.14 5 調(diào)試與操作說明.15 5.1 進入測試.16 5.2 輸入問題答案.16 5.3 查看測試結(jié)果.17 5.4 查看評價信息.17 6 課程設(shè)計總結(jié)與分析.18 參考文獻.18 四則運算測試程序四則運算測試程序 1 引言引言 隨著科學技術(shù)的不斷發(fā)展,計算機已經(jīng)成為我們工作學習和生活中不可缺少的工具, 四則運算的知識和技能是小學生學習數(shù)學需要掌握的基礎(chǔ)知識和基本技能,同時,學生如 果學好四則運算的知

3、識,并具有一定的計算能力,能為今后學習、解決物理、化學等學科 的運算打下基礎(chǔ)1。在我們生活中無時無刻不要用到四則運算,雖說四則運算并不是很麻 煩,但有時候復(fù)雜的數(shù)學四則運算仍需要我們大量的時間去解決,所以要有這樣一個程序解 決這個問題。四則運算是小學生學習數(shù)學的核心和基礎(chǔ),必須經(jīng)過大量的練習才能熟練掌 握,但是一味大量的做題,是一件相當無聊的事。通常是教師編纂大量試卷,由學生在紙 上完成答卷,再由教師或家長判卷,達到練習目的,但是長此以往。這會變成一件相當枯 燥的事。這種做法不僅耗費教師的經(jīng)歷和寶貴時間,而且效率低下。為此我們設(shè)計開發(fā)這 個四則運算測試程序。 2 需求分析需求分析 2.1 系統(tǒng)

4、設(shè)計總體目標系統(tǒng)設(shè)計總體目標 本系統(tǒng)可隨機出十道 100 以內(nèi)的四則運算題。 本系統(tǒng)中的模塊具有很強的可續(xù)性,可以方便學生進行模擬訓(xùn)練。 本系統(tǒng)操作方便、靈活、簡單。學生打開程序就可以進行做題訓(xùn)練。 本系統(tǒng)可高效、快速的查詢學生的做題結(jié)果以及評分和時間。 2.2 系統(tǒng)流程設(shè)計系統(tǒng)流程設(shè)計 程序運行時各個功能模塊運行順序,如圖 2-1 所示。 四則運算測試程序 2 圖 2-1 程序運行流程圖 2.3 系統(tǒng)任務(wù)要求系統(tǒng)任務(wù)要求 根據(jù)程序要求,該系統(tǒng)具有以下功能:主界面隨機出十道 100 以內(nèi)四則運算數(shù)學題, 能根據(jù)題目計算出答案。用戶點擊開始按鈕開始計時答題,點擊提交按鈕,程序自動判斷 做題是否正

5、確,最后計算分數(shù)和時間。 3 概要設(shè)計概要設(shè)計 3.1 開發(fā)環(huán)境開發(fā)環(huán)境 java 是由 sun 公司開發(fā)的新一代純面向?qū)ο蟮木W(wǎng)絡(luò)編程語言。其目標是建立一種在任 意種機器、任一種操作系統(tǒng)的網(wǎng)絡(luò)環(huán)境中運行的軟件,實行所謂的“程序?qū)懸淮?,到處運 行”的目標。java 不僅僅是一種語言, 更重要是一種區(qū)別于傳統(tǒng)系統(tǒng), 遵循“網(wǎng)絡(luò)就是計 算機”信條的平臺技術(shù)2。正因為如此,java 已成為當今 internet 上最流行、最受歡迎的一 種程序開發(fā)語言。java 開發(fā)小組把 java 按特性分為基本版、移動版、企業(yè)版,每個版本有 一個軟件開發(fā)包。java 基本版本叫 java 2 標準版(java 2

6、standard edition,j2se),它包含建 立 java 應(yīng)用程序或者是 applet 所需的應(yīng)用程序編程接口(api) 。java 2 移動版(the java 2 mobile edition,j2me)包含創(chuàng)建無線 java 應(yīng)用程序的 api。還有 java 2 企業(yè)版(the java 2 enterprise,j2ee)是 j2se 的增強版本,包含建立多層架構(gòu)應(yīng)用程序 api。java 是簡 單的,是面向?qū)ο蟮模墙Y(jié)構(gòu)中立的,是安全的,是可移植的,是開放的3。所以本系統(tǒng) 編寫程序使用的開發(fā)語言是 java。 myeclipse 企業(yè)級工作平臺(myeclipse en

7、terprise workbench ,簡稱 myeclipse)是對 eclipseide 的擴展,利用它我們可以在數(shù)據(jù)庫和 javaee 的開發(fā)、發(fā)布以及應(yīng)用程序服務(wù)器 的整合方面極大的提高工作效率。它是功能豐富的 javaee 集成開發(fā)環(huán)境,包括了完備的編 碼、調(diào)試、測試和發(fā)布功能,完整支持 html,struts,jsp,css,javascript,sql,hibernate。所 以本系統(tǒng)使用的是 myeclipse 8.5 平臺開發(fā)。 四則運算測試程序 3 3.2 界面設(shè)計界面設(shè)計 3.2.1 主界面結(jié)構(gòu)圖主界面結(jié)構(gòu)圖 主界面顯示十道 100 以內(nèi)的四則運算題,用到 jlabel、

8、jtextfield、jbutton 相關(guān)組件構(gòu) 成,用戶輸入答案點擊提交即可,如圖 3-1 所示。 圖 3-1 主界面框架圖 3.2.2 測試結(jié)果圖測試結(jié)果圖 結(jié)果界面顯示答題者答對,答錯的題目數(shù)以及用時和得分情況,當用戶點擊查看評價 是,跳出評價消息框,如圖 3-2 所示。 四則運算測試程序 4 圖 3-2 結(jié)果界面框架圖 4 詳細設(shè)計詳細設(shè)計 4.1 設(shè)計思想設(shè)計思想 結(jié)合 gui 編程知識,首先需要定義程序運行所需要的所有組件,通過框架圖初步確定 相關(guān)組件的位置,界面搭建成功后,接下來就是處理程序中所需要監(jiān)聽的事件源,以及如 何處理相關(guān)事件。 4.2 界面設(shè)計結(jié)果圖界面設(shè)計結(jié)果圖 4.

9、2.1 系統(tǒng)主界面系統(tǒng)主界面 該界面顯示的是程序要求的出題界面,用戶可以在此界面讀取題目并輸入答案。題目 是不可以被編輯的。如圖 4-1 所示。 四則運算測試程序 5 圖 4-1 主界面 4.2.2 測試結(jié)果界面測試結(jié)果界面 運行結(jié)果界面,顯示用戶測試的結(jié)果,給出答對,答錯,用時,得分信息。如圖 4-2 所示。 圖 4-2 測試結(jié)果圖 4.2.3 評價消息框界面評價消息框界面 評價消息框,通過用戶的得分進行相關(guān)比較,最后給出一個評價。如圖 4-3 所示。 四則運算測試程序 6 圖 4-3 評價消息框 4.3 設(shè)計代碼設(shè)計代碼 本程序建立了一個 project:computeproject。 4

10、.3.1 主界面代碼主界面代碼 public class mainframe extends jframe implements actionlistener private jlabeltime,jbl0,jbl1,jbl2,jbl3,jbl4,jbl5,jbl6,jbl7,jbl8,jbl9,jbl10, jbl11,jbl12,jbl13,jbl14,jbl15,jbl16,jbl17,jbl18,jbl19,jbl20; private jtextfield jtf1,jtf2,jtf3,jtf4,jtf5,jtf6,jtf7,jtf8,jtf9,jtf10, jtf11,jtf12,

11、jtf13,jtf14,jtf15,jtf16,jtf17,jtf18,jtf19,jtf20; private jbutton jb1,jb2,jb3; private jpanel jp1,jp2; private arraylist questions,answers,results; private static int right=0,wrong=0; private int score=0; private string s=null; class bgpanel extends jpanel public void paintcomponent(graphics g) graph

12、ics2d gd = (graphics2d)g; super.paintcomponent(g); image img = toolkit.getdefaulttoolkit().getimage(images/main.jpg); gd.drawimage(img, 0, 0, this.getwidth(), this.getheight(), this); 四則運算測試程序 7 public mainframe() this.initquestion(); jp1 = new jpanel(); jp1.setlayout(null); jp1.setbounds(0,100,800,

13、400); jp1.setopaque(false); jbl1 = new jlabel(第一題:); jbl1.setbounds(new rectangle(120,0,50,30); jbl1.setforeground(color.yellow); jbl2 = new jlabel(第二題:); jbl2.setbounds(new rectangle(120,40,50,30); jbl2.setforeground(color.yellow); jbl3 = new jlabel(第三題:); jbl3.setbounds(new rectangle(120,80,50,30)

14、; jbl3.setforeground(color.yellow); jbl4 = new jlabel(第四題:); jbl4.setbounds(new rectangle(120,120,50,30); jbl4.setforeground(color.yellow); jbl5 = new jlabel(第五題:); jbl5.setbounds(new rectangle(120,160,50,30); jbl5.setforeground(color.yellow); jbl6 = new jlabel(第六題:); jbl6.setbounds(new rectangle(12

15、0,200,50,30); jbl6.setforeground(color.yellow); jbl7 = new jlabel(第七題:); jbl7.setbounds(new rectangle(120,240,50,30); jbl7.setforeground(color.yellow); jbl8 = new jlabel(第八題:); jbl8.setbounds(new rectangle(120,280,50,30); jbl8.setforeground(color.yellow); jbl9 = new jlabel(第九題:); jbl9.setbounds(new

16、rectangle(120,320,50,30); jbl9.setforeground(color.yellow); jbl10 = new jlabel(第十題:); jbl10.setbounds(new rectangle(120,360,50,30); jbl10.setforeground(color.yellow); jbl11 = new jlabel( = ); jbl11.setbounds(new rectangle(440,0,50,30); jbl11.setforeground(color.yellow); jbl12 = new jlabel( = ); jbl1

17、2.setbounds(new rectangle(440,40,50,30); jbl12.setforeground(color.yellow); jbl13 = new jlabel( = ); 四則運算測試程序 8 jbl13.setbounds(new rectangle(440,80,50,30); jbl13.setforeground(color.yellow); jbl14 = new jlabel( = ); jbl14.setbounds(new rectangle(440,120,50,30); jbl14.setforeground(color.yellow); jb

18、l15 = new jlabel( = ); jbl15.setbounds(new rectangle(440,160,50,30); jbl15.setforeground(color.yellow); jbl16 = new jlabel( = ); jbl16.setbounds(new rectangle(440,200,50,30); jbl16.setforeground(color.yellow); jbl17 = new jlabel( = ); jbl17.setbounds(new rectangle(440,240,50,30); jbl17.setforeground

19、(color.yellow); jbl18 = new jlabel( = ); jbl18.setbounds(new rectangle(440,280,50,30); jbl18.setforeground(color.yellow); jbl19 = new jlabel( = ); jbl19.setbounds(new rectangle(440,320,50,30); jbl19.setforeground(color.yellow); jbl20 = new jlabel( = ); jbl20.setbounds(new rectangle(440,360,50,30); j

20、bl20.setforeground(color.yellow); jtf1 = new jtextfield(); jtf1.sethorizontalalignment(jtextfield.center); jtf1.settext(string)questions.get(0); jtf1.seteditable(false); jtf1.setbounds(new rectangle(200,0,200,30); jtf2 = new jtextfield(); jtf2.sethorizontalalignment(jtextfield.center); jtf2.settext(

21、string)questions.get(1); jtf2.seteditable(false); jtf2.setbounds(new rectangle(200,40,200,30); jtf3 = new jtextfield(); jtf3.sethorizontalalignment(jtextfield.center); jtf3.settext(string)questions.get(2); jtf3.seteditable(false); jtf3.setbounds(new rectangle(200,80,200,30); jtf4= new jtextfield();

22、jtf4.sethorizontalalignment(jtextfield.center); jtf4.settext(string)questions.get(3); jtf4.seteditable(false); jtf4.setbounds(new rectangle(200,120,200,30); jtf5 = new jtextfield(); 四則運算測試程序 9 jtf5.sethorizontalalignment(jtextfield.center); jtf5.settext(string)questions.get(4); jtf5.seteditable(fals

23、e); jtf5.setbounds(new rectangle(200,160,200,30); jtf6 = new jtextfield(); jtf6.sethorizontalalignment(jtextfield.center); jtf6.settext(string)questions.get(5); jtf6.seteditable(false); jtf6.setbounds(new rectangle(200,200,200,30); jtf7 = new jtextfield(); jtf7.sethorizontalalignment(jtextfield.cent

24、er); jtf7.settext(string)questions.get(6); jtf7.seteditable(false); jtf7.setbounds(new rectangle(200,240,200,30); jtf8 = new jtextfield(); jtf8.sethorizontalalignment(jtextfield.center); jtf8.settext(string)questions.get(7); jtf8.seteditable(false); jtf8.setbounds(new rectangle(200,280,200,30); jtf9

25、 = new jtextfield(); jtf9.sethorizontalalignment(jtextfield.center); jtf9.settext(string)questions.get(8); jtf9.seteditable(false); jtf9.setbounds(new rectangle(200,320,200,30); jtf10 = new jtextfield(); jtf10.sethorizontalalignment(jtextfield.center); jtf10.settext(string)questions.get(9); jtf10.se

26、teditable(false); jtf10.setbounds(new rectangle(200,360,200,30); jtf11 = new jtextfield(); jtf11.setbounds(new rectangle(490,0,150,30); jtf12 = new jtextfield(); jtf12.setbounds(new rectangle(490,40,150,30); jtf13 = new jtextfield(); jtf13.setbounds(new rectangle(490,80,150,30); jtf14 = new jtextfie

27、ld(); jtf14.setbounds(new rectangle(490,120,150,30); jtf15 = new jtextfield(); jtf15.setbounds(new rectangle(490,160,150,30); jtf16 = new jtextfield(); jtf16.setbounds(new rectangle(490,200,150,30); jtf17 = new jtextfield(); jtf17.setbounds(new rectangle(490,240,150,30); jtf18 = new jtextfield(); 四則

28、運算測試程序 10 jtf18.setbounds(new rectangle(490,280,150,30); jtf19 = new jtextfield(); jtf19.setbounds(new rectangle(490,320,150,30); jtf20 = new jtextfield(); jtf20.setbounds(new rectangle(490,360,150,30); jp1.add(jbl1); jp1.add(jbl2); jp1.add(jbl3); jp1.add(jbl4); jp1.add(jbl5); jp1.add(jbl6); jp1.add

29、(jbl7); jp1.add(jbl8); jp1.add(jbl9); jp1.add(jbl10); jp1.add(jbl11); jp1.add(jbl12); jp1.add(jbl13); jp1.add(jbl14); jp1.add(jbl15); jp1.add(jbl16); jp1.add(jbl17); jp1.add(jbl18); jp1.add(jbl19); jp1.add(jbl20); jp1.add(jtf1); jp1.add(jtf2); jp1.add(jtf3); jp1.add(jtf4); jp1.add(jtf5); jp1.add(jtf

30、6); jp1.add(jtf7); jp1.add(jtf8); jp1.add(jtf9); jp1.add(jtf10); jp1.add(jtf11); jp1.add(jtf12); jp1.add(jtf13); jp1.add(jtf14); jp1.add(jtf15); jp1.add(jtf16); jp1.add(jtf17); jp1.add(jtf18); 四則運算測試程序 11 jp1.add(jtf19); jp1.add(jtf20); jp2 = new jpanel(); jp2.setlayout(null); jp2.setbounds(0,500,80

31、0,100); jp2.setopaque(false); jb1 = new jbutton(開始); jb1.setbounds(new rectangle(450,10,70,30); jb1.addactionlistener(this); jb2 = new jbutton(提交); jb2.setbounds(new rectangle(530,10,70,30); jb2.addactionlistener(this); jb3 = new jbutton(退出); jb3.setbounds(new rectangle(610,10,70,30); jb3.addactionl

32、istener(this); jbl0 = new jlabel(時間: ); jbl0.setfont(new font(微軟雅黑,font.bold,15); jbl0.setforeground(color.red); jbl0.setbounds(new rectangle(100,10,50,30); time = new jlabel(); time.setforeground(color.red); time.setbounds(new rectangle(160,10,100,30); jp2.add(jbl0); jp2.add(jb1); jp2.add(jb2); jp2

33、.add(jb3); jp2.add(time); this.setcontentpane(new bgpanel(); this.setvisible(true); this.setlayout(null); this.settitle(四則運算測試系統(tǒng)); this.setsize(800,600); this.setdefaultcloseoperation(jframe.exit_on_close); this.setresizable(false); this.add(jp1); this.add(jp2); public int timer=0; public boolean ru

34、nning=true; 四則運算測試程序 12 /啟動計時 public void starttimer() new java.lang.thread(new runnable() public void run() while(running) try thread.sleep(1000);/睡一秒 catch(exception e) timer+; time.settext(已使用: + string.valueof(timer) + 秒); ).start(); private void initquestion() questions = new arraylist(10); ans

35、wers = new arraylist(10); string operations = +,-,*,/; random random = new random(); string operation = null; int num1 = 0; int num2 = 0; for(int i = 0; i 10; i+) /自動生成運算符 operation = operations(int)(random.nextdouble()*10*2/5); /自動生成 2 個 100 以內(nèi)的數(shù) num1 = (int)(random.nextdouble()*100); num2 = (int)(

36、random.nextdouble()*100); if(operation.equals(+) answers.add(i, s.valueof(num1+num2); questions.add(i, num1 + + + num2 ); else if(operation.equals(-) answers.add(i, s.valueof(num1-num2); questions.add(i, num1 + - +num2); 四則運算測試程序 13 else if(operation.equals(*) answers.add(i, s.valueof(num1*num2); qu

37、estions.add(i, num1 + * +num2); else if(operation.equals(/) /防止除數(shù)為 0 while(num2 = 0) num2 = (int)(random.nextdouble()*100); answers.add(i, s.valueof(num1/num2); questions.add(i, num1 + / +num2); public void getresult() results = new arraylist(10); results.add(0,jtf11.gettext(); results.add(1,jtf12.g

38、ettext(); results.add(2,jtf13.gettext(); results.add(3,jtf14.gettext(); results.add(4,jtf15.gettext(); results.add(5,jtf16.gettext(); results.add(6,jtf17.gettext(); results.add(7,jtf18.gettext(); results.add(8,jtf19.gettext(); results.add(9,jtf20.gettext(); public static void main(string args) mainframe mf = new mainframe();

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論