《一元稀疏多项式课程设计》由会员分享,可在线阅读,更多相关《一元稀疏多项式课程设计(16页珍藏版)》请在毕设资料网上搜索。
1、 课程设计课程设计报告书报告书 课程名称课程名称 数据结构数据结构 设计题目设计题目 一元稀疏多项式计算器一元稀疏多项式计算器 专业班级专业班级 软件工程软件工程 学学 号号 姓姓 名名 指导教师指导教师 2012 年年 1 月月 目录目录 1 设计时间 2 2 设计目的 2 3 设计任务 . 2 4 设计内容 2 4.1 需求分析 2 4.2 总体设计 2 4.3 详细设计 5 4.4 测试与分析6 4.4.1 测试6 4.4.2 分析8 4.5 附录9 5、 总结与展望 . 11 参考文献 . 13 成绩评定 . 13 1 1 设计时间设计时间 2012 年 1 月 2 日-2012 年
2、1 月 6 日 2 2 设计目的设计目的 实现一元多项式的相加,相减,输出结果。 3 3 设计任务设计任务 设计一个一元稀疏多项式简单计算器 4 4 设计内容设计内容 4.1 需求分析 一元稀疏多项式简单计算器的基本功能是: (1)输入并建立多项式creatpolyn(); (2)输出多项式,输出形式为整数序列:n,c1,e1,c2,e2,cn,en,其中 n 是多项式的项数,ci 和 ei 分别是第 i 项的系数和指数,序列按指数升序排列 printpolyn(); (3)多项式 a 和 b 相加,建立多项式 a+b,输出相加的多项式addpolyn(); (4)多项式 a 和 b 相减,建
3、立多项式 a-b,输出相减的多项式subpolyn()。 4.2 总体设计 1.用到的所有抽象数据类型的定义; ADT List 数据对象:D=ai|aiElemSet,i=1,2,n,n0 数据关系:R1=|ai-1,aiD,i=2,n 基本操作: InitList( float coef; int expn; lnode,*linklist; void createpolyn(linklist *L) void printpolyn(linklist *L) void addpolyn(linklist La,linklist Lb,linklist Lc) void subpolyn(l
4、inklist La,linklist Lb,linklist Lc) 选择输入 加法 减法 建立两个多项式,分别输出并计算 输出和多项式 输出差多项式 main() createpolyn printpolyn addpolyn subpolyn 2. 对主程序和其它主要函数伪码算法(伪码算法达到的详细程度建议为:按照伪码 算法可以在计算机键盘直接输入高级程序设计语言程序) ; /* 主函数 */ void main() int x; linklist Head,Head_a,Head_b,Head_c; linklist *L,*La,*Lb; L=La=Lb= createpolyn(L
5、); printpolyn(L); printf(“n”); printf(“求加法请输入1,减法输入2,按回车确认n“); /菜单项 scanf(“%d“, if(x=1) createpolyn(La); printpolyn(La); createpolyn(Lb); printpolyn(Lb); Head_c=Head_a; addpolyn(Head_a,Head_b,Head_c); else if(x=2) createpolyn(La); printpolyn(La); createpolyn(Lb); printpolyn(Lb); Head_c=Head_a; subpolyn(Head_a,Head_b,Head_c); 3.函数的调用关系图。 4.4 测试与分析 4.4.1 测试 4.4.2 分析 1. 调试过程中遇到的问题是如何解决的以及对设计与实现的回顾讨论和分析; 多项式的建立,与链式表一致,只是每个结点中多了一个数据域,而多项式的运算,则与链 表的合并相似。指数相同的项,对应系数相加(或相减) ,若其和不为 0,则构成多项式的一 项,对于两个一元多项式中所有指数不相同的项,则分别复制到和多项式中。 和多项式链表中的结点