课程设计(论文)-纸牌游戏设计.doc

上传人:韩长文 文档编号:3972070 上传时间:2019-10-11 格式:DOC 页数:33 大小:1.14MB
返回 下载 相关 举报
课程设计(论文)-纸牌游戏设计.doc_第1页
第1页 / 共33页
课程设计(论文)-纸牌游戏设计.doc_第2页
第2页 / 共33页
课程设计(论文)-纸牌游戏设计.doc_第3页
第3页 / 共33页
课程设计(论文)-纸牌游戏设计.doc_第4页
第4页 / 共33页
课程设计(论文)-纸牌游戏设计.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《课程设计(论文)-纸牌游戏设计.doc》由会员分享,可在线阅读,更多相关《课程设计(论文)-纸牌游戏设计.doc(33页珍藏版)》请在三一文库上搜索。

1、西安建筑科技大学华清学院大作业(论文)西安建筑科技大学大作业设计(论文)任务书专业班级: 学生姓名: 指导教师(签名): 一、大作业题目 纸牌游戏二、本次大作业应达到的目的编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后从第4张开始,以4为基数,是4的倍数的牌翻一次, 直到最后一张牌;.再依次5的倍数的牌翻一次,6的,7的 直到 以52为基数的 翻过,输出:这时正面向上的牌有哪些? 三、本次大作业任务的主要内容和要求(包括原始数据、技术参数、设计要求等) 数据对象:ji=0,

2、bi-1,i=1,2,n,D= aj1j2jn|n(0)称为数组的维数,bi是数组第i维的长度, ji是数组第i维的下标, aj1j2jnElemSet数据关系:R=R1,R2,RnRi=|0jkbk-1,1kn且kI, 0jibk-2, aj1jijn,aj1,ji+1,jnD,i=2,n要求:输出最后正面向上的牌四、应收集的资料及主要参考文献: 1 严蔚敏.数据结构 C语言.清华大学出版社2 谭浩强.c语言程序设计.清华大学出版社3数据结构.高教出版社 4 李春保.数据结构习题.清华大学出版社5 严蔚敏.数据结构习题.清华大学出版社6 王立柱.c语言与数据结构.清华大学出版社7 李春葆.数

3、据结构(C语言篇)习题与解析.清华大学出版社8http:/9http:/ 西安建筑科技大学大作业设计(论文)任务书专业班级: 学生姓名: 指导教师(签名): 一、大作业题目 运动会分数统计二、本次大作业应达到的目的参加运动会有n个学校,学校编号为1n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1m,女子m+1m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m=20,n=20) 三、本次大作业任务的主要内容和要求(包括原始数据、技术参数、设计要求等) 功能要求:1).可以输入各个项目

4、的前三名或前五名的成绩;2).能统计各学校总分;3).可以按学校编号、学校总分、男女团体总分排序输出;4).可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)输出形式:有中文提示,各学校分数为整形。四、应收集的资料及主要参考文献: 1 严蔚敏.数据结构 C语言.清华大学出版社2 谭浩强.c语言程序设计.清华大学出版社3数据结构.高教出版社 4 李春保.数据结构习题.清华大学出版社5 严蔚敏.数据结构习题.清华大学出版社6 王立柱.c语言与数据结构.清华大学出版社7 李春葆.数

5、据结构(C语言篇)习题与解析.清华大学出版社8http:/9http:/ 五、审核批准意见教研室主任(签字) 目 录摘要 (5)1 需求分析 (6) 1.1纸牌游戏 (6) 1.2运动会分数统计 (6)2 概要设计 (6) 2.1 纸牌游戏 (6) 2.1.1 数据类型分类 (6)2.1.2系统功能的实现 (6)2.1.3 系统整体流程图 (7) 2.2运动会分数统计 (7) 2.2.1 数据类型分类 (7)2.2.2系统功能的实现 (8)2.2.3 系统整体流程图 (8)3 详细设计 (9) 3.1 纸牌游戏 (9)3.1.1添加纸牌游戏流图 (9) 3.1.1.1添加输出正面朝上模块 (1

6、0)3.1.1.2添加纸牌游戏函数实现 (11)3.2运动会分数统计 (12)3.2.1添加运动会分数统计住流程图流程图 (12)3.2.1.1添加成员函数介绍模块 (13)3.2.1.2添加学校代码查询某个项目的情况模块 (14)3.2.1.3添加项目代号查询取得成绩的学校模块(14)3.2.1.4添加统计各学校总分模块 (15)3.2.1.5运动会分数统计函数实现 (16)4 调试分析 (24)4.1 纸牌游戏调试分析 (24) 4.2 运动会分数统计调试分析 (25)5 总结 (30)参考文献 (32)摘 要 今日,我们的地球信息化,网络化,结构化的发展模式已经成为主流,对于如何办好一届

7、属于二十一世纪的高科技绿色环保的奥运会,我们持之以恒的努力!在传统的统计分数的方式上加入大量的先进技术设备,使其成为一届前无古人的充满现代气息的奥林匹克运动会!在高度信息化的前提下,我们利用最基础计算机通用语言C语言对程序进行调试,使得其功能更加完善,以求达到预期的效果!此外,在编辑程序的过程中,我们利用循环链表实现对程序的循环功能!趁这次程序设计课程掌握了程序设计,其任务是纸牌游戏设计与运动会分数统计设计,并且对其进行程序调试。关键词:信息化,先进,C语言,掌握 1 需求分析1.1纸牌游戏: 编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,

8、从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后从第4张开始,以4为基数,是4的倍数的牌翻一次, 直到最后一张牌;.再依次5的倍数的牌翻一次,6的,7的 直到 以52为基数的 翻过,输出:这时正面向上的牌有哪些?1.2 运动会分统计: 参加运动会有n个学校,学校编号为1n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1m,女子m+1m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m=20,n0)称为数组的维数,bi是数组第i维的长度, ji是数组第i维的下标, a

9、j1j2jnElemSet数据关系:R=R1,R2,RnRi=|0jkbk-1,1kn且kI, 0jibk-2, aj1jijn,aj1,ji+1,jnD,i=2,n2.1.2系统功能的实现操作结果:对纸牌进行翻转 ADT SqList本程序包含两个模块:(1) 主程序模块void main()定义一个二叉树;for(i=1;i=52;i+) L.ri.num=i;L.ri.visit=0;/用0来记正面(2) 纸牌翻转模块翻转纸牌各模块之间的调用关系如下:主程序模块纸牌翻转模块2.1.3系统整体流程图图2-1-3系统整体流程图2.2运动会分数统计2.2.1 数据类型分类该程序是针对运动会分数

10、统计管理的一个简单系统包含运动会信息输入、成绩查询、学校成绩查询等功能,使用模块化编程设计void xxbh( ) 、void xxzf( )、void malezf( )、 void femalezf( )、void cxsch( )、 void cxxm( )6个函数完成实验要求的各项功能。2.2.2系统功能的实现1、学校编号排序模块:用于对学校编号排列输出,可以用void xxbh( )函数实现功能。2、按学校总分排序模块:用于对学校总分排列输出,可以用void xxzf ( )函数实现功能。3、按学校男总分排序模块:用于对学校男子总分排列输出,可以用void malezf( )函数实现

11、功能。 4、按学校女总分排序模块:用于对学校女子总分排列输出,可以用void fexxnf( )函数实现功能。5、查询某个学校成绩模块:用于查询某个学校的比赛成绩信息输出,可以用void cxsch( )函数完成此功能。 6、查询某个项目成绩模块:用于查询某个学校的比赛成绩信息输出,可以用void cxxm( )函数完成此功能2.2.3 系统整体流程图开始输入相关信息(学校信息和项目信息)判断输入信息是否正确输入前三名信息统计学校总分按编号排序输出按总分排序输出按男子总分排序输出按女子总分排序输出结束图2-2-3 系统整体流程图3 详细设计3.1纸牌游戏 3.1.1添加纸牌游戏流程图图3-1-

12、1纸牌游戏主流程图3.1.1.1添加输出正面朝上模块图3-1-1-1输出正面朝上流程图3.1.1.2添加纸牌游戏函数实现#include #include #include int main() int aa53, k=2, i,j ; for(i=1;i53;i+) aai=i ; for(i=2;i53;i+) for(j=k;j53;j+) if(j%k=0) if(aaj=0) aaj=j ; else aaj=0 ; k=k+1 ; printf( 最后正面向上的纸牌编号为: n); for(i=1;i53;i+) if(aai=0)continue ; printf(%4d,aai

13、); printf(nnn);printf(请按任意键退出程序!); getch(); 3.2运动会分数统计3.2.1添加运动会分数统计主流程图图3-2-1运动会分数统计主流程图3.2.1.1添加成员函数介绍模块3-2-1-1添加成员函数介绍流程图3.2.1.2添加学校代码查询某个项目的情况模块3-2-1-2添加学校代码查询某个项目的情况流程图3.2.1.3添加项目代号查询取得成绩的学校模块3.2.1.3项目代号查询取得成绩的学校流程图3.2.1.4添加统计各学校总分模块在统计学校总分和各学校男女项目总分时,在统计男(女)项目总分时只需要确定下是否是男(女)子项目,如果是就加,判断方法就是男子

14、项目代号小于等于男子项目数而女子项目则大于男子项目数。3-2-1-4添加统计各学校总分流程图3.2.1.5运动会分数统计函数实现#include#include#includeusing namespace std;int n; /n个学校int m; /m个男子项目int w; /w个女子项目struct pro /表示项目的结构体string name; /项目名称int snum6; /前5名学校的编号p21;struct school /表示学校的结构体int num;string name; /学校名称int score; /学校总分int male; /男子总分int female

15、; /女子总分sch21;int a101101;int integral5=7,5,3,2,1;/*函数原型void input();void print(int i);void xxbh();/*按编号排序void xxzf();/*按学校总分排序void malezf();/*/按学校男总分排序void femalezf();/*/按学校女总分排序void cxsch();/*/查询学校信息void cxxm();/*查询项目信息void solve();int main()input();solve();return 0;void input()int i,j,y,x;printf(*

16、请输入学校数目*n);y=0;while(1) scanf(%d,&n); if(n=1&n=20)y=1; if(y)break; else printf(*您的输入有误,请重新输入!*n);for(i=1;ischi.name; schi.score=0; schi.female=0; schi.male=0; schi.num=i;printf(*输入男子项目数和女子项目数*n);y=0;while(1) scanf(%d%d,&m,&w); if(m=1&w=1)y=1; if(y)break; else printf(*您的输入有误,请重新输入!*n);for(i=1;ipi.nam

17、e; printf(*输入第%d个项目的前5名的学校编号*n,i); for(j=1;j=1&x=20)y=1; if(y)break; else printf(*您的输入有误,请重新输入!*n); pi.snumj=x; schx.score+=integralj-1; if(i=m)schx.male+=integralj-1; else schx.female+=integralj-1; void print(int i)coutschi.numsetw(13)schi.namesetw(8)schi.scoresetw(9) schi.malesetw(10)schi.femaleen

18、dl;void xxbh()/*按编号排序int i,j;school t;for(i=1;in;i+) for(j=i;jschj.num) t=schi;schi=schj;schj=t;printf(n*按学校编号排列*n);printf(编号 学校名称 总分 男子总分 女子总分n);for(i=1;i=n;i+) print(i);void xxzf()/*按学校总分排序int i,j;school t;for(i=1;in;i+) for(j=i;j=n;j+) if(schi.scoreschj.score) t=schi;schi=schj;schj=t;printf(n*按学校

19、总分排列*n);printf(编号 学校名称 总分 男子总分 女子总分n);for(i=1;i=n;i+) print(i);void malezf()/*/按学校男总分排序int i,j;school t;for(i=1;in;i+) for(j=i;j=n;j+) if(schi.maleschj.male) t=schi;schi=schj;schj=t;printf(n*按学校男子总分排列*n);printf(编号 学校名称 总分 男子总分 女子总分n);for(i=1;i=n;i+) print(i);void femalezf()/*/按学校女总分排序int i,j;school

20、t;for(i=1;in;i+) for(j=i;j=n;j+) if(schi.femaleschj.female) t=schi;schi=schj;schj=t;printf(n*按学校女子总分排列*n);printf(编号 学校名称 总分 男子总分 女子总分n);for(i=1;i=n;i+) print(i);cout=1&s=n)y=1; if(y)break; else printf(*您的输入有误,请重新输入!*n);printf(*此该学校全部信息*n);printf(编号 学校名称 总分 男子总分 女子总分n);for(i=1;i=n;i+) if(schi.num=s)

21、print(i); break; cout=1&s=n)y=1; if(y)break; else printf(*您的输入有误,请重新输入!*n);coutps.name*前5名学校编号及名称为:*endl;printf(名次 编号 学校名称n);for(i=1;i=5;i+) cout i ps.snumisetw(12)sch ps.snumi .nameendl;coutendl;void solve()int z;while(1) printf(nnnn); printf( n); printf( 欢迎进入运动会分数统计系统 n); printf(n); printf( 1.按学校编

22、号排序输出 n); printf( 2.按学校总分排序输出 n); printf( 3.按学校男总分排序输出 n); printf( 4.按学校女总分排序输出 n); printf( 5.查询某个学校成绩 n); printf( 6.查询某个项目成绩 n); printf( 7.安全退出系统 n); printf(n); printf(请选择(1-7)进行操作:); scanf(%d,&z); if(z=1)xxbh(); if(z=2)xxzf(); if(z=3)malezf(); if(z=4)femalezf(); if(z=5)cxsch(); if(z=6)cxxm(); if(z

23、=7)break;4 调试分析4.1纸牌游戏调试分析运行中出现的部分错误图4-1-1运行中出现的错误解决方法:在函数前面加入头文件#include 。程序功能运行结果展示图4-1-2程序功能运行结果4.2运动会分数统计调试分析运行中出现的部分错误图4-2-1运行中出现的错误解决方法:在第45至53行每个函数声明后加“;”。 (1)学校信息录入运行结果图4-2-2学校信息录入运行结果(2)按学校编号排列运行结果图4-2-3学校编号排列运行结果(3)按学校总分排序运行结果图4-2-4按学校总分排序运行结果(4)按学校男子总分排列运行结果图4-2-5按学校男子总分排列运行结果(5)按学校女子总分排列

24、运行结果图4-2-6按学校女子总分排列运行结果(6)查询项目信息运行结果图4-2-7查询项目信息运行结果(7)查询学校编号运行结果图4-2-8查询学校编号运行结果(8)查询有误运行结果图4-2-9查询有误运行结果5 总结经过这次课程设计,我对数据库这门课程了解更加深入,感觉这门课程用处十分广泛与重要,而且学到课本中没有的知识,最重要的是对程序设计技术有所了解,从学习C语言课程开始,已发现程序设计的好处,他对我们数学的学习也有很大的帮助。在综合模拟实习过程中也学到和巩固了许多计算机应用基础知识,对计算机的机体也有了一个较为详细的了解。通过实际操作,学会 C语言程序编程的基本步骤、基本方法,开发了

25、自己的逻辑思维能力,培养了分析问题、解决问题的能力。这不仅是程序设计,更是锻炼我们处理问题的能力,同时也使我们了解到团队合作的可贵.编写程序是件细心活,稍不留神就会出错,这就必须要求我们对待事情要认真!在编写程序的过程中,错误不断出现,不同的类型(如少写了一个符号,写错了字母,用错了函数等等)层出不穷,这考验我们待事细心,耐心,能不能坚持到底,不能半途而废。参考文献1 作者1,作者2.文章题目.期刊名,期(卷),年:起始页码-终结页码2 作者1,作者2.文章题目.见:论文集名称. 出版地:出版者,出版年份:起始页码-终结页码3 作者1,作者2.著作名称. 出版地:出版者,出版年份4 作者1,作者2.著作名称(译者名+译). 出版地:出版者,出版年份5 作者1.学位论文题目学位论文. 学位授予单位地点:学位授予单位名称,学位授予年份6 国家标准.木结构设计规范GB 50005-2003,2003第33页 共33页

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1