没有合适的资源?快使用搜索试试~ 我知道了~
数据结构一元多项式计算,文档加上源码,可以直接运行
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 13 下载量 40 浏览量
2022-01-25
14:57:41
上传
评论 5
收藏 393KB DOC 举报
温馨提示
试读
22页
数据结构一元多项式计算,文档加上源码,可以直接运行
资源推荐
资源详情
资源评论
0
HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGY
数据结构
课程设计报告
课设题目: 一元多项式计算
专 业: 软件工程
班 级:
xxx
姓 名:
xxx
完成日期:
Xxx
指导教师:
Xxx
1
目录
一、题目的内容及要求--------------------------------------------2
二、需求分析-------------------------------------------------------2
三、概要设计-------------------------------------------------------2
1、存储结构-----------------------------------------------------------2
2、主程序结构图-----------------------------------------------------3
3、程序函数构成详细设计--------------------------------------4
1、读取-----------------------------------------------------------------4
2、排列-----------------------------------------------------------------5
3、输出-----------------------------------------------------------------6
4、加法-----------------------------------------------------------------6
5、减法------------------------------------------------------------------7
四、源代码-----------------------------------------------------------8
五、运行结果及分析-----------------------------------------------17
七、收获及体会,总结--------------------------------------------20
2
【问题描述】
1.能够按照指数降序排列建立并输出多项式;
2.能够完成两个多项式的相加、相减,并将结果输入;
【任务要求】
1.存储结构;
2.多项式相加的基本过程的算法(可以使用程序流程图)
3.可以提出算法的改进方法;
【测试数据】
自行设定,注意边界等特殊情况。
二、需求分析
而需要做的就是能够按照指数降序排列,建立并输出多项式;能够完成两个多项式的相
加、相减,并将结果输出
三、概要设计
1、存储结构
在数学上,一元多项式 P(x)的表示为:
P(x)=a0+a1x+a2x2+…+anxn
其中,n 为大于或等于 0 的整数,表示 x 的幂:a0,a1,…an 为系数,an≠0,a0,a1,…,an-1 可
以为 0,也可以不为 0 根据一元多项式相加的运算规则:
对于两个一元多项式中所有指数相同的项,对应指数相加(减),若其和(差)不为零,
则构成“和(差)多项式”中的一项对于两个一元多项式中所有指数不相同的项,则分别写到
“和(差)多项式”中去。此程序的数据结构是选择用不带头结点的单链表存储多项式。虽然
一元多项式可以采用顺序和链式两种存储结构,因为多项式指数最高项以及项数是不确定的,
使用顺序表就会浪费巨大的存储空间,因此采用线性链表的存储结构便于实现一元多项式的
运算。单链表的结构体可以用来存储多项式系数,指数和指向下一个节点的指针。
系数域 指数域 指针域
typedef struct pnode
{
float coef;
int exp;
struct pnode *next;
}pnode;
2、主程序功能结构图
coef exp next
3
菜单函数
调用新建函数从文件中读取
并建立第一个多项式 a
选择减法运算
选择加法运算
调用新建函数从文件中读
取并建立第二个多项式 b
输出 a,b,c
调用输出函数保存到文件中
调用减法函数
调用加法函数
调用排序函数
调用排序函数
输出 a,b,c
结束
4
3、程序函数构成
pnode *creat()读取并创建一个多项式链表
void sort(pnode *head)对多项式进行排列
pnode * add(pnode *heada,pnode *headb)多项式和的计算
pnode * sub(pnode *heada,pnode *headb)多项式差的计算
void outlink(pnode *head)存储一个多项式链表
void display(pnode *head)输出一个多项式链表
void add_main()加法函数
void sub_main()减法函数
void showmenu 菜单函数
void main 主函数主要负责输出界面的指引语句,并合理地调用各个函数,还要有适当的循
环操作以及停止循环的语句,以致可以方便地达到合并两个一元多项式的功能。
四、详细设计
1、读取:
从文件中读取多项式的系数与指数并存入链表。当创建多项式时,利用 for 循环从文件读出
数据后,插入尾部的方式将多项式的数据连接起来,直到遍历完所有数据时停止。
pnode *creat1()
{
FILE *fp;
int item,i;
char filename[20];
pnode *tail, *Temp;
tail=&head;
Temp=&head;
printf("请输入文件名");
gets(filename);
fp=fopen(filename,"r");
fscanf(fp,"%d",&item);
for(i=0;i<item;i++)
{
pnode *p=(pnode *)malloc(sizeof(pnode));
fscanf(fp,"%f%d",&(p->coef),&(p->exp));
tail->next=p;
p->next=NULL;
tail=p;
}
fclose(fp);
return Temp->next;
剩余21页未读,继续阅读
软件源码
- 粉丝: 744
- 资源: 105
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页