结对编程(代码片段)

网络1514luojun 网络1514luojun     2022-10-28     706

关键词:


一. 项目成员
冯鸣 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



七. 心得体会

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

结对编程初涉猎——结对伙伴的代码复审(代码片段)

...业阶段就结束了,从此便进入团队合作阶段。这次是先从结对编程开始,虽然还没有进入正式的开发状态,但也是结对编程的小开端,同时也是一个复习代码复审这部分内容的过程。阅读目录1.题目要求2.结对体验3.代码审查表4.... 查看详情

结对编程(代码片段)

1.码云地址:https://gitee.com/wangqiwen/SoftwareEngineering.git结对小伙伴的学号:201621123043博客地址:https://www.cnblogs.com/wengmq/p/9751142.html码云地址:https://gitee.com/wengmingqiang/PersonalProject-C2.PSP表格PSP2.1个人开发 查看详情

测试与优化——结对编程(代码片段)

测试与优化——结对编程结对组合学号1:211606367姓名:林恩学号2:211606445姓名:肖志豪一、单元测试1.设计思路对每个方法都进行测试,查看测试结果是否和预期结果相符合。2.部分单元测试代码//测试方法上有@Test才会进行测... 查看详情

20165223结对编程之四则运算(代码片段)

目录一、结对对象二、需求分析三、设计思路四、UML类图五、功能截图六、结对感受一、结对对象担任角色驾驶员(Driver):20165223蔡霓(是控制键盘输入的人)领航员(Navigator):20165218赵冰雨(起到领航、提醒的作用)搭档... 查看详情

个人项目复用代码实现结对编程项目(代码片段)

...人项目中,实现小初高数学出题程序只需要命令行,但在结对编程中需要带图形用户界面,并且用户对象不再是出题老师,而是小初高学生。因为在个人项目中,两人分别使用C++和Python语言来编写的,而C++的图形用户界面感觉晦... 查看详情

软工网络15结对编程练习(代码片段)

 一.结对编程成员:叶金蕾(201521123085):http://www.cnblogs.com/yeei66/张文博(201521123089):http://www.cnblogs.com/Abe1/二.对原有程序分析:三.改进现有代码:四.代码展示:五.PSP:  查看详情

结对编程收获(代码片段)

结对编程收获  ——我和我的伙伴分到了Core组,他负责生成编写四则运算表达式函数,而我负责编写计算函数以及整体框架和接口  这一次结对编程不仅学到了不少编程技术,更在交流合作中发现了自己以往的问题,因为... 查看详情

软件工程网络15专业结对编程(代码片段)

结对编程作业总览项目成员:黄俊麟201521123022郑子杰201521123021项目码云地址:https://gitee.com/paitouzi/pair_programming/tree/master具体项目分析:1.需求分析本次结对编程,我们自己新编写了一个计算器程序,能够实现简单的加减乘除运算... 查看详情

结对编程收获(代码片段)

结对编程收获 这次编程作业一路走来,学到了很多编程中实际很有用的东西,比如总体框架的设计,真的不能自己瞎想,应该到网上去查找相似的代码,先把别人代码的框架大致都看懂了,最好多看几份代码,比较一下几个... 查看详情

软工结对编程作业(代码片段)

一、结对信息1.1结对编程成员:蒋勃超:201521123087谢季努:2015211230791.2项目开发的码云地址:https://gitee.com/jbc1132/jbc1/blob/6c8f278bedba41d70802c3334c0afd08b42eafba/jbc1.java1.3选择修改的程序代码:个人博客地址5:http://www.cnblogs.com/NianQiFen 查看详情

网络四则运算结对编程(代码片段)

一、结对信息项目组合郭炜埕201521123065郑晓丽201521123066项目地址(https://gitee.com/vicheng/four_operations/tree/master)二、结对编程1、需求分析原来的代码只实现简单的两位数之间的加减乘除,而我们为需要改进其功能,实现了三位数的计... 查看详情

软工网络16结对编程(代码片段)

1、码云项目地址结对项目码云地址结对编程队友学号姓名各自项目地址201621123013侯湘宁https://www.cnblogs.com/kyrie/p/9754498.html201621123011陈瑀https://www.cnblogs.com/eshy/码云记录2、PSP表格PSP2.1个人开发流程预估耗费时间(分钟)实际耗费时... 查看详情

结对编程(代码片段)

一.项目成员冯鸣201521123122http://www.cnblogs.com/fenm/罗骏201521123121http://www.cnblogs.com/toonaive/项目开发的码云地址:https://gitee.com/fenm/jieduibiancheng二.需求分析针对现有代码的改进分析:1.修改了一些程序功能上的bug。在重复点击确认键是... 查看详情

结对编程队友代码分析(代码片段)

这次结对编程的队友是可熊,感谢可熊不嫌弃我这个鶸,,和我组队通过分析可熊的代码,深刻体会到了自己代码的不规范以及代码可延展性的缺失比如usingnamespacestd;,这一行代码虽然自己写的时候很方便,但没有考虑到别人的... 查看详情

软件工程第三周结对编程(代码片段)

结对编程之四则运算1、项目成员连燕波:201521123081曾飞远:201521123080队员风采展示结对编程码云地址:https://gitee.com/Yanboooooooo/software_engineering_2015211230812、需求分析随着课余娱乐项目的增加,现在的小孩子在学习上变得越来越不... 查看详情

结对编程-wc.exe(代码片段)

 结对学号:   201631062215、201631062116     项目地址:https://gitee.com/nasi96/codes/0oh63ispudrec8zf49tnq63 一、项目介绍     本次是在滴一次WordCount的基础上,采取结对 查看详情

结对编程(代码片段)

1.改进现有代码姓名:郭雅芳学号:201521123013博客地址姓名:李香荣学号:201521123012博客地址参考博客2:http://www.cnblogs.com/belong033源代码:https://coding.net/u/Belong033/p/java-third/git重构clone项目,在开发环境中运行该应用程序,修改完... 查看详情

结对编程作业(代码片段)

...组合,建议尽量不要找同组的成员,女同学尽量找男同学结对,但是不做强制要求;(2).从以往个人完成的项目中选择一个作品,例如:以往的数据结构课程设计或者其它具有比较完整功能的小系统,代码至少要大于100行;(3).将... 查看详情