- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Vc++课程设计报告
题目名称:四则运算
班级:测控技术与仪器
姓名:周赛
学号:914101170150
一、程序功能简介
该程序用字符串形式接受一个带括号的四则运算表达式,然后按照四则运算优先级的算法先括号,后乘方、乘除、加减这样的顺序将这个算式解出。
该程序的设计比较巧妙,是在主程序中反复查找最后一对括号,将其中的结果计算出来,去掉括号,这样的过程持续下去,最后导致所有的括号都去除,解出算式。
二、课程设计要求
(1)用类的要求改写程序,将数据和函数封装到类中。
(2)修改主程序,使程序可以反复运算,直到选择退出为止。
(3)扩充程序功能,使程序适合浮点数运算。
(4)增加程序的判断功能,当有非法的输入时(如字母等),给出提示信息并退出运算,当输入带有空格时,能将空格滤除。
三、程序设计思想
(1)类的封装
实际上该字符串类基本类似于c++中的string类,比string类多定义了浮点数与字符串的相互转换的函数,输入输出友元函数,可以从string类派生出CStr类,这样,类的定义就更加简单,且可以利用很多现成的成员函数。
(2)主程序结构算法的设置
定义char类型的变量用来存储字符串,定义CStr类用于对字符串操作函数的引用。
先对输入字符串用Judge函数进行输入正确性的判断及取出空格内容;
然后用charinstr函数在字符串中反复查找最后一对括号;
用midstr函数提取出来,用calculate函数进行计算;
并用left函数与right函数及addstrings函数将所找到这对括号的左边、右边及运算结果以字符串的形式合并成一个新的字符串;
重复上述操作直至字符串中不再有括号;
最后用calculate函数进行最后的计算返回计算结果。
紧接着进行是否退出计算的输入判断,完成程序反复运算的功能。
四、详细设计
= 1 \* GB3 ①判断功能:用类中定义的judge函数实现,返回值为1即合法,为0即不合法。
去除空格:定义p、s两个指针指向字符串,r指针指向p指针实现p、s指针在字符串中的遍历,用p指针找到第一处空格处,再用s指针找到p指向位置以后最近一个不是空格处,赋值语句*p=*s,继续向下遍历字符串直至结束。
非法输入:定义destination指向字符串,列举算式中出现的合法的字符,通过遍历字符串找到非法输入字符,返回0;
非法算式逻辑:包括运算符号相连,以及违背运算法则等现象,通过对运算符号的遍历比较实现;还有包括左括号前或右括号后紧挨数字,通过定义一个新字符串数组指向字符串来寻找括号并判断括号前后是否合法;非法,返回0;
全都合法返回1.
= 2 \* GB3 ②数字字符串转换成数字:用类中定义的val函数实现,扩充到浮点数的运算范围。
定义char类型的source指针指向字符串,用charinstr函数寻找字符串中小数点位置,以此判断整数还是浮点数,如果整数即用10的相应位数的乘方来乘以相应字符位置字符的数字,并进行累加,最后返回result;如果是浮点数,则分为整数与小数部分依次进行计算,整数同上,小数部分则用相应字符位置字符所代表的数字除以10的相应位数的乘方,并进行累加,最后将整数小数部分的和返回result。
= 3 \* GB3 ③字符串的连接,通过类中定义的left、right、midstr、addstrings函数配合实现。
通过left、right、midstr三个函数进行字符串的提取,addstrtings函数进行三个指针的遍历实现两个字符串的合并。
= 4 \* GB3 ④数字的字符串化,通过类中定义的str函数实现。
类比val函数一样区分整数与浮点数,将数字的每一个数字单个提取出来通过与字符‘0’的比较转化为相应字符复制给递增的指针。
= 5 \* GB3 ⑤算式的计算,通过类中定义的calculate函数实现。
依次按照^*/+-的顺序用charinstr函数寻找运算符号,并用相应函数进行字符串与数字之间的转换,以及新的字符串的合并,返回计算结果。
= 6 \* GB3 ⑥友元函数的定义,定义输入输出友元函数,重载赋值运算符等,实现字符串之间的加法。
五、程序调试的过程
出现问题:
= 1 \* GB3 ①开始编写完整个程序,出现许多编写错误,一个个改正;
= 2 \* GB3 ②在实现浮点数的扩充过程中的小数部分,以及输入合法性的判断过程漏掉情况,指针的误用等;
= 3 \* GB3 ③有时单独的一个函数不能搞懂或错误不能改正,就单独在编写一个类似程序,多次调试运行,来弄懂并加以改正;
解决
您可能关注的文档
- 2019年综合计划大纲编制模板-客户服务中心.docx
- 2019新苏教版小学语文三年级下册期中复习题目.doc
- 2019中考化学真题我们身边的物质考点金属和金属材料具体金属铝无答案.doc
- 2019中考英语单项选择精选100题(解析).doc
- 2020【人教部编版】--五年级(下册)数学第四单元易错题整理.doc
- 2050冷轧车间员工工资分配办法(10.31调整2版).doc
- 02365计算机软件基础二高纲1412江苏省自考大纲.doc
- 02625企业管理学(一).doc
- 5000只标准化鸭棚建造图纸.doc
- 5202综采工作面安装组织设计(完成版).docx
- 巴州中石油昆仑燃气有限公司轮台清管站建设项目土壤污染状况调查报告.pdf
- 抚顺XX化工有限公司(老厂)土壤隐患排查报告(2024年).pdf
- 昌吉市世纪大道100号小区建设用地土壤污染状况调查报告.pdf
- 大塘四路以北、大塘六路以东土壤污染状况一阶段调查报告.pdf
- 德州市天衢新区澜智幼儿园地块土壤污染状况调查报告.pdf
- 巴州和静县创建全域旅游示范区基础设施建设项目(北山生态景区 旅游集散中心地块)土壤 污染状况调查报告.doc
- 商洛市2024-30号储备地块土壤污染状况调查.docx
- 改则县麻米乡次吾嘎木村人居环境整治类项目土壤污染状况调查报告.pdf
- 改则县物玛乡本松村农房和村庄现代化建设项目土壤污染状况调查报告.pdf
- 丹东蓝天环保锅炉制造有限公司南侧地块土壤污染状况调查报告.pdf
最近下载
- 【京东方优秀项目】匠文化项目.pptx VIP
- 【京东方优秀项目】优化一线员工培养,实现与业务无缝对接.pptx VIP
- 机械气道廓清技术临床应用PPT课件.pptx VIP
- (2025春新版)部编版一年级下册道德与法治《光荣的少先队 》PPT课件.pptx VIP
- 26.(行测)2018年国家录用公务员考试《行测》真题卷(地市级).doc VIP
- 【京东方优秀项目】三位一体员工淘汰机制构建.pptx VIP
- 移动式操作平台监理实施细则.doc
- GB50242-建筑给水排水及采暖工程施工质量验收规范.docx
- 废旧农膜回收利用存在问题及对策建议.pdf VIP
- GB50242-2002 建筑给水排水及采暖工程施工质量验收规范条文说明.docx
文档评论(0)