文档库 最新最全的文档下载
当前位置:文档库 › 猜数字游戏docx

猜数字游戏docx

猜数字游戏docx
猜数字游戏docx

计算机基础I I

综合程序设计

题目:猜数字游戏

院系

专业:

学号:

姓名:

指导老师:

2013年4月10日

目录

摘要 (2)

第一章综合设计概述 (3)

1.1综合设计名称 (3)

1.2 任务要求 (3)

1.3开发环境 (3)

1.4应用平台 (4)

第二章总体设计 (4)

2.1 系统功能需求分析 (4)

2.2系统总体设计框架 (5)

2.3 系统功能模块图及各功能模块的目的与意义 (5)

第三章详细设计 (6)

3.1 系统各模块N-S流程图及功能特色简介 (6)

3.1.1 主函数main() (6)

3.1.2 调用函数computer(int m) (7)

3.2系统总体N-S流程图 (9)

第四章调试过程分析描述 (11)

4.1 调试过程 (11)

4.1.1 文件调试主界面 (11)

4.1.2 进行游戏猜数 (12)

4.2调试发现的问题与解决 (13)

第五章综合设计体会 (16)

附录-源程序代码 (16)

参考文献 (18)

摘要

猜数字游戏是一个运行在Windows平台下的小型游戏软件,依据猜数字游戏的基本规则,给用户提供一个游戏平台。以VC++作为软件开发环境,利用随机函数,通过数字比较,编程实现的。它的规则简单,但玩起来有一定的难度,是消磨时间和锻炼脑力的好选择。通过选择猜数字游戏这个题目,让我更深入的了解了编

程中的一些问题及以前不知道的程序。在分析阶段,要面向对象的需求分析,系统设计,画出相应的需求分析图,系统设计模型图,学会多角度思考问题。

第一章综合设计概述

1.1综合设计名称

猜数字游戏

本程序主要目的是在VC环境中实现由电脑随机产生一个数字不重复的四位数,并将所猜的数与它自动产生的数字进行比较,若猜的不对就作出相应提示:“*A*B”其中A前的*代表你本次猜对了多少个数字。B前的*代表你本次猜对的数字并且位置正确的个数。

1.2 任务要求

要求这个猜数字游戏有一定的容错功能,界面友好,功能齐全。

游戏规则:

(1)一个四位数,各位上的数字不重复,取值从1~9.

(2)按以下提示猜出这个四位数:

每次猜测输入的数据给出类似的提示*A*B。

其中A前的*代表你本次猜对了多少个数字。

其中B前的*代表你本次猜对的数字并且位置正确的个数

1.3开发环境

开发工具为Microsoft Visual C++ 6.0.

20世纪90年代以来,C语言迅速在全世界普及和推广。Microsoft Visual C++ 6.0作为此语言的编写平台已而受到广泛应用。Microsoft Visual C++

6.0功能丰富、使用灵活方便、应用面广、目标程序效率高、可移植性好、

既可以满足高级语言设计,又具有低级语言编写功能,因此是该程序设计的首选。

1.4应用平台

Windows XP32位。

Windows XP 32位是当今主流的电脑操作系统平台,虽然2009年windows7

已经开始流行,但是该系统仍然被编程人员所采用。其兼容性高,占用内存小,需求配置低,对Microsoft Visual C++ 6.0的兼容性好等特点,在许多领域仍然保持着良好的口碑。

第二章总体设计

2.1 系统功能需求分析

设计一个猜数字游戏程序,要求具有如下特性:

(1)游戏软件能随机产生一个四位数,但不显示。

(2)用户能输入一个各个位上的数字不重复的四位数。

(3)程序随机产生的数能与用户输入的数进行比较,且应具有一定的提示,如:

①本次你猜对了多少个数;

②本次你你猜对的数字并且位置正确的个数。

(4)本程序有一定的容错功能。

(5)此程序还应记录用户一共玩了多少次。

2.2系统总体设计框架

该处理系统包括三个模块和一个主函数。三个模块分别是由电脑产生一个正确的随机数,读取用户正确的四位数,电脑与用户数字的比较。其中电脑产生的随机数函数和主函数为整型,其它都无返回类型。主函数通过在不断使用三大模块来实现。该程序采用面向对象的思想来处理函数之间的调用。

电脑产生一个正确的随机数

用户输入一个四位数

比较电脑产生的数与用户输入的数

输出提示测试次数及*A*B

2.3

系统功能模块图及各功能模块的目的与意义

主 模

计算机自动产生一个四位数

人猜测一个四位数

两数进 行比较

给出提示*A*B 及猜测次数

第三章详细设计

3.1 系统各模块N-S流程图及功能特色简介

3.1.1 主函数main()

主函数主要通过switch()循环语句,实现菜单界面的操作控制,并且发挥了界面友好,模块化等特点,追求语句简洁,调用简单函数,通俗易懂。

主函数的N-S流程图如下:

定义computer(int m),

m,n,c,d,e=1234,i,j,k,x,y,a[4],b[4]

输出:电脑随机输入一个各个位上的数均不同的四位数

m

m=computer(e)

k=1

k<=N

输出:请你输入一个各个位上的数均不同的四位

数数n

输入:n

x=m;y=n;d=0;c=0

i=0,j=0

i<4,j<4

a[i]=x%10;

b[j]=y%10;

x=x/10;

y=y/10;

a[i]==b[j]

Y N

3.1.2 调用函数computer(int m)

srand 函数是随机数发生器的初始化函数。它需要提供一个种子,这个种子会对应一个随机数,如果使用相同的种子后面的rand()函数会出现一样的随机数。如: srand(1); 直接使用1来初始化种子。不过为了防止随机数每次重复常常使用系统时间来初始化,即使用 time 函数来获得系统时间,它的返回值为从 00:00:00 GMT, January 1, 1970 到现在所持续的秒数,然后将time_t 型数据转化为(unsigned)型再传给srand 函数,即: srand((unsigned) time(&t)); 还有一个经常用法,不需要定义time_t 型t 变量,即: srand((unsigned) time(NULL)); 直接传入一个空指针,因为你的程序中往往并不需要经过参数获得的t 数据。srand((int)getpid()); 使用程序的ID(getpid())来作为初始化种子,在同一个程序中这个种子是固定的.函数rand()是真正的随机数生成器,而srand()会设置供rand()使用的随机数种子。如果你在第一次调用rand()之前没有调用srand(),那么系统会为你自动调用srand()。而使用同种子相同的数调用 srand()

d++

i++,j++

j=0 j<4 i=0

i<4 a[i]==b[j]

Y

N

c++

输出:这是你猜的第%d 次

c==4&&d==4

Y N 输出:恭喜你,答 对了!%d A %d B 提示:%d A %d B " b r e a k

i ++

j ++ k ++

会导致相同的随机数序列被生成。

定义a,i,j,t,k,b[4]

定义s r a n d((i n t)t i m e(0))

k=0

a=r a n d()

t=a

i=0

i<4

b[i]=t%10

t=t/10

i++

i=0

i<3

j=i+1

j<4

b[i]==b[j]

Y N

k++

j++

i++

!((a > 1000 ) && (a< 10000)&&(k==0))

return(a)

3.2系统总体N-S流程图

定义computer(int m),m,n,c,d,e=1234,i,j,k,x,y,a[4],b[4]

输出:电脑随机输入一个各个位上的数均不同的四位数

m

m=computer(e)

k=1

k<=N

输出:请你输入一个各个位上的数均不同的四位

数数n

输入:n

x=m;y=n;d=0;c=0

i=0,j=0

i<4,j<4

a[i]=x%10;

b[j]=y%10;

x=x/10;

y=y/10;

a[i]==b[j]

Y N

d++

i++,j++

j=0

j<4

i=0

i<4

a[i]==b[j]

Y N

c++

输出:这是你猜的第%d次

c==4&&d==4

Y N

输出:恭喜你,答对了!%d A%d B 提

示:%d A%d B"

b r e a k

i++

j++

k++

定义a,i,j,t,k,b[4]

定义s r a n d((i n t)t i m e(0))

k=0

a=r a n d()

t=a

i=0

i<4

b[i]=t%10

t=t/10

i++

i=0

i<3

j=i+1

j<4

b[i]==b[j]

Y N

k++

j++

i++

!((a > 1000 ) && (a< 10000)&&(k==0))

return(a)

第四章调试过程分析描述4.1 调试过程

4.1.1 文件调试主界面

4.1.2 进行游戏猜数

4.2调试发现的问题与解决

让电脑自动生成一个各个位上的数均不同的四位数:错误源代码为:

此过程中的问题为:while ((a > 1000 ) && (a< 10000)&&(k==0))语句执行后出现的是当数未一个各个位上的数均不同的四位数时会继续执行循环及k未初始化。

应改为:while (!((a > 1000 ) && (a< 10000)&&(k==0)))且do-while中应将k初始化为0。

修改后正确的源代码应为:

int computer(int m)

{

int a,i,j,t,k,b[4];

srand((int)time(0));

do

{

k=0;//k在循环内初始化,清除上次循环产生的值

a=rand();

t=a;

for(i=0;i<4;i++)

{

b[i]=t%10;

t=t/10;

}

for(i=0;i<3;i++)

for(j=i+1;j<4;j++)

if(b[i]==b[j]) k++;

}

while (!((a > 1000 ) && (a< 10000)&&(k==0)));//应该是不满足条件时继续循环,所以用非"!"

return(a);

}

让游戏者有N次猜测机会:

错误源代码为:

for(k=1;k<=N;k++)

{

printf("请你输入一个各个位上的数均不同的四位数数n:\n");

scanf("%d",&n);

for(i=0,j=0;i<4,j<4;i++,j++)

{

a[i]=m%10;

b[j]=n%10;

m=m/10;

n=n/10;

if(a[i]==b[j]) d++;

}

for(j=0;j<4;j++)

for(i=0;i<4;i++)

if(a[i]==b[j]) c++;

printf("这是你猜的第%d次\n",k);

printf("提示:%dA%dB\n",c,d);

}

此过程中的问题为:

其中,每次循环后m,n的值都将改变,应将其初始化。

修改后的正确程序应为:

for(k=1;k<=N;k++)

{

printf("请你输入一个各个位上的数均不同的四位数数n:\n");

scanf("%d",&n);

x=m;

y=n;

d=0;

c=0;

for(i=0,j=0;i<4,j<4;i++,j++)

{

a[i]=x%10;

b[j]=y%10;

x=x/10;

y=y/10;

if(a[i]==b[j]) d++;

}

for(j=0;j<4;j++)

for(i=0;i<4;i++)

if(a[i]==b[j]) c++;

printf("这是你猜的第%d次\n",k);

printf("提示:%dA%dB\n",c,d);

}

第五章综合设计体会

总结与体会:本次我选择的课题设计为《猜数字游戏》,在程序设计过程中我只用到了一个主函数和一个调用函数int computer(int m),另外,我主要用到的结构为for循环。其中我遇到的最大问题为如何使电脑自动输入一个各个位上的数均不同的四位数,由于不知道产生这一过程的源代码,所以我上网查了一下此过程的基本源代码:#include

#include

int main()

{int a;

srand((int)time(0));

a=rand();}

由于不懂srand,rand,time等函数的意义,又查了些资料了解了一下它们的定义。虽然在此次程序设计中花费了一定的时间,但在次过程中我也学到了一些以前不知道的东西,如:目录的生产,表格的制作,课题报告文档的基本制作以及设计一个程序的思路与方法。

附录-源程序代码

此程序的源程序代码为:

#include

#include

#include

#define N 10

void main()

{

int computer(int m);

int m,n,c,d,e=1234,i,j,k,x,y,a[4],b[4];

char cons='N';

printf(" \n\n ~~~~~~~~~~~~~~~~~~~~~欢迎进入猜数字游戏~~~~~~~~~~~~~~~~~~~~\n\n\n");

printf(" 《说明》:\n 此游戏过程中输出提示*A*B\n 其中A

前的*代表你本次猜对了多少个数字\n B前的*代表你本次猜对的数字并且位置正确的个数\n 你有10次猜测机会\n\n\n");

printf(" 电脑随机输入一个各个位上的数均不同的四位数m:\n\n");//电脑自动输入一个数m=computer(e);

for(k=1;k<=N;k++)

{

printf(" 请你输入一个各个位上的数均不同的四位数数n:\n");

scanf("%d",&n);//游戏者输入一个数

x=m;

y=n;

d=0;

c=0;

for(i=0,j=0;i<4,j<4;i++,j++)

{

a[i]=x%10;

b[j]=y%10;

x=x/10;

y=y/10;

if(a[i]==b[j]) d++;//d为本次你你猜对的数字并且位置正确的个数

}

for(j=0;j<4;j++)

for(i=0;i<4;i++)

if(a[i]==b[j]) c++;//c为本次你猜对了多少个数

printf(" 这是你猜的第%d次\n\n",k);

if(c==4&&d==4)

{

printf(" ~~~~~~~~~恭喜你,答对了!~~~~~~~~~~~~\n\n %dA%dB",c,d);

break;

}

else

{

printf(" ~~~~~~~~~~~很遗憾,你还没有猜对,请继续努力~~~~~~~~~~~:\n 提示:*A*B 为:%dA%dB\n\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n",c,d);

printf("********是否继续游戏?是输入:Y;否输入:N*******\n");

getchar();

cons=getchar();

if(cons=='N')

{

printf("正确结果为:%d\n",m);

break;

}

}

}

}

int computer(int m)

{

int a,i,j,t,k,b[4];

srand((int)time(0));

do

{

k=0;//k在循环内初始化,清除上次循环产生的值

a=rand();

t=a;

for(i=0;i<4;i++)

{

b[i]=t%10;

t=t/10;

}

for(i=0;i<3;i++)

for(j=i+1;j<4;j++)

if(b[i]==b[j]) k++;

}

while (!((a > 1000 ) && (a< 10000)&&(k==0)));//应该是不满足条件时继续循环,所以用非"!",k==0表示输出的数各个位上的数不同

return(a);

}

参考文献

[1]谭浩强著.C程序设计(第四版).北京:清华大学出版社.2005

[2]刘光蓉汪靖陆登波主编. C程序设计实验与实践教程. 北京:清华大学出版

社.2011

猜数字小游戏JAVA程序报告

JAVA程序设计报告 ——猜数字小游戏 目录 一、猜数字小游戏简介 (4) 二、用户需求分析 (4) 三、问题描述 (4) 1.课程设计的任务 2.课程设计的要求 四、模块设计 (5) 1.课程设计的要求 2.功能模块设计 3.流程图 五、功能设计 (7) 1 . 随机数的产生模块 2 . 输入判断模块 3 . 记录猜测次数模块 4.计时模块 5.输入输出模块 6.成绩判断模块 六、异常处理 (9) 七、调试分析 (10) 八、不足之处 (11) 九、总结 (12) 十、程序附页 (13) 摘要 猜数字是一款非常经典的脑力游戏,游戏规则简单,是消磨时间、锻炼脑力的好选择。通过选择猜数字游戏这个题目,可以让我掌握Java中的包和类,并且可以灵活的使用my eclipse软件。同时更加深入的了解字符界面的编程过程。使我更熟练的掌握Java程序框架

的搭建和类的创建格式。在分析阶段,要进行面向对象的需求分析、系统设计、画出相应的需求分析图、系统设计模型图,这些工作更能锻炼我的逻辑思维,更能培养我思考的全面性。让我学会了多角度思考问题,对我以后的编程奠定了更好的基础。 一、猜数字小游戏简介 系统随机产生任意一个1—100的自然数,玩家输入数字,若输入的数 字比随机生成数小,系统将提示,数字太小请您重新输入;如果输入的数字 比随机生成数大,系统将提示,数字太大请您重新输入;若输入的字符不是 合法字符,系统将提示,您输入的数字不合法,请从新输入,游戏开始时, 系统自动记录您猜数字的时间和次数,结束后显示游戏共花费的次数和时间 及对游戏结果的评价。 二、用户需求分析 设计一个猜数字游戏程序,要求具体如下特性: a.输入任意一个数字。数字的要求是1—100的自然数即可。 b.系统对您输入的数字进行判断。 如果玩家输入的数字与计算机随机生成数相比较,输入的数字比随机生 成数小.系统将提示您,数字太小请您重新输入。 如果玩家输入的数字与计算机随机生成数相比较,如果输入的数字比随 机生成数大。系统将提示您,数字太大请您重新输入。 如果玩家输入的字符不是合法字符,系统将提示您,您输入的数字不合法,请从新输入。 c. 游戏开始时,系统自动记录您猜数字的时间,结束后显示游戏共花费 的时间。 d. 每猜测一次,系统会记录下来,游戏结束后,显示共猜测多少次。 e. 在游戏结束时,可以选择关闭游戏,或者再来一局 f. 游戏结束前可选择直接显示答案 三、问题描述 1.课程设计的任务: 根据所选题目,完成课程设计的分析、设计和编码,写出课程设计报告。 (1)掌握Java的语言规范,面向对象的核心概念和特性;

猜数字游戏的VB代码

猜数字游戏的VB代码 本猜数字游戏的方法及规则: 系统自动生成一个四位数(四个数字没有重复),玩者需要猜中这个数字。玩者在四个文本框内输入四个数字,按“ENTER”后,如果猜对,则文本框变绿,本轮结束,按“CLEAR”进入下一轮。如果不对,则会在下面显示“xAxB”,其中“xA”表示有四个数字中有多少个数字是数字和所在位置都猜对的,“xB”表示有多少个数字猜对但是所在位置不对。比如,答案是“1234”,玩者猜“5432”,则显示“1A2B”,因为“3”猜对且位置也对,“4”猜对但位置不对,“2”猜对但位置不对。如果玩者猜“1324”,则显示“2A2B”;如果玩者猜“4567”,则显示“0A1B”;如果玩者猜“4256”,则显示“1A1B”,原因自己推。(四位数也可能是零开头。)最多猜错十次,如十次没有猜对,则游戏失败,本轮结束,按“CLEAR”进入下一轮。按“QUIT”可查看答案,同时本轮结束。各控件在界面上的布局如下:

Option Explicit Private Sub Command1_Click() '此为“确认”按钮。 If Form1.ForeColor <> vbMagenta Then If Command2.Enabled = False Then Dim keydig(1 To 4) As Integer, ansdig(1 To 4) As Integer Dim n, m, cnt_A, cnt_B As Integer, isappliable As Boolean Static count, keynum As Integer 'command按钮事件执行终,必须使变量count仍然残留。 Do If count = 0 Then '“count”变量计算Command1_Click执行的次数,每执行一次增加1。 Randomize keynum = Int(Rnd * (9876 - 123 + 1)) + 123 '生成一个四位随机整数。 End If '3rd

猜数字游戏

2、猜数字游戏。游戏随机生成4个互不相同的1位数,接受用户输入,根据用户输入输出“mAnB”的结果。A表示数字和位置都正确,B表示数字正确,位置不正确。例如随机数为“1234”,用户输入为“1435”,显示“2A1B”。 #include #include #include #define N 4 #define NUM 8 void detect(char s[]) { int i,j,num; int a,b; char ch[N]; for(num=0;num='0'&&ch[i]<='9') { for(j=0;j

printf("You are right!\n"); break; } } if(num==NUM) printf("Sorry,the right answer is:%sd\n",s); } main() { int i,j; char s[N+1]; srand(time(0)); for(i=0;i

猜数字游戏代码C语言

猜数字游戏代码C语言 #include <stdio.h> #include <stdlib.h> #include <time.h> void fun() { static int gc,count,try_time; static int a[4],b[4],i,j,k=0,m=0,n=1,u,sumA=0,sumB=0,flag[10]={0}; srand(time(NULL)); count=4; try_time=10; for(i=0;i<count;i++) { int t; do { t=rand()%10; }while(i==0 && t==0);

if(flag[t]==0) { a[i]=t; flag[t]=1; } else i--; } printf("\n∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽\n"); printf("∽猜数游戏∽\n"); printf("∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽\n"); printf("∽1: 开始游戏∽\n"); printf("∽2: 查看上次成绩∽\n"); printf("∽3: 帮助信息∽\n");

printf("∽4: 系统设置∽\n"); printf("∽0: 退出游戏∽\n"); printf("∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽\n"); printf("请输入选择: "); scanf("%d",&n); if(n==0) { printf("\n\n感谢您的使用,游戏退出!\n"); exit(0); } if(n==2){ printf("\n\n上次的成绩为:%d\n",u); do { printf("输入0返回上级菜单:"); scanf("%d",&n); printf("输入错误!请重新输入!\n"); }while (n>0); {

C语言程序课程设计猜数字游戏

C语言程序设计课程设计 专业:自动化 班级: 姓名: 学号: 指导教师: 兰州交通大学自动化与电气工程学院 2015年07月21日

一.引言 1.1设计目的 复习和巩固C语言基础知识,进一步加深对C语言的理解和掌握。提高同学将课本上的理论知识和实际结合的能力,锻炼同学的分析解决实际问题的能力,提高同学团队合作的能力。使同学们善于观察和思考,善于合作,具备实践编程的基础素质,和实际问题分析的思考方式。 1.2设计要求 在设计时充分地分析和理解问题本身,综合考虑系统功能,怎样使系统结构清晰、合理、简单和易于调试。然后详细设计,确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系。最后认真完成课程设计说明书,并对设计方法,结果等进行总结。 充分地分析和理解问题本身,弄清要求做什么(What to do?)。在确定解决方案框架过程中(How to do?),综合考虑系统功能,考虑怎样使系统结构清晰、合理、简单和易于调试。最后确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系。 确定算法的主要流程,在此基础上进行代码设计(Coding),每个明确的功能模块程序一般不超过60行,否则要进一步划分。 上机前程序静态检查可有效提高调试效率,减少上机调试程序时的无谓错误。静态检查主要有两种途径:(1)用一组测试数据手工执行程序;(2)通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑。 二.基础题 2.1题目 用选择法对10个数进行排序。 有一个已排好序的数组。现输入一个数,要求按原来的规律插入到原数组中。 2.2解题思路 程序的主要功能是对数组元素用排序函数按从小到大的顺序进行排序。 先定义一个10个元素的一维数组a[10],然后从电脑输入10个数(也就是对数组赋值),然后使用一次fun()函数,对这10个数进行排序;然后再定义一个11个元素的一维数组b[11],同时再从电脑输入一个数同a[10]一起赋值给b[11],然后再使用fun()函数,重新排序的到最后的有顺序的一组数据。 2.3流程图 子函数流程图如图1所示:

猜数字游戏课程设计完整版

北京邮电大学世纪学院 实验、实习、课程设计报告撰写格式与要求 (试行) 一、实验报告格式要求 1、有实验教学手册,按手册要求填写,若无则采用统一实验报告封面。 2、报告一律用钢笔书写或打印,打印要求用A4纸;页边距要求如下:页边距上下各为厘米,左右边距各为厘米;行间距取固定值(设置值为20磅);字符间距为默认值(缩放100%,间距:标准)。 3、统一采用国家标准所规定的单位与符号,要求文字书写工整,不得潦草;作图规范,不得随手勾画。 4、实验报告中的实验原始记录,须经实验指导教师签字或登记。 二、实习报告、课程设计报告格式要求 1、采用统一的封面。 2、根据教学大纲的要求手写或打印,手写一律用钢笔书写,统一采用国家标准所规定的单位与符号,要求文字书写工整,不得潦草;作图规范,不得随手勾画。打印要求用A4纸;页边距要求如下:页边距上下各为厘米,左右边距各为厘米;行间距取固定值(设置值为20磅);字符间距为默认值(缩放100%,间距:标准)。

三、报告内容要求 1、实验报告内容包括:实验目的、实验原理、实验仪器设备、实验操作过程、原始数据、实验结果分析、实验心得等方面内容。 2、实习报告内容包括:实习题目、实习任务与要求、实习具体实施情况(附上图表、原始数据等)、实习个人总结等内容。 3、课程设计报告或说明书内容包括:课程设计任务与要求、总体方案、方案设计与分析、所需仪器设备与元器件、设计实现与调试、收获体会、参考资料等方面内容。 四、课内实践课报告撰写要求 1、大型作业类的按课程设计要求撰写; 2、带实习性质的按实习要求撰写; 3、其余的按实验要求撰写。 五、其它 由于存档的需要,所有报告必须双面打印,请教师做好把关工作。 北京邮电大学世纪学院

猜数字游戏程序设计

课程设计任务书 学生姓名:专业班级:自动化1004班 指导教师:工作单位:自动化学院 题目:猜数字游戏程序设计 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 1.猜数字游戏程序设计随机产生一个0至149的数字(不显示),输入猜测数字,程序提示和所猜数字大小,直至正确,猜数正确后显示猜数的次数,程序采用汇编语言在PC机上完成。 2.画出简要程序流程图,编写程序。 3.撰写课程设计说明书。内容包括:摘要、目录、正文、参考文献、附录(程序清单)。正文部分包括:设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。 时间安排: 2012年12月30日----- 12月31日查阅资料及方案设计 2013年01月01日----- 01月05日编程 2013年01月06 日----- 01月08日调试程序 2013年01月09 日----- 01月10日撰写课程设计报告 指导教师签名:20 年01 月11 日 系主任(或责任教师)签名:年月日

目录 摘要 (1) 1 汇编语言基础 (2) 1.1汇编语言简介 (2) 1.2汇编语言特点 (2) 2 设计原理分析 (3) 2.1随机数的产生 (3) 2.2子模块 (3) 2.3设计流程图 (4) 3 子程序分析 (5) 3.1RAN的主要算法 (5) 3.2INPUT的主要算法 (5) 3.3ENTER的主要算法 (6) 4源程序 (7) 4.1程序代码 (7) 4.2程序运行截图 (13) 心得体会 (15) 参考文献 (16)

设计一个“猜数字”的游戏

《猜数字小游戏》教学设计 深圳市宝安区文汇中学:刘高强 一、课前系统部分: (一)教材分析 《猜数字小游戏》这一节内容是2009年深圳市电化教育馆编著的中小学信息技术初中版九年级下册第二单元第五个知识点的内容。本节课的主要知识点是掌握程序的分支结构,VB中常用的选择语句有两个:if语句和select case语句。要想编写这样的程序,需要用到这两种选择语句。这为后面的较难的程序的编写打下基础。 (二)学情分析 本节课的教学对象是初三学生,通过前几节课的学习,学生已经基本熟悉了VB编程环境,基本掌握了设计程序界面的操作方法。对于初三的学生来说,正是想象力丰富、朝气蓬勃的年纪,必定对本节课的内容充满兴趣,只要教师把握得当,一定能激发学生的学习热情,达到最好的教学效果。 (三)教学目标设计 1、知识与技能: (1)了解选择结构中的if语句的用法。 (2)窗体、文本框控件、按钮控件及标签控件属性的理解 2、方法与过程 (1)利用设计一个猜数字的游戏使学生了解分支结构程序的编写方法。 (2)利用设计一个猜数字的游戏加深学生对控件属性的的理解。 3、情感态度与价值观 培养学生严谨、一丝不苟的学习习惯。并在同学间的交流合作中,培养互助协作的能力和独立解决问题的能力。同时,也可以培养和提高学生的创新意识。 4、教学重点与难点 教学重点:分支结构语句的理解 教学难点:分支结构语句的理解 (四)教学方法 任务驱动法、自然分材法、多媒体课件教学 二、教学过程: (一)操作样例,进入本节主题 [学生]操作猜数小游戏,思考程序的做法。 [教师]提出问题,让学生利VB来设计该小游戏 (二)设计程序界面 1、打开visualbasic程序。 2、修改窗体的form1的属性。 (1)修改form1的caption的属性为“猜数字游戏——设计者:你自己的名字” 注意:修改窗体form1的属性,一定是先要选中窗体。 如下图:

C语言程序课程设计猜数字游戏

C语言程序设计课程设计 : 自 动 化 级 : 名: 学号: 指导教师: 兰州交通大学自动化与电气工程学院 2015年07月21日

一.引言 设计目的 复习和巩固C语言基础知识,进一步加深对C语言的理解和掌握。提高同学将课本上的理论知识和实际结合的能力,锻炼同学的分析解决实际问题的能力,提高同学团队合作的能力。使同学们善于观察和思考,善于合作,具备实践编程的基础素质,和实际问题分析的思考方式。 设计要求 在设计时充分地分析和理解问题本身,综合考虑系统功能,怎样使系统结构清晰、合理、简单和易于调试。然后详细设计,确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系。最后认真完成课程设计说明书,并对设计方法,结果等进行总结。 充分地分析和理解问题本身,弄清要求做什么(What to do)。在确定解决方案框架过程中(How to do),综合考虑系统功能,考虑怎样使系统结构清晰、合理、简单和易于调试。最后确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系。 确定算法的主要流程,在此基础上进行代码设计(Coding),每个明确的功能模块程序一般不超过60行,否则要进一步划分。 上机前程序静态检查可有效提高调试效率,减少上机调试程序时的无谓错误。静态检查主要有两种途径:(1)用一组测试数据手工执行程序;(2)通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑。 二.基础题 题目 用选择法对10个数进行排序。 有一个已排好序的数组。现输入一个数,要求按原来的规律插入到原数组中。解题思路 程序的主要功能是对数组元素用排序函数按从小到大的顺序进行排序。 先定义一个10个元素的一维数组a[10],然后从电脑输入10个数(也就是对数组赋值),然后使用一次fun()函数,对这10个数进行排序;然后再定义一个11个元素的一维数组b[11],同时再从电脑输入一个数同a[10]一起赋值给b[11],然后再使用fun()函数,重新排序的到最后的有顺序的一组数据。 流程图 子函数流程图如图1所示:

猜数字小游戏算是一个比较经典的智力游戏

猜数字小游戏算是一个比较经典的智力游戏,当然这个游戏做起来比较简单,写这个程序的目的主要是为了说明如何编写一个游戏,这里有一个通用游戏编成模板,万变不离其踪,绝大多数游戏都逃脱不了这个格式: #include........ #define........ void main() {inta,b,c; a=1; b=2; c=3; //设置初始值 while(a!='q') //循环直到退出游戏标志出现 {printf("%d",c); //相当于重画屏 a=getch(); //相应输入设备 c=a*b; //相当于重新运算变量值算法 } } 牢记这个模板格式,以后你所要做的事就是用具体的游戏代码代替模板中的相应部分。祝你好运! #include 《conio.h》 #include 《stdio.h》 #include 《stdlib.h》 #include 《time.h》 #include 《math.h》 #define RED 4 #define GREEN 2 #define YELLOW 62 #define WHITE 63 main() { int a=0,b,i,j,k1,k,n,times=0,guess[4],answer[4];char Q; clrscr(); textcolor(RED); for(i=1;i《=21;i++) cprintf("\03");printf("\n"); /*做一个开头小图形*/ cprintf("\03"); textcolor(WHITE); cprintf(" GUESS NUMBER GAME "); textcolor(RED); cprintf("\03\r\n"); for(i=1;i《=21;i++) cprintf("\03");printf("\n"); textcolor(GREEN); cprintf("%10c\r\n",'\01'); textcolor(YELLOW); cprintf("Times "); textcolor(GREEN);

猜数字游戏C++代码

#include #include #include #include #include #include"windows.h" void main() {using namespace std; int a[4],b[4];int i,j;char chong='Y';int d; while(chong=='Y'||chong=='y'){//确保可以无数次游戏直到不选“Y”退出system("cls"); cout<<"猜数字游戏(输入-1中途退出)"<0;j--){//游戏只有10次机会 if(ca==4){ cout<<"恭喜你获胜了"<>a[i];//初始化输入四个数 if(a[i]==-1) exit(1); } while(a[0]<0||a[0]>9){ cout<<"第一个数输入有误,请重新输入"<

猜数小游戏

利用C++编写的猜数小游戏。可做课程设计。程序效果:

程序代码: #include #include #include class Game{ char name[20]; //储存游戏者的姓名 int total; //记录游戏者得的总分数 int level; //储存游戏者所选的数字范围 int rule; //储存游戏者所选的游戏规则 int num [6]; //记录游戏者输入的赌球数字 int cp_num[6]; //储存电脑所产生的随机数 int truematch[6]; //记录每个数字得的分数 int money; //存储游戏者钱数 int bet; //存储下注钱数 char range; //记录游戏规则 char Rank; //存储游戏难易等级 static int play; //记录游戏者当前所在的局数,即总共玩的局数static int score; //记录游戏者赢的局数 char choise; //储存游戏者输入的字符y或n public : //设置游戏提示信息 void _show( ) { system ("color 47"); printf ("\t\t\t---------------------------\n"); printf ("\t\t\t欢迎来到福彩中心! 祝您好运!\n");

printf ("\t\t\t---------------------------\n"); printf ("\n游戏说明:\n"); printf ("1.球号对的数目大于选定的等级的球数要求(2|4|6)为赢;\n"); printf ("2.赢了时,按照难度[e-2|h-4]*正确球数*押金计算赢的金币;\n"); printf ("3.输了时,按照难度[e-1|h-1]*等级球数[a-2|b-4|c-6]*押金计算输的金币.\n"); system ("pause"); } void gameboy1( )//初始化姓名和金币数 { system ("cls"); cout<<"请输入您的姓名【1到20个字符或字母】: "; cin.getline (name,20); //输入游戏者姓名 for (;;) { cout<<"输入您拥有的金币[>=100]:"; cin>>money; if (money>=100) break; } } void menu( ) { //储存所选的游戏规则 cout<<"a:当输入的6个数字中至少有2个匹配时游戏者赢!"<>range; if (range=='a'||range=='b'||range=='c') break; } //根据输入的数字来确定游戏规则 switch(range) { case 'a': rule=2;break; case 'b': rule=4;break; case 'c': rule=6; } } //选择游戏的难易程度 void _level( ) { //记录输入的字符

java猜数字游戏源代码

import java.awt.Color; import java.awt.Container; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.Box; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JTextField; class WindowButton extends JFrame implements ActionListener{ /** * */ private static final long serialVersionUID = 1L; int number; JTextField inputNumber; JLabel feedBack; JButton buttonGetNumber,buttonEnter; WindowButton(String s){ super("猜数字小游戏"); buttonGetNumber=new JButton("得到一个随机数"); feedBack=new JLabel("无反馈信息",JLabel.CENTER); feedBack.setBackground(Color.green); inputNumber=new JTextField("0",5); buttonEnter=new JButton("确定"); buttonEnter.addActionListener(this); buttonGetNumber.addActionListener(this); buttonGetNumber.addActionListener(this); Box boxH1=Box.createHorizontalBox(); boxH1.add(new JLabel("获取1-100之间的随机数:")); boxH1.add(buttonGetNumber); Box boxH2=Box.createHorizontalBox(); boxH2.add(new JLabel("输入您的猜测: ")); boxH2.add(inputNumber); Box boxH3=Box.createHorizontalBox(); boxH3.add(new JLabel("单击确定按钮: ")); boxH3.add(buttonEnter); Box boxH4=Box.createHorizontalBox();

猜数字游戏的分析与实现

课程设计名称:猜数字游戏的分析与实现 目录

一游戏说明 二总体设计 三程序代码 四运行结果 五附录文档 一游戏说明 1使用说明 (1)开始功能键选择 1:开始游戏 2:查看排行榜 3:查看帮助 4:清除排行榜 5 :等级设定 (2)系统将提交的数与它自动产生的数进行比较,输出结果“*A*B”形式。其中A代表数字正确相应位置也正确,B代表数字正确但位置不正确。如:1A3B表示游戏者有1个数字的位置正确且数值也正确,除此以外,游戏者还猜对了3个数字,但位置不对,即游戏者已经猜出4位数据,但有3个数据位置不对

2程序说明书 (1)程序的功能说明:猜数字游戏是一个运行在Windows平台下的小型游戏软件,依据猜数字游戏的基本规则,给用户进行成绩排行,并可以随着玩家的游戏记录进行更新。游戏用户可以选择开始游、排行榜查看、帮助等主要功能。当用户选择开始游戏时,系统会让用户逐次猜数字,用户每次猜数字后系统会给出本次猜数字的结果提示,如位置和数字都正确的数字个数、数字正确但位置不正确的数字个数。如果用户猜数字的次数超过10次,则提示用户游戏失败,如果在10次之内猜出4个数字和正确的顺序,则提示用户猜数字成功,并到排行榜中进行比较,如果排名在前一名,则计入排行榜中,以便其他用户查看。在排行榜查看功能中,用户可以查看当前的游戏排行,如有新的记录产生,则插入到排行榜中,并把排行榜中位次最末的记录挤出排行榜。在帮助模块,用户可以查看游戏规则,当熟悉规则后可以退出帮助模块。 (2)程序的设计说明:排行榜中存放玩家信息和成绩,排行榜对应record文件。如删除该文件,则调用系统后,会初始化排行榜,重新建立该文件,并设置初始的玩家姓名和游戏记录。 3 软件可以实现的基本功能 (1)游戏区:玩家可以在游戏区逐次猜数字,系统给出玩家每次猜数字后的提示,包括数值、位置均正确的数字个数和数值正确但位置不正确的数字个数。 (2)刷新排行榜:当玩家成功完成一轮猜数字游戏后,可通过和排行榜中相应记录的比较判断玩家是否可以进入排行榜,进入排行榜的资格游戏成绩在前五名的玩家。 (3)查看排行榜:玩家可以查看当前排行榜中的排名顺序,从而确定自己的游戏目标。排行榜的查看按一定顺序显示给用户,便于查看。 (4)清除排行榜:玩家可以选择清除排行榜功能,使得排行榜上的玩家姓名和玩家游戏记录从系统中清除,只留下系统默认的玩家名(player)和系统默认记录10次。 (5)帮助:玩家通过帮助功能了解游戏规则和排行榜设置规则。 4模块设计说明 (1).游戏区模块 该模块为玩家提供猜数字游戏的主体功能,由系统自动产生4个随机排列的整数,并给用户10次机会猜测数字的数值和排列顺序。如果用户在10次之内没有猜出正确的结果,则提示用户游戏失败,否则提示用户猜数字成功,并调用产生新记录模块对玩家游戏成绩进行处理。流程图如下:

猜数字游戏课程设计报告

XXXX学校 《C程序设计》 课程设计报告 设计题目:猜数字游戏 附录完整源代码 专业: 班级: 学生: 学号: 指导教师: 起止时间: xxx.x.x -xxx.x.x xxxx-xxxx年 xx 学期

目录 1 、程序设计描述 1.1 程序设计目的: 1.2 程序设计要求: 1.3、猜数字游戏的简介: 2 、程序设计内容: 2.1、游戏主要框架图: 2.2、开始游戏框架: 2.3、最佳排行框架: 2.4、游戏操作说明模块: 2.5、退出游戏系统: 2.6、游戏系统总流程图: 3、猜数字游戏源代码: 3.1、void main()函数函数功能: 3.2、void game();//双人游戏 void pgame();//单人游戏 3.4、排行榜模块函数功能: 3.5、继续游戏模块函数功能: 3.6、操作说明模块函数功能: 4、调试与测试: 4.1、调试方法 4.2、测试结果的分析与讨论 4.3、测试过程中遇到的主要问题及采取的解决措施 5、程序具体说明书: 6、程序设计心得: 7、参考文献

1 、程序设计描述 1.1 程序设计目的: 综合使用所学过的C语言程序设计知识,掌握结构化程序设计的基本思路和方法,利用所学的基本知识和技能,发挥自学能力和查找资料的能力,解决稍微复杂的结构化程序设计问题,加深对所学知识的理解与掌握,增强学生利用自己所学知识解决实际问题的能力,为以后的程序开发打下基础。 1.2 程序设计要求: 1、巩固和加强《C语言程序设计》课程的理论知识。 2、掌握C语言的基本概念、语法、语义和数据类型的使用特点。 3、掌握C语言程序设计的方法及编程技巧,能正确使用C语言编写程序。 4、进一步理解和运用结构化程设计的思想和方法;学会利用流程图。 5、掌握调试程序的基本方法及上机操作方法。 6、掌握书写程设计开发文档的能力,学会撰写课程设计总结报告。课程设计的思想和方法还可以作为做毕业论文时的参考资料。 7、通过查阅手册和文献资料,培养独立分析问题和解决问题的能力。为做毕业设计打好基础。 8、培养自己的创新能力和创新思维。可以根据指导书和相关文献上的参考算法,自己设计出相应的应用程序。 9、培养自己良好的程序设计风格。在实际编程中,为了提高编程质量,对空行、空格和注释均有要求。在课程设计书写代码时,应该严格按要求处理,以便建立良好的程序设计风格。 1.3、猜数字游戏的简介: 猜数字游戏(又称 Bulls and Cows )是一种大概于20世纪中期兴起于的益智类小游戏。一般由两个人玩,也可以由一个人和电脑玩,在纸上、在网上都可以玩。这种游戏规则简单,但可以考验人的严谨和耐心。 2 、程序设计内容: 2.1、游戏主要框架图: 该模块为玩家提供猜数字游戏的主体功能,即开始游戏、继续游戏、最佳排行、操作说明、退出游戏。给用户一个清晰明了的操作界面!流程图如下:

猜数字游戏课程设计报告

学校 《C程序设计》 课程设计报告 设计题目:猜数字游戏 附录完整源代码 专业: 班级: 学生: 学号: 指导教师: 起止时间: xxx.x.x -xxx.x.x xxxx-xxxx年 xx 学期

录 1 、程序设计描述 1.1 程序设计目的: 1.2 程序设计要求: 1.3、猜数字游戏的简介: 2 、程序设计内容: 2.1、游戏主要框架图: 2.2、开始游戏框架: 2.3、最佳排行框架: 2.4、游戏操作说明模块: 2.5、退出游戏系统: 2.6、游戏系统总流程图: 3、猜数字游戏源代码: 3.1、void main()函数函数功能: 3.2、void game();//双人游戏 void pgame();//单人游戏 3.4、排行榜模块函数功能: 3.5、继续游戏模块函数功能: 3.6、操作说明模块函数功能: 4、调试与测试: 4.1、调试方法 4.2、测试结果的分析与讨论 4.3、测试过程中遇到的主要问题及采取的解决措施 5、程序具体说明书: 6、程序设计心得: 7、参考文献

、程序设计描述 1.1 程序设计目的: 综合使用所学过的C语言程序设计知识,掌握结构化程序设计的基本思路和方法,利用所学的基本知识和技能,发挥自学能力和查找资料的能力,解决稍微复杂的结构化程序设计问题,加深对所学知识的理解与掌握,增强学生利用自己所学知识解决实际问题的能力,为以后的程序开发打下基础。 1.2 程序设计要求: 1、巩固和加强《C语言程序设计》课程的理论知识。 2、掌握C语言的基本概念、语法、语义和数据类型的使用特点。 3、掌握C语言程序设计的方法及编程技巧,能正确使用C语言编写程序。 4、进一步理解和运用结构化程设计的思想和方法;学会利用流程图。 5、掌握调试程序的基本方法及上机操作方法。 6、掌握书写程设计开发文档的能力,学会撰写课程设计总结报告。课程设计的思想和方法还可以作为做毕业论文时的参考资料。 7、通过查阅手册和文献资料,培养独立分析问题和解决问题的能力。为做毕业设计打好基础。 8、培养自己的创新能力和创新思维。可以根据指导书和相关文献上的参考算法,自己设计出相应的应用程序。 9、培养自己良好的程序设计风格。在实际编程中,为了提高编程质量,对空行、空格和注释均有要求。在课程设计书写代码时,应该严格按要求处理,以便建立良好的程序设计风格。 1.3、猜数字游戏的简介: 猜数字游戏(又称 Bulls and Cows )是一种大概于20世纪中期兴起于英国的益智类小游戏。一般由两个人玩,也可以由一个人和电脑玩,在纸上、在网上都可以玩。这种游戏规则简单,但可以考验人的严谨和耐心。 2 、程序设计内容: 2.1、游戏主要框架图: 该模块为玩家提供猜数字游戏的主体功能,即开始游戏、继续游戏、最佳排行、操作说明、退出游戏。给用户一个清晰明了的操作界面!流程图如下:

C语言 猜数游戏 程序 课程设计

■课题:猜数游戏 ■要求:计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜到。 界面要求:图形方式界面(使用C语言绘制界面)■软件环境:C-Free / VC++ 下面是整个完成之后的程序,我将分部做介绍: ①:首先是主程序,我调用了stdio.h,stdlib.h,time.h这三个程序来为下面的编程服务; #include #include #include void main() ②:定义一些最基本的变量,以及调用色彩,使界面变得更为丰富多样化。 { ③:将文件保存于上述的文件夹中,从中我学会了保存文件。 freopen("in.txt","r",stdin); system("color 9f"); int i,g,l,j=1; long t;

char y; while(1) { srand((unsigned)time(NULL)); t=time(NULL); ④:在完成这些最基本的工作后,接下来就是绘制界面的过程了。由于所学的只是有限,所以只能使用一些最基本的符号来绘制这个相对来说比较简单的界面了。 printf("\n"); printf(" |-----------------------------------|\n"); printf(" | ★☆欢迎进入猜数字游戏☆★|\n"); printf(" |-----------------------------------|\n"); printf(" |------ 有时间规定的-----|\n"); printf(" | 要努力加油哦|\n"); printf(" |-----------------------------------|\n"); printf(" | |\n"); printf(" |-----------------------------------|\n"); printf(" |-----------------------------------|\n"); printf("\n"); printf(" 这是一个猜数字游戏,由电脑随即产生一个数字.\n");

猜数字游戏C语言代码

#include #include #include void fun() { static int gc,count,try_time; static int a[4],b[4],i,j,k=0,m=0,n=1,u,sumA=0,sumB=0,flag[10]={0}; srand(time(NULL)); count=4; try_time=10; for(i=0;i

flag[t]=1; } else i--; SSSSS \n"); prin tf(" s 猜 数 游 戏 s \n"); printf(" ssssssssssssssssssssssss ssss \n" printf(" s 1: 开 始 游 戏 s \n"); printf(" s 2: 查 看 上次 成 绩 s \n"); printf(" s 3: 帮 助 信 息 s \n"); printf(" s 4: 系 统 设 置 s \n"); printf(" s 0: 退 出 游 戏 s \n"); ssss \n" printf("\n sssssssssssssssssssssss printf(" ssssssssssssssssssssssss

printf(" 请输入选择: "); scanf("%d",&n); if(n==0) { printf("\n\n 感谢您的使用,游戏退出!\n"); exit(0); } if(n==2){ printf("\n\n 上次的成绩为:%d\n",u); do { printf(" 输入0 返回上级菜单:"); scanf("%d",&n); printf(" 输入错误!请重新输入!\n"); }while (n>0); { system("CLS"); fun(); } } if(n==3)

相关文档