信息与控制学院。
课程设计。课程设计题目: 一元高次多项式。
学生姓名赵雅萱。
学号: 20121325061
学院: 信息与控制学院。
专业: 信息工程(系统工程方向
指导教师陈金辉。
二零一三年 12月 17号。
目录。一、设计目的3
二、概要设计3
三、简单流程图3
四、详细设计4
五、调试与测试5
六、源程序7
一、设计目的。
建立两个一元多项式a和b,将一元多项式输入并存储在内存中,将两个多项式以加减法的形式进行合并同类项,并按照降幂形式输出合并结果。
二、概要设计。
存储结构:一元多项式的表示在计算机内可以用链表来表示,为了节省存储空间,只存储多项式中系数非零的项。链表中的每一个结点存放多项式的一个系数非零项,它包含三个域,分别存放该项的系数、指数以及指向下一个多项式项结点的指针。
创建一元多项式链表,对一元多项式的运算中会出现的各种可能情况进行分析,实现一元多项式的相加、相减操作。
基本算法:1、输入输出。
1)功能:将要进行运算的多项式输入输出。
2)数据输入:要输入的多项式的系数与指数,中间用空格隔开。
3)数据输出:以降幂形式输出合并同类项后的多项式。
4)输入提示:输入的多项式是否正确,若输入错误则提示重新输入。
2、多项式的加法。
1)功能:将两多项式中幂相同的项的系数相加,若有幂不同的项,则寻找合适的位置插入新的结点。
2)数据流入:输入函数。
3)数据流出:多项式相加后的结果。
3、多项式的减法。
1)功能:将两多项式中幂相同的项的系数相减,若有幂不同的项,则寻找合适的位置插入新的结点。
2)数据流入:输入函数。
3)数据流出:多项式相减后的结果。
三、简单流程图。
四、详细设计。
设计思路:1、 定义线性表的动态分配顺序结构。
2、 建立多项式存储结构,定义指针*next。
3、 利用链表实现队列的构造。每次输入一项的系数和指数。
设计思路分析:
要解决多项式相加,必须要有多项式,所以必须首先建立两个多项式,在这里采用链表的方式存储链表,所以将结点结构体定义为:
运用尾插法建立两条单链表,以单链表polyn p和polyn h分别表示两个一元多项式a和b,a+b的求和运算等同于单链表的插入问题(将单链表polyn p中的结点插入到单链表polyn h中),因此“和多项式”中的结点无须另生成。
为了实现处理,设p、q分别指向单链表polya和polyb的当前项,比较p、q结点的指数项,由此得到下列运算规则:
若p->expnexpn,则结点p所指的结点应是“和多项式”中的一项,令指针p后移。
若p->expn=q->expn,则将两个结点中的系数相加,当和不为0时修改结点p的系数。
若p->expn>q->expn,则结点q所指的结点应是“和多项式”中的一项,将结点q插入在结点p之前,且令指针q在原来的链表上后移。
五、调试与测试。
1、输入多项式。
2、选择界面。
3、加法。4、减法
六、源程序。
#include<>
#include<>定义多项式的项。
typedef struct polynomial
if(q2&& p->expn ==q2->expn)
将指数相同相合并。
q2->coef +=p->coef;
free(p);
if(!q2->coef)
系数为0的话释放结点。
q1->next=q2->next;
free(q2);
else指数为新时将结点插入。
p->next=q2;
q1->next=p;
polyn createpolyn(polyn head,int m)
return head;
void destroypolyn(polyn p)
void printpolyn(polyn p)
while(q)
elseq=q->next;
flag++;
printf("");
int compare(polyn a,polyn b)
else if(!a&&b) return -1a多项式已空,但b多项式非空。
else return 1b多项式已空,但a多项式非空。
polyn addpolyn(polyn pa,polyn pb求解并建立多项式a+b,返回其头指针。
polyn qa=pa->next;
polyn qb=pb->next;
polyn headc,hc,qc;
课程设计报告格式 课程设计
洛阳理工学院。课程设计说明书。课程名称。设计课题。专业。班级。学号。姓名。完成日期2014年12月26日。问题描述 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的内容要求。基本要求 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的基本要求。测试数据 小四宋体,行间距单倍行距,每...
课程设计总结,课程设计报告
课程设计总结,课程设计报告。3.尝试应用项目管理软件进行项目进程的规划管理 绘制甘特图,不作硬性要求 二 选题说明。人事管理是企业信息管理的重要部分,面对大量的人事工资信息,财务部门采用人力处理将浪费大量的时间 人力和物力,且数据的准确性低。因此,开发一个界面友好,易于操作的人事工资管理软件进行自动...
课程设计 课程设计报告格式
学校名。课程设计报告。课程名称 c语言程序设计 系别 专业班级 学号。姓名。课程题目 企业人事管理系统 完成日期 指导老师 年月日。附件。课程设计的内容。企业人事管理系统 本项目的目标是开发一个功能实用,操作简便,简单明了的人事管理系统。能够录入人事的基本资料,在操作上能够完成诸如添加 修改 删除 ...