任意长整数的四则运算.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
任意长整数的四则运算

1 题目介绍和功能要求 1.1 课程设计题目要求 【问题描述】 设计一个实现任意长的整数进行加法运算的演示程序 【】: 利用双向循环链表实现长整数的存储,每个结点含一个整形变量。任何整形变量的范围是 -(- 1)~(- 1)。输入和输出形式:按中国对于长整数的表示习惯,每四位一组,组间用逗号隔开。 【基本要求】1.2 题目分析 【需求分析 (1)本程序实现计算任意长的整数的加法运算. 以用户和计算机对话的方式,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运算命令,然后程序就计算并显示出这两个数的运算。 本演示程序中,数字字符限定为[‘0’~9’]和字符‘,’,输入字符可以任意长,输入形式以“回车符”为结束标志,串中字符顺序不限,且允许出现重复字符。 利用双向循环链表现实长整数的存储,每个结点含一个整形变量。输入的形式以回车结束,可以直接输入正数或负数。按中国对于长整数的表示习惯,每四位一组,除数字和位于首位置的负号外,其它一切字符都将作为分隔符,连续多个分隔符当一个处理但不使用分隔符也不影响结果。 2 系统功能模块结构图 2.1 系统功能结构框图 图2.1 系统功能结构图 2.2主要模块的功能说明: (1)主调程序模块: void main() { ????? 初始化; do{ ???? 接受命令; ???? 处理命令; }while(“命令”=”退出”) } (2)双向循环链表处理模块 //cmplinklen.h //Creat.h //compare 说明:进行链表的存储和处理 (3)长整数运算模块 //add.h // sub.h //imul.h //idiv.h 说明:对长整数进行四则运算 (4)界面模块 //title.h //welcome.h 说明:控制系统运行操作界面 3 数据结构的设计及用法说明 3.1 概要说明 为了实现上述功能,采取双向循环链表表示长整数,每个结点含一个整型变量,仅绝对值不超过9999的整数,整个链表用十进制数表示。利用头结点数据域的符号表示长整数的符号,相加过程不破坏两个操作数链表,对长整数位数不作上限。为此需要两个结构数据类型:双向循环链表和长整数。 3.2用法说明 3.2.1 双向循环链表的数据结构定义: typedef struct Node //双向循环链表结点 { int data; struct Node *prior,*next; }Node,*NodeList; 3.2.2 基本操作: Status conversion(char str[],NodeList oprh); //将字符串形式的操作数转换成所需的类型 int cmplinklen(NodeList opr1,NodeList opr2); //opr1链比opr2链长则返回1,短则返回-1,否则返回0 int length(NodeList oprr); //求链表长度 Status Creat(NodeList oprr,int len); //生成指定长度链表 int compare(NodeList opr1,NodeList opr2); //比较opr1、opr2绝对值的大小 4 涉及到的函数的描述 4.1长整数操作函数 Status input(NodeList opr1,NodeList opr2,char str[]); //从键盘输入两个长整数,存至opr1和opr2中 Status output(NodeList oprr,char str[]); //在屏幕打印长整数oprr Status add_bas(NodeList opr1,NodeList opr2,NodeList oprr); //本算法实现A,B相加的操作 Status sub_bas(NodeList opr1,NodeList opr2,NodeList oprr); //本算法实现A,B相减的操作 Status imul(NodeList opr1,NodeList opr2,NodeList oprr); //本算法实现A,B相乘的操作 Status idiv(NodeList opr1,Node

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档