- 1、本文档共28页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构程序设计作业《一元多项式的四则运算》
教学单位
学生学号
数据结构
课程设计报告书
题 目 一元多项式四则运算
学生姓名
专业名称
指导教师
目 录
1 问题描述 - 2 -
2 功能描述 - 2 -
2.1 课题要求 - 2 -
2.2 软件格式规定 - 2 -
3 设计 - 2 -
3.1 相关函数介绍说明 - 2 -
3.2 主程序的流程基函数调用说明 - 3 -
4 程序设计 - 5 -
4.1 多项式存储的实现 - 5 -
4.2 加减乘除算法 - 5 -
4.2.1加法运算的实现 -5 -
4.2.2减法运算的实现 - 6 -
4.2.3乘法运算的实现 - 7 -
4.2.4除法运算的实现 - 7 -
4.3 函数调用关系图 - 8-
5 运行测试 - 9-
6 设计小结 - 12-
参考文献 - 12-
谢 辞 - 13-
附录:程序清单 - 14-
1 问题描述
1.1首先是确定结构化程序设计的流程图,利用已学过的数据结构来构造二个存储多项式的结构,接着把输入,加,减,乘,除运算分成四个主要的模块:实现多项式输入模块、实现加法的模块、实现减法的模块、实现乘法的模块、实现除法的模块,然后各个模块里面还要分成若干种情况来考虑并通过函数的嵌套调用来实现其功能。最后,编写main主函数以实现对多项式输入输出以及加、减、乘、除,调试程序并将不足的地方加以修改。总而言之,就是先用自顶向下、逐步细化的设计方法来分析并画出程序设计流程图;然后用自下而上、逐步积累的设计方法来写出程序。
2 功能描述
2.1 课题要求
A. 支持一元多项式的运算器
B. 能够正确输入并显示输入多项式的每一项
C. 要求将输入的多项式F(X),G(X)可进行加,减,乘,除运算,并显示结果
2.2 软件格式规定
A.输入的形式 :按程序菜单的数字选择输入,并按提示输入多项式。按照(系数 指数)的格式进行输入并以输入(0 0)作为结束输入的控制。
B. 程序所能达到的功能 :能够进行多项式的输入,显示,加,减,乘,除运算。
C.输出的形式:按照多项式的数学表达式的形式输出,形如:F(x)=X^2+2X^3-2X^4-3X^3-X^1+10
3 设计
3.1 相关函数介绍说明
(1)程序定义的数据结构类型为线性表的链式存储结构类型变量:
typedef struct linknode
(2)程序定义的其它函数:
linnode *Sort(linnode *S);
//多项式按指数从大到小排序
linnode *CreateList();
//创建多项式
Void ShowList(linnode *head) ;
//显示多项式
linnode *Copy(linnode *copy);
//拷贝多项式(因为做减法运算时会破坏原来输入的多项式)
linnode *SearchList(linnode *head,int x);
//查找函数
Linnode *Mulr(linnode *s,linnode *p)
//用一个节点去乘与一个多项式(辅助除法运算)
Linnode *AddSame(linnode *head);
//和并多项式的同类项
linnode *Add(linnode *head1,linnode *head2);
// 加法
Mul(linnode *head1,linnode *head2);
// 乘法
Sub(linnode *head1,linnode *head2);
// 减法
Void Div(linnode *head1,linnode *head2)
//除法
int main( )
//主函数
3.2 主程序的流程基函数调用说明
(1)主程序的简要流程图
图1 主程序流程图
(2)各程序模块之间的层次(调用)关系
①输入模块“CreateList()”,首先按提示逐项输入多项式的每一项,当接收到“0 0”时终止输入,此时调用“Sort()”进行按指数降序排列后直接返回多项式的链表头指针。
②加法运算模块“Add()”,首先将两个多项式连接成一个多项式,再调用“AddSame()”函数进行合并连接后的多项式的同类项并返回头指针。
③减法运算程序模块“Sub( )”,首先判断多项式1是否为空,不为空时调用“SearchList()”进行查找操作,查找到的结果与多项式1作减法后删除多项式2中查找到的对应项。多项式2中剩余的项取反后连接到多项式1的尾部,再调用“AddSame()”进行合并同
文档评论(0)