版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录一、课程题目3二、设计目的3三、需求分析3四、总体设计3五、详细设计2六、实现部分3七、程序测试3八、设计总结12一、课程题目一元稀疏多项式计算器二、设计目的掌握稀疏矩阵的相关运算。掌握广义表的操作。三、需求分析一元稀疏多项式简单计算器的基本功能是:输入并建立多项式;输出多项式,输出形式为整数序列:n,cl,elc2,e2 cn,en,其中n 是多项式的项数,ci和ei分别是第i项的系数和指数,序列按指数降序 排列。多项式a和b相加,建立多项式a+b 多项式a和b相减,建立多项式a-b四、总体设计创建两个类,把一个作为另一个的友元类!两个类分别是listnode和polynomial!创建
2、 一个链表,包括指数,次数以及下一个结点信息,然后利用冒泡排序法进行排序,排完 之后输出多项式!最后一个环节就是进行多项式的最原始运算,即加减运算!其中运用 的内容包括链表知识,冒泡排序的知识!五、详细设计类 listnode 中包含 friend class polynomial、double coef> int exp> listnode *next! 类 polynomial 包含 poly(); void printpoly();void bubblesort();polynomial operator+(polynomial &pl); polynomial op
3、erator-(polynomial &pl);在这个程序设计中,为了实现多项式的运算必须首先创建两个多项式,存储多项式 的存储结构是链表,其结构如下:序数coef指数exp指针域next对输入的每个多项式进行指数由高到低的排序,核心代码为:else if(p->exp<q->exp)double m;int n;m=p->coef;p->coef=q->coef;q->coef=m;n=p->exp;p->exp=q->exp;q->exp=n;s=q;q=q->next;再就是实现多项式的加减法运算,在加减法运
4、算中为了实现处理,设p、q分别指向单链表的两个多项式,比较p、q结点的指数项,由此得到下列运算规则:令指针p后移。 若p->exp=q->exp,则将两个结点中的系数相加,当和不为0吋修改结 点p的系数。 若p->exp>q->exp,则结点q所指的结点应是“和多项式”中的一项, 将结点q插入在结点p之前,且令指针q在原来的链表上后移。六、实现部分# include<iostream.h># include<math.h>class polynomial;class listnodefriend class polynomial;priva
5、te:double coef;int exp;listnode *next;class polynomialprivate:listnode *s;int size;public:polynomial();void poly();void printpolyo;void bubblesort();polynomial operator+(polynomial &pl);polynomial operator-(polynomial &pl);polynomial: :polynomial()s=new listnode;s=null;size=0;void polynomial
6、:poly()cout«h输入的元素个数为:”; cin»size;double ncoef; int nexp;listnode *p,*q;p=new listnode;cout«n输入第1个数的系数:”;cin»ncoef;cout«u输入第1个数的指数:”;cin»nexp;p->coef=ncoef;p->exp=nexp;p->next=null;s=p;int k=size;for(int i=2;iv=size;i+)cout«h输入第“vvivv”个数的系数:“; cin»nco
7、ef;cout«n输入笫个数的指数:“; cin»nexp;q=new listnode;q->coef=ncoef;q->exp=nexp;q->next=null;p->next=q;p=q;1void polynomial:printpoly()listnode *p=s;while(p)if(p=s)if(p->coef!=0&&p->exp !=0) cout«p->coef«"xa"«p->exp;else if(p->coef! =0&
8、;&p->exp=0) cout«p->coef;elseif(p->coef> 0&&p->exp !=0)cout«,+',«p->coef«,xa"«p->exp;else if(p->coef<0&&p->exp!=o) cout«p->coef«hxan«p->exp;else if(p->coef>0&&p->exp=o) cout«
9、;"+"«p->coef;else if(p->coef<0&&p->exp=o) cout«p->coef;p=p->next;cout«endl;void polynomial:bubblesorl()listnode *p=s;listnode *q;while(p!=null)q=p->next;listnode *s=p;while(q)if(p > exp=二q >exp)p->coef+=q->coef; s->next=q->next;
10、 delete q;q=s->next; size;else if(p->exp<q->exp)double m;int n;m=p->coef; p->coef=q->coef;q->coef=m;n=p->exp;p> exp=q> exp;q->exp=n;s=q;q 二q> next;elseq=q->next;p=p-> next;polynomial polynomial:operator+(polynomial &pl) bubblesort();pl.bubblesort();li
11、stnode *p=s;listnode *s=p;listnode *q=pl.s;listnode *t=q;while(p)while(q)if(q->exp>p->exp)listnode *m=new listnode; m->coef=q->coef;m->exp=q->exp;if(p=s)m->next=p;s=m;elsem->next=p;s->next=m;s=s->next;t=q;q=q->next;else if(q->exp=p->exp)p->coef=p->coef
12、+q->coef; t=q;q=q->next;break;else break;s=p;p=p->next;if(q)t->next=null;s->next=q;1return *this;polynomial polynomial:operator-(polynomial &pl) bubblesort();plbubblesort();listnode *p=s;listnode *s=p;listnode *q=pl.s;listnode *t=q;while(p)while(q)if(q->exp>p->exp)listnod
13、e *m=new listnode;m->coef=-(q->coef); m->exp=q->exp;if(p=s)ext=p;s=m;elsem->next=p;s->next=m; s=s->next;t=q;q 二 q->n ext;else if(q->exp=p>exp)p->coef=p->coef-q->coef; t=q;q=q->next;break;elsebreak;s=p; p=p->next;if(q)t->next=null;s->next=q;while(q)q
14、->coef=-(q->coef); q 二 q->n ext;return 水this;void main()coutvv"欢迎使用多项式计算器h«endl;cout«endl;cout«h班级:10211113姓名:李金龙h«endl;* * * * * * * *«e ndl;cout«endl; cout«ni irj卜卜卜卜 rj 卜 rj 卜 rj 卜 rjry*ry* ry*ry* 卜 ry* rj 卜 rj 卜 rj 卜i 功能菜单*cout«h*n«endl;
15、cout«n*"«endl;cout«h*0、帮助*"«endl;*m«endl;cout«h*"«endl;cout«n*m«endl;cout«n*"«endl;cout«h*"«endl;cout«n* 2、多项式加法运算* 3、多项式减法运算*4、退出程序f f . .1 1<jw rtw etw rtw etw rtw etw rtw <tw rtw etw ryw etw ryw e
16、jw ryw etw ryw <tw ryw etw rtw rtw rtw rtw rtw rtw rtw rt* rtw rtw rtw rt« rtw etw ry> <7* ryw <t« rtw rtwi polynomial pl,p2,p3,p4;int choice;cout«u请输入功能菜单选项(请输入数字0-4): "«endl;cin»choice;if(choice=0)cout«h帮助文档 m«endl;cout«“l、此程序为一个简单的多项式计算器n
17、171;endl;couw2、此程序能够实现两个多项式最原始的计算,即加减运算“vvendl;cout«"3.使用的时候必须先输入两个多项式n«endl;cout«"4>操作请按提示进行"«endl;cout«°请输入功能菜单选项(请输入数字0-4): n«endl; cin> >choice;if(choice=l)cout«"输入多项式1 "«endl;plpolyo;pl.bubblesort();pl.printpolyo;cou
18、t«h输入多项式2n«endl;p2.poly();p2.bubblesort();p2.printpoly();cout«h请输入功能菜单选项(请输入数字0-4): "«endl; cin»choice;if(choice=2)p3=pl+p2;coutvv”多项式加法运算为:“;p3.printpoly();cout«h请输入功能菜单选项(请输入数字0-4): h«endl;cin»choice;if(choice=3)p4=p2-pl;cout«h多项式减法运算为:”;p4.printpo
19、ly();cout«h请输入功能菜单选项(请输入数字0-4): m«endl; cin»choice;iif(choice=4)retum ;elsecout«u输入错误!请重新输入!m«endl;cout«n请输入功能菜单选项(请输入数字0-4): “vvcndl; cin»choice;七、程序测试测试数据为:多项式 1: 7x 3+5x 2+2x多项式 2: 6x"4+3x'3+5x 2+2x运行结果为(图片):寸花®项式计算k'debugg项式exe欢迎使用多项式计算器班级* 10
20、211113 姓名,李金龙df:冬项式计期kdebug冬项式exe"w亘叵|亘|迎使用多项式计算器a班级 8 10211113姓名:李金龙3功能菜单:11s世莪题曲和2法运恤输入功能菜单选项(请输入数字44:p帮助文档个多顶式的计算即服运算、此程压尢一仝碱单的多项式计算祥 談翦齡康亦请输入数字0-4:睛输入功能菜单选项请输入数字-4:功能菜单_s4£>x厶良2 15 2 7 332 和 翌运 多法法 £f 篁式程 帮聾多退 0 12 3 4a):数数数数数数1 胡的的的的的" 心覩数数数数数吃 项兀":ttnxa项元 备第第第第第第巧富 入入入入入入入入“入入3f:多项艺计算器debug务项式exe功能菜单2和项运运 多法法 岀加垮 篁式程0.1.2、3、2 15 2 7 33切蠶蠶歡 $s 1 層的的的的的xai1 z2 2v jxlrxklcr 2 h 孝 氐兀广页元 57112233x57 备第第第第第第5番 入入入入入入入入a3入入 4£4£4akk<s?x覧m33f:多矩计耳器debugg项式exe杯输入功能菜单选项请输入数字-4:0数入输4.m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度租赁房屋租赁解除合同2篇
- 2025年消防器材销售与消防系统升级及维护合同3篇
- 二零二五年度国际时装周模特签约合同4篇
- 消费金融行业2024年信用回顾与2025年展望 -新世纪
- 二零二五版模具行业市场调研合同4篇
- 二零二五版电子设备模具采购合作协议4篇
- 2025年金融机构外汇借款合同范本及信用评估体系3篇
- 贫困助学金感谢信500字(合集3篇)
- 练习版2025年度影视制作与发行合同2篇
- pe波纹管 施工方案
- 大学生国家安全教育意义
- 2024年保育员(初级)培训计划和教学大纲-(目录版)
- 河北省石家庄市2023-2024学年高二上学期期末考试 语文 Word版含答案
- 企业正确认识和运用矩阵式管理
- 分布式光伏高处作业专项施工方案
- 陈阅增普通生物学全部课件
- 检验科主任就职演讲稿范文
- 人防工程主体监理质量评估报告
- 20225GRedCap通信技术白皮书
- 燃气有限公司客户服务规范制度
- 延迟交稿申请英文
评论
0/150
提交评论