2022年课程方案—一元多项式计算器中国地图着色 .pdf
《2022年课程方案—一元多项式计算器中国地图着色 .pdf》由会员分享,可在线阅读,更多相关《2022年课程方案—一元多项式计算器中国地图着色 .pdf(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、个人资料整理仅限学习使用课程名称:指导教师:姓名性别学号班级计科综合成绩成绩等级程序运行情况占总成绩 20%)能正确运行基本能正确运行能运行但结果不完善20分) 15分) 10 分)程序功能的完善程度占总成绩 10%)完善基本完善不完善10分) 8分) 5分)程序结构的合理性占总成绩 10%)合理基本合理不太合理10分) 8分) 5分)对问题的答辩情况占总成绩 40%)概念正确有创新能正确回答所有问题基本能正确回答40分) 35分) 30分)部分问题回答概念不清晰20分)学生的工作态度与独立工作能力占总成绩 10%)工作态度认真能独立完成任务工作态度认真但独立性较差10分) 8 分)工作态度基
2、本认真但缺乏独立性5分)设计报告的规范性占总成绩 10%)符合规范基本符合规范规范性较差10分) 8分) 5分)优秀: 90分100分 良好: 80分89分 中等: 7079分 及格: 6069分 不及格 0分59分武汉科技大学计算机科学与技术学院制表数据结构课程设计任务书【设计目的】数据结构是计算机专业的核心课程,是一门实践性很强的课程。课程设计是加强学生实践能力的一个强有力手段,要求学生掌握数据结构的应用、算法的编写、类C 语言的算法转换成CC+)程序并上机调试的基本方法,还要求学生在完成程序设计的同时能够写出比较规范的设计报告。严格实施课程设计这一环节,对于学生基本程序设计素养的培养和软
3、件工作者工作作风的训练,将起到显著的促进作用。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 11 页个人资料整理仅限学习使用【设计要求】1、课程设计题目共二题,每个学生必须独立完成;2、课程设计时间为1.5 周;3、设计语言 CC+ )不限;4、课余时间完成源程序和课程设计报告等文档书写工作,上机时间只能做调试工作。5、上机任务1)选择合适的数据结构,并定义数据结构的结构体;2)根据程序所要完成的基本要求,设计出完整的算法;3)设计出主程序main函数),使其成为完整的程序。6、上机时间:上午8:2011:50 ,下午 2:105:4
4、0 7、无论在校外、校内,都要严格遵守学校和所在单位的学习和劳动纪律、规章制度,学生有事离校必须请假。课程设计期间,无故缺席按旷课处理;缺席时间达四分之一以上者,其成绩按不及格处理。特别说明: 数据结构、算法、输入输出方式、其他功能均可自行设计,鼓励思路创新。课程设计一:一元多项式计算器1)需求分析设计一个一元多项式的计算器,功能包括1)输入并建立多项式一个多项式最多不超过20项),可以从文件中读取相关数据;2)输出多项式,输出形式可以是图形方式,也可以是文本方式;3)实现两个多项式相加,并输出和多项式;4)实现两个多项式相减,并输出差多项式;5)实现两个多项式相乘,并输出乘积多项式; 精选学
5、习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 11 页个人资料整理仅限学习使用/ 建立一个头指针为head、项数为 m的一元多项式 int i。 Polyn p。 p=head=(Polynmalloc(sizeof(struct Polynomial。 head-next=NULL 。 for(i=0 。 i p=(Polynmalloc(sizeof(struct Polynomial。 /建立新结点以接收数据 printf( 请输入第 %d项的系数与指数:,i+1 。 scanf(%f %d,&p-coef,&p-expn。 Inse
6、rt(p,head。 /调用 Insert函数插入结点 return head。 -void Insert(Polyn p,Polyn h if(p-coef=0 free(p 。 /系数为 0的话释放结点 else Polyn q1,q2。 q1=h。q2=h-next 。 while(q2&p-expnexpn /查找插入位置 q1=q2。 q2=q2-next 。 if(q2&p-expn=q2-expn /将指数相同相合并 q2-coef+=p-coef 。 free(p。 if(!q2-coef /系数为 0的话释放结点 q1-next=q2-next 。 free(q2。 else
7、 / 指数为新时将结点插入 p-next=q2。 q1-next=p。 -Polyn AddPolyn(Polyn pa,Polyn pb/求解并建立多项式a+b,返回其头指针 Polyn qa=pa-next。 Polyn qb=pb-next 。 Polyn headc,hc,qc。 hc=(Polynmalloc(sizeof(struct Polynomial。/建立头结点 hc-next=NULL 。 headc=hc。 while(qa|qb qc=(Polynmalloc(sizeof(struct Polynomial。 switch(compare(qa,qb case 1:
8、 qc-coef=qa-coef 。 qc-expn=qa-expn 。 qa=qa-next。 break。 case 0: qc-coef=qa-coef+qb-coef 。 qc-expn=qa-expn 。 qa=qa-next。 qb=qb-next 。 break。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 11 页个人资料整理仅限学习使用 case -1: qc-coef=qb-coef 。 qc-expn=qb-expn 。 qb=qb-next 。 break。 /switch if(qc-coef!=0 qc-n
9、ext=hc-next 。 hc-next=qc。 hc=qc。 else free(qc。 /当相加系数为0时,释放该结点 /while return headc。 多项式减号的重载跟加号的重载类似,这里不再累述-Polyn MultiplyPolyn(Polyn pa,Polyn pb/求解并建立多项式a*b,返回其头指针 Polyn hf,pf 。 Polyn qa=pa-next。 Polyn qb=pb-next 。 hf=(Polynmalloc(sizeof(struct Polynomial。/建立头结点 hf-next=NULL 。 for(。qa。qa=qa-next fo
10、r(qb=pb-next 。qb。 qb=qb-next pf=(Polynmalloc(sizeof(struct Polynomial。 pf-coef=qa-coef*qb-coef 。 pf-expn=qa-expn+qb-expn 。 Insert(pf,hf 。/调用 Insert函数以合并指数相同的项 return hf。-主程序及其主要模块的伪码流程int main( int m,n,flag=0 。 float x。 Polyn pa=0,pb=0,pc,pd,pe,pf 。/定义各式的头指针,pa与pb在使用前付初值NULL printf( 请输入 a的项数 :。 scan
11、f(%d,&m 。 pa=CreatePolyn(pa,m。/建立多项式 a printf( 请输入 b的项数 :。 scanf(%d,&n 。 pb=CreatePolyn(pb,n 。/建立多项式 a /输出菜单 printf(*n。 printf( 操作提示: nt1.输出多项式 a和b 。 printf(nt2. 输出多项式 a+b。 printf(nt3. 输出多项式 a-b。 printf(nt4. 计算多项式 a在x处的值 。 printf(nt5. 输出多项式 a*b 。 printf(nt6. 退出 n*n。 for(。 flag=0 printf( 请选择操作 。 scan
12、f(%d,&flag 。 if(flag=1 printf( 多项式 a:。 PrintPolyn(pa 。 printf( 多项式 b:。 PrintPolyn(pb 。continue。 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 11 页个人资料整理仅限学习使用 if(flag=2 pc=AddPolyn(pa,pb 。 printf( 多项式 a+b: 。PrintPolyn(pc 。 DestroyPolyn(pc 。continue。 if(flag=3 pd=SubtractPolyn(pa,pb 。 printf(
13、多项式 a-b:。PrintPolyn(pd 。 DestroyPolyn(pd 。continue。 if(flag=4 printf( 输入 x的值: x= 。 scanf(%f,&x 。 printf( 多项式 a的值 %gn,ValuePolyn(pa,x 。continue。 if(flag=5 pf=MultiplyPolyn(pa,pb。 printf( 多项式 a*b:。PrintPolyn(pf 。 DestroyPolyn(pf 。continue。 if(flag=6 break 。 if(flag6 printf(Error!n。continue。 /for Destr
14、oyPolyn(pa 。 DestroyPolyn(pb 。 return 0。 3)调试分析对设计和实践的回顾和分析在建立多项式,考虑到实际中多项式的次数可能很高且变化很大,若采用顺序存储结构将面临难以确定顺序存储结构的最大长度的问题,还有在实现多项式之间的运算时多项式的系数和指数又会发生变化,采用顺序存储结构将使得操作异常复杂,而采用链式存储结构能避免这些问题。在设计多项式之间的加、减和乘运算时,将运算符进行了重载。为了保证未知数的值在多项式中有意义,特地设置了观察比较两个多项式指数状况。经验和体会在学习的过程中要注意学习和实践,在学习过程中要由一种问题拓展到多种问题,考虑实际操作中可能遇
15、到的情况,并找到解决问题的方案,注重积累。很多知识课本上可能都没有提及到,不少内容是我们可以通过上机实验获得答案的。学习的东西必须要通过实践不断巩固和深化,不然很快就忘了。4)用户手册运行程序后首先输入多项式a的项数 以3项为例,输入3),接着依次输入1,2,3项的系数,然后输入多项式b的数据 如下图:精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 11 页个人资料整理仅限学习使用5)测试结果 如下图)6)附录 带注释的源程序)#include #include typedef struct Polynomial float coef。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年课程方案一元多项式计算器中国地图着色 2022 课程 方案 一元 多项式 计算器 中国地图 着色
限制150内