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

066xiao 066xiao     2022-10-28     292

关键词:

一、结对信息

项目组合 郭炜埕 201521123064 郑晓丽 201521123066
项目地址 (https://gitee.com/vicheng/four_operations/tree/master)

二、结对编程

1、需求分析

原来的代码只实现简单的两位数之间的加减乘除,而我们为需要改进其功能,实现了三位数的计算,并加了括号


改进后界面:

改进前类图:

改进后类图:

2、程序设计

3、代码展示

关键代码展示:
···
double g(double a, double b, String m)

	double v = 0;
	switch (m) 
	case "+":
		v = a + b;
		break;
	case "-":
		v = a - b;
		break;
	case "×":
		v = a * b;
		break;
	case "÷":
		v = a / b;
		break;
	
	return v;




private  List<Object> trans(String s) 
	Stack<Character> op = new Stack<Character>();

	ArrayList<Object> list = new ArrayList<Object>();
	Pattern P = Pattern.compile("[0-9]+(\\\\.[0-9]+)?"); // 正则表达式来处理带小数点的数字
	int i = 0;

	while (i < s.length()) 
		char c = s.charAt(i);
		if (c >= \'0\' && c <= \'9\') 
			String s1 = s.substring(i);
			Matcher m = P.matcher(s1);
			if (m.find())  // 取匹配到的第一个数字
				s1 = m.group();

				list.add(s1);
			
			i = i + s1.length();
			continue;
		 else if (c == \'(\') 
			op.push(c);
		 else if (c == \')\') 
			char p = op.pop();
			while (p != \'(\') 
				list.add(p);
				p = op.pop();
			
		 else if (c == \'+\' || c == \'-\') 
			while (!op.isEmpty()
					&& (op.peek() == \'+\' || op.peek() == \'-\' || op.peek() == \'×\' || op.peek() == \'÷\')) 

				list.add(op.pop());
			
			op.push(c);
		 else if (c == \'×\' || c == \'÷\') 
			while (!op.isEmpty() && (op.peek() == \'×\' || op.peek() == \'÷\')) 
				list.add(op.pop());
			
			op.push(c);
		
		i++;
	

	while (!op.isEmpty()) 
		list.add(op.pop());
	
	return list;


##4、程序运行
输入习题数,有选择语言的功能
简体中文
![](https://images2018.cnblogs.com/blog/1109952/201803/1109952-20180325133213321-242584653.png)d
繁体中文
![](https://images2018.cnblogs.com/blog/1109952/201803/1109952-20180325133456180-939777441.png)
英文
![](https://images2018.cnblogs.com/blog/1109952/201803/1109952-20180325134804968-852022730.png)

开始
![](https://images2018.cnblogs.com/blog/1109952/201803/1109952-20180325133550585-585393349.png)
进入运算界面,开始计时
![](https://images2018.cnblogs.com/blog/1109952/201803/1109952-20180325134531868-1362324261.png)

输入答案
![](https://images2018.cnblogs.com/blog/1109952/201803/1109952-20180325134607765-1839027844.png)

##5、测试
(1)、对原先的代码进行的代码覆盖率的测试
![](https://images2018.cnblogs.com/blog/1109952/201803/1109952-20180325152800510-319708184.png)

 (2)、对改进后的代码进行单元测试(主要测试算法)
测试代码:
![](https://images2018.cnblogs.com/blog/1109952/201803/1109952-20180325153101444-431916334.png)
测试结果:
![](https://images2018.cnblogs.com/blog/1109952/201803/1109952-20180325153211391-1913689059.png)
(3)、对改进后的代码进行覆盖率测试
![](https://images2018.cnblogs.com/blog/1109952/201803/1109952-20180325155608412-2087370827.png)
解读:类似与于Arithmetic里面switch语句部分执行,选择性语句
![](https://images2018.cnblogs.com/blog/1109952/201803/1109952-20180325163730755-720453098.png)
或者检测异常,如果没有异常,里面的语句便不会执行
![](https://images2018.cnblogs.com/blog/1109952/201803/1109952-20180325163936819-80896710.png)
诸如此类的会降低覆盖率

##6、PSP表格
PSP2.1  | 个人开发流程 | 预估耗费时间(分钟)| 实际耗费时间(分钟)
- | :-: | -: 
Planning 	| 计划 | 18	 | 16
· Estimate | 明确需求和其他相关因素,估计每个阶段的时间成本 | 10 | 8
· Analysis	| 需求分析 (包括学习新技术) | 6 | 10
· Design Review | 设计复审 | 4	| 6
· Coding Standard | 代码规范 | 5 | 5
· Design | 具体设计 | 20 | 30
· Coding | 具体编码	| 36 | 21
· Code Review	 | 代码复审 | 7 | 9
· Test | 测试(自我测试,修改代码,提交修改)| 22 | 33
· | 并提出过程改进计划 | 10 | 10
##7、码云提交记录
![](https://images2018.cnblogs.com/blog/1109952/201803/1109952-20180325170057848-1457953136.png)

##8、小结感受
我们的功能还待完善,在输入答案栏需要输入一位小数,如果答案是无限不循环小数,还没法实现保留几位小数的功能。两个人结对编程相当于合作,
要互相了解,并完成自己的任务。在团队中认识到自己的不足,也能看到队友身上的优点。继续努力学习

附上图片
![](https://images2018.cnblogs.com/blog/1109952/201803/1109952-20180325175552142-1279854880.png)

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

201521123036?曾艺佳博客201521123039?王兴 ?博客码云地址:四则运算选择改进的代码地址:个人博客地址2:http://www.cnblogs.com/belong033源代码:https://coding.net/u/Belong033/p/java-third/git需求分析:针对现有代码的改进分析,新开发功能的... 查看详情

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

...本次结对码云链接:二、需求分析取自《结对编程项目-四则运算》题目内容(week1)实现一个命令行程序,要求:自动生成小学四则运算题目(加、减、 查看详情

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

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

结对编程2(代码片段)

小学随机生成四则运算题目一·题目选择我们在刚开始上课的时候介绍过一个小学四则运算自动生成程序的例子,请实现它,要求:(1)能够自动生成四则运算练习(2)可以定制题目数量(3)用户可以选择运算符(4)用户设置... 查看详情

结对编程——四则运算(第一周)(代码片段)

结对编程——四则运算(第一周)需求分析题目要求一个命令行程序实现:自动生成小学四则运算题目(加、减、乘、除)支持整数支持多运算符(比如生成包含100个运算符的题目)支持真分数统计正确率需求理解输入:需要计算... 查看详情

结对编程——四则运算(第一周)(代码片段)

结对编程——四则运算(第一周)需求分析题目要求一个命令行程序实现:自动生成小学四则运算题目(加、减、乘、除)支持整数支持多运算符(比如生成包含100个运算符的题目)支持真分数统计正确率需求理解输入:需要计算... 查看详情

20165203结对编程四则运算(第一周)(代码片段)

20165206结对编程项目-四则运算阶段一总结一、需求分析通过命令行输入生成题目的数量,随机生成题目。生成的题目不重复。生成的四则运算题目支持整数、支持多运算符。能够根据作答情况统计正确的个数。二、设计思路设计... 查看详情

结对编程(代码片段)

...伍成员:段浩彬、陈作麒1题目:实现一个自动生成小学四则运算题目的命令行程序。2说明:自然数:0,1,2,…。真分数:1/2,1/3,2/3,1/4,1’1/2,…。运算符:+,?,×,÷。括号:(,)。等号:=。分隔符:空格(用于四则运算符和等号前后)... 查看详情

现代软件工程结对编程——四则运算ui(代码片段)

...项目简介:本次结对编程的任务是写一个能自动生成小学四则运算题目并给出答案的软件,分为core组和ui组。我们抽到的是ui组,负责用户界面设计。目 查看详情

20165234结对编程练习_四则运算(代码片段)

结对编程练习_四则运算 1.栈的一个应用是用来对四则运算表达式进行求值。规则如下:操作数之间的相对次序不变;运算符的相对次序不同;中缀式丢失了括弧信息,致使运算次序不确定;前缀式的运算规则为:连续出现的两个... 查看详情

201571030139/201571030134小学生四则运算软件结对编程(代码片段)

...、题目要求:使用JAVA编程语言,采用结对编程方式实现四则运算出题小程序,软件基本功能要求如下:1.由计算机从题库文件中随机选择20道加减乘除混合算式,用户输入算式答案,程序检查答案是否正确,每道题正确计5分,错... 查看详情

20165215结对编程——四则运算第一周(代码片段)

20165215结队编程项目——四则运算第一周需求分析实现一个命令行程序,要求:自动生成小学四则运算题目(加、减、乘、除)支持整数支持多运算符(比如生成包含100个运算符的题目)支持真分数统计正确率运行截图代码连接https... 查看详情

201571030314《小学生四则运算练习软件》结对项目(代码片段)

结对编程实现小学生四则运算练习软件前言:按照结对编程的原则,我和邻宿舍的小伙伴进行了两人结对编程,我们开发的结对项目的是小学生四则运算练习软件,具体就是随机生成n道题,供学生答题并返回正误记录答题结果... 查看详情

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

代码由C++完成,主体函数是通过对年级判断然后调用相应函数进行出题对于运算的实现是通过结构体实现的,具体如下:structyunsuan//小学运算的结构体stringleft1;//内层左括号stringright1;//内层右括号stringleft2;//外层左括号stringright2;//外... 查看详情

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

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

结对四则运算编程(5212邓画月+5213何颖琪)(代码片段)

...负责人:邓画月何颖琪 题目:实现一个自动生成小学四则运算题目的命令行程序。说明:自然数:0,1,2,…。真分数:1/2,1/3,2/3,1/4,1’1/2,…。运算符:+,?,×,÷。括号:(,)。等号:=。分隔符:空格(用于四则运算符和等号前后... 查看详情

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

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

20165202结对编程项目-四则运算第二周(代码片段)

...二、需求分析实现一个命令行程序,要求:自动生成小学四则运算题目(加、减、乘、除)支持整数支持多运算符(比如生成包含100个运算符的题目)支持真分数统计正确率三、设计思路(同时输出UML类图)这周的总体设计要在上... 查看详情