课程设计报告模板 2

  • 格式:doc
  • 大小:169.50 KB
  • 文档页数:19

下载文档原格式

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

课程设计

教学院湖北理工学院

课程名称数据结构课程设计

题目一元多项式的运算

专业网络工程

班级一班

姓名杨成雷

同组人员秦枚林姜佳豪梅春帆指导教师冯珊

2013 年12 月26 日

(完成时间)

目录

一概述 (2)

1.课程设计的目的 (2)

2.课程设计的要求 (2)

二总体方案设计 (3)

1.整体设计思路如下 (3)

2. 我所承担的设计工作 (4)

三详细设计 (5)

1.基本的具体算法 (5)

2.函数的剖析 (7)

3.实现一元多项式各项运算程序代码如下: (11)

四程序的调试与运行结果说明 (16)

参考文献 (18)

一概述

1.课程设计的目的

1.理解和掌握该课程中的有关基本概念,程序设计思想和方法。

2.培养综合运用所学知识独立完成课题的能力。

3.培养勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。

4.掌握从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。

2.课程设计的要求

需要的基本知识与技能,尚未掌握的知识点,需要查阅相关资料。教师对本题目所提出的要求等。其课程设计题目的要求如下:

1.用C语言实现一元多项式的运算.

2.利用链表实现一元多项式运算的存储.

3.该程序具有加法、减法、乘法基本运算功能.

4. 程序的各个功能模块要求用函数的形式实现.

5. 完成设计任务并书写课程设计报告

二总体方案设计

1.整体设计思路如下

(1)存储结构:一元多项式的表示在计算机内可以用链表来表示,为

了节省存储空间,只存储多项式中系数非零的项。链表中的每一个

结点存放多项式的一个系数非零项,它包含三个域,分别存放该项

的系数、指数以及指向下一个多项式项结点的指针。创建一元多项

式链表,对一元多项式的运算中会出现的各种可能情况进行分析,

实现一元多项式的相加、相减、相乘操作。代码如下:

typedef struct Polynomial

{

float coef;//系数

int expn;//指数

struct Polynomial *next;//指向下一个结点

}*Polyn,Polynomial; //Polyn为结点指针类型

(2)基本步骤:根据一元多项式相加的规则,对于两个一元多项式中所

有指数相同的项,对应的系数相加,若其和不为零,则构成“和多项式”中的一项,对于两个一元多项式中指数不相同的项则分别复制到“和多项式”中去。即步骤如下:

A输入并建立多项式

B输出多项式,输出形式为整数序列:n,c1,e1,c2,e2….,en 其中n为多项式的项数,次,ci,ei分别为第i项的系数与指数序列按指数降序排列。

C多项式a和b的相加,建立多项式a+b,输出相加的多项式

D多项式a和b的相减,建立多项式a-b,输出相减的多项式

E多项式a和b的相乘,建立多项式a*b,输出相乘的多项式(3)算法的整体模块如下思路:

1. 多项式创建功能;

2. 多项式运算功能;

3. 操作界面显示功能;

4. 销毁多项式的功能;

5. 多项式复制功能等

2. 我所承担的设计工作

在该次课程设计中,我所承担的工作是得出一元多项式的减法,其主要的关键问题解决是:

创建两个指针分别指向两个多项式表头的next以两个指针同时不为空为条件循环遍历,如果当前多项式1的指数小于多项式2则将当前多项式2的系数置负,指数不变,存入新建多项式中,指向多项式2的指针指向下一个;如果如果当前多项式1的指数大于多项式2则将当前多项式1的系数指数不变,存入新建多项式中,指向多项式1的指针指向下一个;否则将多项式1的系数减去2的系数后存入新建多项式中,指数不变存入,再将两个指针同时指向下一个。结束循环后判断是哪一个多项式遍历完了,将未遍历完的多项式剩下的数据全部插入新建的多项式中。

三详细设计

(所完成的具体功能及用到的算法(详细分析)。程序流程图

主要部分的详细流程图)

1.基本的具体算法

1.1输入输出

(1)功能:将要进行运算的多项式输入输出。

(2)数据流入:要输入的多项式的系数与指数。

(3)数据流出:合并同类项后的多项式。

(4)程序流程图:多项式输入流程图如图1所示。

(5)测试要点:输入的多项式是否正确,若输入错误则重新输入

(图一)

1.2多项式的加法

(1)功能:将两多项式相加。

(2)数据流入:输入函数。

(3)数据流出:多项式相加后的结果。

(4)程序流程图:多项式的加法流程图如图2所示。

(5)测试要点:两多项式是否为空,为空则提示重新输入,否则,进行运算。

图二

1.3多项式的减法

(1)功能:将两多项式相减。

(2)数据流入:调用输入函数。

(3)数据流出:多项式相减后的结果。

(4)程序流程图:多项式的减法流程图如图三所示。

(5)测试要点:两多项式是否为空,为空则提示重新输入,否则,进行运算。

图三

2.函数的剖析

2.1该多项式程序除了main()函数外,主要有以下函数:

void Insert(Polyn p,Polyn h)

Polyn CreatePolyn(Polyn head,int m)

void DestroyPolyn(Polyn p)

void PrintPolyn(Polyn P)

int compare(Polyn a,Polyn b)

Polyn AddPolyn(Polyn pa,Polyn pb)

Polyn SubtractPolyn(Polyn pa,Polyn pb)

下面对这些函数逐一介绍:

(1)main()函数

main函数用来实现提示使用者输入、显示功能列表、调用其他运算函