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

更新时间:2023-05-29 14:12:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

C语言课程设计,猜数游戏软件

《C 语言程序设计》课程设计报告题 学 姓目 号 名猜数游戏年级专业 同组人员 学 号09 电子信息工程指导老师 完成日期 2010 年 6 月 24 日安徽师范大学物理与电子信息学院College of Physics and Electronic Information, Anhui Normal University

C语言课程设计,猜数游戏软件

一、实践的目的和要求 加深对《C 语言》课程所学知识的理解,进一步巩固 C 语言语法规 则。学会编制结构清晰、风格良好、数据结构适当的C语言程序, 从而具备解决综合性实际问题的能力。 二、实践内容 在熟练掌握 C 语言的基本知识:数据类型(整形、实型、字符型、 指针、数组、结构等) ;运算类型(算术运算、逻辑运算、自增自 减运算、赋值运算等) ;程序结构(顺序结构、判断选择结构、循 环结构) ;大程序的功能分解方法(即函数的使用)等。进一步掌 握各种函数的应用,包括时间函数、绘图函数,以及文件的读写操 作等。 三.问题描述: 用 C 语言编写程序,实现猜数游戏的相关功能。四.基本要求: 随机产生一个五位数,且没有重复数字; 猜数时给出大小提示; 记录猜数次数,最后给出评分。五.分析: 该程序设计的关键在于如何实现随机分配数据与核对输入数据的

C语言课程设计,猜数游戏软件

过程, 利用系统时钟作为随机数的种子, 将每次产生的 0~9 之间 (包 括 0 和 9)的随机数存到数组 aid 中,将从键盘中输入的数据存到 数组 num 中。用数组 num 中的所有数与数组 aid 的每个数比较, 通过统计位置与数据均相同的个数及统计位置不同但数据相同的 个数来输出提示信息,根据猜数次数给出分数。并设计游戏界面。 六.设计内容: 该游戏可以由程序随机产生 0 到 9 之间的数字, 且不产生重复 数字。玩游戏者通过游戏提示输入八次来匹配上面所产生的数字。A 代表位置正确且数字正确,B 表示数字 正确而为之不匹配。 (1)本游戏设计整体思路: 1)利用画图函数设计一个进入游戏的动感画面; 2)设计游戏菜单; 实现以下功能: 按 1 键进入游戏; 按 2 输出游戏规则; 按 3 直接退出游戏。 3)设计猜数游戏主程序,并能够实现以下功能: 由系统随机产生五位数字;当游戏玩家输入所猜的五 位数字时,系统进行对比显示 A 与 B 的个

C语言课程设计,猜数游戏软件

数,以便于玩家根据此继续进行猜数。当玩家按 A 键时可以看答 案。最后根据猜数情况给出分数。 七.流程图:开始判断输入的数字,根据 数字进行选择若 为 1 进入游戏若 为 2 输出游戏规则若 为 3 退出游戏输入数字开始 游戏按任意键退出输出结果结束

C语言课程设计,猜数游戏软件

八.程序清单:#include<stdio.h> #include<stdlib.h> #include<time.h> #include<conio.h> #include<dos.h> #include<string.h> #include<graphics.h> #include<math.h> #define MAXTIMES 8 #define PI 3.1415926 void guess() { int aid[5],num[5],A,B,i,j,times,flag,key,key2,score; char ch; do { flag=0; srand((unsigned)time(NULL)); for(i=0;i<5;i++) aid[i]=rand()%10; for(i=0;i<5;i++) { /*生成目标数组*/ /*判断是否产生相同的数字*/

C语言课程设计,猜数游戏软件

for(j=i+1;j<5;j++) if(aid[i]= =aid[j]) { flag=1; break; } } }while(flag==1);times=1; while(times<=MAXTIMES) { key=0; key2=0; printf("NO.%d:please input five different int numbers to play!\n", times); for(i=0;i<5;i++) {scanf("%d",&num[i]);} for(i=0;i<5;i++) { if(!(num[i]<=9)&&(num[i]>=0)) { printf("Error!the numbers you input must be int numbers which / *判断所输数字是否合法则*/ /*程序主体部分*/

C语言课程设计,猜数游戏软件

from 0 to 9\n"); key=0; break; } } if(key==1) continue; for(i=0;i<5;i++) { for(j=i+1;j<5;j++) { if(num[i]==num[j]) { printf("Error! The numbers you input must be different!\n"); key2=1; } break; } } if(key2==1) continue; A=0; /*判断是否输入了相同的数字*/

C语言课程设计,猜数游戏软件

B=0; for(i=0;i<5;i++) { if(num[i]==aid[i]) A++; } for(i=0;i<5;i++) { for(j=0;j<5;j++) { if(num[i]==aid[j]) B++; } } B=B-A; printf("A%dB%d\n",A,B); if(A==5) /*游戏成功,提示并返回*/ /*比较两组数组*/{ printf("Congratulations!\n"); printf("Press any key to exit!\n"); getch(); }

C语言课程设计,猜数游戏软件

else { and exit.\n"); ch=getch(); if(ch=='n') { continue; } if((ch=='a')||(ch=='A')) { printf("%d%d%d%d%d\n",aid[0],aid[1],aid[2],aid[3],aid[4]); getch(); } score=(A/5.0)*100; /*给出分数*/ printf("Press ENTER to continue,or press A to see about answerprintf("The score is %d \n",score);times++; } }}

C语言课程设计,猜数游戏软件

void {play()double a; int x1,x2,color=1; int gdriver=DETECT,gmode; initgraph(&gdriver,&gmode,""); cleardevice(); for(a=1;a<=600;a+=1) { setcolor(color); x1=220+100*cos(a/47.75); x2=280+100*sin(a/47.75-PI/2); /*用余弦函数确定坐标*/ /*用正弦函数确定坐标*/ /*进行图形初始化*/line(a,x1,a+80,x1); line(a,x2,a+80,x2); delay(10000); color++; if(color>15) color=1; } getch();/*用 line()函数连接相同纵坐标*/ /*用 line()函数连接相同纵坐标*/

C语言课程设计,猜数游戏软件

closegraph(); }void main(){void play(); int i; play(); system("cls"); textcolor(10); textbackground(2); gotoxy(10,5); cprintf(" gotoxy(10,8); GUESS/*主菜单*//*调用 DOS 命令,清屏,与 clrscr()相同*/ /*在文本模式中选择新的字符颜色*//*将光标定位*/ NUM GAME \n”);cprintf("####################MENU#####################\n"); gotoxy(10,9); cprintf("# gotoxy(10,10); cprintf("# gotoxy(10,11); WELCOME TO THE GAME ! #\n); #\n");

C语言课程设计,猜数游戏软件

cprintf("# gotoxy(10,12); cprintf("# gotoxy(10,13); cprintf("# gotoxy(10,14); cprintf(“ gotoxy(10,15); cprintf("# gotoxy(10,16); cprintf("# gotoxy(10,17); cprintf("# gotoxy(10,18); cprintf("# gotoxy(10,19); cprintf("# gotoxy(10,20); GOOD LUCK TO YOU ! 3 exit 2 rule 1 start game?(Y\N)#\n");#\n);#\n");#\n);#\n");#\n");#\n");#\n");#\n");cprintf("#######################################################\n"); /*cprintf()送格式化输出至文本窗口屏幕*/

C语言课程设计,猜数游戏软件

gotoxy(10,22); printf("Please choose :"); scanf("%d",&i); switch(i) { case 1: clrscr(); guess(); sleep(1); break; case 2: clrscr(); printf(" The Rules Of The Game\n"); /*输出游戏规则*/ /*调用 guess 函数*/ /*程序停止 1 秒钟*/printf("\n"); printf("\n"); printf("step 1 : printf("\n"); printf("\n"); printf("step 2 : printf("\n"); printf("\n"); printf("step 3 : A represent location and data are input the number !\n"); input the numbers of digits\n");

C语言课程设计,猜数游戏软件

correct\n"); printf("\n"); printf("\n"); printf(" B represent is wrong!\n"); sleep(5); break; case 3 : exit(0); default: break; } }九:小结与收获locationiscorrectbutdata/*退出游戏*/经过多次的上机实践学习,使我对 C 语言有了更进一步的认 识和了解,要想学好它要重在实践,要通过不断的上机操作才能更 好地学习它,通过实践,我也发现我的好多不足之处,首先是自己 在指法上还不行,经常按错字母,通过学习也有所改进;再有对 C 语言的一些标准库函数不太了解, 还有对函数调用的正确使用不够 熟悉,还有对 C 语言中经常出现的错误也不了解,通过实践,使

C语言课程设计,猜数游戏软件

我在这几个方面的认识有所提高。通过这次程序设计对 for 循环也有了进一步的认识,同时也了解了一些书本之外的知识,特别是动画效果。通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学 习 C 语言,还是其它的语言,以及其它的计算机方面的知识都要 重在实践,所以后在学习过程中,我会更加注视实践操作,使自己 便好地学好计算机。 十:参考文献 [1]《C 语言程序设计教程》 学出版社 [2]《C 语言程序设计上机指导与习题选解》主编:杨路明 邮电大学出版社 [3] 《C 语言程序设计(第二版)》 主编:谭浩强 出版社 [4]《C 语言程序开发范例宝典》 [5]《编程大讲坛 业大学出版社 09 级电子(2)班 张蒙 0908252 2010 年 6 月 13 人民邮电出版社 电子工 清华大学 北京 主编:杨路明 北京邮电大C 语言核心开发技术从开发到精通》

C语言课程设计,猜数游戏软件

物理与电子信息学院课程设计评定主要内容包括:设计报告内容的完整性和完成情况、报告格式的规范性、通过课程 设计取得的收获等。指 导 教 师 评 语

本文来源:https://www.bwwdw.com/article/g0g4.html

Top