猜数字游戏课程设计报告.docx
猜数字游戏课程设计报告 学校 C程序设计 课程设计报告 设计题目:猜数字游戏 附录完整源代码 专业: 班级: 学生: 学号: 指导教师: 起止时间: xxx.x.x -xxx.x.x xxxx-xxxx年 xx 学期 录 1 、程序设计描述 1.1 程序设计目的: 1.2 程序设计要求: 1.3、猜数字游戏的简介: 2 、程序设计内容: 2.1、游戏主要框架图: 2.2、开始游戏框架: 2.3、最佳排行框架: 2.4、游戏操作说明模块: 2.5、退出游戏系统: 2.6、游戏系统总流程图: 3、猜数字游戏源代码: 3.1、void main()函数函数功能: 3.2、void game();/双人游戏 void pgame();/单人游戏 3.4、排行榜模块函数功能: 3.5、继续游戏模块函数功能: 3.6、操作说明模块函数功能: 4、调试与测试: 4.1、调试方法 4.2、测试结果的分析与讨论 4.3、测试过程中遇到的主要问题及采取的解决措施 5、程序具体说明书: 6、程序设计心得: 7、参考文献 、程序设计描述 1.1 程序设计目的: 综合使用所学过的C语言程序设计知识,掌握结构化程序设计的基本思路和方法,利用所学的基本知识和技能,发挥自学能力和查找资料的能力,解决稍微复杂的结构化程序设计问题,加深对所学知识的理解与掌握,增强学生利用自己所学知识解决实际问题的能力,为以后的程序开发打下基础。 1.2 程序设计要求: 1、巩固和加强C语言程序设计课程的理论知识。 2、掌握语言的基本概念、语法、语义和数据类型的使用特点。 3、掌握语言程序设计的方法及编程技巧,能正确使用语言编写程序。 4、进一步理解和运用结构化程设计的思想和方法;学会利用流程图。 5、掌握调试程序的基本方法及上机操作方法。 6、掌握书写程设计开发文档的能力,学会撰写课程设计总结报告。课程设计的思想和方法还可以作为做毕业论文时的参考资料。 7、通过查阅手册和文献资料,培养独立分析问题和解决问题的能力。为做毕业设计打好基础。 8、培养自己的创新能力和创新思维。可以根据指导书和相关文献上的参考算法,自己设计出相应的应用程序。 9、培养自己良好的程序设计风格。在实际编程中,为了提高编程质量,对空行、空格和注释均有要求。在课程设计书写代码时,应该严格按要求处理,以便建立良好的程序设计风格。 1.3、猜数字游戏的简介: 猜数字游戏(又称 Bulls and Cows )是一种大概于20世纪中期兴起于英国的益智类小游戏。一般由两个人玩,也可以由一个人和电脑玩,在纸上、在网上都可以玩。这种游戏规则简单,但可以考验人的严谨和耐心。 2 、程序设计内容: 2.1、游戏主要框架图: 该模块为玩家提供猜数字游戏的主体功能,即开始游戏、继续游戏、最佳排行、操作说明、退出游戏。给用户一个清晰明了的操作界面!流程图如下: 系统模块结构图 2.2、开始游戏框架: 单人游戏由系统产生4个随机数,并按任意顺序排列,作为游戏的原始数字供玩家进行猜数字游戏。 双人游戏有主用户知己定义输入输入,再用另一用户猜测! 单人、双人游:提示用户数值和位置全对的数字个数,和只有数值但位置不对的数字个数。 原始数字显示:当用户在8次之内仍未能猜出原始数字和顺序时,系统提示玩家失败,并给玩家显示出原始数字和顺序。 2.3、最佳排行框架: 进入该界面后,进行提示由于技术问题此项有待解决! 个人认为最佳排行的应有的功能想法(有待改进) 该模块为玩家提供排行榜的浏览和清除功能,包括按玩家成绩顺序浏览、按玩家姓名浏览和清除排行榜功能。 2.4、游戏操作说明模块: 进入该界面后,进行提示由于技术问题此项有待解决!当玩家选项为帮助功能对应的选项数字时,进入帮助模块,给出用户猜数字的游戏规则和游戏中相关提示的含义和简单提示。 2.5、退出游戏系统: 该功能主要是在主界面操作,为方便用户退出游戏功能 2.6、游戏系统总流程图: 、猜数字游戏源代码: 游戏主程序调用的函数如下: #include #include #include #include "process.h" #define N 4 /随机抽N个数 #define NUM 8 /NUM次猜数的机会 void mainmenu();/游戏主菜单 void bestmenu();/最佳排行子菜单Best ranking void continumenu();/继续游戏子菜单Continue to game void operationmenu();/操作说明子菜单operation explanation void playgame();/新游戏子菜单 void game();/双人游戏 void pgame();/单人游戏 void gotoxy(int x,int y) COORD c; c.X = x - 1; c.Y = y - 1; SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c); 3.1、void main()函数函数功能: 功能:软件执行的入口,在函数所在的程序头部包含可部分系统必须的头文件和完成其他功能的源文件。在该函数中还提供了系统功能选择的平 台,提示用户系统可用的功能有哪些和这些功能的选项代码。并给用户提供 输入功能选项代码的接口,当用户输入选项代码后,即显示给用户相应的功 能处理界面或结果。 欢迎界面 while(1) system("color 6A") ;/颜色代码 mainmenu();/调用游戏主菜单 printf(" 请输入序号:"); choose=getchar();switch(choose) case '1': do int x; playgame();/调用开始新游戏子菜单 printf(" 请输入序号:"); editch=getchar(); switch(editch) case '1':game(); loop1:printf(" |*按0键返回两人游戏菜单*|n"); scanf("%d",&x); switch(x) case 2: printf(" |*按0键返回两人游戏菜单*|n"); pgame(); goto loop1; break; case '2':pgame(); loop2:printf(" |*按0返回两人游戏菜单*|n"); scanf("%d",&x); switch(x) case 2: printf(" |*按0返回两人游戏菜单*|n");pgame(); goto loop2; break; case '0': system("cls");/C+清屏函数 printf("nnnnnn 操作结束,返回主菜单!"); getch();system("cls");break; while(editch!='0');break; case '2': do continumenu();/调用继续游戏子菜单 printf(" 按“0”返回上一级菜单:"); editch=getchar();switch(editch) case '0': system("cls");/C+清屏函数 printf("nnnnnn 操作结束,返回主菜单!"); getch();system("cls"); break; while(editch!='0');break; case '3': dobestmenu();/调用最佳排行子菜单 printf(" 按“0”返回上一级菜单:"); editch=getchar();switch(editch) case '0': system("cls"); printf("nnnnnn 操作结束,返回主菜单!"); getch();system("cls");break; while(editch!='0');break; case '4': do operationmenu();/调用操作说明菜单 printf(" 按“0”返回上一级菜单:"); editch=getchar(); switch(editch) case '0': system("cls"); printf("nnnnnn 操作结束,返回主菜单!"); getch();system("cls");break; while(editch!='0');break; case '0':/退出猜数字游戏系统 system("cls"); printf("nnnnnn 游戏结束,退出系统!"); getch(); system("cls"); exit(0); 3.2、void game();/双人游戏