软件工程第二次作业—结对编程
一. 作业要求
- 两人组成一队,进行结对编程。
- 从第一次软件工程作业中选出一人的作业作为这次作业的基础。
- 设计一个图形界面(GUI)的四则运算应用程序,可以是PC桌面的图形界面程序、网页程序或者手机程序。
- 设计的应用程序可以完成加法、减法、乘法、除法运算。
- 应用程序可以完成真分数的四则运算。
- 例如:1/2 + 1/3 = 5/6
- 例如:1/5 + 3/10 = 1/2(而不是5/10)
- 例如:1'1/3 - 2/3 = 2/3 (是1'1/3而不是4/3,注意:“ ' ”为1'1/3整数与分数的分隔符)
- 例如:1/2 * 3/4 = 3/8
- 例如:1/(2/3) = 1'1/2(而不是3/2)
- 有退格和清屏的功能
- 让程序能接受用户输入答案,并判定对错。
选做
- 逐步扩展功能和可以支持的表达式类型,最后希望能支持下面类型的题目 (最多10个运算符,括号的数量不限制):
25 - 3 * 4 - 2 / 2 + 89 = ?
1/2 + 1/3 - 1/4 = ?
(5 - 4 ) * (3 +28) =? - 增加“倒计时”功能,每个题目必须在20秒钟完成,如果完不成,得0分进入下一题。
- 可以统计用户总的练习题目数量,正确的数量,并且在程序重新启动后能保持记录。
二. 结对编程成员
周毛措 1500802022 博客地址: http://www.cnblogs.com/zmc7886/
刚吉麦多 1500802068 博客地址 :http://www.cnblogs.com/gjmd6951/
三. 代码地址
coding地址:https://coding.net/u/z1669133610/p/jieduibiancheng/git/tree/master/
四.实现过程及效果展示
1.界面效果图
class Program
{
static void Main(string[] args)
{
var formation = "{10}+-*/|3";
var equation = new ArithmeticEquationGenerator(formation,
new AvoidNegativeResultRule(),
new DivisibilityEnsuranceRule());
for (var i = 0; i < 10; i++)
{
var calculation = equation.Generate();
Console.WriteLine($"{calculation.ToFormattedString(SpacingOption.Thin)} = {calculation.Value}");
}
}
}
2.代码提交截图
3.Git Bash的提交链接截图
4.结对编程时的照片
五. 心得体会
经过这次结对编程,学习到了许多新的知识,队友给了我很多的指导与帮助,结对编程的确是一个事半功倍的好方法,编程本身是一件很枯燥的事情,尤其是遇到解不开的问题时,结对编程让两个人可以一起研究探讨,相互支持与鼓励,这就让编程的过程变得简单轻松了许多。我对结对编程的一些看法是这种合作的模式相比单人编程要有很多优点。首先,多人合作能有更多的发展空间,考虑到更多的思路以及好的主意;其次,能培养我们团结合作的工作态度,优势互补,缺点也可以互相指正,更有利于进步;而且能提高效率,分工合作,将自己的优势都可以使用出来,每个人做自己擅长的一部分,也可以互相学习,对自身的提高也是很有帮助的。