c语言一元稀疏多项式的加法,一元稀疏多项式计算器C语言课程设计.doc

实用标准

文档大全

实用标准

文档大全

学号

2014

2014-2015学年 第二学期

《软件工程》

课程设计报告

题目:

一元稀疏多项式计算器

专业:

计算机科学与技术

班级:

计算机科学与技术(2)班

姓名:

指导教师:

成绩:

TOC \o "1-3" \h \z \u 一、问题描述 3

二、 需求分析 3

三、概要设计 4

四、详细设计 5

五、 源代码 6

六 、程序测试 18

七、 使用说明 24

八、 课设总结 25

一、问题描述

1.1基本要求

(1)输入并建立多项式;

(2)输出多项式,输出形式为整数序列:n,c1,e1, c2,e2,,,,,,, cn,en,其中n是多项式的项数,ci,ei,分别是第i项的系数和指数,序列按指数降序排序;

(3)多项式a和b相加,建立多项式a+b;

(4)多项式a和b相减,建立多项式a-b;

(5)计算多项式在x处的值。

(6)计算器的仿真界面。

1.2设计目的

数据结构是实践性很强的课程。课程设计是加强学生实践能力的一个强有力手段。课程设计要求学生在完成程序设计的同时能够写出比较规范的设计报告。严格实施课程设计这一环节,对于学生基本程序设计素养的培养和软件工作者工作作风的训练,将起到显著的促进作用

二、 需求分析

2.1 设计开发环境:

软件方面:系统 windows 7 编程软件:VC++ 6.0

2.2思路分析:

①一般情况下的一元n次多项式可写成pn(x)=p1xe1+p2xe2+……+pmxem 其中,p1是指数为ei的项的非零系数,且满足0≦e1

②用两个带表头结点的单链表分别存储两个多项式

③根据一元多项式相加的运算规则:对于两个一元多项式中所有指数相同的项,对应系数相加,若其和不为零,则构成“和多项式”中的一项;

④只需要将第二个多项式的系数改为其相反数,然后根据一元多项式相加的运算规则便可以得到其相应的“差多项式”

三、概要设计

图3-1功能模块图

为实现上述程序功能,用带表头结点的单链表存储多项式。元素类型,节点类型,和指针类型:typedef struct Polynomial{

int coe; //系数

int exp;//指数

struct Polynomial *next;

}*Polyn,Polynomial;

各个模块之间的调用如图3-1所示,调用insert()函数将输入的多项式按降幂排列,通过主函数main()中swith语句,选择用户所选择的对应的模块,然后又模块对应的功能函数对用户输入的数据进行相应的操作,最后通过desktop()模块将最后结果输出。

四、详细设计

开始运行

开始运行

多项式加法计算器

多项式加法计算器

退出

退出

求积、商求和(差)输入多项式

求积、商

求和(差)

输入多项式

关闭运行多项式相加求和(差)多项式求积、商

关闭运行

多项式相加求和

(差)

多项式求积、商

建立2个多项式

输出结果输出求和(差)结果

输出结果

输出求和(差)

结果

按任意键退出

图4-1 功能实现流程图

4.1 输入模块

用户可通过本模块来输入一个多项式,在每次输入一个多项式时,本模块会先判断谁否是第一次输入,如果是,创建节点,如果不是则模块会通过判断本次输入的数的指数与第一项输入的指数的大小,如果第一项的指数较大,则刚输入的这一项继续与第二项比较指数,以此类推,如果发现刚输入的这一项的指数比比较的这一项的指数要大,则插入比较项的前面。

4.2 求和、差模块

用户通过本模块可以实现两个多项式的求和或差值,此模块先调用输入模块,进行对两个要运算的多项式进行初始化,并按降幂排列。然后将两个多项式的幂进行一个对比,如果第一个数的第一项的系数大于第二个多项式的第一个项的系数,那么直接将第一项赋值于刚开始创建的链表的第一项,作为答案的最后一项,反之亦然,如果第一个数的第一项,与第二个数的第一项的系数相同,那么将两个数的系数与指数分别相加或者相减并将对应值赋值给答案相对应的项。以此类推。最后有输出模块输出最后答案。

4.3求积、商模块

用户可通过该模块实现两个多项式的相乘(相除),此模块先调用输入模块,进行对两个要运算的多项式的初始化,并按降幂排列。然后将第一个数的系数、指数与第二个数的系数、指数分别相乘(相除),相加(相减),并且赋值给答案相应的系数、指数。完成后执行第一个数的第一项与第二个数的第二项进行相应的操作…….执行完之后最后调用输出模块将结果输出到屏幕上。

4.4求值

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一元稀疏多项式计算器课程设计: 1. 课程目标: 本课程设计旨在让学生掌握一元稀疏多项式的基本概念、表示方法、加法、乘法和除法等基本运算,能够设计并实现一元稀疏多项式计算器程序。 2. 预备知识: 本课程设计需要学生具备以下预备知识: (1)高等数学中的多项式基本概念和运算法则; (2)C++程序设计语言基础知识,如变量、数组、循环语句、函数等; (3)数据结构中的链表基本概念和操作方法。 3. 课程内容: (1)一元稀疏多项式的概念及表示方法; (2)一元稀疏多项式加法运算及其实现; (3)一元稀疏多项式的乘法运算及其实现; (4)一元稀疏多项式的除法运算及其实现; (5)一元稀疏多项式计算器程序设计。 4. 教学方法: 本课程设计采用讲授、演示和实践相结合的教学方法。首先,通过讲解一元稀疏多项式的概念及表示方法,让学生理解多项式的基本结构和特点。然后,通过演示一元稀疏多项式加法、乘法和除法运算的具体实现方法,让学生掌握多项式的基本运算规则和算法。最后,通过实践设计一元稀疏多项式计算器程序,让学生将所学知识应用到实际问题中。 5. 实践环节: 本课程设计实践环节主要包括以下内容: (1)设计一元稀疏多项式加法、乘法和除法运算函数,并编写测试程序进行验证; (2)设计一元稀疏多项式计算器程序,实现多项式的输入、输出、加法、乘法和除法运算功能,并进行测试。 6. 教学评估: 本课程设计的教学评估主要采用考试和作业相结合的方式。考试主要测试学生对一元稀疏多项式的基本概念、表示方法、加法、乘法和除法等基本运算的掌握情况;作业主要要求学生设计并实现一元稀疏多项式计算器程序,并在实践中运用所学知识,检验其对一元稀疏多项式的理解和应用能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值