课程设计报告--教室统一管理子系统.doc
《课程设计报告--教室统一管理子系统.doc》由会员分享,可在线阅读,更多相关《课程设计报告--教室统一管理子系统.doc(18页珍藏版)》请在咨信网上搜索。
课程设计报告 课程题目: 教室统一管理子系统 2012年 7月 3日 目 录 摘要…………………………………………………………...............(2) 一问题描述..............................................................................................1 二、分析设计..........................................................................................1 1、功能描述..........................................................................................1 2、程序流程设计图..............................................................................3 3、数据库结构......................................................................................5 4、 测试数据及期望结果.....................................................................6 5、模块结果以及模块实现方法的描述..............................................9 三、代码摘取.........................................................................................10 四、总结.................................................................................................14 五、主要参考文献.................................................................................15 摘要 教室统一管理软件,其功能主要是实现学校教室的统一管理,包括教室信息管理,教室查询与申请及各种基本信息管理。利用myeclipse进行开发,使用MySQL进行数据的存取。 在全部教室表单中可以添加新教室,可以修改已经录入的教室信息,包括教室的故障情况、教室是否空闲和录入的时间。其中在系统中可以查看所有的教室信息、修改教室信息、申请教室以及查看申请结果。在用户的登录界面,可以注册新的用户;登录用户的信息如若和数据中存储的信息不对应,则会显示登录不成功。 在教室统一管理子系统中可以实现了教室的有效管理和对申请教室请求的合理处理,完成了高效率的使用教室的目的。 关键词:管理 教室 信息 查询 申请 修改 II 一、 问题描述 通过教室统一管理子系统可以对教室进行有效的使用和管理,避免了教室资源的浪费、实现高效率的教室使用。 更为快速的管理分配和安排教室,避免了不必要的人力浪费和时间消耗。 二、 分析与设计 2.1 功能描述 2.1.1 系统的参与者 在系统中,有用户信息,其中包含用户的ID、用户的密码以及用户类型。 用户类型有学生和老师。 教室信息,包括教室ID、教室地点、故障情况、是否空闲和录入时间。 申请教室信息,包括教室地点、申请人、申请理由、使用时间。 2.1.2 功能要求 本系统的用户面向在校的老师和同学,从学校获取教室的使用情况以及使用教室存在的问题分析之后,系统实现的功能有: (1)用户登录 在登录界面输入以存在的用户名和正确的用户密码后进入教室统一管理子系统。 (2)新用户注册 如若没有账号,可以在登录界面的“注册”按钮跳转到注册页面,注册时填入用户名、用户密码和用户类型 (3)通过教室故障情况查询教室 进入系统后,可以通过选择教室的故障情况分类查询教室信息,其中故障情况有:门坏、完好、灯坏、电脑坏等不同的故障类型。 (4)通过教室ID列举出全部教室 如若要列举出所有的教室信息,可以通过“查看所有教室”实现查看功能,结果会将所有已经录入的教室按ID排序列出来。 (2)通过添加按钮添加新教室 如果要添加新的教室,可以选择添加新教室,在教室信息框中填入教室地点、故障情况、是否空闲、录入时间。点击确认添加之后即可将新教室添加到教室列表中。 (6)申请教室 点击“申请教室”,跳转到全部教室列举页面,通过点击“申请”其中某一间教室,实现对该教室的申请。跳转到确认申请页面,在页面上输入申请的教室地点、申请人、申请理由、教室使用时间。确认申请后间录入的申请信息提交到申请教室表单和数据库中。 (7)列举出所有申请教室信息。 通过ID查看已经申请成功了的教室,在页面上显示所有申请的教室,有申请教室地点、申请人、申请理由、申请使用时间。 2.1.3 系统用例图 图2.1 系统用例图 系统用例图分析: 用户在登录系统页面可以注册账号,注册用户是可以选择用户的类型,其中包括学生和老师两中类型用户。进入系统后,可以选择进人教室申请页面,其中可以申请教室(只能申请已经录入的教室),也可以查看申请调的教室列表。 在教室查询子系统中,可以通过教室故障情况进行教室的分类查询,也可以查询所有教室信息(通过教室ID),从而显示所有的录入教室;通过添加新的教室可以实现对教室的添加,也可以更改教室的信息。 2.2 程序流程图设计 图2.2.1 程序总体流程图 图2.2.2 用户注册流程图 图2.2.3 教室申请流程图 图2.2.4 教室查看流程图 2.3 数据库结构描述 图-2.3.1 故障类型数据结构图 图-2.3.2 教室数据结构图 图-2.3.3 教室申请数据结构图 图-2.3.4 用户数据结构图 2.4 测试数据及期望结果 用户登录: 图-2.4.1 登录界面 图-2.4.2 功能选择页面 图-2.4.3 分类查询教室 图-2.4.4 查询结果 图-2.4.5 申请教室 图-2.4.6 申请成功 图-2.4.7查看申请结果 图-2.4.8 添加新教室 图-2.4.9 添加成功 图-2.4.10 修改教室信息 期望结果: 这个教室统一管理子系统的功能基本实现,在教室查询完毕之后可以通过ID查询所有的教室,通过点击“申请”可以实现对录入教室的申请;在申请教室页面,可以对申请教室添加相应的说明(申请人、申请使用时间和申请理由)。 在用户登录界面,如若没有账号,可以通过“注册”按钮实现新用户的注册,在注册过程中可以选择注册的类型(学生或老师)。 如若要修改已经录入的教室信息,可以通过“修改教室信息”实现对选定教室的修改,基本实现了对教室统一管理的功能。 2.5 模块结果以及模块实现方法的描述 2.5.1 用户模块 用户在输入登录信息之后,系统将输入的信息获取并和数据库用户信息对比,检测是否相同,如果相同则登录成功;否则返回登录失败信息并重新登录! 2.5.2教室查看模块 开始通过故障类型分类查看教室信息,也可以通过ID查看所有的录入教室信息。在教室表单上可以通过申请教室跳转到教室申请模块;修改教室信息和添加新教室都在教室查看模块里,这样可以更加方便的将获取到的教室更改信息同步到教室表单中,也可以实现对全部教室的显示。 2.5.3教室申请模块 将在教室表单中获取的将要申请的教室打印在页面,然后输入要申请的信息,完善申请教室的信息,添加了3个属性:申请人、申请理由和使用时间。通过点击“查看申请表”实现将已经申请成功的教室列举出来。 三、 源代码摘取 public class RoomsqDAOImpl implements RoomsqDAO { //实现添加教室的方法 public void addRoomsq(Roomsq roomsq) { Connection conn = DBConnection.getConnection(); //获得连接对象 String addSQL = "insert into roomsq(roomsqID,roomsqName,roomsqWho,roomsqR,roomsqTime) values(?,?,?,?,?)"; String sql="select max(DISTINCT roomsqID) as mroomsqID from roomsq"; PreparedStatement pstmt = null; //声明预处理对象 PreparedStatement pstmt1 = null; try { pstmt = conn.prepareStatement(addSQL); //获得预处理对象并赋值 pstmt1 = conn.prepareStatement(sql); ResultSet num = pstmt1.executeQuery(); String s = ""; if(num.next()) { s = num.getString("mRoomsqID"); } if(s==null){ s="0"; } int i = Integer.parseInt(s); i=i+1; roomsq.setRoomsqID(i); pstmt.setInt(1, roomsq.getRoomsqID()); pstmt.setString(2, roomsq.getRoomsqName());//设置第一个参数 pstmt.setString(3, roomsq.getRoomsqWho());//设置第二个参数 pstmt.setString(4, roomsq.getRoomsqR());//设置第三个参数 pstmt.setString(2, roomsq.getRoomsqTime()); pstmt.executeUpdate(); //执行更新 } catch (SQLException e) { e.printStackTrace(); } finally{ DBConnection.close(pstmt);//关闭预处理对象 DBConnection.close(conn);//关闭连接对象 } } //实现删除教室的方法 public void deleteRoomsq(int roomsqID) { Connection conn = DBConnection.getConnection();//获得连接对象 String updateSQL = "delete from roomsq where roomsqID=?"; PreparedStatement pstmt = null; //声明预处理对象 try { pstmt = conn.prepareStatement(updateSQL); //获得预处理对象并赋值 pstmt.setInt(1, roomsqID); //设置第一个个参数 pstmt.executeUpdate(); //执行更新 } catch (SQLException e) { e.printStackTrace(); } finally{ DBConnection.close(pstmt); //关闭预处理对象 DBConnection.close(conn); //关闭连接对象 } } //实现查询教室的方法 public List<Roomsq> findAllRoomsq() { Connection conn = DBConnection.getConnection();//获得连接对象 String updateSQL = "select * from roomsq"; PreparedStatement pstmt = null; //声明预处理对象 List<Roomsq> roomsqList = new ArrayList<Roomsq>(); try { pstmt = conn.prepareStatement(updateSQL); //获得预处理对象并赋值 ResultSet rs = pstmt.executeQuery(); //执行查询 while(rs.next()) { Roomsq roomsq = new Roomsq(); //实例化 roomsq.setRoomsqID(rs.getInt(1)); //获得申请教室ID roomsq.setRoomsqName(rs.getString(2)); //获得申请教室地点 roomsq.setRoomsqWho(rs.getString(3)); //获得申请人 roomsq.setRoomsqR(rs.getString(4)); //获得当前利益 roomsq.setRoomsqTime(rs.getString(2)); //获得申请使用时间 roomsqList.add(roomsq); } } catch (SQLException e) { e.printStackTrace(); } finally{ DBConnection.close(pstmt); //关闭预处理对象 DBConnection.close(conn); //关闭连接对象 } return roomsqList; //返回查询到的所有商品 } //实现更新商品的方法 public void updateRoomsq(Roomsq roomsq) { Connection conn = DBConnection.getConnection(); //获得连接对象 String updateSQL = "update roomsq set roomsqName=?," + "roomsqWho=?,roomsqR=?,roomsqTime where roomsqId=?"; PreparedStatement pstmt = null; //声明预处理对象 try { pstmt = conn.prepareStatement(updateSQL); //获得预处理对象并赋值 pstmt.setInt(1, roomsq.getRoomsqID()); pstmt.setString(2, roomsq.getRoomsqName());//设置第一个参数 pstmt.setString(3, roomsq.getRoomsqWho());//设置第二个参数 pstmt.setString(4, roomsq.getRoomsqR()); //设置第三个参数 pstmt.setString(2, roomsq.getRoomsqTime()); pstmt.executeUpdate(); //执行更新 } catch (SQLException e) { e.printStackTrace(); } finally{ DBConnection.close(pstmt); //关闭预处理对象 DBConnection.close(conn); //关闭连接对象 } } ///////////通过id查询申请教室 public Roomsq findRoomsqById(int roomsqId) { Connection conn = DBConnection.getConnection();//获得连接对象 String updateSQL = "select * from roomsq where roomsqID = ?"; PreparedStatement pstmt = null; //声明预处理对象 Roomsq roomsq = new Roomsq(); try { pstmt = conn.prepareStatement(updateSQL); //获得预处理对象并赋值 pstmt.setInt(1, roomsqId); //设置参数 ResultSet rs = pstmt.executeQuery(); //执行查询 if(rs.next()) { roomsq.setRoomsqID(rs.getInt(1)); //获得申请教室ID roomsq.setRoomsqName(rs.getString(2));//获得申请教室地点 roomsq.setRoomsqWho(rs.getString(3)); //获得申请人 roomsq.setRoomsqR(rs.getString(4)); //获得申请理由 roomsq.setRoomsqTime(rs.getString(2)); //获得申请使用时间 } } catch (SQLException e) { e.printStackTrace(); } finally{ DBConnection.close(pstmt); //关闭预处理对象 DBConnection.close(conn); //关闭连接对象 } return roomsq; } } 四、 总结 在本次课程设计过程中,通过使用Javaweb项目开发实现了对教室统一管理子系统。在开始接到课程设计题目是,并没有太多的思路,之后再看了课程任务书之后,整体的软件系统和系统结构才慢慢的成型。 在设计开始,将系统分成了3个模块来设计,这样有利于将教室管理系统的功能分清,结构更加的明了,而且这样有利于在后面的设计和编码过程中添加新的功能进去,不会对原有的结构进行干扰甚至是破坏;在系统的代码实现过程中由于在功能页面之间的跳转次数过于频繁,导致了有一部分时间出现了 很严重的“返功”现象。加大了在编码阶段的困难。 在系统功能的实现上,基本已经实现对教室的有效管理和对申请教室的分配,不过其中还是有一些不足,具体表现在:在系统中没有使用过滤器对登录之后的页面进行处理,这样就导致了在没有成功登录的情况下可以直接通过运行其他页面进入系统之中;在申请教室模块中,教室的ID并没有和教室表单中的ID保存一致,而是按照由小到大的排序顺序进行排序;在新教室的添加页面,会重复的输入添加教室故障情况信息。 在申请教室显示模块中,开始若没有申请教室(表单为空时),就无法将页面正常的运行,而是会在系统中报错,后来在RoomsqDAOImpl中修改了Addroomsq函数之后,将其中的S在没有获取的的情况下(S==NULL)时,将其赋值为:S=0。这样才能将申请表单中的第一条信息(之前为空)显示出来。 在经过这次的课程设计,让我了解到了Javaweb开发的一些小技巧:错误的查找、编码流程等,益匪浅。而且在课程设计的故过程总,通过对课本、课外书和资料的查询,在一定程度上丰富了我的知识面。特别是在遇到了编码和页面格式设计的问题时,通过不断的查找资料和询问同学,慢慢的将整个系统完成,虽然在过程中也有点累,但是在实现了系统功能之后,整个下来还是很值得的! 五、 参考文献 [1]、 Java语言程序设计 基础篇(原书第六版)/(美)梁(Liang,Y.D.)〔M〕.北京:机械工业出版社,2008.6 [2]、Java web 程序设计与项目实践/古乐声,卜炟主编.—北京:电子工业出版社,2011.6 [3]、数据库系统概论/王删,萨师煊.—4版.—北京:高等教育出版社,2006.2(2007重印) [4]、软件工程导论/张海潘编著.—2版.—北京:清华大学出版社,2008.2 [2]、JavaScript高级程序设计 :第3版/(美)泽卡斯(Zakas,N.C.)著;李松峰,曹力译.—北京:人民邮电出版社,2012.3(2014.9重印) [6]、项目实践精解:Java核心技术应用开发/梁立新,郭锐编著.—2版.—北京:电子工业出版社,2010.8(项目实践精解丛书) 15- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 报告 教室 统一管理 子系统
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【胜****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【胜****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【胜****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【胜****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文