c语言课程设计报告模板及范文(c++课程设计报告模板)
今天给各位分享c语言课程设计报告模板及范文的知识,其中也会对c++课程设计报告模板进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
c语言实训贪吃蛇报告书
《高级语言程序设计》课程设计 实验报告
题目:贪吃蛇
专业:计算机
班级: 软件
姓名:
成绩:
指导教师:
完成日期:2008年09月23日
一、目的
1. 进一步掌握和利用C语言进行程设计的能力;
2、 进一步理解和运用结构化程设计的思想和方法;
3、 初步掌握开发一个小型实用系统的基本方法;
4、 学会调试一个较长程序的基本方法;
5、 学会利用流程图或N-S图表示算法;
6、 掌握书写程设计开发文档的能力(书写课程设计报告);
二、内容与设计思想。
(1).系统功能与分析(填写你所设计的菜单及流程图)。
功能:进行贪食蛇游戏
分析:定义键盘方向键操作,随机数发生器产生食物,并分别利用函数判断贪食蛇的长度及游戏是否成功等.
并能够输入游戏成绩.
(2).数据结构
struct Food
{
int x;/*食物的横坐标*/
int y;/*食物的纵坐标*/
int yes;/*判断是否要出现食物的变量*/
}food;/*食物的结构体*/
struct Snake
}
int x[N];
int y[N];
int node;/*蛇的节数*/
int direction;/*蛇移动方向*/
int life;/* 蛇的生命,0活着,1死亡*/
}snake;
(3).模块设计
根据功能需要:
源文件 :#include stdio.h
#include graphics.h
#include stdlib.h
#include dos.h
函数名 功能
void main() 游戏主程序
void Init(void); 图形驱动
void Close(void); 图形结束
void DrawK(void); 开始画面
void GameOver(void); 结束游戏
void GamePlay(void); 玩游戏具体过程
void PrScore(void); 输出成绩
(3)总体设计思想:
利用图形驱动,制作美观的游戏界面.
通过随机函数产生随机数,控制游戏过程食物的出现.
定义键盘操作,控制游戏过程蛇的移动方向.
画出边界,并判断游戏是否结束.
统计游戏过程蛇吃的食物数量,计算并输出游戏成绩.
(4)调试过程: 测试数据及结果,出现了哪些问题,如何修改的
这里,你就写一下你平时出错的地方,与如何修改的.这里我也不好帮你写.
(5)程序有待改进的地方及本次实习的收获和建议
收获:加深认识了程序编译过程的中团队合作的重要性.
提高了自己的编程能力
(7)源程序清单(主要代码)
清单只要将上面的程序全部粘帖就可以了.
要C语言程序设计试验报告的小结,谁有?
通过对这一课题的设计和实现,我对Micosoft Visual C++环境进行了深一步的了解,并逐渐开始熟练Micosoft Visual C++环境的工作界面,以及对每一个快捷键的熟悉。并认识到,熟悉这些快捷键,极为便捷编写程序,但是还要更加熟悉。 编程时要养成良好的风格,注意相同内容的缩进和对齐。这样做,可以使程序代码出错的情况下,可以快速并且便捷的查找到错误的行,利于很好的修改。 通过这次编程我们深深的感受到对代码的变量命名,代码内注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同人员之间的协作。 这个程序设计主要涉及到了C语言中的结构体、指针及文件操作等内容,只有充分掌握了C语言中的结构体、指针及文件操作等内容,才有可能组织好这些代码,使之符合运算逻辑,得到理想的结果。 善于总结,也是学习能力的一种体现,每次完成一个编程任务,完成一段代码,都应当有目的的跟踪该程序的应用状况,随时总结,找到自己的不足,这样所编写的程序才能逐步提高,生活就是这样,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变的话题。通过实际动手做,我们才真正领略到“艰苦奋斗”这一词的真正含义,我们想说,编程确实有些辛苦,但苦中也有乐,在这个团队的任务中,一起的工作可以让我们有说有笑,相互帮助,配合默契。对我们而言,知识上的收获重要,精神上的丰收是可喜的。挫折是一份财富,经历是一份拥有。这次实际操作必将成为我们人生旅途上一个非常美好的回忆! 回顾起此次课程设计,至今仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整半个月的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体,指针……通过这次课程设计之后,我把前面所学过的知识又重新温故了一遍。 同时,在*老师的身上我学得到很多实用的知识,在此表示感谢!同时,对给过我帮助的所有同学和指导老师再次表示忠心的感谢!
学生成绩记录薄 c语言 课程设计报告
C语言程序设计报告
课题名称:学生成绩管理
1 系统概述:
本程序为一个学生成绩管理系统,对学生的成绩进行管理,学生的信息包括学号,姓名,学期,三门课程的成绩,输入这些信息,本程序可以自动计算总成绩,可以按高分到低分进行排名,并对输入信息的人数进行汇总.
2 数据结构设计:
(1)结构体;
(2)数组的设计:运用指针代替数组,使用指针来建立线性表,使程序更加简洁,可读性更强.
3 各函数的设计:
函数原型:void InitList(SqLinkList L);
功能: 创建一个空的线性链表;
入口参数:L为要创建的线性链表;
出口参数:创建链表的L.head为空,L.length为0;
返回值: 无;
函数原型:void EmptyLinkList(SqLinkList L);
功能: 清空整个线性链表;
入口参数:L为要清空的链表名称;
出口参数:若清空成功则链表长度L.length为0;
返回值: 无;
函数原型:int ScanE(ElemType e);
功能: 输入学生信息;
入口参数:e为要输入信息的学生名称;
出口参数:e.num保存学号,e.name保存姓名,e.team保存所在学期,e.s1,e.s2,e.s3分别保存三门课程的成绩;
返回值: 输入合法返回1,否则返回0;
错误处理:若学号、姓名等输入不合法会有提示及重输;
函数原型:Status SqLinkListAppend(SqLinkList L,ElemType e);
功能: 追加一个结点到线性链表中;
入口参数:e为所追加的结点名称,L为e所追加到的线性链表的名称;
出口参数:若追加成功,则e为头结点,链表长度L.length增1;
返回值: 若追加成功返回1;
函数原型:Link SearchNode(SqLinkList L,int NUM);
功能: 查找学号为NUM的学生;
入口参数:查找的链表名称L,学号NUM;
出口参数:若找到结点指针p指向该结点,否则指向空结点;
返回值: 结点指针p;
函数原型:void SearchTeam(SqLinkList L,int team);
功能: 查找学期为team的所有记录并输出其信息;
入口参数:查找的链表名称L,要查找的学期team;
出口参数:无;
返回值: 无;
函数原型:void SearchUnpass(SqLinkList L,float s1,float s2,float s3);
功能: 查找所有有挂科记录的学生并输出其信息;
入口参数:查找的链表名称L,要查找的各门学科成绩s1,s2,s3;
出口参数:无;
返回值: 无;
函数原型:void SqLinkListSearch(SqLinkList L);
功能: 对链表进行分类查找;
入口参数:要查找的链表名称L;
出口参数:无;
返回值: 无;
函数原型: void inputData(SqLinkList L);
功能: 输入数据,并追加一个结点;
入口参数: L为要追加结点的链表名称;
出口参数: 无;
返回值: 无;
函数原型:void SqLinkListTraverse(SqLinkList L);
功能: 输出链表中所有学生成绩列表;
入口参数:L为要输出信息的链表名称;
出口参数:无;
返回值: 无;
函数原型:void PrintE(ElemType e);
功能: 输出一个结点的所有信息;
入口参数:要输出的结点名称e;
出口参数:无;
返回值: 无;
4 使用程序的说明:
本程序为一个学生成绩管理系统。对学生的成绩信息进行管理,学生的信息包括学号、姓名、学期、三门课程的成绩、平均成绩、名次。本管理系统实现学生的学号、姓名、学期、每门课程的成绩的录入,并自动按平均分排名,使用时按屏幕上的提示,输入使用代码.如下图所示:
例如:输入代码数字”1”,程序执行”输入学生成绩或已存在的学生成绩进行修改”这条小程序.输入学生个人信息后,如下图所示:
如此分别输入相应的程序代码,就执行相应的程序段.
如下的程序是按学号进行成绩排名:
当输入”6”时,执行相应的程序,即汇总一共输入学生的人数:
5 总结和体会:
通过对C语言学习,尤其是这学期本班开展C语言双语教学,体会到学习难的同时,也真正了解到C语言作为一门高级的计算机语言的强大功能,特别是在当今实际生活,生产,办公,信息管理等方面的强大作用. 这次合作我们遇到了许多的困难。时间的紧迫,知识的不足,给我很大的压力。最终我还是还是完成了任务。团结就是力量是我这次最真切的感受。
6 程序代码:
void InitList(SqLinkList L) {
// 构造一个空的线性表L;
L.head = 0; //头指针为空;
L.length = 0; //长度初始为0;
}
void EmptyLinkList(SqLinkList L){
//入口参数为整个线性表的数据,功能为清空线性表;
Node *p;
if(!L.head)printf("系统中不存在记录。\n");
//头指针为空时没有学生录入;
else {
while (L.head){
//每个循环将下一结点赋值给头指针,并释放本结点空间,直至线性表清空;
p=L.head;
L.head=p-next;
free(p);
} //end while;
L.length=0; //长度为0;
printf("该管理系统学生信息已清空。\n");
}//end else;
}
int ScanE(ElemType e){
//输入一个学生的成绩数据结点。返回0为无效结点数据,1为有效结点数据;
printf("\n学号:");
scanf("%d",e.num);
if(e.num==0){
//学号为0输入不合法,重新输入;
printf("学号输入不合法.\n");
return 0;
}
printf("\n姓名:");
scanf("%s",e.name);
printf("\n学期:");
scanf("%d",e.team);
while(e.team12){
//系统只记录小于12的学期数;
printf("输入的学期不能大于12,请重新输入:");
scanf("%d",e.team);
}
printf("\n成绩A:");
scanf("%f",e.s1);
printf("\n成绩B:");
scanf("%f",e.s2);
printf("\n成绩C:");
scanf("%f",e.s3);
return OK;
}
Status SqLinkListAppend(SqLinkList L,ElemType e){
//追加一个结点到线性表中;
Node *p;
p=SearchNode(L,e.num);
//查找学号为e.num的记录并将其地址赋给指针p;
if (p==0){
//若不存在添加学号相同的结点,追加一个结点;
p=(Node *)malloc(sizeof(Node));
if (!p) return ERROR;
memcpy((p-data),e,sizeof(ElemType));
p-next=L.head ;
L.head=p;
//追加的一个结点为首结点;
L.length++; //表长度加1;
}
else { //如果该学号记录已存在,则进行修改操作;
memcpy((p-data),e,sizeof(ElemType));
printf("该学生记录已经存在,已完成修改操作。\n");
}
return OK;
}
Link SearchNode(SqLinkList L,int NUM){
//查找学生记录,该学生的学号为NUM;
Node *p;
p=L.head; //p先指在头结点;
while (p p-data.num !=NUM ) p=p-next;
//如果该学生的学号不为NUM则查找下一个结点;
return p;
}
void SearchTeam(SqLinkList L,int team){
//按学期查找并输出所有该学期存在的记录;
Node *p;
p=L.head;
int n,sum=0;
//sum记录该学期的学生总人数;
printf("请输入您要查询的学生的学期:");
scanf("%d",n);
printf("\n学号 姓名 学期 成绩A 成绩B 成绩C 平均成绩\n");
while(pp-next){
//如果p结点和它的下一结点不为空,且该结点的学期等于要查找学期,则格式输出所有该学期学生信息;
if(p-data.team==n){
PrintE(p-data);
sum++;
//查找到一个该学期的学生记录计数加1;
}
p=p-next;
//转向下一结点;
} //end while;
if(p-data.team==n){
//如果p的下一结点为空,且本结点学期为n,则格式输出该结点信息;
sum++;
PrintE(p-data);
}
if(sum==0)printf("没有这学期的记录。\n");
if(sum)printf("该学期共有%d人的记录.\n",sum);
}
void SearchUnpass(SqLinkList L,float s1,float s2,float s3){
//查找并输出有挂科的学生信息;
Node *p;
p=L.head;
int sum=0;
//sum计数挂科总人数,初始为0;
printf("以下是有一门以上不及格科目的学生的成绩:\n");
printf("\n学号 姓名 学期 成绩A 成绩B 成绩C 平均成绩\n");
while(pp-next){
//如果p及其下一结点为真,且该结点有一门以上科目分数低于60则输出该结点成绩并使sum计数加1;
if((p-data.s160)||(p-data.s260)||(p-data.s360))
{
PrintE(p-data);
sum++;
} //end if;
p=p-next;
//转到下一结点;
} //end while;
if((p-data.s160)||(p-data.s260)||(p-data.s360)){
//查看最后一个结点,若有挂科,sum加1并格式输出结点信息;
sum++;
PrintE(p-data);
}
if(sum==0)printf("没有不及格的记录。\n");
if(sum)printf("共有%d人的挂科记录.\n",sum);
}
void SqLinkListSearch(SqLinkList L){
//分类查找学生记录;
Node *p;
p=L.head;
int n,reg; //reg为查询方式的指令;
printf("1--按学号查询\n2--按学期查询\n3--挂科学生信息列表\n");
printf("请您输入查询方式:");
scanf("%d",reg);
if(L.length){
if(reg3)printf("对不起没有您要求的选项。\n");
//若reg3则输入不合法;
else if(reg==1){
//reg==1按学号查询;
printf("请输入您要查询的学生的学号:");
scanf("%d",n);
while(pp-next p-data.num !=n) p=p-next;
//当p和他下一结点为真时且结点数据不为要查找数据时转向下一结点;
if(p-data.num==n){
//找到所要查询结点,格式输出;
printf("\n学号 姓名 学期 成绩A 成绩B 成绩C 平均成绩\n");
PrintE(p-data);
}
else printf("没有您要查找的学号。\n");
} //end reg==1 if ;
else if(reg==2)SearchTeam(L,p-data.team);
//reg==2,调用SearchTeam函数按学期查询并输出;
else if(reg==3)SearchUnpass(L,p-data.s1,p-data.s2,p-data.s3);
//reg==3,调用SearchUnpass函数,输出全部有挂科记录的学生信息;
}//end if;
else printf("系统中无记录.\n");
}
void inputData(SqLinkList L){
//请求输入学生成绩,则追加一个结点并输入;
ElemType e;
if (ScanE(e)) SqLinkListAppend(L,e); //输入数据,追加一个结点;
}
void SqLinkListTraverse(SqLinkList L){
//所有学生信息列表输出;
Node *p;
char c;
p=L.head;
if(p) //非空表;
{
printf("\n学号 姓名 学期 成绩A 成绩B 成绩C 平均成绩\n");
for (p=L.head ;p;p=p-next )PrintE(p-data);
//从第一个结点开始输出所有信息直到结点为空;
}
else printf("系统中无记录。\n");
//空表;
c=getchar();
}
void PrintE(ElemType e){
//输出各科成绩和平均成绩;
printf("%d\t%s\t%d\t%f\t%f\t%f\t%f\n",e.num,e.name,e.team,e.s1,e.s2,e.s3,(e.s1+e.s2+e.s3)/3);
//格式输出学生的学号、姓名、学期、A、B、C三门成绩以及平均成绩;
}
c语言课程设计报告模板及范文的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c++课程设计报告模板、c语言课程设计报告模板及范文的信息别忘了在本站进行查找喔。