已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构课程设计题 目:一元多项式的代数运算学生姓名:学 号:专 业:计算机科学与技术班 级:计科-1班指导教师:2015年1月 6日内蒙古科技大学课程设计任务书课程名称数据结构课程设计设计题目一元多项式的代数运算指导教师时间2009.6.152008.6.26一、教学要求1. 掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力2. 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能3. 提高综合运用所学的理论知识和方法独立分析和解决问题的能力4. 训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风二、设计资料及参数每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。一元多项式的代数运算以链表存储一元多项式,在此基础上完成对多项式的操作。要求设计类(或类模板)来描述一元多项式,包含必要的构造函数和析构函数,以及其他能够完成如下功能的成员函数:v 输入多项式v 输出多项式v 多项式加法(重载运算符“+”)v 多项式乘法(重载运算符“*”) 并设计主函数测试该类。三、设计要求及成果1. 分析课程设计题目的要求2. 写出详细设计说明3. 编写程序代码,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告四、进度安排资料查阅与讨论(1天)系统分析(2天)系统的开发与测试(5天)编写课程设计说明书和验收(2天)五、评分标准1. 根据平时上机考勤、表现和进度,教师将每天点名和检查2. 根据课程设计完成情况,必须有可运行的软件。3. 根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。4. 根据答辩的情况,应能够以清晰的思路和准确、简练的语言叙述自己的设计和回答教师的提问六、建议参考资料1数据结构 (C语言版)严蔚敏、吴伟民 主编 清华大学出版社 2004.112数据结构课程设计案例精编(用C/C+描述),李建学 等 编著,清华大学出版社 2007.23.数据结构:用面向对象方法与C+语言描述,殷人昆 主编,清华大学出版社 2007目 录第 1 章 需求分析5第 2 章 总体设计52.1用结构框图来表示各功能关系5第 3 章 类的设计63.1类的示意图63.2类的函数成员的说明6第 4 章 详细设计64.1工程视图64.2类图视图7第 5 章 测试7第 6 章 总结9附录:程序代码10第 1 章 需求分析 以链表存储一元多项式,在此基础上完成对多项式的操作。要求设计类(或类模板)来描述一元多项式,包含必要的构造函数和析构函数, 以及其他能够完成如下功能的成员函数: 输入多项式 输出多项式 多项式加法 多项式乘法 并设计主函数测试该类。第 2 章 总体设计开始2.1用结构框图来表示各功能关系主函数输出两个多项式计算两个相减计算两个相加输入两个多项式第 3 章 类的设计3.1类的示意图class Polynomialclass Nodeclass Listint& GetIndexvoid SetNxetvoid Insertint& GetCoefvoid Showvoid SetCoefvoid operator+void SetIndexvoid operator*void Printvoid SetHead3.2类的函数成员的说明 Void SetCoef:多项式系数 Void SetIndex:指数 Void Show:显示 Void operator+:计算两个多项式的加法Void operator*:计算两个多项式的乘法第 4 章 详细设计4.1工程视图4.2类图视图第 5 章 测试5.1进入界面 5.2创建一元多项式5.3相加5.4相乘5.5输出两个多项式第 6 章 总结 一元多项式的代数计算主要运用链表的操作和排序的方法操作,让我对数据结构有了更深的了解。附录:程序代码#include#include#include / 为了使用numeric_limitsusing namespace std;class Polynomial/多项式public:Polynomial()Polynomial(int Coef,int Index):coef(Coef),index(Index)int& GetIndex()return index;int& GetCoef()return coef;void SetCoef(int t)coef=t;void SetIndex(int t)index=t;void Print()if (coef=1)coutXindex;elsecoutcoefXhead)List(List&a);List()Node* l=head;Node* m=0;while(l)m=l;l=l-GetNext();delete m;void Insert(Polynomial*);/插入void Show()/输出if (!head)return;Node* pn=head;dopn-GetPolynomial()-Print();if(pn-GetNext()/控制最后不输出加号coutGetNext();coutGetPolynomial()-GetCoef(),a1.head-GetPolynomial()-GetIndex();pn=new Node(temp);a1.head=a1.head-GetNext();if (!head)head=pn;pNow=head;continue;pNow-SetNxet(pn);pNow=pNow-GetNext();void List:operator*(List r)List p,p1,p2,r1;int a,a1,a2,b,b1,b2;Polynomial* temp;Node* head1;head1=head;while (head)while (head)a1=head-GetPolynomial()-GetCoef();b1=head-GetPolynomial()-GetIndex();r1=r;while (r1.head)a2=r1.head-GetPolynomial()-GetCoef();b2=r1.head-GetPolynomial()-GetIndex();a=a1*a2;b=b1+b2;temp=new Polynomial(a,b);p.Insert(temp);r1.head=r1.head-GetNext();if (head)head=head-GetNext();head=head1;p.Show();return ;void List:operator+(List r)List p;Polynomial* temp;Node* head1;head1=head;while(head | r.head)if (r.head)temp=new Polynomial(r.head-GetPolynomial()-GetCoef(),r.head-GetPolynomial()-GetIndex();p.Insert(temp);r.head=r.head-GetNext();if (head)temp=new Polynomial(head-GetPolynomial()-GetCoef(),head-GetPolynomial()-GetIndex();p.Insert(temp);head=head-GetNext();head=head1;p.Show();return ;void List:Insert(Polynomial* Poly)Node* pn=new Node(Poly);/pn新节点。将要插入的节点Polynomial* temp;Node* pNow=head;Node* pNext=0;int New=Poly-GetIndex();int next;if (!head)head=pn;return;if (head-GetPolynomial()-GetIndex()New)pn-SetNxet(head);head=pn;return;if (head-GetPolynomial()-GetIndex()=New)temp=new Polynomial(head-GetPolynomial()-GetCoef()+pn-GetPolynomial()-GetCoef(),New);pn=new Node(temp);if (head-GetNext()pn-SetNxet(head-GetNext();head=pn;return;while(1)if (!pNow-GetNext()pNow-SetNxet(pn);return;pNext=pNow-GetNext();next=pNext-GetPolynomial()-GetIndex();if (next=New)if (pNext-GetPolynomial()-GetCoef()+pn-GetPolynomial()-GetCoef()=0)pNow-SetNxet(pNext-GetNext();return;temp=new Polynomial(pNext-GetPolynomial()-GetCoef()+pn-GetPolynomial()-GetCoef(),New);pn=new Node(temp);pNow-SetNxet(pn);pn-SetNxet(pNext-GetNext();return;if (nextNew)pNow-SetNxet(pn);pn-SetNxet(pNext); return;pNow=pNext;int main()int choice,i;int coef; /系数int index;/指数bool quit=false;Polynomial* poly;List pa,pb;/*poly=new Polynomial(-2,2);pa.Insert(poly);poly=new Polynomial(2,3);pa.Insert(poly);/poly=new Polynomial(2,2);/pa.Insert(poly);poly=new Polynomial(4,1);pb.Insert(poly);poly=new Polynomial(3,2);pb.Insert(poly);*/while (1)system(cls);cout 一元多项式的代数运算 endl;cout 1.创建两个一元多项式 endl;cout 2.两个一元多项式相加 endl;cout 3.两个一元多项式相乘 endl;cout 4.输出两个一元多项式 endl;cout 0.退出程序 endl;coutchoice;switch (choice) case 1:system(cls);i=1;cout请输入第一个多项式的项数:choice;while(choice-)cout请输入第i+项的系数和指数endl;coutcoef;coutindex;poly=new Polynomial(coef,index);pa.Insert(poly);cout请输入第二个多项式的项数:choice;i=1;while(choice-)cout请输入第i+项的系数和指数endl;coutcoef;coutindex;poly=new Polynomial(coef,index);pb.Insert(poly);system(pause);break;case 2:system(cls);cout两个一元多项式为:endl;pa.Show();pb.Show();cout两个一元多项式相加为:endl;pa+pb;system(pause);break;case 3:system(cls);cout两个一元多项式为:endl;pa.Show();pb.Show();cout两个一元多项式相乘为:endl;pa*pb;system(pause);break;case 4:system(cls);cout两个一元
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 蔬菜委托加工协议书模板
- 补偿协议书存在遗漏
- 2025年RCEP项下陶瓷制品原产地规则应用考核试卷
- 碧昂丝婚前财产协议书
- 棚改交付协议书
- 审查联合投资协议书
- 保罗福斯特健康协议书
- 2025年工业互联网行业产业链布局与技术创新研究报告及未来发展趋势预测
- 保障性住房建设工程噪声控制管理考核试卷
- 2025年互联网行业云计算技术应用案例研究报告及未来发展趋势预测
- 医用防护口罩产品风险管理报告
- 助播劳务合同协议书
- 软件工程期末复习题(含答案)
- n1护士考试试题及答案2025
- 青海城市介绍旅游宣传
- 语文单招讲解课件
- 青青河畔草-古诗十九首其二-赏析-汉
- 二零二五年度无人机驾驶培训教练员劳动合同范本2篇
- 周一清晨的领导课(原版)
- 民法典婚姻家庭编课件完整版
- 电子信息工程专业职业生涯规划
评论
0/150
提交评论