欢迎来到天天文库
浏览记录
ID:58032300
大小:528.50 KB
页数:17页
时间:2020-04-08
《C语言课程设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、.二○一五~二○一六学年第二学期信息科学与工程学院软件综合设计报告书课程名称:C语言课程设计班级:学号:姓名:指导教师:二○一六年六月一、需求分析..用单链表实现任意两个一元多项式的加、减法运算任务:编程实现以下功能:①分别输入一元多项式pn(x)和Qn(x)。从键盘输入一元对项式中各项的系数和指数,并用单链表加以表示。②分别对一元多项式pn(x)和Qn(x)进行升幂排序。将一元多项式中各子项按照指数从小到大的顺序排序。③分别输出一元多项式pn(x)和Qn(x)。将用单链表表示的一元多项式输出,即打印多项式的系数和指数。④任意输入一个实数x0,
2、分别求出一元多项式pn(x0)和Qn(x0)的值。⑤已知有两个一元多项式分别为Pn(x)和Qn(x),求出两个多项式的和Rn(x)和差Tn(x),分别用单链表表示Rn(x)和Tn(x),并将二者输出,(Rn(x)=Pn(x)+Qn(x),Tn(x)=Pn(x)-Qn(x))⑥保存多项式,即分别将一元多项式pn(x)和Qn(x)各项的系数和指数保存到外部磁盘文件。⑦由程序从所存文件中读出多项式的系数和指数,重新构建一元多项式Pn(x)和Qn(x),并可对其再次进行运算操作。用户操作流程:(1)进入菜单界面;(2)根据提示输入对应功能数字,调用功能
3、;(3)根据提示输入参数;(4)选择功能输出结果;(5)退出。二、概要设计1、系统总体设计框架:..主程序功能选择函数输入数据函数升幂函数赋值函数求和求差函数输出结果函数2、系统功能模块(1)功能选择函数:通过输入对应功能的数字,调用对应的函数进行多项式的运算。(2)输入数据函数:采用尾插法建立单链表并输入保存两个多项式的各项指数和系数。(3)升幂函数:通过冒泡排序法对两个多项式进行升幂排序。(4)求和求差函数:定义空链用来存储结果,将两个多项式相加减分别得到Rn(x)和Tn(x)。(5)输出函数:输出当前保存的多项式。三、详细设计创建一元多项
4、式链表,链表中的每一个结点存放多项式的一个系数非零项,它包含三个域,分别存放该项的系数、指数以及指向下一个多项式项结点的指针。对每一项的系数和指数进行相应的操作完成计算1.定义结构体struct使用typedef和struct定义的新类型名称,声明和初始化结构体变量;创建并根据自己的意愿初始化结构数组。2.建立单链表并输入保存一元多项式各项的系数和指数。单链表有两个域,data域和next域,一个是存放数据,一个是存放指针而且指向它的后继。将表的最后一个结点的next置NULL,以示表的结束。由于Pn(x)和Qn(x)的输入方式一样,所以在这里
5、就只讨论Pn(x)的输入。在输入系数和指数的时候,在最后输入0以示输入结束。..开始一次输入Pn(x)各项的系数和指数将输入的数据作为多项式保存调用函数显示保存的一元多项式结束1.建立功能选择函数通过switch来判断外界输入的数字,调用对应的函数..开始输入要调用函数的数字判断输入的数字是否合法通过switch判断返回对应的功能函数调用该函数结束1.多项式相加减:多项式相加的运算规则是:两个多项式中所有指数相同的项的对应系数相加,若和不为零,则构成“和多项式”中的一项;所有指数不相同的的项均复抄到“和多项式”中。以单链表作为存储结构,并且“和
6、多项式”中的节点无需另外生成,则可看做是将多项式Q加到多项式P中,由此得到下列运算规则:(设p、q分别是多项式Pn(x)和Qn(x)的一项,比较结点的指数项);若p->expexp,则结点p所指的结点应是“和多项式”中的一项,令指针p后移。若p->exp>q->exp,则结点q所指的结点应是“和多项式”中的一项,将结点q插入在结点p之前,且令指针q在原来的链表上后移。若p->exp=q->exp,则将两个结点的系数相加,当和不为零是修改结点p的系数,释放q结点;若和为零,则“和多项式”中无此项,从P中p结点,同时释放p和q结点。多项式相
7、减运算规则同加法。..求和函数程序流程图:开始定义用来存储结果的空链R调用排序函数先对多项式进行升幂排序判断链表P是否为空?判断链表Q是否为空?将P、Q同指数项的系数相加然后赋给R直接将多项式P的各项系数指数赋给R直接将多项式Q的各项系数指数赋给R输出结果R结束是是否否..求差函数程序流程图:开始调用排序函数先对多项式进行升幂排序定义用来存储结果的空链T判断链表P是否为空?判断链表Q是否为空?将P、Q同指数项的系数相减然后赋给R输出结果T结束直接将多项式P的各项系数指数赋给T将多项式Q的系数变负后再赋给T是是否否四、主要源程序代码#includ
8、e#include#includetypedefstructPloynode{intcoef;
此文档下载收益归作者所有