軟體工程作業03

來源:互聯網
上載者:User

標籤:

原始碼:

package zuoye2;import java.awt.Container;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;class jiemian{public jiemian(){JFrame  jf=new JFrame("四則運算");jf.setBounds(200, 100, 500, 500);jf.setLayout(null);Container c=jf.getContentPane();JCheckBox j1=new JCheckBox("有乘除法");JCheckBox j2=new JCheckBox("有括弧");JCheckBox j3=new JCheckBox("有負數");JCheckBox j4=new JCheckBox("有餘數");JLabel l1=new JLabel("請輸入數值範圍");JLabel l4=new JLabel("請輸入參數個數(1—10)");JLabel l2=new JLabel("—");JLabel l3=new JLabel("請輸入題目數目(1-30)");JTextField t1=new JTextField("2");JTextField t2=new JTextField("20");JTextField t3=new JTextField("30");JTextField t4=new JTextField("30");j1.setBounds(100, 100, 80,20);j2.setBounds(100, 130, 80,20);l4.setBounds(100, 160, 180,20);j3.setBounds(100, 220, 80,20);j4.setBounds(100, 250, 80,20);t1.setBounds(100, 190, 50,20);l1.setBounds(100, 280, 150,20);t2.setBounds(100, 310, 50,20);t3.setBounds(180, 310, 50,20);l2.setBounds(160, 310, 30,20);l3.setBounds(100, 340, 150,20);t4.setBounds(100, 370, 50,20);c.add(j1);c.add(j2);c.add(j3);c.add(l4);c.add(j4);c.add(t1);c.add(l1);c.add(t2);c.add(t3);c.add(l2);c.add(l3);c.add(t4);JButton b1=new JButton("確定");JButton b2=new JButton("退出");b1.setBounds(350, 150,70, 50);b2.setBounds(350, 300,70, 50);c.add(b1);c.add(b2);b1.addActionListener(new ActionListener() {        @Override        public void actionPerformed(ActionEvent e)         {        jf.dispose();        String a1,a2,a3,a4,a5;        int c1,c2,c3,c4,c5;        boolean f1=false,f2=false,f3=false,f4=false,f5=false;        a1=t1.getText().toString();        a2=t2.getText().toString();        a3=t3.getText().toString();        a4=t4.getText().toString();        if(a2.equals("")||a3.equals(""))        {        JOptionPane.showMessageDialog(null, "範圍不可為空", "範圍不可為空", JOptionPane.ERROR_MESSAGE);         System.exit(0);        }        else if(a4.equals(""))        {        JOptionPane.showMessageDialog(null, "數目不可為空", "數目不可為空", JOptionPane.ERROR_MESSAGE);         System.exit(0);        }        else if (a1.equals(""))        {        JOptionPane.showMessageDialog(null, "參數個數不可為空", "參數個數不可為空", JOptionPane.ERROR_MESSAGE);        System.exit(0);        }        else if(Integer.parseInt(a1)>10||Integer.parseInt(a1)<=0)        {        JOptionPane.showMessageDialog(null, "參數個數超出", "參數個數超出", JOptionPane.ERROR_MESSAGE);        System.exit(0);        }        else if(Integer.parseInt(a4)<=0||Integer.parseInt(a4)>30)        {        JOptionPane.showMessageDialog(null, "題目數目不正確", "題目數目不正確", JOptionPane.ERROR_MESSAGE);        System.exit(0);        }        else if(Integer.parseInt(a3)<=Integer.parseInt(a2))        {        JOptionPane.showMessageDialog(null, "範圍不正確", "範圍不正確", JOptionPane.ERROR_MESSAGE);        System.exit(0);        }        if(j1.isSelected())        {        f1=true;        }        if(j2.isSelected())        {        f2=true;        }        if(j3.isSelected())        {        f3=true;        }        if(j4.isSelected())        {        f4=true;        }        c1=Integer.parseInt(a1);        c2=Integer.parseInt(a2);        c3=Integer.parseInt(a3);        c4=Integer.parseInt(a4);        yunsuan a=new yunsuan(c1,c2,c3,c4,f1,f2,f3,f4);        }    });b2.addActionListener(new ActionListener() {        @Override        public void actionPerformed(ActionEvent e)         {        jf.dispose();        }    });jf.setVisible(true);jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}}package zuoye2;public class m extends jiemian{public static void main(String[] args) {// TODO Auto-generated method stubjiemian a=new jiemian();}}package zuoye2;import java.awt.Container;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Random;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JTextField;import javax.swing.WindowConstants;public class yunsuan implements Runnable{JFrame jf=new JFrame("四則運算");Container c=jf.getContentPane();int i1,i2,i3,i4,anwser;boolean j1,j2,j3,j4;JTextField j5;Thread t;protected void ks(){t=new Thread(this);}public yunsuan(int c1, int c2, int c3, int c4, boolean f1, boolean f2, boolean f3, boolean f4){i1=c1;i2=c2;i3=c3;i4=c4;j1=f1;j2=f2;j3=f3;j4=f4;JButton bu1=new JButton("提交");JButton bu2=new JButton("退出");bu1.setBounds(20, 100, 60, 20);bu2.setBounds(100, 100, 60, 20);c.add(bu1);c.add(bu2);ks();t.start();bu1.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e)             {            String qs;            qs=j5.getText().toString();            if(qs.equals(""))            {            JOptionPane.showMessageDialog(null, "答案為空白", "答案為空白", JOptionPane.ERROR_MESSAGE);            }            else if(anwser==Integer.parseInt(qs))            {            t.stop();            ks();            c.removeAll();                        bu1.setBounds(20, 100, 60, 20);            bu2.setBounds(100, 100, 60, 20);            c.add(bu1);            c.add(bu2);            t.start();            c.repaint();            jf.setVisible(true);            }                        else            {            JOptionPane.showMessageDialog(null, "答案錯誤", "答案錯誤", JOptionPane.ERROR_MESSAGE);            }            }        });bu2.addActionListener(new ActionListener() {            @Override            public void actionPerformed(ActionEvent e)             {            jf.dispose();            }        });jf.setBounds(250, 200, c1*150+100, 200);jf.setLayout(null);jf.setVisible(true);jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}@Overridepublic void run() {int c1,c2,c3,c4;boolean f1,f2,f3,f4;//Container c=jf.getContentPane();c1=i1;c2=i2;c3=i3;c4=i4;f1=j1;f2=j2;f3=j3;f4=j4;int a,b,d = 0,e;String a1,b1,d1;JLabel j1,j2,j3,j4,j7;j1=new JLabel();j2=new JLabel();j3=new JLabel();j4=new JLabel();j7=new JLabel();JTextField j6;j5=new JTextField();j6=new JTextField();Random r1[]=new Random[2];Random r2=new Random();int i,j=0,k=0,l;j5=new JTextField();j6=new JTextField();for(i=0;i<2;i++){r1[i]=new Random();}j5=new JTextField();if(f1==true){a=c3-c2;b=c3-c2;a=r1[0].nextInt(a);b=r1[1].nextInt(b);a=a+c2;b=b+c2;e=r2.nextInt(4);}else{a=c3-c2;b=c3-c2;a=r1[0].nextInt(a);b=r1[1].nextInt(b);a=a+c2;b=b+c2;e=r2.nextInt(2);}e=e+1;if(f3!=false){if(e==1){a=r1[0].nextInt(c3-c2)+c2;b=r1[1].nextInt(c3-c2)+c2;d=a+b;a1=String.valueOf(a);b1=String.valueOf(b);d1=String.valueOf(d);j1=new JLabel(a1);j2=new JLabel("+");j3=new JLabel(b1);j4=new JLabel("=");}if(e==2){a=r1[0].nextInt(c3-c2)+c2;b=r1[1].nextInt(c3-c2)+c2;d=a-b;a1=String.valueOf(a);b1=String.valueOf(b);d1=String.valueOf(d);j1=new JLabel(a1);j2=new JLabel("-");j3=new JLabel(b1);j4=new JLabel("=");}}else{if(e==1){a=r1[0].nextInt(c3-c2)+c2;b=r1[1].nextInt(c3-c2)+c2;d=a+b;a1=String.valueOf(a);b1=String.valueOf(b);d1=String.valueOf(d);j1=new JLabel(a1);j2=new JLabel("+");j3=new JLabel(b1);j4=new JLabel("=");}if(e==2){int x;a=r1[0].nextInt(c3-c2)+c2;b=r1[1].nextInt(c3-c2)+c2;if(b>a){x=b;b=a;a=x;}d=a-b;a1=String.valueOf(a);b1=String.valueOf(b);d1=String.valueOf(d);j1=new JLabel(a1);j2=new JLabel("-");j3=new JLabel(b1);j4=new JLabel("=");}}if(e==3){a=r1[0].nextInt(c3-c2)+c2;b=r2.nextInt(c3-c2)+c2;d=a*b;a1=String.valueOf(a);b1=String.valueOf(b);d1=String.valueOf(d);j1=new JLabel(a1);j2=new JLabel("X");j3=new JLabel(b1);j4=new JLabel("=");}if(f4==false){if(e==4){d=r1[0].nextInt(c3-c2)+c2;b=r1[1].nextInt(c3-c2)+c2;a=b*d;while(d==0||b==0){r1[0]=new Random();r1[1]=new Random();d=r1[0].nextInt(20);b=r1[1].nextInt(20);a=b*d;}a1=String.valueOf(a);b1=String.valueOf(b);d1=String.valueOf(d);j1=new JLabel(a1);j2=new JLabel("/");j3=new JLabel(b1);j4=new JLabel("=");}}else {if(e==4){j7=new JLabel("餘");a=r1[0].nextInt(c3-c2)+c2;b=r1[1].nextInt(c3-c2)+c2;while(a==0||b==0){r1[0]=new Random();r1[1]=new Random();d=r1[0].nextInt(20);b=r1[1].nextInt(20);a=b*d;}a1=String.valueOf(a);b1=String.valueOf(b);d1=String.valueOf(d);j1=new JLabel(a1);j2=new JLabel("/");j3=new JLabel(b1);j4=new JLabel("=");}}if(e==4&&f4==true){j1.setBounds(50+j*42, 50+(k/2)*32, 40, 30);j++;j2.setBounds(50+j*42, 50+(k/2)*32, 40, 30);j++;j3.setBounds(50+j*42, 50+(k/2)*32, 40, 30);j++;j4.setBounds(50+j*42, 50+(k/2)*32, 40, 30);j++;j5.setBounds(50+j*42, 50+(k/2)*32, 40, 30);j++;j7.setBounds(65+j*42,50+(k/2)*32, 40, 30);j++;j6.setBounds(50+j*42,50+(k/2)*32, 40, 30);j++;j++;j++;k++;if(k!=0&&k%2==0){j=0;}c.add(j1);c.add(j2);c.add(j3);c.add(j4);c.add(j5);c.add(j6);c.add(j7);}else{j1.setBounds(50+j*42, 50+(k/2)*32, 40, 30);j++;j2.setBounds(50+j*42, 50+(k/2)*32, 40, 30);j++;j3.setBounds(50+j*42, 50+(k/2)*32, 40, 30);j++;j4.setBounds(50+j*42, 50+(k/2)*32, 40, 30);j++;j5.setBounds(50+j*42, 50+(k/2)*32, 40, 30);j++;j++;j++;j++;j++;k++;if(k!=0&&k%2==0){j=0;}c.add(j1);c.add(j2);c.add(j3);c.add(j4);c.add(j5);}anwser = d;c.repaint();jf.setVisible(true);}// TODO Auto-generated method stub}
設計思路:
1.建立一個frame面板,通過添加複選框來選擇是否有乘除法,是否有餘數,是否有括弧以及是否有負數
2.通過添加文字框來控制計算範圍和題目數目。
3.當點擊確定按鈕,當前視窗關閉,資料提交,並建立一個frame視窗。
4.通過random產生隨機數來控制計算題目以及加減乘除(0-3分別代表加減乘除,若沒有選擇有乘除,則產生0或1,從而將乘除運算排除掉)
5.根據是否選擇有餘數來控制除法。若沒有餘數,則將產生的兩個隨機數之積作為被除數,第二個隨機數作為除數。
6.若選擇有負數,加減不做處理,否則比較減數與被減數大小。若減數大於被減數,則將二者交換。
7.通過建立JLabel數組來向視窗輸出題目,題目座標按照題目數累加
8.通過建立文字框來填入答案
9.括弧和檢驗重複沒做。
10.通過線程來控制題目更換

 

軟體工程作業03

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.