学号
2014
2014-2015学年 第二学期
《软件工程》
课程设计报告
题目:
一元稀疏多项式计算器
专业:
计算机科学与技术
班级:
计算机科学与技术(2)班
姓名:
指导教师:
成绩:
TOC \o "1-3" \h \z \u HYPERLINK \l "_Toc435644060" 一、问题描述 PAGEREF _Toc435644060 \h 3
HYPERLINK \l "_Toc435644061" 二、 需求分析 PAGEREF _Toc435644061 \h 3
HYPERLINK \l "_Toc435644062" 三、概要设计 PAGEREF _Toc435644062 \h 4
HYPERLINK \l "_Toc435644063" 四、详细设计 PAGEREF _Toc435644063 \h 5
HYPERLINK \l "_Toc435644064" 五、 源代码 PAGEREF _Toc435644064 \h 6
HYPERLINK \l "_Toc435644065" 六 、程序测试 PAGEREF _Toc435644065 \h 18
HYPERLINK \l "_Toc435644066" 七、 使用说明 PAGEREF _Toc435644066 \h 24
HYPERLINK \l "_Toc435644067" 八、 课设总结 PAGEREF _Toc435644067 \h 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
②用两个带表头结点的单链表分别存储两个多项式
③根据一元多项式相加的运算规则:对于两个一元多项式中所有指数相同的项,对应系数相加,若其和不为零,则构成“和多项式”中的一项;
④只需要将第二个多项式的系数改为其相反数,然后根据一元多项式相加的运算规则便可以得到其相应的“差多项式”
三、概要设计菜单加法
菜单
加法
AddPolyn(ma,mb)
减法SubtractPolyn(ma,mb)
乘法
MultiplyPolyn(ma,mb)
求值ValuePolyn(ma,x)
输入Insert(Polyn p,Polyn h)
除法DevicePolyn(ma,mb)
输出desktop()
图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 输入模块
用户可通过本模块来输入一个多项式,在每次输入一个多项式时,本模块会先判断谁否是第一次