结对编程练习

改进现有代码

我选择的代码是
个人博客地址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<JTextField> Field_list=new ArrayList<JTextField>();
public Frame() {
	super("Myapp");
	hs.Histroy_create();
    initComponents();
    if(Test_Number.l==1){
    	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.l==1){
        	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.l==1){
        	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<Object> list = trans(s);
Stack<Double> result = new Stack<Double>();
double res = f(list, result);
astr=res+"";
System.out.println(astr);
} catch (Exception e) {
System.out.println("非法表达");
	}
	}
}

运行测试

讨论图片

代码覆盖率测试

PSP

小结感受:结对编程真的能够带来1+1>2的效果吗?通过这次结对编程,请谈谈你的感受和体会。
与之前不一样的学习方式,在大腿的带领下收获了很多,不过还是遇到了许多问题,希望以后能越来越好,学到越来越多

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