一元多项式的四则运算
学生姓名:XX 指导老师:XX
摘 要 本课程设计主要解决一元多项式的运算问题,通过链表的使用,实现对一元多项式的构建、录入、存储、打印、以及之间的运算。在本课程设计中,程序设计语言为C++语言,程序运行平台为Windows/98/2000/XP,程序采用了链表存储方法以及结构化和模块化的设计方法,通过调试运行,可以进行多项式的加、减、乘运算,勉强实现了设计目标,并且经过适当完善后,将可应用到实际中解决某些问题。
关键词 程序设计; C++ ;一元多项式;运算
1 引 言
一般来说,我们只知道数学上的一元多项式的运算,这一般都是用笔来进行运算的,然而此课程设计将一元多项式的运算用电脑来进行,只需要将多项式输入,然后就可以出结果,速度快,省去了认为计算的环节,在现实中带来不少方便。
1.1 课题背景
一元多项式的运算,虽然无法直接在除数学外的其他领域作出贡献,但是在数学上, 它可以为人们解决一些自己动笔动手很难解决的问题,比如说那些很长很长的多项 式,用笔算可能要算半天,但是用该程序,只需短短的几秒钟,所以它给人们带来了 不少方便,同时相信它也能间接地为其他领域做出贡献。
1.2 课程设计目的
个人觉得,该数据结构课程设计一方面可以让自己更加熟悉那些些常用的数据结构,掌握数据结构内在的逻辑关系,以及它们在计算机中的存储表示,和对它们实行的各种运算;另一方面,可以让自己对于整体和局部,以及结构化和模块化编程有一个更深层次的了解。作为网络工程的学生,虽然之前有过一次C语言课程设计,但是深知自己编程能力尚为欠缺,所以这一次数据结构课程设计是对我的编程能力和组织能力的又一次考验。
1.3课程设计内容
本课程设计是用链表实现一元多项式的存储及运算,其中包括多项式系数及指数的录入(即一元多项式的录入),以及储存、一元多项式的显示、一元多项式之间的加、减、乘法运算。
2 设计思路与方案
2.1设计思路
该系统使用C++语言进行开发和实现,程序中的各个功能分别由不同的的函数实现,然后在main 函数中调用实现。其设计思路基于结构化的程序设计和链表的存储等,应用了高级语言程序设计中的基本控制结构,如循环和选择等。
2.2设计方案
先定义链表类型结点和一元多项式,然后申明个功能函数并分别编写这些功能函数的算法,然后定义一个菜单函数Menu(),最后在main()函数中分别调用这些函数,其中输入的数据则由链表进行储存。其系统结构图如图2-1所示:
图2-1 一元多项式的四则运算
3 详细实现
3.1一元多项式创建
操作流程图如下图所示:
图3-1 一元多项式的创建流程图
先判断多项式的系数与项数之间大小关系,流程图如下所示:
图3-2一元多项式相加流程图
相减即取第二个的相反数,然后进行加法运算,操作流程图如下图所示:
3.4一元多项式相乘
操作流程图如下图所示:
图3-3一元多项式相减流程图
图3-4一元多项式相乘流程图
3.5一元多项式输出
先判断录入的两个多项式是否有空项,如果两个多项式都不是空的,那么顺序输出多项式A 和多项式B ,否则多项式创建不成功,提示重新输入。操作流程图如下图所示:
图3-5一元多项式输出流程图
3.6一元多项式销毁
先判断存储多项式的链表类型结点是否都不为空结点,若有空结点,则提示重新选择,否则,按顺序销毁多项式A,B 。操作流程图如下图所示:
图3-6一元多项式销毁流程图
3.7退出
本过程较为简单,用exit(0)强制终止程序,返回状态码0表示正常结束。其操作流程图如下图所示:
图3-6一元多项式退出流程图
4 运行环境与结果
4.1运行环境
在本课程设计中,系统开发平台为WindowsXP , 程序设计语言为 C++,程序的运行环境为Visual C++ 6.0。
4.2运行结果
(1)在程序开始运行时,会出现一个编号1-7的菜单并提示选择,如下图所示:
图4-1 最初运行界面
(2)选择1,创建两个一元多项式,按顺序操作,录入两个一元多项式,结果如下图所示:
图4-2 一元多项式创建
(3)选择2,将两个一元多项式相加,操作后结果如下图所示:
图4-3一元多项式相加