结对编程1----基于java的四则运算生成器
小组成员:王震(201421123054)、王杰(201421123055)
Coding地址:https://git.coding.net/a506504661/sssss.git
一、题目描述
我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序。进一步,本次要求把这个程序做成GUI(可以是Windows PC 上的,也可以是Mac、Linux,web,手机上的),成为一个有基本功能、一定价值的程序。在下面的功能需求中实现两个:
- 记录用户的对错总数,程序退出再启动的时候,能把以前的对错数量保存并在此基础上增量计算。
- 有计时功能,能显示用户开始答题后的消耗时间。
- 界面支持中文简体/中文繁体/英语,用户可以选择一种;
二、需求分析
1.有计时功能:在答题结束时,能够显示用户答题所用时间。
2.有语言切换功能:界面可以支持中文简体、中文繁体、英语的切换
3.有相应的界面区域以及按钮等。
三、程序设计
主要流程图:
四则运算Calculator类:
GUI类:
四、代码展示
四则运算实现相关代码:
加法
- Calculator add(Calculator r){ // 加法运算
- int a = r.getNumerator();
- int b = r.getDenominator();
- int newNumerator = numerator * b + denominator * a;
- int newDenominator = denominator * b;
- Calculator result = new Calculator(newNumerator,newDenominator);
- return result;
- }
减法
- Calculator sub(Calculator r){ // 减法运算
- int a = r.getNumerator();
- int b = r.getDenominator();
- int newNumerator = numerator * b - denominator * a;
- int newDenominator = denominator * b;
- Calculator result = new Calculator(newNumerator,newDenominator);
- return result;
- }
乘法
- Calculator muti(Calculator r){ // 乘法运算
- int a = r.getNumerator();
- int b = r.getDenominator();
- int newNumerator = numerator * a;
- int newDenominator = denominator * b;
- Calculator result = new Calculator(newNumerator,newDenominator);
- return result;
- }
除法
- Calculator div(Calculator r){ // 除法运算
- int a = r.getNumerator();
- int b = r.getDenominator();
- int newNumerator = numerator * b;
- int newDenominator = denominator * a;
- Calculator result = new Calculator(newNumerator,newDenominator);
- return result;
- }
分数
- int numerator; // 分子
- int denominator; // 分母
- void setNumeratorAndDenominator(int a, int b){ // 设置分子和分母
- int c = f(Math.abs(a),Math.abs(b)); // 计算最大公约数
- numerator = a / c;
- denominator = b / c;
- if(numerator< && denominator<){
- numerator = - numerator;
- denominator = - denominator;
- }
- }
计时器相关代码:
- private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
- Calculator cal = new Calculator();
- String h=InputField.getText();
- int g = Integer.parseInt(h);
- String[] all={""};
- all=cal.answer();
- c=all[];
- jTextField1.setText("("+all[]+")"+all[]+"("+all[]+")"+"=");
- IntputField2.setText("");
- answer.setText("");
- congratulations.setText("");
- now=System.currentTimeMillis();
- i++;
- }
- private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
- over=System.currentTimeMillis();
- now1=((over-now) / ( * * ) % )+":"+((over-now)/ ( * )% )+":"+((over-now)/ % );
- String a=now1+"";
- jTextField7.setText(a);
- }
语言选择相关代码:
- jMenu1.setText("文字转换");
- jMenu1.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- jMenu1ActionPerformed(evt);
- }
- });
- jMenuItem2.setText("英语");
- jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- jMenuItem2ActionPerformed(evt);
- }
- });
- jMenu1.add(jMenuItem2);
- jMenu1.add(jSeparator1);
- jMenuItem3.setText("中文简体");
- jMenuItem3.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- jMenuItem3ActionPerformed(evt);
- }
- });
- jMenu1.add(jMenuItem3);
- jMenuItem1.setText("中文繁体");
- jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- jMenuItem1ActionPerformed(evt);
- }
- });
GUI界面相关代码:
- private javax.swing.JTextField InputField;
- private javax.swing.JTextField IntputField2;
- private javax.swing.JTextField answer;
- private javax.swing.JTextField congratulations;
- private javax.swing.JTextField good;
- private javax.swing.JButton jButton1;//开始做题按钮
- private javax.swing.JButton jButton2;//查看答案按钮
- private javax.swing.JButton jButton3;//结束答题按钮
- private javax.swing.JButton jButton4;//下一题按钮
- private javax.swing.JLabel jLabel1;//四则运算生成器标签
- private javax.swing.JLabel jLabel10;//正确答案标签
- private javax.swing.JLabel jLabel2;//请输入题数标签
- private javax.swing.JLabel jLabel3;//题目标签
- private javax.swing.JLabel jLabel4;//下一题标签
- private javax.swing.JLabel jLabel5;//你的答案是标签
- private javax.swing.JLabel jLabel6;//答题数标签
- private javax.swing.JLabel jLabel7;//错题数标签
- private javax.swing.JLabel jLabel8;//正确率标签
- private javax.swing.JLabel jLabel9;//所用时间标签
- private javax.swing.JMenu jMenu1;//文字转换选择菜单
- private javax.swing.JMenuBar jMenuBar1;
- private javax.swing.JMenuItem jMenuItem1;//中文繁体选项
- private javax.swing.JMenuItem jMenuItem2;//英语选项
- private javax.swing.JMenuItem jMenuItem3;//中文简体选项
- private javax.swing.JPanel jPanel1;//界面格局
- private javax.swing.JPopupMenu jPopupMenu1;
- private javax.swing.JPopupMenu jPopupMenu2;
- private javax.swing.JRadioButtonMenuItem jRadioButtonMenuItem1;
- private javax.swing.JPopupMenu.Separator jSeparator1;
- private javax.swing.JPopupMenu.Separator jSeparator2;
- private javax.swing.JTextField jTextField1;
- private javax.swing.JTextField jTextField7;
- private javax.swing.JTextField mistake;
- private javax.swing.JTextField title1;
四、测试
开始做题:
错题
对题
结束
切换文字
五、实验小结
本次实验对于要求方面有很多问题的不懂,比如按键不匹配,错题不会累加等等,记过讨论和咨询,完成了本次结对实验,收益很多。
PSP:
|
||||||||||||||||||||||||||||||||||||||||||||||||||
结对编程1----基于java的四则运算生成器的更多相关文章
- 结对编程——paperOne基于java的四则运算 功能改进
项目成员:张金生 张政 由于新的需求,原本使用JSP的实现方式目前改为Java实现,即去除了B/S端. 需求分析: 1.四则运算要满足整数运算.分数运算两种: 2.运算题目随机,并且可以打印题 ...
- 结对编程——paperOne基于java web的简易四则运算出题网站
项目成员:张金生 张政 需求分析: 1.要进行四则运算: 2.运算题目随机: 3.进行对错判断: 4.整数运算. 程序概要: 1.用JSP实现: 2.用户可选择题目数量: 3.答题页用表格列出 ...
- 结对编程1-基于GUI的四则运算生成器
201421123016郑怀勇 201421123017康建灿 程序代码 / 康建灿 一.需求分析 记录用户的对错总数. 程序退出再启动的时候,能把以前的对错数量保存并在此基础上增量计算. 有 ...
- 20165325 2017-2018-2 《Java程序设计》结对编程_第二周:四则运算
20165325 2017-2018-2 <Java程序设计>结对编程_第二周:四则运算 一.码云链接 FAO项目的码云链接; 1.Git提交日志已经实现一个功能/一个bug修复的注释说明 ...
- 结对编程1 —— 基于GUI和Swing的四则运算题目生成器
合作伙伴 201421123102 王艳秋 201421123106 陈 雄 代码地址 题目描述 我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序.进一步,本次要求把这个程序做成GUI( ...
- 结对作业--基于GUI的四则运算生成器
组员:201421123015 陈麟凤 201421123019 张志杰 201421123020 黄海鸿 coding 地址 :https://coding.net/u/zhang1995/p/wo ...
- 结队编程-基于gui的四则运算生成器
成员:卢少锐 201421123027.刘存201421033023 coding.net地址 1.需求分析:除了实现四则运算的功能外,还添加了计时器功能和语言选择功能 2.程序设计:这次作业是基于上 ...
- 20165325 2017-2018-2 《Java程序设计》结对编程_第一周:四则运算
一.码云链接 项目名称FAO 码云链接 二.需求分析 实现一个命令行程序: 自动生成小学四则运算题目(加.减.乘.除) 支持整数 支持多运算符(比如生成包含100个运算符的题目) 支持真分数 统计正确 ...
- 结对作业:基于GUI实现四则运算
1)Coding.Net项目地址:https://git.coding.net/day_light/GUIszysLL.git 2)在开始实现程序之前,在下述PSP表格记录下你估计将在程序的各个模块的 ...
随机推荐
- python进阶(4):初始面向对象
一切皆对象! 面向过程-->面向对象 面向过程:根据业务逻辑从上到下堆叠代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更 ...
- 关于dfs+剪枝第一篇:hdu1010
最近进入了dfs关于剪枝方面的学习,遇到的第一道题就是hdu的1010.一道很基础的剪枝..可我不幸地wa了很多次(待会再解释wa的原因吧QAQ),首先我们来看一下题目. Problem Descri ...
- IDE eclipse PyDev插件安装
Python安装成功后,即要配置开发环境,这里选用Eclipse, 在Eclipse中安装PyDev插件,有多种方法,这里介绍最最常用的两种. 1)使用Eclipse安装插件,打开eclipse,进入 ...
- [js高手之路] vue系列教程 - 组件定义与使用上部(7)
组件是vue框架比较核心的内容,那么什么是组件呢? 通俗点讲:组件是由一堆html, css, javascript组成的代码片段, 作用是为了实现模块的重用 组件的基本用法: <div id= ...
- 初学python类
边看python官方2.7的文档,一边动手测试了一些例子加深自己的印象. 官方文档的网址:http://python.usyiyi.cn/python_278/tutorial/classes.htm ...
- Go指针
Go 语言指针 Go 语言中指针是很容易学习的,Go 语言中使用指针可以更简单的执行一些任务. 接下来让我们来一步步学习 Go 语言指针. 我们都知道,变量是一种使用方便的占位符,用于引用计算机内存地 ...
- 2、粘包现象(struct模块)
昨天我们所做的套接字是有漏洞的,它会出现粘包现象,没有发现这个问题的我们今天会进行演示.今天也会稍微讲解一下基于udp的套接字. 一.基于udp的套接字 udp是无链接的,先启动哪一端都不会报错 ud ...
- 如何快速禁用约束 (解决ORA-O2266问题)
业务场景: 某天truncate大量表时遇到错误ORA-O2266:表中的唯一/主键被启用的外键引用,不想看ER图来禁用大量复杂约束,所以研发了三种套路... 一. 最偷懒套路 如果要一次性导出很 ...
- 导入import com.sun.image.codec.jpeg.JPEGCodec出错
在Eclipse中处理图片时,需要引入两个包:import com.sun.image.codec.jpeg.JPEGCodec;import com.sun.image.codec.jpeg.JPE ...
- 【Linux】Apache Httpd 服务管理
基本的操作方法: 本文假设你的apahce安装目录为/usr/local/apache2,这些方法适合任何情况 apahce启动命令: 推荐 [user@master1 ~]$ /usr/local ...