c语言课程设计报告运动会成绩信息管理系统.docx
《c语言课程设计报告运动会成绩信息管理系统.docx》由会员分享,可在线阅读,更多相关《c语言课程设计报告运动会成绩信息管理系统.docx(12页珍藏版)》请在冰豆网上搜索。
c语言课程设计报告运动会成绩信息管理系统
课程设计报告
课程设计名称:
C语言课程设计
课程设计题目:
运动会成绩管理系统
院(系):
计算机信息工程学院
专业:
计算机科学与技术(网络方向)
班级:
15计算机网路二班
学号:
2015220240241
姓名:
闫文辉
指导教师:
孟洁
完成日期:
2015年12月27日
目录
第1章概要设计2
1.1题目的内容与要求2
1.2总体结构2
1.3程序总体结构图3
第2章详细设计4
2.1按系排名(参照学生总成绩)函数sort4
2.2按项目查询函数query5
第3章调试分析6
第4章使用说明与执行结果7
参考文献9
附录(程序清单)10
第1章概要设计
1.1题目的内容与要求
1.添加学生数据函数主要实现程序最初运行时学生数据的录入以及其后的运行中学生数据的追加功能;
2.按系排名(参照学生总成绩)函数按照题目的具体要求实现的是参照不同院系的学生的总成绩给出院系的排名;
3.按项目查询函数允许按照项目名称对学生的各项成绩进行查询;
除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。
每一个学生记录都包含学号、姓名、系别,以及赛跑比赛、跳远比赛、跳高比赛三门成绩,在程序当中,将学生记录类型定义为结构体类型,添加以及追加的学生信息直接写入定义的结构体中,其它函数每次对学生记录的访问,其数据来源都是该结构体,这样做不但可以保证学生数据的一致性,而且可以对学生数据进行永久保存,保证每次运行程序都可以采用原来的数据。
1.2总体结构
整个程序的设计实现大致分为3个模块,每一个模块对应一个函数。
在这些函数当中,添加学生数据函数,如图1-1,按系排名(参照学生总成绩)函数,如图2-1,按项目查询学生成绩函数的实现如图1-2,严格按照题目的要求。
主函数及菜单函数控制程序的整体运行。
1.3程序总体结构图
图1-1学生成绩模块
图1-2学生信息模块
第2章详细设计
2.1按系排名(参照学生总成绩)函数sort
图2-1学生排名模块
2.2按项目查询函数query
图2-2成绩记录模块
第3章调试分析
调试是程序编写中的一个重要环节,也是最复杂,对程序编写者来说是一项艰巨的任务。
调试的任务就是及时改正测试过程中发现的错误。
具体地说,调试过程由两个步骤组成,它是从程序中存在错误的某种迹象开始的。
首先是确定错误的准确位置,也就是找出是哪个模块或哪个语句引起的错误。
然后仔细研究推断代码以确定问题的原因,并设法改正。
调试过程主要是运行编制好的程序,然后遇到错误后根据系统的提示,找到相关的问题所在。
本系统调试过程中遇到问题、原因和解决方法如下面介绍:
(1)程序运行不顺利 在程序运行的过程中出现死循环、不运行和提前结束。
原因是程序中出现了逻辑错误,进入查询页面后,查询的时候显示的是逻辑错误。
没有写读取文件的函数m=reads(stu);所以读取不了存储的文件。
这次程序的编写,使我掌握了更多的知识与技巧。
在编程中有许多以前从来没有遇到过的问题,自己查阅了大量的资料,找出并改正。
同时,也有常见的问题,比如符号格式的错误,还有符号运用的失误等等。
通过仔细的查找错误,提高了自己的能力。
第4章使用说明与执行结果
运行操作及结果:
1、程序主界面:
2、按项目查询:
3、查询跳高成绩:
4、添加学生数据:
参考文献
[1] 《SQL 数据库技术》 数据库系统概论(第四版 王珊 萨师煊)
[2] Access 2000 中文版实用培训教程 白松涛
[3] visialC#程序设计实用教程 杨建军 清华大学出版社
[4] 全国计算机等级考试二级教程Access数据库程序设计 高等教育出版社
[5] WEB编程实用技术教程-ASP.NET+C# 刘甫迎 刘枝盛 王蓉 高等教育出版社
附录(程序清单)
#include
#include
#include
#include"conio.h"
#defineN20
structstudent
{charnum[20];
charname[10];
charxibie[10];
floatrace;
floatjump;
floathigh;
}stu[N],temp;
voidmenu();
voidadd();
voidsort();
voidquery();
voidmain()
{
intn;
while
(1)
{
menu();
printf("\n请输入您要选择的操作序号,按回车键确认:
");
scanf("%d",&n);
switch(n)
{
case1:
add();break;
case2:
sort();break;
case3:
query();break;
case4:
exit(0);
default:
printf("输入错误,请输入列表中存在的序号!
\n");
}
}
}
voidmenu()
{
printf("*************************运动员成绩管理系统************************");
printf("\n1添加学生数据");
printf("\n2按系排名");
printf("\n3按项目查询");
printf("\n4退出");
}
voidadd()/*添加学生信息*/
{
intn,i;
printf("请输入要添加的学生数量,按回车键确认:
");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("\n请输入第%d个学生的学号、姓名,系别,用空格分开,并按回车键确认:
\n",i);
scanf("%s%s%s",stu[i].num,stu[i].name,stu[i].xibie);
printf("\n请输入第%d个学生的赛跑比赛、跳远比赛、跳高比赛,用空格分开,并按回车键确认:
\n",i);
scanf("%f%f%f",&stu[i].race,&stu[i].jump,&stu[i].high);
printf("%s%s%s%f%f%f\n",stu[i].num,stu[i].name,stu[i].xibie,stu[i].race,stu[i].jump,stu[i].high);
}
}
voidsort()
{inti,j;
printf("*********************按系成绩排序结果如下**********************************\n\n");
printf("名次系别总成绩\n");
printf("*************************************************************************\n");
for(i=1;i<=N;i++)
for(j=1;j<=N-i;j++)
{
if(stu[j].race+stu[j].jump+stu[j].high{
temp=stu[j];
stu[j]=stu[j+1];
stu[j+1]=temp;
}
}
for(i=1;i<=N;i++)
printf("\n%d%12s%11.2f\n",i,stu[i].xibie,stu[i].race+stu[i].jump+stu[i].high);
}
voidquery()
{
inti,a;
printf("请输入1,2或3,1代表赛跑成绩,2代跳远成绩,3代表跳高成绩");
scanf("%d",&a);
if(a==1)
{
printf("*********************按项目查询结果如下**********************************\n\n");
printf("名次学号姓名系别赛跑\n");
printf("*************************************************************************\n");
for(i=1;i<=N;i++)
{
printf("\n%d%12s%12s%11s%11.2f\n",i,stu[i].num,stu[i].name,stu[i].xibie,stu[i].race);
}
getch();
}
if(a==2)
{
printf("*********************按项目查询结果如下**********************************\n\n");
printf("名次学号姓名系别跳远\n");
printf("*************************************************************************\n");
for(i=1;i<=N;i++)
{
printf("\n%d%12s%11s%11s%11.2f\n",i,stu[i].num,stu[i].name,stu[i].xibie,stu[i].jump);
}
getch();
}
if(a==3)
{
printf("*********************按项目查询结果如下**********************************\n\n");
printf("名次学号姓名系别跳高\n");
printf("*************************************************************************\n");
for(i=1;i<=N;i++)
{
printf("\n%d%12s%11s%11s%11.2f\n",i,stu[i].num,stu[i].name,stu[i].xibie,stu[i].high);
}
getch();
}
}
课程设计总结:
通过这次实践,我很高兴可以学到书上没有的知识,让我对于数据库和运动会成绩管理有了更深入的理解。
我相信,只要自己在每一次实践中能仔细思考,课程设计其实都不会很难,关键在于自己能不能认真思考,能不能亲自动手做实验,而不是想着其他人的劳动果实,其次你还要多操作,只有多操作才能从中发现问题才能及时向老师和同学请教,解决问题,从而更好的掌握书本中知识。
还有通过这次实践也让我懂得了;老师安排课程设计目的不在于你做了多少,不在于你做得好不好,关键在于你能否认真去对待,在于你能否通过这次设计对课本上知识有了更深刻的认识,在于能否从中学到书本上学不到的知识。
因此,我会认真对待每一次实验。
这次的考试,不论是程序的编写还是课程实验报告的制作,都提高了我的能力与水平。
在这个过程中,查阅了大量的资料,增长了自己的知识,开阔了自己的视野,在最后成功的那一刻,我顿时充满了成就感。
在这个过程中的出过的错误,也使我对自己的课程更加熟悉。
我相信,下次我会做的更好,有更高的水平,会学到更多的东西。
指导教师评语:
指导教师(签字):
年月日
课程设计成绩