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