C语言-猜字游戏-源程序
- 格式:doc
- 大小:24.50 KB
- 文档页数:5
c 猜字母游戏课程设计一、教学目标本课程旨在让学生掌握C语言中的猜字母游戏编程,通过学习,学生能够理解并运用C语言的基本语法和逻辑控制结构,培养其计算思维能力和问题解决能力。
具体目标如下:1.掌握C语言的基本语法。
2.理解并运用变量、数据类型、运算符。
3.学习逻辑控制结构如if-else,循环结构如for、while。
4.能够编写简单的C程序。
5.能够运用猜字母游戏的编程思路解决问题。
6.培养调试和排错的能力。
情感态度价值观目标:1.培养学生的编程兴趣,激发其学习C语言的热情。
2.培养学生独立思考、合作交流的学习态度。
3.培养学生面对挑战,勇于解决问题的精神。
二、教学内容本课程的教学内容以《C程序设计语言》为基础教材,按照教材的结构和内容安排课程。
主要内容包括:1.C语言的基本语法和数据类型。
2.运算符及其表达式。
3.控制结构:if-else,for、while循环。
4.函数的定义和调用。
5.猜字母游戏的设计与实现。
三、教学方法为了提高教学效果,我们将采用多种教学方法:1.讲授法:用于讲解C语言的基本语法和逻辑控制结构。
2.案例分析法:通过分析具体的猜字母游戏案例,让学生理解和掌握编程方法。
3.实验法:让学生动手编写程序,培养其实际操作能力。
4.讨论法:分组进行讨论,培养学生的合作能力和问题解决能力。
四、教学资源为了支持教学内容的实施,我们将准备以下教学资源:1.教材:《C程序设计语言》。
2.参考书:提供相关的编程资料和案例分析。
3.多媒体资料:用于讲解和展示猜字母游戏的编程过程。
4.实验设备:计算机及相关软件,用于学生动手实践。
通过以上教学资源的使用,我们将更好地实现教学目标,提高学生的学习效果。
五、教学评估为了全面、公正地评估学生的学习成果,我们将采取以下评估方式:1.平时表现:通过课堂参与、提问、小组讨论等环节,评估学生的学习态度和积极性。
2.作业:布置与猜字母游戏编程相关的练习题,评估学生对C语言基本语法和逻辑控制结构的掌握程度。
《C语言》考试A卷------36选6彩票抽奖系统彩票抽奖系统简介:在1-36个数字中,先人工选择6个数字,然后抽奖,由电脑生成6个随机数,比较人工选择的6个数字和电脑生成的6个随机数中,相同的个数。
系统功能分析本系统由以下几个功能模块(函数)构成:显示模块(函数):显示指定(已知)数组中的非0元素。
校验模块(函数):验证指定(已知)数组的合法性,数组中的数据是否有重复?是否有超出1-36范围的数据?选号模块(函数):将输入的整数存入数组a1,并将a1作为本模块(函数)的结果。
随机数产生模块(函数):产生随机数存入数组b1,并将b1作为本模块(函数)的结果。
兑奖模块(函数):将选号模块得到的数组a1与随机数产生模块得到的数组b1进行比对,看有多少个数组元素是相同的,相同的数据则为已中奖的数据,相同数据越多,中奖级别越大,并输出中奖信息。
目的:考察掌握(函数)的定义、调用、嵌套、递归、指针、循环等知识的综合应用要求:各个子功能模块(函数)独立实现,并能够独立测试。
主要知识点:函数的定义、调用。
数组的定义和使用知识点补充:如果将指针作为函数返回值,那么该指针所指向的变量必须是静态的,否则,指针有效,但其所指向的变量已经被释放了步骤前提:1.导入头文件#include <stdio.h>#include <stdlib.h>#include <time.h>2.在所有函数的外部,定义一个全局常量const int array_length=6; //表示数组的长度模块1:显示模块(函数)(本模块20分)模块功能:显示指定(已知)数组中的信息。
定义一个函数display ,该函数的功能是将指定(已知)的数组中所有非0的元素,逐个输出。
相关的知识点:函数的定义、数组的使用、for 循环的使用 函数的算法如图:分析:函数头:该函数只是需要显示数组的元素,不需要任何结果,因此不需要返回值,即返回值类型为void ,函数名称display ,该函数需要显示的是指定(已知)的数组信息,即必须要知道显示的数组。
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语言课程设计猜数字游戏一、课程目标知识目标: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语言编程的基本技能,通过编写猜数字游戏程序,培养学生的编程思维和实际操作能力。
具体目标如下:1.知识目标:–掌握C语言的基本语法和数据类型。
–了解函数的定义和调用。
–学习使用循环和条件语句进行程序控制。
2.技能目标:–能够使用C语言编写简单的程序。
–能够运用循环和条件语句实现猜数字游戏的核心功能。
–能够调试和优化程序,提高游戏的体验性。
3.情感态度价值观目标:–培养学生的创新意识和团队合作精神。
–培养学生对编程的兴趣和热情,提高学生的信息素养。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、函数、循环和条件语句。
具体安排如下:1.第一课时:C语言概述和基本语法。
–介绍C语言的历史和发展。
–学习C语言的基本语法,如变量声明、数据类型、运算符等。
2.第二课时:函数的定义和调用。
–学习函数的定义和声明。
–掌握函数的调用方式和参数传递。
3.第三课时:循环和条件语句。
–学习循环语句的原理和用法,如for循环、while循环等。
–学习条件语句的原理和用法,如if语句、switch语句等。
4.第四课时:猜数字游戏设计与实现。
–分析猜数字游戏的需求和逻辑。
–使用C语言编写猜数字游戏的程序。
–调试和优化程序,提高游戏的体验性。
三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法,以激发学生的学习兴趣和主动性。
1.讲授法:用于讲解C语言的基本语法、数据类型、函数、循环和条件语句等知识点。
2.案例分析法:通过分析典型的猜数字游戏案例,引导学生掌握游戏设计的原理和方法。
3.实验法:让学生亲自动手编写和调试猜数字游戏程序,提高学生的实际操作能力。
四、教学资源本课程所需的教学资源包括教材、参考书、多媒体资料和实验设备。
1.教材:选用《C程序设计》等相关教材,为学生提供系统的理论知识。
2.参考书:推荐《C语言编程实践》等参考书,丰富学生的知识体系。
包括程序及txt文档,希望可以对您有所帮助#include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>#include <fstream.h>#include <conio.h>#include <windows.h>void OpenWordFile(char string[21][11]);void PlayGame(char wordlist[21][11]);void Change(char wordlist[21][11],char str[21][11]);void StartGame (char wordlist[21][11]);int guesstime=10;int round;void Set(){printf("请输入您想猜的单词数:");scanf("%d",&round);}struct Player{char name[20];int right;int wrong;int time;};typedef struct Player Player;Playerp[5]={{1,"unknown",0,0,0},{2,"unknown",0,0,0},{3,"unknown",0,0,0},{4,"unknown",0,0,0},{5," unknown",0,0,0}};Player temp;int right=0,wrong=0;void OpenWordFile (char string[21][11]){FILE *fp;char c;int i=0;int j=0;if((fp=fopen("word.txt","r"))==NULL) //读文件{printf("单词库无法打开!\n");exit(0);else{c=fgetc(fp);while(c!=EOF){if(c!='\n'){string[i][j]=c;j++;}else{i++;j=0;}c=fgetc(fp);}}}void SetGame (){printf("请输入你想猜的次数:");scanf("%d",&guesstime);}void PlayGame (char wordlist[21][11]){char guess; //存用户打入的字母char guessword[11]; //存用户打入的词int l,j,k,f;int p=1,q=0,x=0,y=0;char WrongGuess[11];int t=0;int flag=0;int c=1; //用来查看是否猜对所有字母srand(time(NULL));q=rand()%21;l=strlen(wordlist[q]); //求单词长for(f=0;f<l;f++) //定义词一空单词,词长与所选一样{guessword[f]='-';guessword[l]='\0'; //字符串结尾printf("%s",guessword);//打印与词长相同的"-"for(k=1;k<=guesstime && c!=0;) //判断是否猜完{flag = 0;printf("你还有%d次机会!\n",guesstime-k+1);scanf(" %c",&guess);for(j=0;j<l;j++) //循环判断单词中是否有所输入字母{if(guessword[j]=='-' ) //判断是否猜过这个字母{if(wordlist[q][j]==guess||wordlist[q][j]-guess==32) //如果单词中有这个字母{guessword[j]=wordlist[q][j];//在空单词中打入这个字母x++;flag = 1;}}else if(guessword[j]==guess||guessword[j]-guess==32) //如果猜过这个字母则提示(仅提示猜过的正确的字母){printf("你已经输入过这个字母了。
课程设计报告课程名称C语言程序设计课题名称猜数字游戏专业机械设计及其自造化班级学号姓名指导教师2 0 1 2年6 月2 2 日设计课题四:猜数字游戏一、问题描述:该游戏可以由程序随机产生或由用户输入四个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种控制语句,程序书写形式自由,主要用小写字母表示。
它把高级语言的基本结构和语句与低级语言的实用性结合起来。
《高级语言程序设计》课程设计题目:猜数字游戏班级:09软件工程R3学生姓名:***学生学号:************指导老师:***提交时间:2010年5月29日华南农业大学信息(软件)学院《高级语言程序设计》课程设计评分表目录一、猜数字游戏分析。
41.游戏概述。
42.系统运行环境。
43.功能需求描述。
4 二、总体设计。
51.开发和设计的总体思想。
52.程序模块结构图。
53.模块设计。
54.程序流程描述。
65.界面设计。
76.数据结构设计。
12 三、详细设计。
131.文件及函数组成。
132.函数设计。
14 四.程序代码。
171.start.h。
172.start.c。
193.mianzone.c。
254.game zone.c。
325.refreshline.c。
376.reset.c。
407.print.c。
408.count_num.c。
489.intset – del.c。
4910.imageline.c。
49五. 运行结果。
50六、调试分析。
511.情况1。
512.情况2。
513.情况3。
514.情况4。
52 七、总结。
52一、猜数字游戏分析在《猜数字游戏》分析环节中,会对该游戏开发的意图、应用目标、作用范围和有关该软件开发的背景材料进行详细的分析。
《猜数字游戏》作为一个用来进行娱乐、消遣的应用软件,在对其进行需求分析的过程中,需要充分考虑游戏的可用性和娱乐性,联系实际生活,从而得到合理的需求分析的结论。
1.游戏概述该软件为用户提供一个在Windows系统上运行的猜数字游戏,其使用者只有玩家:玩家在运行该程序时,可以浏览游戏自最近一次重置数据记录以来,所保存的游戏记录:分为“排行榜记录”和“成功情况”。
玩家可清空排行榜数据,以重新开始记录游戏成绩。
参加游戏后,游戏将自动刷新游戏记录,重新排行排行榜。
玩家参加游戏前,可浏览帮组功能,了解游戏规则。
2.系统运行环境(1)硬件环境◆处理器:Intel Pentium 166或更高◆内存:32MB以上◆硬盘空间:2G以上◆显卡:SVGA显示适配器(2)软件环境◆操作系统:Windows98/Me/2000/XP/vista/73.功能需求描述猜数字游戏是用来进行娱乐、消遣活动的应用软件。
C语⾔代码实现猜数字游戏⽬录前⾔:⼀:猜数字游戏基本介绍&对程序预期⼆:程序设计思路1.总体思路:2.菜单部分函数:3.游戏部分函数4.主函数部分5.代码主体三:总结前⾔:本⽂主要讲解以c语⾔编写猜数字游戏,⽬的是介绍C语⾔中的循环和分⽀的具体⽤法。
⼀:猜数字游戏基本介绍&对程序预期.猜数字游戏,顾名思义,就是系统随机给出⼀个数字,玩家对这个数字进⾏猜测,如果玩家猜测的数字⼤于给出的数字,则系统会提⽰猜⼤了,如果玩家猜测的数字⼩于给出的数字,则系统会提⽰猜⼩了,这样逐步缩⼩猜测范围,直到玩家猜对为⽌。
2.程序预期:猜数字结束后,玩家如果猜对了的话可以继续游戏,也可以退出游戏⼆:程序设计思路1.总体思路:⾸先,实现游戏功能必须要有⼀个菜单来提⽰玩家如何进⾏操作。
其次,为了代码具有可读性,可以将游戏部分函数和菜单部分函数作为两个⼦函数,然后在主函数调⽤他们。
然后我们为了实现玩家可以多次游戏可以使⽤循环。
综上所述,我们应该设计两个⼦函数:菜单函数和游戏函数。
⼀个主函数2.菜单部分函数:菜单部分函数void menu(){printf("***********************************************\n");printf("*************************1play*****************\n");printf("*************************0exit*****************\n");printf("***********************************************\n");}菜单函数设计相对简单,只是为了提⽰玩家如何操作3.游戏部分函数void game(){srand((unsigned int)time(NULL));int ret = rand() % 100 + 1;while (1){printf("猜数字\n");int guess = 0;scanf("%d", &guess);if (guess > ret){printf("猜⼤了\n");}else if (guess < ret){printf("猜⼩了\n");}else{printf("猜对了\n");break;}}}①在游戏函数部分,⾸先要⽣成随机数,⽣成随机数的⽅法如下:C语⾔中提供了⽣成随机数的函数rand函数rand函数会返回⼀个0到RAND-MAX的随机整数,使⽤这个函数需要包含头⽂件<stdlib.h>但是rand函数每次⽣成的随机数相同,所以只⽤rand函数不够,所以要使⽤srand()函数增加随机性后⼀句中说明在使⽤rand函数前要定义⼀个srand()函数如画线句所⽰,srand函数的作⽤就是⼀个随机数的⽣成的种⼦。
猜字数游戏程序设计方案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、游戏主要框架图:该模块为玩家提供猜数字游戏的主体功能,即开始游戏、继续游戏、最佳排行、操作说明、退出游戏。
给用户一个清晰明了的操作界面!流程图如下:系统模块结构图2.2、开始游戏框架:开始游戏①单人游戏由系统产生4个随机数,并按任意顺序排列,作为游戏的原始数字供玩家进行猜数字游戏。
②双人游戏有主用户知己定义输入输入,再用另一用户猜测!③单人、双人游:提示用户数值和位置全对的数字个数,和只有数值但位置不对的数字个数。
设计题目:猜数字游戏目录目录目录........................................................... - 1 - 1 程序分析与设计. (2)1.1 功能分析与任务分配 (2)功能分析 (2)1.2流程图 (2)1.3 数据结构 (4)2 详细设计 (4)3 参考文献 (5)4 附录 (5)5总结.............................................. 错误!未定义书签。
1 程序分析与设计1.1 功能分析与任务分配功能分析此游戏程序通过不断输入以及逐渐数位对应的方法,一步步的缩小猜测范围,最终猜出机内已存储数字,达到健脑益智的效果。
此数字游戏没有设置猜测次数的上限.简单策略这种策略非常直接——每次都猜可能答案中的第一个。
例如,首先猜测1234,如果得到的反馈是2A2B,那可能的答案包括1256,1257,5236,等等。
根据简单策略,下一次就猜1256,因为1256是所有可能答案中最小的数字。
简单策略的优点是速度非常快,缺点是所需猜测次数很多。
启发式策略这类策略是猜数字游戏最常用的解法。
其算法步骤如下:a. 首先猜1234,得到第一个反馈(xAyB)。
b. 从所有数字中,筛选出满足已知反馈的所有可能数字,称之为“可能集”。
c. 对于所有数字(而不仅限于筛选出来的可能集),逐一评估每个数字的“好坏”,并给其打分。
选取得分最高的那个数字猜。
如果有多个数字的评分一样高,则优先选取可能集中的数字。
d. 重复步骤b-c,直到猜出4A4B为止。
(2)任务分配李晓飞和谭程方同学:实现猜测数据后的*A*B编写功能,即规则c.王璐和王爽同学:实现统计每次猜对数字个数的功能,即规则d.王鹏宇同学:实现统计每次猜对的数字并且位置也对的数字个数,即规则e.(备注:在实际操作中由于每位同学所用变量习惯以及掌握程度不同,所以此程序任务分配可能会部分的与上不符,最后还要对任课老师魏玉芬以及指导老师丁艳清表示衷心的感谢,感谢两位老师给予我们的帮助!)1.2流程图1.3 数据结构k 猜测的次数b 一次猜测后用来判断是否继续进行新的猜测n1 猜对的数字数n2 猜对并且位置也对的数字数i、j 用来表示两个数组的对应数位数x[4]={2,5,6,9} 定义将要被猜测的数字为2569 y[4] 从键盘输入的四位数2 详细设计通过逐步减少范围来猜测正确结果3 参考文献[1]谭浩强著《C语言程序设计》北京:清华大学出版社 2005[2]百度知道4 附录#include <stdio.h>void main(){int k,n1,n2,b,x[4]={2,5,6,9},y[4]; //定义将要被猜测的数字为2569//int i=0,j=0;for(k=1;;k++) //只要不放弃,就可以使猜测无数次的进行下去//{n1=0;n2=0; //n1用来统计猜对的数字数,n2用来统计猜对并且位置也对的数字数//printf("请输入四个不同的数字:");for(j=0;j<4;j++)scanf("%d",&y[j]);//用来输入四个不同的数字//for(i=0;i<4;i++){for(j=0;j<4;j++)if(x[i]==y[j]) n1++; //统计n1//}for(i=0;i<4;i++)if(y[i]==x[i]) n2++; //统计n2//printf("%dA%dB\n",n1,n2);printf("n1=%d,n2=%d\n",n1,n2); //给出本轮猜测的结果//if(n2==4) break;printf("如果想放弃,请输入0;如果不想放弃,请输入任意非零数字\n");scanf("%d",&b);if(b==0)printf("正确答案是:2569");else printf("请继续猜测\n");}if(n2==4)printf("恭喜你答对了!");}5总结C语言是我们在大学学习中接触的第一种计算机语言,将其作为我们学生学习程序设计技术的入门课程,我想这与C语言的特点是分不开的。
C语言计算机技术基础课程设计设计报告题目:猜数字游戏题目:猜数字游戏一、选题背景:猜数字是一种开发智力的游戏,在现代社会中越来越流行,现用已学的C语言程序的各种知识练习编写简单的应用的程序来实现游戏的功能。
二、设计思想:该游戏的实现主要用到C语言中的库函数来实现图形界面能并运用各种循环结构和分支结构来实现选择功能,以次完成整个游戏的制作。
三、程序流程图四、程序清单:#include<stdio.h>#include<graphics.h>#include<stdlib.h>#include<bios.h>#include<dos.h>#define up 0x4800#define down 0x5000#define left 0x4b00#define right 0x4d00#define esc 0x11bstatic int kkk=1;int currenti=1;int rpiao[5];int xpiao[5];int com[16];int money=100;void initmu(void){int i;char s[3];char m[5];char n[2];n[0]=157;n[1]=NULL;setcolor(2);rectangle(100,20,500,120); rectangle(90,0,510,130);setcolor(14);rectangle(100,220,500,420);rectangle(90,210,510,430);setfillstyle(9,2);floodfill(91,1,2);setfillstyle(9,14);floodfill(91,211,14);/*编框,大小,位置,颜色*/setcolor(4);for(i=0;i<=14;i++){setcolor(4);rectangle(110+i*25,230,135+i*25,265);itoa(i+1,s,10);setcolor(15);outtextxy(115+i*25,245,s);outtextxy(120,300,"please choose the five number you want!!!"); }outtextxy(120,330,"use UP choose,use LEFT and RIGHT move");outtextxy(120,400,"press esc to quit");/*向图内添加字母*/itoa(money,m,10);outtextxy(230,180,n);outtextxy(250,180,m);if(kkk==1){setfillstyle(1,4);bar(115+(currenti-1)*25,255,130+(currenti-1)*25,260);kkk=kkk-1;}}void initcom(void){int i;for(i=0;i<=15;i++)com[i]=i;}void rrrpiao(void){int i;int k;for(i=0;i<=4;i++){rpiao[i]=random(15)+1;k=rpiao[i];if(com[k]==0)i=i-1;elsecom[k]=0;}} /*选择数字*/void show(int k){if(k==2)outtextxy(120,40,"you get the fourth prize 5 yuan");if(k==3)outtextxy(120,40,"you get the third prize 20 yuan");if(k==4)outtextxy(120,40,"congratulations!!! you get 1000 yuan"); if(k==5)outtextxy(120,40,"great!!!!!,you get 10000 yuan!!!!!"); }/*每局结束后显示的结果*/void jisuan(void){int k=0;int i,j;for(i=0;i<=4;i++)for(j=0;j<=4;j++)if(rpiao[i]==xpiao[j])k=k+1;if(k==0||k==1)money-=10;if(k==2)money-=5;if(k==3)money+=10;if(k==4)money+=990;if(k==5)money+=9990;show(k);}/*总钱数的计算*/void xxxpiao(void){static int i=0;int j;int k;int key;char s[3];key=bioskey(1);if(key)key=bioskey(0);if(key==esc){closegraph();exit(0);}if(key==up){xpiao[i]=currenti;for(j=0;j<i;j++)if(xpiao[j]==xpiao[i])i=i-1;i=i+1;setfillstyle(1,14);bar(115+(currenti-1)*25,235,130+(currenti-1)*25,240); }if(key==left){setfillstyle(1,0);bar(115+(currenti-1)*25,255,130+(currenti-1)*25,260); if(currenti==1)currenti=15;elsecurrenti=currenti-1;setfillstyle(1,4);bar(115+(currenti-1)*25,255,130+(currenti-1)*25,260); }if(key==right){setfillstyle(1,0);bar(115+(currenti-1)*25,255,130+(currenti-1)*25,260); if(currenti==15)currenti=1;elsecurrenti=currenti+1;setfillstyle(1,4);bar(115+(currenti-1)*25,255,130+(currenti-1)*25,260);}/*键盘的控制*/if(i==5){for(k=0;k<=4;k++){itoa(rpiao[k],s,10);outtextxy(230+k*30,350,s);}outtextxy(120,350,"the number:");outtextxy(120,370,"you choose:");/*选择完毕后,显示相同的个数*/for(k=0;k<=4;k++){itoa(xpiao[k],s,10);outtextxy(230+k*30,370,s);}jisuan();sleep(3);cleardevice();currenti=1;i=0;kkk=1;}}/*选择完毕后,停留的时间并清屏*/void dead(void){if(money<10){outtextxy(120,40,"you have not enough money");sleep(2);closegraph();exit(0);}}/*游戏结束的条件*/void main(void){int gd=DETECT,gm;initgraph(&gd,&gm,"");while(1){initmu();initcom();rrrpiao();xxxpiao();dead();}}五、主要解决问题的方法及技术关键1、主要问题及解决方法图形界面的绘制问题,主要是运用到C语言库函数自带的绘制图形的函数。