C语言课程设计任务书

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

信息科学与工程学院综合设计报告书

课程名称:C语言课程设计

班级:

学号:

姓名:

指导教师:

目录

(一) 需求分析......................................2-3

1.设计题目;

2.用户操作流程;

3.数据处理流程;

(二)概要设计......................................4-5 1.系统总体设计框架;

2.系统功能模块图;

(三)详细设计.....................................5-11 1.主要功能模块的算法设计思路;

2.工作流程图;

(四)主要源程序代码...............................12-21 1.完整源程序清单及关键注释;

(五)调试分析过程描述.............................21-24 1.测试数据、测试输出结果;

2.对程序调试过程中存在问题的思考;

(六)课程设计小结.................................24-25 1.包括课程设计过程中的学习体会与收获;

2.对C语言和本课程设计的认识以及自己的建议等内容。

一、需求分析

1、设计题目:

编程实现以下功能:

(1)分别输入一元多项式pn (x)和Q n (x)。

从键盘输入一元多项式中各项的系数和指数,并用单链表加以表示。

(2)分别对一元多项式pn (x)和Q n (x)进行升幂排序。

将一元多项式中各子项按照指数从小到大的顺序排序。(3)分别输出一元多项式pn (x)和Q n (x)。

将用单链表表示的一元多项式输出,即打印多项式的系数

和指数。

(4)任意输入一个实数x0,分别求出一元多项式pn (x0)和Q n (x0)的值。

(5)已知有两个一元多项式分别为Pn (x)和Qn (x),求出两个多项式的和

R n (x)和差T n (x),分别用单链表表示R n (x)和T n (x),

并将二者输出,

(R n (x)=P n (x)+Q n (x),T n (x)=P n (x)-Q n (x))

2、用户操作流程:

(1)进入欢迎及界面。

(2)根据提示选择需要的功能。

(3)根据提示输入数据.

(4)选择函数输出运行结果。

(5)退出本系统。

3、数据处理流程

(1)输入数据,通过链表存储P(x)和Q(x)的指数和系数。

(2)通过冒泡排序法对P(x)和Q(x)进行升幂排序。

(3)输入x0,通过指针将其带入P(x)和Q(x)的表达式求出具体的数值。

(4)通过链表对两个多项式求和求差。

(5)通过链表输出运行结果。

;

二、概要设计

1、系统总体设计框架:

2、 系统功能模块

(1) 功能选择函数:通过输入对应功能的数字,进行多项

式的运算。该函数在主函数中调用。

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

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

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

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

三、详细设计

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

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

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

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

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

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

设计思路:

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

(1)定义结构体struct

结构体为表示一个对象的不同属性提供了连贯一致的方法,结构体类型的说明从关键词struct开始,成员可以由各种数据类型混合构成,成员甚至还可以是数组或者其他类型的结构,但是,结构体中不能包含自身定义类型的成员。使用typedef和struct定义的新类型名称,其用途与内建类型的名称相同,可以用来:声明和初始化结构体变量;创建并根据自己的意愿初始化结构数组;

(2) 单链表的建立

相关文档
最新文档