研究生课程论文课程名称:面向对象的程序设计设计题目:基于Windows的会议室分配系统学院专业年级学生姓名学号指导教师二○一七年十一月第1页基于Windows的会议室分配系统摘要随着信息化办公的不断推进,高校会议室资源仅依靠人工分配的方式已不能满足大量的会议室分配需求,因而一款会议室预订软件能够减轻人工分配负担的同时,还能快速有效的实现大量会议室的分配需求,该款软件的诞生也给高校的会议室、教室分配提供了有效的解决手段和途径。关键字:分配系统,信息化办公,会议室分配一、概述1.1设计背景合理分配公共资源是解决实际生活中公平问题的保障和前提,高校会议室资源也是有限的。依靠人工分配会议室资源的方式不仅效率低下,而且出错率高。尤其是在会议室较多,借用较密集的时间段,运用软件系统来分配会议室的优势就愈发凸显。由此,会议室分配系统的诞生能够快速有效的实现资源的合理利用与办公效率。1.2设计要求会议室分配系统,要能够依靠计算机来实现会议室资源的合理分配。用户可根据自己的需求选择合适的时间、地点以及给出有效的解决时间地点的冲突问题的方案。除此之外,还要能够给用户提供良好的交互界面。二、需求分析2.1功能需求通过对我校会议室使用情况的调查分析,对现在的计算机技术、网络环境调查研究,会议室预订系统应具有以下的功能:实时显示当前会议室的使用情况,能够给用户提供登录平台,能够满足用户对会议室的选择需求,给出会议室借用冲突的解决方案。第2页2.2操作方法用户可以自行选择所借用的会议室和借用时间,并且能够快速有效的找到当前可借用的会议室状况。对于用户的误操作能够给出有效的提示信息。三、设计方案3.1系统总体设计会议室预定系统主要分成两部分,一部分是会议室申请部分,一部分是撤销申请部分(如图1所示)。申请人在申请会议室的过程中还需要自己设置一个密码,即只有该申请人能够撤销该次申请,若其他用户也想要申请该会议室,则需要通过联系方式,找到原申请人提出撤销申请的请求,撤销申请之后,该会议室释放,又可以再次申请。会议室预定系统会议室申请会议室撤销申请申请人申请时间、会议室/教室设置密码匹配设置密码图1系统总体设计图3.2系统流程图如图2所示,为该会议室预定系统的程序流程图。该流程图描述了在申请会议室和撤销申请的两种工作模式下系统的工作流程。第3页开始显示已申请列表撤销申请选择时间段、会议室/教室生成预定文件设置密码申请成功填写申请人、电话是否冲突删除已预定文件更新显示列表结束申请成功撤销校对设置密码是否错误正确图2程序流程图四、系统具体实现4.1系统中窗口的设计如图3所示为会议室的主界面窗口,包括日历的控件,时间和会议室的下拉菜单,借用人的信息和联系电话的填写字符框,密码的设置框,申请的确定按钮,以及被申请过的信息列表。能够完成预定人的时间,会议室的选择,还能显示当前被借用的教室。第4页图3程序主界面窗口4.2系统中主要的数据处理该会议室预订系统通过对文件的读和写实现数据增删改的工作,将所有可借用的会议室教室存在roomItem.txt的文件中,再将此文件信息的读取结果加入到窗口的下拉列表中,用户即可选择可用的会议室和教室。对于每一次用户的预定结果,则是通过生成smr的文件的形式存储预订数据,如图4所示,2015110831201.smr这一串数据表示的预订信息为2015年11月08日预约了第3个时间段的1201教室。每一次新的预定信息成功后都会生成一个新的smr文件。该会议室预定系统把时间段分为8-10点,10-12点,12-14点,14-16点,16-18点,18-20点,20-22点等7个部分,每一个部分都用阿拉伯数字1到7表示,3表示的为12-14点。图4生成文件格式生成预定信息的代码部分:FileStreamfs=null;filename=System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+\\教室及会议室预约系统\\+dateTimePicker_date.Value.ToString(yyyyMMdd)+time.ToString()+comboBox_item.Text+.smr;//生成预订信息文件名第5页Encodingencoder=Encoding.UTF8;stringcontent=;content+=textBox_username.Text+Environment.NewLine;content+=textBox_usertel.Text+Environment.NewLine;content+=textBox_userid.Text+Environment.NewLine;byte[]bytes=encoder.GetBytes(content);try{fs=File.OpenWrite(filename);//设定书写的开始位置为文件的末尾fs.Position=fs.Length;//将待写入内容追加到文件末尾fs.Write(bytes,0,bytes.Length);}catch(Exceptionerror){Console.WriteLine(error.Message);//Message返回异常对象中包含的错误信息}fs.Close();如果预定的会议室和时间冲突了就会出现如图5所示的状态,需要通过向借用人索要密码的方式来撤销当前用户的申请,撤销申请之后就会把本地文件夹中的文件数据删除,又可以重新申请该会议室。用户姓名、电话和密码的信息均存储在smr的文件中。图5撤销申请界面第6页如图6所示为在此窗口类中用到的函数,主要是save_log();find_exist();readAllFile()等函数,save_log()函数用于存储当前用户的预定信息,find_exist()函数主要用于解决冲突,撤销申请,readAllFile()函数主要用于读取已预定会议室/教室的信息并显示在主界面中。图6程序主要功能函数五、调试结果在程序的调试过程中,出现了诸多问题,例如如何避免用户的误操作产生的错误数据,这些都需要进一步处理。如图7所示就是对于用户输入错误密码时进行的trycatch处理。在文件读写过程中,文件的存储格式和路径不能任意设置,由于不同用户的计算机的访问级别都不同。除了桌面的路径外,其他的路径都需要获得管理员权限才能访问,因此在设置文件路径时只能设置在我的文档文件夹中。第7页图7异常操作处理六、总结与展望本系统实现了人机友好交互,也能够在一定程度上完成会议室预定的工作,但是依然存在一些问题,比如已预定会议室列表数据不够直观,该系统不适用于解决大量的会议室系统分配问题。再者,该系统是基于文件的增删改,不如数据库的高效便捷。该系统在界面设计方面还可以做得更加直观化。