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