摘 要:高校很多专业的课程都要用到计算机,为此,学校不断投入资金进行设备的购买。然而,一边是机房不够用,一边是机房很多时间都处在空闲状态,造成这种现象的根本原因是没有合理安排机房使用时间。以前的机房排课基本上都是手动操作,这样不但费时、费力,而且没有达到全面合理安排机房使用的目的。因此,开发一个智能、高效的机房排课管理系统迫在眉睫。设计了高校机房排课系统,以有效解决此类问题,提高机房使用效率。
关键词:高校机房排课系统;C++;机房使用效率
DOIDOI:10.11907/rjdk.143349
中图分类号:TP319
文献标识码:A 文章编号文章编号:16727800(2014)010009702
作者简介作者简介:刘智萍(1978-),女,江西南昌人,江西科技学院计算机学院讲师,研究方向为软件工程。
0 引言
随着国家教育改革的不断深化,高校办学规模不断扩大,学生人数逐年增长,学校的机房、 电脑、班级人数、计算机有关的课程以及机房的使用情况等管理工作量也在不断增加,机房管理难度也随之提高。每个新学年开始,统计上机课程和上机学生数等工作量比较大, 一些院校仍用手工记录,不同部门间的信息传递也是手工记录和单据,造成机房管理工作效率低下甚至容易出错,难以满足工作要求。为了将管理人员从繁琐的工作中解脱出来, 真正实现办公自动化,开发机房管理系统意义重大。
1 系统功能
系统按照功能可划为登录模块、课程管理模块、机房日志管理模块、员工管理模块、信息发布管理模块、意见反馈管理模块和密码管理模块等7大功能模块,
如图1所示。
(1)用户登陆功能。系统有管理员、教师、员工和学生4类用户,他们在同一个页面,根据自身的权限进行登陆操作。用户登陆后,系统提取用户权限,调转到对应页面,按照不同的用户权限执行不同的操作。
(2)密码管理功能。在密码管理模块中,管理员、教师、员工和学生4类用户都可以修改自己的登陆密码。更改时需要输入旧密码和新密码。
(3)课程管理功能。在课程管理模块中,管理员具有对课程进行增、删、改、查的所有权限,教师虽然也具有此权限,但只能针对自己所教的课程,无权对他人的课程进行操作。员工和学生只有查看已登记课程安排的权限。
图1 系统功能模块
(4)信息发布功能。管理员和教师具有发布信息的权限,以供学生及时了解有关教学方面的信息。
(5)意见反馈功能。学生根据机房教学和管理方面的实际情况,在登录后可在意见反馈页面书写并提交意见。管理员会对学生的意见进行审查,根据情况采取措施改进管理。
(6)机房日志管理功能。机房日志包括值班日志、值日日志和维护日志,员工需在值班、值日或是维护活动后,填写相应的日期、节次、部门、人员和日志详情等信息,并上传至服务器。管理员和员工都可查看已上传的日志,以方便管理和维护机房。其中管理员有删除和修改已上传日志的权限。
(7)人员管理功能。管理员可以对机房人员信息进行增、删、改、查,员工只能查看已有员工信息。
2 数据库设计
E-R图为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。构成E-R图的基本要素是实体型、属性和联系,其表示方法为:
实体型:用矩形表示,矩形框内写明实体名;
属性:用椭圆形表示,并用无向边将其与相应的实体连接起来;
联系:用菱形表示,菱形框内写明联系名,并用无向边与有关实体连接起来,同时在无向边旁标上联系类型(1 : 1,1 : n或m : n)。
机房管理系统排课模块E-R图如图2所示。
图2 机房管理系统E-R图
数据库由以下数据表组成:admin表:存储管理员账号和密码;教师表:存储教职工账号、密码及其相关信息;部门表:存储相关部门的信息及所管理的班级;班级表:存储班级信息;duty表:存储值班日志信息,如表1所示。
3 系统实现
3.1 课程管理模块
课程管理模块用于管理课程信息。管理员和教师登录后可以对班级信息进行增、删、改、查等操作,教师没有权限对他人课程增、删、改。在添加班级信息时,所有信息不能为空。其核心代码如下:
int week_hour,total_hour,d1,id,i,j;
char name[11];
char nn[11];
for(i=0;i { cout<<"第"< cout<<"课程号:"; while(1) { if (cin >> id) break; else { cout<<"课程号应为数字,请重新输入:"< cin.clear(); cin.ignore(); } } cout<<"课程名:"; while(1) { cin>>name; for(j=0;j<11;j++) { if ( ("!"<=name[j]&&name[j]<="@")||("["<=name[j]&&name[j]<="`")||"{"<=name[j]&&name[j]<="~" ) nn[j]=0; else nn[j]=1; } if(nn[0]*nn[1]*nn[2]*nn[3]*nn[4]*nn[5]*nn[6]*nn[7]*nn[8]*nn[9]*nn[10]==1) break; else { cout<<"课程名应为字母,请重新输入:"< cin.clear(); cin.ignore(); } } cout<<"周学时:"; while(1) { if (cin >> week_hour ) break; else { cout<<"周学时应为数字,请重新输入:"< cin.clear(); cin.ignore(); } } cout<<"总学时:"; while(1) { if (cin >> total_hour ) break; else { cout<<"总学时应为数字,请重新输入:"< cin.clear(); cin.ignore(); } } cout<<"优先级:"; while(1) { if (cin >> d1) break; else { cout<<"优先级应为数字,请重新输入:"< cin.clear(); cin.ignore(); } } 3.2 机房日志管理模块 机房日志管理模块用于管理机房日常的值班日志、值日日志和维护日志。员工登录对应账号后,根据机房工作情况,填写相应日志并上传至服务器。可查看已有日志,但没有权限修改。管理员登录对应账号后可以查看已上传日志,并可对上传错误的日志进行删、改操作。 4 结语 为提升高校机房利用率,本文对高校机房的排课系统进行了研究。由于篇幅所限,系统功能没有完全列出。另外,各学校机房的管理情况也不尽相同,这里仅对其基本原理进行了阐述,读者可以根据各自学校的情况进一步开展研究。 参考文献 [1] 郑人杰,殷人昆,陶永雷.实用软件工程[M].北京:清华大学出版社,2001. [2] 张亮,杨生树,陈娟.公安院校计算机排课管理的设计与实现[J].江苏警官学院学报,2003(5):2629. [3] 景雪琴.从排课表到教室调度表的设计与实现[J].计算机应用与软件, 2004(2):6871. [4] 侯秀萍.基于C/S模式的自动排课系统研究[J].微机发展, 2003(3):124126. [5] NICHOLAS C,ZAKAS.JavaScript高级程序设计[M].曹力,张欣,译.北京:人民邮电出版社,2006.