1、课程设计报告课程设计报告书书 一:课程设计题目 一元多项式计算一元多项式计算 二:课程设计内容二:课程设计内容 1、能够按照指数降序排列建立并输出多项式;能够完成两个多项式的相加,并 将结果输出。 2、将任意给出的 n 次多项式建成单链表结构,结点的结构为系数、指数、指针, 然后实现多项式求和运算。 3、良好的用户界面,对于错误的输入,要能给出信息提示。 三:进度安排 1、2014 年 9 月 13 日,自由分组,布置任务 2、2014 年 9 月 14 日,小组成员相互讨论,分工合作,查阅资料,编写源程序 并调试 3、2014 年 9 月 15-19 日,完成模块联编并进行测试 4、2014
2、 年 9 月 20-21 日,成果验收,完成设计报告 四:基本要求 1、用 C 语言实现一元多项式计算 2、利用单链表实现一元多项式的计算存储 3、完成设计任务并书写课程设计报告 目录目录 一一 需求分析需求分析11 二二 概要设计概要设计22 三三 详细设计详细设计33 四四 调试分析调试分析4 4 五五 用户使用说明用户使用说明55 六六 测试结果测试结果6 6 七七 课程设计总结课程设计总结7 7 八八 附录附录8 8 1 1需求分析需求分析 (a)该程序能实现任意输入两个一元多项式,无论一元多项式的指数如何排列 和是否有同类项,都能先将其化简排序后,在实现两个多项式相加的功能。 (b)
3、在这里我们运用单链表来存放一元多项式,先用 typedef struct 定义了一个新 类型 datatype, 再 typedef struct Node 来申明结点, 在其中定义了 datatype data_1, data_1 可以访问一元多项式系数和指数。struct Node *next 指向下一个结点的指 针,用尾插法建立一元多项式的单链表。输入一元多项式时系数和指数用 0 作为 终止符。 (c)通过选择排序,将单链表中的多项式指数由高到低排序,再将单链表中的多项 式指数相同的合并同类项,得到化简后的一元多项式。最后调用 pc = add_list(pa,pb);实现两个多项式相加
4、。 2 2概要设计概要设计 1、本程序中用到的所有抽象数据类型 typedef struct int cff;/系数 int exp;/指数 datatype; typedef struct Node datatype data_1;/定义 datatype 的一个变量 struct Node *next; listnode;/自定义 struct 数据类型为 linklist,而不是定义 linklist,所以不能在这 里定义 pa,pb typedef listnode* linklist; linklist create_list() void Select_sort(linklist
5、l) void merge_list(linklist l) linklist add_list(linklist l_fir, linklist l_sec) void result_out(linklist p) void free_list(linklist p) 2、 存 储 结 构 3、 模块划分 (a)主程序(b)建立单链表(c)输入一元多项式,排序合并(d)两个多项式 相加 A(x)=5*x4-3*x3+3*x2+1*x1; B(x)=6*x5+4*x3-3*x2+1*x1; 相加后的一元多项式为:C(x)= 6*x5+5*x4+1*x3+2*x1; 4、 主程序的流程 (a)请输入第一个多项式各项系数和指数; (b)排序化简后的第一个多项式; (c)请输入第二个多项式各项系数和指数; (d)排序化简后的第二个多项式; (e)两个一元多项式相加的结果。 3 3详细设计详细设计 1、根据一元多项式相加法则,对于任意两个多项式所有指数相同的,对应 系数相加,若系数相加后不为 0,则构成一元多项式其中一项。对于指数不同的, 则分别复制到单链表中。 2、系统流程图 系数 cff 指数 exp 下一个结点指针 next 主函数 4 4调试分析调试分析 (1)通过多次程序调试,我们很快的发