- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课程设计(一元稀疏多项式计算器).doc
实习报告:1.5题 一元稀疏多项式计算器
题目:设计一个一元稀疏多项式简单计算器
班级:计科一班 姓名:康宇 学号 完成日期:2013.4.15
一、需求分析
1、一元稀疏多项式简单计算器的功能是:
1) 输入并建立多项式;
2) 输出多项式,输出形式为整数序列:n,c1,e1,c2,e2,………cn,en,其中n是多项式的项数,ci和ei分别是第i项的系数和指数,序列按指数降序排列;
3) 多项式a和b相加,建立多项式a+b;
4) 多项式a和b相减,建立多项式a-b。
5) 计算多项式在x处的值;
6) 求多项式a、b的导函数;
2、测试数据:
1、(2x+5x^8-3.1x^11)+(7-5x^8+11x^9)=(-3.1x^11+11x^9+2x+7);
2、(6x^-3-x+4.4x^2-1.2x^9+1.2x^9)-(-6x^-3+5.4x^2-x^2+7.8x^15)
=(-7.8x^15-1.2x^9+12x^-3-x);
3、(1+x+x^2+x^3+x^4+x^5)+(-x^3-x^4)=(1+x+x^2+x^5);
4、(x+x^3)+(-x-x^3)=0;
5、(x+x^100)+(x^100+x^200)=(x+2x^100+x^200);
6、(x+x^2+x^3)+0=x+x^2+x^3.
二、概要设计
为实现上述程序功能,应以有序链表来表示多项式的系数和指数。定义线性表的动态分配顺序存储结构;建立多项式存储结构,定义指针*next利用链表实现队列的构造。每次输入一项的系数和指数,可以输出构造的一元多项式
演示程序以用户和计算机的对话方式执行,即在计算机终站上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运行命令;最后根据相应的输入数据(滤去输入中的非法字符)建立的多项式以及多项式相加的运行结果在屏幕上显示。
1、元素类型、结点类型和指针类型:
typedef struct LNode
{
float xishu; //系数
int zhishu; //指数
struct LNode *next;
} LNode,*Linklist;
2、建立两个全局链表指针,
Linklist List1=NULL;
Linklist List2=NULL;
用来存放两个多项式,然后在main()函数里调用输入函数。
3、本程序包括7个模块
1)主程序:
Void main()
{
While(1)
{
输出菜单;
接受命令;
处理命令;
If(命令==退出)
则程序退出;
}
释放链表;}
2)输入函数:
Void Input()
{
调用插值函数In(List1)处理链表一;
调用插值函数In(List2)处理链表二;
}
3)输出函数:
Void Output()
{
调用输值函数Out(List1)处理链表一;
调用输值函数Out(List2)处理链表一;}
4)相加函数:
Void Add()
{
if(List1节点指数 List2节点指数)
输出List1节点;
指针后移;
else if(List1节点指数 List2节点指数)
输出List2节点;
指针后移;
else
输出两节点相加后的值;
两链表指针都后移;
if(链表1到头)
输出链表2剩余的节点;
else(即链表二到头)
输出链表1剩余的节点;}
5)相减函数:
Void Sub()
{
if(List1节点指数 List2节点指数)
输出List1节点;
指针后移;
else if(List1节点指数 List2节点指数)
输出List2节点;(系数要取负再输出)
指针后移;
Else
两链表指针都后移;
if(链表1到头)
输出链表2剩余的节点;
else(即链表二到头)
输出链表1剩余的节点;}
6)求值函数:
void Calc() {
输入x的值;
依次调用链表一的节点,求出单项式的值相加后输出;
}
7)求导函数:
void Daohansh
您可能关注的文档
最近下载
- 2024年全国初中生数学素养与创新能力竞赛(初一组)决赛试题-A4.docx VIP
- 初中英语国际音标教学课件(共115张课件).ppt VIP
- 名侦探柯南_原创精品文档.pdf VIP
- 2024届北京市西城区高三下学期高考英语模拟试题(二模)含答案.pdf VIP
- 数列的概念及基本性质.docx VIP
- 《晋江灯谜简明教程》.docx VIP
- 国家开放大学试卷号22412基础写作202501.docx VIP
- 古代小说戏曲专题资料电大考试资料国家开放大学.pdf VIP
- ASME中国制造-BS EN 10228-2-2016-锻件的无损检测 第2部分渗透检测-中文版.pdf VIP
- 2025年日语N2水平测试模拟试卷:日语N2考试历年真题解析与模拟题库.docx VIP
文档评论(0)