C语言课程设计运动会管理系统概要.docx
《C语言课程设计运动会管理系统概要.docx》由会员分享,可在线阅读,更多相关《C语言课程设计运动会管理系统概要.docx(12页珍藏版)》请在冰豆网上搜索。
C语言课程设计运动会管理系统概要
物联网工程课程设计报告
课题:
学校运动会管理系统
专业班级:
物联网工程131班
报告人:
陆俊贤139074382
庞彦辉139074383
指导老师:
张学锋
评定成绩:
指导老师签名:
前言
随着科技的发展,计算机以其强大的性能价格优势给人们的工作、学习和生活带来极大的方便.计算机代替人工处理一些事务已成为必然。
整个人类社会已进入高度信息化,人们对信息和数据的利用和处理已经进入自动化、网络化和社会化的阶段。
如在查找资料、处理日常办公事务、科研生产等方面,无不需要利用大量的信息资源。
因此,如何有效地进行数据信息的管理和利用,已经成为人们普遍关注的课题。
信息在不同的领域里有着不同的概念,在管理科学领域中,通常认为信息是经过加工处理后的一种数据形式,是一种有次序的符号排列,它是系统传输和处理的对象。
处在信息时代的今天,信息的作用越来越为人们所重视。
制定成绩计划,研究投资策略,都离不开对信息的充分利用。
在当今社会上,体育运动越来越普及,参与运动会的人越来越多,素质越来越高。
传统的运动会,一般是以人手组织为主,运动员的报名、赛事的安排、比赛场地的安排和成绩的记录等操作全都由人手操作,参加人数越多,运动会的规模就越大,管理工作就更加费时费力,而且容易出错。
学校田径运动会管理系统则为组织者提供一个简捷方便的方式来组织管理运动会,学校田径运动会管理系统是一种“人机交互系统”,通过简单的键盘输入与鼠标点击来完成烦琐的记录与安排工作,保证运动会的正常流畅的进行。
学校田径运动会管理系统是典型的数据库应用系统,可完成田径运动会管理中的运动员基本信息录入,竞赛成绩处理及公告,成绩统计.信息查询等事务处理功能。
根据学校田径运动会的一般进程,本系统分为数据修改、查询、删除、统计等四个工具模块来完成所期望的功能。
依据关系型数据库理论设计数据库的结构。
使用该系统可以极大地减小工作人员的劳动量,同时还可大大提高工作效率、可靠性和正确性。
第一章设计课题
为了迎接校运动会的到来,为了能够更好地展现运动健儿的风姿,为了更加客观的评定运动员的成绩,为了更加直观的了解到每个运动员的运动水平,我小组建立运动会管理系统,通过这个系统,用户能够实时查询运动员的相关信息、裁判员的基本信息,并且能够通过这个系统查询运动会项目信息,系统管理员也可通过该系统更新运动员的相关成绩体现比赛的公开、公正、公平的原则。
第二章算法思想
2.1.系统需求分析
问题描述:
建立运动员信息系统,包括运动员、裁判员以及运动信息的成绩管理,运动员信息为编号、姓名、身份信息、参加的比赛项目等;裁判员信息为编号、姓名、身份信息、裁判项目;运动会信息包含各个比赛项目的信息、时间安排、裁判信息、比赛成绩等。
运动会作为全校的盛会,受到学生与校领导的广泛关注,为了体现信息公开化,保证比赛的公平,我小组编写此运动会信息管理系统,为了给运动会的负责人一些便利。
其主要功能如下:
(1)各种运动信息的存储;
(2)输入功能:
可以从键盘或文件中一次性输入多条信息;
(3)输出功能:
可以将运动员、裁判员、以及比赛信息打印输出或显示;
(4)查找功能:
根据运动员、裁判员等查找所需要的比赛信息;
(5)增加、删除、修改功能;完成运动信息的多种更新;
2.2.系统总体设计
按号码查运动员信息
输出全部裁判员信息
输出运动员积分排名
输出全部运动员信息
按姓名查运动员信息
输出全部比赛项目
增加运动员信息
按号码查询裁判员信息
按姓名修改运动员信息
按号码删除运动员信息
按号码修改运动员信息
运动员管理
裁判员管理
比赛信息管理
退出程序
输出单项比赛项目
结束
开始
2.3.系统的详细设计
该系统总共分为3个模块,分别为运动员信息管理、裁判员信息管理、比赛信息查询;其中系统主要功能体现在运动员信息管理模块;该系统主要功能由以下23个函数实现。
系统主要函数:
voidWelcome();
Ath*Create_Athlete();
voidOutput_Athlete(Ath*head);
Ath*Add_Athlete(Ath*head);
voidFind_Athlete_num(Ath*head);
Ath*Updata_Athlete_num(Ath*head);
voidFind_Athlete_name(Ath*head);
Re*Create_Referee();
voidOutput_Referee(Re*head);
Ath*Updata_Athlete_name(Ath*head);
voidFind_Referee_num(Re*head_Re);
Ath*Delete_Athlete(Ath*head);
voidInput_Match_Information();
Ath*SortLinkedlist_Athlete(Ath*head);
voidOutput_Match_Information();
Ath*Insert(Ath*head,Ath*pNode);
intCheck_Athlete(Ath*head,charNum[]);
voidFind_Single_Match_Information(Ath*head_Ath,Re*head_Re);
voidOutput_SingleMatch_AthleteInformation(Ath*head,charNAME[]);
voidOutput_SingleMatch_RefereeInformation(Re*head,charNAME[]);
voidMenu(Ath*p,Re*p_Re);
voidOutput_SingleMatch_Athlete_Information(Ath*p);
voidOutput_Match_Name();
模块1:
运动员信息管理系统
由Create_Athlete函数创建运动员链表信息,返回链表头指针,可以实现的功能,如
1:
输出全部运动员信息;
调用Output_Athlete函数,从Menu函数中接收链表头指针,从首至尾输出运动员的所有信息;
2:
增加运动员信息
调用Add_Athlete函数,从Menu函数中接收链表头指针,并且将需要链接到链表中的数据加入链表尾部,最后返回链表头指针;
3:
按号码查运动员信息
调用Find_Athlete_num函数,从Menu函数中接收链表头指针,并从键盘录入所需要查询的运动员的号码信息,将其与链表中的数据进行数据对比,如果查询到与之相符的数据,将其输出,否则输出“查无此人”;
4:
按姓名查询运动员信息
调用Find_Athlete_name函数,从Menu函数中接收链表头指针,并从键盘录入所需要查询的运动员的姓名信息,将其与链表中的数据进行数据对比,如果查询到与之相符的数据,将其输出,否则输出“查无此人”;
5:
按号码修改运动员信息
调用Updata_Athlete_num函数,从Menu函数中接收链表头指针,并从键盘录入所需要查询的运动员的号码信息,将其与链表中的数据进行数据对比,如果查询到与之相符的数据,将其输出,并重新录入相关信息,返回链表头指针;
6:
按姓名修改运动员信息
调用Updata_Athlete_name函数,从Menu函数中接收链表头指针,并从键盘录入所需要查询的运动员的姓名信息,将其与链表中的数据进行数据对比,如果查询到与之相符的数据,将其输出,并重新录入相关信息,返回链表头指针;
7:
按号码删除运动员信息
调用Delete_Athlete函数,从Menu函数中接收链表头指针,并从键盘录入所需要查询的运动员的号码信息,将其与链表中的数据进行数据对比,如果查询到与之相符的数据,将其删除,否则输出“查无此人”;
8:
输出运动员积分排名
调用SortLinkedlist_Athlete函数,从Menu函数中接收链表头指针,SortLinkedlist_Athlete函数嵌套调用Insert(Ath*head,Ath*pNode)函数,Insert函数接收SortLinkedlist_Athlete函数传递的新链表的头指针以及当前节点的指针,按照条件进行排序并且返回头指针到SortLinkedlist_Athlete函数,直到SortLinkedlist_Athlete函数将原链表所有数据全部扫描,最后返回头指针;
模块2:
裁判员信息管理系统
由Create_Referee函数创建运动员链表信息,返回链表头指针,可以实现的功能,如
9:
输出全部裁判员信息
调用Output_Athlete函数,从Menu函数中接收链表头指针,从首至尾输出运动员的所有信息;
10:
按号码查询裁判员信息
调用Find_Referee_num函数,从Menu函数中接收链表头指针,并从键盘录入所需要查询的运动员的姓名信息,将其与链表中的数据进行数据对比,如果查询到与之相符的数据,将其输出,否则输出“查无此人”;
模块:
3·比赛信息管理
由Input_Match_Information函数建立运动会项目信息结构体数组,并且将结构体数组设置为全局变量,可以实现以下功能,如:
11:
输出全部比赛项目
调用Output_Match_Information函数,从Menu函数中接收链表头指针,从首至尾输出运动员的所有信息;
12:
输出单项比赛项目
调用Find_Single_Match_Information函数,从Menu函数中分别接收运动员链表和裁判员链表的头指针,再由Find_Single_Match_Information函数嵌套调用Output_Match_Name函数,输出所有的运动项目供用户选择,获取运动项目信息后嵌套调用Output_SingleMatch_AthleteInformation(Ath*head,charNAME[])函数和Output_SingleMatch_RefereeInformation(Re*head,charNAME[])函数,分别输出参与该项运动的运动员和裁判员,由Find_Single_Match_Information函数体输出比赛时间和地点;
第三章算法的实现
3.1算法的调试与测试
调试方法:
断点法、单步调试法
测试结果的分析与讨论:
测试过程中遇到的主要问题:
在函数体中的变量繁多,使用时容易混乱,在使用全局变量的时候也会不小心在某个函数改变其初始值等等。
3.2测试的结果
图3.2.2系统主菜单
图3.2.3输出全部运动员信息
图3.2.4添加运动员信息
图3.2.5按号码查找运动员信息
图3.2.6按姓名查找运动员信息
图3.2.7修改运动员信息
图3.2.8将运动员按照积分排名
图3.2.9输出全部裁判员信息
图3.2.10查询裁判员信息
图3.2.11输出全部比赛信息
图3.2.12输出所有比赛项目供用户选择
图3.2.13输出某项比赛的所有信息
第四章用户手册
1、打开文件,在VC++6.0中运行文件,弹出欢迎界面。
如下图
2、按任意键,弹出主菜单。
如下图
3、根据系统提示,选择不同编号对系统进行不同的操作。
例如输入3,弹出如下菜单。
输入4,弹出如下界面:
4、按系统提示,又进入主菜单,输入13退出系统。
如下图
结束语
本运动会管理系统是在VisualC++6.0的环境下设计和调试的。
经过调试证明:
1.本系统能满足学校运动会信息管理的需求,在录入的运动员信息和比赛项目信息数据准确的情况下,就能保证结果准确。
不需要反复核对,减少了大量重复操作。
2.软件功能齐全,基本能满足学校运动会各种信息的管理,能够保证实时的数据处理,满足用户随时信息查询的需求。
3.由于水平和时间有限,本系统可能还存在不足之处,欢迎各位读者和同行提出批评意见和建议。
致谢:
经过六个多星期的编程、设计和开发,在张学锋老师的指导下,这套学校运动会管理系统已基本结束。
在本次课程设计中,我们从指导老师张学锋老师身上学到了很多东西,张老师认真负责的工作态度、严谨治学的精神和深厚的理论和实践水平都使我们受益匪浅,感谢张老师在编程过程中帮我们指出错误及不妥之处,进一步完善我们的课程设计。
无论在理论上还是在实践中,他都给予我们很大的帮助,使我们的编程水平得到了很大的提高,这对于我们以后的工作和学习都是一种巨大的帮助。
参考文献:
1.《C语言》,谭浩强等编著,清华大学出版社;
2.《C++面向对象程序设计教程》,郑莉董渊何江舟编著,清华大学出版社;