资源描述:
《C语言课程设计报告--24点游戏》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、C语言课程设计报告题目:24点游戏设计者:专业班级:学号:指导教师:所属系部:目录n1设计任务书1.1题目与要求1.2本系统涉及的知识点n2功能设计2.1算法设计2.2部分模块流程图n3程序代码设计3.1输入模块3.2输出模块n4C程序设计总结n5致谢n6参考文献n1设计任务书1.1题目与要求本人计划编写一个关于计算24点的游戏,主要供各阶层工作人员工作生活饭后之娱乐。具体要求如下:从一副扑克牌中抽去大小王剩下52张,任意抽取4张牌,把牌面上的数运用加、减、乘、除和括号等进行运算得出24。每张牌都必须使用一次,但不能重复使用。在不同版本中,对J、Q、和K的处
2、理有些差异。一个常见的版本是把J、Q、和K去除,或当成10;还有一个版本是把J表示11,Q表示12,K代表13。本次课程设计采用将J、Q、K去除,使四张牌在1~10这十张牌中随机取牌。具体功能如下:[1]由三个难度级别数,分别为一级、二级和三级。每次发牌前可进行难度设置,若不设置,系统默认为难度级别数为二级。难度级别设置完后,点击“发牌”按钮,桌面上显示四张翻开的扑克牌,并且游戏开始计时,进度条开始前进。[2]在规定的时间内,用户可以在输入算式编辑框中输入想好的算式,并按下“验算”按钮。如果不输入任何数字和算符,会弹出“表达式有问题!”,然后再弹出一个对话框
3、,显示“对不起,您的输入不正确!”;如果输入的数字与给出的不符或者符号不合法,会弹出“对不起,您的输入不正确!”;如果输入的数字与四张牌相符、字符亦合法但是答案不正确,就会出现“Theresultis:!”;如果输入算式经运算后所得答案正确,则会弹出“你做对了!”。点击弹出对话框的确定按钮,会出现本轮的用时和分数。[3]如果在规定的时间内,没有点击验算按钮,则会弹出一个对话框,上面显示“TimeOver!”。[4]在结束本轮游戏后,如果用户想继续游戏,点击“重新发牌”按钮即可重新发牌;如果用户想结束游戏,点击“结束”按钮即可结束游戏。1.2本系统涉及的知识点
4、结构、数组、循环、函数、分支、指针n2功能设计2.1算法设计关于这个计算24游戏的设计,首先我将题目看成两部分,一部分为运算数,一部分为运算符。首先由于有四个数,则只有三个运算符,由于涉及了括号,个人认为用穷举法才能全面地进行说有的运算,我们可以将运算符和括号这部分归为主运算部分,在这部分中,运算数的位置固定,但是运算符和括号的位置会改变,而且程序主要就是在这部分运算,直接将数值引入,然后计算判断是否等于24,若等于24,则输出数值和这些运算符、括号的位置构成的运算式;然而,这是不够全面的,因为还要考虑运算数的排列位置,于是有了第二部分,运算数的位置全排列,
5、同样是采用穷举法,将运算数全排列,在每个排列后面调用主运算的方法,从而达到全面不遗漏地计算。在MAIN函数中,我们仅需要记录输入的4个数字,然后将数值用在全排列函数中即可。整个程序的设计看起来很繁琐,但在运用上很简单,能简明扼要地表现出来。2.2部分模块流程图开始输入4个数赋值进行排方法在排列方法中运算判断运算是否等于24输出运算式是结束n3程序代码设计3.1输入模块3.2输出模块#includevoidjisuan(floata,floatb,floatc,floatd)//进行运算符和括号的排列及计算{if(a+b+c+d==24){p
6、rintf("%1.0f+%1.0f+%1.0f+%1.0f=24",a,b,c,d);}if(a+b+c-d==24){printf("%1.0f+%1.0f+%1.0f-%1.0f=24",a,b,c,d);}if(a+b+c*d==24){printf("%1.0f+%1.0f+%1.0f*%1.0f=24",a,b,c,d);}if(a+(b+c)*d==24){printf("%1.0f+(%1.0f+%1.0f)*%1.0f=24",a,b,c,d);}if((a+b+c)*d==24){printf("(%1.0f+%1.0f+
7、%1.0f)*%1.0f=24",a,b,c,d);}if(a+b+c/d==24){printf("%1.0f+%1.0f+%1.0f/%1.0f=24",a,b,c,d);}if(a+(b+c)/d==24){printf("%1.0f+(%1.0f+%1.0f)/%1.0f=24",a,b,c,d);}if((a+b+c)/d==24){printf("(%1.0f+%1.0f+%1.0f)/%1.0f=24",a,b,c,d);}if(a+b-c+d==24){printf("%1.0f+%1.0f-%1.0f+%1.0f=24"
8、,a,b,c,d);}if(a+b-c-d==24)