C语言课程设计任务书

发布时间 : 星期四 文章C语言课程设计任务书更新完毕开始阅读

功能选择函数

输入数据函数

升幂函数

主 程 序

赋值函数

求差求和函数

输出结果函数

2、 系统功能模块

(1)

功能选择函数:通过输入对应功能的数字,进行多项式的运算。该函数在主函数中调用。

- 4 -

(2) 输入数据函数:通过建立单链表,输入两个多项式的 各项指数和系数。

(3) 升幂函数: 通过冒泡排序法对两个多项式进行升幂排 序。

(4) 求和求差函数:定义空链用来存储结果,将两个多项 式相加减。

(5) 输出函数:输出上一步的运行结果。

三、 详细设计

一元多项式的表示在计算机内可以用链表来表示, 为了节省存储 空间,只存储多项式中系数非零的项。 链表中的每一个结点存放多项 式的一个系数非零项,它包含三个域,分别存放该项的系数、指数以 及指向下一个多项式项结点的指针。 创建一元多项式链表, 对一元多 项式的运算中会出现的各种可能情况进行分析, 实现一元多项式的相 加、相减操作。

多项式相加的运算规则是: 两个多项式中所有指数相同的项的对 应系数相加,若和部位零,则构成“和多项式”中的一项;所有指数 不相同的的项均 “复抄” 到“和多项式” 中。以单链表作为存储结构, 并且“和多项式”中的节点无需另外生成,则可看做是将多项式 加到多项式 P 中,由此得到下列运算规则:

若 p->expexp,则结点 p 所指的结点应是“和多项式”中的一 项,令指针 p 后移。

Q

- 5 -

若 p->expexp,则结点 q 所指的结点应是“和多项式”中的 一项,将结点 q 插入在结点 p 之前,且令指针 q 在原来的链表上后移。

若 p->exp=q->exp,则将两个结点的系数相加,当和不为零是修 改结点 p 的系数,释放 q 结点;若和为零,则“和多项式”中无 此项,从 P 中 p 结点,同时释放 p 和 q 结点。

多项式相减运算规则同加法。

o

设计思路:

实现的方法是先定义多项式结点的结构, 该多项式每个结点由三 个元素:输入的系数、 输入的指数、 以及指向下一个结点的指针构成。 该链表采用链式存储结构。 然后通过多次的输入, 依次得到两个一元 多项式的各个项的系数与指数。 该输入以零结尾。 然后通过对结点的 判断是否为零后,进行运算或者终止的操作。再初始化一个链表

LC,

将 LC的各项系数和指数的指针指向 LA+LB所得的结果的值,完成了 最后的输出。

(1)定义结构体 struct

结构体为表示一个对象的不同属性提供了连贯一致的方法,

结构

体类型的说明从关键词 struct 开始,成员可以由各种数据类型混合 构成,成员甚至还可以是数组或者其他类型的结构,但是,结构体中 不能包含自身定义类型的成员。使用 typedef 和 struct 定义的新类 型名称,其用途与内建类型的名称相同,可以用来:声明和初始化结 构体变量;创建并根据自己的意愿初始化结构数组; (2) 单链表的建立

- 6 -

单链表有两个域, data 域和 next 域,一个是存放数据,一个是存放 指针而且指向它的后继。并且还有个

head,称表结点,它一般不存

NULL,也就是最后的那个

放数据,只是做个特殊标记。表的结束是

链域 next 为空单链表的插入运算有两种,一种是头插法,另一种是 尾插法,这里运用的是尾插法 (3)一元多项式的建立

输入多项式采用插头的方式, 输入多项式中一个项的系数和指数, 就 产生一个新的节点,建立起它的右指针,并用头节点指向它;为了判 断一个多项式是否结束,定义一个结束标志,并输入非 当输入 0 时,就结束一个多项式的输入 (4)显示一元多项式

如果系数是大于 0 的话就输出 +系数 x 指数形式;如果系数小于 0 的 话输出系数 x 指数形式;如果指数为 0 的话,直接输出系数;如果系 数是的话就直接输出 +x;如果系数是 -1 的话直接输出 -x 输出多项式 (5)一元多项式的加法计算

它从两个多项式的头部开始, 两个多项式的某一项都不为空时, 如果 数相等的话,系数就应该相加;相加的和不为 0 的话,用头插法建立 一个新的节点。 p 的指数小于 q 的指数的话,就应该复制 q 节点到多 项式中。p 的指数大于 q 的指数的话, 就应该复制 p 节点到多形式中。 当第二个多项式为空时, 第一个多项式不为空时, 将第一个多项式用 心节点产生。当第一个多项式为空,第二个多项式不为空时,将第二 个多项式用新节点产生

0 时就继续,

- 7 -

联系合同范文客服:xxxxx#qq.com(#替换为@)