




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE Java程序设计系专业班级学号姓名题目学生成绩管理系统任课教师一:要求用到书上(课本或实验册)上的至少三个实例用到至少两种布局和至少四种组件用到对话框用到对数据库的查询、删除、添加和修改最好用到输入输出流具有一定的实际意义二:内容 本系统用access作为数据库,用到了书上的布局实例和数据库连接实例功能:1、输入十个同学的学号,姓名,出生日期,二科成绩(学,大学英语)。2、输入学号查询学生信息。3、删除记录4、查询记录5、添加记录6、修改记录三:代码第一部分:publicclassmain{ publicstaticvoidmain(String[]args){ zhuchuangkouwin=newzhuchuangkou(); }}第二部分主界面:importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjavax.swing.border.*;publicclasszhuchuangkouextendsFrameimplementsActionListener{ Buttonbutton1,button2,button3,button4,tuichu; Panelp1,p2,p3; Labell1,l2,l3; TextFielda1,a2; Boxb1,b2,b3,b4,b5; sss; zhuchuangkou(){ button1=newButton("登陆"); button2=newButton("删除"); button3=newButton("修改"); button4=newButton("添加"); tuichu=newButton("退出"); p1=newPanel(); p2=newPanel(); p3=newPanel(); l1=newLabel("学生成绩管理",Label.CENTER); l1.setFont(newFont("宋体",Font.BOLD,72)); l1.setBackground(Color.green); l2=newLabel("登录名"); l3=newLabel("密码"); a1=newTextField(10); a2=newTextField(10); a2.setEchoChar('*'); b1=Box.createVerticalBox(); b1.add(l2); b1.add(Box.createVerticalStrut(8)); b1.add(l3); b2=Box.createVerticalBox(); b2.add(a1); b2.add(Box.createVerticalStrut(8)); b2.add(a2); b4=Box.createHorizontalBox(); b4.add(button1); b4.add(Box.createHorizontalStrut(10)); b4.add(tuichu); b3=Box.createHorizontalBox(); b3.add(b1); b3.add(Box.createHorizontalStrut(10)); b3.add(b2); b5=Box.createVerticalBox(); b5.add(b3); b5.add(Box.createVerticalStrut(8)); b5.add(b4); button1.addActionListener(this); button2.addActionListener(this); button3.addActionListener(this); button4.addActionListener(this); tuichu.addActionListener(this); p1.add(l1); p2.add(b5); add(p1,BorderLayout.NORTH); add(p2,BorderLayout.CENTER); add(p3,BorderLayout.PAGE_END); addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){ dispose(); } }); setBackground(Color.RED); setBounds(10,10,1000,500); setVisible(true); validate(); } publicvoidactionPerformed(ActionEvente){ if(e.getSource()==tuichu){ System.exit(0); } if(e.getSource()==button1){ if(a1.getText().equals("liuzhenji")&&a2.getText().equals("123456")){ newchuankou(); System.out.println("wwwww"); dispose(); } else{ System.out.print("nishurucuowu"); } } } }第三部分选择操作:importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjavax.swing.border.*;publicclasszhuchuangkouextendsFrameimplementsActionListener{ Buttonbutton1,button2,button3,button4,tuichu; Panelp1,p2,p3; Labell1,l2,l3; TextFielda1,a2; Boxb1,b2,b3,b4,b5; sss; zhuchuangkou(){ button1=newButton("登陆"); button2=newButton("删除"); button3=newButton("修改"); button4=newButton("添加"); tuichu=newButton("退出"); p1=newPanel(); p2=newPanel(); p3=newPanel(); l1=newLabel("学生成绩管理",Label.CENTER); l1.setFont(newFont("宋体",Font.BOLD,72)); l1.setBackground(Color.green); l2=newLabel("登录名"); l3=newLabel("密码"); a1=newTextField(10); a2=newTextField(10); a2.setEchoChar('*'); b1=Box.createVerticalBox(); b1.add(l2); b1.add(Box.createVerticalStrut(8)); b1.add(l3); b2=Box.createVerticalBox(); b2.add(a1); b2.add(Box.createVerticalStrut(8)); b2.add(a2); b4=Box.createHorizontalBox(); b4.add(button1); b4.add(Box.createHorizontalStrut(10)); b4.add(tuichu); b3=Box.createHorizontalBox(); b3.add(b1); b3.add(Box.createHorizontalStrut(10)); b3.add(b2); b5=Box.createVerticalBox(); b5.add(b3); b5.add(Box.createVerticalStrut(8)); b5.add(b4); button1.addActionListener(this); button2.addActionListener(this); button3.addActionListener(this); button4.addActionListener(this); tuichu.addActionListener(this); p1.add(l1); p2.add(b5); add(p1,BorderLayout.NORTH); add(p2,BorderLayout.CENTER); add(p3,BorderLayout.PAGE_END); addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){ dispose(); } }); setBackground(Color.RED); setBounds(10,10,1000,500); setVisible(true); validate(); } publicvoidactionPerformed(ActionEvente){ if(e.getSource()==tuichu){ System.exit(0); } if(e.getSource()==button1){ if(a1.getText().equals("liuzhenji")&&a2.getText().equals("123456")){ newchuankou(); System.out.println("wwwww"); dispose(); } else{ System.out.print("nishurucuowu"); } } } }第四部分查询界面实现:importjava.awt.*;importjava.awt.event.*;importjava.sql.*;importjavax.swing.JOptionPane;publicclassssextendsFrameimplementsTextListener,ActionListener{ Buttonxunzhao; TextFieldinput; TextAreashow; Strings; intk; Connectioncon;Statementsql;intsum=0;ResultSetrs; ss(){ Panelp=newPanel(); xunzhao=newButton("查找"); input=newTextField(10); show=newTextArea(6,43); p.add(newLabel("输入学号")); p.add(input); p.add(xunzhao); xunzhao.addActionListener(this); show.addTextListener(this); show.setEditable(false); add(p,BorderLayout.NORTH); add(show,BorderLayout.CENTER); setBounds(10,30,500,200); setVisible(true); validate(); addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){ dispose(); } }); } publicvoidactionPerformed(ActionEventee){ booleanboo=true; s=input.getText(); k=Integer.parseInt(s); try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundExceptioneee){System.out.println(""+eee);}try{con=DriverManager.getConnection("jdbc:odbc:sun","gxy","123");sql=con.createStatement();rs=sql.executeQuery("SELECT*FROMchengjibiao");while(rs.next()){ intnumber=rs.getInt("number");Stringname=rs.getString("name");Stringdate=rs.getString("birthday");intmath=rs.getInt("math");intenglish=rs.getInt("english");if(number==k){boo=false; show.setText(null); show.append("学号:"+number+"姓名:"+name+"出生:"+date+"数学"+math+"英语"+english); show.append("\n");}}con.close();if(boo){ JOptionPane.showMessageDialog(this,"你输入的学号不存在");}}catch(SQLExceptioneee){System.out.println(eee);} }}第五部分删除:importjava.awt.*;importjava.awt.event.*;importjava.sql.*;importjavax.swing.JOptionPane;publicclassshanchuextendsFrameimplementsTextListener,ActionListener{ Buttonxunzhao; TextFieldinput; TextAreashow; Strings; intk,s1,j; Connectioncon;Statementsql;intsum=0;ResultSetrs; shanchu(){ Panelp=newPanel(); xunzhao=newButton("删除"); input=newTextField(10); show=newTextArea(6,43); p.add(newLabel("输入要删除的"+"学号")); p.add(input); p.add(xunzhao); xunzhao.addActionListener(this); show.addTextListener(this); show.setEditable(false); add(p,BorderLayout.NORTH); add(show,BorderLayout.CENTER); setBounds(10,30,500,200); setVisible(true); validate(); addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){ dispose(); } }); } publicvoidactionPerformed(ActionEventee){ booleanboo=true; s=input.getText(); k=Integer.parseInt(s); Stringm,dir; try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundExceptioneee){System.out.println(""+eee);}try{con=DriverManager.getConnection("jdbc:odbc:sun","gxy","123"); sql=con.createStatement();rs=sql.executeQuery("SELECT*FROMchengjibiao");while(rs.next()){intnumber=rs.getInt(2);Stringname=rs.getString(3);Stringdate=rs.getString("birthday");intmath=rs.getInt("math");intenglish=rs.getInt("english");if(number==k){ show.setText("你删除了:"); show.append("学号:"+number+"姓名:"+name+"出生:"+date+"数学"+math+"英语"+english); show.append("\n"); m="DELETEFROMchengjibiaoWHEREnumber="+k+""; sql.executeUpdate(m);} }con.close();}catch(SQLExceptione){System.out.println(e);}}} 第六部分修改:importjava.awt.*;importjava.awt.event.*;importjava.sql.*;importjavax.swing.JOptionPane;publicclassxiugaiextendsFrameimplementsTextListener,ActionListener{ Buttoncharu; TextFieldinput1,input2,input3,input4,input5,input6; TextAreashow; Panelp1,p2; intk,s1,j; Connectioncon;Statementsql;intsum=0;ResultSetrs; xiugai(){ p1=newPanel(); p2=newPanel(); charu=newButton("修改"); input1=newTextField(10); input2=newTextField(10); input3=newTextField(10); input4=newTextField(10); input5=newTextField(10); input6=newTextField(10); show=newTextArea(6,43); p1.add(newLabel("请输入要修改的学号")); p1.add(newLabel("number")); p1.add(input1); p2.add(newLabel("请输入修改的数据")); p2.add(newLabel("name")); p2.add(input2); p2.add(newLabel("date")); p2.add(input3); p2.add(newLabel("math")); p2.add(input4); p2.add(newLabel("english")); p2.add(input5); p2.add(charu); charu.addActionListener(this); show.addTextListener(this); show.setEditable(false); add(p1,BorderLayout.NORTH); add(p2,BorderLayout.CENTER); setBounds(10,30,1200,200); setVisible(true); validate(); addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){ dispose(); } }); } publicvoidactionPerformed(ActionEventee){ booleanboo=true; Strings0,s1,s2,s3,s4,s5,insert1,recode,name,date; intm0,m1,m2,m3,number,math,english; s1=input1.getText(); m1=Integer.parseInt(s1); number=m1; s4=input4.getText(); m2=Integer.parseInt(s4); math=m2; s5=input5.getText(); m3=Integer.parseInt(s5); english=m3; try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundExceptioneee){System.out.println(""+eee);}try{con=DriverManager.getConnection("jdbc:odbc:sun","gxy","123"); sql=con.createStatement();recode="("+m0+","+number+","+"'"+name+"'"+","+"'"+date+"'"+","+math+","+english+")";insert1="UPDATEchengjibiaoSETmath="+math+",english="+english+"WHEREnumber="+number+"";sql.executeUpdate(insert1);}catch(SQLExceptione){System.out.println(e);}} }第七部分添加:importjava.awt.*;importjava.awt.event.*;importjava.sql.*;importjavax.swing.JOptionPane;publicclasscharuextendsFrameimplementsTextListener,ActionListener{ Buttoncharu; TextFieldinput1,input2,input3,input4,input5,input6; TextAreashow; intk,s1,j; Connectioncon;Statementsql;intsum=0;ResultSetrs; charu(){ Panelp=newPanel(); charu=newButton("插入"); input1=newTextField(10); input2=newTextField(10); input3=newTextField(10); input4=newTextField(10); input5=newTextField(10); input6=newTextField(10); show=newTextArea(6,43); p.add(newLabel("请输入要插入的数据")); p.add(newLabel("ID")); p.add(input6); p.add(newLabel("number")); p.add(input1); p.add(newLabel("name")); p.add(input2); p.add(newLabel("date")); p.add(input3); p.add(newLabel("math")); p.add(input4); p.add(newLabel("english")); p.add(input5); p.add(charu); charu.addActionListener(this); show.addTextListener(this); show.setEditable(false); add(p,BorderLayout.NORTH); add(show,BorderLayout.CENTER); setBounds(10,30,1200,200); setVisible(true); validate(); addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){ dispose(); } }); } publicvoidactionPerformed(ActionEventee){ booleanboo=true; Strings0,s1,s2,s3,s4,s5,insert1,recode,name,date; intm0,m1,m2,m3,number,math,english; s0=input5.getText(); m0=Integer.parseInt(s0); s1=input1.getText(); m1=Integer.parseInt(s1); number=m1; s2=input2.getText(); name=s2; s3=input3.getText(); date=s3; s4=input4.getText(); m2=Integer.parseInt(s4); math=m2; s5=input5.getText(); m3=Integer.parseInt(s5); english=m3; try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundExceptioneee){System.out.println(""+eee);}try{con=DriverManager.getConnection("jdbc:odbc:sun","gxy","123"); sql=con.createStatement();recode="("+m0+","+number+","+"'"+name+"'"+","+"'"+date+"'"+","+math+","+english+")";insert1="INSERTINTOchengjibiaoVALUES"+recode;sql.executeUpdate(insert1);show.setText("你插入了:"); show.append("学号:"+number+"姓名:"+name+"出生:"+date+"数学"+math+"英语"+english); show.append("\n");}catch(SQLExceptione){System.out.println(e); JOptionPane.showMessageDialog(this,"你输入的不正确");}}} 四:运行效果五总结:本次课程设计,让我获益匪浅,不仅更深入的了解Java这门学科,更使自己有了继续探索的兴趣。于个人而言,在程序设计的过程中,我深感“认真严谨”这个词的重要性,一点点小的马虎,便会导致整个程序不能正常运行。在今后的学习中,我定将“认真严谨时刻作为自的谨言。与此同时,本小组成员的互帮互助,让我体会到了团结的力量,而更让人难以忘怀的是在热烈讨论问题时,那激情横溢的场面。总之,此次课程设计在我的学生生涯中启上了至关重要的作用。最后,真诚的感谢彭老师的指导和教诲。本科毕业论文(设计)题目:基于Java的宿舍管理系统的设计与实现学生:学号:学院:计算机与信息工程学院专业:计算机科学与技术入学时间:指导教师:职称:副教授完成日期:年月日诚信承诺我谨在此承诺:本人所写的毕业论文《基于Java的宿舍管理系统的设计与实现》均系本人独立完成,没有抄袭行为,凡涉及其他作者的观点和材料,均作了注释,若有不实,后果由本人承担。承诺人(签名):年月日
基于Java的宿舍管理系统的设计与实现摘要:随着互联网时代的到来,越来越多的生活领域发生了翻天覆地的变化,人们的生活方式也随之改变,更多的线下场景被搬到互联网上,进而为人类的生活带来更多的便利。对于高校学生来说,宿舍就是学生在学校的家,对宿舍的管理尤为重要,宿舍管理员一直在这个过程中扮演着重要的角色。他们的工作的特点繁琐、单一、重复性大,很适合进行信息化,来提高宿舍管理员效率。本毕业设计以软件工程理论为指导,采用Java技术,利用开发领域沉淀下来的主流框架,设计并开发了宿舍管理系统。论文首先指明了课题的研究意义,接着分析了宿舍管理系统建设的可行性,然后规划设计了宿舍管理系统的整体功能结构和数据库概念、逻辑结构,最后利用Mysql数据库和Java编程技术实现系统。宿舍管理系统主要的参与方为宿舍管理员,同时也为学生提供了一些方便的功能。宿舍管理员可以利用系统完成以下工作:系统功能菜单维护,系统角色维护,学生信息维护,水电气费录入,学生报修处理,访客信息管理,卫生检查管理,宿舍信息维护,失物信息查看。学生可以利用系统:查看卫生检查成绩,日常缴费,报修,查看失物信息。关键词:宿舍管理;互联网;Java;MysqlDesignandimplementationofDormManagementSystembasedonJavaAbstract:WiththeadventoftheeraofInternet,moreandmoreareasoflife,greatchangeshavetakenplaceinpeople'slifestylehaschanged,moreofflinescenariosweremovedtotheInternet,andthenbringmoreconveniencetohumanlife.Foruniversitystudents,dormitoryisthehomeofthestudentsintheschool,themanagementofthedormitoryisparticularlyimportant,thedormitoryadministratorhasplayanimportantroleintheprocess.Thecharacteristicsoftheirworktedious,single,repeatability,verysuitableforinformation,toimprovetheefficiencyofthedormitoryadministrator.Thegraduationdesignwithsoftwareengineeringtheoryastheinstruction,usingJavatechnology,theuseofthemainstreamofdevelopmentareassettleframework,designanddevelopthedormitorymanagementsystem.Paperfirstlypointedouttheresearchsignificance,andthenanalyzesthefeasibilityoftheconstructionofdormitorymanagementsystem,thendesignthewholefunctionofthedormitorymanagementsystemstructureanddatabaseconcepts,logicstructure,systemisrealizedbyusingtheMysqldatabaseandJavaprogrammingtechnology.Dormitorymanagementsystemismainlyofparticipantsforthedormitoryadministrator,atthesametimealsoprovidesstudentswithsomehandyfeatures.Dormitoryadministratorcanusethesystemtocompletethefollowingwork:systemfunctionmenumaintenance,systemmaintenance,studentinformationmaintenance,utilityfeeentry,studentshotprocessing,thevisitorinformationmanagement,healthexaminationmanagement,dormitoryinformationmaintenance,thelostinformationview.:studentscanusethesystemtocheckthehealthcheckresult,dailypaycost,therepair,thelostinformationview.Keywords:Dormmanagement;Internet;Java;Mysql;目录1引言 11.1课题研究背景及意义 11.2可行性分析 11.2.1经济可行性 21.2.2技术可行性 21.2.3应用可行性 21.2.4法律可行性 32需求分析 33系统功能模块设计 53.1管理员端功能模块设计 53.2学生端功能模块设计 54数据库分析与设计 64.1数据库分析 64.2数据库概念结构设计 74.3数据库逻辑结构设计 95宿舍管理系统实现 115.1宿舍管理系统数据库实现与连接 125.2管理员端功能模块实现 125.2.1登录页界面 125.2.2登陆后主界面 145.2.3控制面板页面 145.2.4学生信息管理 155.2.5宿舍信息管理 175.2.6访客登记 185.2.7报修处理 195.2.8卫生检查 205.2.9水电气费缴纳 205.2.10失物信息管理 215.3学生端功能模块实现 235.3.1宿舍报修 235.3.2密码修改 245.3.3卫生检查查看 245.3.4水电费缴费查看 245.3.5失物信息发布 256结束语 25参考文献: 26PAGE6 1引言1.1课题研究背景及意义根据当前高等教育的情况[1],很多学生都是远离家乡,采取住校的方式。学生们除了日常的学习以外,剩余的生活时间主要就是以宿舍为中心,因此宿舍成为高校学生的第二个家。宿舍的管理在整个高校的教育工作中的地位显得尤为重要。传统的宿舍管理全靠人工,各种信息的处理方式也都是采用的纸质文档记录,随着整个社会信息化进程的加快,更为便捷、环保的信息化处理方案提上日程。基于B/S的架构[2]也为信息化方案的实施带来了便捷,也能减轻宿舍管理员的手工作业程度,提高工作效率,更好的为学生服务。由于当今网络技术的飞速发展,使信息传播速度达到空前的解放,同时在各行各业中,计算机技术都在不断的融入其中,极大程度的推动了各行业的发展[3]。基于B/S模式的学生宿舍管理系统解决了传统信息存储方式以及学生信息获取方面的缺点,极大的节约了社会资源,实现了无纸化的管理。于此同时,也保证了宿舍同学获取日常生活信息的时效性和便捷性以及可操作性,极大的方便了同学与宿舍管理员之间信息的交互。社会信息化进程的加快,促进人们以更便捷的方式生活,更高效的方式工作。这其间,网络的作用不容忽视,网络技术之所以受到人们的青睐,自然有它的亮点所在。另一方面,相关的操作都是在计算机上处理和存储,数据存储的媒介不再依赖于传统的纸质,而是存储于各种磁盘中。同时利用计算机的高效处理能力,可以对信息进行科学的比对分析,以数据为基础变革宿舍管理的模式。总之,随着计算机的普及和因特网技术的发展,网络信息共享和交流成为人们社会生活不可分割的重要组成部分。我们都知道,技术革命会改变产业的结构,也会带动市场竞争标准的变更。因此,网络技术的发展,将是一场大革命,各种信息化网站的建设必如雨后春竹般蓬勃展开[7]。1.2可行性分析从50年代的老电影到如今的电视中,凡是跟校园相关的都会出现宿舍管理员的身影,这个行业已经存在并不断发展了将近一个世纪,其流程以及边界都已经很清楚了,工作的流程也是比较明确的,足够利用信息化将其标准化。作为一名高校学生宿舍的一切与自己息息相关,自己本身也是该系统的一个潜在使用者,因此对系统的把握也很容易做。1.2.1经济可行性互联网本就是自由、分享的代名词,与互联网相关的很多技术以及资源都是可以免费自由分享的。该系统开发使用的java编程语言是免费的,并且其优秀框架也都是免费。使用到的操作系统、Mysql数据库、Tomcat容器都是免费开源的,唯一需要的就是一台连接网络的PC足够承载宿舍管理系统的运行。其成本全在系统的开发以及以后的维护,也就是人力成本。综合考虑,该系统经济上几乎不存在消耗,可以实施开发。1.2.2技术可行性 本系统的开发是基于B/S模式,包括前端应用程序的开发和后端数据库建立和维护。前端应用程序要求功能齐全,性能稳定;后端数据库要求结构完整安全性好。本系统开发采用Java编程语言,基于J2EE规范,利用Servlet+Jsp技术进行开发,为提高工作效率,会使用一些业界比较知名的框架。前端框架使用Easyui框架,提供简洁、大方的前端页面。后端技术框架选用知名的SSH(Struts2+Spring+Hibernate)框架来实现业务逻辑以及信息的持久化。程序最终运行在一个部署在Linux系统上的Tomcat容器中。通过在校近四年的学习以及老师的指导,以上这些技术都有学习,虽然使用不够熟练,但是通过自己的探索,可以保质保量的完成宿舍管理系统的开发。1.2.3应用可行性 本宿舍管理系统是一个B/S架构的Web应用程序,其运行在一台稳定的服务器上,而作为应用的使用者:宿舍管理员和学生,不需要做任何其他的操作。只需要在自己的电脑上打开浏览器,输入对应的网络地址,根据提示输入自己的账号密码就可以登陆成功,进行一系列的操作。它能使同学不受地域和时间的限制,就可以在浏览器当中对宿舍费用以及损坏物品进行保修。页面操作简单,使用方便,只要能连接到互联网,便可以在自己的计算机上打开浏览器访问本宿舍管理系统。因此本宿舍管理系统不存在学习成本,适用于各种知识水平人员[9,10]。1.2.4法律可行性本系统是作为毕业设计而开发的,与商业没有关系,同时,这个系统又是本人自主研发,因此不会涉及到侵权问题,所以在法律上是具有可行性的。2需求分析通过与宿舍管理员的沟通交流,结合自己日常的一些生活习性,经过一系列的汇总分析,得出系统的业务流程为:宿舍管理员使用管理员账号登陆系统,可以对其管理的宿舍信息进行管理,对入住的学生信息进行管理,对学生提交的保修申请进行护理,对学生代缴的水电费信息进行录入,对来访客人的信息进行登记。作为学生,可以使用管理员分配的账号进行登陆,在该系统中可以进行损坏物品保修,查看卫生检查记录,查看水电费记录,已经发布物品丢失信息。图2-1是本宿舍管理系统的业务流程:图2-1宿舍管理系统业务流程图本系统是将现代化的网络技术与信息共享、信息交流模式相结合,按照系统业务流程设计完成的。开发过程中尽力做到拥抱变化,支持扩展,为后期新需求的开发提供了广阔的扩展空间。宿舍管理系统的开发目标如下:(1)友好、简洁的操作界面:创建便于用户操作的界面,设计菜单式导航条,导航条位于主窗口的左侧,符合人体工程学。相关的操作选项按照相关性进行科学的编排,使用的时候只需要我们先点击对应的一级菜单,然后在展开的二级菜单中选择自己需要的操作。(2)方便快捷的操作方式:对信息的操作(包括修改、添加和删除等)都将以弹出窗口的形式出现,当用户确认无误以后进行提交,保存成功后在页面展示。(3)完善功能:系统的功能设计基于日常宿舍管理员的真实工作内容,各个功能点均是日常工作必须的,不存在多余的华而不实的功能。功能模块的设计完全站在最终用户的角度进行设计和考量。(4)拥有较强的移植性:一个系统最基本要具备的性质有以下几点:实用性、适用性和可靠性,还有系统的先进性。由于java本来就是一种跨平台的变成语言,因此系统具有很强的可移植性。完全不用考虑迁移了服务器系统以后造成的不稳定性。除了应用环境的可移植性行以外,使用场景也具备可复制性,因为宿舍管理的工作在多数情况下是一致的,因此可以做到无修改的平移到其他学校,然后直接就可以使用。(5)稳定的运行:系统采用linux+tomcat+mysql这三个web应用插件都是经过前人精心锤炼的,稳定性也是经过大家认可的,保证了系统的稳定运行。3系统功能模块设计宿舍管理系统主要参与角色有宿舍管理员和学生用户,根据参与者的关注点不同可将系统划分为两大模块:宿舍管理员与学生。不同的角色登陆进来以后看到的菜单不同,对相同的内容能进行的操作也不相同。3.1管理员端功能模块设计宿舍管理员使用初始账号登陆,管理员账号内置在系统中,宿舍存在之初就拥有一个宿舍管理员账号。宿舍管理员登陆以后可以进行的操作有:密码修改、宿舍管理、学生信息管理、水电气费管理、宿舍卫生检查管理、宿舍报修处理、访客记录管理、遗失物品公告、系统菜单管理、系统角色管理、退出等功能模块。图3-1是宿舍管理员端具有的功能模块。图3-1宿舍管理员端功能模块图3.2学生端功能模块设计学生可以登录系统查看宿舍相关的信息以及完成一些日常所需的操作,学生可以进行的操作:登录、修改密码、登出、损坏报修、宿舍卫生检查记录查看、宿舍水电气缴费查看。图3-2是学生端功能模块。图3-2学生端功能模块图4数据库分析与设计4.1数据库分析数据库作为信息在系统中的终点,其重要性不言而喻。数据库的设计对于应用的后期发展也是相当重要的,好的设计能为系统后期的维护与扩展带来很多的便利。用户的各种各样的操作也是围绕数据为核心进行处理的,通过对系统业务的分析和整理,最终得出对数据库的设计具有以下的需求:1)用户分为宿舍管理员和学生,两个角色会操作相同的数据,这就需要对不同角色的重叠部分的数据进行合理的数据隔离。2)该系统最终的使用者将会是整个学校的所有学生,不同的学生所处的宿舍也不同,许多的操作都是围绕宿舍进行,因此不同宿舍之间也需要做好数据的隔离。3)为了便于后期系统的扩展,宿舍管理员具有创建角色,录入新菜单,以及菜单分配的功能。因此系统需要完整的权限管理设计。4)系统的使用者主要是高校的全体学生,数据的处理级别是万级的,需要考虑到数据的查询性能,数据的检索效率等性能问题。5)宿舍是高校学生日常生活的重要一部分,对并发上也有一定的要求,设计数据库的时候需要考虑。4.2数据库概念结构设计经过了以上的一些对业务的分析,以及后期性能的考虑,该系统应该具有以下实体:宿舍、用户、访客记录、卫生检查记录、报修记录、失物信息、水电气费、系统角色、菜单。用户实体包含学生信息,以及宿舍管理员信息,两种登录账号通过类型区分;卫生检查、报修记录、水电气费、用户实体都需要关联对应的宿舍,他们与宿舍的关系均是多对一。各实体的相关属性如图4-1至4-8所示,部分实体间的联系如图4-9所示,没有联系的实体为孤立实体。图4-1用户实体及其属性图4-2系统菜单实体及其属性图4-3失物通知实体及其属性图4-4报修记录实体及其属性图4-5访客记录实体及其属性图4-6宿舍实体及其属性图4-7卫生检查实体及其属性图4-8缴费实体及其属性图4-9部分实体联系图4.3数据库逻辑结构设计在完成宿舍管理系统数据库的概念结构设计后,需要把所得到的数据库概念模型转变成Mysql所支持的关系模型,也就是数据库的逻辑结构。根据概念设计结果,本宿舍管理网站的数据库中包括用户表、角色表、菜单表、宿舍表、报修记录表、卫生检查表、访客记录表、水电费记录表、失物记录表。每个表的逻辑结构如表1—表9所示。表1用户表(T_USER)属性的名字属性的数据类型属性的长度属性的说明ID文本32主码用户名文本64密码文本64真实姓名文本64电话号码文本16状态布尔1院系文本32年龄数字4学号文本32唯一宿舍id文本32外键用户类型文本16添加时间日期时间8修改时间日期时间8表2角色表(T_ROLE)属性的名字属性的数据类型属性的长度属性的说明ID文本32主码角色名文本20唯一值描述文本128表3菜单表(T_AUTH)属性的名字属性的数据类型属性的长度属性的说明ID文本32主码父菜单ID文本32外键菜单描述文本128菜单图标文本32菜单名文本32唯一显示顺序数字3菜单地址文本64表4宿舍表(T_DORM)属性的名字属性的数据类型属性的长度属性的说明ID文本32主码宿舍编号文本32备注文本128表5卫生检查表(T_SANITARY)属性的名字属性的数据类型属性的长度属性的说明ID文本32主码检查时间日期时间8分数数字3宿舍id文本32外键表6水电气费表(T_UTILITY)属性的名字属性的数据类型属性的长度属性的说明ID文本32主码缴费月份文本16缴费时间日期时间8金额数字8宿舍id文本32外键备注文本128表7访客表(T_VISITOR)属性的名字属性的数据类型属性的长度属性的说明ID文本32主码访客姓名文本32访客证件号文本64受访者姓名文本64受访宿舍文本32外码来访时间日期时间8离开时间日期时间8表8失物信息表(T_NOTE)属性的名字属性的数据类型属性的长度属性的说明ID文本32主码标题文本32内容文本256创建人文本32添加时间日期时间8表9报修记录表(T_REPAIR)属性的名字属性的数据类型属性的长度属性的说明ID文本32主码宿舍编号文本32报修人文本32描述文本256修理状态布尔1处理意见文本645宿舍管理系统实现宿舍管理系统是基于Web的应用系统,系统开发平台为Windows7,开发工具Myeclipse,编程技术选择Java,数据库采用Mysql。5.1宿舍管理系统数据库实现与连接根据逻辑设计结果,使用远程连接操作工具创建对应的数据表,创建用户设置密码。系统利用Hibernate框架实现数据的持久化,并完成从关系型数据库到对象的映射,为了提高数据的读取和操作数据库的连接使用了连接池,系统中使用的阿里巴巴开源的Druid数据库连接池;整个项目又是使用Spring框架提供的IoC容器来管理业务Bean数据库的实现主要通过配置完成,配置如下:<beanname="dataSource"class="com.alibaba.druid.pool.DruidDataSource" init-method="init"destroy-method="close"> <propertyname="url"value="${jdbc_url}"/> <propertyname="username"value="${jdbc_username}"/> <propertyname="password"value="${jdbc_password}"/> <propertyname="initialSize"value="0"/> <propertyname="maxActive"value="20"/> <propertyname="maxIdle"value="20"/> <propertyname="minIdle"value="0"/> <propertyname="maxWait"value="60000"/> <propertyname="validationQuery"value="${validationQuery}"/> <propertyname="testOnBorrow"value="false"/> <propertyname="testOnReturn"value="false"/> <propertyname="testWhileIdle"value="true"/> <propertyname="timeBetweenEvictionRunsMillis"value="60000"/> <propertyname="minEvictableIdleTimeMillis"value="25200000"/> <propertyname="removeAbandoned"value="true"/> <propertyname="removeAbandonedTimeout"value="1800"/> <propertyname="logAbandoned"value="true"/> </bean>5.2管理员端功能模块实现宿舍管理系统网站包括登录页、主页、功能导航、控制面板、失物信息管理、学生信息管理、宿舍信息管理、访客记录管理、报修处理。5.2.1登录页界面登录页如图5-1所示,该界面是本站的默认登录页。网站登录页界面清楚,简洁大方,在该页面输入账号密码登录,如果账号密码不正确可以在页面给出提示。登录成功后会跳转到系统主页。用户登录模块代码如下: publicStringlogin(){ if(StringUtils.isBlank(user.getCname())||StringUtils.isBlank(user.getCpwd())){ getRequest().setAttribute("msg","提示:用户名和密码不能为空!"); return"login"; } Useru=userService.login(user); if(u!=null){ //将用户属性放进session saveSessionInfo(u); changeUserAuths(u); }else{ getRequest().setAttribute("msg","提示:用户名或密码错误,请确认数据库是否初始化!"); return"login"; } return"index"; } 图5-1登录页面5.2.2用户登录成功后主界面如图5-2所示,用户登录后可以点击左侧导航菜单进行相应的操作。图5-2登陆成功后主界面5.2.3控制面板页面主要进行密码的修改,以及当前登录用户信息的查看。控制面板页面如图5-3所示,用于修改密码。图5-3控制面板界面实现控制面板功能的部分代码如下:<divclass="easyui-layout"fit="true"border="false"> <divregion="center"style=""title="拥有权限"border="false"> <% SessionInfosessionInfo=(SessionInfo)session.getAttribute(ResourceUtil.getSessionInfoName()); if(sessionInfo!=null&&sessionInfo.getAuths()!=null&&sessionInfo.getAuths().size()>0){ List<Auth>auths=sessionInfo.getAuths(); for(inti=0;i<auths.size();i++){ if(i>0){ out.print(","); } Autha=auths.get(i); out.print(a.getCname()); } } %> </div> <divregion="south"style="overflow:hidden;height:115px;"title="密码修改"border="false"align="center"> <formid="userInfoForm"method="post"> <tableclass="tableForm"> <tr> <th>原密码</th> <td><inputname="oldPwd"type="password"class="easyui-validatebox"required="true"missingMessage="请填写原密码"/> </td> <td></td> </tr> <tr> <th>新密码</th> <td><inputname="cpwd"type="password"class="easyui-validatebox"required="true"missingMessage="请填写新密码"/> </td> <td></td> </tr> <tr> <th>重复密码</th> <td><inputname="rePassword"type="password"class="easyui-validatebox"required="true"missingMessage="请再次填写密码"validType="eqPassword['#userInfoForminput[name=cpwd]']"/></td> <td><aname="btn"class="easyui-linkbutton"onclick="userInfoForm.submit();">修改</a></td> </tr> </table> </form> </div>5.2.4学生信息管理宿舍管理员在左侧菜单选择学生信息菜单以后,将会在主窗口中打开一个新的标签页用来显示对学生信息的维护。在该页面管理员可以增加新的学生信息、也可以编辑已经存在的学生信息、也可以删除掉没用的数据。如图5-4所示。该界面是个列表,列出了已经存在于系统的学生信息,可以对学生信息进行排序,页面实现代码如下:datagrid=$('#datagrid').datagrid({ url:'userAction!datagrid.action', title:'用户列表(a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 购买插画版权合同范本
- 预防医学知到课后答案智慧树章节测试答案2025年春滨州医学院
- 财务数据分析模板
- 制作安装窗户合同范本
- 2025 网点店铺租赁合同 标准版 模板
- 2024年中山市沙溪镇招聘真题
- 2024年榆林市吴堡县县属国有企业招聘真题
- 2025年高层管理人员劳动合同的认定与合同续签策略
- 2024年龙岩市市属事业单位考试真题
- 2024年雷州市市属事业单位考试真题
- 2023年高考英语试题及答案(江苏卷)(直接打印Word)无错版
- 硬笔书法全册教案共20课时
- DB44-T 2198-2019城乡社区协商工作规范-(高清现行)
- 资源环境信息系统(gis)课件
- 股东身份证明
- 本科大学生劳动教育理论与实践教程第三章 教学课件
- 近代以来广州外贸产业的发展历程
- 29《马说》2022中考语文文言文阅读复习精选真题汇编(原卷版+解析版)
- 企业事业单位突发环境事件应急预案备案表范本
- 国内外钢结构焊接标准体系及国标钢结构焊接规范介绍刘景凤PPT教案
- 车站主体结构模板支架专项施工方案--终稿(专家意见修改的)-副本
评论
0/150
提交评论