数据结构课程设计

发布 2022-10-01 21:12:28 阅读 5183

班级学号 姓名

指导教师 课题。

一、大数相乘。

一、问题描述。

要求:输入两个较大的整数,进行乘法运算,能够通过程序计算出其正确的结果,并输出结果,使整数相乘不受计算机内存空间的限制。

二、设计思路及步骤。

1、首先,要输入两个大数,所以在void multil()大数相乘操作函数中,定义两个字符型数组a[n]和b[n],其中,n为数组的最大长度,以字符串的形式来记录这两个较大的整数,定义字符型指针res记录这两个整数相乘结果的返回地址,用于输出结果。

2、在大数乘法计算过程中,首先,将字符串各位的字符先转化为所对应的数字,然后再进行一系列的计算,由于整数乘法计算是从低位到高位依次计算,所以为符合这一规律,先对两个大数字符串先进行逆序操作(void swap(char* str, int p, int q)逆序操作函数),最后再将所得的结果进行逆序操作,并输出结果。

3、在char* largenum_ multi (char* a, char* b)大数相乘函数中,分别定义整型变量m和 n分别记录数组a[n]和数组b[n]的长度,定义字符型指针变量result记录两大数相乘后的地址用于返回地址,result的最大长度为(m+n),定义整型变量multiflag和addflag分别表示乘法进位和加法进位,初始化均为0,在之后的运算过程中记录乘法进位和加法进位。

三、函数清单。

void swap(char* str, int p, int q); 逆序操作函数。

void menu();菜单函数。

void multil();大数相乘操作函数。

char* largenum_ multi (char* a, char* b); 大数相乘函数。

四、源程序**。

#include <>

#include <>

#include <>

#define n 100

void swap(char* str, int p, int q); 逆序

void menu();菜单。

void multil();大数相乘操作。

char* largenum_multi(char* a, char* b); 大数相乘。

void swap(char* str, int p, int q) /逆序

char temp;

while(p < q)

char* largenum_multi(char* a, char* b) /大数相乘。

swap(result, 0, m+n-1); 逆序

return result;

elseif(a[0]==b[0负 &&负

elseif(a[0]==b[0]>=1'&&b[0]<=9'))负 &&正

printf("-

largenum_multi((a+1),b);

else if(b[0]==a[0]>=1'&&a[0]<=9'))正 &&负

printf("-

largenum_multi(a,(b+1));

elseif(b[0]==0'&&a[0]>=1'&&a[0]<=9正 &&0

else if(a[0]==0'&&b[0]>=1'&&a[0]<=90 &&正

elseif(b[0]==0'&&a[0负 &&0

elseif(b[0]==a[0]==00 &&负

elseif(b[0]==0'&&a[0]==00 &&0

printf("0");

menu();

void multil大数相乘操作。

void menu菜单。

int main()

五、运行截图。

1、 正&&正。

2、 负&&正。

3、正&&负。

4、负&&负。

&&正。7、正&&0

&&负。9、负&&0

六、不足之处与解决方案。

不足之处1:本程序只能解决整型范围内的大数相乘问题,而不能解决浮点型范围内的大数相乘。

解决方案1:把浮点型大数分为整数部分和小数部分,分别对其进行大数相乘函数的调用并输出结果,这仅是一种思路,可上机进行调试和运行。

课题。二、简单m 元多项式加法。

数据结构课程设计

课程设计说明书 题目哈夫曼编码问题的设计和实现。课程名称数据结构课程设计。院 系 部 中心。专业。班级。学生姓名。学号。设计地点。指导教师。设计起止时间 2008 年6月 2日至 2008 年 6月 6 日。目录。1 问题描述 2 1.1 题目内容 2 1.2 基本要求 2 1.3 测试数据 2 2...

数据结构课程设计

数据结构 课程设计。实验报告。学院 信息工程学院。班级 姓名 学号 指导老师 题目2 一元多项式的计算。1 实验目的。1 掌握链表的灵活运用 2 学习链表初始化和建立一个新的链表 3 知道怎样去实现链表删除结点操作与插入结点 4 理解链表的基本操作 包括数据域数据的相加 并能灵活运用。2 实验内容。...

数据结构课程设计

班级 信计 1102 姓名 李娜娜。学号 1108060209 设计日期 2013.07.15 西安科技大学计算机学院 1.实验题目 编制一个演绎扫雷游戏的程序。2.问题描述。做一个n x m的扫雷游戏,每个方格包含两种状态 关闭 closed 和打开 opened 初始化时每个方格都是关闭的,一个...