1、c 剪刀石头布游戏课程设计大学论文 计算机科学与技术学院C+高级语言程序设计课程设计报告 (2016/2017学年 第一学期)学生姓名: 常满琪 学生班级: 软件工程152601学生学号: 201526170101指导教师: 韩里虎 2016年12月20日计算机科学与技术学院课程设计任务书课程设计名称C+高级语言程序设计课程设计课程设计题目 剪刀石头布学生姓名常满琪专业班级软件工程 152601学号201526170101课程设计任务内容问题描述 基本要求 (1) 实现人机对战的功能,(2)可以记录比赛次数 ,输赢的次数测试要求(1)(2)指导教师: 时 间: 年 月 日 目 录(1)设计问题
2、描述与需求分析 待定(2)数据结构与算法设计 4(3)程序设计编码与测试 5(4)设计过程总结与体会 13程序源代码:#includeusing namespace std;enum c_h_scloth,hammer,scissors,game,help,instructions,quit;class Game /构造类 public: Game(); enum c_h_s select(); enum c_h_s mach(); void instruct(); int won(enum c_h_s,enum c_h_s); void gamee(int,int,int); void he
3、lpp(); void solution(); private: int win; int lose; int tie; enum c_h_s player; enum c_h_s machine;*成员函数定义模块define.cpp*#includeusing namespace std;Game:Game() /初始化数据成员 win=0; lose=0; tie=0;void Game:instruct() coutendl; cout * 剪刀 锤子 布 * endl; cout在这个游戏中endl; coutc 表示布endl; couth 表示锤子endl; couts 表示剪刀
4、.endl; cout游戏者和机器都只选择 c,h,s中的一个.如果二者的选择相同endl; cout那么这一局就是平局.此外:endl; cout布包锤子(布获胜).endl; cout锤子打烂剪刀(锤子获胜).endl; cout剪刀剪布(剪刀获胜).endl; coutendl; cout还有其它的选择是:endl; coutg 表示游戏的结果(至今获胜的次数)endl; coutp 可获得帮助endl; couti 可获得游戏方法的指导信息endl; coutq 表示退出游戏.endl; cout这个游戏一直重复到游戏者选择 q 为止.endl; cout祝你好运!endl; /游戏结
5、束enum c_h_s Game:select() char c; enum c_h_s p; coutendl; cout 请选择 c,h,或s:;/提示用户输入字符 while(c=getchar()= |c=n|c=t); switch(c) case c: p=cloth; break; case h: p=hammer; break; case s: p=scissors; break; case g: p=game; break; case i: p=instructions; break; case q: p=quit; break; default: p=help; break
6、; return(p);enum c_h_s Game:mach() static int i; i=+i%3; return(i=0)?cloth:(i=1)?hammer:scissors);void Game:gamee(int win,int lose,int tie) coutendl; cout 游戏结果如下:; coutendl; cout.width(7); cout 你获胜的次数是:winendl; cout.width(7); cout 我获胜的次数是:loseendl; cout.width(7); cout 平局的次数为: tieendl; cout.width(7);
7、 cout 游戏的总次数是:win+lose+tieendl;void Game:helpp() coutendl; cout 你可以输入下列的字符:endl; cout c 表示布endl; cout h 表示锤子endl; cout s 表示剪刀endl; cout g 查看游戏结果endl; cout p 打印出这些信息endl; cout i 重新打印出游戏指导信息endl; cout q 退出游戏endl;int Game:won(enum c_h_s player,enum c_h_s machine) int victory; if(player=cloth) victory=m
8、achine=hammer; else if(player=hammer) victory=machine=scissors; else victory=machine=cloth; return(victory);void Game:solution() instruct(); while(player=select()!=quit) switch(player) case cloth: case hammer: case scissors: machine=mach(); if(player=machine) +tie; coutendl; cout平局; else if(won(play
9、er,machine) +win; coutendl; cout你获胜; else +lose; coutendl; cout我获胜; case game: gamee(win,lose,tie); break; case instructions: instruct(); break; case help: helpp(); break; gamee(win,lose,tie); coutendl; coutendl; coutBYE!endl; *主函数定义模块main.cpp*#includeusing namespace std;int main() Game g; g.solutio
10、n(); return 0;运行结果:1、未输入任何命令2、输入命令 c3、输入命令s4、输入命令q,结束游戏。设计过程本次设计主要参考了网上搜索的资料,但搜索的资料并不符合课程设计要求,所以就要求我们运用我们所学知识按照课程设计要求改进,生成C+面向对象的程序文件。首先,我根据网上的资料,把程序的流程图画出来。把程序分成若干的功能块。每个功能块能实现不通的功能,各功能块之间能够相互的调用。功能块之间的合理组合实现了整个游戏的功能。然后再定义各个功能块的作用,再根据作用用C+语言实现其功能。并编译与链接各功能块,各功能块编译与链接正确后再把它们链接成一个工程。本次设计中构造了一个Game类,将
11、实现游戏的一些过程函数封装成类的函数,将在游戏里面需要的变量变成C+程序里面的数据成员。然后分块将各个功能实现。本次设计的评价与收获三周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础提高了计算能力,熟悉了规范和标准,同时各科相关的课程都有了全面的复习,独立思考的能力也有了提高。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1