机房管理系统22Word下载.docx
- 文档编号:18229167
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:24
- 大小:155.39KB
机房管理系统22Word下载.docx
《机房管理系统22Word下载.docx》由会员分享,可在线阅读,更多相关《机房管理系统22Word下载.docx(24页珍藏版)》请在冰豆网上搜索。
2.2可行性分析3
2.3需求分析4
2.3.1功能需求4
2.3.2学生上机流程4
3机房管理系统设计……………………………………………………5
3.1.1系统目标设计…………………………………………………..5
3.1.2开发设计思想5
3.1.3系统功能设计5
3.2详细设计6
3.2.1系统功能模块设计6
3.2.2数据库设计11
4机房管理系统实施12
4.1开发工具的选择12
4.1.1VisualC++6.0简介12
4.1.2VisualC++6.0的功能特点13
4.1.3Access2003数据库简介13
4.2系统实现14
4.2.1读卡器功能的实现14
4.2.2窗体实现17
4.2.3网络实现19
4.2.4计费功能的实现20
4.2.5系统设置模块的实现21
4.2.6计费模块的实现23
4.2.7帐户管理模块的实现26
4.2.8远程监管模块的实现…………………………………………...28
5总结31
参考文献:
32
致 谢33
1序言
1.1系统开发背景
随着机房在教学中的地位的加重,原有的陈旧的人工管理机房工作暴露出各种各样的弊端,现在学校机房的管理方式多为手工处理,劳动强度大,而且容易出错,。
要想高效合理的利用机房,不仅解决管理制度上的问题,而且还要需要解决技术上的问题。
随着上机人数越来越多,传统的机房管理方式越来越难以胜任,机房管理员工作劳动强度大而且容易出错。
为此,有必要开发一套机房管理系统,以提高机房的管理效率,为学生能够更好的上机做好准备。
1.2选题的意义
目前,在大多数学校里,公用的计算机房的主要作用是安排学生的课堂学习和业余上机,但是开放机房存在许多的问题。
建立一套完备的机房管理体制,利用现代计算机和数据库开发技术来代替人工处理机房工作是很必要的。
这样可以减轻机房管理员的劳动强度,提高工作质量和效率,提高机房的利用率和机房管理水平,保证机房管理的稳定性和机房的良性运作,确保学生正常上机,提高机房的工作效率,使机房的利用率达到最大化,基于对这些情况的仔细调查、分析,决定开发一个小型的机房管理系统。
1.3系统简介
该系统在原有的机房管理系统上做了有益的改进,实现尽量考虑系统的可操作行,系统设计的合理性,使业务流程最短,界面友好。
系统是根据系统业务流程设计的。
新系统的使用将有以下几个方面的优势,该系统包括帐户管理模块、计费设置模块,系统设置模块、以及远程监管模块等模块。
其中帐户管理模块是整个机房管理系统的基础。
为了能够使机房的管理工作有条不紊,实现计算机化、系统化、规范化操作,必须建立一个良好的机房管理系统。
2机房管理系统分析
机房管理系统采用了结构化生命周期法,结构化生命周期法是最常用的管理信息系统开发方法,分为四个步骤,即系统调研分析、数据库设计实现、界面设计实现和系统功能设计实现。
其中系统调研分析阶段是最基础、也是最容易被忽视的环节。
2.1资料收集
在整个系统分析阶段,经过实际考察和认真查看阅大量关于机房管理方面的书籍,收集到了相应的帐户记录、收费标准等资料,这些资料均可作为数据库设计的依据,大体如表2.1所示.;
表2.1数据库分析
序号
提纲
1
上下机需要通过什么唯一标识进行记录?
2
上下机需要获得那些信息?
3
上下机的时间如何进行统计?
4
日均处理上机大约有多少?
5
帐户记录要列出那些必要的信息?
6
充值记录需要列出那些必要的信息?
7
充值记录中的机时如何计算?
8
日均处理充值记录大约有多少?
9
收费标准中都需要那些内容?
2.2可行性分析
系统开发将要用到windows下的socket编程、用VisualC++6.0访问数据库、读卡器的使用等。
另外,硬件只需要一台电脑,装上软件vc6.0开发工具,利用Access2003作为后台的数据库,所以在这方面来说是可行的。
已经掌握了开发管理信息系统方法和开发工具,并且在调查过程中,已经了解和熟悉了机房管理系统的业务流程。
综上所述本系统开发从技术上是可行的。
从经济效益来分析,软件的开发成本不大,而其它的投入也只是电脑。
电脑的普及也带来了低成本投入。
由于系统运行的基础环境均已具备,无需重新开发建设,所以系统开发、运行所需的费用是比较低的。
而系统的效益很高可以提高管理效率实现计算机化、系统化、规范化操作,效率大于投入,可行性很高。
系统不受社会干涉,不存在任何侵犯,防碍等责任问题。
系统的设计可降低工作人员的工作强度,提高了工作效率,节省了人力和物力资源。
综上所述,从系统技术可行性,经济可行性,社会可行性分析,该系统是值得开发的。
2.3需求分析
用户需求分析是整个设计制作的起点,它是在用户需求调研的基础上,确定系统的总体结构方案,完成相应的需求分析报告。
在确定系统的总体结构方案过程中,需要确定应用程序的结构、系统开发环境、系统测试环境和运行环境以及系统的功能模块。
在用户需求调研结束之后,应立即进行用户需求分析。
需求分析的结果反映了用户的实际需要,它将影响到设计的合理性和实用性。
2.3.1功能需求
机房管理系统服务器需要的功能分析如下:
(1)添加用户、删除用户、修改用户信息、查找用户、以及为用户充值。
(2)设置系统为上课模式或课余上机模式,调整最小计费时段和每时段计费金额。
(3)配置服务器程序本身的参数,如端口、IP地址、数据库位置、读卡器参数等。
(4)对学生机远程操作,如远程重启、远程关机、远程截屏等。
2.3.2学生上机流程
图2.1学生上机流程图
3机房管理系统设计
3.1总体设计
3.1.1系统目标设计
系统开发的总体任务是实现机房管理的系统化、规范化和自动化,从而达到提高机房管理效率的目的。
3.1.2开发设计思想
机房管理系统的特点是信息处理量比较大,各个环节要求连接性能强,而且人员任务落实到个人。
机房管理系统主要是为了方便机房的管理工作,减少人员、材料等的耗费,提高机房的管理质量。
在设计中,要求删除不必要的管理冗余,实现管理规范化、科学化、程序代码标准化、软件统一化,确保软件的可维护性和实用性,做到界面尽量简单化,做到实用、方便。
3.1.3系统功能设计
通过分析确定机房管理系统将包含以下几个主要功能模块,即帐户管理模块、计费模块、系统设置模块以及远程监管模块。
(1)帐户管理模块可以添加用户、删除用户、修改用户信息、查找用户以及为用户充值。
(2)计费模块可以设置系统为上课模式或课余上机模式,调整最小计费时段和每时段计费金额,准确高效的记录学生上机费用。
(3)系统设置模块用于配置服务器程序本身的参数,如端口、IP地址、数据库位置、读卡器参数等。
(4)远程监管模块用于对学生机远程操作,如远程重启、远程关机、远程截屏等。
(5)读卡功能模块用于读取上机卡中的信息。
3.2详细设计
3.2.1系统功能模块设计
在系统功能分析的基础上,考虑VisualC++6.0和Access的特点,设计出如图3.1所示的系统功能模块图。
动
⑴主界面功能
机房管理系统主界面的功能是负责调用其他功能。
由于系统精悍,功能不多,因此采用比较简单的菜单方式,并配以相应的工具栏以便于操作。
在主界面的工具栏上放置“远程监管”、“计费设置”、“系统设置”、“帐户管理”等按钮,它们是按照使用频率的高低来排列的。
⑵帐户管理模块功能
“帐户管理模块”用于提供对用户的各种信息的操作,包括卡号,姓名,学号,班级,预存费用等信息。
它主要是为了实现用户信息的添加、编辑、删除、充值和查询等功能。
(如图3.2所示)。
①添加用户信息是用来录入一个新的帐户,增加一个新的人员信息;
②编辑用户信息是用来修改除学号以外的任何人员信息,同时可以实现对不必须填写的信息的删除;
③删除用户信息是用来删除一个已有的用户信息,在点击删除该条卡号信息时会出现是否确定删除此条卡号信息,确定后该卡号信息会从数据库中删除;
④充值功能是用来实现给用户充值的,填写了要充值的金额后点击充值就会在数据库中加上相应的金额;
⑤查询采用单一的学号查询,只需要点击查询按钮即可,且双击Grid表格就会将信息填入相应的编辑框中。
⑵计费功能
“计费设置”用于设置计费方式、最小计费时段以及每时段计费金额,包含以下模块(如图3.3所示)。
①时段设置用来修改上机计费的最小时段,默认为十分钟;
②费率设置用来设置每时段的计费金额,默认为每十分钟0.5元;
③上课模式为学校正常的上课用机,不会收费;
④课余模式为课余时间学生自由上机,价格由前两个功能中设定。
⑶系统设置功能
“系统设置”使修改软件运行的参数而制作的,以便服务器修改了以后仍然能良好的运行。
⑷远程监管模块
“远程监管模块”主要是用来对学生机远程操作,如远程关机,远程开机,远程截屏。
3.2.2数据库设计
MicrosoftAccess2003是美国Microsoft公司推出的微机数据库系统,据说在美国市场上Access数据库平台已占桌面数据库系统一半以上的分额。
它具有界面友好、易学易用、开发简单、接口灵活等特点,是基于Windows2000环境下的新一代关系型数据库管理系统,被誉为目前最易操作的数据库工具。
本次设计机房管理系统软件采用Access2003设计数据库(如表:
3.2.1所示)。
表:
3.1数据库表的结构
字段名
类型
长度
小数
键值
空值
默认值
学号
文本
20
Pk
Not
密码
卡号
姓名
10
无
班级
40
金额
货币
状态
数字
4机房管理系统实施
4.1开发工具的选择
本系统的前端开发工具,选择了VisualC++6.0,后台数据库采用Access2003。
4.1.1VisualC++6.0简介
微软公司生产的工具VisualC++6.0是一种强大的可视化编程环境,一种高效、快捷的Windows应用程序开发工具。
并且微软公司提供了MFC类库,该类库已经成为业界事实上的标准,一般性工作可以全部交给VC来完成,用户只需要在MFC提供的基类上,继承、添加自己想要实现的功能即可。
VC支持访问多种数据库,包括微软公司的SQL数据库,Oracle公司的Oracle数据库,IBM公司的DB2数据库,Sybase公司的ASE数据库以及一些其他的数据库,如Microsoft公司的桌面型数据库Access等。
并具有丰富的人机界面,并能生成高效的机器代码的可执行文件,通过设计任务的需求分析,采用VISUALC++6.0开发工具是理想的选择。
4.1.2VisualC++6.0的功能特点
VisualC++6.0使用的语言是c++,简单、高效,功能强大,代码结构清晰,可读性好,由于VisualC++6.0是微软公司出品的,所以能够和windows系统紧密结合。
MFC是微软推出的一个类库,程序开发人员按照c++类的层次形式组织在一起,几个高层类提供一般功能,而底层类实现更具体的行为。
基于以上这些因素,选择C++程序语言,以及Microsoft公司的VisualC++6.0集成开发环境(IDE)来作为开发工具。
4.1.3Access2003数据库简介
作为Microsoft的office套件产品之一,Access已经成为世界上最流行的桌面数据库系统。
它是一个功能强大而且使用方便的数据库管理系统,它为中小型数据库提供了良好的创建环境,并且Access与许多优秀的关系数据库一样,可以让你很容易地连接相关的信息而且还对其他的数据库系统有所补充。
同时,Access完全支持Microsoft的OLE技术。
Access还提供Windows操作系统的高级应用程序开发系统。
Access数据库与其它数据库开发系统之间相当显著的区别就是:
不用写一行代码,就可以在很短的时间里开发出一个功能强大而且相当专业的数据库应用程序,并且这一过程是完全可视的!
4.2系统实现
4.2.1读卡器功能的实现
4.2.1.1功能说明
用户每次上机必需刷卡,刷卡后该卡被激活,用户可以用相应的账号上机,下机时刷卡即可结帐。
4.2.1.2设计思路
系统使用CR500L型射频卡,COM口1,波特率为19200。
类CcardReader封装了有关读卡器的操作,在其成员函数InitCardReader()中,用api函数LoadLibrary()装载厂商提供的动态链接库MasterRD.dll,然后调用厂商提供的函数rf_init_com(1,19200);
将串口号初始化为1,波特率为19200。
为了在使用读卡器的同时不影响用户界面的使用,所以使用了多线程技术,在CCardReader的成员函数SearchCard()中调用CreateThread(NULL,0,MyControllingFunction,NULL,0,NULL)新开了一个线程,MyControllingFunction为该线程的回调函数,在MyControllingFunction函数中先用rf_request(icdev,mode,&
TagType)搜寻所有的卡,如果没有刷卡则该线程休眠1000毫秒,接下来调用函数rf_anticoll(icdev,bcnt,Snr,&
len)返回卡的序列号,再调用rf_select(icdev,Snr,len,&
Size)锁定该卡。
最后用函数SendMessage(hwnd,MY_MSG_CARD,Param,LParam);
将刷卡的消息发给应用程序主窗口。
关键代码如下:
BOOLCCardReader:
:
SearchCard()
{
HANDLEhHandle=:
CreateThread(NULL,0,MyControllingFunction,NULL,0,NULL);
CloseHandle(hHandle);
returnTRUE;
}
DWORDWINAPIMyControllingFunction(LPVOIDpParam)//读卡器回调函数
WORDicdev=0x0000;
unsignedcharmode=0x52;
intstatus;
unsignedshortTagType;
unsignedcharbcnt=0x04;
//mifare卡都用4
unsignedcharSnr[MAX_RF_BUFFER];
unsignedcharlen;
unsignedcharSize;
while
(1)
{
status=rf_request(icdev,mode,&
TagType);
//搜寻所有的卡
if(status)
{
Sleep(1000);
continue;
}
status=rf_anticoll(icdev,bcnt,Snr,&
len);
//返回卡的序列号
if(status||len!
=4)
}
status=rf_select(icdev,Snr,len,&
Size);
//锁定一张ISO14443-3TYPE_A卡
}
WORDParam=Snr[1];
Param=(Param<
<
8)+Snr[0];
WORDLParam;
LParam=Snr[3];
LParam=(LParam<
8)+Snr[2];
HWNDhwnd=:
AfxGetApp()->
GetMainWnd()->
m_hWnd;
:
SendMessage(hwnd,MY_MSG_CARD,Param,LParam);
}
return0;
4.2.2窗体实现
主窗体界面如图4.1所示:
4.2.2.1功能说明
主界面它由五个菜单构成,用户可以使用这些菜单中的功能菜单项完成各种操作。
视图分为左右俩个,右视图为报表风格,用户可以右击某项来弹出远程监管的菜单。
4.2.2.2设计思路
为了充分的定制应用程序,本系统没有使用文档/视图结构。
而是使用了非文档/视图模式的单文档应用程序框架。
充分利用客户区的空间,采用了分割窗体的方法,在左边的视图中显示日期等提示信息,在右边的视图中显示学生机的情况。
具体实现如下:
在CmainFrame类中添加成员CStatusBarm_m_wndSplitter,在OnCreateClient()函数中先创建分割线m_wndSplitter。
CreateStatic(this,1,2);
然后创建左右两个视图
m_wndSplitter。
CreateView(0,0,RUNTIME_CLASS(CMyview1),CSize(140,0),pContext);
CreateView(0,1,RUNTIME_CLASS(CMyListView),CSize(0,0),pContext);
然后删除系统生成的CChildView的所有相关代码。
最后在OnSetFocus函数中填写
GetPane(0,1)->
SetFocus()
使右视图获得焦点。
在OnCmdMsg函数中填写使右如下代码,使视图首先收到命令消息。
if(m_wndSplitter。
OnCmdMsg(nID,nCode,pExtra,pHandlerInfo))
returnTRUE;
4.2.3网络实现
4.2.3.1功能说明
用来同学生机收发数据,要求能够高效安全同数十台学生机收发数据。
机房管理系统的服务器常常要在短时间内响应数十台学生机的请求,所以常常会发生收发数据的函数不能及时返回,这时用户界面会暂时停止响应,会误让用户认为程序出了故障,或失去等待的耐心。
4.2.3.2设计思路
Windowssocket由dll形式提供,需要在代表应用程序的类中的InitInstance()函数中用WSAStartup()函数为调用网络函数做初始化工作,协商版本号为2.2。
wVersionRequested=MAKEWORD(2,2);
WSAStartup(wVersionRequested,&
wsaData);
在自定义类CNetSer中封装
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机房 管理 系统 22