数据结构课程设计(一元稀疏多项式计算器)文档格式.doc

上传人:wj 文档编号:7007817 上传时间:2023-05-07 格式:DOC 页数:11 大小:120KB
下载 相关 举报
数据结构课程设计(一元稀疏多项式计算器)文档格式.doc_第1页
第1页 / 共11页
数据结构课程设计(一元稀疏多项式计算器)文档格式.doc_第2页
第2页 / 共11页
数据结构课程设计(一元稀疏多项式计算器)文档格式.doc_第3页
第3页 / 共11页
数据结构课程设计(一元稀疏多项式计算器)文档格式.doc_第4页
第4页 / 共11页
数据结构课程设计(一元稀疏多项式计算器)文档格式.doc_第5页
第5页 / 共11页
数据结构课程设计(一元稀疏多项式计算器)文档格式.doc_第6页
第6页 / 共11页
数据结构课程设计(一元稀疏多项式计算器)文档格式.doc_第7页
第7页 / 共11页
数据结构课程设计(一元稀疏多项式计算器)文档格式.doc_第8页
第8页 / 共11页
数据结构课程设计(一元稀疏多项式计算器)文档格式.doc_第9页
第9页 / 共11页
数据结构课程设计(一元稀疏多项式计算器)文档格式.doc_第10页
第10页 / 共11页
数据结构课程设计(一元稀疏多项式计算器)文档格式.doc_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据结构课程设计(一元稀疏多项式计算器)文档格式.doc

《数据结构课程设计(一元稀疏多项式计算器)文档格式.doc》由会员分享,可在线阅读,更多相关《数据结构课程设计(一元稀疏多项式计算器)文档格式.doc(11页珍藏版)》请在冰点文库上搜索。

数据结构课程设计(一元稀疏多项式计算器)文档格式.doc

定义线性表的动态分配顺序存储结构;

建立多项式存储结构,定义指针*next利用链表实现队列的构造。

每次输入一项的系数和指数,可以输出构造的一元多项式

演示程序以用户和计算机的对话方式执行,即在计算机终站上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运行命令;

最后根据相应的输入数据(滤去输入中的非法字符)建立的多项式以及多项式相加的运行结果在屏幕上显示。

1、元素类型、结点类型和指针类型:

typedefstructLNode

{

floatxishu;

//系数

intzhishu;

//指数

structLNode*next;

}LNode,*Linklist;

2、建立两个全局链表指针,

LinklistList1=NULL;

LinklistList2=NULL;

用来存放两个多项式,然后在main()函数里调用输入函数。

3、本程序包括7个模块

1)主程序:

Voidmain()

While

(1)

输出菜单;

接受命令;

处理命令;

If(命令==退出)

则程序退出;

}

释放链表;

2)输入函数:

VoidInput()

调用插值函数In(List1)处理链表一;

调用插值函数In(List2)处理链表二;

3)输出函数:

VoidOutput()

调用输值函数Out(List1)处理链表一;

调用输值函数Out(List2)处理链表一;

4)相加函数:

VoidAdd()

if(List1节点指数>

List2节点指数)

输出List1节点;

指针后移;

elseif(List1节点指数<

输出List2节点;

else

输出两节点相加后的值;

两链表指针都后移;

if(链表1到头)

输出链表2剩余的节点;

else(即链表二到头)

输出链表1剩余的节点;

5)相减函数:

VoidSub()

(系数要取负再输出)

Else

6)求值函数:

voidCalc()

{

输入x的值;

依次调用链表一的节点,求出单项式的值相加后输出;

}

7)求导函数:

voidDaohanshu()

{

输出多项式一的导函数;

}

三、详细设计

#include<

stdio.h>

stdlib.h>

math.h>

typedefstructLNode//元素类型

floatxishu;

intzhishu;

structLNode*next;

}LNode,*Linklist;

LinklistIn(LinklistL)//依次往链尾插

Linklistp;

floata;

intb;

Linklisthead=(Linklist)malloc(sizeof(LNode));

L=head;

head->

zhishu=0;

//head->

zhishu头结点放的是多项式的项数

p=head;

p->

next=NULL;

printf("

请输入一个多项式:

\n"

);

while(scanf("

%f%d"

&

a,&

b)&

&

(a||b))//默认多项式是按指数由小到大输入

{

//printf("

%f%d\n"

a,b);

(head->

zhishu)++;

%3d\n"

L->

zhishu);

Linklistq=(Linklist)malloc(sizeof(LNode));

q->

xishu=a;

zhishu=b;

if(p->

next==NULL)

{

p->

next=q;

q->

p=head;

}

else

if(p->

next->

zhishu<

=q->

zhishu)

{

q->

next=p->

next;

p->

p=head;

}

else

p=p->

}

您已成功输入一个多项式!

returnL;

voidInput()

List1=In(List1);

List2=In(List2);

voidOut(LinklistL)

p=L->

此多项式有%3d项"

while(p!

=NULL)//按指数由大到小输出

printf("

%0.1f%3d"

p->

xishu,p->

p=p->

voidOutput()

第一个多项式为:

Out(List1);

第二个多项式为:

Out(List2);

voidAdd()

Linklistp1,p2;

p1=List1->

p2=List2->

相加后的多项式为:

while(p1&

p2)

if(p1->

zhishu>

p2->

printf("

p1->

xishu,p1->

p1=p1->

elseif(p1->

p2->

xishu,p2->

p2=p2->

xishu+p2->

if(p1==NULL)

while(p2)

else

while(p1)

voidSub()

相减后的多项式为:

-p2->

if(p1->

xishu-p2->

xishu!

=0)

printf("

voidCalc()

intx;

doublesum=0;

请输入x的值:

"

scanf("

%d"

x);

p=List1->

while(p)

sum+=p->

xishu*pow(x,p->

多项式1在x处的值为:

%0.1lf"

sum);

voidDaohanshu()

多项式1的导函数为:

xishu*p->

zhishu,p->

zhishu-1);

intmain()

intnum;

while

(1)

-----------------------------------------------\n"

1-------输入并建立多项式;

2-------输出其指系数排列;

3-------多项式相加;

4-------多项式相减;

5-------计算多项式在x处的值;

6-------求多项式a的导函数a'

;

0-------退出\n"

请输入您要选择的功能:

scanf("

num);

switch(num)

case1:

Input();

break;

//输入函数

case2:

Output();

//输出函数

case3:

Add();

//函数相加

case4:

Sub();

//函数相减

case5:

Calc();

//计算函数在x处的值

case6:

Daohanshu();

//求函数的导函数

case0:

exit

(1);

default:

printf("

输入错误,请重新输入!

free(List1);

free(List2);

return0;

四、调试分析

1.由于链表是设置成为全局变量,所以任意函数都可以修改它,存在一定风险性。

但这也为后来的函数方便了,所有的函数统一没有参数。

2.刚开始时曾忽略了一些变量的类型以及没有考虑到指针的返回问题,使调试程序浪费了一定的时间。

今后应重视确定参数的变量和赋值属性的区分和标识。

3.本程序模块简洁,在main()函数里得到充分体现;

4.链表默认用户输入是按指数从小到大的顺序输入的,而默认输出时按指数从大到小;

输入时,依次把节点插在链表的末端。

五、用户手册

1.本程序运行环境为Windows操作系统,执行文件为:

std.exe

2.进入演示程序后显示的界面:

六、测试结果

中南民族大学

数据结构课程设计报告

姓名:

康宇

年级:

2010

学号:

10061014

专业:

计算机科学与技术

指导老师:

宋中山

2013年4月15日

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 职业规划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2