一元稀疏多项式计算器Word格式文档下载.docx
- 文档编号:13850736
- 上传时间:2022-10-14
- 格式:DOCX
- 页数:23
- 大小:114.23KB
一元稀疏多项式计算器Word格式文档下载.docx
《一元稀疏多项式计算器Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《一元稀疏多项式计算器Word格式文档下载.docx(23页珍藏版)》请在冰豆网上搜索。
评分项目
评分指标
分值
得分
实验构思(10%)
1.实验目的明确
5
2.实验内容理解透彻、对实验所涉及到的知识点分析到位
实验设计(15%)
1.有对基本数据结构的抽象数据类型定义
2.实验方案设计完整,数据结构、算法选择合理
3.算法结构和程序功能模块之间逻辑清晰、有相应的流程图
实验实现(25%)
1.代码编写规范、风格统一、注释清楚易读
2.程序运行正常,测试结果正确
15
3.界面友好、易于操作、有较强的容错性
实验报告撰写(10%)
1.内容详实无缺漏,文字流畅、图表清楚
2.实验结果分析客观、详细,实验体会真实可信,对原实验方案的改进和对实验内容的发散性思考
个人工作量(30%)
1.个人完成工作量
2.个人技术水平
10
3.团队合作精神
实验运作(10%)
1.有一定用户群
2.应用前景分析
综合得分:
(满分100分)
指导教师:
年月日
云南大学软件学院2010学年秋季学期
20111120姓名:
函数实现整体流程控制
(下面的内容由学生填写,格式统一为,字体:
楷体,行距:
固定行距18,字号:
小四,个人报告按下面每一项的百分比打分。
难度A满分70分,难度B满分90分)
一、【实验构思(Conceive)】
(10%)
多项式计算器的呈现方式是用控制台程序呈现,;
多项式的加减乘以及求导的函数中利用链表保存头结点以及循环结构保存和输出数据;
还有利用一个简单的降序排列的函数,在输出时更加明了。
二、【实验设计(Design)】
(20%)
在头文件中申明变量,源文件中创建指数和系数的指针的头结点,并为此申请空间。
首先考虑指数为0,1和系数为0,1时的特殊情况的表示;
然后利用SORT函数对输出时进行降序排列;
其次就是加减乘以及求导函数的实现;
最后是一个输出界面的设计。
三、【实现描述(Implement)】
(30%)
//--------函数原型说明--------
typedefstructNode
{
doublexishu;
intzhishu;
//数据域
//intdata;
structNode*pnext;
//指针域
}Node,*pNode;
pNodephead=(pNode)malloc(sizeof(Node));
//创建头节点
pNodecreat_list(void);
创建链表
voidtraverse_list(pNodephead);
//遍历链表
pNodesort(pNodephead);
//对链表进行降序排列
pNodeadd(pNodephead1,pNodephead2);
//两个多项式相加
pNodehebing(pNodephead)//合并同类项
pNodemulti(pNodephead1,pNodephead2);
//多项式相乘
pNodesub(pNodephead1,pNodephead2);
//多项式相减
//多项式求导没有声明和定义函数,而是直接卸载程序里了
//------关键操作的实现-------
1.对链表的声明和定义和对创建函数的定义。
#include"
stdafx.h"
#include"
cpxNum.h"
pNodecreat_list(void)
intlen;
inti;
//intval;
pNodephead=(pNode)malloc(sizeof(Node));
//分配了一个不存在有效数据的头结点
pNodeptail=phead;
ptail->
pnext=NULL;
if(phead==NULL)
{
cout<
<
"
分配失败<
endl;
exit(-1);
}
cout<
请输入想输入多项式的项数"
cin>
>
len;
for(i=0;
i<
i++)
请?
输º
?
入¨
第Ì
¨
²
i+1<
个?
项?
的Ì
系¦
Ì
数º
y的Ì
值¦
cin>
xishu;
指?
zhishu;
pNodepnew=(pNode)malloc(sizeof(Node));
if(pnew==NULL)
{
分¤
配?
失º
¡
ì
败ã
¹
}
pnew->
xishu=xishu;
zhishu=zhishu;
ptail->
pnext=pnew;
ptail=pnew;
phead->
zhishu=len;
returnphead;
2.对多项式遍历,排序,同类项合并的定义
1.多项式的遍历
//将多项式分为第一项和其余项两部分考虑,另外考虑指数=0,指数=1,系数=1,系数=0等情况。
voidtraverse_list(pNodephead)
pNodep=phead->
pnext;
if(p->
zhishu==0)
cout<
p->
else{
if(p->
zhishu==1)
cout<
("
xishu<
)"
x"
;
else{
xishu==1)
^"
else
{if(p->
xishu==0)
cout<
0"
else
}
}
p=p->
while(p)
{if(p->
+"
x+"
+0"
p=p->
return;
2.排序操作。
//通过冒泡排序对多项式进行降序排列。
pNodesort(pNodephead)
inti,j;
floatxishu;
pNodep,q,f;
f=phead;
intlen=phead->
for(i=0,p=phead->
len-1;
i++,p=p->
pnext)
for(j=i+1,q=p->
j<
j++,q=q->
zhishu<
q->
zhishu)
{
xishu=p->
zhishu=p->
zhishu;
p->
xishu=q->
zhishu=q->
q->
q->
returnf;
3.合并排序
//通过检查将同类型合并,在加法,减法和乘法函数中会用到
pNodehebing(pNodephead)
pNoder,q,p,Q;
for(q=phead->
q!
=NULL;
q=q->
pnext)//合?
并¡
é
同ª
类¤
¤
for(p=q->
pnext,r=q;
p!
)
if(q->
zhishu==p->
zhishu)//指?
y相¨
等Ì
系¦
加¨
®
{
q->
xishu+p->
r->
pnext=p->
Q=p;
p=p->
deleteQ;
//释º
ª
放¤
p
else
{
r=r->
p=p->
returnphead;
3.多项式的加,减,乘,求导,x代入值的实现
1.多项式的加法
//创建一个新链表存储新的多项式,开始对phead1和phead2进行扫描,指数相同就相加。
pNodeadd(pNodephead1,pNod
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一元 稀疏 多项式 计算器