欢迎来到天天文库
浏览记录
ID:13760654
大小:122.76 KB
页数:24页
时间:2018-07-24
《数据结构程序设计 任意长的整数进行加法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、任意长的整数进行加法课程设计报告1目的:通过课程设计,加深对《数据结构》课程所学知识的理解,熟练掌握和巩固数据结构的基本知识和语法规范。通过课程设计,巩固和加深对线性表、栈、队列、字符串、树、图、查找、排序等理论知识的理解;掌握现实复杂问题的分析建模和解决方法(包括问题描述、系统分析、设计建模、代码实现、结果分析等);提高利用计算机分析解决综合性实际问题的基本能力。包括:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);库函数应用等;2需求分析在加法运算中,C语言所能定义的整形变量是有一定
2、长度限制的。例如int型变量所能储存值的值域为-32768~32767,最长的整型longint值域为-2147483648~2157483646.当在需要位数更长的整数加法时计算器设计运用简单的加法运算符难以达到要求,或是在两个较大整数相加的值超过了整型变量所能储存的数值是程序会发生溢出。需要一种新的加法模式来解决上述问题,来实现任意长的整数进行加法,得到想要的结果。本程序完成对任意长的整数进行加法运算:1:输入和输出形式:按中国对于长整数的表示习惯,每四位一组,组间用逗号隔开。如:1,0000,0000,0000,0000。2:输入值范围为任意长的整数,输入时需输入数字和被允许的字符(‘,
3、’,‘-’)。3:基本功能包括大整数输入、加法运算、大整数输出。4:测试数据为:(1)0;0;应输入“0”。(2)-2345,6789;-7654,3211;应输出“-1,0000,0000”。(3)-9999,9999;1,0000,0000,0000;应输出“9999,0000,0001”。**(1)1,0001,0001;-1,0001,0001;应输出“0”。(2)1,0001,0001;-1,0001,0000;应输出“1”。(3)-9999,9999,9999;-9999,9999,9999;应输出“-1,9999,9999,9998”。(4)1,0000,9999,9999;1;
4、应输出“1,0001,0000,0000”。3概要设计本程序使用C语言编写,编辑器为C-FREE4.1编译器为MinGW3.4.5,输入输出界面为windows对话框。本程序所用到的数据类型有自定义Lnode型为节点类型,Lnode型变量包涵两个变量,一个为整型的intdata变量,另一个为Lnode型的指针。自定义Linklist型变量包涵两个变量,一个为Lnode型的指针head,一个是整型变量intlength。Linklist型变量为链表类型,head为链表的头指针,整型length为链表的长度(链表长度不包括头节点)。本程序组成:函数int*Iput(char*ch)功能:将输入的标
5、准字符串,转换为所需要的数字储存在int型数组中并返回数组指针。函数Linklist*CreateList(Linklist*l)功能:创建一个空的单链表,并返回该链表的指针。函数Linklist*InList(Linklist*l,intdata)功能:在链表的头结点后插入一个节点,所需参数为所要插入的链表的指针,所插入节点的数据值。返回值为插入完成后的链表指针。函数Linklist*Inlistfail(Linklist*list,intdata)功能:当结果需要进位时,对结果进行进位,参数为储存结果的链表,所插入节点的数据值。返回值为插入完成后结果链表的指针。函数Linklist*Out
6、List(Linklist*list)功能:对输入的负数进行处理,使其变成标准加数或被加数。参数为储存输入数的链表指针。返回值为处理完成后的链表的指针。函数Linklist*AddList(Linklist*one,Linklist*two)功能:两个标准加数和被加数,进行加数。参数为储存加数和被加数的链表指针。返回值为储存结果的链表。函数Linklist*SubList(Linklist*listone,Linklist*listtwo)功能:两个标准减数和被减数进行相减。参数为储存标准减数和被减数链表指针。返回值为存储结果的链表。函数Linklist*Linklistpush(int*nu
7、mber,Linklist*list)功能:将输入的存储在数组中的数值依次插入到创建好的链表中,每个链表节点储存一位输入的数值。参数为储存数值的数组指针和创建好的链表的指针。返回值为存储输入数值的链表的指针。函数char*test_takeprint(Linklist*list,intj)功能:将储存结果的链表里的值变为字符串形式便于对话框输出。参数为存储结果的链表的指针,和整型输出控制变量。函数
此文档下载收益归作者所有