結對項目-四則運算 「軟件」之升級版

做業來源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2213git

gitHub:https://github.com/lincanbin5201314/lsgithub

同伴:201606120020沈敏佈局

博客園:http://www.cnblogs.com/Mram/學習

一.基本要求測試

  • 自動生成題目,單個題目最多不能超過4個運算符,操做數小於100。
  • 用戶能夠輸入答案
  • 若用戶輸入答案正確,則提示正確;若答案錯誤,則提示錯誤,並要提示正確答案是多少。

二.開發環境編碼

  程序所使用的開發環境是:IntelliJ IDEA 2018.2.2xspa

三.擴展方向設計

  1. 用戶答題結束之後,程序能夠顯示用戶答題所用的時間
  2. 用戶能夠選擇出題的個數(最多不能超過5個題目),答題結束能夠顯示用戶答錯的題目個數和答對的題目個數
  3. 程序能夠出帶括號的正整數四則運算,支持分數,除法保留兩位小數,如:(1/3+1)*2 = 2.67,特別注意:這裏是2.67而非2.66,或保持分數形式:8/3
  4. 程序能夠設置皮膚功能,能夠改變界面的顏色便可。

四.程序實現3d

結隊項目的實現,須要有可視化界面的顯示。代碼規範

題目數目的輸入有所限制(1-5)道題,輸入不符合會彈出提示窗口,並默認題目數目爲1。

class dialog extends JDialog {
            private static final long serialVersionUID = 1L;
            public dialog(JFrame jf){
                super(jf,"提示窗口",true);
                Container con = getContentPane();
                con.add(new JLabel("您輸入錯誤!請從新輸入."));
                setBounds(100,100,300,100);
            }
        }

 

界面佈置:

 JFrame jf = new JFrame("四則運算");
        JPanel p1=new JPanel();
            Container con = jf.getContentPane();
            con.setLayout(null);//取消佈局管理器
            con.setBackground(Color.CYAN);//設置容器的背景顏色
            JButton exerciseNum = new JButton("生成題目數量");          //實例化一個按鈕
            JButton summitAns = new JButton("提交答案");          //實例化一個按鈕
            JButton changeBgc = new JButton("背景顏色改變");        //  實例化一個按鈕
            JLabel label = new JLabel("題目數量:", JLabel.CENTER);  //題目數量標籤
            label.setBounds(10,30,95,30);
            label.setFont(new Font("宋體",Font.PLAIN,16));
            JLabel labe2 = new JLabel(("題目數量不能大於5"), JLabel.CENTER);
            labe2.setBounds(141,30,180,30);
            labe2.setFont(new Font("宋體",Font.PLAIN,16));
        JLabel labe3 = new JLabel((""), JLabel.LEFT);//題目顯示在窗口
        labe3.setBounds(5,75,250,200);
        labe3.setFont(new Font("宋體",Font.PLAIN,16));
        JLabel labe4 = new JLabel((""), JLabel.LEFT);//題目顯示在窗口
        labe4.setBounds(10,242,170,120);
        labe4.setFont(new Font("宋體",Font.PLAIN,15));
        Double[] arr=new Double[10];
            exerciseNum.setBounds(320, 30, 120, 30);            //  設置位置與大小
            summitAns.setBounds(180, 300, 120, 30);          //  設置位置與大小
            changeBgc.setBounds(310, 300, 120, 30);           //  設置位置與大小
            jf.setSize(500, 400);
            JTextField textField = new JTextField();
            textField.setBounds(100, 30, 40, 30);
            textField.setVisible(true);
            JTextField textField1 = new JTextField();
            textField1.setBounds(180, 85, 40, 20);
            textField1.setVisible(false);
            JTextField textField2 = new JTextField();
            textField2.setBounds(180, 125, 40, 20);
            textField2.setVisible(false);
            JTextField textField3 = new JTextField();
            textField3.setBounds(180, 160, 40, 20);
            textField3.setVisible(false);
            JTextField textField4 = new JTextField();
            textField4.setBounds(180, 200, 40, 20);
            textField4.setVisible(false);
            JTextField textField5 = new JTextField();
            textField5.setBounds(180, 235, 40, 20);
            textField5.setVisible(false);
            JLabel label1 = new JLabel("");  //題目數量標籤
            label1.setBounds(240,85,200,30);
            JLabel label2 = new JLabel("");  //題目數量標籤
            label2.setBounds(240,125,200,30);
            JLabel label3 = new JLabel("");  //題目數量標籤
            label3.setBounds(240,160,200,30);
            JLabel label4 = new JLabel("");  //題目數量標籤
            label4.setBounds(240,200,200,30);
            JLabel label5 = new JLabel("");  //題目數量標籤
            label5.setBounds(240,235,200,30);
            label1.setFont(new Font("宋體",Font.PLAIN,15));
            label2.setFont(new Font("宋體",Font.PLAIN,15));
            label3.setFont(new Font("宋體",Font.PLAIN,15));
            label4.setFont(new Font("宋體",Font.PLAIN,15));
            label5.setFont(new Font("宋體",Font.PLAIN,15));

單擊提交答案,算出所用時間和算出得分。

單擊顏色修改能夠修改背景顏色:

五.問題與解決

1.構造窗體及元素佈置方面不熟悉。

  之前有學習一些這方面的知識,不過只是學的一些皮毛,因此在開始作以前,咱們經過百度還有書籍熟悉一些知識。

2.怎麼作到鼠標單擊響應事件,還有事件之間值的傳遞。

一開始想了好久都沒搞懂怎麼在兩個之間傳遞局部變量,後來上網才知道兩個事件間不能傳值,因此經過定義全局變量來實現共用。

六.結隊工做照片

七.統計表

PSP2.1 Personal Software Process Stages Time Senior Student(h) Time(h)
Planning 計劃 1 1
· Estimate 估計這個任務須要多少時間 50 55
Development 開發 3 3
· Analysis 需求分析 (包括學習新技術) 1 1
· Design Spec 生成設計文檔 1 1
· Design Review 設計複審 2 2
· Coding Standard 代碼規範 5 5
· Design 具體設計 1 1
· Coding 具體編碼 20 22
· Code Review 代碼複審 5 5
· Test 測試(自我測試,修改代碼,提交修改) 10 13
Reporting 報告 2 2
· 測試報告 0.5 0.5
· 計算工做量 1 1
· 並提出過程改進計劃 0.5 0.5
相關文章
相關標籤/搜索