版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于C#的学生宿舍管理信息系统的
设计及实现【摘要】针对高校学生宿舍管理工作的特点,建立了高校学生宿舍管理信息系统,提出了宿舍信息管理工作的新途径,在大大提高管理工作效率的同时,为管理者提供真实可靠的决策支持。同时并对该系统的结构、系统数据库的设计及复杂功能模块的实现做出较详细的叙述。【关键词】学生宿舍,管理信息系统,数据库一引言宿舍,是大学生在高校校园里一个重要的学习、生活、交往的空间环境。随着近儿年高校招生人数的不断扩大,学生的宿舍管理工作也越來越繁重和琐碎。比如:一年一度的新生住宿安排⑴;各种查询问题,如:由某学生的姓名查出该生的宿舍号、班级等信息。随着高校办学规模的扩大,在校学生的学历层次、思想状态、文化水平呈多样化、复杂化趋势,这在很大程度上给学生管理工作带來许多新的问题⑵。随着学生人数的增多,高校学生宿舍管理的信息量日益庞大,而目前我国高校学生宿舍管理仍采用传统的工作方式一一账本化的工作模式,这种模式获取信息慢,查阅困难,准确性差,很难适应高水平宿舍管理的需要。学生宿舍信息管理具有程序性、规范性和技术性等确定性因素,利于通过计算机智能化辅助管理。近年來有些高校开始建立并使用管理信息系统管理学生宿舍⑶,但分析发现这些系统内容不够全面,基本不具备辅助决策的功能。本文建立的高校学生宿舍管理信息系统在以往研究的基础上,增加了方法库和知识库,能够在管理大量信息的基础上,自动完成数据的统计分析,为管理者提供决策支持。该系统的建立和使用,旨在提高后勤工作的效率和准确性,减少工作的盲目性,提高工作人员的专业素质,对后勤工作起指导和监督作用。二系统的设计与实现1.1总体设计思想应用原型方法进行开发。原型方法将系统分析、设计、实施三个阶段融为一体,使操作者更便于使用该系统。选用灵活、方便、友好的用户界面。首先,为操作者准备灵活的容错输入形式。其次,能使用户随时了解系统的动向并随时参与决策过程。第三,引入原型系统作为用户界面的重要组成部分。采用方法库管理系统对各种信息的处理方法进行管理。方法库管理系统通常包括方法模型的生成、存放、分解、合成、选择等内容,借助于这一技术高效率地自动处理整个学生宿舍管理系统的各种数据和事务,随时对决策的产生提供支持。利用知识库辅助决策。将各级机构下发给宿舍管理部门的规定、细则等文件分门别类地存储到相应物理位置,在完成各项工作时可以随时调出相应的文件进行察看,避免不必要的疏漏。按照文件的执行日期等关键信息进行提示,督促各项工作的按时开展。以开放性思想贯穿于整个设计。开放性思想表现为作为系统基础的数据库、方法库和知识库的开放性和有关模型的开放性使用,釆用开放性设计有利于模型的修改、调整和完善。2.2结构设计2.2.1总体结构高校学生宿舍信息管理系统应由数据库管理系统、方法库管理系统和知识库管理系统组成。其结构如图1所示。2.2.2菜单结构高校学生宿舍信息管理系统的菜单分为三个层次:一级菜单,即系统的主菜单由系统维护、数据库管理系统、方法库管理系统、知识库管理系统以及帮助等菜单组成。二级菜单包括各个系统的具体业务,例如数据库管理系统包括住宿学生信息管理等5个二级菜单,方法库管理系统包括住宿人员统计方法等6个二级菜单。系统的三级菜单则具体体现每一项管理业务的操作和具体方法,例如住宿学生信息管理中包括的编辑、浏览、查询和报表打印等,住宿人员统计方法中包括总和法、平均值法等方法的管理菜单。2.3数据库结构设计结合天津大学学生宿舍管理实际,通过对学生宿舍信息管理所需数据文件的特点分析,本系统在设计时将学生宿舍管理信息系统数据库模块设计为住宿学生信息管理模块、学生宿舍使用信息管理模块、学生宿舍设备信息管理模块、学生宿舍卫生信息管理模块和宿管人员信息管理模块五个功能模块,上述各功能模块分别对应五种形式的Paradox7.0数据表。例如,在住宿学生信息管理数据表中,通过对涉及此项内容的有关字段进行分类调整,并考虑到记录查询和编辑的方便,将住宿学生的基本信息(学号、姓名、房间号、性别、学院、专业、班级、籍贯、联系电话、指导教师等)分别存储于数据表中。在学生宿舍设备信息管理数据表中,对宿舍的每一个设备进行编码,并存储各个设备的使用情况。图1学生宿舍信息管理系统结构简图2.4系统的数据库本系统中的方法库是一组数学模型和实施方法的集合,它的特点在于灵活性。方法库管理系统中的各种统计方法和管理方法有着内在的相似性,原因在于它们将相同的计算数学模型作为计算核心。当使用方法库的一个具体统计方法时,将该计算核心与相应的数据通过SQL语言结合在一起,完成特定的统计工作和管理工作,并将工作的结果返回到程序界面中供操作者参考。方法库中的各个数学模型和管理方法可以根据具体的工作需要随时通过程序进行修改。要使方法库真正达到各种方法和具体数据的交叉调用,需要与多种计算机手段联合使用。由于本系统的计算和统计不需太繁琐,所以在设计时主要以Del2phi自编计算程序为主,Matlab计算程序为辅,其他一些管理方法的程序(如自动分配宿舍程序)也由Delphi自编程序完成。通过Delphi主程序的数据库技术处理计算程序所需的参数,再通过计算程序计算。可见,方法库的结构设计是特殊的,本系统将计算程序作为特殊的文件存储在计算机中随时调用,并将其所需的参数放在数据库中,例如,方法ID、需称、存储路径、参数序列等。2.5知识库结构设计知识库系统分四个类别,分别用于存放学校下达的各种管理规章、制度。本系统的知识库是一种特殊的数据库,其操作对象是单位数据庞大的文件。鉴于这种数据类型在Paradox数据库中不宜直接存取,在本系统的编制工作中将数据的主体部分以一般文件的形式存储在计算机中,将其它有关这些文件的信息存储于数据库中,例如文件的身份号、类别、名称、存取路径、下发单位、日期等,这样既有利于数据库的安全性和消除冗余,还能提高整个系统的运行速度。三系统的功能本文建立的高校学生宿舍管理信息系统是在管理信息系统的基础上,增加了方法库和知识库的管理,不仅能完成对日常工作数据的存储、编辑和浏览,还能对这些数据进行智能处理,并提高了文件的传递速度和保存效率。本系统是管理信息系统的延伸,是决策支持系统的一个实例。实际使用中,数据库管理系统和知识库管理系统是操作者最常用的。方法库管理系统由系统的开发者按照使用者的意图对其中的方法做定期的修改,一般情况下,不需要操作者对此系统进行操作。数据库管理系统主要用于学生宿舍管理信息系统数据库中所需基础数据和统计数据的增删、修改、浏览、查询及报表打印等操作,是整个系统的基础和功能核心。在查询功能中,要用到方法库中的各种统计方法。在宿舍房屋使用信息管理功能中要用到方法库中的宿舍自动分配方法。方法库管理较为简单,它的操作主要为数据库管理系统服务。当需要增删或编辑方法库中的方法时,只需将这种方法的计算文件通过存取路径读取或存储。当数据库管理系统用到某种方法时,将这种方法所需的参数传递给计算文件即可。知识库则是独立于数据库和方法库存在的。知识库中的文件以文档和图片的形式存在,当需要增删、编辑知识库中的文件时,只需将这个文件通过存取路径读取或存储。对知识库进行操作时,要把每个知识文件的附属信息记录清楚,有利于日后对这些文件的查询、浏览。系统还可以根据文件的执行日期自动为管理者提供口程安排。四结论本文介绍的高校学生宿舍管理系统已在天津大学学生宿舍管理中试运行,使用效果良好,初步取得了以下效果:(1)操作简单,实用性强,能够快速地向管理者提供住宿学生的各种基本信息,大大提高了工作效率。(2)编辑、浏览、查询及统计等均实现数据库管理,纸质文件的流转被电子邮件代替,节约了办公经费。(3)实现了对数据的智能处理,为领导决策起到了一定的辅助作用。(4)提高了工作人员的专业素质,使宿舍管理工作更加科学化和规范化。#include<stdio.h>/*1/0函数*7#include<stdlib.h>/*其它说明*/#include<string.h>广字符串函数*/#defineBUFLEN100/*缓冲区最大字符数*/#defineLEN15/*学号和姓名最大字符数,实际请更改*/#defineN100/*最大学生人数,实际请更改*/structrecord/*结构体*7{charcode[LEN+1]o广学号*/charname[LEN+1]o/*姓名*/intageo广年龄*/charsex[3]o广性别*/chartime[LEN+1]o/*出生年月*/charadd[30]o广家庭地址*/chartel[LEN+1]oI*电话号码*/charmail[30]o/*电子邮件地址*/}stu[N]ointk=1,n,mo/*定义全局变量*/voidreadfile()o/*函数声明*/voidseek()ovoidmodify()ovoidinsert()ovoiddel()ovoiddisplay()ovoidsave()ovoidmenu()。intmain(){while(k)menu()。system(HpauseH)oreturn0。}voidhelp(){printf("\nO.欢迎使用系统帮助!\n”)。printf("\n1.进入系统后洗刷新学生信息,再查询。\n”)。p「intf(“\n2.按照菜单提示键入数字代号。\n")oprintf(H\n3.增加学生信息后,切记保存按7。\nH)oprintf("\n4.谢谢您的使用!\n")o}voidreadfile()/*建立信息*/{char*p="student.txt"oFILE*fpointi=0oif((fp=fopen(,,student.txtu;'rH))==NULL){printf(HOpenfile%serror!Strikeanykeytoexit!N,p)osystem(HpauseH)oexit(0)o}while(fscanf(fp,"%s%s%d%s%s%s%s%s",stu[i].code,stu[i].name,&stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail)==8){i++o••l=lo}fclose(fp)on=ioprintf(”录入完毕!\n")o}voidseek()/*查找*/{inti,item,flag。chars1[21]o广以姓名和学号最长长度+1为准*/printf(" \n")oprintf("■•…4.按学号査询\n")oprintf("■•…2.按姓名查询\n")oprintf("■•…3.退出本菜单一…\n")oprintf(" \n")owhile(1){printf(“请选择子菜单编号:“)。scanf("%d",&item)oflag=0oswitch(item){case1:printf(“请输入要查询的学生的学号:\n”)。scanf("%s",s1)。for(i=Ooivn。i++)if(strcmp(stu[i].code,s1)==0){flag=1oprintf(“学生学号学生姓名年龄性别出生年月地址电话E・mail\nH)oprintf(" \n")oprintf("%6s%7s%6d%5s%9s%8s%10s%14s\n",stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail)o}if(flag==0)printf("该学号不存在!\n")obreak□case2:printf(“请输入要查询的学生的姓名:\n“)。scanf("%s",s1)ofor(i=Ooivn。i++)if(strcmp(stu[i].name,s1)==0){flag=1oprintfC学生学号学生姓名年龄性别出生年月地址电话E-mail\n")oprintf(" \n")oprintf("%6s%7s%6d%5s%9s%8s%10s%14s\n",stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail)o}if(flag==O)printf("该姓夕i不存在!\n")obreak□case3:returnodefault:printf("请在1-3之间选择\n”)。}}}voidmodify。广修改信息*7{inti,item,num。charsexi⑶,s1[LEN+1],s2[LEN+1]。/*以姓名和学号最长长度+1为准*/printfC*请输入要要修改的学生的学号:\n“)°scanf("%s",s1)ofor(i=Ooivn。i++)if(strcmp(stu[i].code,s1)==0)/*比较字符串是否相等*/num=ioprintf(" \n")oprintf("1.>改姓名'n'1)。printfC'2.修改年龄\n”)。printf("3.修改性别\n”)。printf("4.修改出生年月\n”)。printf("5.修改地址\n”)。printf("6.修改电话号码\n”)。printf("7.修改E-mail地址\n”)。printf("8.1R出本菜单\n“)。printf(" \n")owhile(1){printf("请选择子菜单编号:scanf("%d",&item)oswitch(item){case1:printfC'i#输入新的姓名:\n“)°scanf(,,%s,,,s2)ostrcpy(stu[num].name,s2)obreakocase2:printf(''请输入新的年龄:\n”)。scanf("%d",&stu[num].age)obreak。case3:printf(“请输入新的性别:\n“)°scanf("%s",sex1)ostrcpy(stu[num].sex,sex1)。breakocase4:printf("请输入新的出生年月:\n“)。scanf(,,%s,,,s2)ostrcpy(stu[num].time,s2)obreak□case5:printf(“请输入新的地址:\n“)°scanf(,,%s,,,s2)ostrcpy(stu[num].add,s2)。breakocase6:printf(“请输入新的电话号码:\n)scanf(,,%s,,,s2)ostrcpy(stu[num].tel,s2)。break□case7:printf(“请输入新的E-mail地址:\rT)。scanf(,,%s,,,s2)ostrcpy(stu[num].mail,s2)obreakocase8:returnodefault:printf("请在1-8之间选择\n”)。}}}voidsort()/*按学号排序”inti,j/p,*q,Sochartemp[10]ofor(i=Ooi<n-1oi++){for(j=n-1oj>ioj-)if(strcmp(stu[j-1].code,stu[j].code)>0){strcpy(temp,stu[j-1].code)ostrcpy(stu[j-1].code,stu[j].code)ostrcpy(stu[j].code,temp)ostrcpy(temp,stu0-1].name)。strcpy(stu[j-1].name,stu[j]・name)ostrcpy(stu[j].name,temp)ostrcpy(temp,stu[j-1].sex)ostrcpy(stu[j-1].sex,stu[j].sex)ostrcpy(stu[j].sex,temp)ostrcpy(temp,stu[j-1].time)。strcpy(stu[j-1].time,stu[j].time)ostrcpy(stu[j].time,temp)ostrcpy(temp,stu[j-1].add)ostrcpy(stu[j-1].add,stu[j].add)ostrcpy(stu[j].add,temp)ostrcpy(temp,stu[j-1].tel)。strcpy(stu[j-1].tel,stu[j].tel)ostrcpy(stu[j].tel,temp)ostrcpy(temp,stu[j-1].mail)ostrcpy(stu[j-1].mail,stu[j].mail)ostrcpy(stu[j].mail,temp)op=&stu[j-1].ageoq=&stu[j].ageos=*qo*q=*p°*P=So}}}voidinsert()/*插入函数*/{inti=n,j,flag°printf(“请输入待增加的学生数:\n“)°scanf(”%cT,&m)。do{flag=1owhile(flag){flag=0oprintf("i#输入第%d个学生的学号:\n'\i+1)oscanf("%s",stu[i].code)ofor(j=Ooj<ioj++)if(strcmp(stu[i].code,stu[j].code)==0){printf("S有该学号,请检查后重新录A!\n")oflag=1obreako广如有重复立即退出该层循环,提高判断速度*/}}printf(“请输入第%d个学生的姓名:\n”田)。scanf("%s",stu[i].name)oprintf("i#输入第%d个学生的年龄:\n'\i+1)oscanf("%d",&stu[i].age)oprintf("i#输入第%d个学生的性别:\n'\i+1)oscanf("%s",stu[i].sex)oprintf("i#输入第%d个学生的出生年月:(格式:年.月)\F,i+1)。scanf("%s",stu[i].time)oprintf("i#输入第%d个学生的地址:\n'\i+1)oscanf("%s",stu[i].add)«printf(“请输入第%d个学生的电话:\n”,i+1)。scanf(”%s",stu[i].tel)。printf("i#输入第%d个学生的E・mail:\rT,i+4)。scanf("%s",stu[i].mail)oif(flag==0){••l=loi++o}}while(ivn+m)on+=moprintf("录入完毕!\n\n")osort()o}voiddel()inti,jfflag=Oochars1[LEN+1]OprintfC'i#输入要删除学生的学号:\rT)°scanf("%s",s1)ofor(i=Ooivn。i++)if(strcmp(stu[i].code,s1)==0){flag=1ofor(j=ioj<n-1oj++)stu[j]=stu[j+1]o}if(flag==0)printf("该学号不存在!\n")oif(flag==1){printfC删除成功,显示结果请选择菜单6\n")on―o}}voiddisplay(){intioprintf("所有学生的信息为:\"')。printfC学生学号学生姓名年龄性别出生年月地址电话E-mail\n")oprintfC \n”)。for(i=Ooivn。i++){printf("%6s%7s%5d%5s%9s%8s%10s%14s\n",stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail)o}}voidsave(){intioFILE*fpofp=fopen(”student.txt”,“w”)。广写入*/for(i=Ooivn。i++)fprintf(fp,"%s%s%d%s%s%s%s%s\n",stu[i].code,stu[i].name,stu[i].age,
stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail)o}fclose(fp)o}voidmenu()/*界面*/{intnum。printf(H*********************系号£功1能界^单************************printf("友情提醒:查询前请先刷新系统!printf(nprintf(printf(H*********************系号£功1能界^单************************printf("友情提醒:查询前请先刷新系统!printf(nprintf(nprintf(nprintf(nprintf(nprintf(nprintf(nprintf(nprintf(nprintf(nprintf(nprintf(nprintf(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026广东陆丰市粮食集团有限公司招聘1人笔试参考题库及答案解析
- 2027中国邮政储蓄银行贵州省分行校园招聘笔试模拟试题及答案解析
- 中医药防治传染病中的重要性
- 2026黑龙江省八面通林业局有限公司公开招聘13人考试备考试题及答案解析
- 2026江西省江投老年医养有限公司招聘51人考试备考试题及答案解析
- 2026绥化市检察机关聘用制书记员公开招聘16人考试模拟试题及答案解析
- 2026浙江杭州西湖大学工学院郑实验室研究系列人员招聘3人笔试备考试题及答案解析
- 2026年莲花县教师招聘笔试模拟试题及答案解析
- 2026年文成县教师招聘考试模拟试题及答案解析
- 2026天津市天泰印务有限公司实习生招聘考试备考题库及答案解析
- 鼠疫防治知识培训试题及答案
- 油田射流泵课件
- 配送冷链运输协议
- 老年人防跌倒的预防及护理措施
- 2025年揭阳揭西县选调高中教师考试试题(含答案)
- 咯血患者介入治疗的护理讲课件
- SY-T 6966-2023 输油气管道工程安全仪表系统设计规范
- 凯正公司年产3000吨精密包装材料生产项目环境影响报告表
- 《气胸》ppt课件
- GB18401-2010国家纺织产品基本安全技术规范.pdf
评论
0/150
提交评论