要求1 参考《构建之法》第4章两人合作,结对编程上述功能,要求每人发布随笔1篇 (代码是共同完成的,博客是分别完成的)。 (1) 给出每个功能的重点、难点、编程收获。(2)给出结对编程的体会,以及 (3) 至少5项在编码、争论、复审等活动中花费时间较长,给你较大收获的事件。

1功能一

重点:判断符号的优先性。因为这是给中学生出的题目,所以在试题的编写上,不能过于简单雨不能太困难。

void check(char c, stack<char>& coll2, deque<char>& coll3)
{if (coll2.empty()){coll2.push(c);return;}if (isPra(c)){if (c == '(')coll2.push(c);else{while (coll2.top() != '('){char ch = coll2.top();coll3.push_back(ch);coll2.pop();}
            coll2.pop();}}else
    {char sym = coll2.top();        if (getPri(c) <= getPri(sym)){            coll2.pop();
            coll3.push_back(sym);
            check(c, coll2, coll3);}else{
            coll2.push(c);}}
}

2.功能二

重点:括号的添加,因为四则运算的运算规则,要先计算括号里的算式,所以要使括号先执行。

void sz2(){int a, b, c, d, k1, k2, k3, count;char c1, c2, c3;double e, f;int k;count = 0;string str;for (int i = 0; i < 20; i++) {k1 = rand() % 4;if (k1 == 0)c1 = '+';else if (k1 == 1)c1 = '-';else if (k1 == 2)c1 = '*';else if (k1 == 3)c1 = '/';k2 = rand() % 4;if (k2 == 0)c2 = '+';else if (k2 == 1)c2 = '-';else if (k2 == 2)c2 = '*';else if (k2 == 3)c2 = '/';k3 = rand() % 4;if (k3 == 0)c3 = '+';else if (k3 == 1)c3 = '-';else if (k3 == 2)c3 = '*';else if (k3 == 3)c3 = '/';a = rand() % 10;b = rand() % 10;c = rand() % 10;d = rand() % 10;if (c1 == '/') {a = a*1.0;b = 2;}if (c2 == '/') {b = b*1.0;c = 2;}if (c3 == '/') {c = c*1.0;d = 2;}stringstream ss1;stringstream ss2;stringstream ss3;string s1;string s2;string s3;ss1 << "(" << a << c1 << b << ")" << c2 << c << c3 << d;ss2 << a << c1 << "(" << b << c2 << c << ")" << c3 << d;ss3 << a << c1 << b << c2 << "(" << c << c3 << d << ")";s1 = ss1.str();s2 = ss1.str();s3 = ss1.str();k = rand() % 3;if (k == 0)str = s1;else if (k1 == 1)str = s2;else if (k1 == 2)str = s3;cout << str << "=" << endl;deque<char> coll1;          stack<char> coll2; deque<char> coll3;   stack<int>coll4;  for (int i = 0; i != str.size(); ++i){            coll1.push_back(str[i]);}        allocate(coll1, coll2, coll3);        calculate(coll3, coll4);f = coll4.top();cout << "?";cin >> e;if (e == f) {cout << "答对啦,你真是个天才!" << endl;count++;}else if (e != f) {cout << "再想想吧,答案似乎是" << f << "喔!" << endl;}    }cout << "...(一共20道题)" << endl;cout << endl;cout << "你一共答对" << count << "道题,共20道题。" << endl;
}

3.功能三

重点:命令行的字符判断。对于输入的题目必须是正整数,不能是英文,负数,浮点数。

void main(int argc, char *argv[])
{if (argc == 1) {sz2();}else {int b1;float b2 = atof(argv[2]);if ((b2 - (int)b2) > 0){cout << "题目数量必须是 正整数。";exit(0);}else {b1 = atoi(argv[2]);if (!(*argv[2] == '+' || (*argv[2] > '0'&& *argv[2] <= '9') || *argv[2] == '.')) {cout << "题目数量必须是 正整数。";exit(0);}sz3(b1);}}}

重点:把算式输出到文件中,方便打印。

ofstream fout;
fout.open("f4.txt");
fout << str << "=" << "\t" << "\t" << std::left << f << endl;
fout.close();

结对编程体会:经过结对编程的这次作业,我收获颇大,因为向我的结对成员学到了非常多,发现结对编程非常适合知识的分享与传递,快速熟悉自己所不了解不熟悉的领域。结对编程需要天时地利人和,首先保证工作地点的获得,队友两人的时间安排,以及最重要的是双方的工作习惯,技术观点相近,效率会明显提高,否则,将导致进度停滞不前,效率降低,以及保证双方的精力充沛,因为结对编程很累。结对编程的形式处于不断审查过程中,每一句代码都由一个人编写,另一个人检查,从而大大降低了bug的出现。

5项在编码、争论、复审等活动中花费时间较长,给你较大收获的事件:

1.在制定代码规范时,由于双方的编程习惯和审美观点不同,在制定规范出现了分歧,通过初步的在线讨论和面对面交谈,双方都进行妥协,最大限度的满足两个人的要求,这样在接下来的编程过程中互相提醒和进步,对于结对编程来说是一个好的开始。

2.编程初期,我的队友提出四则运算想采用穷举的方法进行实现,我提出这个方法会不会代码量过大,工作时间过长,但也同意用这个方法试试看,但接下来的工作过程中,代码量过于庞大,.无法再往下进行,果真印证了这个猜想。

3.在编码过程中,对于命令行的字符判断的实现进行长时间的讨论。

4.在结对编程中,一个人在写,一个人在检查,在某个小问题上可能也要争论半天,有时候队友的提醒,虽然是是无心之举,可能就打扰了正在编程工作者的思路,大大降低了效率。不过,既然是两个人,能快速在别人身上学到自己不太熟悉的知识,认识到队友指出自己的缺点,共同进步。

5.功能四的实现问题进行了讨论,因为功能四的实现遇到困难,以至于两个人在到底是否进行实现的问题上,出现分歧。最后由于各自时间安排,没有实现功能四

要求2 给出照片1张,包括结对的2位同学、工作地点、计算机,可选项包括其他能表达结对编程工作经历的物品或场景

结对成员:王伟东、李圆圆

工作地点:计算机楼107教室

计算机:联想电脑,操作系统为64位,内存为8g

编程经历:应老师的要求,结对编程需在物理空间下,相距一两米的距离,所以在选用了在无人上课的教室进行实际操作,因为工作地点的不稳定因素,所以要随时更换工作地点,打断工作进程,效率降低,其次因为事先工作习惯的原因,在电源突然切断的情况下,对所完成的代码进行提前保存,避免大量工作的重复进行。

照片:

要求3 使用coding.net做版本控制。checkin 前要求清理 临时文件、可执行程序,通常执行 build-clean可以达到效果

地址:https://git.coding.net/lyy181/count.git

运行截图:

转载于:https://www.cnblogs.com/1994-83/p/7646114.html

第四次作业—四则运算相关推荐

  1. 第四次作业---四则运算升级版(带可视化界面)

    本次作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2213 同伴的github远程仓库的地址:https://githu ...

  2. 第四次作业-四则运算

    前言 • 作业要求地址:https://edu.cnblogs.com/campus/nenu/SWE2017FALL/homework/997 • 结对伙伴:宋雨http://www.cnblogs ...

  3. 软件工程第四次作业-四则运算试题生成

    四则运算试题生成 博客园地址:http://www.cnblogs.com/liuyaoze/ git地址:https://git.coding.net/Vector121/f4.git 要求1: ( ...

  4. 软件工程第四次作业—四则运算[结对刘成志]

    四则运算 要求1 参考<构建之法>第4章两人合作,结对编程上述功能,要求每人发布随笔1篇 (代码是共同完成的,博客是分别完成的). (1) 给出每个功能的重点.难点.编程收获. (一)pu ...

  5. 2021年人工神经网络第四次作业:基于MATLAB的求解

    简 介: 本文选取了2021年人工神经网络第四次作业学生提交的作业.供交流使用. 关键词: 人工神经网络 #mermaid-svg-ATqdYQemfmABj2Hj {font-family:&quo ...

  6. 2021年人工神经网络第四次作业要求:第七题

    简 介: 对于MATLAB中的SimpleClass数据集合,对比了BP,RBF,SVM,SOFM,DHNN 等方法分类结果,可以看到BP,RBF,SVM,SOFM都具有非常好的分类效果.DHNN对于 ...

  7. 2021年人工神经网络第四次作业 - 第三题Cifar10

    简 介: 在Paddle下使用最基本的BP网络以及LeNet网络结构,测试了Cifar10数据集合.但实际运行在测试集合上的效果始终没有突破0.3,具体原因还需要进行查找. 后来经过测试,发现问题出现 ...

  8. 2021年人工神经网络第四次作业 - 第二题MNIST手写体识别

    简 介: ※MNIST数据集合是深度学习基础训练数据集合.改数据集合可以使用稠密前馈神经网络训练,也可以使用CNN.本文采用了单隐层BP网络和LeNet网络对于MNIST数据集合进行测试.实验结果标明 ...

  9. 2021年人工神经网络第四次作业-第四题:旋转的数字

    简 介: 本文对于作业中给定的机械数字字符识别问题进行了实验研究.通过对于采样1000样本的数据集合进行训练,经过增加DropOut的可以增加网络的泛化性能.对于网络规模的增加对训练精度没有明显的改进 ...

最新文章

  1. AttributeError: ‘dict‘ object has no attribute ‘append‘
  2. [转载] 信息系统项目管理师考试论文写作要点
  3. 安卓取map集合转换为json_android json解析成map格式
  4. 看AI如何改变医疗影像学
  5. 【生成模型】解读显式生成模型之完全可见置信网络FVBN
  6. cambridge phd in engineering
  7. pci配置基地址_PCIe扫盲——基地址寄存器(BAR)详解
  8. 一个四维的人在三维世界里到底长什么模样?
  9. spark启动的worker节点是localhost_Spark大数据在线培训:Spark运行原理解析
  10. 从日常代码质量检查工作中感受工作中的乐趣、生活的乐趣
  11. Codeforces 739B Alyona and a tree (树上路径倍增及差分)
  12. 示波器纹波测试的时间设置_500W电源横评:输出纹波3款电源超标
  13. 您应该了解的云管理知识
  14. JUC(二):Java 线程预备知识
  15. 径向基函数神经网络(RBFNN)
  16. lombok中的@Builder、@Singular注解
  17. 截取Chrome下载的mp3
  18. 任务分配算法c语言程序,程序员算法基础——贪心算法
  19. 常用benchmark小结
  20. html的五角星怎么打出来,五角星符号怎么打出来?

热门文章

  1. 鸿蒙比安卓流畅,华为鸿蒙系统首升用户体验:流畅得不像话,专属应用体积超小!...
  2. ReactNative连接android模拟器
  3. 基于python的租房网站
  4. 第19部分- Linux x86 64位汇编GDB单步调试
  5. python实现QQ第三方登录
  6. python如何将图片分成不同颜色的区域——三通道彩色图片
  7. HiveSQL percentile和percentile_approx 函数计算千分数
  8. 坐标转换—高斯正反算(附测量助理最新版软件下载)
  9. 【评测】MP SARS-CoV-2单抗、重组蛋白
  10. html中的href属性_href(HTML属性)