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

猜数字游戏 c语言课程设计一、课程目标知识目标:1. 学生能理解并掌握C语言中随机数生成的原理和方法。
2. 学生能运用分支结构、循环结构等基本控制结构,编写出猜数字游戏的程序。
3. 学生掌握使用函数对程序进行模块化设计的方法。
技能目标:1. 学生能够运用所学知识,独立设计并实现一个简单的猜数字游戏。
2. 学生通过编程实践,提高问题分析、程序设计及调试的能力。
3. 学生能够在编程过程中,培养良好的编程习惯,如规范命名、添加注释等。
情感态度价值观目标:1. 学生在课程学习中,培养对编程的兴趣,激发学习C语言的积极性。
2. 学生通过合作交流,培养团队协作能力和沟通能力。
3. 学生在解决实际问题的过程中,体会编程带来的成就感,增强自信心。
分析课程性质、学生特点和教学要求,本课程目标旨在让学生通过学习猜数字游戏的设计与实现,掌握C语言的基本知识,提高编程实践能力。
课程将目标分解为具体的学习成果,使学生在完成课程后,能够独立编写简单的猜数字游戏,并具备一定的程序调试能力。
同时,通过课程学习,培养学生良好的编程习惯和团队合作精神。
二、教学内容1. C语言基础知识回顾:变量定义、数据类型、运算符和表达式。
2. 随机数生成:rand()函数、srand()函数、time()函数的使用方法及其在猜数字游戏中的应用。
3. 控制结构:分支结构(if-else)、循环结构(for、while)在猜数字游戏中的运用。
4. 函数定义与调用:模块化设计思想,实现猜数字游戏的各个功能模块。
5. 程序调试与优化:学习使用调试工具,分析程序运行过程中的问题,提高程序性能。
教学内容安排和进度:第一课时:回顾C语言基础知识,介绍随机数生成方法。
第二课时:讲解分支结构和循环结构在猜数字游戏中的应用。
第三课时:学习函数定义与调用,实现猜数字游戏的模块化设计。
第四课时:程序调试与优化,讲解编程技巧和良好编程习惯。
教材章节关联:1. C语言基础知识:参照教材第一章。
【C语言程序设计】—最近超火的小游戏—【数字炸弹】!

【C语⾔程序设计】—最近超⽕的⼩游戏—【数字炸弹】!✍准备⼯作和建议⼀、程序的原理在动⼿编程之前,得先跟⼤家说⼀下这个程序是⼲什么的。
我们可以称呼这个游戏为《数字炸弹》。
游戏的原理是这样:每⼀轮电脑从 1 到 100 中随机抽⼀个整数。
电脑请求你猜这个数字,因此你要输⼊⼀个 1 到 100 之间的整数。
电脑将你输⼊的数和它抽取的数进⾏⽐较,并告知你的数⽐它的数⼤了还是⼩了。
然后它会再次让你输⼊数字,并告诉你⽐较的结果。
⼀直到你猜到这个数为⽌,⼀轮结束。
游戏的⽬的,当然就是⽤最少的次数猜到这个“神秘”数字。
虽然没有绚丽的图形界⾯,但是或多或少,这都是你的第⼀个游戏了,应该值得骄傲。
下⾯演⽰了⼀轮的样式,你要编程来实现它:这个数字是什么?50猜⼩了!这个数字是什么?75猜⼩了!这个数字是什么?85猜⼤了!这个数字是什么?80猜⼤了!这个数字是什么?78猜⼩了!这个数字是什么?79太棒了,你猜到了这个神秘数字!!⼆、随机抽取⼀个数但⼤家要问了:“如何随机地抽取⼀个数呢?不知道怎么办啊,⾂妾做不到啊。
”诚然,我们还没学习如何来产⽣⼀个随机数。
让亲爱的电脑兄来做这个是不简单的:它很会做运算,但是要它随机选择⼀个数,它还不知道怎么做呢。
事实上,为了“尝试”得到⼀个随机数,我们不得不让电脑来做⼀些复杂的运算。
好吧,归根结底还是做运算。
我们有两个解决⽅案:✎请⽤户通过 scanf 函数输⼊这个神秘数字,那么就需要两个玩家咯。
⼀个选数字,⼀个猜数字。
✎孤注⼀掷地让电脑来为我们⾃动产⽣⼀个随机数。
好处是:只需要⼀个玩家,可以⾃娱⾃乐。
缺点是:需要学习该怎么做...我们来学习⽤第⼆种⽅案编写这个游戏,当然你也可以之后⾃⼰编写第⼀种⽅案的代码。
为了⽣成⼀个随机数,我们要⽤到 rand() 函数(rand 是英语 random 的缩写,表⽰“随机的”)。
顾名思义,这个函数能为我们⽣成随机数。
但是我们还想要这个随机数是在 1 到 100 的整数范围内(如果没有限定范围,那会很复杂)。
猜数字游戏C语言

printf(The four numbers:%d,%d,%d,%dn,aid[0],aid[1],aid[2],aid[3]); getch(); return(loser); } }
times++; }
printf(Sorry!You have lost all the chances!nPress ch(); }
times=1; while(times<=MAXTIMES) /*程序主体部分*/ { key=0; key2=0; printf(NO.%d:ntPlease input 4 different int numbers to play!nt,times); scanf(%d,%d,%d,%d,&num[0],&num[1],&num[2],&num[3]);
Initialize:now=time(0); srand(now); aid[0]=(rand()+90)%10;/*生成目标数组*/ delay(20); aid[1]=(rand()+90)%10; delay(20); aid[2]=(rand()+90)%10; delay(20); aid[3]=(rand()+90)%10; for(i=0;i<4;i++) /*判断是否产生相同的数字*/ {for(j=0;j<4;j++) {if((i!=j)&&(aid[i]==aid[j])) goto Initialize; } } printf(nnn);
C语言课程设计猜数字游戏

C语言课程设计猜数字游戏课程设计报告课程名称:C语言程序设计课题名称:猜数字游戏专业:自动化班级:1095班学号:xxxxxxxx6333姓名:XXXXXXXX指导教师:XXXXXXXX日期:2016年6月28日一、问题描述:本游戏可以由程序随机产生或由用户输入四个到九之间不重复的数字。
玩家通过游戏提示输入八次来匹配上面所输入的数字。
其中,A表示位置和数字都正确,B表示数字正确但位置不正确。
二、功能要求:1.游戏显示以下菜单:1)随机产生数据2)用户输入数据3)退出游戏2.游戏成功或失败后都能返回主菜单。
三、算法提示:1.数据结构:数组2.使用简单的程序设计方法。
四、测试数据:测试数据:3792第一次输入:12340A2B第二次输入:56780A1B第三次输入:08670A1B第四次输入:97861A1B第五次输入:17942A0B第六次输入:27932A2B第七次输入:37924A0B游戏成功!五、其他:对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其他功能,如破记录功能,若匹配次数小于纪录保持者,则为破纪录。
目录第一章绪论1.1 项目背景第三条模块调用这一章节将会介绍第三条模块的调用方式,以及如何在程序中正确使用它。
在使用第三条模块之前,我们需要先进行一些准备工作,包括配置环境变量和安装必要的依赖库。
在调用第三条模块时,我们需要注意一些细节问题,比如参数的传递方式和返回值的处理方法。
通过本章的研究,相信大家可以更加熟练地使用第三条模块,提高程序的开发效率。
第四章分析本章节将会对程序进行分析,包括对程序的结构和功能进行详细的介绍。
我们将会从程序的主要模块入手,逐步分析每个模块的功能和实现方法。
通过本章的研究,相信大家可以更加深入地了解程序的内部机制,为后续的开发工作打下坚实的基础。
第一条模块解释与功能在本节中,我们将会对第一条模块进行详细的解释,并介绍它的具体功能。
第一条模块是整个程序的核心模块,它负责实现程序的主要功能,包括菜单的显示、游戏的运行等。
C语言猜数游戏代码

#include <stdio.h>#include <math.h>#include <stdlib.h>#include <time.h>int i;long int rn();void fun();void gc();int input(long int);void grade(int);int welcome();int compare(long int,long int);void choise(int *,int);void main(){system("cls");printf("\n\n\n\t\t* * * * * * * * welcome * * * * * * * *");printf("\n\n\n");printf("\t\t\tmaker: xiachao xiaoyuyan");printf("\n\n\n\t\t\tuse enter to be continue");getch();fun();}void fun(){int b,s,g;long int a;system("cls");s=welcome();if(s==1){system("cls");a=rn();b=input(a);grade(b);gc();}if(s==2){system("cls");printf("\n\n\n\n\n");printf("\t---------------------------------------------------------\n");printf("\t|game rules: |\n");printf("\t||\n");printf("\t|input your number(10000--99999),it will compare to the |\n");printf("\t||\n");printf("\t|system's number(10000--99999),and the number doesn't have|\n");printf("\t||\n");printf("\t|same digit. |\n");printf("\t||\n");printf("\t|if your number as same as system,your win,else try again.|\n");printf("\t||\n");printf("\t ---------------------------------------------------------");gc();}if(s==3){printf("\n\n\t\t\tThanks for your using.\n");printf("\t\t\t\tBye Bye!");getch();exit(0);}}long int rn(){int b,d;long int c;unsigned long int a;int array[5];time_t t;time(&t);srand(t);loop1:a=10000+rand() % 90000;c=a;for(i=0;i<5;i++){array[i]=c%10;c=c/10;}choise(array,5);b=array[0];for(i=1;i<5;i++){if(b==array[i])goto loop1;elseb=array[i];}return a;}void choise(int *num,int n){int j,k;for(i=1;i<n;i++){k=num[i];j=i-1;while((j>=0)&&(num[j]>k)){num[j+1]=num[j];j--;}num[j+1]=k;}}int compare(long int a,long int b) {int c;if(a>b){printf("\t\t\tneed greater!");printf("( >%ld )\n",b);c=0;}if(a<b){printf("\t\t\tneed less!");printf("( <%ld )\n",b);c=0;}if(a==b){printf("\t\t\tIt's true!\n");c=1;}return c;}int input(long int a){int c=0;long int b;printf("\n\n\n\n\n");printf("\t\t\tplease input your number:\n");printf("\t\t\tinput 0 back to main menu.");loop2:printf("\n\t\t\ttimes %d:",c+1);scanf("%ld",&b);c++;if(c>67){printf("\t\tyou are lose!");gc();}if(b==0)fun();elseif(compare(a,b)!=1) goto loop2;return c;}void grade(int num){int grade=0;printf("\t\t\tyou use %d times\n",num);if(num<4)grade=100-10*(num-1);else if(num<8)grade=80-5*(num-3);else if(num<68)grade=60-(num-7);printf("\t\t\tyour grade is %d",grade);switch(num){case 1:printf("\tyou are so lucky!!!");break;case 2:case 3:case 4:printf("\tlucky!");break;case 5:case 6:case 7:case 8:case 9:printf("\tgreat!");break;case 10:case 11:case 12:case 13:case 14:case 15:case 16:printf("\tgood!");break;case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25: printf("\tjust so so.");break;default:printf("\tmaybe you can better.");}}int welcome(){int s;printf("\n\n\n\n");printf("\t\t********************************************\n");printf("\t\t* *\n");printf("\t\t* welcome paly the game! *\n");printf("\t\t* *\n");printf("\t\t* input 1: start the game *\n");printf("\t\t* input 2: help information *\n");printf("\t\t* input 3: quit the game *\n");printf("\t\t********************************************\n");printf("\t\tplease select: ");scanf("%d",&s);return s;}void gc(){int a;printf("\n\n\t\tinput 1: quit the game;\tinput 2: back to menu.\n");printf("\n\t\tplease select : ");scanf("%d",&a);if(a==1)exit(0);if(a==2){system("cls");fun();}if(a!=1&&a!=2){printf("\t\tinput error!check your input!\n\n");gc();}}。
c语言课程设计猜数字游戏

c语言课程设计猜数字游戏一、课程目标知识目标:1. 学生能理解并掌握C语言中基本的数据类型、变量声明、随机数生成和条件语句等知识;2. 学生能运用所学知识设计并实现一个简单的猜数字游戏程序;3. 学生了解程序设计中常见的问题解决策略和算法思维。
技能目标:1. 学生掌握C语言编程的基本技巧,如代码编写、调试和运行;2. 学生能运用结构化编程思想,将复杂问题分解为简单的模块进行解决;3. 学生通过编写猜数字游戏程序,培养逻辑思维和问题解决能力。
情感态度价值观目标:1. 学生培养对编程的兴趣,激发学习C语言的积极性;2. 学生通过合作学习和交流讨论,培养团队协作精神和沟通能力;3. 学生在编程过程中,体会程序设计的乐趣,增强自信心和成就感。
分析课程性质、学生特点和教学要求:本课程为C语言课程设计,旨在让学生通过实际操作,巩固所学知识,提高编程技能。
针对初中年级学生,课程内容需贴近实际,以激发兴趣为导向。
教学要求注重培养学生的动手能力和逻辑思维,课程目标具体明确,易于衡量。
课程目标分解:1. 学生掌握猜数字游戏的基本原理和编程实现方法;2. 学生能独立编写、调试并运行猜数字游戏程序;3. 学生通过课程学习,提升编程兴趣,培养团队合作意识和问题解决能力。
二、教学内容1. C语言基本数据类型复习:整型、浮点型、字符型等;2. 变量声明与赋值:局部变量、全局变量;3. 随机数生成:rand()函数、srand()函数、时间戳种子;4. 条件语句:if-else、switch-case;5. 循环语句:while、do-while、for;6. 输入输出函数:printf()、scanf();7. 简单错误处理:逻辑错误、运行错误;8. 游戏设计:猜数字游戏规则、程序逻辑;9. 编程实践:编写、调试、运行猜数字游戏程序;10. 团队合作:分组讨论、协作编程、交流心得。
教学内容安排与进度:第一课时:复习C语言基本数据类型、变量声明与赋值;第二课时:讲解随机数生成、条件语句;第三课时:介绍循环语句、输入输出函数;第四课时:分析猜数字游戏规则、设计程序逻辑;第五课时:编写猜数字游戏程序,进行调试与运行;第六课时:团队合作,交流心得,总结课程。
C语言课程设计--猜数字游戏
课程设计报告课程名称C语言程序设计课题名称猜数字游戏专业机械设计及其自造化班级1185班学号201113090516姓名指导教师王颖2 0 1 2年6 月2 2 日湖南工程学院课程设计任务书课程名称C语言程序设计课题猜数字游戏专业班级机械设计1185 班学生姓名学号201113090516指导老师王颖审批王颖任务书下达日期2012 年6 月 1 日任务完成日期2012 年6 月22 日设计课题四:猜数字游戏一、问题描述:该游戏可以由程序随机产生或由用户输入四个0到9之间的数字,且不重复。
玩游戏者通过游戏提示输入八次来匹配上面所输入的数字。
A表示位置正确且数字正确,B表示数字正确而位置不正确。
二、功能要求:1、本游戏显示这样的菜单:(1)随机产生数据(2)用户输入数据(3)退出游戏2、游戏成功与否都能返回主菜单三、算法提示:1、数据结构:数组2、用简单的程序设计方法四、测试数据:测试数据: 3792第一次输入: 12340A2B第二次输入: 56780A1B第三次输入: 08670A1B第四次输入: 97861A1B第五次输入: 17942A0B第六次输入: 27932A2B第七次输入: 37924A0B游戏过关!!!五、其它:对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能,如:破记录功能,若你所匹配的次数小于纪录保持者,则为破纪录。
目录第一章绪论 (1)第一节项目背景 (1)第二节本课题所做的工作 (2)第二章需求分析第一节用户需求分析 (3)第二节开发环境分析 (4)第三章程序设计 (5)第一节程序的功能 (5)第二节输入输出的要求 (5)第三节程序模块 (6)第一条模块组成 (6)第二条层次结构 (8)第三条模块调用 (9)第四章分析 (10)第一节模块解释与功能 (10)第五章调试 (14)第一节菜单测试 (14)第二节游戏测试 (16)第一条在自定义中 (16)第二条在随机游戏中 (19)第六章总结 (21)第七章附录 (23)第一节附录A 源程序 (23)第二节附录B 参考文献 (32)课程设计评分表 (33)第一章绪论第一节项目背景C语言一共有32个关键字,9种控制语句,程序书写形式自由,主要用小写字母表示。
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()函数,重新排序的到最后的有顺序的一组数据。
c语言课程设计猜数游戏
c语言课程设计猜数游戏一、教学目标本课程旨在通过猜数游戏的设计与实现,让学生掌握C语言的基本语法、数据类型、控制结构以及函数的使用。
在知识目标方面,学生应能够理解并运用C语言编写简单的程序;在技能目标方面,学生应能够运用所学的C语言知识,独立设计并实现一个猜数游戏;在情感态度价值观目标方面,学生应能够体验到编程的乐趣,增强对计算机科学的兴趣。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、控制结构以及函数的使用。
通过讲解和示例,使学生能够理解并掌握这些基本概念,并能够运用它们来编写程序。
具体的教学大纲如下:1.第一章:C语言概述,介绍C语言的基本概念和特点,让学生了解C语言的地位和作用。
2.第二章:数据类型,介绍C语言的基本数据类型,如整型、浮点型、字符型等,以及它们的运算。
3.第三章:控制结构,介绍C语言的条件语句和循环语句,让学生能够运用这些语句编写程序。
4.第四章:函数,介绍函数的定义、声明和调用,让学生理解函数的概念并能够运用函数编写程序。
5.第五章:猜数游戏设计与实现,通过设计和实现一个猜数游戏,使学生能够综合运用所学的知识编写一个完整的程序。
三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,如讲授法、讨论法、案例分析法和实验法等。
在讲授基本概念和语法时,采用讲授法,使学生能够系统地掌握C语言的知识;在讲解实例和分析案例时,采用讨论法,引导学生主动思考和探索;在设计和实现猜数游戏时,采用实验法,让学生亲自动手编写程序,提高其实践能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:1.教材:《C程序设计语言》(K&R),为学生提供系统的C语言知识学习。
2.参考书:《C Primer Plus》,为学生提供额外的学习资料和实践指导。
3.多媒体资料:包括教学PPT、视频教程等,为学生提供直观的学习材料。
c语言编程-猜数字游戏
计算机实习报告面向过程编程用C语言求解实际问题一、问题描述游戏类第15个任务——猜数字游戏任务描述:计算机从0~9这10个数字中任意选择n个不重复数字(n≤10)组成一个5位数(0不出现在首位),然后让玩家猜该数。
若玩家猜对该数,游戏则结束;若玩家猜得不对,则计算机告知玩家,数字猜对了且位置也正确的数字有几个;数字猜对了但位置不正确的数字有几个,然后让玩家继续猜。
对每个数玩家最多有m(m>0)次猜的机会。
功能要求:①玩家可自行设置被猜数的位数n和最多猜测机会数m。
②玩家可用键盘输入其所猜数,也可通过鼠标点选数字给出其所猜数。
③当玩家没有猜对时,用不同颜色的文字显示数字猜对了且位置也正确的数字个数和数字猜对了但位置不正确的数字个数,且显示文字要直观、易理解。
例如,正确答案为52467,玩家所猜为53269,则有2个数字(即5和6)数字对位置也对;有1个数字(即2)数字对但位置对。
④玩家猜测m次后仍未猜对,则向玩家公布答案,并询问玩家是否继续进行新游戏。
此时玩家可以选择继续进行新游戏或退出游戏。
⑤当玩家猜对时,输出“恭喜你猜对了”,并询问玩家是否继续进行新游戏。
此时玩家可以选择继续进行新游戏或退出游戏。
⑥玩家可以在游戏进行过程中选择放弃继续猜数。
玩家放弃继续猜数后,询问玩家是否继续进行新游戏。
此时玩家可以选择继续进行新游戏或退出游戏。
⑦若玩家猜对数字后选择退出游戏时,询问玩家是否记录其成绩,如果选择记录,则进一步要求玩家输入用户名;否则,直接退出。
⑧游戏维护一个排行榜,按照猜对一个5位数所用猜测次数由少到多的顺序排序,并在记录完玩家成绩后显示给玩家。
二、需求分析1)猜数字游戏软件的功能有:进入主菜单,输入挑战的次数,输入猜测的数字,若在此次数之内没有猜对,则提示挑战失败,是否继续挑战。
若挑战过程中途放弃,则提示是否继续挑战。
若挑战成功,则提示是否记录成绩,输入用户名,计入排行榜。
排行榜会按照猜测次数由小到大进行排序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言猜数游戏程序 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】
《C语言程序设计》课程设计
说明书
设计题目:猜数游戏
班级:C语言课程设计2班
学号:
姓名:
完成日期:目录
1.设计任务
设计题目:猜数游戏(掌握程序结构及随机函数应用)
程序说明:游戏的开始由机器产生一个随机数(1~100之间,用库函数random(),用法见后面的说明),然后游戏者在程序的提示下猜数,若输入的数比这个数大,程序提示:Your answer is HIGH,try again. ,否则,程序提示:Your answer is LOW,try again.,直到猜对为止。
程序可实现连续猜数,直到游戏者退出。
程序输出要求:累计游戏者猜对一个数所需次数n,当n<=7时,给出“Congratulation”字样;当7<n<15时,给出“I can bet you can do it better.”;当n>=15时,用exit(0)库函数退出程序。
附:随机数发生器函数 random()用法
函数原型: int random(int num);
程序例:
#include <> /*包含库函数random()的头文件*/
#include <>
/* prints a random number in the range 0 to 99 */
int main(void)
{ int n;
randomize(); /*初始化随机数发生器*/
n= random (100); /*产生一个0-100的随机数。
*/
printf("Random number in the 0-99 range: %d\n",n);
;
}
2.需求分析
功能需求
本系统是一款小型数学游戏软件,提供简单的游戏功能即可。
主要功能是通过有趣的数学游戏锻炼逻辑思维能力,使用户可以感受到数学的巨大魅力。
性能需求
要求系统稳定可靠,各方面功能齐全,操作简单易懂,达到打开即用的效果!
3.设计算法
注:算法的整体思路是通过计算机随机生成一个数字,再通过键盘输入的数字与产生的随机数字进行比较!
4.系统模块图
本游戏小系统主要由封面、登陆系统和主菜单3个部分组成。
其中菜单部分又细分为游戏介绍、帮助、开始游戏和退出游戏四个部分。
系统模块图如下所示:
5.模块说明
构建整体框架
首先构造出整体框架,包含头文件、定义变量、声明自定义函数、输出封面等。
头文件:#include <> #include <> #include <> #define random(x) (rand()%x);自定义函数声明:int
zhucaidan();void youxijieshao();void bangzhu();void
kaishiyouxi();int tuichu();
登陆系统
登陆系统提供使用者输入账号密码验证,输入错误则需重新输入,输入正确则跳入主菜单。
此处采用do-while语句循环,直到账号密
码正确(初始密码和账号相同)。
若账号密码正确则调用自定义主菜单函数。
进入主菜单采用switch语句进行功能选择。
主菜单系统
主菜单分为4个小的分支,主要进行游戏介绍、游戏帮助以及开始游戏等部分。
提供给使用者一个进行游戏的平台,也可以对不懂得如何使用此系统的使用者进行简单的介绍。
游戏计算部分
计算部分原理见第三部分设计算法。
此部分为程序计算核心部分,进行数据的处理和比较。
此处采用random函数进行初始值随机赋值srand((int)time(0)); k=random(100);再通过大小比较得出结果。
6.用户使用说明(部分操作截图)
进入系统
登陆系统
主菜单系统
游戏介绍
游戏帮助
游戏界面
退出游戏
程序能满足题目要求,测试过程未发现错误。
可以根据使用输入数据给出正确提示。
但程序比较简单,智能满足基本的要求,扩展方面不够!
8. 设计小结
在此次程序设计过程中,主要困难来自整体结构的构思,封面、登陆系统、游戏算法等部分程序都可以设计出来。
但是在各个部分的连接方面遇到一些困难,对于程序整体结构不是很清楚。
总的来说,对自己也是一个小小的挑战。
课程设计与平时C语言作业有比较大的差别,平时作业主要是针对一个问题设计一种算法,方法比较固定,算法也比较成熟,不用自己去深入思考算法和结构问题。
而程序设计对设计者的整体能力要求比较高,不仅要求设计者对VC软件有种足够的认识,还要求设计者有自己的思想,能够对题目给的要求真正的理解,才可以真正设计出满足题目要求的程序!通过这次课程设计使得自己对于我们所学的C 语言程序设计课程也有了更加深入的了解!
⑴龚本灿《C语言程序设计教程》高等教育出版社 2011年
⑵龚本灿《C语言程序设计习题集》高等教育出版社 2011年
10. 附录
#include <>
#include <>
#include <>戏介绍\n");
printf(" 2.帮助 \n");
printf(" 3.开始游戏\n");
printf(" 4.退出游戏\n");
printf("----------------------------------\n");
printf("请选择功能模块,输入数字1-4: ");
while(1)
{
scanf("%d",&choice);
if(choice>=1 && choice<=4)
break;
else
printf("输入数字不正确,请重新输入
1-4:");
}
return choice;
}
void youxijieshao()
{
printf("\n猜数游戏是一款人机互动的小游戏,\n");
printf("在电脑提示的范围下进行猜数并用键盘输入电脑中。
\n");
printf("电脑判断你所输入的数值与电脑默认给出数字的数值的大小并给出提示,\n");
printf("如果你所输入的数字不是电脑默认的数值则需要重新输入,直到正确为止!\n");
}
void bangzhu()
{
printf("1.游戏规则:每个玩家有15次机会进行猜数,若15次之内还没猜出则退出程序!\n");
printf("2.游戏建议:玩家可用对半猜的方法进行游戏,逐渐缩小猜数范围,直到最后猜出正确答案!\n");
}
void kaishiyouxi()
{ int k,g,big=0,small=0;
srand((int)time(0));
k=random(100);
printf("computer number is given!please input your number(0--100) is: \n");
while(1)
{
scanf("%d",&g);
if(g>k)
{
printf("your answer is high,try again\n");
big++;
}
else if(g<k)
{
printf("your answer is low,try again\n");
small++;
}
else
{
if((big+small)<=7)
{printf("Congratulation\n");}
else if(((big+small)>7)&&((big+small)<15))
{printf("I can bet you can do it better\n");}
break;
}
}
printf("您猜对答案输入数字次数为:%d",(big+small)); }
int tuichu()
{
int end;
end=0;
return end;
}。