1、课 程 设 计 说 明 书课程名称: 高级语言程序设计 设计题目: 石头剪刀布游戏 院 部: 计算机科学和信息工程学院 学生姓名: 学 号: 专业班级:计算机科学和技术(信息技术方向)指导老师: 6月课 程 设 计 任 务 书设计题目石头剪刀布游戏学生姓名所在院部计算机科学和信息工程学院专业、班级计算机科学和技术(信息技术方向)设计要求:完成一个猜拳游戏,具体要求以下: 1. 定义所需各类头文件 2. 设定游戏人数 3. 选择游戏模式 4. 选手进行比赛 5. 利用函数调用判定是否正当 6. 利用函数调用判定是否赢得比赛 7. 利用函数调用进行选手成绩排名 8. 退出学生应完成工作:1. 学生
2、应认真学习参考程序,了解每个文件、每个函数和各个变量作用和意义。在此基础上深入改善程序,最终正确地运行程序。2. 对程序进行测试,设计具体测试计划,然后依据测试计划设计测试用例,对程序进行测试。测试时应注意对多种边缘情况进行测试。3. 完成课程设计汇报。参考文件:1. 梁旭等 C程序设计课程设计 电子工业出版社 2. 谭浩强 C程序设计(第四版) 清华大学出版社工作计划:1. 小组审题,查阅资料,进行设计前必需资料准备(3天)。 2. 把程序完整运行出来(4天)。 3. 增加改善程序(3天)。 4. 写课程设计汇报(3天)。 5. 提交课程设计汇报及答辩(1天)任务下达日期: 年 6 月 9
3、日 任务完成日期: 年 6 月 22 日指导老师(署名): 学生(署名):夏在敬目 录一 序言1二 需求分析1三 概要设计1四 具体设计3五 改善或增加功效模块说明4六 程序测试4七 课程设计总结5八 致 谢5九 参考文件5十 源程序6五子棋游戏一 序言猜拳游戏是由锤子、剪刀、布三部分组成。玩家能够在游戏区逐次猜拳,系统会给出玩家每次猜拳后提醒,显示成功或失败或是平手。二 需求分析1 要求(1)用C语言实现程序设计;(2)定义各个函数分别完成不一样功效,如背景设计,判定等;(3)画出查询模块步骤图;(4)系统各个功效用函数调用形式实现;(5)界面友好(良好人机互交),程序要有注释。2 任务(1
4、)定义各类头文件,变量及宏定义;(2)图形模块,设计出棋盘背景界面;(3)设定玩家操作模块和胜败判定模块;(4)画出部分模块步骤图;(5)编写代码;(6)程序分析和调试。3 运行环境(1)WINDOWS/XP系统(2)TurboC2.0编译环境4 开发工具C语言三 概要设计1 模块组成图石头剪刀布游戏进入游戏设置游戏游戏说明游戏排行榜退出游戏 功效模块图2 查询函数步骤图猜拳游戏从开始到结束操作步骤系统步骤图开始游戏输入参与游戏人数并一次输入参有游戏玩家名进入主页面选择游戏模式及查看排行榜选择开始游戏选择对游戏进行设置选择查看游戏说明选择查看游戏排行榜完成后重新进入主页面选择结束游戏结束游戏
5、函数步骤图四 具体设计在程序开头部分定义要用到头文件,和多种常量,设定选手及游戏模式。#include /*标准输入/输出函数库*/#include / *标准函数库*/#include#include#include#inlcudeusing namespace std;void SetColor(unsigned shortForeColor,unsigned short BackGroundColor) HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleTextAttribute(hCon,(ForeColor%16)|(Ba
6、ckgrundColor%16*16);void face();void shuoming();void shezhi();void zuce();void tuichu();void paixu();void paihangbang();int cmp();int N = 20,maxx = 0,M; struct PPchar name10;int score;P1000;输入函数,即为选手每一次出拳,用1、2、3分别表示石头、剪刀、布,经过输入数字来确定要出是哪一个,每出一次进行判定是否合理(如是否是三者中一个)并经过调用函数统计比赛结果,则经过变量统计下获胜次数,假如比赛完了主函数vo
7、id youxi() int wan = 1; while(wan = M) Pwan - 1.score = 0; system(CLS); SetColor(14,0); printf(nnnnnnnnnttt 下面有请 ); SetColor(12,0); printf(玩家 %d,wan); SetColor(14,0); printf( 准备比赛!); SetColor(12,0); printf(nnnnnnnnnnnttttttt【按任意键开始游戏】); _sleep(); getchar(); getchar(); int a,i = 0; for(; i = N) Pwan-
8、1.score = (Pwan-1.score/N)*100; else Pwan - 1.score = 0; paixu(); system(CLS); SetColor(12,0); printf(nnnnnnnnnntttt全部对局已结束!); printf(nnnnnnnnnnttttttt【按任意键返回主页面】n); getchar(); getchar(); face();五 改善或增加功效模块说明在游戏运行过程中,没次比赛结束,此程序中全部会产升新对决界面,在屏幕上显示相对比较繁琐,所以这里用到了屏幕刷新函数system(cls);,为了让界面好看,添加了改变字体颜色函数Set
9、Color(7,0);代码以下。system(“CLS”);SetColor(7,0); 注意,调用此函数需要引用头文件#include/ *标准函数库*/六 程序测试1 测试游戏能否正确显示期盼界面实施程序后,显示本游戏界面,进行模式选择图6-1模式选择界面2 测试游戏能否正确进行每一局比赛(1) 人机对战 人机对战七 课程设计总结本课程设计试验是对我进入大学以来学习程序设计语言一个检验。自己动手自己发觉和处理问题,学会了独立,自主思索,发觉了自己很多不足。平时没有掌握好知识在这次试验中根本暴漏出来,经过不停思索,不停查阅资料和上机运行,处理其中大部分问题,当然还存在部分问题灭有处理。我相信
10、在以后学习能够处理好她们。不过,收货还是不小,我不仅对C操作有了深入掌握,还了解到了程序设计书写风格极其注释格式。当我编写小游戏“猜拳游戏”时,一开始利用了大量函数及循环来完成,不过慢慢琢磨以后,认为这个程序能够简化,于是改变了变成思绪。当然还有不少文件读写问题,不过还是不停测试以后顺利处理了。另外一点说就是这个程序用了很多选择循环,所以对于循环控制要十分小心。还有一点体会就是树上和老师教内容是有限,我们需要不停地靠自己去学习,向她人请教,学会利用网络和掌握更多只是,这么我们才能变出愈加好C语言程序设计。总体来说,这次C语言程序设计试验还是比较成功,似然最终程序存在部分不足,但能去这么结果我还
11、是比较快乐八 致 谢 经过两个多星期努力,最终把本游戏程序改写出来,在这期间要感谢各同学对我帮助和支持,同时也很感谢冯老师对我进行细心、耐心指导,激励我对程序进行合理改善,培养了我创新意识和创新能力。九 参考文件1 张福祥. C语言程序设计M. 辽宁大学出版社,.12 张福祥,王萌C语言程序设计习题解答和试验实训M沈阳:辽宁大学出版社,3 牛莉,刘远军等计算机等级考试教导教程M北京:中国铁道出版社, 十 源程序/*头文件 student.h*/#include /*标准输入/输出函数库*/#include#include#include#include#include#includeusing
12、 namespace std;void SetColor(unsigned short ForeColor,unsigned short BackGroundColor) HANDLE hCon=GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hCon,(ForeColor%16)|(BackGroundColor%16*16);void paixu();void face();void shuoming();void shezhi();void zhuce();void tuichu();void paihangbang();
13、void youxi();int N = 20,M;double maxx = 0;struct PP char name15; double score; P1000;void youxi() int wan = 1; while(wan = M) Pwan - 1.score = 0; system(CLS); SetColor(14,0); printf(nnnnnnnnnttt 下面有请 ); SetColor(12,0); printf(玩家 %d,wan); SetColor(14,0); printf( 准备比赛!); SetColor(12,0); printf(nnnnnnn
14、nnnnttttttt【按任意键开始游戏】); _sleep(); getchar(); getchar(); int a,i = 0; for(; i = N) Pwan-1.score = (Pwan-1.score/N)*100; else Pwan - 1.score = 0; paixu(); system(CLS); SetColor(12,0); printf(nnnnnnnnnntttt全部对局已结束!); printf(nnnnnnnnnnttttttt【按任意键返回主页面】n); getchar(); getchar(); face();void paixu() for(i
15、nt i = 0; i M-1; i+) for(int j = 0; j M - 1 - i; j+) if(Pj.score Pj+1.score) struct PP t; t = Pj; Pj = Pj+1; Pj+1= t; FILE *fp; if(fp = fopen(file.txt,w) = NULL) printf(can not open!n); exit(0); if(M 5) for(int i = 0;i M;i+) if(fwrite(&Pi,sizeof(struct PP),1,fp)!= 1) printf(file write errorn); else
16、for(int i = 0;i 5;i+) if(fwrite(&Pi,sizeof(struct PP),1,fp)!= 1) printf(file write errorn); fclose(fp);void paihangbang() paixu(); system(CLS); SetColor(10,0); printf(nnttt*); printf(nttt*tttt*); printf(nttt* ); SetColor(7,0); SetColor(12,0); printf( 游戏排行榜 ); SetColor(7,0); SetColor(10,0); printf( *
17、); printf(nttt*tttt*); printf(nttt*); SetColor(7,0); SetColor(10,0); printf(nntt-); SetColor(11,0); printf(ntt| 1 %12s *%5.2lf% |,P0.name,P0.score); SetColor(10,0); printf(ntt| |); SetColor(12,0); printf(ntt| 2 %12s *%5.2lf% |,P1.name,P1.score); SetColor(10,0); printf(ntt| |); SetColor(15,0); printf
18、(ntt| 3 %12s *%5.2lf% |,P2.name,P2.score); SetColor(10,0); printf(ntt| |); SetColor(14,0); printf(ntt| 4 %12s *%5.2lf% |,P3.name,P3.score); SetColor(10,0); printf(ntt| |); SetColor(13,0); printf(ntt| 5 %12s *%5.2lf% |,P4.name,P4.score); SetColor(10,0); printf(ntt-); SetColor(12,0); printf(nnnttttttt
19、【按任意键返回】n); getchar(); getchar(); face();void tuichu() system(CLS); for(int k = 0; k 5; k+) for(int i = 0; i 6; i+) system(CLS); SetColor(10,0); printf(nnnnnnnttt感谢你此次使用!); SetColor(11,0); printf(nnnnntttt欢迎你下次使用); SetColor(12,0); printf(nnnnttt请稍等,正在退出); for(int j = 0; j i; j+) printf(.); _sleep(10
20、0); printf(.); system(CLS); SetColor(12,0); printf(nnnnnnnnnttt 再见!()ByeBye、nnnnnnnnnnn); SetColor(0,0);void face() paixu(); system(CLS); int X; SetColor(10,0); printf(nnttt*); printf(nttt*tttt*); printf(nttt* ); SetColor(7,0); SetColor(12,0); printf(欢迎进入猜拳游戏!); SetColor(7,0); SetColor(10,0); printf( *); printf(nttt*tttt*); printf(nttt*); SetColor(7,0); SetColor(10,0); printf(nntt-); SetColor(11,0); printf(ntt| 开始*1 |); SetColor(10,0); printf(ntt| |); SetColo
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100