结对编程练习

改进现有代码

我选择的代码是
个人博客地址5:http://www.cnblogs.com/NianQiFeng ,源代码:https://git.coding.net/qwx_hh/java-szys.git

黄腾龙 201521123112 码云地址:https://gitee.com/Java_goddess
李心宇 201521123117 码云地址:https://gitee.com/lxxy/events
重构
clone项目,在开发环境中运行该应用程序,修改完毕最后上传至码云,并在博客中给出链接

检查大部分主要类之间的关系,画出类图

代码规范:

Arithmetic类 //

astr 返回答案字符串

qstr 返回问题字符串

int_operation() 整数计算函数

fra_operation() 分数计算函数

common_divisor(int m,int n)

公约数计算函数

toString() 输出函数

Frame类 //

hs 实例化History

hh 实例化QA_List

timer 实例化Work_Time

Time 计时器动态窗口

answer1~10 输入窗口

Review 复习按钮

question1~10 题目显示标签

Right_answer1~10 正确答案显示标签

Tip1~10 提示正确与否标签

Time_cost 所花时间显示标签

Right_percent 正确率显示标签

Set_question 开始按钮

jLabel5 历史正确题数

jLabel7 历史总题数

rn 单次正确题数

tot 单次总题数

Frame() Frame构造函数

initComponents() 窗体显示

xxxClicked(KeyEvent evt)

点击事件

KeyPressed(JLabel i,JLabel j,JLabel l,int x,JTextField k)

点击事件批量处理函数

Hide() 使不需要的输入窗口关闭

Tip(String answer,int i)提示对错并计入

Histroy类 //

qstr 问题字符串

astr 答案字符串

str 答案+问题字符串(写入文件)

str2 正确题数+总题数字符串(写入文件)

tot 总题数

rn 正确题数

qstrlist 问题字符串列(读入文件)

astrlist 答案字符串列(读入文件)

scan(String qstr,String astr)

qstr+" "+astr

scan2(int tot,int rn)

tot+" "+rn

Histroy_create() 历史文档生成

Histroy_save() 存储历史题目与答案

Histroy_saveNum() 存储历史题目数目

Histroy_read() 读入历史题目与答案

History_num() 读入历史题目数目

QA_List类 //

i 加入列题目个数

Qusetion 问题字符串列

Answer 答案字符串列

QA_List() QA_List构造函数

Test_Number类

i 显示Test_Number窗体次数

l 语言转化参数标识

Cancel_Button 取消按钮

Sure_Button 确定按钮

English 英文界面标签

Simplified_Chinese 简体中文界面标签

Traditional_Chinese 繁体中文界面标签

Number 所需题数

Test_Number() Test_Number构造函数

initComponents() Test_Number窗体显示

xxxClicked(KeyEvent evt)

点击事件

Test类 //

main(String[] args)

Work_Time类 //

x 00:00.x

y 00:y.00

z z:00.00

部分代码展示

Time //计时器
public class Frame extends JFrame{
static double rn=0;
public static Histroy hs = new Histroy();
Timer timer = new Timer();
public static QA_List hh = new QA_List();
double tot=hh.i;
public List Field_list=new ArrayList();
public Frame() {
super("Myapp");
hs.Histroy_create();
initComponents();
if(Test_Number.l1){
Set_qusetion.setText("開始");
jLabel2.setText("計時:");
jLabel1.setText("正確率:");
jLabel3.setText("用時:");
Review.setText("複習");
jLabel4.setText("正確:");
jLabel6.setText("全部:");
}
if(Test_Number.l
2){
Set_qusetion.setText("Start");
jLabel2.setText("Timing:");
jLabel1.setText("Correct rate:");
jLabel3.setText("Time cost:");
Review.setText("Review");
jLabel4.setText("Right:");
jLabel6.setText("All:");
}
jLabel7.setText(""+hs.tot);
jLabel5.setText(""+hs.rn);
}

Tip //正确错误提示输出
public String Tip (String answer,int i) {
if(answer.equals(hh.Answer.get(i)))
{
rn++;
if(Test_Number.l1){
return "(≧▽≦)正確";
}
if(Test_Number.l
2){
return "(≧▽≦)right";
}
return "(≧▽≦)正确";
}
else
{
hs.scan(hh.Answer.get(i),hh.Qusetion.get(i) );
hs.Histroy_save();
if(Test_Number.l1){
return "(>﹏<)錯誤";
}
if(Test_Number.l
2){
return "(>﹏<)wrong";
}
return "(>﹏<)错误";
}

Arithmetic //三个数字的运算和括号
public void Calculate(String formula) { //计算
Scanner in = new Scanner(formula);
while (in.hasNextLine()) {
String s = in.nextLine();
try {
List

posted on 2018-03-25 20:07  呼吸一下广阔的天气  阅读(148)  评论(0)    收藏  举报