C课程设计猜拳游戏
c猜拳小游戏课程设计

c 猜拳小游戏课程设计一、课程目标知识目标:1. 学生能够理解猜拳小游戏的基本规则和逻辑。
2. 学生能够掌握运用简单的条件语句和循环语句进行程序设计。
3. 学生能够运用所学的编程知识,独立编写并调试一个简单的猜拳小游戏程序。
技能目标:1. 学生能够运用计算机编程语言解决问题,培养计算思维能力。
2. 学生能够通过编写程序,提高逻辑思维和问题解决能力。
3. 学生能够通过小组合作,提高团队协作能力和沟通能力。
情感态度价值观目标:1. 学生对计算机编程产生兴趣,树立学习计算机科学的自信心。
2. 学生能够积极参与课堂讨论,勇于提出问题和分享观点,培养探究精神。
3. 学生在编程实践中,体验团队合作的成功和喜悦,培养积极向上的学习态度。
课程性质:本课程为信息技术课程,旨在通过猜拳小游戏的设计与实现,让学生掌握基本的编程知识和技能,培养计算思维和解决问题的能力。
学生特点:本课程针对五年级学生,他们对新鲜事物充满好奇心,具备一定的逻辑思维能力,但编程经验有限。
教学要求:课程要求教师以生动有趣的方式讲解编程知识,注重实践操作,让学生在动手实践中掌握编程技能。
同时,注重培养学生团队合作能力和积极的学习态度。
通过本课程的学习,学生能够达到上述课程目标,为后续学习打下坚实基础。
二、教学内容1. 猜拳游戏规则介绍:通过讲解猜拳游戏的基本规则,使学生理解游戏的胜负逻辑。
相关教材章节:《信息技术》五年级下册第四章第一節2. 编程基础:回顾并巩固变量、数据类型、运算符等基本概念,为编写猜拳程序打下基础。
相关教材章节:《信息技术》五年级下册第三章3. 条件语句和循环语句:讲解条件语句和循环语句的用法,使学生能够运用这些语句编写猜拳游戏的逻辑。
相关教材章节:《信息技术》五年级下册第四章第二节4. 猜拳游戏编程实践:a) 设计程序框架:指导学生设计猜拳游戏的基本框架,包括玩家输入、电脑随机出拳、判断胜负等模块。
b) 编写代码:引导学生逐步编写猜拳游戏代码,并进行调试。
c猜拳小游戏课程设计

c 猜拳小游戏课程设计一、课程目标知识目标:1. 学生能够理解猜拳小游戏的规则及基本算法。
2. 学生能够掌握运用条件语句和循环结构进行程序设计。
3. 学生能够运用基本的算术运算和比较运算完成猜拳游戏的逻辑判断。
技能目标:1. 学生能够运用所学编程知识,独立设计并实现一个简单的猜拳小游戏。
2. 学生能够通过编写代码,培养逻辑思维和问题解决能力。
3. 学生能够通过团队协作,提高沟通与协作能力。
情感态度价值观目标:1. 学生对编程产生兴趣,增强学习信息技术的积极性。
2. 学生能够体验编程的乐趣,培养创新意识和实践能力。
3. 学生在团队协作中学会互相尊重,培养良好的合作精神。
课程性质:本课程为信息技术学科,以实践操作为主,注重培养学生的动手能力和逻辑思维能力。
学生特点:六年级学生具备一定的信息素养,对计算机操作和编程有一定的基础,好奇心强,喜欢动手实践。
教学要求:课程要求学生在掌握基本编程知识的基础上,能够独立设计并实现猜拳小游戏,培养其编程兴趣和实际操作能力。
教师应将课程目标分解为具体的学习成果,通过引导、辅导和评估,帮助学生达成课程目标。
二、教学内容1. 猜拳游戏规则介绍:介绍猜拳游戏的基本规则,引导学生理解游戏胜负判断的逻辑。
2. 编程环境准备:指导学生熟悉编程环境,掌握基本的输入输出操作。
- 教材章节:《信息技术》第3章“编程环境与基本操作”3. 算法设计与分析:讲解猜拳游戏中的算法设计,引导学生学会运用条件语句和循环结构。
- 教材章节:《信息技术》第4章“算法设计与分析”4. 编程实现:教授如何运用所学知识编写猜拳游戏的代码。
- 教材章节:《信息技术》第5章“程序设计基础”5. 逻辑判断与算术运算:讲解猜拳游戏中逻辑判断和算术运算的应用。
- 教材章节:《信息技术》第6章“逻辑判断与算术运算”6. 测试与调试:指导学生进行猜拳游戏的测试与调试,确保程序正常运行。
- 教材章节:《信息技术》第7章“程序测试与调试”教学进度安排:第1课时:介绍猜拳游戏规则,熟悉编程环境与基本操作。
c猜拳游戏课程设计

c 猜拳游戏课程设计一、教学目标本课程旨在通过学习C猜拳游戏,让学生掌握C语言的基本语法和编程技巧,培养学生的逻辑思维能力和问题解决能力。
具体的教学目标如下:1.知识目标:–掌握C语言的基本语法和数据类型。
–理解猜拳游戏的原理和编程思路。
2.技能目标:–能够使用C语言编写简单的猜拳游戏程序。
–能够运用循环、条件语句等编程技巧解决实际问题。
3.情感态度价值观目标:–培养学生的团队合作意识和沟通能力,通过分组合作完成猜拳游戏项目。
–培养学生对编程的兴趣和主动性,激发学生继续深入学习计算机科学的热情。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制语句以及函数等。
具体的教学大纲如下:1.C语言的基本语法和数据类型。
–变量和常量的声明和使用。
–数据类型的定义和转换。
2.运算符和表达式。
–算术运算符、关系运算符和逻辑运算符的使用。
–赋值运算符和条件运算符的运用。
3.控制语句。
–条件语句(if-else)的编写和应用。
–循环语句(for、while、do-while)的编写和应用。
4.函数的定义和调用。
–函数的声明和定义。
–函数的参数传递和返回值。
5.猜拳游戏的编程实践。
–使用C语言编写猜拳游戏程序,包括用户输入、游戏逻辑和输出结果。
–运用循环、条件语句等编程技巧实现游戏的不同功能。
三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式进行教学。
具体包括:1.讲授法:通过讲解C语言的基本语法和编程技巧,让学生掌握猜拳游戏的原理和编程思路。
2.案例分析法:分析实际的猜拳游戏案例,让学生了解游戏的实现方法和技巧。
3.实验法:让学生动手编写猜拳游戏程序,培养学生的实际编程能力和问题解决能力。
4.分组讨论法:学生进行小组讨论和合作,培养学生的团队合作意识和沟通能力。
四、教学资源为了支持教学内容和教学方法的实施,本课程将使用以下教学资源:1.教材:《C语言程序设计入门》或《C程序设计语言》。
C语言猜拳游戏代码

CBrush brushes[3];
brushes[0].CreateSolidBrush(RGB(100, 60, 30));
brushes[1].CreateSolidBrush(RGB(20, 120, 90));
brushes[2].CreateSolidBrush(RGB(30, 80, 150));
NULL, NULL);
CRect rect (0, 0, 600, 600);
CalcWindowRect (&rect);
SetWindowPos(NULL, 0, 0, rect.Width(), rect.Height(),
SWP_NOZORDER | SWP_NOMOVE | SWP_NOREDRAW);
#define SHITOU 0
#define JIANDAO 1
#define BU 2
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main()
{
int x,y;
srand ((unsigned)time(NULL));
printf("电脑-布,玩家-布,平\n");
break;
}
break;
}
return 0;
}
WINDOWS模式下的,用MFC写成(可视,但我不会画那些图案,只好用文字代替):
(PRS.h)
#define SHITOU 0
#define JIANDAO 1
}
break;
c++猜拳程序实验报告

实验报告(综合训练1.2)
1题目和问题陈述:
猜拳游戏C程序开发:甲乙两人出拳玩石头、剪刀和布,游戏规则是石头>剪刀>布>石头,即如果甲出拳石头,乙出拳布,则乙胜,如果甲出拳剪刀,乙出拳布,则甲胜,以此类推
2.问题分析,要点及主要数据的设置:
分别以不同的数字代表石头剪刀布,1-石头,2-剪刀,3-布,0-结束,其它数字无效,要求重输;游戏程序分别要求甲输入一个数,乙输入一个数;根据甲乙两人输入的数代表的含义,判断输赢;程序使用循环结构,遇到0终止游戏
3.
4.代码
5.测试结果,拷屏输出:
6.总结:
在思考后,决定采用switch句型为基础,运用if循环.对于输入不在范围内的数,采用循环输入,直到输入正确.总的来说,这个题目很有趣,也是乐此不彼的做下去,但觉得画流程图太浪费时间了,感觉还行.。
c语言课程设计猜拳报告

c语言课程设计猜拳报告一、课程目标知识目标:1. 理解C语言基本语法结构,掌握变量定义、数据类型、运算符等基本知识;2. 学会使用条件语句和循环语句进行逻辑判断和流程控制;3. 了解函数的定义和调用,掌握猜拳游戏的逻辑实现。
技能目标:1. 能够运用所学知识,独立编写简单的C语言程序;2. 培养逻辑思维能力,通过分析猜拳游戏的需求,设计并实现程序;3. 学会使用调试工具,找出程序中的错误并进行修正。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习积极性,形成自主学习的能力;2. 培养团队协作精神,学会与他人分享和交流编程经验;3. 通过猜拳游戏的设计与实现,让学生认识到编程在现实生活中的应用,增强学以致用的意识。
课程性质:本课程为C语言编程入门课程,以实践为主,注重培养学生的动手能力和编程思维。
学生特点:学生具备一定的计算机操作能力,对编程有一定兴趣,但可能对C 语言语法掌握程度不同。
教学要求:结合学生特点,以猜拳游戏为载体,引导学生掌握C语言基本知识,注重实践和思考,提高编程能力。
在教学过程中,关注学生的个体差异,提供个性化的指导和支持,确保课程目标的达成。
通过本课程的学习,使学生能够独立完成简单的C语言编程任务,并培养良好的编程习惯。
二、教学内容1. C语言基本语法:变量定义、数据类型、常量与变量、运算符、表达式等;相关教材章节:第一章至第三章。
2. 流程控制:条件语句(if-else)、循环语句(for、while、do-while)、switch语句等;相关教材章节:第四章至第六章。
3. 函数:函数定义、调用、参数传递、返回值、库函数等;相关教材章节:第七章。
4. 猜拳游戏设计:需求分析、程序设计、编码实现、调试优化等;相关教材章节:实践项目案例。
教学安排与进度:1. 第一周:C语言基本语法学习,课后作业:编写简单的计算器程序;2. 第二周:流程控制学习,课后作业:编写一个简单的分数判断程序;3. 第三周:函数学习,课后作业:编写一个计算最大公约数的函数;4. 第四周:猜拳游戏设计,课后作业:完成猜拳游戏的编写与调试。
C语言猜拳游戏代码及分析

C语言猜拳游戏代码及分析猜拳游戏需求分析说明书1.引言1.编写目的小时候,我们喜欢以猜拳来赢得奖励。
现在,我们希望能开发一个猜拳的游戏。
2.定义需求:用户解决问题或达到目标所需的条件或功能;系统或系统部件要满足合同、标准,规范或其它正式规定文档所需具有的条件或权能。
而且其很强的交互性及简单易行性,可以让人在很短时间内熟悉它的操作方法,不论用户文化水平如何,都会很轻松的学会使用它。
2.任务概述1.目标2.用户的特点由于本程序简单易操作,交互性好,对用户没什么特别要求。
一般用户经过几分钟练系都可以熟悉本系统的规则。
3.系统功能示例3.需求细则1.对功能的规定1.1界面友好属性:必选描述:用户的一些操作前后做出一些必要的提示或确认。
所有完成的功能都需要友好,例如:●增加失败提示;●删除失败和成功提示、删除前的确认;●修改失败和成功提示、修改前/后的确认;●查找失败提示、查找成功的确认;●退出系统时,要提示是否退出;●其它方面的界面问题;1.2用户注册属性:必选描述:登录界面可以用户注册,注册信息包含用户名和密码,例如:●不能使用已经存在的用户名●密码不能少于6个字符1.3用户登录属性:必选描述:用户通过登录界面进行登录,必须输入正确的用户名和密码方可进入系统,例如:●提示输入用户名●提示输入密码●用户名和密码验证,都符合则进入系统,不然回到第一步,超过三次登录,则提示登录次数超过三次,退出系统1.4开始游戏属性:必选描述:金额大于1的用户可以开始游戏●下注:提示用户下注的金额数●猜拳:(必须先下注,如果用户下注金额小于等于0,不能进行游戏)与电脑进行猜拳游戏,如果猜输了,扣除你的金额(由下注决定),胜利将随机获得1~5倍的下注金额奖励n提示:电脑随机出拳,胜利奖励也是随机的,例如:n随机获得1~5数字代码:nsrand((unsigned)time(NULL));nint radio = rand() % 5 + 1;//radio 为随机 1~5的整数●如果金额少于下注数,将不能进行猜拳,給出充值提示1.5充值属性:必选描述:用户可以进行充值●充值金额●充值的时候,必须输入充值密码(由5个字符组成,随机包括数字0~9和所有小写字母)●如果充值密码正确,充值成功,不然充值失败1.6修改用户信息属性:必选描述:用户可以注销(删除)自己的账户、或者修改个人信息● 修改个人信息n修改用户密码● 注销用户(本人)n删除用户所有信息(删除完毕将返回登录界面,用户账号已经不存在)1.7查看用户信息属性:必选描述:用户登录成功后,可以选择查看用户自己信息或者所有用户信息● 查看用户自己信息:(本人)用户名密码金额胜率● 查看所有用户信息:所有用户名金额胜率1.8排序属性:必选描述:用户可以对所有用户信息进行排序操作,便于查看● 金额排序● 胜率排序对性能的规定本系统在设计方面本着方便、实用的宗旨,性能方面应遵循如下原则:●执行效率(时间):软件运行应该尽量高效;避免没有必要的循环处理、重复处理;●资源损耗(空间):设计尽量节约资源(内存、数组、链表等);不用的资源要及时释放;●初始化:变量、数组、内存块;●健壮性:不能出现野指针、内存泄露、数组越界访问等等:◎声明指针后,立即将指针设置为NULL,防止产生“野指针”;◎函数的入参必须进行有效性判断;用户输入、函数返回值(如果用到的话)都要判断;◎switch-case一定要有default;if-else if等后要有else,除非if满足后返回或退出;◎不允许出现goto语句;◎数组的下标不要溢出。
c课程设计猜拳游戏

c课程设计猜拳游戏一、教学目标本课程的目标是让学生掌握猜拳游戏的基本原理和编程技巧。
知识目标:让学生了解猜拳游戏的规则和逻辑,掌握Python编程语言的基本语法。
技能目标:培养学生运用Python编程语言实现猜拳游戏的能力,提高学生的编程实践能力。
情感态度价值观目标:培养学生对编程的兴趣,增强学生解决问题的自信心,培养学生团队合作的精神。
二、教学内容本课程的教学内容主要包括猜拳游戏的基本原理、Python编程语言的基本语法和猜拳游戏的编程实践。
具体包括以下几个部分:1.猜拳游戏的基本规则和逻辑;2.Python编程语言的基本语法;3.用Python编程语言实现猜拳游戏的步骤和方法;4.猜拳游戏的编程实践。
三、教学方法本课程采用讲授法、案例分析法和实验法等多种教学方法。
1.讲授法:通过讲解猜拳游戏的基本规则和逻辑、Python编程语言的基本语法,使学生掌握相关知识。
2.案例分析法:通过分析已有的猜拳游戏代码,使学生了解猜拳游戏的编程实践。
3.实验法:让学生动手编写猜拳游戏代码,提高学生的编程实践能力。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。
1.教材:主要包括《Python编程:从入门到实践》等书籍,用于引导学生学习Python编程语言的基本语法。
2.参考书:主要包括《猜拳游戏编程指南》等书籍,用于引导学生了解猜拳游戏的基本原理和编程技巧。
3.多媒体资料:包括教学视频、PPT等,用于辅助讲解和演示猜拳游戏的规则和逻辑、Python编程语言的基本语法。
4.实验设备:包括计算机、网络等,用于让学生进行猜拳游戏的编程实践。
五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分。
平时表现主要评估学生在课堂上的参与程度和表现,包括提问、回答问题、团队合作等,占总评的30%。
作业主要评估学生的编程实践能力,包括猜拳游戏的代码实现和优化,占总评的40%。
考试主要评估学生对猜拳游戏原理和Python编程语言的理解和应用能力,占总评的30%。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计说明书课程名称:高级语言程序设计设计题目:石头剪刀布游戏院部:计算机科学与信息工程学院学生:学号:专业班级:计算机科学与技术(信息技术方向)指导教师:2015年 6月课程设计任务书目录一前言 (1)二需求分析 (1)三概要设计 (1)四详细设计 (3)五改进或增加功能模块说明 (4)六程序测试 (4)七课程设计总结 (5)八致 (5)九参考文献 (5)十源程序 (6)五子棋游戏一前言猜拳游戏是由锤子、剪刀、布三部分组成。
玩家可以在游戏区逐次猜拳,系统会给出玩家每次猜拳后的提示,显示成功或者失败或者是平手。
二需求分析1 要求(1)用C语言实现程序设计;(2)定义各个函数分别完成不同功能,如背景设计,判断等;(3)画出查询模块的流程图;(4)系统的各个功能用函数调用的形式实现;(5)界面友好(良好的人机互交),程序要有注释。
2 任务(1)定义各类头文件,变量及宏定义;(2)图形模块,设计出棋盘背景界面;(3)设定玩家操作模块和胜负判断模块;(4)画出部分模块的流程图;(5)编写代码;(6)程序分析与调试。
3 运行环境(1)WINDOWS2000/XP系统(2)TurboC2.0编译环境4 开发工具C语言三概要设计1 模块组成图功能模块图2 查询函数流程图猜拳游戏从开始到结束的操作步骤的系统流程图函数流程图四详细设计在程序的开头部分定义要用到的头文件,以及各种常量,设定选手及游戏模式。
#include<stdio.h> /*标准输入/输出函数库*/#include<stdlib.h> / *标准函数库*/#include<string.h>#include<time.h>#include<windows.h>#inlcude<iostream>using namespace std;void SetColor(unsigned shortForeColor,unsigned short BackGroundColor){HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleTextAttribute(hCon,(ForeColor%16)|(BackgrundColor%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 PP{char name[10];int score;}P[1000];输入函数,即为选手每一次出拳,用1、2、3分别表示石头、剪刀、布,通过输入数字来确定要出的是哪一个,每出一次进行判断是否合理(如是否是三者中的一个)并通过调用函数记录比赛的结果,则通过变量记录下获胜的次数,如果比赛完了主函数void youxi(){int wan = 1;while(wan <= M){P[wan - 1].score = 0;system("CLS");SetColor(14,0);printf("\n\n\n\n\n\n\n\n\n\t\t\t 下面有请 ");SetColor(12,0);printf("玩家 %d",wan);SetColor(14,0);printf(" 准备比赛!");SetColor(12,0);printf("\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t\t【按任意键开始游戏】"); _sleep(2000);getchar();getchar();int a,i = 0;for(; i < N; i++){system("CLS");srand((unsigned)time(NULL));/*随机种子*/int n=rand()%(3-1+1)+1;/*n为1~3之间的随机数*/SetColor(13,0);printf("\n\n\n\n\t\t\t\t每 %d 回合为一轮\n",N);SetColor(14,0);printf("\n\n\t\t\t\t\t\t\t (第 %d 回合)",i+1);SetColor(15,0);printf("\n\n\n\n\n\t请输入你的要出的: ");SetColor(12,0);scanf("%d",&a);//getchar();system("CLS");printf("\n\n\n\n\n\n\n\n\n\n\t\t\t");SetColor(13,0);if(a==1){switch(n){case 1:printf("双方都是石头......平手\n");break;case 2:printf("您出的是石头,电脑出的是剪刀,......您赢了!\n"),P[wan-1].score++;break;default:printf("您出的是石头,电脑出的是布......电脑赢了\n");_sleep(1000);}}else if(a==2){switch(n){case 1:printf("您出的是剪刀,电脑出的是石头......电脑赢了\n");break;case 2:printf("双方出的都是剪刀......平手\n");break;default:printf("您出的是剪刀,电脑出的是布.....您赢了!\n"),P[wan-1].score++;_sleep(1000);}}else if(a==3){switch(n){case 1:printf("您出的是布,电脑出的是石头......您赢了!\n"),P[wan-1].score++;break;case 2:printf("您出的是布,电脑出的是剪刀......电脑赢了\n");break;default:printf("双方出的都是布......平手\n");_sleep(1000);}}else{printf("你输入的有误,请重新输入!");i--;}SetColor(13,0);printf("\n\n\t\t\t\t战斗仍未结束,同志还需努力!");printf("\n\n\n\n\n\n\n 【按t退出当前玩家】\t 【按T退出到主页面】\t【按其他任意键继续游戏】\n");getchar();char c;scanf("%c",&c);if(c == 't'){break;}if(c == 'T'){face();}}wan++;if(i >= N){P[wan-1].score = (P[wan-1].score/N)*100;}else{P[wan - 1].score = 0;}paixu();}system("CLS");SetColor(12,0);printf("\n\n\n\n\n\n\n\n\n\n\t\t\t\t所有的对局已结束!");printf("\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t\t\【按任意键返回主页面】\n");getchar();getchar();face();}五改进或增加功能模块说明在游戏运行过程中,没次比赛结束,此程序中都会产升新的对决界面,在屏幕上显示相对比较繁琐,因此这里用到了屏幕刷新函数system("cls");,为了让界面好看,添加了改变字体颜色的函数SetColor(7,0);代码如下。
system(“CLS”);SetColor(7,0);注意,调用此函数需要引用头文件#include<stdlib.h>/ *标准函数库*/ 六程序测试1测试游戏能否正确显示期盼界面执行程序后,显示本游戏的界面,进行模式选择图6-1模式选择界面2 测试游戏能否正确进行每一局的比赛(1)人机对战人机对战七课程设计总结本课程设计的实验是对我进入大学以来学习程序设计语言的一个检验。
自己动手自己发现和解决问题,学会了独立,自主的思考,发现了自己的许多不足。
平时没有掌握好的知识在这次试验中彻底暴漏出来,经过不断的思考,不断的查阅资料和上机运行,解决其部分问题,当然还存在一些问题灭有解决。
我相信在以后的学习能够解决好他们。
但是,收货还是不小的,我不仅对C的操作有了进一步的掌握,还了解到了程序设计的书写风格极其注释的格式。
当我编写小游戏“猜拳游戏”时,一开始运用了大量的函数及循环来完成,但是慢慢琢磨之后,觉得这个程序可以简化,于是改变了变成思路。
当然还有不少文件的读写问题,不过还是不断测试之后顺利解决了。
另外一点说的就是这个程序用了很多的选择循环,因此对于循环的控制要十分小心。
还有一点体会就是树上和老师教的容是有限的,我们需要不断地靠自己去学习,向他人请教,学会利用网络和掌握更多的只是,这样我们才能变出更好的C语言程序设计。
总体来说,这次C语言程序设计实验还是比较成功的,似然最终程序存在一些不足,但能去的这样的结果我还是比较高兴的八致经过两个多星期的努力,终于把本游戏程序改写出来,在这期间要感各同学对我帮助和支持,同时也非常感老师对我进行细心、耐心的指导,鼓励我对程序进行合理的改进,培养了我的创新意识和创新能力。
九参考文献[1] 福祥. C语言程序设计[M]. 大学,2008.1[2] 福祥,王萌.C语言程序设计习题解答与实验实训[M].:大学,2008.[3] 牛莉,远军等.计算机等级考试辅导教程[M].:中国铁道,2008.十源程序/*头文件 student.h*/#include<stdio.h> /*标准输入/输出函数库*/#include<stdlib.h>#include<string.h>#include<time.h>#include<windows.h>#include<algorithm>#include<iostream>using 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();void youxi();int N = 20,M;double maxx = 0;struct PP{char name[15];double score;} P[1000];void youxi(){int wan = 1;while(wan <= M){P[wan - 1].score = 0;system("CLS");SetColor(14,0);printf("\n\n\n\n\n\n\n\n\n\t\t\t 下面有请 ");SetColor(12,0);printf("玩家 %d",wan);SetColor(14,0);printf(" 准备比赛!");SetColor(12,0);printf("\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t\t【按任意键开始游戏】"); _sleep(2000);getchar();getchar();int a,i = 0;for(; i < N; i++){system("CLS");srand((unsigned)time(NULL));/*随机种子*/int n=rand()%(3-1+1)+1;/*n为1~3之间的随机数*/SetColor(13,0);printf("\n\n\n\n\t\t\t\t每 %d 回合为一轮\n",N);SetColor(14,0);printf("\n\n\t\t\t\t\t\t\t (第 %d 回合)",i+1);SetColor(15,0);printf("\n\n\n\n\n\t请输入你的要出的: ");SetColor(12,0);scanf("%d",&a);//getchar();system("CLS");printf("\n\n\n\n\n\n\n\n\n\n\t\t\t");SetColor(13,0);if(a==1){switch(n){case 1:printf("双方都是石头......平手\n");break;case 2:printf("您出的是石头,电脑出的是剪刀,......您赢了!\n"),P[wan-1].score++;break;default:printf("您出的是石头,电脑出的是布......电脑赢了\n");_sleep(1000);}}else if(a==2){switch(n){case 1:printf("您出的是剪刀,电脑出的是石头......电脑赢了\n");break;case 2:printf("双方出的都是剪刀......平手\n");break;default:printf("您出的是剪刀,电脑出的是布.....您赢了!\n"),P[wan-1].score++;_sleep(1000);}}else if(a==3){switch(n){case 1:printf("您出的是布,电脑出的是石头......您赢了!\n"),P[wan-1].score++;break;case 2:printf("您出的是布,电脑出的是剪刀......电脑赢了\n");break;default:printf("双方出的都是布......平手\n");_sleep(1000);}}else{printf("你输入的有误,请重新输入!");i--;}SetColor(13,0);printf("\n\n\t\t\t\t战斗仍未结束,同志还需努力!");printf("\n\n\n\n\n\n\n 【按t退出当前玩家】\t 【按T退出到主页面】\t【按其他任意键继续游戏】\n");getchar();char c;scanf("%c",&c);if(c == 't'){break;}if(c == 'T'){face();}}wan++;if(i >= N){P[wan-1].score = (P[wan-1].score/N)*100;}else{P[wan - 1].score = 0;}paixu();}system("CLS");SetColor(12,0);printf("\n\n\n\n\n\n\n\n\n\n\t\t\t\t所有的对局已结束!");printf("\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t\t\【按任意键返回主页面】\n");getchar();getchar();face();}void paixu(){for(int i = 0; i < M-1; i++){for(int j = 0; j < M - 1 - i; j++){if(P[j].score < P[j+1].score){struct PP t;t = P[j];P[j] = P[j+1];P[j+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(&P[i],sizeof(struct PP),1,fp)!= 1) printf("file write error\n");}elsefor(int i = 0;i < 5;i++){if(fwrite(&P[i],sizeof(struct PP),1,fp)!= 1) printf("file write error\n");}fclose(fp);}void paihangbang(){paixu();SetColor(10,0);printf("\n\n\t\t\t*********************************");printf("\n\t\t\t*\t\t\t\t*");printf("\n\t\t\t* ");SetColor(7,0);SetColor(12,0);printf(" 游戏排行榜 ");SetColor(7,0);SetColor(10,0);printf(" *");printf("\n\t\t\t*\t\t\t\t*");printf("\n\t\t\t*********************************");SetColor(7,0);SetColor(10,0);printf("\n\n\t\t-----------------------------------------------");SetColor(11,0);printf("\n\t\t| 1 %12s ******************%5.2lf%% |",P[0].name,P[0].score); SetColor(10,0);printf("\n\t\t| |");SetColor(12,0);printf("\n\t\t| 2 %12s ******************%5.2lf%% |",P[1].name,P[1].score); SetColor(10,0);printf("\n\t\t| |");SetColor(15,0);printf("\n\t\t| 3 %12s ******************%5.2lf%% |",P[2].name,P[2].score); SetColor(10,0);printf("\n\t\t| |");SetColor(14,0);printf("\n\t\t| 4 %12s ******************%5.2lf%% |",P[3].name,P[3].score); SetColor(10,0);printf("\n\t\t| |");SetColor(13,0);printf("\n\t\t| 5 %12s ******************%5.2lf%% |",P[4].name,P[4].score); SetColor(10,0);printf("\n\t\t-----------------------------------------------");SetColor(12,0);printf("\n\n\n\t\t\t\t\t\t\t\【按任意键返回】\n");getchar();getchar();face();}void tuichu(){for(int k = 0; k < 5; k++){for(int i = 0; i < 6; i++){system("CLS");SetColor(10,0);printf("\n\n\n\n\n\n\n\t\t\t感你本次的使用!");SetColor(11,0);printf("\n\n\n\n\n\t\t\t\t\欢迎你下次使用");SetColor(12,0);printf("\n\n\n\n\t\t\t请稍等,正在退出");for(int j = 0; j < i; j++){printf(".");}_sleep(100);printf(".");}}system("CLS");SetColor(12,0);printf("\n\n\n\n\n\n\n\n\n\t\t\t 再见!ヾ( ̄▽ ̄)Bye~Bye~、\n\n\n\n\n\n\n\n\n\n\n");SetColor(0,0);}void face(){paixu();system("CLS");int X;SetColor(10,0);printf("\n\n\t\t\t*********************************");printf("\n\t\t\t*\t\t\t\t*");printf("\n\t\t\t* ");SetColor(7,0);SetColor(12,0);printf("欢迎进入猜拳游戏!");SetColor(7,0);SetColor(10,0);printf(" *");printf("\n\t\t\t*\t\t\t\t*");printf("\n\t\t\t*********************************");SetColor(7,0);SetColor(10,0);printf("\n\n\t\t-----------------------------------------------"); SetColor(11,0);printf("\n\t\t| 开始********************************1 |"); SetColor(10,0);printf("\n\t\t| |"); SetColor(12,0);printf("\n\t\t| 设置********************************2 |"); SetColor(10,0);printf("\n\t\t| |"); SetColor(15,0);printf("\n\t\t| 说明********************************3 |"); SetColor(10,0);printf("\n\t\t| |"); SetColor(14,0);printf("\n\t\t| 排行榜******************************4 |"); SetColor(10,0);printf("\n\t\t| |"); SetColor(13,0);printf("\n\t\t| 退出********************************0 |"); SetColor(10,0);printf("\n\t\t-----------------------------------------------"); SetColor(9,0);printf("\n\n\t\t\t\t\t\t请出入你的选择 : ");SetColor(4,0);scanf("%d",&X);SetColor(7,0);if(X == 2){shezhi();}else if(X == 3){shuoming();}else if(X == 0){tuichu();}else if(X == 4){paihangbang();}else if(X == 1){youxi();}else{system("CLS");SetColor(12,0);printf("\n\n\n\n\n\n\n\n\n\t\t\t你的输入有误,请重新输入!\n\n\n\n\n\n\n\n\n\n\n");_sleep(1000);face();}}void shuoming(){system("CLS");SetColor(12,0);printf("\n\n\n\t\t\t\t猜拳游戏的说明");printf("\n\n\n\n\t猜拳游戏是由锤子、剪刀、布三部分组成。