结对项目-四则运算 “软件”之升级版
Posted huangjianke123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结对项目-四则运算 “软件”之升级版相关的知识,希望对你有一定的参考价值。
https://github.com/2392030179/work.git
结伴同学:
黄观国 201606120075 https://www.cnblogs.com/666hll1212123/p/9865982.html
一、从个人项目出发,将程序改装成一个单机带用户界面(不是控制台)的程序,这个程序最基本要达到:
生成题目,单个题目最多不能超过4个运算符,操作数小于100。
用户可以输入答案
若用户输入答案正确,则提示正确;若答案错误,则提示错误,并要提示正确答案是多少。
二、下面附有 8 个相互独立的可以扩展的方向。
- 程序可以出带括号的正整数四则运算,支持分数,除法保留两位小数,如:(1/3+1)*2 = 2.67,特别注意:这里是2.67而非2.66,或保持分数形式:8/3
- 可以出表达式里含有负整数(负整数最小不小于-100)的题目,且负数需要带括号,用户输入的结果不用带括号。如: 2*(-4) = -8
- 用户答题结束以后,程序可以显示用户答题所用的时间
- 用户可以选择出题的个数(最多不能超过5个题目),答题结束可以显示用户答错的题目个数和答对的题目个数
- 用户在第一次答题时,需要用户输入用户名,用户下次启动后,程序需要记住用户前一次输入的用户名
- 程序可以出单个整数阶乘的题目:如:4!=24
- 程序可以设置答题时间,时间设置为整数,单位为秒,最大不能超过120秒,若超过了答题时间未答题,则提示:时间已到,不能答题。
- 程序可以设置皮肤功能,可以改变界面的颜色即可。
二、开发环境
工具:intellij idea
语言:java
三、分工
黄建科:
界面代码编写
黄观国:
核心算法功能
四、运行情况
五、总结
通过本次实验,对于界面设计掌握更为熟悉,同时也体会到了要做好一个界面不容易。
核心代码
public int question(){ Random random=new Random(); int ramNumber1=(int) (Math.random()*100); int ramNumber2=(int) (Math.random()*100); int ramNumber3=(int) (Math.random()*100); String[] operator={"+","-","*","/"}; int operatorIndex1=(int) (Math.random()*4); int operatorIndex2=(int) (Math.random()*4); int resultFirst=0; if (operatorIndex1<operatorIndex2){ resultFirst= arithmetic(ramNumber2,ramNumber3,operator[operatorIndex2]); resultLast= arithmetic(ramNumber1,resultFirst,operator[operatorIndex1]); } else { resultFirst= arithmetic(ramNumber1,ramNumber2,operator[operatorIndex1]); resultLast= arithmetic(resultFirst,ramNumber3,operator[operatorIndex2]); } // System.out.println(ramNumber1+operator[operatorIndex1]+ramNumber2+operator[operatorIndex2]+ramNumber3+"="); question=Integer.toString(ramNumber1)+operator[operatorIndex1]+Integer.toString(ramNumber2) +operator[operatorIndex2]+Integer.toString(ramNumber3)+"="; return resultLast; }
界面代码
public void mainFram(){ Container container=getContentPane(); setLayout(null); setBounds(100,100,1200,700); JButton setQuestion=new JButton("出题"); setQuestion.setFocusPainted(false); setQuestion.setBounds(350,310,100,50); setQuestion.setFont(new Font("宋体",Font.BOLD,20)); JButton submitAnswer=new JButton("提交"); submitAnswer.setFocusPainted(false); submitAnswer.setBounds(750,310,100,50); submitAnswer.setFont(new Font("宋体",Font.BOLD,20)); JTextField question=new JTextField(); question.setFont(new Font("宋体",Font.BOLD,50)); question.setBounds(350,0,500,250); JTextField answer=new JTextField(); answer.setFont(new Font("宋体",Font.BOLD,50)); answer.setBounds(350,260,500,50); JLabel jLabel=new JLabel("答题区:"); jLabel.setFont(new Font("宋体",Font.BOLD,50)); jLabel.setBounds(170,260,500,50); container.add(setQuestion); container.add(submitAnswer); container.add(question); container.add(answer); container.add(jLabel); setVisible(true); ariOperation=new AriOperation(); result=ariOperation.question(); question.setText(ariOperation.question); submitAnswer.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String judge1="回答正确"; String judge2="回答错误,正确答案是:"+Integer.toString(result); if (Integer.parseInt(answer.getText()) == result) new Judge(judge1).setVisible(true); else new Judge(judge2).setVisible(true); } }); setQuestion.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { ariOperation=new AriOperation(); result=ariOperation.question(); question.setText(ariOperation.question); } }); } }
以上是关于结对项目-四则运算 “软件”之升级版的主要内容,如果未能解决你的问题,请参考以下文章