• 回答数

    6

  • 浏览数

    83

Z.L.小姐
首页 > 期刊论文 > c语言编程小游戏毕业论文

6个回答 默认排序
  • 默认排序
  • 按时间排序

lisalisa喵喵

已采纳

# include<># include <># include <># include <># pragma comment(lib,””) //引用Windows Multimedia APT int score =0; //全局变量********整型的分数char s[5]; //全局变量****字符型的分数struct player_ //自定义的结构体,并顺便定义一个结构体变量 {char name[20];int score_;}player[11];/***************函数声明*****************/void record_(); //记录彼此成绩函数void welcome( ); //欢迎界面函数void instructions( ); //游戏说明界面函数void gane (int rank2); //游戏函数void record ( ); //显示记录函数int rank_(char rank1); //等级选择函数void goodbye ( ); //退出界面函数 /**************主函数**************/int main (){ char rank1; //rank1接受从键盘输入的字符,根据字符判断等级 int rank2=15; // 控制延时时间,从而控制速度 intsign=1; // 当做标记,用于标记是否弹出MessageBox对话框welcome ( ); //调用欢迎界面函数 instructions ( ); //调用游戏什么函数 record( ); //调用显示记录函数 InputBox(player[10].name,20,"请输入玩家昵称"; //以对话框形式获取用户输入函数 rank1=getch();//读入一个字母 rank2=rank_(rank1); //调用等级函数 game (rank2); //调用游戏函数 HWND wnd =GetHWnd(); while (sign) //sign作为标记,执行循环 if (MessageBox(wnd,"游戏结束!!!\n再来一局,挑战更高分数","询问",MB_YESNO|MB_ICONQUESTION)==IDYES) game (rank2); else { sign=0; goodbye( ); } closegraph( ); return 0;}/***************记录本次成绩函数***************/void record_(){ FILE*fp; //文件指针 int i,j; struct player_t; //定义结构体变量t,冒泡法比较大小时用 player[10].score_=score; //把该局的分数赋给该局用户的结构体变量中 fp=fopen("记录.dat","rb"); //打开二进制文件 for (i=0;i<10;i++) { fread(player[i].name,20,l,fp); //读入记录中的成绩和名字 fread (&player[i].score_,4,l,fp); } fclose(fp); //关闭二进制文件 for (j=0;j<10;j++) //冒泡法排序 for (i=0;i<10-j;i++) if (player[i].score_) { t=player[i]; player[i]=player[i+1]; player[i+1]=t; } fp=fopen("记录.dat","wb"); //打开文件 for (i=0;i<10;i++) //把排好序列的数据存入记录文件 { fwrite(player[i].name,20,l,fp); fwrite (&player[i].score_,4,l,fp); } fclose(fp); //关闭文件} /****************欢迎界面函数****************/ void welcome ( ) { char ch; mciSendString("open\"res\\Sleep \"alias mymusic",NULL,0,NULL); initgraph(640,480); //初始化画图界面 IMAGE img; //定义IMAGE对象 loadimage (&img,"res\\"); //读取图片到img对象中 putimage (0,0,&img); //在坐标(0,0)位置显示IMAGE对象 ch=getch(); //吸收掉一个按键 cleardevice(); //清屏 } /***************游戏说明界面函数**************/ void instructions() { int c=255; //控制变色的变量 setcolor(YELLOW); //设置颜色 setfont (30,0,"黑体"); //设置字体 outtextxy(0,0,"游戏说明"); //输出文字 setcolor(WHITE); setfont(28,0,"宋体"); outtextxy(0,30,"一、每次游戏下落200个字母"); //输出文字 outtextxy(0,58,"二、请按数字键选择游戏等级"); outtextxy(0,86,"三、统计被击中的个数"); setfont(30,0,"华文行楷") outtextxy (20,220,"等级一二三四 五六七八九"); outtextxy(20,260,“按键 1 2 3 4 5 6 7 8 9”); while (!kbhit()) //kihit()作用是判断是否有字幕输入 { setcolor(RGB(c,255,0)); setfont (80,0,"楷体"); outtextxy(140,130,"请选择等级"); setcolor(RGB(c,0,255)); setfont(100,0,"Wickenden Cafe NDP"); outtextxy(100,135,"Let's go!!!"); c-=25; //控制颜色的变量自减 if(c<0)c=255; //控制颜色的变量小于0时,再把255赋给c cleardevice(); //清屏 } /***************退出界面函数***************/ void goodbye() {int c=255; //控制变色变量 cleardevice(); //清屏 setcolor(YELLOW); setfont (48,0,"黑体"); outtextxy (104,120,"的最终成绩是: "); setfont (48,0,"华文楷体"); setcolor(RGB(255,255,0)); outtextxy(140,320,"按任意键退出游戏"); setcolor(YELLOW); setfont(48,0,"黑体"); outtextxy (104,120,"的最终成绩是: "); outtextxy(104,70,player[10].name); record_(); //调用记录本次成绩函数 while(!kbhit()) { setcolor(RGB(255,0,c-100)); //设置颜色 setfont(100,0,”Wickenden Café NDP”);outtextxy(400,90,s); //输出数字setcolor(RGB(c,0,255));setfont(48,0,”黑体”);if (score==200)outtextxy(100,200,”全部击中!!!”);elseif(score>190)outtextxy(100,200,”不错!继续加油!”);elseouttextxy(100,200,”不要灰心!继续加油!”);c-=25;if(c<0)c=255;Sleeep(20); //延时20秒}getch( ); //提供给用户时需要等待输入后再退出} /**************等级选择函数**************/int rank_(char rank1){int rank2;switch(rank1) //判断字符,确定等级{case’0’:rank2=11;break;case’1’:rank2=10;break; case’2’:rank2=9;break; case’3’:rank2=8;break;case’4’:rank2=7;break;case’5’:rank2=6;break;case’6’:rank2=5;break;case’7’:rank2=4;break;case’8’:rank2=3;break;case’9’:rank2=2;break;default:rank2=15;break;}return rank2;} /**************显示记录函数***********/void record( ){FILE *p; //文件指针int a[10],j;char b[10][10];fp=fopen(“记录。dat”,”rb”); //打开文件for (j=0;j<10;j++){fread(player[j].name,20,1,fp); //读取文件中的信息fread(&player[j].score_,4,1,fp);}fclose(fp); //关闭文件setfont(60,0,”Arial”);setcolor(RGB(250,250,0));outtextxy(250,0,”TOP10”);for(j=0;j<10;j++){sprintf(“b[j],%d”,player[j].score_); //把整型转换为字符型setcolor(RGB(0,100,255));setfont(40,0,”Arial”);outtextxy(420,50+40*j,b[j]);outtextxy(120,50+40*j,player[j].name); //输出名字 /**********游戏函数******************/void game (int rank2){cleardevice( ); //清屏score=0; //清除掉原有的分数outtextxy(0,0,”玩家:”);outtextxy(90,0,player[10].name);setfont(20,0,”Arial”);outtextxy(100,460,” 人生有享受片刻优雅恬适的权力,让打字母游戏放松你一下吧!”);int i;char target; //目标字母char key; //用户的按键intx,y; //字母的位置int flag =1; //标记是否按了退出键int sum=0; //成绩计数int num =200; //规定下落字母的个数 srand (time(NULL)); //随机时间种子,设置第一个随机函数的值setfillstyle(BLACK); //设置下面矩形内图的颜色setcolor(YELLOW); //line(0,450,640,450); //用3条线规定一下工作区line(0,440,640,440); //用3条线规定一下工作区line(0,40,640,40); //用3条线规定一下工作区 while (flag&&num){setfont(40,0,”宋体”); //设置字母的字体和大小i=rand()%2; //rand()函数返回0~32767之间的一个整数if(i)target=97+rand()%26; //产生任意小写字母elsetarget=65+rand()%26; //产生任意大写字母x=rand()%610; //产生任意下落位置for (y=41;y<380;y++){setcolor (RGB(255,0,255));outtextxy(x,y,target); //显示字母 if(kbhit()){key=getch(); //获取用户按键if ((key==target)||( key==target-32)||( key==target+32)){score++; //分数统计sprintf(s,”%d”score);setfont(30,0,”Arial”);outtextxy(500,0,“分数”);outtextxy(600,0,s); //输出分数bar(x-10,y-10,x+35,y+50); // 击中用黑框形擦去字母break; //跳出循环,进行下一个字母}else if (key==27) //判断是否按了{flag=0; //若果按ESC,退出游戏主循环break;}}Sleep(rank2); //控制清除字母的时间爱你也就是控制下落速度bar(x,y,x+35,y+60); //擦最下面的字符}num--; //计数}}

125 评论

水墲月心时

中职学校的C语言教学 论文摘要:随着我国经济的不断发展,计算机专业毕业生有很广阔的就业市场,然而计算机行业人才济济,就业竞争激烈,中职学校的计算机专业学生就不能局限于一些常用的应用软件的学习,C语言的学习显得尤为重要。本文主要浅谈了中职学校的C语言教学体会。论文关键词:中职学生;C语言;教学目标 为拓展中职学生的就业渠道,C语言课程的学习必不可少。C程序设计是计算机应用人员应掌握的基本功,是计算机软件开发的入门语言,主要培养学生算法设计的基本思想和程序设计的基本技能。下面我就谈一下几年来C语言教学的一些体会。 一、培养学习兴趣 兴趣是入门教育的关键.培养学习兴趣很重要。由于多数中职学生没有接触过计算机语言.因此需要培养他们的学习兴趣。针对中职学生基础不扎实及本课程枯燥深奥的特点。教师应采取多媒体教学,向学生展示一些趣味性的问题并演示实用性的程序,想方设法吸引学生。如给学生讲解“水仙花数、猴子吃桃、翻译密码、判断素数”等问题,并让学生用编程软件解决这些问题,同时运行C程序,使学生在亲身实践中体会到乐趣;另外,可以通过一些影片向学生介绍一些lT人士的经历和成功经验,增强学生学习C语言的信心和动力。 二、选择适合中职教育的教材与教学方式。合理设置教学目标 中职学生普遍基础知识不扎实。所以教材内容要强调基础性,语言表达力求通俗浅显易懂,以程序设计为主线,以编程应用为驱动,通过案例和问题引出知识重点,重点讲解程序设计的思想和方法,穿插讲解相关的语言知识,使教学效果既有深度又有广度,选择的教材尽量符合初学者的要求。 C语言最主要的教学方式除了教师上课就是让学生上机实践。这是很重要的`一个环节。教师讲得再好。学生感觉“能看懂”“能听懂”。却不动手实践,仍然掌握不了知识,更谈不上运用。在上机过程中,学生可以进一步理解和掌握课堂所讲知识,许多不清楚或不理解的问题通过上机操作可迎刃而解。在组织学生上机实践过程中。教师要适当地设计一些难度适中的作业,激发学生开动脑筋,让学生自己在有目的的情况下,去寻找解决的方法,让其真正当学习的主人,最大限度地激励学生的学习积极主动性。总之。我们应当十分重视动手编写程序和上机运行程序。 教学目标是学生学习的目的。教学目标的定位,要根据教学对象的特点而定。就中职学生而言,教学目标是提高分析问题、解决问题的能力。重点分析程序设计过程,形成程序设计过程理念。能够读程序。编写一些简单程序,培养学生良好的编程习惯,逐步提高学生编程能力。C语言的学习只是程序设计的开端,所以我们教师不要设置好高鹜远的教学目标。 三、分组教学,培养自学能力。注重培养团队合作精神 由于中职学生自主学习能力、自控能力没有大学生强,所以中职学生很容易失去上机兴趣,也就达不到上机实践的目的。为此,教师可适当转变上机实践的形式:以小组形式上机实践。上机前分配给每个学习小组不同的学习任务。组长负责分工.让本组学生利用课余时间去思考、查询收集资料,上机时各组分别完成相应任务。然后相互演示成果,分析优劣利弊,再互换任务,最后讨论编程体会,取长补短。在此过程中教师适当指导,主要过程可由学生自行解决,让学生在切磋的过程中自主学习并且培养团结合作的精神。 四、激励式教学。适当引入考核机制,启发学生求知欲 在教学中培养学生创造力需要用考核这个手段来激励、鼓舞学生,考核应从两个方面入手,可采用“问题式”“阶段式的办法。“问题式”就是根据学生课堂所学知识,在上机实践课时,让学生独立解决一个实际应用题、完成一个小游戏等。“阶段式”就是把一个阶段所学知识进行一次考核,但知识点不宜过多。有了考核机制.就能最大限度地激励学生的学习潜能。 五、课后及时反馈,逐步改进教学方案和方法 要想提升教学业务水平,提高教学效果,就必须听取多方面的建议与意见。首先要经常听听学生的心声。学生就是上帝。学生的需求就是我们的追求与目标。其次来自教研组和教学检查组。教研组和教学检查组的意见具有指导作用。最后是来自企业调研。为了防止知识陈旧过时.我们教师可以通过暑期去软件公司工作实践和调研.了解他们的需求,切合实际需要.重新修改教学方案,让学生能学以致用。 以上是本人在中职学校担任计算机C语言课程教学的一些体会,我会在以后的教学中细心观察,不断地去探索研究.不断丰富教学经验,为中职教育事业贡献一份力量。论文相关查阅: 毕业论文范文 、 计算机毕业论文

271 评论

zhzhohohzh

Please input player name:wydChoose (A)5/3 or (B)3/2:aSelect Jiandao(J) or Shitou(S) or Bu(B): sComputer is Shitou(S)The same!Select Jiandao(J) or Shitou(S) or Bu(B): bComputer is Jiandao(J)You Lost!Select Jiandao(J) or Shitou(S) or Bu(B): jComputer is Jiandao(J)The same!Select Jiandao(J) or Shitou(S) or Bu(B): sComputer is Shitou(S)The same!Select Jiandao(J) or Shitou(S) or Bu(B): bComputer is Shitou(S)You Win!5 rounds, 1 win,3 same,1 lost,The Same!Press any key to continue#include <>#include <>#include <>main(){ int i,randAI,playerGuess,score[3]={0},round; char sel,player[20]={0},game[3][12]={"Jiandao(J)","Shitou(S)","Bu(B)"}; srand((unsigned)time(NULL)); printf("Please input player name:"); gets(player); printf("Choose (A)5/3 or (B)3/2:"); scanf("%c",&sel); if (sel=='A' || sel=='a') round =5; else if (sel=='B' || sel=='b') round =3; else printf("select error!\n"); for (i=0;iscore[2]) printf("%d rounds, %d win,%d same,%d lost,%s win!\n",round,score[0],score[1],score[2],player); else if (score[0]

339 评论

小宇宙晴

编写程序:题目:纸牌游戏 编号为1~52的牌,正面向上,从第2张开始,以2根据题意的翻牌规则 即求约数的过程 一个数的约数如果去掉1 包含自身的个数

135 评论

德高防水专卖店

#include //为获得随机数#include //获取时间void main(){ int a,b; srand(time(0)); a=1+(rand()%100); //获得一个100以内的随机数 while(1) { printf("猜一猜是多少:"); scanf_s("%d",&b); if(ba) { printf("输入的太大了"); } else { priC语言编程:编写一个猜数的游戏,系统自动产生一个

293 评论

VV爱吃007

#include<># include ""int getComputerType() { srand((unsigned)time(NULL)); return rand()%3+1;}void printType(int type) { switch (type) { case 1: printf("石头\n"); break; case 2: printf("剪刀\n"); break; case 3: printf("布\n"); break; }}int Compare(int userType, int computerType) { if (userType == computerType) { return 0; } switch (computerType) { case 1: if (userType == 2) { return -1; } else { return 1; } break; case 2: if (userType == 1) { return 1; } else { return -1; } break; case 3: if (userType == 1) { return -1; } else { return 1; } break; }}int main() { int i; char name[20]; int rule; int userType; int computerType; int userWinNum = 0; int computerWinNum = 0; while (1) { printf("输入玩家名字:"); gets(name); printf("选择模式1. 三局两胜;2. 五局三胜:"); scanf("%d", &rule); if (rule != 1 && rule != 2) { printf("模式选择错误!请输入1或2进行选择。\n\n"); continue; } printf("1.石头;2.剪刀;3. 布"); for (i=1; i

134 评论

相关问答

  • c语言编程小游戏毕业论文

    # include# include # include # include # pragma comment(lib,”Winmm.lib”) //引用Wi

    Z.L.小姐 6人参与回答 2023-12-10
  • 幼儿游戏语言论文

    如何让幼儿园语言课堂游戏化教学论文幼儿园教学的基本形式与中、小学上课不同,因受课对象是3-6岁的幼儿,这时期的幼儿求知欲旺盛,对周围的事物表现出强烈的兴趣,好奇

    画布大小 3人参与回答 2023-12-08
  • 论文查重c语言程序查吗

    程序部分查不到,只能查到文字部分。那个东西主要原理就是字的匹配,现在还没先进到能查程序和图片。

    火星电台666 5人参与回答 2023-12-08
  • 计算机编程语言毕业论文

    计算机专业毕业论文范文 摘要: 能量管理系统(EM S) 是当代大电网运行不可缺少的手段, 但是我国各电力公司EM S 应用软件的实用化程度还较低。最近, 国家

    恶魔漫步 6人参与回答 2023-12-08
  • c语言毕业论文格式

    做个毕设100分就有人做?真是值得怀疑?

    夏萱萱大人 4人参与回答 2023-12-10