1、 课程设计报告 设计名称:设计名称: 数据结构课程设计数据结构课程设计 设计题目:设计题目: 两个高次多项式的加法和乘法两个高次多项式的加法和乘法 学生学号:学生学号: 专业班级:专业班级: 软件工程软件工程 1 班班 软件学院课程设计任务书软件学院课程设计任务书 学生姓学生姓名名 学学号号 专业班级专业班级 软件工程 1 班 设计题设计题目目 任意两个高次多项式的加法和乘法运算 内容概要:内容概要: 设计或开发环境:设计或开发环境:Microsoft Visual Studio 2010 关键技术:关键技术:C+语言 主要功能:主要功能: 1建立一元多次多项式 2高次多项式相加 3高次多项式
2、相乘 文献资料:文献资料: 1谭浩强C 语言程序设计(第三版) 清华大学出版社 2007 2姜敏芝 余健 C 语言程序设计案例精编 清华大学出版社 2008 3李健学 余健 数据结构课程设计案例精编 2007 4唐国民 王国均数据结构(C 语言版) 清华大学出版社 5韩利凯 李军 数据结构 浙江大学出版社 2013 6网上相关文献资料 设计要求:设计要求: A.功能要求 1)输入并建立多项式; 2)输出多项式; 3)两个多项式相加,输出和多项式; 4)两个多项式相乘,输出积多项式。 B.文档格式 *.cpp 工作期限:工作期限:设计工作自 2014 年 6 月 16 日至 2014 年 6 月
3、 27 日止。 摘 要 摘要:摘要:本课程设计主要解决任意两个高次多项式的乘法运算。所设计的数据结构 应尽可能节省存储空间,程序的运行时间应尽可能少。从题目看出所设计的程序应能达 到的功能,设计好的程序要满足以上两点。在数据输入方面可以根据一元高次多项式的 特征,从左到右开始,按每一项指数、系数的顺序输入。这里要留意一个问题,因为要 相乘的多项式项数是未知的,所以选择什么样的存储方式在本课程设计中尤为重要,这 也是本程序好坏的一个评定。程序通过调试运行,初步实现了设计目标,并且经过适当 完善后,将可以应用在商业中解决实际问题。 关键词:高次多项式;加法;乘法;时间复杂度;空间复杂度 - I -
4、 目 录 目 录 I 第一章 课题背景 . 2 1.1 绪论. 2 1.2 主要内容 2 第二章 设计简介及设计方案论述 3 2.1 系统分析 3 2.1.1 功能需求 3 2.1.2 数据需求 3 2.1.3 系统需求 3 2.2 总体设计 3 2.2.1 系统设计方案 . 3 2.2.2 功能模块设计 . 4 第三章 详细设计 . 5 3.1 主要流程图 5 3.2 链表模块 6 3.3 加法模块 8 3.4 乘法模块 10 第四章 设计结果及分析 12 4.1 调试与测试 12 4.1.1 调试 . 12 4.1.2 测试 . 12 4.1.3 运行界面 13 4.2 结果分析 13 总
5、结 14 参考文献 . 15 附录 . 16 - 2 - 第一章 课题背景 1.1 绪论 随着科技的进步,社会的不断发展,计算器已普遍应用于各行各业,为了帮 助人们提高工作效率,节约运算时间,设计一个多功能的计算器是很有必要的, 在此设计一个高次多项式计算器可以很方便的对多项式相加、相减、相乘,对提 高人们的运算效率很有帮助。 这样一个程序需要用到 C+多方面的知识,要实现多项式的建立和输入输出 等功能,必须要熟练的掌握 C+,在此尤其是链表的灵活运用和结点特点。 1.2 主要内容 用 C+语言实现多项式的输入输出和多项式的加减乘等运算,其中主要用到 链表和结点的相关知识,具体功能如下: 1)
6、输入并建立多项式; 2)输出多项式; 3)两个多项式相加,输出和多项式; 4)两个多项式相减,输出差多项式。 - 3 - 第二章 设计简介及设计方案论述 2.1 系统分析 2.1.1 功能需求 实现任意两个高次多项式的加法和乘法 2.1.2 数据需求 在输入过程中,首先要给定输入的数据,数据只能是数字,不能是字母或其 他,不能连续输入数据,必须要求以空格分开要输入的数据。 2.1.3 系统需求 系统必须安全可靠,不会出现无故死机状态,运算速度要快。 2.2 总体设计 2.2.1 系统设计方案 用户输入高次多项式系数和指数,用单链表储存你输入的数据,输出两个多 项式相加和相乘之后的结果。 (1) 数据结构的选择 本程序选择的数据结构是单链表,原因如下: 当需要插入数据元素时,临时动态地为其申请一个存储空间,而不是将结点 放在一个定义的数组中,删除数据元素时,可以释放该数据元素所占用的空间, 即可以根据表的实际需要临时动态的分配存储空间以存