JAVA--第十一週實驗--編寫一個算術測試小軟體
/* (程式頭部註釋開始) * 程式的版權和版本宣告部分 * Copyright (c) 2011, 煙臺大學計算機學院學生 * All rights reserved. * 檔名稱: 編寫一個算術測試小軟體。 * 版 本 號: V1.0 * 對任務及求解方法的描述部分 * 輸入描述:程式組成:編寫 一個Teacher類負責給出算術題目,隨機給出兩個整數並進行運算,並判斷回答者的答案是否正確; * 輸入描述:編寫一個GUI類ComputerFrame,回答者可以通過GUI看到題目並給出答案;編寫一個程式執行入口執行該軟體。 * 輸入描述:GUI介面如下所示。 * 問題描述: * 程式輸出: * 程式頭部的註釋結束 */
package ma; public class TestMain { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub ComputerFrame frame = new ComputerFrame("算術測試"); } }
package ma; public class Teacher{ int numberone,numbertwo; String operator=" "; boolean right; public int getnumberone() { numberone= (int) (Math.random()*100); return numberone; } public int getnumbertwo() { numbertwo= (int) (Math.random()*100+1); return numbertwo; } public String getoperator() { int i=(int)(Math.random()*10+1); if(i>0&&i<=3) { operator="+"; } if(i>3&&i<=5) { operator="-"; } if(i>5&&i<=8) { operator="*"; } if(i>8&&i<=11) { operator="/"; } return operator; } public boolean check(int answer){ if(operator.equals("+")){ if(answer==numberone+numbertwo) right=true; else right=false; } else if(operator.equals("-")){ if(answer==numberone-numbertwo) right=true; else right=false; } else if(operator.equals("*")){ if(answer==numberone*numbertwo) right=true; else right=false; } else if(operator.equals("/")){ if(answer==numberone/numbertwo) right=true; else right=false; } return right; } }
package ma; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; @SuppressWarnings("serial") public class ComputerFrame extends JFrame implements ActionListener{ Teacher teacher; TextField text1,text2,textresult; Button getquestion,ensureanswer; Label label1,labelanswer,label2; ComputerFrame(String s) { super(s);//命名 teacher = new Teacher(); setLayout(new FlowLayout()); getquestion= new Button("獲取題目"); text1 = new TextField(10);//建立textOne,其可見字元長是10 text2 = new TextField(10); textresult= new TextField(10); label1= new Label("+"); label2= new Label ("="); labelanswer= new Label("你還沒有答案呢 ?"); ensureanswer= new Button("確認答案"); add(getquestion); add(text1); add(label1); add(text2); add(label2); add(textresult); add(getquestion); add(ensureanswer); add(labelanswer); // textresult.requestFocus(); text1.setEditable(false);//該方法設定文字框的可編輯性 text2.setEditable(false); getquestion.addActionListener(this);//將當前視窗註冊為getquestion的ActionEvent事件監視器 ensureanswer.addActionListener(this); textresult.addActionListener(this); setBounds(100,100,450,100);//設定出現螢幕上時的初始位置 setLocationRelativeTo(null);//居中 setVisible(true);//視窗的可見性 validate(); } @Override public void actionPerformed(ActionEvent e) { if(e.getSource()==getquestion) { int numberone= teacher.getnumberone(); int numbertwo= teacher.getnumbertwo(); String operator = teacher.getoperator(); text1.setText(""+numberone);//設定文字框中為引數字串指定的文字 text2.setText(""+numbertwo); label1.setText(operator); labelanswer.setText("請回答"); textresult.setText(null); } if(e.getSource()==ensureanswer) { String answer = textresult.getText(); try{ int result = Integer.parseInt(answer); if(teacher.check(result)==true){ labelanswer.setText("你回答正確"); } else{ labelanswer.setText("你回答錯誤"); } } catch(NumberFormatException x){ labelanswer.setText("請輸入數字字元"); } //textresult.requestFocus(); validate();//確保元件具有有效的佈局 } } }
相關推薦
JAVA--第十一週實驗--編寫一個算術測試小軟體
/* (程式頭部註釋開始) * 程式的版權和版本宣告部分 * Copyright (c) 2011, 煙臺大學計算機學院學生 * All rights reserved. * 檔名稱: 編寫一個算術測試小軟體。 * 版 本 號
JAVA--第十一週實驗--模擬一個訊號燈的軟體
Test類 /* (程式頭部註釋開始) * 程式的版權和版本宣告部分 * Copyright (c) 2011, 煙臺大學計算機學院學生 * All rights reserved. * 檔名稱: 模擬一個訊號燈的軟體 * 作 者: 雷
201771010123汪慧和《面向物件程式設計Java》第十一週實驗總結
一、理論部分 1、棧 (1)棧是一種特殊的線性表,是一種後進先出的結構。(2)棧是限定僅在表尾進行插入和刪除運算的線性表,表尾稱為棧頂,表頭稱為棧底。(3)棧的物理儲存可以用順序儲存結構,也可以用鏈式儲存結構。2、佇列(1)佇列是限定所有的插入只能在表的一端進行,而所有的刪除都在表的另一端進行的線性表。
JAVA第十一週學習總結
201711671102 曾燃亮 《java程式設計》第11周學習總結 第十二章 多執行緒機制 一.程序與執行緒 1.作業系統與程序 程序是程式的一次動態執行過程。現代作業系統可以同時管理計算機系統的多個執行緒 2.程序與執行緒 執行緒不是程序,執行緒是比程序更小的執行單位,
java第十三週實驗 編寫一個一元二次函式的GUI
EquationFrame: package net.kk; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class EquationFrame extends JF
第十五週實驗報告一(實現氣泡排序演算法,並將之定義為一個函式)
第15週報告1: 實驗目的:學會氣泡排序演算法 實驗內容:實現氣泡排序演算法,並將之定義為一個函式 * 程式頭部註釋開始 * 程式的版權和版本宣告部分 * Copyright (c) 2011, 煙臺大學計算機學院學生 * All rights reserved. *
王穎奇 20171010129《面向物件程式設計(java)》第十一週學習總結
實驗十一 集合 實驗時間 2018-11-8 1、實驗目的與要求 (1) 掌握Vetor、Stack、Hashtable三個類的用途及常用API; (2) 瞭解java集合框架體系組成; (3) 掌握Array
徐思/楊玲《面向物件程式設計(Java)》第十一週學習總結
一、理論知識部分 一般將資料結構分為兩大類:線性資料結構和非線性資料結構。線性資料結構:線性表、棧、佇列、串、陣列和檔案。非線性資料結構:樹和圖。 線性表按其儲存結構可分為順序表和連結串列;用順序儲存結構儲存的線性表稱為順序表;順序表將線性表中的資料元素依次存放在某個儲存區域中。一維陣列就是用順序方式儲存
李曉菁201771010114《面向物件程式設計(Java)》第十一週學習總結
集合 一:.資料結構介紹 1.一般將資料結構分為兩大類:線性資料結構和非線性資料結構。 (1)線性資料結構:線性表、棧、佇列、串、陣列和檔案。 (2)非線性資料結構:樹和圖。 2.線性表: 3.連結串列:(1)單向連結串列 (2)迴圈連結串列 (3)雙向迴圈連結串列 4.棧:棧(Stack)
201771010135 楊蓉慶AND張燕 《面對物件程式設計(java)》第十一週學習總結
1、實驗目的與要求 (1) 掌握Vetor、Stack、Hashtable三個類的用途及常用API; (2) 瞭解java集合框架體系組成; (3) 掌握ArrayList、LinkList兩個類的用途及常用API。 (4) 瞭解HashSet類、TreeSet類的用途及常用API。 (5)瞭解Ha
201771010124 王海珍 《面向物件設計java》第十一週總結
第一部分 理論部分 本章節的主要內容為集合 (1)Java集合框架; a:將集合的介面與實現分離; b:Collection介面,集合類的基本介面。這個介面有兩個基本方法 public interface Collecti
201771010113 李婷華 《面向物件程式設計(Java)》第十一週總結
一.理論知識部分 第九章 集合 1.資料結構介紹: 線性結構:線性表,棧,佇列,串,陣列,檔案。非線性結構:樹,圖。 散列表:又稱為雜湊表。 散列表演算法的基本思想是:以結點的關鍵字為自變數,通過一定的函式關係(雜湊函式)計算出對應的函式值,以這個值作為該結點儲存在散列表中的地址。當散列
201771010112羅鬆《面向物件程式設計(java)》第十一週學習總結
1、實驗目的與要求 (1) 掌握Vetor、Stack、Hashtable三個類的用途及常用API; (2) 瞭解java集合框架體系組成; (3) 掌握ArrayList、LinkList兩個類的用途及常用API。 (4) 瞭解HashSet類、TreeSet類的用途及常用AP
王豔 201771010127《面向物件程式設計(java)》第十一週學習總結
一:理論部分。 1.資料結構:分為a.線性資料結構,如線性表、棧、佇列、串、陣列和檔案。 b.非線性資料結構,如樹和圖。
馬昕璐/唐月晨 《面向物件程式設計(java)》第十一週學習總結
一:理論部分。 一般將資料結構分為兩大類:線性資料結構和非線性資料結構 線性資料結構:線性表、棧、佇列、串、陣列和檔案 非線性資料結構:樹和圖。 線性表:1.所有資料元素在同一個線性表中必須是相同的資料型別。 2. 線性表按其儲存結構可分為順序表和連結串列 3. 用順序儲存結構儲存的線性表稱為順序
王之泰/王志成《面向物件程式設計(java)》第十一週學習總結
第一部分:理論知識學習部分 第十一章理論知識主要為集合類的介紹,在實驗中都有所體現且本週主要複習回顧上週的泛型程式設計 第二部分:實驗部分 ——集合 1、實驗目的與要求 (1) 掌握Vetor、Stack、Hashtable三個類的用途及常用API; (2) 瞭解jav
201771010101 白瑪次仁《面向物件程式設計(Java)》第十一週學習總結
實驗十一 集合 實驗時間 2018-11-8 1、實驗目的與要求 (1) 掌握Vetor、Stack、Hashtable三個類的用途及常用API; (2) 瞭解java集合框架體系組成; (3) 掌握ArrayList、Lin
張雲飛 201771010143 《面對物件程式設計(java)》第十一週學習總結
實驗十一 集合 實驗時間2018-11-8 1、實驗目的與要求 (1) 掌握Vetor、Stack、Hashtable三個類的用途及常用API; (2) 瞭解java集合框架體系組成; (3) 掌握ArrayList、LinkList兩個類的用途及
馬凱軍201771010116《面向物件與程式設計Java》第十一週學習總結
一.理論知識部分 第九章 集合 1.資料結構介紹:線性結構:線性表,棧,佇列,串,陣列,檔案。非線性結構:樹,圖。 散列表:又稱為雜湊表。 散列表演算法的基本思想是:以結點的關鍵字為自變數,通過一定的函式關係(雜湊函式)計算出對應的函式值,以這個值作為該結點儲存在散列表中的地址。當散列表中