欢迎来到天天文库
浏览记录
ID:35625312
大小:832.50 KB
页数:31页
时间:2019-04-03
《数据结构课程设计--长整数的代数计算》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、沈阳航空航天大学课程设计报告课程设计名称:数据结构课程设计课程设计题目:长整数的代数计算院(系):计算机学院专业:班级:学号:姓名:指导教师:沈阳航空航天大学课程设计报告目录1题目介绍和功能要求11.1题目介绍11.2功能要求11.3基本功能12系统功能模块结构图22.1系统功能结构框图22.2系统主要模块的功能说明23使用的数据结构的描述43.1数据结构设计43.2数据结构用法说明44函数的描述54.1主要函数设计54.2主要函数流程图65程序测试和运行的结果115.1程序测试115.2运行结果126参考文献14附录(关键部分程序清单)1529沈阳航空航天大学课程设计报告1题目介绍和
2、功能要求1.1题目介绍设计数据结构完成长整数的表示和存储,并编写算法来实现两个长整数的加、减、乘、除等基本代数运算。1.2功能要求1)长整数长度在一百位以上。2)实现两长整数在同余代数下的加、减、乘、除操作。即实现算法来求解a+bmodn,a-bmodn,a*bmodn,abmodn。3)输入输出均在文件中。(选作)1.3基本功能1.jiafa();将一百位以上的长整数进行加法运算,计算出和。2.jianfa();将一百位以上的长整数进行减法运算,计算出差。3.chenfa();将一百位以上的长整数进行乘法运算,计算出积。4.chufa();将一百位以上的长整数进行除法运算,计算出商
3、和余数。29沈阳航空航天大学课程设计报告2系统功能模块结构图2.1系统功能结构框图图2.1系统功能结构框图2.2系统主要模块的功能说明1.主模块kongzhi();29沈阳航空航天大学课程设计报告控制输入模块、加法模块、减法模块、乘法模块、除法模块、输出模块的循环使用。1.输入模块shuru();将输入的两组长整数分别通过转换将其转换成所需要的形式存储到两个链表(opr1、opr2)中保存起来。2.加法模块jiafa();将链表opr1、opr2中的数据进行加法运算,并且二者的将加和保存到链表oprr中。3.减法模块jianfa();将链表opr1、opr2中的数据进行减法运算,并且将
4、二者的差保存到链表oprr中。4.乘法模块chengfa();将链表opr1、opr2中的数据进行乘法运算,并且将二者的乘积保存到链表oprr中。5.除法模块chufa();将链表opr1、opr2中的数据进行加法运算,并且将二者的商和余数分别保存到链表quti、remand中。6.输出模块shuchu();将链表oprr、quti、remand中的数据保存到字符数组中,并且将字符数组中的数据输出到屏幕上。29沈阳航空航天大学课程设计报告3使用的数据结构的描述3.1数据结构设计将输入的两个长整数首先保持到字符数组中,然后将字符数组中的字符转换每四个一组,利用双向循环链表来实现每一组字符
5、的存储,并且高位在前、低位在后。每个结点中只存储四位十进制数字,即不超过9999的非负整数。利用两个双向循环链表分别保持了两个非负长整数。加法:由低位的结点开始相加,加和大于9999时,加和除以一万取余数保存到新的双向循环链表结点中,并且加和除以一万取整数作为进位加到下两个结点相加中,依次循环相加;减法:同加法有些相似,保证第一个长整数不小于于第二个长整数,结点相减,不能相减就相前一结点借位,差保存到新的双向循环链表结点中,依次循环;乘法:由低位的结点开始相乘,乘积大于9999时,乘积除以一万取余数保存到新的双向循环链表结点中,并且乘积除以一万取整数作为进位加到下两个结点乘积中,依次循
6、环相乘;除法:开辟两个新的链表,保存商数和差。用第一个长整数循环减去第二个长整数,没减一次计数加一,计数保存到商数链表中。直到差小于第二个长整数停止循环,最后的计数为商值,差值为余数。选择该数据结构来完成长整数的加减乘除运算是因为要对长整数进行运算,需要对长整数进行存储,所以选择用链表对长整数存储,又由于存储的顺序是从左到右,而运算的顺序则是从右到左,这样位了操作方便选择循环链表,在运算过程中有进位和借位的操作,所以最终选择双向循环链表的数据结构。3.2数据结构用法说明输入的两个长整数必须为非负长整数。加法计算时只要保证两个数都为非负数即可,减法、乘法、除法时需要保证第一个长整数大于第
7、二个长整数。同时乘法、除法计算时第二个数不能为零,并且输入的数一定要合法,最高位不能为零,否则程序会提示输入有误。29沈阳航空航天大学课程设计报告4函数的描述4.1主要函数设计1.shuru();作用:将输入的两个长整数分别保存到两个链表中。2.jiafa();作用:将两个长整数进行加法运算,计算出二者的和。3.jianfa();作用:将两个长整数进行减法运算,计算出二者的差。4.chengfa();作用:将两个长整数进行乘法运算,计算出二者的
此文档下载收益归作者所有