zoukankan      html  css  js  c++  java
  • 结对编程练习

    改进现有代码

    我选择的代码是
    个人博客地址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的效果吗?通过这次结对编程,请谈谈你的感受和体会。
    与之前不一样的学习方式,在大腿的带领下收获了很多,不过还是遇到了许多问题,希望以后能越来越好,学到越来越多

  • 相关阅读:
    tmux 简明操作指南
    几种查看linux版本信息的方法
    安装Ruby&Rails遇到的问题
    安装DevKit
    gcc 编译选项
    EF数据操作详解
    值类型和引用类型的区别
    Class<T> where T:new() 含义
    50道高级sql练习题;大大提高自己的sql能力(附具体的sql)
    Entity framework 意外删除了表,如何在不影响其它表的情况下恢复回来
  • 原文地址:https://www.cnblogs.com/llxyy/p/8646381.html
Copyright © 2011-2022 走看看