实验报告———猜数字游戏
一、实验内容:
实验名称:猜数字游戏
实验目的:猜数:用户从键盘输入4位不重复的数,来匹配计算机给出的4位随机数,若数字和位数均等同,表示用户赢了。每猜一次,计算机均给出提示信息(x,y),x表示数字、位置都匹配的个数,y表示数字匹配但位置不匹配的个数。 实验要求:
(1) 设计友好的中文交互界面。
(2) 按H键,可以得到更详细的帮助信息,如:第1位数字正确,第2,
3位数字位置不对等。
(3) 按K键后,可以查看计算机所给的4位数,但查看前需要输入密码,
密码自定。
(4) 猜的结果以分值的形式给出,每猜错1次扣100分,若猜对1个数,
奖励20分。
(5) 每次游戏结束后将分值存盘,文件名自定。
二、算法说明:
S1:计算机随机数通过宏定义来实现(本次设计为20xx)
S2:开始主函数,设计一个简单的中文界面
S3:定义stime,a,z,t,i,c,m,g,s,j,k等整型变量,其中k表示数字、位置都匹配
的个数,j表示数字匹配但位置不匹配的个数。
S4:将用scanf函数出入的四位数与计算机随机数比较
S5:用print函数输出比较结果,每次比较都有提示,并记录次数
S6:当完全猜中数字时,用户获得胜利,游戏结束
三、程序清单;
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#define COUNT 20xx /*宏定义一个计算机内定数,可由编程者修改*/
void main()
{
int stime,a,z,t,i,c,m,g,s,j,k,l[4]; /*j:数字正确的位数 k:位置正确的位数*/ long ltime;
ltime=time(NULL); /*l:数字相同时,人所猜中数字的正确位置*/ stime=(unsigned int)ltime/2;
srand(stime);
z=COUNT; /*计算机内定数*/
printf(" 欢迎进入猜数字游戏\n");
printf(" 游戏帮助\n");
printf("用户从键盘输入一个4位数,来匹配计算机内定的4位随机数,若数字和位数均等同,表示用户赢了。\n");
printf("每猜一次,计算机均给出提示信息(k,j),k表示数字、位置都匹配的个数,j表示数字匹配但位置不匹配的个数。\n");
for(c=1;;c++) /*c: 猜数次数计数器*/
{
printf("请输入你猜的数字:");
scanf("%d",&g); /*请人猜*/
a=z;j=0;k=0;l[0]=l[1]=l[2]=l[3]=0;
for(i=1;i<5;i++) /*i:原数中的第i位数。个位为第一位,千位为第4位*/
{
s=g;m=1;
for(t=1;t<5;t++) /*人所猜想的数*/
{
if(a%10==s%10) /*若第i位与人猜的第t位相同*/
{
if(m&&t!=l[0]&&t!=l[1]&&t!=l[2]&&t!=l[3])
{
j++;m=0;l[j-1]=t; /*若该位置上的数字尚未与其它数字“相同”*/
} /*记录相同数字时,该数字在所猜
数字中的位置*/
if(i==t) k++; /*若位置也相同,则计数器k加1*/
}
s/=10;
}
a/=10;
}
printf("提示信息(%d,%d)\n",k,j);
printf("你猜对了%d个数字!\n",j);
printf("其中位置也正确的有 %d 个.\n",k);
if(k==4) break; /*若位置全部正确,则人猜对了,退出*/
else printf("请继续努力!\n");
}
printf("经过 %d 次努力,你已经猜中了全部的数字,恭喜你.\n",c);
}
四、运行结果:
原始界面:
欢迎进入猜数字游戏
游戏帮助
用户从键盘输入一个4位数,来匹配计算机内定的4位随机数,若数字和位数均等同,表示用户赢了。
每猜一次,计算机均给出提示信息(k,j),k表示数字、位置都匹配的个数,j表示数字匹配但位置不匹配的个数。
请输入你猜的数字:
例: a)输入 2776
输出
提示信息(1,1)
对了1个数字!
位置也正确的有1个
请继续努力!
b)再次输入2805
输出:
提示信息(2,3)
对了3个数字!
位置也正确的有2个
请继续努力!
c)再次输入20xx
输出:
提示信息(4,4)
对了4个数字!
位置也正确的有4个
经过3 次努力,你已经猜中了全部的数字,恭喜你
d)按任意键安全退出
五、分析与思考:由于水平有限,这个程序我做得比较简单,例如随机取数用宏定义实现,帮助是直接显现在菜单的,提示也会在每一次猜数后自动给出,记录了次数但没有记入分数。。。但我还是实现了一些基本功能,如数的随机和结果的提示,希望再接再厉,下次做的更好。
学号:__________ 姓名:__________ 班级:__________日期:__________
指导教师:__________ 成绩:__________
实验一 上机操作初步和简单的C程序设计
一、 实验目的
1、熟悉C语言运行环境Turbo C++3.0
2、会简单的程序调试
3、熟悉C语言各种类型数据的输入输出函数的使用方法
4、掌握顺序结构程序设计
二、 实验内容
1、 上机运行本章3个例题,熟悉所用系统的上机方法与步骤。(习题1.7)
2、 编写一个C程序,输入a、b、c 3个值,输出其中最大者。(习题1.6)
3、 设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。注意:在Trubo C++ 3.0中不能输入汉字,只能输入英文或拼音。(习题4.8)
4、 运行如下程序,写出运行结果。fanwen.glzy8.comwww.glzy8.com整理该文章,版权归原作者、原出处所有...
#include
void main()
{
int a=1,b=2;
a=a+b; b=a-b; a=a-b;
printf("%d,%d\n",a,b);
}
三、 实验步骤与过程
四、程序调试记录
课程名称结构化程序设计与C语言开课实验室年月日一实验目的用C语言编写和调试函数的程序从而对函数的定义调用全局变量的灵活运用有比较深…
北京联合大学信息学院程序设计基础课程调研研究报告题目函数姓名学号专业计算机科学与技术编制时间20xx63版本指导教师北京联合大学信…
C语言程序设计实验题目实验七函数实验目的实验报告1掌握函数定义的方法2掌握函数实参与形参的对应关系以及值传递的方式3掌握函数的嵌套…
C语言实验报告四一实验目的1掌握C语言中函数和模块2掌握怎样定义函数如何调用或使用函数如何声明函数3掌握函数的参数了解在函数调用时…
C语言程序设计实验报告实验名称函数1实验目的1掌握函数的定义方法调用方法参数说明以及返回值2掌握实参与形参的对应关系以及参数之间的…
一、供应商路线的选择(50000)(140000)(100000)(60000)(50000)所选路线:C1W2=2;C2W2=1…
面对挑战积极乐观——20xx年秋季三年级写字学科时光流逝,转眼间一个学期过去了,我校在学校领导的亲切关怀和教导处的正确领导下,加上…
20xx上半年年中观社区网格站工作总结转眼间20xx年已经过去半年,在这半年的工作中我们严格遵守各项网格管理规则制度,按规定每天在…
在县委、县政府的领导下,认真落实行政主要负责人为第一责任人,分管领导为直接责任人的责任制度。采取各种有效措施,切实加强对商贸流通企…
7月份工作总结报告(18日—23日)这周是我出差回来上班的第一周,主要负责跟踪水泥磨、熟料储存库等的施工与安装。在各单位、各部门的…