ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:56.23KB ,
资源ID:9582977      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-9582977.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构长整数的加法课程设计.docx)为本站会员(b****8)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

数据结构长整数的加法课程设计.docx

1、数据结构长整数的加法课程设计1 绪 论此次的课程设计内容为数据结构长整数加法的实现,整个程序是为了实现长整数的加法,有5个函数,其中主函数,输入、输出函数已经占了3个,只有执行加法的add函数,和测试用的text函数的算法比较复杂容易出错。利用本程序可以实现长整数加法的计算。 2 需求分析1.因为要实现任意长的整数进行加法运算,本程序使用C语言的整型变量int存放数据,一个int型的变量值的范围为-3276832767,显然远远不能满足。因此利用双向循环链表实现长整数的存储,每个结点存放一个整型变量,且只存10进制数的4位,即不超过9999的非负整数,整个链表表示为万进制数。表头数据域的符号代

2、替长整数的符号。相加过程不破坏两个操作数链表。长整数位数没有上限。2.演示程序以用户和计算机的对话方式执行,在计算机终端上显示提示信息之后,由用户在键盘上输入演示程序中规定的运算命令,相应的输入数据和运算结果显示在后。3.程序执行的命令包括:1)构造链表1存放第一个输入数据2)构造链表2存放第二个输入数据3)求两数之和4)结束4.测试数据0;0;应输出0-2345,6789;-7654,3211;应输出-1,0000,0000-9999,9999;1,0000,0000,0000;应输出9999,0000,00011,0001,0001;-1,0001,0001;应输出01,0001,0001

3、;-1,0001,0000;应输出1-9999,9999,9999;-9999,9999,9999;应输出-1,9999,9999,99981,0000,9999,9999;1;应输出1,0001,0000,00003 数据结构及详细设计3.1 线性表的数据结构ADT Lixt数据对象:D=aiaiElemSet,i=1,2,n,n0数据关系:R1=ai-1,aiD,i=2,,n基本操作:InitList(&L) 操作结果:构造一个空的线性表DestroyList(&) 初始条件:线性表L已存在 操作结果:销毁线性表LClearList(L) 初始条件:线性表L已存在 操作结果:将L重置为空表

4、ListEmpty(L) 初始条件:线性表L已存在 操作结果:若L为空表,则返回TRUE,否则返回FALSEListLength(L) 初始条件:线性表L已存在 操作结果:返回L中数据元素个数GetElem(L,i.&e) 初始条件:线性表L已存在,1iListLength(L) 操作结果:用e返回L中第i个数据元素的值ListInsert(&L,I,e) 初始条件:线性表L已存在,1iListLength(L)+1 操作结果:在L中第i个位置插入新的数据元素e,L的长度加1ListDelete(&L,I,&e) 初始条件:线性表L已存在,且非空,1iListLength(L) 操作结果:删除

5、L的第i个元素,并且用e返回其值,L的长度减1ADT List3.2 详细设计1.节点的定义:typedef struct node int data; struct node *pre; struct node *next;DataNode;2.对于程序中数据的输入以及对输入数据检测,主要利用for和while循环语句对输入的数据进行检测和判断:DataNode* Input() char ch50; DataNode *temp,*node; int count=0,count1=0,i,j,n,sum=0; scanf(%s,ch); while(chcount+!=0); count-

6、; node=(DataNode*)malloc(sizeof(DataNode); temp=node; count1+; if(ch0=-|ch0=+) if(count-1)%2) count1+=(count-1)/2+1; else count1+=(count-1)/2; else if(count%2) count1+=count/2+1; else count1+=count/2; count-; for(i=1;ipre=(DataNode*)malloc(sizeof(DataNode); temp-pre-next=temp; temp=temp-pre; temp-da

7、ta=0; for(j=0;j2&chcount!=-&chcount!=+;j+) if(count0) break; sum=chcount-0; for(n=0;ndata+=sum; temp-pre=node; node-next=temp; if(ch0=-) count1=0-count1; node-data=count1; return node;3.对于数据的输出同样利用for和while循环,通过对条件的判定进行数据的输出。具体代码实现如下:void Output(DataNode *node) int n,i; DataNode *temp; n=node-data;

8、temp=node-next; if(n0) printf(n-); n=0-n; for(i=0;idata); break; if(i=0) printf(%d,temp-data); else if(i=n-2) printf(%02d,temp-data); else printf(%02d,temp-data); temp=temp-next; 3.在主函数main中,主要实现链表的定义,以及对于程序的输出提示做好输出,最后再通过switch语句根据条件的不同输出不同的提示语句。使程序变得更便于使用。void main() DataNode *data1,*data2,*result

9、; char key; char menus520=Please choose:, 1:Input the data, 2:Plus Function, 3:Quit, ; int i,flag=0; for(i=0;i5;i+) gotoxy(25,i*2+6); cprintf(menusi); scanf(%c,&key); while(key!=3) switch(key) case 1:clrscr(); printf(Please Input The First Data:); data1=Input(); printf(nPlease Input The Second Data:

10、); data2=Input(); flag=1; break; case 2:if(flag=0) clrscr(); printf(016There is no data existing!); else clrscr(); result=add(data1,data2); printf(nThe result:); Output(result); getch(); break; clrscr(); for(i=0;i5;i+) gotoxy(25,i*2+6); cprintf(menusi); scanf(%c,&key); 4 程序的调试与结果1.本程序的运行环境为DOS操作系统,执

11、行文件为1.exe2.进入演示程序后即显示如下用户界面(图4.1):图4.1以上为主界面,只有简单的三个功能,只要输入每个选项前面的数字,然后按ENTER键便能实现。选择功能1后,界面如图4.2:图4.2这是要求输入第一个加数。输入完毕后按ENTER键继续。要求输入第二个加数,如图4.3:图4.3两个加数输入完毕以后返回主界面,此时要相加的两数已经存入计算机。然后执行功能2,把刚才输入的两个数做加法运算,马上在屏幕上显示出结果,如图4.4所示:图4.4一结果测试输入0;如图4.5图4.5结果如图4.6:图4.6输入-2345,6789;-7654,3211.如图4.7图4.7结果如图4.8:图

12、4.8输入-9999,9999;1,0000,0000,0000.结果如图4.9:图4.95课设小结 感谢*老师,在*的的课堂上我学得到很多实用的知识,在此表示感谢!同时,对给过我帮助的所有同学和其他的老师再次表示衷心的感谢!此次课程设计,感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在做课设的这些的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体,指针通过这次课程设计之后,我把前面所学过的知识又重新温故了一遍。6参考文献1 严蔚敏,吴伟民。数据结构(C语言版)M. 北京:清华大学出版社, 2007.2王立柱,C/C+与数据结构。北京:清华大学出版社,20023吴文虎,程序设计基础。北京:清华大学出版社,2003

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2