- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构 计算器求大数
《C++程序设计》课程设计说明书
计算器求大数
院 部: 计算机与信息科学学院
学生姓名:
专 业: 软件工程
班 级: 1401
完成时间: 2015年6月
目 录
1. 设计概要 3
1.1 设计背景 3
1.2 数据结构设计 3
2. 需求分析 4
2.1 基本需求 4
2.2 实现功能 4
3. 算法设计 5
3.1 概要说明 5
3.2 模块间调用关系 5
3.3 详细说明(Abstract Data Type描述) 5
3.4 流程图及主要函数模块说明 6
3.4.1. 判断运算符优先权 6
(1) 算符优先关系表 6
(2) 算法代码 6
3.4.2. 主操作函数 7
(1) 算法概要流程图 7
(2) 操作过程 8
(3) 算法代码 8
3.4.3 二元运算函数 9
(1) 算法代码 10
4. 测试结果 11
4.1 简单表达式求值 11
4.2 复杂表达式求值 11
5. 总结 12
5.1 改进思想 12
5.2 经验和体会 12
参考文献 14
附 录 15
源程序 15
1. 设计概要
1.1设计背景
利用数组存储,根据需要改变大小。转化乘除法的思想,将乘法转化为加法,将除法转化为减法,减少程序计算的难度。
1.2数据结构设计
1.乘法用逐位相乘由各位到高位一次进行,然后初步确定计算结果的长度 s1[i] = c1[len1 - i -1] - 0 将字符串转化为整型,并反着存放。
2.除法转化为减法的思想来计算,大大降低计算设计的难度,利用数来存储。并可以根据计算位数要求设计数组大小以满足需求。
3.通过主函数来实现函数的调用。2.1 需求分析
在调查与科研实验中经常需要计算位数相对较大的加减乘除法,但是计算机本身提供的数据类型无法保存几百位甚至上千位的。所以针对超过手机与计算器计算位数的四则运算,设计出能实现长整数运算的程序。
2.1 实现功能
大数加法:输入两个位数较大的数,实现加法计算。输入两个位数较大的数,实现乘法计算。输入两个位数较大的数,实现除法计算,计算结果只保留整数。
图4-1主菜单
图4-2 大数加法
图4-3 大数除法
图4-4 进制转换
实验总结
5.1改进思想
1.减法不能用小数减去大数,即不能有负数结果。
2.除法不能保留小数点后的数字,精确度还有待提高。
3.程序的界面也还有待改进,可以进一步将界面进行美化
5.2 经验和体会
大数的四则运算虽然不难,但是要打破常规,将乘法与除法换一种思想来计算,构思方面有很大的挑战。
在这次试验中我们认识到了对于特别长的数的计算,只能化整为零,先求局部的结果,然后将各部分的结果综合起来,得到最终的结果。比如加法就是从最低位开始计算,判断进位后再向高位计算。但是乘除法虽然进行了转换,但是数字如果太大的话,进行加减法的次数也是很庞大的。
本程序是分工完成的,所以我们也充分认识到了团队协作的重要性,通过一起的讨论与分工,我们能得出解决问题的最好办法,各抒己见,在争论中互相成长。
此外,这次的课程设计进一步加强了我们进行编程,调试,处理问题的能力,加深了我们对算法及数据结构的认识,对于程序的一些基本结构也更加地熟悉,课本知识也能够更加熟练地运用。。同时我们也意识到,开发程序的早期计划要做的充分,以免出现程序完成后发现不足而带来的修改麻烦。虽然这只是一个小小的程序,但对我们之后的影响确实很大的。
参考文献
[⒈]谭浩强. C++程序设计(第四版). 清华大学出版社,2010年6月
[⒉]谭浩强. C语言程序设计(第四版). 清华大学出版社,2010年6月
[⒊]崔进平 等. 数据结构(C语言版). 北京:中国铁道出版社,2008年11月
[⒋]Stephen Prata. C Primer Plus中文版(第五版).人民邮电出版社,2005年2月
附 录
源程序
#includeiostream
using namespace std;
#includemalloc.h
#includestdio.h
#includestring.h
#includewindows.h
#includemalloc.h
#define NUM 1000
typedef struct STACKNOTE
{
char data;
STACKNOTE* ne
文档评论(0)