- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课程设计报告-长整数运算.doc
数据结构课程设计报告 题目:长整数四则运算 一、需求分析 1.问题描述: 二、概要设计 1.设计思路: 由于计算机无法完成位数很大的数字计算,设计思路就是将很长的数据进行分割,一部分一部分的用计算机固有数据类型进行计算。将各部分的结果整合起来。由于计算机固有的整数类型存数的对大整数是2^15-1,所以为了方便,且符合中国人对长整数的表示习惯,建立一个双向循环链表,每个结点存储四位数字,以万为进制。从最低位开始加法,超过一万向上进位,所以每次加法应该是对应两个结点和进位数相加,进位值初始为0;减法也是一个结点计算一次,每次计算应该是第一个链表对应的结点值减去第二个结点的值和借位值的和,借位值初始值为0;除法的计算可以借助减法,被减数被减数减一次则最终结果加一;直至被减数比减数小。 2.数据结构设计: 因为计算的是一个连续的数字,需要桉顺序一次计算,所以采用的数据结构的逻辑结构是线性表。因为要求每一个结点只存储四位数字,为了将数字连接起来,采用的数据结构的存储结构是链式。 1.双向循环链表的抽象数据类型定义为: ADT Link { 数据对象:D={ai | ai∈CharSet,i=1,2,……,n,n≥0} 数据关系; R={ai-1,ai | ai-1,ai∈D,i=2,……,n} } 基本操作: InitLinkList(L,a) 操作结果:构造一个双向循环链表L ,用a判断是正数还是负数 DestroyList(L) 初始条件:双向循环两已经存在 操作结果:销毁有序表L Insert(L,a) 初始条件:双向循环链表已经存在 操作结果:在循环链表的末尾插入一个结点,且此结点的数据值为a HeadInsert(L,a) 初始条件:双向循环链表已经存在 操作结果:在循环链表的头结点后插入一个结点,且此结点的数据值为a CountNode(L) 初始条件:双向循环链表存在 操作结果:计算出链表中结点的个数,并返回个数 Compare(L1, L2) 初始条件:L1和L2存在 操作结果:比较两个双向循环链表的大小,用返回值1表示L1大于L2,返回值-1标志L1小于L2,返回值0标志L1和L2相等 ToNum(*s,i,e) 初始条件:s为字符串中指向某个字符的指针 操作结果:将s的前i个字符转换为数字,存入e中 CreatNum(L,s) 初始条件:s为某个字符串,双向循环链表L存在 操作结果:将字符串s转换成数字存入到循环链表L中 Add(L1,L2, op) 初始条件:双向循环链表L1和L2存在,op为结果的标识符 操作结果:两个链表相加,求出结果。 Sub(L1,L2, op) 初始条件:双向循环链表L1和L2存在 操作结果:L1减去L2,求出结果 ,op为结果的标识符 EraseZero(Link L) 初始条件:双向循环链表L存在 操作结果:删去L链表头结点后,第一个数据不为零结点前的所有数据为零的结点。 如果结点数据都为零,则保存一个结点。 print(L) 初始条件:双向循环链表L存在 操作结果:从L头结点开始顺此打印每个结点中的数据 3.软件结构设计: 本程序包含四个模块: 1.主程序模块 Int main() { 接受命令 While(“命令”!=“退出”) { 输入字符串 建立双向循环链表 将字符串转换为要求的格式存入链表的每个结点 对链表中数据进行即兴操作数理 再次接受命令 } } 2.双向链表操作模块------实现结点的插入、删除、修改 3.字符串转换存储模块----实现将字符串转换为数字按格式存储在链表中 4.数据计算模块—--------对存储在链表中的数据进行计算,得到最终期望的结果 各个模块调用的关系如下: 主程序模块中的函数原型: void Interface()-------------------(操作界面函数 Status CreatNum(Link L,char*s)----(创建数字链表函数 Link Compute(Link L1,Link L2,char Ope)----(数据计算函数 数据运算模块: Link Add(Link L1,Link L2,char op) ----(加法计算 Link Sub(Link L1,Link L2,char op) ----(减法运算 双向链表操作模块 void InitLinkList(Link L,char a) Status DestroyList(Link L) Status Insert(Link L,Elemtype a) int CountNode(Link L) BOOL Compare(Link L1,Link L2) v
您可能关注的文档
- 指数研究(月报):全球指数市盈率、市净率-2012-11-05.ppt
- 提高浅议脑瘫患儿的早期康复治疗(医学论文).doc
- 收费站站务管理办法[规章制度].doc
- 收费站站务管理办法_施工方案-_412.doc
- 改练习题人教版小学三年级上册语文期末复习基础知识汇总.doc
- 收费站站务管理办法(范本).doc
- 政企客户部(政企客户中心)及其内设机构工作职责.doc
- 政企客户部(政企客户中心)及其内设机构工作职责.docx.docx
- 改性硅基微纳米材料及其在分离化学中的应用研究进展 Progress of modified silica-based micro-nano-materials and its application in separation chemistry.pdf
- 政企客户部(政企客户中心)工作职责及其内设机构工作职责.doc
有哪些信誉好的足球投注网站
文档评论(0)