这个作业要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2232

githup地址是:https://github.com/cmhbaba/test20180912/blob/master/Main.java

结对对象博客是:http://www.cnblogs.com/fshost/

结对同学:梁添鹏 201606120087

编程环境是:IntelliJ IDEA Community Edition 2017.2.3 x64

一、需求分析

从个人项目出发,将程序改装成一个单机带用户界面(不是控制台)的程序,这个程序最基本要达到:

  • 生成题目,单个题目最多不能超过4个运算符,操作数小于100。
  • 用户可以输入答案
  • 若用户输入答案正确,则提示正确;若答案错误,则提示错误,并要提示正确答案是多少

4个拓展方向:
  1、用户答题结束以后,程序可以显示用户答题所用的时间

  2、程序可以出单个整数阶乘的题目:如:4!=24

  3、程序可以设置皮肤功能,可以改变界面的颜色即可。

  4、用户答题结束以后,程序可以显示用户答题所用的时间

本人负责的是:窗口的设计与制作、题目的输出、答案的对比、按钮点击时间、代码整合。

结对对象做的是:皮肤功能,统计用户所用时间,阶乘功能

二、详细设计

编程环境是:IntelliJ IDEA Community Edition 2017.2.3 x64

语言:java

由于之前我的是控制台输出的,所以现在就要弄一个可视化窗口,用到了JFram类。并且要在框架上面设置布局,并且把组件添加上去。然后把随机出题的题目和答案分别装进一个数组里面储存起来,后面再把数组的题目对应输出在窗口上。至于答案,就要获取到用户在文本框里面输入的值,在与对应题目的答案对比,然后设置一个数,如果做对一道题这个数就加一,这样就能记录做正确的题目数。

详细代码我已经上传到githup上面:

githup地址是:https://github.com/cmhbaba/test20180912/blob/master/Main.java

下面是部分代码:

这个是新增的添加阶乘的题目代码:

    public static  long factorial(int n){if (n==0){return 1;}else {long num=n * factorial(n-1);return num;}}

  

这个是点击确认按钮,统计花费时间的代码和统计正确题目的代码:

在这里统计花费时间,我们是在前面点击开始按钮的时候,会获取系统时间,然后点击确认之后就会提交答案并且统计,这时候就会在此获取系统时间,与前一次相减,就获得了所用的总共时间,再把时间显示带窗口上,

if (e.getSource()==endButton){//点击确认按钮做的事情Long endTime=System.currentTimeMillis();long timeout=(endTime-timec)/1000;time.setText("总共花费的时间为"+timeout+"s");d1=(int) Double.parseDouble(K1.getText());d2=(int) Double.parseDouble(K2.getText());d3=(int) Double.parseDouble(K3.getText());d4=(int) Double.parseDouble(K4.getText());d5=(int) Double.parseDouble(K5.getText());int answerT=0,answerF=0;if (d1==daan[0]){K1.setText(String.valueOf(daan[0]));answerT++;}else{answerF++;}if (d2==daan[1]){K1.setText(String.valueOf(daan[1]));answerT++;}else{answerF++;}if (d3==daan[2]){K1.setText(String.valueOf(daan[2]));answerT++;}else{answerF++;}if (d4==daan[3]){K1.setText(String.valueOf(daan[3]));answerT++;}else{answerF++;}if (d5==daan[4]){K1.setText(String.valueOf(daan[4]));answerT++;}else{answerF++;}K6.setText(String.valueOf(answerT));}

  

下面是改变窗体颜色的代码:

窗口上有一个按钮,点击就会改变窗体背景颜色。

                if (e.getSource()==changButton){//点击改变颜色按钮事件int color=new Random().nextInt(5);switch (color){case 0:{p1.setBackground(Color.orange);break;}case 1:{p1.setBackground(Color.BLUE);break;}case 2:{p1.setBackground(Color.green);break;}case 3:{p1.setBackground(Color.yellow);break;}case 4:{p1.setBackground(Color.pink);break;}}}

  

三、运行结果

四、总结

由于之前是在控制台输出的,虽然之前做过可视化窗口的设计,但是由于太久没做就忘记了,也是在网上找了很久的和查书才慢慢想起来怎么做,一点点的做出来的,总体上没什么问题。

五、工作照片

转载于:https://www.cnblogs.com/cmhbaba/p/9867753.html

【软件工程实践】结对项目-四则运算 “软件”之升级版相关推荐

  1. 结对项目——四则运算 “软件”之升级版

    这个作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2232 我的github远程仓库的地址为:https://git ...

  2. 结对项目-四则运算 “软件”之升级版

    本作业要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2213 我的githup地址为:https://github.com ...

  3. 作业五—个人项目-小学四则运算 “软件”之升级版1

    作业五-个人项目-小学四则运算 "软件"之升级版 作业要求来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/21 ...

  4. 软件工程实践结对作业一

    这个作业属于哪个课程 <2022年福大-软件工程.实践-W班> 这个作业要求在哪里 <软件工程实践结对作业一> 这个作业的目标 <结对合作,NABCD模型,需求分析,原型 ...

  5. 软件工程实践——结对作业一

    这个作业属于哪个课程 2022年春软件工程实践F班 这个作业要求在哪里 软件工程实践--结对作业一 结对学号 221900111 221900213 这个作业的目标 1.阅读<构建之法>第 ...

  6. 软件工程基础课-结对项目纪实

    2018.5.7 撸起袖子 2018.5.8 成功迈出第一步 2018.5.9~5.11 我的团队项目博客 2018.5.12 文本数据的格式 2018.5.13 能求最短路径了 2018.5.14 ...

  7. 软件工程实践————结对作业二

    这个作业属于哪个课程 软件工程实践2022年春-F班 这个作业要求在哪里 软件工程实践----结对作业二 结对学号 221900418 221900403 这个作业的目标 实现上次作业的原型中的部分功 ...

  8. 【软件工程实践 · 团队项目】 第一次作业

    [软件工程实践 · 团队项目] 第一次作业 Part 0 · 简 要 目 录 Part 1 · 队 伍 阵 容 Part 2 · 会 议 记 录 相 关 Part 3 · 会 议 讨 论 记 录 Pa ...

  9. 软件工程基础课-结对项目-地铁

    一.项目地址 二.PSP 三.解题思路 3.1 面向对象设计与分析 3.2 关键算法的实现 3.2.1 Dijkstra算法 3.2.2 鸡肋的全遍历 四.设计实现过程 4.1 代码风格规范 4.2 ...

最新文章

  1. 《转》 ImportError: No module named caffe 的解决方案
  2. html自定义标签提示,用简单的jquery+CSS创建自定义的a标签title提示tooltip_HTML/Xhtml_网页制作...
  3. mysql数据库怎么安装建表_mysql数据库安装及建表注意事项
  4. go java web框架_java程序员10分钟可上手的golang框架golang实战使用gin+xorm搭建go语言web框架restgo...
  5. Hadoop 跨集群复制文件
  6. JAVA实体类不要使用基本类型,基本类型包含byte、int、short、long、float、double、char、boolean...
  7. 2017.10.13 轮状病毒 失败总结
  8. 初识OpenFlow协议
  9. Scheduler:Event UID not valid(转)
  10. 在Netty中使用Apache common fileupload
  11. cada0图纸尺寸_制图标准规定图纸幅面和格式_A0,A1,A2,A3,A4图纸标准大小和格式_飞翔教程...
  12. 4. 木马病毒和免杀技术,另一种免杀思路
  13. 硬件管理 远程开机,网络开机
  14. python音频处理(持续更新)
  15. 医疗是什么?AI医疗概念解析AI
  16. 第二天学习笔记:(MDN HTML学习、web安全策略与常见攻击、语义化)
  17. SurfaceView打造自定义时钟ClockView
  18. tensor多维向量的简单理解
  19. 因子图优化原理(iSAM、iSAM2论文解析)
  20. 闲鱼x-sign参数

热门文章

  1. linux查询所有目录的txt文件,Linux 在指定目录下的所有文件中查找text文本的方法...
  2. tomcat错误: javax.management.MalformedObjectNameException: Invalid character ':' in value part of prop
  3. mysql 升级 openssl_升级openssl
  4. awx文件解析_Android so(ELF)文件解析
  5. 观察者设计模式 php,PHP设计模式 - 观察者模式
  6. php常用操作数组函数,PHP常见数组函数用法小结
  7. stm32中断优先级_关于STM32 (Cortex-M3) 中NVIC的分析(转)
  8. 后勤管理系统_教育信息化2.0,2019年校园智慧后勤管理系统五大品牌
  9. 学python编程_学习Python编程,我们应该如何学?学习内容包括哪些?
  10. php cgi路径解析,php.ini中的cgi.fix_pathinfo选项