猜数字游戏实验报告111
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
色西安欧亚学院
tUtfA'biiA * aUrlB
C语言课程设计报告
题目: 班级: 组名: 指导教师:日期: 猜数字游戏通信工程第三组
李梅2011/12/1
C语言课程设计报告 (1)
目录 (2)
1需求分析 (3)
1.1问题分析 (3)
1.2采用技术 (3)
1.3设计目标 (3)
2总体设计 (4)
2.1程序设计思路简介 (4)
2.2系统模块设计 (4)
3详细设计 (5)
3.1模块功能说明 (5)
3.2程序设计模块流程 (5)
3.3系统流程图 (6)
4测试结果 (7)
4.1游戏开始界面 (7)
4.2猜中结果 (8)
4.3 10内未猜中结果 (8)
4.4再次接着猜 (9)
4.5未猜中结束游戏 (9)
5程序清单 (10)
6感想 (12)
时间安排表 (13)
时间 (13)
内容 (13)
责任人 (13)
课程设计评定表 (14)
附录2 问题记录 (17)
1需求分析
1.1问题分析
在本次实验中,我们将尝试编写一个猜数游戏程序。
结合现有的我们学过的C
语言知识,我们可以编写一段程序,由计算机随机产生一个数字,由玩家输入数字,来实现猜数字游戏的过程。
1.2采用技术
按照实验要求,我们将使用C语言运用Turbo C来编写一个程序来实现这个猜数字的过程。
在程序中,我们将用到学过的while等C语言常用语句,调用rand()%100 产生随机数等各类函数来完成猜数字实验程序。
1.3设计目标
实现计算机产生随机正整数功能;实现对猜数字大小提示功能;实现提示所猜的次数;实现猜数字次数上限功能;实现对不同次数得到结果评定功能;实现再次开始游戏功能;
2总体设计
2.1程序设计思路简介
编程先由计算机“随机生成”一个1〜100之间的数请人猜,如果人猜对了,在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平,则结束游戏;否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,则停止本次猜数,然后继续猜下一个数。
每次运行程序可以反复猜多个数,直到操作者想停止时才结束。
2.2系统模块设计
本次程序主要分为三个模块进行设计。
分别为随机产生被猜数字模块,程序主体循环猜数字模块,最后输出模块。
3详细设计
3.1模块功能说明
模块1 :随机产生数字
该模块使用1+rand()%100函数产生最初的随机数字,并将其赋给point作为被猜数字。
模块2:
该模块为本程序主要部分,将以是否猜对为判断条件,是否大于10次为循环上限,使用while循环及if • else语句来完成猜数字的过程。
模块3:
该模块用于猜数字最终结果及成绩判定的输出。
3.2程序设计模块流程
输出猜数字结果
猜数字循环
随
机产生数字
3.3系统流程图
4测试结果4.1游戏开始界面
4.2猜中结果
* 'C:\Us ers\h p'; Desktop\Ce bu c:\S.exe'
4.3 10内未猜中结果
4.4再次接着猜
T D:\Pro gram F iles\Mi crossft Visual Stod io\MyProj ects\mmn\Deb<Lg\nn
I haue a nuniher between 1 and 100.
C AI R IL m卽nnnh#v?
Ploac® ty卫口II
Tmu luw.Ti'y
平
Too loy.lry
13
Too low.Try
10
T DD lou . T i*y ctyctlni ・
a^ain ・again.
Tuu
14
I DD
13 T DD 12 Too 11 Too 12 You
a«ja
Jirii.
asgalm
・
agaim ・
agiain
・
should te able to do hettep? Jfou liave guss 10 € lines In this game
Would you Ixke to pla%/ DI* nJ?
V
Please
T DQ lou^Try Too lou « T V*J/ your f irst guess.12 amain 卡
B'Qii-
azn 申
4.5未猜中结束游戏
D:\Prograrri] Files\Microsoft Visual Stu di o\M y P roje ct s\ rn rm n\D ebug\m m n. exe Fean 90u gfue^s my number? LPleac#
type U J1 Too 帆Too 13
T oo 14 Too
yoiii* f ii*c t gfuecc . low. Try
lou ■
Ti*#
I BU -Try
low. T^y
lou -Try
low - Tri/
again .
aga in.
agfain B
Crain B
a<(ain ■
again ■
low. Try aga in ■
You
Would 2/ou like to pla«/ a grain Cy or n》?審按
任意键纟蝮•…
should be able to do better!¥om haue quss 18 t innes In t his game
//by Iglpgtx
#in clude<stdio.h> #in clude<stdlib.h> #in clude<time.h>
main() /* 函数入口 */
{
int poin t, num=0,co un t=0;
char c;
prin tf("I have a nu mber betwee n 1 and 100.\n"); prin tf("Ca n you guess my nu mber?\n"); prin tf("Please type your first guess.\n");
/*输出提示你要猜一个 1到100之间的数*/ /*输出提示你能否猜出*/ /*输出提示你开始猜第一个数
*/
sran d(time(NULL)); poi nt=1+ra nd()%100;
while( nu m!=poi nt) {
/*循环的条件是猜的数和随机数不同
*/
count++;
/* 计数器加一 */
scanf("%d",&num); /* 猜入一个数 */
getchar();
if(cou nt>=10) {
prin tf("You should be able to do better!");
printf("You have guess %d times in this game\n",count);
prin tf("Would you like to play agai n(y or n )?\n");/* 提示是否再来一次 */
scanf("%c",&c); /* 输入 y or n*/
if(c=='y') {
coun t=0; num=0;
poi nt=1+ra nd()%100;
prin tf("Please type your first guess.\n"); }
else break;
5程序清单
/*声明变量:point 是产生的随机数,
num 是用户猜的数,并初始化为 0,
cou nt 是猜数的次数*/
/*以当前时间为种子,产生随机数
*/
/*产生一个1到100的随机数*/
}
else if(num<point) /* 猜低了显示信息*/
prin tf("Too low.Try aga in.\n");
else if(num>point) /* 猜高了显示信息*/
prin tf("Too high.Try aga in.\n ”);
else if(num==point) /* 猜对了显示信息*/
{
prin tf("Excelle nt! You guess the nu mber!\n");
if(count<10) /*10次以内猜对时显示信息*/
prin tf("Either you know the secret or you got lucky!\n");
else if(count=1O) /*第10次猜对时显示信息*/
prin tf("Ahah!You know the secret!\n");
printf("You have guess %d times in this game\n",count); /* 游戏结束提示猜的次数*/
printf("Would you like to play again(y or n)?\n");/* 提示是否再来一次*/
scanf("%c",&c); /* 输入y or n*/
if(c=='y'){ /*执行语句的条件是输入的为y*/
coun t=0;
num=0;
point=1+rand()%100; /* 产生一个 1 到100 的随机数*/
prin tf("Please type your first guess.\n"); /* 提示开始猜第一个数*/
}
}
}
system("pause");/*暂停程序,等待按回车键继续执行下一语句*/
6感想
经过一周的C语言课程设计,我不但掌握了课本的一些基本知识,还自己动手制作出了一个简单的猜数字游戏程序。
虽然在编程过程中经常会犯错,但是这次之后感觉对C语言却有了更深入的了解。
从一开始的没有头绪到最后按照老师的要求逐步完成程序,这中间虽然经历了许多困难,但是经过调试修改后让我掌握了更多正确的语法知识及解决方案。
在设计程序的同时也加强了自己的实践能力及自学能力,培养了自己分析问题、编程和动手能力。
这次实践是我在学习C语言道路上的一次难得的体验。
(余芳芳)通过C语言课程设计,使我对C语言有了更深入的理解,同时也增强了我独立思考与团队协作的能力,对我来说是一次难忘的经历。
在今后的C语言学习中,我会更加努力培养自己分析问题,解决问题的能力,让自身得到更大的锻炼。
(张亮)
在编写报告的过程中,虽然遇到了很多困难,但是经过查询资料
以及和组员的讨论,最终问题得到了圆满的解决。
在这其中让我学到了很多课本上没有的知识,也让我明白了,只有通过实践才能更好的锻炼自己,使自己在C语言的学习道路上取得更大的进步。
(孙玉婷)
时间安排表
课程设计评定表
附录1每周工作记录
附录2 问题记录。