计应191(西)第五组 张潭

Operation类:    

重要属性:两个操作数、正确答案、用户答案

重要方法:抽象方法operation,用于对操作数的运算。

+、-、*、/类继承于Operation类,重写operation方法。减法和除法还要保证除数不能为0等。

MyExGUI类:

界面的布局、按钮事件的监听、倒计时的实现等等。

ArithmeticTest8类,调用MyExGUI。(不知道把所有东西都写在MyExGUI是不是正确的做法)

技术难点:
随机产生100以内的正整数
随机产生加减符号
减法为负值的算式要剔除

任务一
随机产生一组(10个)算题---产生算式,剔除不够减,循环产生
任务二
显示一组算题,选择、解答界面,提交按钮,同步计时(秒)
任务三
显示对错,统计正确性,统计时间

代码规范

根据eclipse的代码规范来编写

具体程序设计

主要功能说明

输入用户名后可以点击开始做题按钮,出题时每次出十题,提交后会显示答案。可以选择重做或再次开始做题(不同的题)

输入用户名后可以点击查看记录按钮,查看自己历次做题记录。

每次做题时会有倒计时显示,需要在120s内做完,如果时间到了还没提交则会自动提交。

运行截图:

 

 

主要代码:

Operation 类

package 四则运算;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileWriter;

import java.io.IOException;

import java.io.PrintWriter;

 

public abstract class Operation {

protected int op1,op2,remainder,usersRemainder,n,correctAnswer,usersAnswer,maxInt=1;

protected String ch;

protected long minRange,maxRange;

 

public Operation(String ch,int n) {

super();

this.ch = ch;

this.n = n;

}

 

public abstract void operation();

public abstract void isNumRight();

public abstract void setRange();

 

protected void getRanNum()

{

op1 = (int)(Math.random()*Math.pow(10,n));

op2 = (int)(Math.random()*Math.pow(10,n));

}

 

public void setUsersAnswer(int usersAnswer,int usersRemainder) //throws Exception

{

/*setRange();

if(usersAnswer < minRange || usersAnswer > maxRange)

throw new NumberTooBigException("答案范围应为"+minRange+"到"+maxRange);*/

this.usersAnswer = usersAnswer;

this.usersRemainder = usersRemainder;

}

 

public void setUsersAnswer(int usersAnswer) //throws Exception

{

setUsersAnswer(usersAnswer,0);

}

 

public String isCorrect()

{

if(usersAnswer == correctAnswer)

return "回答正确";

else

return "回答错误";

}

 

public String printQuestion()

{

getRanNum();

isNumRight();

return op1+" "+ch+" "+op2+" =";

}

 

public String ptintQA()

{

operation();

return "答案:"+op1+" "+ch+" "+op2+" = "+correctAnswer;

}

 

public void writeToFile(File aFile)

{

try

{

PrintWriter out = new PrintWriter(new FileWriter(aFile,true));

out.println("题目:"+op1+" "+ch+" "+op2);

out.println("你的答案:"+usersAnswer + " "+ "正确答案:"+correctAnswer);

out.close();

}catch(FileNotFoundException e){

System.err.println("File not found!" );

}catch(IOException e2){

e2.printStackTrace();

}

}

}

口算题卡开发

预计时间

实际记录

计划

12

10

  • 明确相关需求和其他因素确立方向

10

10

开发

80

73

  • 需求分析(整合相关材料)

12

8

  • 生成设计文档

8

10

  • 设计审复(和搭档审核设计文档)

10

7

  • 代码规范(为目前开发指定合适的规范)

8

3

  • 具体设计

16

13

  • 具体编码

21

22

  • 代码复审

9

10

报告

7

5

  • 测试报告

3

3

  • 计算工作量

2

1

  • 事后总结,并提出过程改进计划

2

1

总共花费的时间

103

93

posted @ 2021-05-31 22:44  计应191西五组  阅读(33)  评论(0编辑  收藏  举报