飞机空战小游戏。
一、实验环境。
运行系统 windowsxp
编程工具c++6.0
地点程序设计与**实验室。
桌号19电脑ip地址221.12.10.218
二、实验目的和要求。
实验目的:1)使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作算法。
2)使学生进一步掌握程序设计、编写、调试能力。
3)使学生了解软件开发的基本步骤和内容。
实验要求::飞机空战小游戏。
功能要求:1)有主菜单界面,能让用户选择开始、退出、难度等级、查看用户积分功能;
2)飞机能通过a、s、d、w或上下左右键控制移动方向,使用空格键发射子弹;
3)屏幕随机出现从上到下的敌方子弹;
4)当打中敌方子弹时,积分加1;
5)当敌方子弹打正飞机时,游戏结束,并提示用户是否保存记录(记录包括用户名及积分值),保存后退回到主菜单;
6)当选择主菜单中的“查看用户积分”选项时,进入第二级菜单,用户可查看全部用户积分记录,也可仅查看积分最高者,也可根据用户输入的用户名查看;(此处要求使用到链表,用于临时存储用户积分数据);(对链表的查找操作)
7)所有用户积分信息使用文件进行永久性保存;
8)用户选择“难度等级”,可设定游戏不同难度,难度越高,出现敌方子弹数目及间隔将增加。
三、实验内容和结果。
系统总体设计:编写出c语言**,运行程序,并调试程序,最终实现游戏的功能。本程序主要包含游戏控制函数、设置是否继续游戏函数、输出函数、子弹移动函数、敌机移动函数、设置函数、菜单函数等7个主要函数,包含了不同的功能,对原来的程序作出了很大的改进,用到的主要语句有if语句,for语句、while语句、printf语句、switch语句等等,添加了颜色函数。
系统模块设计:包含游戏控制函数、设置是否继续游戏函数、输出函数、子弹移动函数、敌机移动函数、设置函数、菜单函数等7个主要函数,其中是否继续游戏函数,菜单函数主要运用了switch语句和if语句,子弹移动函数,敌机移动函数通过数组内各数值的变化来完成,设置函数主要用printf和scanf语句进行各项数值的设置,游戏控制函数使用if函数,kbhit()函数,switch函数组合控制数组中飞机进行的移动和图案的变换。最后用打印数组的方式打印出数组变换。
最后运用switch函数进行各项菜单内容的操作。
实验的测试和结果:
四、实验中的问题及心得。
通过本次试验,使我对c语言有了更深一层次的了解,对for语句、while语句、printf语句、switch语句、颜色函数等等的了解及使用更加详细了一些,明白了这些语句的用法,明确了c语言的使用环境,功能。同时我了解到了一些方法来实现一些c语言作为一个基础性编程语言是我们在以后编程中不可或缺的语言,使用率肯定会进一步增高。掌握了c语言就相当于掌握了一门技术,同时c语言相对而言简单一些,更容易理解。
自己虽然对这个小游戏进行一部分的改造,但是我也感觉这只是其中的很很小的一部分,肯定会有更加强大的功能等待着我们去改善。
同时,我也发现了自己很多的不足,需要进一步加强这一方面的学习,在数据结构链表的使用上还很欠缺,无法使用链表进行数据的读取和输入,还有在两个程序的连接上还有困难,对于头文件的理解不到位,链表的结构,定义,使用指针的方式……这些都需要提高。这些技能的欠缺导致了在这个小游戏中无法顺利完成有关用户名和记录的一些要求。
附录:程序清单。
#include <>
#include <>
#include <>
#include <>
#define n 50
void run();游戏控制函数。
void continuegame();设置是否继续游戏函数。
void print(int n]);输出函数。
void movebul(int n]);子弹移动函数。
void movepla(int n]);敌机移动函数。
void setting(void);/设置函数。
void menu();菜单。
int scr[50][n]=,pl=9,width=15,speed=16,density=40,score=0,death=0,length=18,y=0,x=5,z=15,life=1,max=0;
/全局变量:界面、我机初始位、界面宽度、敌机速度、敌机密度、得分、死亡,子弹,飞机,敌机初始图案,生命。
char name[n];
char first[n];
void main()
menu();
getch();
void print(int a[n])/输出函数。
int i,j;
system("cls");
for(i=0;i
void movebul(int a[n])
int i,j;
for(i=0;i for(j=0;j
void movepla(int a[n])
int i,j;
for(i=length-1;i>=0;i--)从最后一行往上是为了避免把敌机直接冲出数组。
for(j=0;j
if(a[length-2][pl]==3&&a[length-1][pl]==1)death++;死亡。
void continuegame()/继续游戏。
void setting(void)//设置函数。
system("cls");清屏。
printf(" 输入游戏界面的大小(默认3):1-10 ")
scanf("%d",&width);
width=(width+1)*5;
printf(" 请输入敌机密度大小(默认3):1-5 ")
scanf("%d",&density);
density=(7-density)*10;
printf(" 输入敌机的飞行速度大小(默认3):1-10 ")
scanf("%d",&speed);
speed=(11-speed)*2;
printf(" 输入我机的生命(默认1):1-100 ")
scanf("%d",&life);
printf(" 输入飞机的图案(默认1):1-2 ")
scanf("%d",&x);
x=x+4;
printf(" 输入子弹的图案(默认1):1-10 ")
scanf("%d",&z);
z=z+14;
printf(" 输入敌机的图案(默认1):1-3 ")
scanf("%d",&y);
y=y-1;
void run()
int i=0,j=0,k=0,b=0;
printf("请输入用户名:")
scanf("%s",name);
printf("您的用户名是:%s",name);
if(getch()=27)setting();
printf("游戏说明:按awsd控制我机左右飞行,空格键发射子弹特殊按键:-号敌机减速,+号敌机加速特殊按键:/号单列敌机密度减小,*号单列敌机密度增大");
C语言课程课程设计
课程设计报告。课程名称 c语言程序设计 系别 xxx 专业班级 xxx班 学号 xxxxxxxxxx 姓名 xxx 课程题目 10或100以内儿童加减乘除算术游戏。完成日期 2013.6.14 19 指导老师 xxx 2013年 6月 21日。附件 一 程序模块图。二 源程序。include inc...
C语言课程设计
目录。1 c语言程序课程设计教学大纲。2 c语言程序课程设计说明书。3 c语言程序课程设计报告 模板 4 c语言程序课程设计成绩评定表。xx xx学院。课程教学大纲。课程名称 c语言程序课程设计。适用专业 课程类别 专业基础课。制订时间 2010年11月 计算机科学与技术系制。c语言程序课程设计教学...
C语言课程设计
目录。1 c语言程序课程设计教学大纲。2 c语言程序课程设计说明书。3 c语言程序课程设计报告 模板 4 c语言程序课程设计成绩评定表。珠海学院。课程教学大纲。课程名称 c语言程序课程设计。适用专业 2010级计算机科学与技术系各专业。课程类别 专业基础课。制订时间 2010年11月 计算机科学与技...