码迷,mamicode.com
首页 > 其他好文 > 详细

结对编程

时间:2018-03-25 19:26:49      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:提高   pow   ati   tee   scanner   run   inf   creat   next   


一. 项目成员
冯鸣 201521123122 http://www.cnblogs.com/fenm/
罗骏 201521123121 http://www.cnblogs.com/toonaive/
项目开发的码云地址:https://gitee.com/fenm/jieduibiancheng


二.需求分析
针对现有代码的改进分析:
1.修改了一些程序功能上的bug。在重复点击确认键是,计算的正确率有误。
2.对界面进行了改进
新开发功能的分析:
1.增加了关于整数的乘方运算符


三.程序设计
关于整个程序的流程设计如图:

技术分享图片
技术分享图片

单元测试
技术分享图片

代码覆盖率
技术分享图片

技术分享图片

码云项目上传
技术分享图片


四.代码展示
经修改之后的代码

计时器

private class MyRunable implements Runnable{
            private int hour = 0;
            private int min = 0;
            private int sec = 0;
            private NumberFormat format = NumberFormat.getInstance();
            private String nextSecond(){
                ++sec;
                if(sec == 60) {
                    ++min;
                    sec = 0;
                }
                 
                if(min == 60) {
                    ++hour;
                    min = 0;
                }
                return currentTime();
            }
             
            private String currentTime(){
                return format.format(hour)+":"+format.format(min)+":"+format.format(sec);
            }

整数的四则运算+乘方运算

public main()//计算四则运算并输出
    {
        new Thread(myTimeRunable).start();
        int n = 0;
        MainFrame ma= new MainFrame();
        int m = (int)(Math.random()*n+1);//随机整数题目和分数题目的题量
        
        try{
            //调用初始化方法
            jbInit();
        }
        catch(Exception exception){
            exception.printStackTrace();
        }
    
        try{
            
            n= Integer.parseInt(ma.number);
            }catch(NumberFormatException e){
                //利用消息对话框提示输入失败
                JOptionPane.showMessageDialog(this,"输入错误!请重新输入");
                }

        for(int j=0;j<(n-m);j++){//整数题目
           String ans;
           int an;
           int op=(int)(Math.random()*5+1);//随机选择计算符
           int num1=(int)(Math.random()*10+1);//随机两个整数
           int num2=(int)(Math.random()*10+1);
               if(op==1){//加法
                 Question.add(num1+"+"+num2+"="); 
                 Answer.add(num1+num2+"");
              }
               if(op==2){//减法,防止出现负数
                   if(num1>num2){
                     Question.add(num1+"-"+num2+"="); 
                     Answer.add(num1-num2+"");
                  }
               else{
                  Question.add(num2+"-"+num1+"="); 
                 Answer.add(num2-num1+"");
               }
               }
               if(op==3){//乘法
                 Question.add(num1+"*"+num2+"="); 
                 Answer.add(num1*num2+"");
        }
               if(op==4){//除法
                 Question.add(num1+"÷"+num2+"=");
                 if(num1%num2==0){ 
                    Answer.add(num1/num2+"");
                
                 }else{
                     int num3=GCD(num1,num2);
                     num1=num1/num3;
                     num2=num2/num3;
                     String a = num1+"/"+num2;
                     Answer.add(a+"");
                 }
               }
                 if(op==5) {//乘方
                     Question.add(num1+"^"+num2+"=");
                     Answer.add(Math.pow(num1,num2)+"");
                     
                 }
              }

分数的运算

 for(int j=0;j<m;j++){//分数题目
               Scanner in = new Scanner(System.in);//真分数的计算
               int op=(int)(Math.random()*4+1);
               int[] f1 =createFraction();
               int[] f2 =createFraction();
               int j1=GCD(f1[0],f1[1]);
               f1[0]=f1[0]/j1;//化简分数
               f1[1]=f1[1]/j1;
               j1=GCD(f2[0],f2[1]);
               f2[0]=f2[0]/j1;
               f2[1]=f2[1]/j1;
               int gbs = LCM(f1[1],f2[1]);
                  
             if(op==1){//加法
                  Question.add("("+f1[0]+"/"+f1[1]+")+("+f2[0]+"/"+f2[1]+")="); 
                  int num1=f1[0]*f2[1]+f2[0]*f1[1];
                  int num2=f1[1]*f2[1];
                  int num3=GCD(num1,num2);
                  num1=num1/num3;
                  num2=num2/num3;
                  String a=new String();
                  if(num1==num2)
                    {
                        a="1";
                    }
                    else
                    {
                        a=num1+"/"+num2;
                    }
                  Answer.add(a+"");
                   
              }
               if(op==2){//减法
                   int num1=f1[0]*f2[1]-f2[0]*f1[1];
                   if(num1>0){  //防止出现负数 
                     Question.add("("+f1[0]+"/"+f1[1]+")-("+f2[0]+"/"+f2[1]+")="); 
                     int num2=f1[1]*f2[1];
                     String a=new String();
                     if(num1==0)
                        {
                            a="0";
                        }
                        else
                        {
                        int num3=Math.abs(GCD(num1,num2));
                        num1=num1/num3;
                        num2=num2/num3;
                        if(num1==num2)
                        {
                            a="1";
                        }
                        else
                        {
                            a=num1+"/"+num2;
                        }
                        }
                     Answer.add(a+"");
               }else{
                   Question.add("("+f2[0]+"/"+f2[1]+")-("+f1[0]+"/"+f1[1]+")="); 
                     int num11=f2[0]*f1[1]-f1[0]*f2[1];
                     int num2=f1[1]*f2[1];
                     String a=new String();
                     if(num11==0)
                        {
                            a="0";
                        }
                        else
                        {
                        int num3=Math.abs(GCD(num11,num2));
                        num11=num11/num3;
                        num2=num2/num3;
                        if(num11==num2)
                        {
                            a="1";
                        }
                        else
                        {
                            a=num11+"/"+num2;
                        }
                        }
                      Answer.add(a+"");
               }
                  }
              if(op==3){//乘法
                     Question.add("("+f1[0]+"/"+f1[1]+")*("+f2[0]+"/"+f2[1]+")="); 
                     int num1= f1[0]*f2[0]; 
                     int num2 = f1[1]*f2[1];
                     int num3=GCD(num1,num2);
                     String a=new String();
                     num1= num1/num3; 
                     num2 = num2/num3;
                  if(num1==num2)
                        {
                            a="1";
                        }
                        else
                        {
                            a=num1+"/"+num2;
                        }
                     Answer.add(a+"");  
                  }
              if(op==4){//除法
                     Question.add("("+f1[0]+"/"+f1[1]+")÷("+f2[0]+"/"+f2[1]+")="); 
                     int num1= f1[0]*f2[1]; 
                     int num2 = f1[1]*f2[0];
                     int num3=GCD(num1,num2);
                     String a=new String();
                     num1= num1/num3; 
                     num2 = num2/num3;
                     if(num1==num2)
                        {
                            a="1";
                        }
                        else
                        {
                            a=num1+"/"+num2;
                        }
                     Answer.add(a+"");  
              }
        }

系统界面


public class Welcome extends JFrame implements ActionListener{
        private static MainFrame dl;
        
        private static JButton b1,b2,b3,b4;
            static JFrame j1=new JFrame();
            
            
            public Welcome(){
            dl=new MainFrame(); 
            JLabel l1=new JLabel("欢迎来到四则运算系统");
            l1.setBounds(70, 40, 150, 40);
            b1=new JButton("进入系统");
            b2=new JButton("退出");
            b1.setBounds(30, 120, 100, 20);
            b2.setBounds(150, 120, 100, 20);
            j1.setLayout(null);
            b1.addActionListener(this);
            b2.addActionListener(this);
            j1.add(l1);
            j1.add(b1);
            j1.add(b2);
            j1.setTitle("欢迎界面");
            j1.setSize(300, 200);
            j1.setLocationRelativeTo(null);
            j1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            j1.setVisible(true);
 
        }
            
            public static void main(String[] args)
            {
                Welcome h=new Welcome();
            }
            
            public void actionPerformed(ActionEvent e)
            {
                if(e.getSource()==b1)
                {
                    j1.dispose();
                    dl.setVisible(true);
                }
            
                //点击“系统”菜单下的“退出”菜单项
                if(e.getSource()==b2)
                {
                    System.exit(0);
                }
            
            }
            

五. 程序运行

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片


六. psp

技术分享图片
技术分享图片


七. 心得体会

目前为止这是第一次进行两人一组的结对编程活动,无疑是给熟悉团队配合提供了一个机会,相比于单人操作,
结对编程能够相互分担任务,解决更多技术上的难题,达到双倍效率的效果,但是同时也是给两人带来了一次配
合默契度的挑战与训练。虽然最终完成了任务,但是还有很多没有完善的地方,在接下来的团队活动中,更要总
结团队配合的经验,提高效率,降低配合上的偏差。

结对编程

标签:提高   pow   ati   tee   scanner   run   inf   creat   next   

原文地址:https://www.cnblogs.com/toonaive/p/8645756.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!