1、 1 数 据 结 构 课 程 设 计 设计题目:基于链式表实现一元多项式的加减乘运算 2 课题名称 基于链式表实现一元多项式的加减乘运算 院 系 年级专业 成 绩 课题设计 目的与 设计意义 1、课题设计目的:通过多项式运算程序设计(用 C 语言实 现) ,使我们进一步掌握和利用 C 语言进行结构化程序设计的能力; 进一步理解和运用结构化程设计的思想和方法;初步掌握开发一个 小型系统程序设计的基本方法;学会调试一个较长程序的基本方法; 学会利用流程图或 N-S 图表示算法;以及掌握书写课程设计开发文 档的能力(书写课程设计报告) 。总之,通过本课程设计加深对C 语言及数据结构课程所学知识的理解
2、,进一步巩固 C 语言语 法规则,在程序中体现出算法的思想,提高程序的运行效率。学会 编制结构清晰、风格良好、数据结构适当的语言程序,从而具备 解决综合性实际问题的能力。 2、课题设计意义:通过这次课程设计练习,使我更深刻地 理解了语言的精髓-指针的使用。完成整个程序设计有,对指 针掌握的更加熟练。 同时通过直接对链表的操作,加深了对数据结构的理解和认识。 并在完成课程设计的过程作主动查阅了相关资料,学到了不少课本 上没有的技术知识。 经过这次课程设计,我深刻认识到算法在程序设计中的重要性, 一个完整的程序总是由若干个函数构成的,这些相应的函数体现了 算法的基本思想。 另外也需要提出的是在这次
3、程序设计的过程中,非常感谢老师 对我的耐心指导。老师在教学过程中表现出来的对学术专研一丝不 苟的精神让我非常有收获。同样也是老师的严格要求才使得我能够 顺利的完成任务。 指导教师: 年 月 日 目目 录录 问题分析问题分析 1 1 1 1 1.1 问题描述 1 1.2 问题的数学模型 1 1.3 构造数据结构 1 2 2 系统分析系统分析 2 2 2.1 可行性研究 2 2.2 系统结构与主要功能模块 2 3 3 系统设计系统设计 4 4 3.1 系统设计目的与要求 4 3.2 系统设计内容 4 3.3 功能算法描述与数据结构说明 4 4 4 系统实现系统实现 7 7 5 5 调试及运行结果调
4、试及运行结果 1111 6 6 收获和体会收获和体会 1212 附录附录 1313 1 问题分析问题分析 1 1 1.1 问题描述 设计一个 n 元多项式程序,并完成多项式的乘法运算。从实际的角度出发, 这里设计的程序是基于一元 n 次多项式的数学模型。 1.2 问题的数学模型 在数学上,一个一元多项式 Pn(x)可按升幂写成:Pn(x)=a 0+a1 x+a2 x2 +an xn-1 .它由 n+1 个系数惟一确定,因此,在计算机里,它可用一个线性 表 P 来表示:Pn=(a0,a1,a2,an)每一项的指数 i 隐含在其系数 ai 的序号里。 多项式的乘法规则:多次运用单项式与多项式相乘的
5、法则得到的计算时 (a+b)(m+n),先把(m+n)看成一个单项式,(a+b) 是一个多项式,运用单项式与 多项式相乘的法则,得到(a+b)(m+n)=a(m+n)+b(m+n),然后再次运用单项式与多 项式相乘的法则。 1.3 构造数据结构 通过分析多项式的特征,不难看出多项式是由单项式构成的,而每个单项式 都具有系数和指数,当系数为 0 时,该项就失去了意义,在计算机内要表示一个 多项式,至少以下数据信息:系数信息、指数信息和指向下一个单项式的指针。 通过指针,我们就可以把多个单项式连接起来,形式一个多项式,需要说明的是 从广义的角度讲,单项式也是一个多项式。基于以上的分析,我们定义多项
6、式的 数据结构为如下结构体形式: typedef struct Polynomial float coef;/系数 int expn;/指数 struct Polynomial *next;/指向下一个结点 *Polyn,Polynomial; /Polyn 为结点指针类型 2 2 系统分析 2.1 可行性研究 该程序主要从技术的角度来分析可行性。 技术上的可行性研究主要分析技术 条件能否顺利完成开发工作,硬、软件能否满足开发者的需要等。该系统采用了 Windows XP 操作系统结合 Visual C+ 6.0,TC 2.0 等软件开发平台已成熟可行。硬 件方面,科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠 性越来越高,其硬件平台也比较能满足此系统的需要。此外,还有经济可行性, 用户使用可行性,法律可行性等可行性研究,这里从简省去。 2.2 系统结构与主要功能模块 从实现多项式式运算过程的角度来分析, 至少需要这样一些子功能模块。 如: 1.