第二次作业---张鑫
GIT地址 http:s//github.com/zx1355593002/AchaoCalculator.git
GIT用户名 zx18283022934
学号后五位 62221
博客地址 https://home.cnblogs.com/u/Czay/
作业链接 https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/homework/2793
一、环境配置过程
之前用过Visual Studio2013用于C#课程的学习,所以此次配置没有太多的麻烦。但是中途换过系统,所以不见了。这次重新下载了一下2012的,因为室友有2012的文件,我就没去下载2017的最新版本,因为可能觉得差不多。
然后遇到的问题只有一个就是硬盘装不下,一直安装失败,检查了一下才发现这个问题,然后及时解决了。
二、代码设计思路
代码的思路其实有好几个。因为我学ACM的,这方面设计算法还是比较简单。
第一个思路比较的复杂但是很全面,就是因为题干说的输入n,输入的数据数目不定。然后我想的是用字符串去区里,Split分割,然后讨论所有的符号情况。一定要注意运算的优先级。
但是我代码并没有这样写,因为这次的过程主要是体验熟悉VS还有编译的过程而不是代码。这样写代码会很繁琐。
第二个思路是我把这个过程局部化,就是我处理其中的一种情况,然后其他情况游刃而解。重点是要Split读入分割,然后预算优先级。如果要用函数调用的话要区分与C++的区别。
下面是我的代码。
int a,b,c,ans=0; char p1,p2; string[] s = Console.ReadLine().Split(' '); a = int.Parse(s[0]); p1 = char.Parse(s[1]); b = int.Parse(s[2]); p2 = char.Parse(s[3]); c = int.Parse(s[4]);
这个过程主要是用于数据的读入,我选择的是3个数据,两个运算符为例子。
if ((p1 == '*' || p1 == '/') && (p2 == '*' || p2 == '/')) { if (p1 == '*') ans = a * b; else if (p1 == '/') ans = a / b; if (p2 == '*') ans = ans * c; else if (p2 == '/') ans = ans / c; } else if ((p1 != '*' && p1 != '/') && (p2 == '*' || p2 == '/')) { if (p2 == '*') ans = b * c; else if (p2 == '/') ans = b / c; if (p1 == '+') ans = ans + a; else if (p1 == '-') ans = ans - a; } else { if (p1 == '+') ans = a + b; else if (p1 == '-') ans = a - b; else if (p1 == '*') ans = a * b; else if (p1 == '/') ans = a / b; if (p2 == '+') ans = ans + c; else if (p2 == '-') ans = ans - c; }
这一部分代码是用于判断优先级和答案的存储
Console.WriteLine(ans);
Console.ReadLine();
这一部分是答案是输出和可见。
三、github
这一部分都是按照老师的操作来的,没有太大的问题。可能就是对英文不熟悉,还有第一次接触这些东西有点陌生和茫然。
四、测试
下面这些步骤是后面补充的,因为之前有点没看懂这些操作。然后请教了班上的同学。完成了仓库的构建。
五、感受
这次的感受非常非常的深,因为这是我第一次接触到GIT,单元测试还有很多这方面专业的东西。所以其实后半部分的操作中,遇到了很多问题。比如:软件的下载和使用,代码的使用,单元测试的进行,仓库的使用。在学习的过程中,将一个个问题解决的过程,其实是比较开心和激动的,自己也学到了很多东西。唯一的不足应该是可能时间还是比较紧,而且感觉还是比较难,可能是不熟悉陌生的原因。希望以后能够更加熟悉和轻松的去处理,能够写更大的软件和更完整软件过程。