球队信息管理系统.docx
- 文档编号:10862838
- 上传时间:2023-05-28
- 格式:DOCX
- 页数:33
- 大小:293.42KB
球队信息管理系统.docx
《球队信息管理系统.docx》由会员分享,可在线阅读,更多相关《球队信息管理系统.docx(33页珍藏版)》请在冰点文库上搜索。
球队信息管理系统
摘要
球队信息管理系统在VC6.0环境下,用纯C语言编写。
采用结构化软件工程的方法。
,每个功能模块对应一个.c文件和一个或多个函数。
有一个com.c的文件,其中有8个公用的函数。
有一个common.h的头文件,有链表结点结构体的定义以及函数的原型说明,以及系统数据文件存储路径。
该系统作为一种一般的数据检索和排序方式,有着较高的实用价值。
该系统具有将输入的数据(球员姓名、员工号、薪水、角色等各项基本信息)以文件形式保存、根据员工号或者姓名查询相关人员的信息、根据球员姓名和薪水进行排序的功能、能够统计出球队的人数及薪水总额等信息,并为用户提供简单易操作的人机界面。
球队信息管理系统实现对一个球队的各类人员的相关信息进行输入、输出、查询等操作。
能够通过主界面进入到各个不同的子案例的功能中,并可以正确实现各操作,易于使用,提高工作效率,给管理用户带来轻松的感受。
关键词:
C语言结构化软件工程流程图功能介绍
第一章绪论
1.1管理信息系统概述
该系统要最终实现管理队员从入队到退队期间的信息管理,包括球员的基本情况,比赛,工资,机构设置等综合信息,并将球队工作管理各部门连成一个完整的数据整体,实现信息高度共享。
建成一个完整统一、技术先进、高效稳定、安全可靠的基于Internet/Intranet的球队管理信息系统。
建立一个集球队信息自动化和信息化为一体的先进的电脑网络系统,在为管理工作有关部门提供优质、高效的业务管理和事务处理的同时,采用安全可靠的现代化处理和控制技术,及时、准确、可靠地采集和传输信息,建立完备、可靠的信息处理系统。
对各部门实现统一的信息浏览、管理。
借助于球队管理信息系统的建设,促进管理人员素质的提高,通过管理人员的实际应用,促进球队管理工作的水平和效率的提高;通过提供多层次的信息服务和先进实用的使用手段,满足球队内外内外对信息共享和利用的要求,并为各级领导提供有效的辅助决策服务。
应用系统的设计符合日常办公运作的需求,功能完备实用,简单易学,界面友好清晰,易于扩充。
网络结构简单明了,层次清楚,便于管理,易于扩充。
在球队管理信息标准化、规范化的基础上,对信息进行合理的布局。
本系统的建设目标是否能实现,系统整个投资能否发挥应有的效益,最终将取决于该系统是否可靠实用。
为此,系统应采用成熟可靠的技术,应贯彻产品化的设计原则和实施方法。
同时,系统的起点要高,而不是基于淘汰的技术,系统的建立应适应未来技术发展的趋势。
1.2系统背景
足球作为世界第一运动,已经吸引了原来越多的人的关注,参与。
各种俱乐部的成立在很大程度上促进了足球的发展,以及职业化,现在足球已经成为一种产业,而运动员是足球的核心,因此球队中对运动员的科学化管理,已经成为一种必需,科学化,人性化的管理可以增强他们的责任感,刺激他们的比赛热情,减少优秀运动员的流失,以及吸引顶尖球星的到来,对于一支稳定的球队,需要一套科学的系统来记录,分析统计球员的信息和状态,给予他们客观的评价。
球队管理系统具有这些的功能,1、球员信息:
它可以可以查看,修改,删除球员的各种信息。
2.比赛日程:
查看比赛日程,包括具体比赛时间,对阵双方,以及比赛的性质。
也可以编辑比赛日程。
3.工资管理:
查看球员的工资包括基本工资,奖金等。
4.添加、编辑比赛记录。
5.机构设置:
查看整个球队的机构设置,比如总经理、主教练、队医等。
通过统计分析方法,结合球员的状况和足球的规律性,发现问题,辅助球队管理。
尽管足球运动中变化和偶然性占有一定比重,但其内部的规律是不可否认的,我国的足球产业还不发达,这不是一朝一夕可以提高的,因此必须从科学化管理出发,才能逐步提高俱乐部的比赛成绩,以及运作,从而提高整个产业的发展。
要建立这个管理系统,需要经过从零开始的分析,了解现有的工作流程,并将其人工操作事物流程用计算机来实现,信息管理系统的设计本身就是一项负责的系统工程,要制定规划,成立强有力的实施机构,加强对相关人员的培训教育,制订并执行严格的管理制度,球队管理的工作量大,而系统的可靠性,稳定性,安全性都至关非常重要。
第二章系统分析
2.1需求分析
实际问题的第一次抽象
对于一支球队来说,他要管理球队的球员信息,包括姓名,年龄,国籍,性别,联系方式,图片,身高,体重等。
球队要参加比赛,因此比赛日程肯定要考虑,比赛性质又包括友谊赛,联赛,杯赛。
为了提醒管理者,倒计时的设计是很必要的;另外就是工资管理,一个球员的工资包括基本工资跟奖金,而奖金又包括进球奖金,比赛奖金及其他奖金,因此工资跟比赛的结果密切相关,我们要在数据库中添加比赛记录。
最后就是机构管理,球队的机构设置及负责人的各种信息。
捕获功能需求
USECASE图
一个USECASE规约了系统可以执行的一个动作(action)序列,包括一些可能的变化,并对特定的操作者(actor)产生可见的,有值的结果。
图2-1USECASE图
图2-2球员信息用况图
图2-3比赛日程用况图
第三章系统设计
3.1系统总体结构设计
该系统采用面向对象方法,面向对象方法把世界看成是独立对象的集合,对象将数据和操作封装在一起,提供有限的接口,其内部的实现细节、数据结构及他们的操作是外部不可见的,对象之间通过消息相互通信,面向对象的方法具有的继承性和封装性支持软件复用,并易于扩充,能较好的适应复杂大系统不断发展和变化的要求。
面向对象方法分析阶段的五个主要活动及其内容:
标识类及对象、标识结构、标识主体、定义属性及实例连接、定义服务及消息连接。
面向对象设计(OOD):
OOD分为四部分,问题域部分,保持系统总体结构的稳定性,人机交互部分,任务管理部分,简化总体设计和编码,数据管理部分,包括数据存放方法的设计和相应服务的设计。
该系统采用UML建模,UML对象模型在本质上只是一个扩展的实体-关系(ER)模型[ii]。
用来设计数据库的ER模型的方式受到普遍接受,而我们使用一种近似的但更强大的方式-使用UML对象模型。
OO模型的主要优势在于编程和数据库使用相同的模型工作。
而且,作为考虑功能性的一种方式,强调OO模型的导航。
我们为每个表定义一个主键,所有的外键都只指向主键而不是其他后选键。
属性类型是UML术语,比起直接用数据类型,域提升到更一致的设计,并便利了应用的定位。
简单域很容易实现。
仅仅定义相应的数据类型和大小。
并且每个用了域的属性,都必须为每个域约束加入一条SQL检查子句。
简单域的一些例子是:
名字(name),长字符(longString)和电话号码(phone-Number)。
一个枚举域把一个属性限制在一系列的值里。
枚举域比简单域实现起来更复杂,有图1的四个方法。
实现方法
优势
劣势
建议
枚举字符。
定义一条SQL检查约束,把该枚举限制在允许的值里。
简单。
受控的方便搜索的词汇表。
大的枚举难以使用检查。
约束难以编码。
我们正常地选择。
每个枚举值一个标记。
为每个枚举的值定义一个布尔型属性。
回避命名的难处。
冗长-每个值一个属性。
当枚举值不是互相排斥的并且多个值可能同时地应用时使用。
枚举表。
把枚举定义存储到一个表里。
不是每个枚举一个表,也不是所有的枚举一个表。
高效地处理大的枚举。
不用改变应用的代码就可以定义新的枚举值
偶尔使用时很麻烦。
必须编写通用的来阅读枚举表和加强值。
适合大的枚举和没有结尾(open-ended)的枚举。
枚举编码。
把枚举值编码作为有序的数字。
节省磁盘空间。
有助于用多种语言处理。
大大地复杂化了维护和调试。
避免使用,除非你要用多种语言处理。
图3-1枚举的实现方法。
UML对象约束语言(ObjectConstraintLanguage,OCL)有助于表达遍历。
点符号导航从对象到对象和对象到属性,方括号表示对象集合的过滤器。
我们加入冒号(:
)操作符来表示泛化的遍历;因为我们用多个表来实现一个泛化继承,清楚的遍历很有用。
3.2数据库简介
与程序流程有关的状态信息使用域进行限制和定义,不允许最终用户修改定义
用户可修改的状态列表信息,用数据表来定义,一经创建后,用户只可修改名称,不能修改代码,修改后的名称与原名称应代表相同的意义。
用户采用列表录入的文字信息,在一个统一的‘系统信息’表中定义,用户可任意创建和修改。
用此种方法录入的信息,录入的信息与选择列表不存在约束关系,列表只是作为文字录入的一种辅助手段。
辅助编码表应至少有两列—代码和名称。
只有在名称非常稳定的情况下才可以不使用代码。
使用编码表的好处是在应用程序界面中,不同的地方出现同一种数据的录入(如录入数据或查询过滤条件)时只需定义一次选择列表,不会出现两处冲突的现象,方便编程。
系统信息表:
TS_
基本编码表:
TB_
决策数据表:
TD_
业务数据表:
不同的业务以不同的缩写(2-3个字符)开始,如‘TCRM_’;如是辅助编码表则在代表业务的缩写后加A_,如‘TCRM_A_’。
关联数据表:
TRE__表A_表B
视图:
在表命名的基础上加前缀改为V_
后缀:
主-明细结构的表,主表为 _M;明细表为 _L
单词首写字母要大写,多个单词间不用任何连接符号如:
TCRM_UserType
注意:
尽量写好列“描述”
第一个字母小写,后面的单词或拼音,采用第一个字母大写,命名规则只来自于业务,尽量表达出列的含义
过程:
SP_
函数:
FN_
触发器:
TR_表名_[后面插入加I,修改加U,删除加D],操作前触发器(INSTEAD OF):
TR_表名_OF[后面插入加I,修改加U,删除加D]
自定义数据类型:
UD_
默认:
DF_,对于非绑定的默认可取系统默认的名字
规则:
RU_,对于非绑定规则(约束) 可取系统默认的名字
主键:
PK_表名
外键关系:
FK_主表_从表
索引:
ID_列名,符合索引列名间用_隔开
第四章系统模型构建
4.1系统结构设计
对所有球队球员建立信息,生成球员基础信息表,表名为playerinf。
该系统是整个管理系统的基础。
有权限的管理人员并可以对其进行增加、删除、修改工作。
球员只能修改自己少数经常变动的信息。
对数据来源:
组织人员手工录入。
包括查看和编辑比赛日程,倒计时。
1)比赛日程包括具体比赛时间,对阵双方,以及比赛的性质,数据主要手工输入
2)倒计时则是当前日期跟最近的一场比赛的日期进行比较的出一个时间,并且显示出来。
3)对于球员,只能查询自己的信息。
4)有权限的管理人员可以对其进行增添,删除,修改。
对数据来源:
组织人员手工录入。
主要包括基本工资管理和比赛结果管理
1)管理人员可以对基本工资管理进行添加和编辑,删除。
数据主要手工输入。
2)奖金与出场记录,进球记录,比赛结果,其他奖金相关,并根据一个计算公式来计算。
3)对于球员,只能查询自己的信息。
对数据来源:
组织人员手工录入。
主要对整个球队中机构的设置,包括对总经理,主教练,队医等信息的添加,编辑和删除。
1)重要包括球队机构中其他人员的基本信息,包括职务,姓名,电话和邮箱。
2)有权限的管理员可以对其进行添加,编辑和删除。
3)球队无权限的人员只能查询信息。
对数据来源:
组织人员手工录入。
类图描述系统中类的静态结构,在系统的整个生命周期中有效。
类图定义了系统的类,表示一组类、界面、合作以及它们之间的关系,如关联、依赖、继承等,也包括类的内部结构(类的属性和操作)。
图3-1球员信息管理类图
图3-2日程管理类图
图3-2比赛日程管理类图
图3-3工资管理类图
图3-5ADO连接类图图3-6CColorButton类图
4.2数据存储设计
说明:
1列表中的1为主键,2为外键;
2列表中的1表示可为空,0表示非空
其中m_ID为四位
表3-2Playerinf数据表
键
球员基本信息表
空
描述
1
m_ID
0
球员编号
2
m_name
0
球员名字
0
m_jiguan
球员籍贯
0
m_email
球员邮箱
0
m_shengao
球员身高
0
m_sex
球员性别
0
m_tizhong
1
球员体重
0
m_weizhi
球员位置
0
m_datetime
球员出生日期
0
m_telephone
0
球员电话
表3-3duty数据表
0
m_dutyposition1
职务
1
m_dutyname1
0
名字
0
m_dutytelephone1
0
电话号码
0
m_dutyemail1
1
邮箱
表3-4Calenderinf数据表
0
m_bisaiSF
0
比赛双方球队
0
m_bisaiXZ
比赛性质
0
m_bisaiDD
0
比赛地点
0
m_Time22
比赛日期
1
m_bisaiBH
0
编号
表3-5Jibensalary数据表
1
m_name11
0
球员名字
0
m_salary11
球员基本工资
Salary
1
m_Addresultname11
0
球员姓名
0
m_Addresultgoal11
进球
0
m_Addreusltjieguo11
比赛结果
0
m_Addresultchuchang11
出场记录
0
m_Addresultelse11
1
球员其他奖金
0
m_time123
0
比赛时间
图3-5系统初始界面
第五章系统实现
5.1各模块程序设计说明
因为各模块的程序代码较多,下面只列出球员信息模块的程序设计。
新建一个对话框,添加对话框变量playerInfDlg,在对话框上添加一个TreeViewControl控件,为期添加CTreeCtrl类型变量m_playerTree,在对话框中添加9个EditControl控件,在添加一个Button按钮。
为了查看信息的方便,我们在初始化函数将球员的名字都显示在CListTree中,而以后编辑球员信时,都要更新树中的数据,因此通过建立一个函数UpdateRecord(),此函数的功能是读出数据集中的数据将球员名字显示在数中
当记录集中的球员名字初始化到树中的时候,通过双击球员名字,就可以在在旁边的编辑框中显示出来,其中图片的显示是重点。
函数代码如下:
voidplayerInfDlg:
:
OnPaint()
{
CPaintDCdc(this);//devicecontextforpainting
if(IsIconic())
{
SendMessage(WM_ICONERASEBKGND,(WPARAM)dc.GetSafeHdc(),0);
//Centericoninclientrectangle
intcxIcon=GetSystemMetrics(SM_CXICON);
intcyIcon=GetSystemMetrics(SM_CYICON);
CRectrect;
GetClientRect(&rect);
intx=(rect.Width()-cxIcon+1)/2;
inty=(rect.Height()-cyIcon+1)/2;
//Drawtheicon
dc.DrawIcon(x,y,m_hIcon);
}
else
{
CDialog:
:
OnPaint();
}
if(m_Bitmap.GetSafeHandle()!
=NULL)
{
CDCmemDC;
BITMAPbm;
m_Bitmap.GetBitmap(&bm);
memDC.CreateCompatibleDC(&dc);
CBitmap*oldbitmap=memDC.SelectObject(&m_Bitmap);
dc.BitBlt(370,35,175,160,&memDC,0,0,SRCCOPY);
memDC.SelectObject(oldbitmap);
}
使用ADO前必须在工程的stdafx.h文件里用直接引入符号#import引入ADO库文件,以使编译器能正确编译。
代码如下所示:
代码1:
用#import引入ADO库文件
#import"c:
\programfiles\commonfiles\system\ado\msado15.dll"
no_namespacesrename("EOF"adoEOF")
这行语句声明在工程中使用ADO,但不使用ADO的名字空间,并且为了避免常数冲突,将常数EOF改名为adoEOF。
现在不需添加另外的头文件,就可以使用ADO接口了。
4.2.1.2初始化OLE/COM库环境
必须注意的是,ADO库是一组COM动态库,这意味应用程序在调用ADO前,必须初始化OLE/COM库环境。
在MFC应用程序里,一个比较好的方法是在应用程序主类的InitInstance成员函数里初始化OLE/COM库环境。
代码2:
初始化OLE/COM库环境
BOOLCTeamadmApp:
:
InitInstance()
{
if(!
AfxOleInit())
{
AfxMessageBox(“OLE初始化出错!
”);
returnFALSE;
}
……
}
函数AfxOleInit在每次应用程序启动时初始化OLE/COM库环境。
同DAO和CDatabase一样,ADO由几个接口组成:
_ConnectionPtr,_CommandPtr和_RecordsetPtr.
5.2问题分析
数据库系统维护服务由五部分构成:
监控服务,数据备份,安全管理,性能调整,故障排除。
可进行紧急情况监测的服务包括:
网络连接监控,数据库应用是否正常运行,数据完整性。
1.2数据库备份和恢复:
系统备份,数据库的备份,数据库的恢复。
1.3安全管理:
数据库系统漏洞的修补,服务漏洞的修补,系统访问管理,服务访问管理。
1.4.性能调整:
针对数据库系统:
主要包括CPU/内存使用状况、优化数据库设计、优化数据库管理、以及进程/线程状态、、硬盘剩余空间、日志文件大小等。
针对应用系统:
主要包括应用系统的可用性、响应时间、并发用户数,以及特定应用的系统资源占用等。
1.5故障排除
对数据库发生的故障(如数据库不能正常运行,备份与恢复不能进行,数据文件一致性破坏等)在第一时间进行排除并提交故障报告。
5.2.1应用系统维护
2.1例行检查服务
例行检查时间间隔:
对应用系统进行例行检查,从系统验收完毕起每月检查一次。
2.2检查内容
检查数据库服务器:
检查数据库的运行状况;
核实原系统配置:
核实系统软件配置及版本;
检查各监控终端软件:
检查各计算机监控系统用户端软件使用情况;
检查软件系统运行环境:
检查网络操作系统软件、操作系统软件稳定性等;
2.3检查方式
制定例行检查计划:
根据软件系统的检查时间,制定相应的检查计划,其中包括每次例行检查时间、例行检查小组成员、例行检查内容;
核实例行检查方案:
例行检查前,提前三天通知技术人员.
对于客户每次的服务请求,维护小组设有专人负责实施、跟踪、并以客户监控系统最后确认为准。
2.4检查结果处理
例检记录:
每次检查完成后,均作标准的检查报告。
包括检查发现的问题、系统现状评价、改进建议;
对于例检发现的问题,若属于负责维护的软件系统,均作及时的解决。
对于每次维护,都作规范的维护记录。
包括故障原因、实施工程师、解决办法、实施过程、维护结果。
服务记录应于每次服务完成后均将作为系统资料保存。
2.5系统运行维护服务
当应用系统出现软件改进、模块更换、故障确认、系统错误等问题时,派相关人员前往处理。
1例行检查服务
例行检查时间间隔:
对应用系统进行例行检查,从系统验收完毕起每月至少检查一次,安装相关的最新系统补丁和升级文件,并对有关问题进行处理。
2系统运行维护服务
当系统软件出现系统错误等问题时,派相关人员前往处理。
3.维护范围
包括各服务器使用的操作系统:
Windows2000AdvanceServer,Windows2000Server;
台式机操作系统:
WindowsXP,Windows2000Professor;
邮件系统;
其它有关服务器上的系统。
服务系统维护内容包括:
系统运作检测,以保证系统无病毒污染的病毒检查服务,优化服务器与客户机的设置,系统管理文件的打印与归档,服务器的硬件配置及软件的更换服务,工作站的硬件配置及软件的更换服务,提供更换密码,用户授权权限更改等系统管理服务。
总结与心得
本系统将面向对象概念和关系型数据库相结合,一个关系型数据库能够为面向对象(OO)模型提供一套优秀的实现。
同样的模型能够用来开发代码和建立关系型数据库结构。
关系型数据库技术是意义深远的、强大的,但它比许多开发商使你相信的要难得多。
单个表是简单易懂的、直观的,但是要彻底了解由数以百计的表组成(这是常见的)的应用是相当困难的。
这正是OO模型有用之处。
OO模型使我们更深入地、连贯地思考问题。
OO模型提供一种问题的超结构(superstructure)的思考方式,然后该方式能够用关系型数据库的更低层的组成块来实现。
封装是面向对象的特征之一,是对象和类概念的主要特性。
封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。
而本系统都是正是如此。
对球队资料实施电子化管理将会给球队带来巨大的效益。
它能提升处理速度及输入的方便性;是资料输入准确度最佳化;使用电脑化管理,减少人工负荷及作业成本;建立必要的资料档案,使得管理程序简化且容易;建立个资料档案间的联络,能快速找寻所要的资讯。
系统具有较好的可扩展性和包容性。
系统的可扩展性应包括能接纳已有的系统和在今后系统软硬件扩展时,能有效地保护已有的投资。
特别是在应用需求变化时(应用与系统的需求往往提不全或者经常会变化),有一个较好的应用平台,能容易地加以调整。
系统易于扩充升级,既能满足当前业务的需求,又为今后的扩充留有空间。
附录:
源码:
voidplayerInfDlg:
:
UpdateRecord()
{
_variant_tvplayername;
CStringstrSQL,name;
UpdateData(TRUE);
strSQL="select*fromplayerinf";
CProcessData*pdata=newCProcessData;
m_pRecordset=pdata->GetRecordSet(strSQL);
if(m_pRecordset==NULL)
{
AfxMessageBox("没有成功打开数据表");
return;
}
if(!
m_pRecordset->BOF)
{
m_pRecordset->MoveFi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 球队 信息管理 系统