第一篇:《C语言课程设计》实训教学计划
C语言程序设计》实训教学计划《
一、课程设计目的和意义:
1、通过本次课程设计,锻炼学生应用C语言的语法规则和已经掌握的一些较为简单的算法,自己解决一个较简单的课题,初步积累编程经验。
2、通过学习掌握程序设计的方法与编程技术,学会良好的程序设计风格,为计算机在不同领域的应用打下坚实的基础。
3、要求学生能利用计算机解决实际问题。从分析问题入手,设计可行的算法,进而编出相应的C程序。强调上机实践过程,从实际应用出发,上机实验环境用TURBO C。
二、时间安排
实训时间为1周。
三、设计题目、任务及要求
题目:学生成绩管理系统
自学C语言中有关链表及外部文件的内容,独立设计上述应用系统,并编程实现以下功能:
① 信息录入
录入通讯录信息(包括姓名、学号、各科成绩)。② 信息查询
输入学号,查询与学号相对应的信息。并按可选的自定义规则进行排序。③ 信息删除与修改
输入学号,删除该学号对应的成绩信息;
输入学号,查询并显示出该学号信息,并在此基础上进行修改。④ 根据以上功能需求,定义通讯录信息结构,并采用链表结构对数据进行存储;
⑤ 提供友好的用户界面,方便用户操作。
四、设计和调试过程规范化要求
设计步骤的规范不但可以培养学生科学的工作方法和作风,而且还能有效地减少错误,提高工作效率。因此必须严格执行良好的实验步骤规范(包括上级操作规范)。本课程设计的基本步骤是:
1、问题分析及解决方案框架确定
充分地分析和理解问题本身,弄清要求做什么(What to do?)。
在确定解决方案框架过程中(How to do?),综合考虑系统功能,考虑怎样使系统结构清晰、合理、简单和易于调试。最后确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系。
2、详细设计和编码
确定算法的主要流程,再此基础上进行代码设计(Coding),每个明确的功能模块程序一般不超过60行,否则要进一步划分。
3、上机前程序静态检查
上机前程序静态检查可有效提高调试效率,减少上机调试程序时的无谓错误。静态检查主要有两种途径:用一组测试数据手工执行程序;通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑。把程序中的明显错误事先排除。
4、上机调试程序
5、完成课程设计报告
①需求和规格说明:问题描述:题目要解决的问题是什么 ②设计
设计思路:主要算法思想
设计表示:每个函数或过程的功能,列出每个过程或函数所调用的过程或函数
实现注释:各项功能的实现程度、在完成基本要求的基础上还实现了什么功能
③测试报告:调试过程中遇到的主要问题,是如何解决的;对设计和编码的回顾讨论和分析;改进设想;经验和体会等
④附录:源程序清单和结果。如果题目规定了测试数据,则结果要包含这些测试数据和运行输出,当然还可以含其他测试数据和运行输出。
五、设计报告及书写内容要求
课程设计任务完成后,每位同学必须独立书写一份课程设计报告,课程设计报告的内容应包括以下五个部分:
1)需求分析:包括设计题目、设计要求以及系统功能需求分析; 2)概要设计:包括系统总体设计框架和系统功能模块图;
3)详细设计。包括主要功能模块的算法设计思路以及对应的工作流程图; 4)主要源程序代码。包括存储结构设计说明,以及完整源程序清单; 5)调试分析过程描述。包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等); 6)总结。包括课程设计过程中的学习体会与收获、对C语言和本次课程设计的认识以及自己的建议等内容。
六、考核方式
通过程序实现、总结报告和学习态度综合考评,并结合学生的动手能力,独立分析解决问题的能力和创新精神。成绩分优、良、中、及格和不及格五等。
考核标准包括:
1、程序设计的正确性,程序结构是否合理、编程风格(40%)。
2、学生的工作态度、动手能力、创新精神(20%)。
3、总结报告(30%)
4、考勤(10%)
第二篇:c语言综合实训
《C语言程序设计》综合实训
一、实训目的:
1、完成C语言程序设计课程的教学之后,通过1周的课程设计可以进一步巩固所学知识,加深理解。
2、指导和促使学生通过各种途径对C语言相关技术内容进行拓展和深入,增强自学能力、软件开发能力等综合能力的培训。
二、综合实训题目:学生成绩管理系统 完成下列功能:
1、初始化:把50个学生的学号、姓名、性别、年龄、四科成绩以及平均成绩和总成绩放在一个结构体数组中,学生的学号、姓名、四科成绩由键盘输入,然后计算出平均成绩和总成绩放在结构体对应的域中。
2、插入:输入一个学生的记录,按学号的先后顺序插入该学生的全部内容。
3、排序:对所有学生按要求排序(1.学号 2.总成绩),并输出。
4、查找:输入一个学生的学号或姓名,找到该学生并输出该学生的全部内容。要求能查询多次。
5、删除:输入一个学生的学号或姓名,找到该学生并删除该学生的全部内容。
6、输出: 输出全部学生的记录。
7、main调用所有函数,实现全部函数功能。
三、设计要求:
1、掌握《C语言程序设计》有关的专业基础知识和程序设计的基本方法。
2、学会利用程序的三种基本结构:顺序结构、选择结构、循环结构解决不同的问题。
3、学会根据实际需求定义变量及类型。
4、掌握过程和函数的定义及调用方法。
5、学会程序调试的基本方法。
四、时间分配:
序课程设计内容
号 1 2 3 4 界面设计 模块设计 程序综合调试 设计报告 总计
时)2 12 6
计学时
非上机时间完成不
时间(学
备注
五、实训报告要求
1、封面
2、目录
3、实训报告内容:
第一章 需求分析
第二章 系统设计
结构图 数据类型
第三章 程序实现
代码
第四章 心得与不足
设计题目 C语言程序设计实训 专业班级 网络101 学生姓名 学号 06 指导教师 张青 起止日期 2012.5.28—2010.6.1 河南化工职业学院
#include
main()
{ int i=9;
while(i)
{
printf(“n1.插入学生信息n”);
printf(“2.修改学生信息n”);
printf(“3.查询学生信息n”);
printf(“0.退出n”);
printf(“请选择功能:”);
scanf(“%dn”,&i);
switch(i)
{case 1:printf(“n1.插入学生信息n”);break;
case 2:printf(“n2.修改学生信息n”);break;
case 3:printf(“n3.查询学生信息n”);break;
default:printf(“n输入有误,重新输入n”);
}
}
}
第三篇:C语言上机实训
C语言上机实训 试题2 所属语言:C语言 试卷方案:C语言上机实训 试卷总分:100分 共有题型:3种
一、程序填空
共1题(共计30分)第1题(30.0分)
题号:470 /*------------------------【程序填空】
--------------------------
功能:从两个数组中分别提取任意元素x[i],y[j],问|x[i]-y[j]| 的最小值是多少 ?
------------------------*/ #include
/***********SPACE***********/
#define min(x, y)
(【?】)
x int min_distance(int x[], int y[], int m, int n){ int minimum = INT_MAX; int index_x = 0, index_y = 0; while(index_x < m && index_y < n) /***********SPACE***********/ if(【?】)x[index_x] >= y[index_y] { minimum = min(minimum, x[index_x]-y[index_y]); index_y++; } else { minimum = min(minimum, y[index_y]-x[index_x]); /***********SPACE***********/ 【?】index_x++; } return minimum; } #include int x[] = { 1, 3, 7, 11, 18}; int m = sizeof(x)/sizeof(int); int y[] = { 4, 5, 8, 13, 22}; int n = sizeof(y)/sizeof(int); int i, min_distance(int [], int [], int, int); printf(“nCompute Minimum Distance Between Two Sorted Arrays”); printf(“n====”); printf(“nnGiven Array #1 :”); for(i = 0;i < m;i++) printf(“%5d”, x[i]); printf(“nnGiven Array #2 :”); for(i = 0;i < n;i++) printf(“%5d”, y[i]); printf(“nnMinimum Distance = %d”, min_distance(x, y, m, n));} 答案: =======(答案1)======= x =======(答案2)======= x[index_x] >= y[index_y] =========或========= y[index_y]<=x[index_x] =======(答案3)======= index_x++ =========或========= index_x=index_x+1 =========或========= ++index_x 二、程序改错 共1题(共计30分)第1题(30.0分) 题号:26 /*----------------------- 【程序改错】 ------------------------- 功能:实现3行3列矩阵的转置,即行列互换。 -----------------------*/ #include int i,j,t; for(i=0;i for(j=0;j /**********FOUND**********/ scanf(“%d”,&a[i][j]); for(i=0;i { for(j=0;j printf(“%4d”,a[i][j]); printf(“n”); } for(i=0;i /**********FOUND**********/ for(j=0;j { /**********FOUND**********/ a[i][j]=t; a[i][j]=a[j][i]; /**********FOUND**********/ t=a[j][i]; } for(i=0;i { for(j=0;j printf(“%4d”,a[i][j]); printf(“n”); } } main(){ int b[3][3]; fun(b,3);} 答案: =======(答案1)======= scanf(“%d”,&a[i][j]);=========或========= scanf(“%d”,(*(a+i)+j)); =======(答案2)======= for(j=0;jj;j++)=========或========= for(j=0;j<=i;j++)=========或========= for(j=0;i>=j;j++)=========或========= for(j=i+1;j for(j=i;j =======(答案3)======= t=a[i][j]; =======(答案4)======= a[j][i]=t; 三、程序设计 共1题(共计40分)第1题(40.0分) 题号:341 /*-----------------【程序设计】 ------------------- 功能:删除所有值为y的元素。数组元素中的值和y的值由 主函数通过键盘输入。 -----------------*/ #include void fun(int bb[],int *n,int y){ /**********Program**********/ int i,j;for(i=0;i<*n;) { if(bb[i]==y) {for(j=i;j<*n;j++) bb[j]=bb[j+1]; *n=*n-1; } else i++; } /********** End **********/ } main(){ int aa[M],n,y,k; printf(“nPlease enter n:”);scanf(“%d”,&n); printf(“nEnter %d positive number:n”,n); for(k=0;k printf(“The original data is:n”); for(k=0;k printf(“nEnter a number to deletede:”);scanf(“%d”,&y); fun(aa,&n,y); printf(“The data after deleted %d:n”,y); for(k=0;k printf(“n”); wwjt();} void wwjt(){ FILE *IN,*OUT; int n; int i[10]; int o; IN=fopen(“in.dat”,“r”); if(IN==NULL) { printf(“Read FILE Error”); } OUT=fopen(“out.dat”,“w”); if(OUT==NULL) { printf(“Write FILE Error”); } for(n=0;n<10;n++) { fscanf(IN,“%d”,&i[n]); } fun(i,&n,3); for(o=0;o { fprintf(OUT,“%dn”,i[o]); } fclose(IN); fclose(OUT);} 答案:----------------------int i,j;for(i=0;i<*n;) { if(bb[i]==y) {for(j=i;j<*n;j++) bb[j]=bb[j+1]; *n=*n-1; } else i++; }---------------------- 试题1 所属语言:C语言 试卷方案:C语言上机实训 试卷总分:100分 共有题型:3种 一、程序填空 共1题(共计30分)第1题(30.0分) 题号:417 /*------------------------【程序填空】 -------------------------- 功能:利用全局变量计算长方体的体积及三个面的面积。 ------------------------*/ #include int v; /***********SPACE***********/ v=【?】; s1=a*b; /***********SPACE***********/ s2=【?】; s3=a*c; return v;} main(){ int v,l,w,h; printf(“ninput length,width and height: /***********SPACE***********/ scanf(”%d%d%d“,【?】,&w,&h); /***********SPACE***********/ v=【?】; printf(”v=%d s1=%d s2=%d s3=%dn“,v,s1,s2,s3);} 答案: ”); =======(答案1)======= a*b*c =========或========= a * b * c =======(答案2)======= b*c =========或========= b * c =======(答案3)======= &l =======(答案4)======= vs(l,w,h)=========或========= vs(l , w , h) 二、程序改错 共1题(共计30分)第1题(30.0分) 题号:392 /*----------------------- 【程序改错】 ------------------------- 功能:统计出若干个学生的平均成绩,最低分以及得最低分的人数。例如:输入10名学生的成绩分别为92,87,68,56,92,84,67,75,92,66,则输出平均成绩为77.9,最低高分为56,得最 低分的人数为1人。 -----------------------*/ #include float Min=0;int J=0;float fun(float array[],int n){ int i;float sum=0,ave; Min=array[0]; for(i=0;i { if(Min>array [i])Min=array [i]; /**********FOUND**********/ sum=+array [i]; } /**********FOUND**********/ ave=sumn; for(i=0;i /**********FOUND**********/ if(array [i]=Min)J++; return(ave);} main(){ float a[10],ave; int i=0; for(i=0;i<10;i++) scanf(“%f”,&a[i]); ave=fun(a,10); printf(“ave=%fn”,ave); printf(“min=%fn”,Min); printf(“Total:%dn”,J);} 答案: =======(答案1)======= sum+=array[i];=========或========= sum=sum+array [i]; =======(答案2)======= ave=sum/n; =======(答案3)======= if(array [i]==Min)J++; 三、程序设计 共1题(共计40分)第1题(40.0分) 题号:390 /*-----------------【程序设计】 ------------------- 功能:编写函数求1~100中奇数的平方和。 结果为166650.000000。 -----------------*/ #include float sum(int n){ /**********Program**********/ /********** End **********/ } main(){ printf(“sum=%fn”,sum(100)); wwjt();} void wwjt(){ FILE *IN,*OUT; int i; float o; IN=fopen(“in.dat”,“r”); if(IN==NULL) { printf(“Read FILE Error”); } OUT=fopen(“out.dat”,“w”); if(OUT==NULL) { printf(“Write FILE Error”); } for(j=0;j<5;j++) { fscanf(IN,“%d”,&i); o=sum(i); fprintf(OUT,“%fn”,o); } fclose(IN); fclose(OUT);} 答案:----------------------float s=0;int i;for(i=1;i<=n;i=i+2) s=s+i*i;return(s);---------------------- 试题3 所属语言:C语言 试卷方案:C语言上机实训 试卷总分:100分 共有题型:3种 一、程序填空 共1题(共计30分)第1题(30.0分) 题号:410 /*------------------------【程序填空】 -------------------------- 功能:有n个整数,使其前面各数顺序向后移m个位置,最后m个数 变成最前面的m个数 ------------------------*/ #include /***********SPACE***********/ move(【?】)int n,m,array[20];{ int *p,array_end; /***********SPACE***********/ array_end=*(【?】); for(p=array+n-1;p>array;p--) /***********SPACE***********/ *p=*(【?】); *array=array_end; m--; if(m>0)move(array,n,m);} main(){ int number[20],n,m,i; printf(“the total numbers is:”); scanf(“%d”,&n); printf(“back m:”); scanf(“%d”,&m); for(i=0;i scanf(“%d,”,&number[i]); scanf(“%d”,&number[n-1]); /***********SPACE***********/ move(【?】); for(i=0;i printf(“%d,”,number[i]); printf(“%d”,number[n-1]);} 答案: =======(答案1)======= array,n,m =======(答案2)======= array+n-1 =========或========= array + n-1 =======(答案3)======= p-1 =========或========= p-1 =======(答案4)======= number,n,m 二、程序改错 共1题(共计30分)第1题(30.0分) 题号:413 /*----------------------- 【程序改错】 ------------------------- 功能:读取7个数(1-50)的整数值,每读取一个值,程序打印 出该值个数的*。 -----------------------*/ #include int i,a,n=1; /**********FOUND**********/ while(n<7) { do { scanf(“%d”,&a); } /**********FOUND**********/ while(a<1&&a>50); /**********FOUND**********/ for(i=0;i<=a;i++) printf(“*”); printf(“n”); n++;} } 答案: =======(答案1)======= while(n<=7) =========或========= while(n<8) =======(答案2)======= while(a<1||a>50);=========或========= while(a>50||a<1); =======(答案3)======= for(i=1;i<=a;i++) 三、程序设计 共1题(共计40分)第1题(40.0分) 题号:337 /*-----------------【程序设计】 ------------------- 功能:将两个两位数的正整数a、b合并形成一个整数放在 c中。合并的方式是:将a数的十位和个位数依次放 在c数的百位和个位上,b数的十位和个位数依次放 在c数的十位和千位上。 例如:当a=45,b=12。调用该函数后,c=2415。 -----------------*/ #include void fun(int a, int b, long *c) { /**********Program**********/ /********** End **********/ } main() { int a,b;long c; printf(“input a, b:”); scanf(“%d%d”, &a, &b); fun(a, b, &c); printf(“The result is: %ldn”, c); wwjt(); } void wwjt() { FILE *rf, *wf; int i, a,b;long c; rf = fopen(“in.dat”, “r”); wf = fopen(“out.dat”,“w”); for(i = 0;i < 10;i++) { fscanf(rf, “%d,%d”, &a, &b); fun(a, b, &c); fprintf(wf, “a=%d,b=%d,c=%ldn”, a, b, c); } fclose(rf); fclose(wf); } 答案:----------------------*c=a/10*100+a%10+b/10*10+b%10*1000;---------------------- C语言课程设计 飞机空战小游戏 一、实验环境 运行系统 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 void movebul(int [][N]);//子弹移动函数 void movepla(int [][N]);//敌机移动函数 void setting(void);//设置函数 void menu();//菜单 int scr[50][N]={0},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 a[i][width-1]=4; for(j=0;j { if(a[i][j]==0)printf(“ ”); if((a[i][j]==1)&&(x<15))printf(“%c”,x);//输出我机的符号 if((a[i][j]==2)&&(z<35))printf(“%c”,z);//子弹 if((a[i][j]==3)&&(y<4))printf(“%c”,y+1);//输出敌机符号 if(i==1&&j==width-1)printf(“总积分:%d”,score);//显示得分 if(i==2&&j==width-1)printf(“已经死亡了%d 次,剩余 %d 条命”,death,life-death);//右上角显示死亡次数 if(i==3&&j==width-1)printf(“普通按键:AD控制左右飞行”); if(i==4&&j==width-1)printf(“ W 发射子弹”);if(i==5&&j==width-1)printf(“特殊按键:+-号加减敌机速度”);if(i==6&&j==width-1)printf(“ /*号单列敌机密度减小增大(均有限制)”); if(i==7&&j==width-1)printf(“VIP按键:X键变化飞机图案,Y键变化敌机图案”); if(i==8&&j==width-1)printf(“tZ键变化子弹图案,P键增加生命(均有限制)”); if(i==9&&j==width-1)printf(“注意:向下移动后按其他方向键飞机显现”); } printf(“n”);} } void movebul(int a[][N]){ int i,j;for(i=0;i { if(i==0&&a[i][j]==2) a[i][j]=0; if(a[i][j]==2) { if(a[i-1][j]==3)//加分 { score+=1; printf(“7”); } a[i][j]=0,a[i-1][j]=2; } } } void movepla(int a[][N]){ int i,j;for(i=length-1;i>=0;i--)//从最后一行往上是为了避免把敌机直接冲出数组。 for(j=0;j if(i==length-1&&a[i][j]==3) a[i][j]=0;//消除敌机,在最低层 if(a[i][j]==3)a[i][j]=0,a[i+1][j]=3;//敌机移动 } if(a[length-2][pl]==3&&a[length-1][pl]==1)death++;//死亡 } void continuegame()//继续游戏 { printf(“用户%s”,name);printf(“你的得分是%dn”,score);if(score==0)printf(“tttt 恭喜你刷新了最低记录na”,score);if((score>0)&&(score<20)) printf(“tttt 回家再练 练吧na”,score);if(score>19) printf(“tttt 你真厉害 na”,score);printf(“游戏结束n”);printf(“按y键继续游戏,空格键退出游戏(y/n)?n”);printf(“ttt”);switch(getch())//是否要继续游戏 { case 'y': case 'Y':system(“cls”),death=0,score=0,life=1,x=5,y=0,z=15;menu();break;} } void setting(void)//设置函数 { system(“cls”);//清屏 printf(“n 输入游戏界面的大小(默认3):1-10 ”);scanf(“%d”,&width);width=(width+1)*5;printf(“n 请输入敌机密度大小(默认3):1-5 ”);scanf(“%d”,&density);density=(7-density)*10;printf(“n 输入敌机的飞行速度大小(默认3):1-10 ”);scanf(“%d”,&speed);speed=(11-speed)*2;printf(“n 输入我机的生命(默认1):1-100 ”);scanf(“%d”,&life);printf(“n 输入飞机的图案(默认1):1-2 ”);scanf(“%d”,&x);x=x+4;printf(“n 输入子弹的图案(默认1):1-10 ”);scanf(“%d”,&z);z=z+14;printf(“n 输入敌机的图案(默认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控制我机左右飞行,空格键发射子弹n特殊按键:-号敌机减速,+号敌机加速n特殊按键:/号单列敌机密度减小,*号单列敌机密度增大n”);printf(“VIP按键:X键变化飞机图案,Y键变化敌机图案ntZ键变化子弹图案,P键增加生命n”);printf(“任意键开始游戏,esc键进入游戏设置n”);printf(“游戏时也可更改游戏设置任意键开始nn”);system(“color a”);//设置背景颜色 if(getch()==27)setting();scr[length-1][pl]=1;//我方飞机初始位置 scr[0][5]=3;while(death { if(kbhit()) switch(getch())//控制设置按键 { case 'a': case 'A':if(pl>0) scr[length-1][pl]=0,scr[length-1][--pl]=1;break; case 'd': case 'D':if(pl scr[length-1][pl]=0,scr[length-1][++pl]=1;break;case 'W': case 'w':if(length>10) { scr[length-1][pl]=0,scr[length-2][pl]=1; length=length-1; };break; case '+':if(speed>2) { speed=speed-2; };break; case '-':speed=speed+1;break;case '*':if(density>5) { density=density-5; };break; case '/':density=density+10;break; case 'l':if(width<40) { width=width+2; };break; case 's':if(length<30) { scr[length-1][pl]=0; length=length+1; scr[length-1][pl]='5'; };break; case ' ':scr[length-2][pl]=2;break; case 'y':y=(y+1)%4;break; case 'x':x=(x)%2+5;break; case 'z':if(z<25) { z=z+1; } else z=15;break; case 'p':life=life+1;break;} if(++j%density==0)//控制生产敌机的速度 { j=0; srand(time(NULL));//产生随机数 scr[0][rand()%width]=3; scr[rand()%3][rand()%(width+2)]=3; scr[rand()%2][rand()%(width+1)]=3; scr[rand()%4][rand()%(width+4)]=3;//生成随机敌方飞机 } if(++i%speed==0)//控制敌机移动速度,相对于子弹移动速度 movepla(scr);//飞机移动 movebul(scr);//子弹移动 print(scr);//绘制游戏画面 } if(score>=max){ max=score; for(i=0;i { name[i]=first[i]; } } if(score score=score;} continuegame();getch();} void menu(){ printf(“n1:游戏设置n2:游戏说明n3:开始游戏n4:查看用户信息n5:退出游戏n”); switch(getch()){ case '1': setting();menu();break; case '2':printf(“游戏说明:按AWSD控制我机左右飞行,空格键发射子弹n特殊按键:-号敌机减速,+号敌机加速n特殊按键:/号单列敌机密度减小,*号单列敌机密度增大n”);printf(“VIP按键:X键变化飞机图案,Y键变化敌机图案ntZ键变化子弹图案,P键增加生命n”);printf(“ 任意键开始游戏,esc键进入游戏设置n”);printf(“ 游戏时也可更改游戏设置”);menu();break; case '3':run();menu();break; case '4':seerecord();menu();break; case '5':exit(0);break;default:menu();break;} } seerecord(){ printf(“最高纪录为%s,%d”,first[N],max);} C语言程序设计课程设计 设计题目:专业:计算机科学与技术班级:2010级计算机二班组长姓名:马得才【P101712944】成员姓名:孙丽欣【P101712927】 赵广峰【P101712926】 迟成凯【P101712928】 冶成意【P101712930】 2010年5月20日 题目: 指导教师:普措才仁 一、案例需求 二、案例分析 三、案例设计 四、案例实现 五、参考文献第四篇:C语言课程设计
第五篇:C语言课程设计范文