- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
长整数、高精度运算程序报告
.华南理工大学
高级语言程序设计 C++ 课程实验报告
实验题目:________长整数、高精度运算__________________________
姓名:_______ ____ 学号:__ ________________
班级: ___计算机科学与技术2班________ 指导教师: _____邢安娜___
实验概述 【实验目的及要求】设计程序实现两个任意长的整数(包括正数和负数)、任意精度实数的算术运算。
【实验原理】
用动态链表存贮数据,每个结点含一个整型变量,表示若干位数,实现加、减运算
【实验环境】 Microsoft Visual C++6.0
? 实验内容 【实验方案设计】
?
一、要求和规格的说明
描述问题:
简述题目要解决的问题是什么,规定软件做什么。原条件不足时补齐。
设计程序实现两个任意长的整数(包括正数和负数)、任意精度实数的算术运算。
二、设计
设计思想:
储结构(题目中限定的要复述,例如:变量、数组、结构、链表等);
变量、数组、结构、链表
主要算法思想。
首先,说明结构类型any,在main函数中,分别调用find,edual,create函数,建立双向链表之后,调用add,min函数进行长整数、高精度运算,最后有output函数输出运算结果。
设计表示:
每个函数头和规格说明;
void find(intt,intk,char*ch1,char*ch2)
void equal(char*ch1,char*ch2,int t,int k,inty)
void create(any*head,any*b,char*ch)
void add(any*head1,any*head2,any*head3,any*b1,any*b2)
void min(any*head1,any*head2,any*head3,any*b1,any*b2)
void output(any*head3,any*q,char*ch,int y)
void main()
列出每个函数所调用和被调用的函数,也可以通过调用关系图表达。
实现注释:
各项功能的实现程度、在完成基本要求的基础上还实现了什么功能。
struct any说明结构类型,用于链表结点的建立。find函数查找两个数中小数点所在位置,若有小数点,则分别通过参数t,k传递给主函数。equal函数用于保证小数点后位数相同,即使两个数的精度相同,小数点后位数较少的数在后面补零直至小数点后位数相同。create函数用于创建链表,分为正数与负数两种情况,创建后通过引用参数head在main函数中实现对链表的操作。add函数和min函数分别实现利用链表对用户输入的两个数进行加法、减法运算。output函数将加、减运算后的结果在需要的位置加上逗号或小数点后输出。main函数调用以上函数实现长整数、高精度的加、减运算。
【实验过程】(实验步骤、记录、数据、分析)
调试报告:调试过程中遇到的主要问题是如何解决的;
独立思考,逐步排除困难,最后将问题解决。
测试数据:
如果题目规定了测试数据,则结果要包含这些测试数据和运行输出,还可以含其他测试数据及其运行输出(有时需要多组数据)。
经过多次测试,程序运行正常。
用户手册:
用户只需按照程序运行界面的提示正确输入,即可得到正确的结果。
4)附:即源程序和结果,源程序要加注释。
见源程序。
要求:
各种文档资料要在程序开发过程中逐步形成,而不能最后补写(但不排斥最后整理)。
【结论】
? 普通计算机无法完成的长整数、高精度运算通过程序设计可以实现。该程序代码量较大,但原理明了。程序结构清晰、规范,程序运行界面使用。但限于编程者水平,难免有疏漏、不足之处,程序还有待改善。 小结 实验总结:
对设计的程序编码的回顾讨论和分析;程序时间和空间分析;改进设想;经验和体会等。
程序编写过程中遇到较多困难,原因在于代码量之大与用链表进行存储、计算数据的各个细节不容出差错。纵观整个程序,原理不是很复杂,但设计时须面面俱到,有某一方面考虑不周都将导致程序运行的不正常。程序运行时占用内存空间不大,时间效率也较高。至于程序的改进,可以在用链表存储数据中通过对结构类型定义的改进来减少所需申请结点数,以提高空间效率。
该程序的设计与编写让我感到了多动手、多思考对于高级编程语言的学习的重要性。多思考、多动手,能使思维变得活跃,且熟能生巧,多练习编写程序,可能有时觉察不出多大的进步,但能力的提高会是潜移默化的。多想多练总会有收获的。 指导教师评语及成绩 评语:
?
?
?
?
成绩:?????????? 指导教师签名:
批阅日期:
附注:
实验报告说明
1.实验项目名称:要用最简练的语言反映实验的内容。
2
文档评论(0)