多项式求和

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据结构课程设计

题目:多项式运算

学生姓名:熊奉标

学号:10115011046

专业:计算机科学与技术

班级:10级(1)班

指导教师姓名及职称:陈正铭讲师

起止时间:2012 年2 月——2012 年4 月

1 需求分析

1.1 课题背景及意义

本课程设计主要解决一元多项式的运算问题,通过链表的使用,实现对一元多项式的构建、录入、存储、打印、以及之间的运算。在本课程设计中,程序设计语言为C++语言,程序运行平台为Windows/98/2000/XP,程序采用了链表存储方法以及结构化和模块化的设计方法,通过调试运行,可以进行多项式的加、减、乘运算,勉强实现了设计目标,并且经过适当完善后,将可应用到实际中解决某些问题。

一元多项式的运算,虽然无法直接在除数学外的其他领域作出贡献,但是在数学上,它可以为人们解决一些自己动笔动手很难解决的问题,比如说那些很长很长的多项式,用笔算可能要算半天,但是用该程序,只需短短的几秒钟,所以它给人们带来了不少方便,同时相信它也能间接地为其他领域做出贡献。

1.2 课题要求

(1)掌握线性表的创建、插入、删除等基本运算。

(2)掌握线性表的顺序存储结构和链式存储结构

(3)掌握线性表的典型应用—多项式运算(加、减、乘)。

该程序的主要任务是将用户输入的多项式用线性表存储,然后通过对线性表的基本操作,而实现多项式之间的三则运算,把正确结果输出给用户。

1.3 软件格式规定

输入格式:有两类编辑框可供输入,系数编辑框、指数编辑框,在系数编辑框中允许输入浮点型数据,在指数编辑框中只允许输入整型数据。

正确的输入:

f(x)=8X^6+4X^5-2X^4-12X^3-1X^1+10X^0

g(x)=2X^3-5X^2+1X^1

正确的输出结果:

f(x)+g(x):结果= 8.00X^6 +4.00X^5 -2.00X^4 -121.00X^3 -5.00X^2 +10.00 f(x)-g(x):结果= 8.00X^6 +4.00X^5 -2.00X^4 -125.00X^3 +5.00X^2 -2.00X

+10.00

f(x)*g(x):结果= 16.00X^9 -32.00X^8 -16.00X^7 -232.00X^6 +613.00X^5 -125.00X^4 +25.00X^3 -51.00X^2 +10.00X

f(x)/g(x):结果=4.00X^3 +12.00X^2 +27.00X;余数=-27.00X^2 -1.00X +10.00 错误的输入:

f(x)=10aX^6 g(x)=2X^2.3

输出结果:

弹出一个对话框,提示用户“系数必须为浮点数,请正确输入“,更改了f(x)的多项式构造后,点击”完成多项式f(x)构造”才能构造g(x)多项式,因为g(x)的指数部分不是整数,所以为弹出警告窗口”指数必须为整数,请正确输入”。

1.4程序的功能

(1)建表

(2)插入

(3)删除

(4)显示

(5)查找

(6)求和

(7)求差

(8)求积

(9)返回

1.4 设计目标

个人觉得,该数据结构课程设计一方面可以让自己更加熟悉那些些常用的数据结构,掌握数据结构内在的逻辑关系,以及它们在计算机中的存储表示,和对它们实行的各种运算;另一方面,可以让自己对于整体和局部,以及结构化和模块化编程有一个更深层次的了解。作为网络工程的学生,虽然之前有过一次C语言课程设计,但是深知自己编程能力尚为欠缺,所以这一次数据结构课程设计是对我的编程能力和组织能力的又一次考验。

1.5设计条件

(1)软件名称:多项式运算.exe

(2)制作平台: visualstudio 2010;

(3)编程语言:c语言

(4)运行环境:windows 7,xp

2 概要设计

2.1问题解决的思路概述

该系统使用C++语言进行开发和实现,程序中的各个功能分别由不同的的函数实现,然后在main函数中调用实现。其设计思路基于结构化的程序设计和链表的存储等,应用了高级语言程序设计中的基本控制结构,如循环和选择等。

2.2 相关函数介绍说明

linknode* CreateList()

//建立线性表

void InsList(float coef,int exp,linknode *head)

//插入结点元素向新建的链表插入数据

void DelList(float coef,int exp,linknode * head)

//删除结点元素

void showList(linknode* a)

//显示线性表

float SearchList(float coef,linknode * head)

//查找结点元素存在则返回指数对应的系数部分

bool SearchList(int exp,linknode *head)

//查找结点元素存在则返回反返回

linknode * add(linknode * ha,linknode * hb)

//加法运算

linknode * sub(linknode * ha,linknode * hb) //减法运算

void mul(linknode * ha,linknode * hb)

//相乘运算

linknode* cloneList(linknode * head)

//克隆多项式

2.3 主程序的流程基函数调用说明

2.3.1操作流程图

相加

相关文档
最新文档