版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
用C语言实现一元多项式的加减法计算课程设计武汉理工大学华夏学院课程设计报告书课程名称:数据结构与算法分析题目:用C语言实现一元多项式的加减法计算系名:信息工程系专业班级:姓名:学号:指导教师:7>2014年1月3日武汉理工大学华夏学院信息工程系课程设计任务书课程名称:数据结构与算法分析指导教师班级名称:开课系、教研室:一、课程设计目的与任务《数据结构》课程设计是为训练学生的数据组织能力和提高程序设计能力而设置的增强实践能力的课程。目的:学习数据结构课程,旨在使学生学会分析研究数据对象的特性,学会数据的组织方法,以便选择合适的数据的逻辑结构和存储结构以及相应操作,把现实世界中的问题转换为计算机内部的表示和处理,这就是一个良好的程序设计技能训练的过程。提高学生的程序设计能力、掌握基本知识、基本技能,提高算法设计质量与程序设计素质的培养就是本门课程的课程设计的目的。任务:根据题目要求,完成算法设计与程序实现,并按规定写出课程设计报告。二、课程设计的内容与基本要求设计题目:用C语言实现一元多项式的加减法计算〔问题描述〕输入并建立两个多项式并输出多项式设计一个程序:对两个多项式进行加、减法运算,建立一个新多项式并输出。〔实现提示〕:选择单链表存储多项式具体要完成的任务是:A.编制完成上述问题的C语言程序、进行程序调试并能得出正确的运行结果。B.写出规范的课程设计报告书;三、课程设计步骤及时间进度和场地安排时间:本课程设计安排在第18周地点:现代教育中心具体时间安排如下:第一天:布置题目,确定任务、查找相关资料第二天~第四天:功能分析,编写程序,调试程序、运行系统;第五天上午:撰写设计报告;第五天下午:程序验收、答辩。四、课程设计考核及评分标准课程设计考核将综合考虑学生的系统设计方案、运行结果、课程设计报告书的质量、态度、考勤、答辩情况等各因素。具体评分标准如下:(1)设计方案正确,具有可行性、创新性;30分(2)系统开发效果较好;20分(3)设计报告规范、课程设计报告质量高;20分(4)课程设计答辩时,问题回答正确;20分(5)态度认真、刻苦钻研、遵守纪律;10分按上述五项分别记分后求和,总分按五级制记载最后成绩。优秀(100~90分),良好(80~89分),中等(70~79分),及格(60~69分),不及格(0~59分)设计题目用C语言实现一元多项式的加减法计算〔问题描述〕输入并建立两个多项式并输出多项式开发环境、采用的语言开发环境:vc6.0/windowsxp采用的语言:C语言设计思想我的设计思想是输入按幂项从大到小输入一元多项,并将一元多项式相等幂项进行加减运算,在加法运算中将无相等幂项直接输入到结果单链表中,在减法运算中将被减的一元多项式的无相等幂项直接输入到结果单链表中,将减项的一元多项式的无相等幂项变号后输出到结果单链表中,输入2个方程式之后可以得出2式相加、相减的全部结果,也是简化了算法运行时间难度。虽然浪费了一些计算能力,但是简化了代码复杂度。程序总的流程图图一:程序流程图数据结构说明及模块算法说明数据结构说明:使用单链表来表示一元多项式:typedefstructlinklistintmi;//mi是幂项intxishu;//xishu是系数structlinklist*next;//next*list;模块算法说明listcreatpolyvoid创建一个新的一元多项式,用do循环输入一元多项式,以“系数,幂项”的格式输入数据,当系数与幂项同时为零时停止输入。voidprintpolylisthead输出一个一元多项式,将多项式从头到尾输出,使用一个IF语句来区分第一项前是否有加号,使用一个whlie在当p-不为NULL时,进行循环输出+ax^b的形式,当a为零时输出空白,当b为零时输出+ax,当a0时输出-ax^b的形式,等等。以应对多项式中出现的各种情况。listaddpolylistpa,listpb 将两个多项式执行pa+pb的计算,从高幂次项向低幂次项,无等幂项直接将数值输出结果单链表,有等幂项两系数相加后输出到结果单链表中。listmisepolylistpa,listpb 将两个多项式执行pa-pb的计算,从高幂次项向低幂次项,无等幂项的pa式中直接将数值输出结果单链表、pb式中将系数变号后输出到结果单链表中,有等幂项两系数相减后输出到结果单链表中。intmainvoid 主函数,具有部分交互界面以及各个函数的调用过程。可以在主函数中选择是否不断的进行运算,用一个while来循环整个程序。程序运行说明及结果截图程序开始运行输入第一个一元多项式:图二:算法的开始输入第一个一元多项式之后输入第二个一元多项式:图三:第一个多项式输入结束程序运算后得到结果:图四:运算结束之后得到结果按下1后程序继续运行:图五:按下1后程序继续运行程序调试及测试过程记载本程序从源码开始经过多次调试,一开始创建一元多项式并没有遇到什么问题,但是在一元多项式的加法时遇到一些问题,在不从高到低的顺序输入时会导致计算混乱,多出很多项。后来将项从高到底顺序输入,并且没有重复幂项时,此问题解决。然后是减法运算,若第一个多项式中没有比如5次幂项,而第二个多项式中有5次幂项,1式减2式的结果却为正的五次幂项,经过修改后,无此问题。最后是输出时产生的问题,第一项的输出若为正的情况是没有符号的,若第一项系数为零时还会输出一个零的情况,还有加法运算或者减法运算后,其计算结果前面没有‘+’号的情况,最后将程序制作成可以自动识别正负项以及零项。总结及心得体会这次数据结构的课程设计让我加深了对数据结构的理解,同时也明白了更多知识。让我加深了对单链表的运用。在制作这个程序的同时,加深了我对C语言的运用以及理解,让我的编译水平的到了一定的提高。我觉得自己的能力提高了,也让我明白数据结构在生活中的运用。我明白了理论与实际应用相结合的重要性,并提高了自己组织数据及编写大型程序的能力。培养了基本的、良好的程序设计技能以及合作能力。这次课程设计同样提高了我的综合运用所学知识的能力。并对VC有了更深入的了解。《数据结构》是一门实践性很强的课程,上机实习是对学生全面综合素质进行训练的一种最基本的方法,是与课堂听讲、自学和练习相辅相成的、必不可少的一个教学环节。上机实习一方面能使书本上的知识变“活”,起到深化理解和灵活掌握教学内容的目的;另一方面,上机实习是对学生软件设计的综合能力的训练,包括问题分析,总体结构设计,程序设计基本技能和技巧的训练。附录:源代码#include#include#includetypedefstructlinklistintmi;intxishu;structlinklist*next;*list;listcreatpolyvoidinta,n;inti1;listhead,s,p;printf"输入一元多项式(以0,0标志结束):\n";printf"要求:按幂从大到小的次序输入各个结点\n";headlistmallocsizeofstructlinklist;head-nextNULL;phead;doprintf"第%d次-系数,幂:",i;i++;scanf_s"%d,%d",&a,&n;ifa!0||n!0slistmallocsizeofstructlinklist;s-xishua;s-min;s-nextNULL;p-nexts;ps;whilea!0||n!0;printf"\n";returnhead;voidprintpolylistheadlistp;intfirst1;phead-next;whilep!NULLiffirstifp-xishu1printf"x^%d",p-mi;elseifp-xishu0printf"";elseifp-mi0printf"%d",p-xishu;elseprintf"%dx^%d",p-xishu,p-mi;first0;elseifp-xishu0ifp-mi1printf"+%dx",p-xishu;elseifp-mi0printf"+%d",p-xishu;elseprintf"+%dx^%d",p-xishu,p-mi;elseifp-xishu0ifp-mi1printf"%dx",p-xishu;elseifp-mi0printf"%d",p-xishu;elseprintf"%dx^%d",p-xishu,p-mi;elseprintf"";pp-next;printf"\n";listaddpolylistpa,listpb/*两个多项式的加法运算*/intn;listpc,s,p;/*pc是新产生的链表头结点指针*/papa-next;pbpb-next;pclistmallocsizeofstructlinklist;/*产生附加的表头结点*/pc-nextNULL;ppc;/*P指向PC链表的最后结点*/whilepa!NULL&&pb!NULLifpa-mipb-mislistmallocsizeofstructlinklist;/*建新结点*/s-mipa-mi;s-xishupa-xishu;s-nextNULL;p-nexts;ps;papa-next;elseifpa-mipb-mislistmallocsizeofstructlinklist;s-mipb-mi;s-xishupb-xishu;s-nextNULL;p-nexts;ps;pbpb-next;else/*两项幂相等*/npa-xishu+pb-xishu;ifn!0slistmallocsizeofstructlinklist;s-xishun;s-mipa-mi;s-nextNULL;p-nexts;ps;papa-next;pbpb-next;whilepa!NULLslistmallocsizeofstructlinklist;s-mipa-mi;s-xishupa-xishu;s-nextNULL;p-nexts;ps;papa-next;whilepb!NULLslistmallocsizeofstructlinklist;s-mipb-mi;s-xishu-pb-xishu;s-nextNULL;p-nexts;ps;pbpb-next;returnpc;listmisepolylistpa,listpb/*两个多项式的减法运算*/intn;listpc,s,p;/*pc是新产生的链表头结点指针*/papa-next;pbpb-next;pclistmallocsizeofstructlinklist;/*产生附加的表头结点*/pc-nextNULL;ppc;/*P指向PC链表的最后结点*/whilepa!NULL&&pb!NULLifpa-mipb-mislistmallocsizeofstructlinklist;/*建新结点*/s-mipa-mi;s-xishupa-xishu;s-nextNULL;p-nexts;ps;papa-next;elseifpa-mipb-mislistmallocsizeofstructlinklist;s-mipb-mi;s-xishu-pb-xishu;s-nextNULL;p-nexts;ps;pbpb-next;else/*两项幂相等*/npa-xishu-pb-xishu;ifn!0slistmallocsizeofstructlinklist;s-xishun;s-mipa-mi;s-nextNULL;p-nexts;ps;papa-next;pbpb-next;whilepa!NULLslistmallocsizeofstructlinklist;s-mipa-mi;s-xishupa-xishu;s-nextNULL;p-nexts;ps;papa-next;whilepb!NULLslistmallocsizeofstructlinklist;s-mipb-mi;s-xishu-pb-xishu;s-nextNULL;p-nexts;ps;pbpb-next;returnpc;intmainvoidintchoose;dolistpoly1,poly2,poly3,poly4,poly5;printf"建立第1个一元多项式\n";poly1creatpoly;printf"建立第2个一元多项式\n";poly2creatpoly;poly3addpolypoly1,poly2;poly4misepolypoly1,poly2;poly5misepolypoly2,poly1;printf"第1个一元多项式为\n";printpolypoly1;printf"第2个一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度帮忙谈判拆迁补偿协议居间合同范本3篇
- 办公环境中的学校实验室设计与布局策略
- 2025年年健康服务项目立项申请报告模板
- 2024至2030年丙纤滤棒项目投资价值分析报告
- 二零二五年度城市供水水电工程合同
- 学生合作学习中的批判性思维培养
- 2024年高强绳项目可行性研究报告
- 2024年饵料项目可行性研究报告
- 2024年锦棉大斜纹面料项目可行性研究报告
- 2025年度机柜服务器安装与调试合同3篇
- 2023-2024学年福建省泉州市惠安县八年级(上)学期期末数学试题(含解析)
- 乔木移栽、栽植施工技术方案及方法
- 电性测试报告
- 债权债务清收工作方案
- 鼓胀教学查房
- 空调更换施工方案
- 普通高中思想政治课程标准
- 毛泽东诗词作品欣赏
- 消化内科交班本PDCA
- 《石墨类负极材料检测方法 第1部分:石墨化度的测定》
- 【语文】广东省深圳市罗湖区翠竹小学四年级上册期末复习试卷(含答案)
评论
0/150
提交评论