1、日 期 内 容 1.2-1.3 选取参考书,查阅有关文献资料,完成资料搜集和系统分析工作。1.41.5 创建相关数据结构,录入源程序。1.61.7 调试程序并记录调试中的问题,初步完成课程设计报告。1.9 上交课程设计报告打印版并进行课程设计答辩,要求每个同学针对自己的设计回答指导教师3-4个问题。考核结束后将课程设计报告和源程序的电子版交班长统一刻光盘上交。、主要参考文献及资料 1 严蔚敏 数据结构(C语言版)清华大学出版社 1999 2 严蔚敏 数据结构题集(C语言版)清华大学出版社 1999 3 谭浩强 C语言程序设计 清华大学出版社 4 与所用编程环境相配套的C语言或C+相关的资料 、
2、成绩评定:设计成绩: (教师填写) (签字) 指导老师: 日 十 月 一 年 二一二第一章 概述1 第二章 系统分析2 第三章 概要设计3 第四章 详细设计4 第五章 运行与测试17 第六章 总结与心得19 20 参考文献第一章 概述 课程设计是实践性教学中的一个重要环节,它以某一课程为基础,可以涉及和课程相关的各个方面,是一门独立于课程之外的特殊课程。课程设计是让同学们对所学的课程更全面的学习和应用,理解和掌握课程的相关知识。数据结构是一门重要的专业基础课,是计算机理论和应用的核心基础课程。数据结构课程设计,要求学生在数据结构的逻辑特性和物理表示、数据结构的选择和应用、算法的设计及其实现等方
3、面,加深对课程基本内容的理解。同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。在这次的课程设计中我选择的题目是顺序结构、动态链表结构下的一元多项式的加法、减法、乘法的实现。分别采用顺序结构和链式存储结构,利用多项得结果,最后得多项式中不含有重复阶项和零系数得项。除此之外,还得分为降幂和升幂两种排序方式。 1 第二章 系统分析 1 顺序结构、动态链表结构下的一元多项式的加法、减法、乘法的实现。可以分为几个模块:输入模块、输出模块(升幂降幂)、数据处理模块(多项式的加减乘)、主程序模块。2 在程序过程中加入汉字提示符,让使用者清楚明白的操作该程序。运行程序时看起来
4、简洁有序,操作简单明了。3 程序执行时的命令:选择创建两个一元多项式输入第一个一元多项式的项数依次输入一元多项式的系数和指数以相同方式输入第二个一元多项式选择操作方式选择降幂或升幂排序输出结果是否退出。4. 测试数据。输入的一元多项式系数指数分别为7 0,3 1,9 8,5 17和8 1,22 7,-9 8。加法结果为;升幂 降幂 减法结果为:升幂 降幂 乘法结果为: 2 第三章 概要设计 1、数据结构的设计 在该程序中分别分为顺序存储和链式存储结构。2、算法的设计 本程序主要分为四大模块 主程序模块 输入模块:通过main函数输入 输出模块(升幂降幂):PrintPolyn函数实现输出 数据
5、处理模块(多项式的加减乘):通过一元多项式的Polynomial基本操作实现 3、抽象数据类型的设计 一元多项式抽象数据类型的定义:抽象数据类型Polynomial的定义: 3 第四章 详细设计 #includeusing namespace std;struct term/顺序表和链表的的定义 float xishu; /系数 int zhishu; /指数 ;struct LNode term data; /term多项式值 struct LNode *next;typedef LNode* polynomail;*/ /*合并同类项polynomail hebing(polynomail
6、 Head) polynomail r,q,p,Q;for(q=Head-next;q!=NULL;q=q-next)/合并同类项 for(p=q-next,r=q;p!) if(q-data.zhishu=p-data.zhishu)/指数相等 系数相加 q-data.xishu=q-data.xishu+p-data.xishu;r-next=p-Q=p;p=p-p 释放delete Q;/ else r=r- 4 p=p-return Head;/得到不含同类项的多项式 /*又小到大排列*/ void arrange1(polynomail pa) polynomail h=pa,p,q
7、,r;for(p=pa;p-next!next);r=p;/r指向参与比较的最后一个 while(h-=r)/ 大的沉底 for(p=h;=r&=r;next) if(p-next-data.zhishudata.zhishu)/ 比较指数的大 小 q=p-next=q-/指数大的向前移动 q-next=q; 指向参与比较的最后一个,不断向前移动r=p;/r /*由大到小排序void arrange2(polynomail pa) polynomail h=pa,p,q,r; r=p;=r)/小的沉底 5 data.zhishubool xi=false;while(p!=NULL&!xi)
8、data.zhishu-p-1) xi=true;return xi;*/ 求项数,打印多项式/*void printpolyn(polynomail P) int i; 6 polynomail q;if(P=NULL) 潣瑵? 无项next=NULL) coutY=0i=1;if(q-data.xishu!=0&data.zhishu!=0) data.xishuXdata.zhishu;i+;data.zhishu=0& 打印第一项 coutif(q=NULL) return ; while(1)/while中,打印剩下项中系数非零的项, data.xishu0) cout+; 7 i+;0) coutbreak;/*1、创建并初始化多项式链表*/ polynomail creatpolyn(int m) polynomail Head,r,s;Head=new LNode;r=Head;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1