软件工程课程作业(三)--四则运算3(C++)

伙伴链接:http://www.cnblogs.com/haoying1994/

一、设计思路

在此前程序拥有的功能:加减有无负数,除法有无余数,打印方式有屏幕输出和文件输出以及算式可定制的功能的基础上,此次程序又添加了算式结果的计算,提示用户结果正确与否,正确与错误个数的功能。
1.对于运算符的选择和算式个数,各算式的长短均利用随机数函数产生。
2.对于算式计算方面:
  只有两个数的加减乘除没有括号时:在减时考虑是否出现负数,除时考虑是否出现余数。
  多个数的加减没有乘除和括号时:遇到减号考虑前面结果是否小于减数,是则改变运算符为加号以确保最终结果没有负数。
  多个数的加减乘除没有括号时:在检索到式子中的乘除号时,判断其后面的符号,若有连续的乘除号,特别是有除号的时候,考虑是否需要余数,若有余数则利用找被除数因子的方法使连除的时候得数为整数,若无余数则将被除数和除数分别作为分子和分母保存起来。之后将只含有乘除号的连续子式先算出存入另一数组中,再与加减号相连的数进行相应的运算,在遇到加减运算符时,如果有余数,则利用通分的方法将结果保存为分数的形式。之后判断是否需要有负数,如果不需要负数,则在遇到减号时,将处在减数位置的式子利用随机数进行数值的重组,直到被减数大于减数为止。
  
3.对于算式输出方面:文件输出使用了ofstream文件输出流,输出到problems.txt中。
4.对于用户输入答案,判断用户输入字符串是否与正确结果相匹配,如果匹配,则提示恭喜你,答对了,否则提示回答错误,并且给出正确答案。利用循环计数判断正确回答题目的个数,在答题结束后显示在屏幕上。

二、源程序代码

三、运行结果截图

数量:5  打印方式:输到屏幕  乘除法:无  括号:无  负数:有  范围:0-10

数量:6  打印方式:输出到屏幕  乘除法:无  括号:无  负数:无  范围:0-20

数量:7  打印方式:输到屏幕  乘除法:有  括号:否  负数:无  范围:0-20

余数:有

数量:5  打印方式:输到屏幕  乘除法:有  括号:无  负数:有  范围:0-10

余数:无

四、编程总结分析

通过第三次四则运算实验中,我学习到了很多思想以及知识,锻炼了我的逻辑思维,使我提高了编程能力,受益匪浅。

在两次的实验中,四则运算程序已然可以实现诸多功能,有无负数,有无余数,可定制等功能,可以令算式出现在屏幕上,但是没有计算结果的输出。而在本次实验实现了运算结果的计算。 计算的编译和调试的过程中发现了许多问题,多次遇到计算结果不正确或者是跳不出循环,再来就是结果中分数的表示,结果错误或者是没有化简。在大体思路下具体的细节考虑的不周全,在这一过程中使我们的思路更加缜密了,对调试时出现的bug能够更快的找到解决方法。

我觉得让我学到更多的是这次的结伴这个主题,两个人一起开发可以相互学习到彼此编程方面的优点,可以培养彼此的合作意识,对将来在工作岗位上的团队合作帮助很大,在讨论过程中取长补短,吸取经验,学习技能,能够使编程效率大大提高。因此这次实验对我来说很有意义,在今后的程序开发时会起到很大的借鉴与帮助的效果,这次的结伴合作和愉快和成功!

五、项目计划日志

六、时间记录日志

七、缺陷记录日志

时间: 2024-08-24 05:26:22

软件工程课程作业(三)--四则运算3(C++)的相关文章

软件工程课程前三次作业总结

不知不觉间,软件工程的课程已经过半,而且团队项目也已经进入了冲刺阶段,距离最后25号的项目完成期限越来越近了,我们每个团队的每个成员都需要继续努力,争取在期末检查的时候能够给冯老师以及各位辛勤的助教老师们一份完美的答卷. 在上个月的月底4月28日下午上课时,信息系和冯老师非常荣幸的邀请到了我们课本的作者邹欣老师以及各位助教老师,并邀请各位老师现场为各位同学的初期团队项目作点评分析,为每个团队的编程方向指出了一条明路,让各个团队都有信心沿着这条大路走向期末团队作业最终的成功!在这场精彩的点评之前,

软件工程课程作业(一)—20道随机四则运算题(C++)

一.编程思想: 1.定义所需要变量2.设置数组,存储运算符,3.通过随机函数random(0,100)找出运算数,random(0,4)找出运算符4.通过输出显示运算式及其结果. 二.源代码: 三.运行结果: 四.目前实现功能: 1.100以内两数相加.相减.相乘. 2.实现100以内余数为0的除法以及结果为真分数的除法. 五.期望实现功能: 1.随机数每次运行的数都不一样. 2.可以实现四则混合运算.

现代软件工程课程作业 第一章第5题

我本科就读于东北大学,现硕士研究生阶段就读于天津大学.两所高校均具有计算机科学专业和软件工程专业.我参考了往年东北大学和天津大学的计算机科学专业和软件工程专业的培养计划看出两者的不同点. (1)在基础课程上计算机专业和软件专业都需要学习各类数学,但是往往计算机专业的还会学习物理方面的课程,可能是因为计算机偏向与硬件,还是需要大量的物理基础知识来支持他们完成接下来的专业学习. (2)除了计算机先关专业都需要学习的基础课,计算机专业的专业课更加偏向和硬件相结合的课程的学习,而软件专业的更加倾向于各种

现代软件工程课程作业 第一章第6题

目前,我国的法律对刷票行为并没有明令禁止,由于没有相关的法律支持,有关部门也无从监管,所以刷票行为是不犯法的,但是这种行为也是不符合道德规范的,至少它违反了诚信. 刷票机利用学校选课系统的漏洞帮助某些人选到某些课程或者帮助用户刷购票网站,先买到火车票,虽然不违反法律,但是也不符合道德规范.尤其是在春运时期,购票网站的压力很大,有很多人买不到票,这时若使用刷票软件确实会带来很多便利,但是也有相当大一部分乘客,他们根本不知道或者不会使用刷票软件.在很多人想要选课或购买火车票时,大家都在电脑前苦苦等候

软件工程课程作业(四)--返回一个整数数组中最大子数组的和

伙伴链接:http://www.cnblogs.com/haoying1994/ 一.设计思想 本实验要求输入一个正负数混合的整型数组,长度不限,在此数组的所有子数组中找到和最大的数组,并求出相应数组的和,且时间复杂度为O(n).我们在课堂上共同讨论了多种解决方案,这些将在下面可能的解决方案中展示,在听了同学的思路和老师的讲解之后, 我们最终选取了老师课堂上描述的比较简便的思路.如下: 在输入数组的环节,采用for无限循环加if判断截止,直到触发回车键为止,将数组记录到Array中,数组长度记录

现代软件工程课程作业 第一章第1题

有两个实体类:一个是逆波兰表达式类,一个是真分数类,还有一个工具类,生成随机数和栈深度复制 生成四则运算式通过先生成逆波兰表达式再转换为中序表达式来完成,计算通过直接计算逆波兰表达式的值,这就产生了三个功能需要实现:生成逆波兰表达式.转为中序表达式.计算. 真分数实现了生成,化简,加减乘除功能,可以加入四则运算式运算. 支持可变运算式长度 这里只粘逆波兰表达式代码吧 1 package cn.edu.tju.showmethecode.calculate; 2 3 import java.uti

现代软件工程课程作业 第一章10题

从我个人的亲身经历来阐述我和我曾经小组的成员理解的软件工程,同时通过讲述其中的经过来回答其中的某些问题.     首先介绍一下小组的成员,我们曾经是个五人小组,都非常有个性,但是更加恰如其分的评价就是都比较喜欢代码和做“项目”. 在大学四年,我们仅仅利用暑假时间完成了3个小程序的开发.大一暑假,我们完成了一个留言板程序.大致的时间或者说是开发 流程是这样的:首先,小组五个人进行讨论,确定我们的留言板都拥有什么功能,以及约定了在编程过程中可能拥有的代码规范, 然后,每个人拿着一份共同的需求,各自开

软件工程概论作业三

设计思想:构造如下几个类:试题类(class ShiTi): 属性:运算式.运算式结果.运算式逻辑运算顺序和运算数个数 公共方法:各个属性的set/get方法, setTiMu方法中在设置了题目属性后立即设置运算数的个数并执行计算运算式结果的函数 在计算运算式结果的函数中,利用堆栈将运算式转换为后缀表达式进行计算, 每计算一个子表达式就将该表达式的运算数加上产生该运算数的子表达式的序号用's'分隔(例如运算式为1 + 2 + 4 则第一个子表达式的运算数为1s0,2s0,第二个子表达式为3s1,

现代软件工程课程作业 第一章14题

选择的两个平台:网页+android 1.平台:网页 编程语言:html5 软件的构建环境:Notepad++ 6.9.2    Google Chrome 51.0.2704.106 软件工程的工具:Git 开发的流程: 最后的源码: <html> <head><title>test</title></head> <body color = 'green'> <marquee> <font size='18'>