2017年秋季学期软件工程第二次作业(陆祈祯)

一、源代码地址:https://github.com/lqzlqzlqz/-2

二、 PSP表格


PSP2.1


Personal Software Process Stages


预估耗时(分钟)


实际耗时(分钟)


Planning


计划

   

· Estimate


· 估计这个任务需要多少时间

 12x60  18x60

Development


开发

   

· Analysis


· 需求分析 (包括学习新技术)


6x60


6x60


· Design Spec


· 生成设计文档

 60  60

· Design Review


· 设计复审 (和同事审核设计文档)

 30  无

· Coding Standard


· 代码规范 (为目前的开发制定合适的规范)

 30  30

· Design


· 具体设计

 4x60  8x60

· Coding


· 具体编码

 6x60 12x60

· Code Review


· 代码复审

 30  30

· Test


· 测试(自我测试,修改代码,提交修改)

 30  30

Reporting


报告

 30  30

· Test Report


· 测试报告

 60  60

· Size Measurement


· 计算工作量

 10  10

· Postmortem & Process Improvement Plan


· 事后总结, 并提出过程改进计划

 60  60

合计

   12x60 

三、解题思路

    看到这个题目我内心是崩溃的,因为之前关于c++的知识全部都忘记了,需要花一定时间去复习。在进行简单的复习后,根据老师的要求,形成了以下解题思路。

    需要随机生成的运算符和运算数通过随机函数生成;通过构造分数结构体来生成包含分数的计算式;核对结果,先计算乘除后加减的方法较为合适;通过时间函数,计算答题时间来调整最后分数;题目的难度则根据运算符个数来判断,超过5个即为难,得附加分;在每次循环前通过srand((unsigned)time(NULL)),避免题目重复;题目所给的要求基本都能达到。

    在具体实施前,将循环语句,if语句等可能会用到的语句复习一遍;再利用几个简单的c++小程序找回编程的感觉看到一大堆代码不会很烦;这中间比较难得应该是核对答案,要用计算机能看懂的方法来进行四则运算;最后将一些细节处理,比如具体加减分的规则。

    

三. 设计实现过程

    1.在主函数前先定义函数方便计算:四则运算函数,求最大公约数函数,构造fengshu结构体。进入主函数,根据用户输入的题目数来产生相应的算式;接着进入一个主循环,先随机生成算式,再利用四则运算计算结果,最后核对结果,输出相应提示;主循环结束后输出本次测试的情况,再根据用户输入,判断是否结束测试。

    2.结果核对。得到一个随机算式后,先计算乘除,将结果赋予算式右边的数,运算符变加法,最后进行加减法。

  

四、代码说明

    1.构造fengshu结构体

        fengshu jisuan(fengshu n1,fengshu n2 ,char op )

    2.求最大公约数函数

int gys(int x, int y) 
      {
      return y ? gys(y, x%y) : x; 
      }

    3.四则运算函数

fengshu jisuan(fengshu n1,fengshu n2 ,char op )
      {
      fengshu jieguo;
      switch (op) {
      case ‘+‘: {
      jieguo.a = n1.a*n2.b + n2.a*n1.b;
      jieguo.b = n1.b*n2.b;
      break;
      }
      case ‘-‘: {
      jieguo.a = n1.a*n2.b - n2.a*n1.b;
      jieguo.b = n1.b*n2.b;
      break;
      }
      case ‘*‘: {
      jieguo.a = n1.a*n2.a;
      jieguo.b = n1.b*n2.b;
      break;
      }
      case ‘/‘: {
      jieguo.a = n1.a*n2.b;
      jieguo.b = n1.b*n2.a;
       break;
      }
     default: {
     jieguo.a = 0;
     jieguo.b = 1;
       }
     }
     int t;

t = gys(jieguo.a, jieguo.b);
    jieguo.a = jieguo.a / t;
    jieguo.b = jieguo.b / t;//约分

return jieguo;
     }

4.计算结果

      

五、测试运行

    

      

六、项目小结

      这次作业的完成可以说是非常艰难的,因为之前学的也没有用心,基础不够扎实,虽然专门抽时间去学习和复习,但是一到编程序就会有各种小问题,导致整个程序运行不下去,这次的收获和总结如下:

      1.看程序不慌了。一大堆代码出现在面前就心乱如麻,不知从何下手,但是结果这几天的苦练,看了不少代码,能够耐心地读下去,对以前的知识也忽想起一部分,看到代码没有之前那么没有头绪了。

      2.学习东西以解决问题为导向。在做这个作业的时候,由于基本功不扎实,拿着以前的教材看了很久,这样效率不高,看完之后面对一堆代码也是心里没底,还不如直接分析这份作业的问题,去网上查找相关资料,看不懂的地方再返回来看书本,这样能节省很多时间。

      3.在接下来的学习中还要加强c++基本知识的学习。在解决如何计算结果的时候,找到一个后缀计算法,思路能理解,但是具体的代码实现没有搞明白,照葫芦画瓢搬到自己程序上来,结果运行不了,花了很多时间也没有找到解决方法,在计算过程中进行了测试,输出结果不对,不知道是自己计算代码出问题?还是其他的参数或者函数定义有问题?后来换了一种简单的计算方法,还是不行,在确认自己计算的程序没问题后,返回去再看其他代码是不是写错了,最后发现是在定义四则运算函数时出了问题,之前是用了3个else if来进行不同情况的计算,换成switch语句后,输出结果就对了,虽然问题解决了,但是错在哪还是没搞明白。两种编法我都传到源代码地址了。

      4.简单的问题也是一种锻炼。现在完成这次作业后,回头看,这个问题也不难嘛。解题思路没有出问题,在具体编写代码的过程中各种小问题不断,而且往往这种小疏漏也很难发现,翻来覆去地被这些小问题困扰,心情也变得很差,有的时候很难进展下去。经过折磨的几天,终于把作业交了,中间浪费的时间实在可惜,循环语句中控制循环的参数记错,给参数赋值的位置不对等等小问题,这也是基本功不扎实的表现,希望接下来继续学习,把为都解决了。

原文地址:https://www.cnblogs.com/lqznb/p/8178037.html

时间: 2024-10-15 10:41:13

2017年秋季学期软件工程第二次作业(陆祈祯)的相关文章

2017年秋季学期软件工程第二次作业

源代码链接:https://github.com/FredaCao/homework1.git 一. PSP表格 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 10 10 Estimate 估计这个任务需要多少时间 255 260 Development 开发 150 165 Analysis 需求分析 10 暂无 Design Spec 生成设计文档 10 暂无 Design Review 设计复审

2017年秋季学期软件工程第一次作业(曹洪茹)

作业一 在开始作业要求的正文之前,我先简单谈谈自此课开课以来,包括读了许多大牛写的博文之后的几点感悟和思考. 首先,作为一名有四年地方大学生活经验的军校研究生,我很激动也很庆幸在研究生阶段能遇到这么一门真正实现本科教育改革创新,以培养学生思维逻辑能力.切实达到教学目标为为目的的课程.同时,比较讽刺的是,在崇尚思想自由.开放.创新的地方本科院校没有邂逅的这种课程反倒让我在军校这个相对封闭化.教条化的环境中接触到了,这主要得益于何老师对教育的前瞻性的战略眼光.其次,我对这个课的课堂模式是持支持态度的

软件工程 第二周作业

##软件工程第二周作业 提出问题 1. 一般来说,想要自己的程序跑得又快又好,就要减少函数的反复调用,但有所得则必有所失,效能提高就有可能伴随着程序的稳定性的降低,这两者应该如何权衡呢? 2. 关于5.3.5 老板驱动的流程,这种开发流程模式存在着一些问题,那要如何解决这些问题呢? 这种模式当然也有它的问题. 领导对许多技术细节是外行. 领导未必懂得软件项目的管理,领导的权威影响了自由的交流和创造. 领导最擅长的管理方式是行政命令,这未必能管好软件团队或任何需要创造力的团队. 领导的精力有限,领

2017秋-软件工程第二次作业

本周因为个人缘故,参加社团活动作业没能及时完成.对此我表示,做过就不后悔,至少我觉得生活是丰富多彩的,错过的时间就应该努力赶上!夜深人静的时候总是可以让人反省自己.本次作业我只实现了第一个功能和第二个功能的部分.对此我表示很不满,但是时间紧迫.个人能力有限,以至于自己没能让自己的软件看起来完美. 第二次作业的内容非常有趣,这也是我一直想做的一件事情,统计一篇文章里的字词.我知道自己的编程能力较差.距离完成提交时间很近,自己手写全部是不能及时按照约定提交的,于是就尝试借鉴前人的代码.第一晚的努力各

2017软件工程第二次作业(一)

第二周例行报告 PSP 本周进度条 累积进度图 博文字数累积折线图: 代码行数累积折线图: PSP饼状图

软件工程第二次作业--师兄采访

我采访的是李权师兄,虽然之前也有人采访过他,问题都是同样的问题,不过我挖掘出了和其他同学不一样的信息. 问题:    师兄,当时你们做的项目是什么,有多少用户, 现在还有人用吗? 李权师兄: 当时我们的项目名是约跑APP,当时用户有8人.在用户的手机上测试通过,能让用户找到一起跑步的小伙伴.现在已经没有人用了. 追问:该app给用户提供了什么样的服务? 李权师兄:app能提供给用户认识新朋友的平台.通过app,用户可以约人一起跑步. 第二个问题:师兄这个项目能否给我们团队继续开发,源代码还有么?

软件工程第二次作业(王伟东)

一周的时光转瞬即逝,第二周的作业也悄悄地开始了.杨老师的一言一行都深深地刻在我的心里,"不迟到"是做人做事的根本,努力则是成就人生的基石.正如<道德经>中所言"天地不仁,视万物为刍狗",上天对待世间万物是公平的,从来都是不偏不倚,只有勤奋好学的人才会得到垂青和奖赏. ㈠词频统计的四个功能 ①首先控制台输入内容到文件中,再对文件进行词频统计: ②命令行输入英文作品名,然后统计作品词频: ③命令行输入英文作品文件的目录名,再批量统计: ④从控制台读入英文单篇

软件工程第二次作业——git的使用

1. 参照 http://www.cnblogs.com/xinz/p/3803109.html 的第一题,每人建立一个GitHub账号,组长建立一个Project,将本组成员纳入此Porject中的Collaborators,并添加[email protected] 为Collaborator.   邓杰: 陈宗雷: (1)在之前已经建立了自己的github账号,账号名称为zongleichen. (2)以合作者身份加入到组长建立的项目: 2.   每人自己建立一个HelloWorld项目,练

2017年秋季学期获“领跑衫”感言

团队名称:Thunder 项目名称:爱阅app 团队成员:王航.李传康.代秋彤(原).翟宇豪.邹双黛.苗威.宋雨.胡佑蓉.杨梓瑞 首先非常感谢邹欣老师和周筠老师资助的领跑衫,感谢杨贵福老师的教导,也感谢我们Thunder团队的所有成员对我的帮助. “获奖感言”这个词我虽然经常能听到,但是对于我来说还是一个比较陌生的词,因为这是我第一次写获奖感言.在这学期刚开学的时候杨老师就说过学期结束的时候会有一个领跑衫的奖励,当时听到这件事的时候还挺心动的,但是我觉得以我的水平应该也就只能想想罢了.随着时间的