1、课程设课程设计说明书计说明书 NO.1 沈 阳 大 学 一元多项式一元多项式计算计算 1.设计目的设计目的 (1)掌握数据结构的应用、算法的编写方法。 (2)掌握类C语言的算法转换成C程序并用VC+上机调试的基本方法。 (3)学会结构体的定义和调用。 (4)学会单链表的初始化和建立。 (5) 通过 C 语言使用链式存储结构实现一元多项式加法、减法和乘法的运算。按指数 降序排列。 (6)本课程设计是为了配合数据结构课程的开设,通过设计一完整的程序,使学 生掌握数据结构的应用、算法的编写、类 C 语言的算法转换成 C 程序并用 TC 上机调试 的基本方法。 2 .设计方案论证设计方案论证 2.1.
2、1 设计思路设计思路 实现的方法是先定义多项式结点的结构, 该多项式每个结点由三个元素: 输入的系数、 输入的指数、以及指向下一个结点的指针构成。该链表采用链式存储结构。然后通过多 次的输入,依次得到两个一元多项式的各个项的系数与指数。该输入以零结尾。然后通 过对结点的判断是否为零后,进行运算或者终止的操作。再初始化一个链表 LC,将 LC 的各项系数和指数的指针指向 LA+LB 所得的结果的值,完成了最后的输出。 (1)定义结构体-struct 结构体为表示一个对象的不同属性提供了连贯一致的方法,结构体类型的说明从关 键词 struct 开始,成员可以由各种数据类型混合构成,成员甚至还可以是
3、数组或者其他 类型的结构,但是,结构体中不能包含自身定义类型的成员。使用 typedef 和 struct 定义 的新类型名称,其用途与内建类型的名称相同,可以用来:声明和初始化结构体变量; 创建并根据自己的意愿初始化结构数组; (2) 单链表的建立 单链表有两个域,data 域和 next 域,一个是存放数据,一个是存放指针而且指向它的 后继。并且还有个 head,称表结点,它一般不存放数据,只是做个特殊标记。表的结束 是 NULL,也就是最后的那个链域 next 为空单链表的插入运算有两种,一种是头插法, 另一种是尾插法,这里运用的是尾插法 课程设课程设计说明书计说明书 NO.2 沈 阳
4、大 学 (3)一元多项式的建立 输入多项式采用插头的方式, 输入多项式中一个项的系数和指数, 就产生一个新的节点, 建立起它的右指针,并用头节点指向它;为了判断一个多项式是否结束,定义一个结束 标志,并输入非 0 时就继续,当输入 0 时,就结束一个多项式的输入 (4)显示一元多项式 如果系数是大于 0 的话就输出+系数 x 指数形式;如果系数小于 0 的话输出系数 x 指数 形式;如果指数为 0 的话,直接输出系数;如果系数是的话就直接输出+x;如果系数是 -1 的话直接输出-x 输出多项式 (5)一元多项式的加法计算 它从两个多项式的头部开始,两个多项式的某一项都不为空时,如果数相等的话,系数 就应该相加;相加的和不为 0 的话,用头插法建立一个新的节点。p 的指数小于 q 的指 数的话,就应该复制 q 节点到多项式中。p 的指数大于 q 的指数的话,就应该复制 p 节 点到多形式中。当第二个多项式为空时,第一个多项式不为空时,将第一个多项式用心 节点产生。当第一个多项式为空,第二个多项式不为空时,将第二个多项式用新节点产 生 (6)一元多项