相同部分

1)两位合作者的学号和对应的博客主链接

赵畅:111500206 http://www.cnblogs.com/ZCplayground/

胡绪佩:031602114 http://www.cnblogs.com/heihuifei/

2)描述实现设计思路

首先一拿到这次作业的时候,目的大致分为两块

a.随机生成一个四则运算表达式(即运算数以及运算符都要是随机的)提供给用户填写答案。

b.将生成的随机表达式(运算式)计算出结果,核对用户填写的答案。

根据这两个大的分块思路,我们将题目分块化处理编写,程序大的模块分为,题目模块,外部函数,主函数三个。(因为这次的作业我们是合作完成,而我的搭档是一位经验较丰富的大哥,所以很多大致的思路是大哥一开始提出来给予我引导的)下面是实现设计过程中的一些技术性难点

  1. 生成随机数:显然这个是以前很少接触的一个知识点(对我来说),得靠自学的,而在自学自用的时候肯定就会发现问题:会出现伪随机和真随机的区别。也就是时间种子方面的修改(这个我只是明白,但是自己还没有对其种子修改,但是之后会加入弥补的计划里)

  1. 如何存储并显示运算表达式,如果试过的就会发现用数组是很麻烦的,因此我们采用了用string类来存储表达式。
  2. 在表达式中出现数字10的特殊情况以及括号的添加(如果用数组)

  3. 在表达式中运算符出现除号要考虑被除数不能为0的情况(包括括号内两个数之间以及括号外两个括号值之间)
  4. 结果或者是中途出现不能除尽,值为分数的情况要排除。

  5. 将表达式(中缀表达式)(我们的思路它是一个字符串)计算出结果(这里头我们用的方法为逆波兰表示法,其中就要用到栈的知识)

这是我的笔中的一块截图。

我们团队的编码规范已经放在GitHub(Coding Standards)上,其中一开始我对于这个编码规范是不是很懂意思的,后来畅畅给了我很多指导,我也主要修改完成我们的编码规范,让我从中学到了很多,我们的代码规范订制方式是通过网上找了一篇比较齐全的代码规范,然后对其进行大规模改动,最后成为我们的代码规范。

下面简单的举几个学到的我认为帮助很大的点:

  1. if、for、do、while、case、switch、default等语句自占一行,且if、for、do、while等语句的执行语句部分无论多少都要加括号{}。
  2. 程序必须具有一定的注释,便于对程序的理解。注释需要简介明了准确,不然有可能起反作用。一定要边写代码边注释(尤其本次作业中的一次长时间我和畅大哥的远程演示分享一起debug的过程,让我体会更深了)

  1. 标识符命名原则。变量:采取小驼峰法(即除第一个单词不用大写,其他单词开头都要大写),函数名、类名:采取大驼峰法(所有单词开头字母都要大写),数组名:采取小驼峰法,并且用下划线分隔单词。
  2. 操作符+,=,以及逗号等等后面要加空格,方便阅读。

4)程序实现和结果测试的截图:

//这是我做我的模块的时候的一张截图。

//这是最开始畅畅大哥安排我先学习一些准备知识的时候,//我单独自己尝试的运行截图

//这是我们的程序最后成功运行的中英文界面截图。

5)GitHub上提交的链接和提交日志截图

因为这次的作业我们团队是以我的搭档为主心骨共同合作的,我提交的是在我们的开发分支dev上,最后畅畅提交到master分支。

本次作业的GitHub链接

6)本次作业的分工以及证据截图

本次作业的分工,前面也有说我的搭档是一位经验较丰富的大哥,所以以他为主心骨。我负责了ExtendFunction.h的大部分内容以及我们的代码规范doc文件的大部分,最后畅畅大哥帮我检查润色修改了一些。畅畅负责的是几个这次作业的难点,main.cpp,Expression.h,stack.h三个部分(并非我就是什么都不管的,同时我是在学习这些知识点的,最后才能和畅畅大哥的模块接好口,有很多是畅畅大哥督促建议我学习的,收获可很多)

对于证据截图,看我们的组合,大家应该可以猜到,差距是比较大的,所以在一开始的时候大哥就安排我事先学习一些知识点,最后再协作完成这次作业。而在我们学习合作的过程中,基本上每天我们都会联系一个小时以上(首先了解对方当天做的事情,然后我会问一些当天学习遇到的疑问看畅畅大哥能否帮忙解答)。

最后有一天晚上我们奇迹般的远程演示联系了3个多小时,当天我们一起debug了好久,最后终于把整个程序大致整理好了,我们都很开心,后面就发布了传说中预览版哈哈。下面这几张图可以给大家欣赏一下:

当天晚上我们就都是4点钟才睡的。

差异部分

1)合作过程:

我和畅畅大哥一起合作的之后,一开始我有很多知识点是比较弱的,大哥就先安排我学习了一些十分重要的知识,仅仅就是那份那份代码规范也让我收获很大(代码规范合作体会)。最后我也成功的实现了和畅畅大哥的程序模块对接,这个过程中,收获是难以形容的,尤为重要的有,题目模块化,函数细分到最简单,debug一定要坚持,遇到问题最好以自学自查的方式解决。最后我们在15号下午发布了该程序的最终版本!

合作体会:

  1. 积极参与思考,工作。
    每次的合作都必须以合作者的身份积极加入思考,参与工作,才能做出最好的合作结果并且收获到最多。就说这次的作业,我其实参与或是不参与影响不是吧很大的,但是首先这是一个团队作业,合作过程,我必须积极参与,另外我要想学习到很多,收获很多就必须积极参与,我觉得这次我做的还没有很好,但是也收获了很多,有了很大的进步。

  2. 好的搭档。我想每次的合作团队都是要每个成员都有积极性,有责任心,并且有各自的优点。就比如说这次我的搭档畅畅,我觉得是一位非常好的大佬及搭档,积极性高,i经验丰富,而且乐于帮助我这个渣搭档。
  3. 平时编码的细节注意点,就比如说这次的编码规范中的很多东西是要在平时就养成习惯的,再合作的过程中这个很重要的,因为要方便对接。
  4. 善于学习,这次作业的完成过程中,有很多需要自己自学自查自用的东西,只有善于学习,才能做好自己的任务,实现更好的合作。

我认为本次作业的我们还有一些没做到位的点:

  1. Github上我们的协作编码的pull与clone这些一开始没有很熟,所以就忽略了,后面才注意用到Github上有这些十分方便的功能。

  2. 没有实现附加分的真分式的运算。

转载于:https://www.cnblogs.com/heihuifei/p/6405398.html

寒假作业3(传说中的写软件)相关推荐

  1. 你,的寒假作业写多少了?

    大家好,我是雄雄,欢迎关注公众号[雄雄的小课堂]. 一晃寒假已过10多天,亲爱的同学们,你的寒假作业写多少了?是一点都没动呢还是多少动了点了? 昨天晚上在3班的群里发了几套课程,刚发就有几位同学问我关 ...

  2. 中专计算机寒假作业,中职计算机寒假作业[优质课资]

    <中职计算机寒假作业[优质课资]>由会员分享,可在线阅读,更多相关<中职计算机寒假作业[优质课资](3页珍藏版)>请在人人文库网上搜索. 1.二(1)班计算机寒假作业请学生将下 ...

  3. 2017寒假第一篇随笔(寒假作业一)

    在人生技能道路上,你有没有专长的高超技能获取的成功经验? 在高中时没有过多的兴趣爱好,只是喜欢在闲暇之余看一集美剧,长时间处于美式英语的"熏陶"之下,自然对英语产生了浓厚的兴趣,在 ...

  4. 计算正方形面积和周长_寒假作业:长方形、正方形周长面积应用题,附答案

    相信不少小朋友已经完成寒假作业了,在完成寒假作业的时候,你遇到了哪些问题呢? 三四年级的小朋友可能会遇到倍数关系.长方形.正方形周长和面积的问题,大部分的小朋友是无法理解题意导致的错误.在做方形的周长 ...

  5. 寒假作业3:抓老鼠啊~亏了还是赚了?

    #寒假作业3:抓老鼠啊~亏了还是赚了? 7-1 抓老鼠啊~亏了还是赚了? 某地老鼠成灾,现悬赏抓老鼠,每抓到一只奖励10元,于是开始跟老鼠斗智斗勇:每天在墙角可选择以下三个操作:放置一个带有一块奶酪的 ...

  6. 寒假作业2:币值转换

    寒假作业2:币值转换 #寒假作业2:币值转换 7-1 币值转换 (20 分) 输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成&q ...

  7. [转载]高一语文必修一寒假作业二

    [转载]高一语文必修一寒假作业二 2012年01月15日 高一语文必修一寒假作业二 一.(每小题3分,共15分) 1.下列加黑字读音全部正确的一项是() A.岑(cén)寂 勾(gōu)当 蕴藉(jí ...

  8. c语言寒假作业班干选举系统,寒假作业1

    这个作业属于哪个课程2020面向对象程序设计张栋班 这个作业要求在哪里 面向对象程序设计寒假作业1 这个作业的目标 对c语言与c++的思考,安装开发环境,了解编译的过程,学习文字的编程,通过思考与学习 ...

  9. 计算机基础应用寒假作业,计算机应用基础理论试题寒假作业.doc

    计算机应用基础理论试题寒假作业.doc (9页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 潜江市职业教育中心<计算机基础知识> ...

最新文章

  1. 这个登上Nature封面的「群体学习」,无需中央协调员,比联邦学习更优秀
  2. 【Jenkins系列1】Jenkins定时任务设置
  3. 030_jdbc-mysql事务
  4. php 单选按钮选中的值,在javascript中根据单选按钮选择更改变量值
  5. 【线上分享】超分辨技术在RTC领域面临的机遇与挑战
  6. 以太网供电技术/有源以太网技术POE简单介绍
  7. 收藏表数据库_选择您的收藏库
  8. tablix“Tablix1”有一个具有内部成员的详细信息成员
  9. 怎样用 Python 控制图片人物动起来?一文就能 Get!
  10. 爱奇艺回应遭做空;百度 App 部分频道停更;React Native 0.62 发布 | 极客头条
  11. mysql 索引 insert_mysql优化:定期删数据 + 批量insert + 字符串加索引为什么很傻
  12. 12.docker inspect
  13. 有java基础学python-零基础应该选择学习 java、php、前端 还是 python?
  14. 单片机c语言中void key(void),单片机C语言编程
  15. 定积分证明题例题_一个广义积分不等式证明(送给数学分析同学)
  16. 硅谷华人码农成语大全
  17. react-native打包Android apk
  18. div 左中右结构布局问题
  19. 在国企的 Java 程序员是一种什么样的体验?让我来告诉你吧!
  20. 【开源库分享】雷电模拟器自动化操作库 C#版本

热门文章

  1. dojo + jersey 上传图片到数据库
  2. schedule调用相关整理
  3. 路由协议之间的经典对比
  4. css网页favicon_自用代码css获取任意网址的/favicon.ico的方法教程
  5. mpvue返回上一个页面_服务器出现404页面是什么情况了
  6. 使用ip rule查询路由策略, 使用ip route修改静态路由表
  7. Ubuntu Server 16.04.x进入中文安装界面无法安装busybox-initramfs
  8. mysql——event定时任务
  9. shared_ptr四宗罪
  10. java 动态给属性赋值_java中为实体对象的动态属性赋值