《面向对象程序设计》宿舍管理系统_第1页
《面向对象程序设计》宿舍管理系统_第2页
《面向对象程序设计》宿舍管理系统_第3页
《面向对象程序设计》宿舍管理系统_第4页
《面向对象程序设计》宿舍管理系统_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

成绩徐州工程学院

面向对象程序设计课程设计报告设计名称宿舍人员管理系统学院信电工程学院专业计算机科学与技术班级09软件2班学生姓名王晓峰学号20090501136设计地点计算机应用技术实验室指导教师胡局新设计起止时间:2012年1月2日至2012年1月6日一、目的及意义本次课程设计的题目是“宿舍人员管理系统”。在如今的高校或者中学,学生人数越来越多,住宿的学生相应的也越来越多,原本的手工管理宿舍人员显然已经很难适应庞大的学生的数量,这次设计的目的和意义就是,方便管理人员对住宿学生进行管理,能够清楚便捷的对宿舍人员进行管理,轻松地对宿舍人员进行增加,修改,删除,查询,并且通过树结构可以一目了然学校宿舍的住宿情况。这次课程设用到了,数据库,初层次的设计模型,JAVAGUI界面设计,JDBC等方面的知识,加深了JAVA基础知识的理解,了解了很多以往没有接触到的java类库,对今后数据库操作,软件设计的模式和步骤都有很大的帮助。二、设计方案(1)课题概述:功能需求添加功能:当有人员入住宿舍时,使用添加功能进行人员信息的添加。1.1.2删除功能:当人员毕业或者其他情况不在宿舍住了,使用删除功能删除学生的信息。查询功能:当要获取某个人的信息资料时,使用查询功能,可以方便找到需要的信息。修改功能:当有人员更换宿舍或者信息需要修改时,使用修改功能对人员资料进行修改。1.5显示功能:以树的层次结构来显示,能够方便显示学校个宿舍楼的住宿情况。界面需求:1.2.1登录界面:只有输入正确的用户名和密码,才可以使用这个系统软件。主界面:以简单清晰的操作界面,提供简单方便的操作方式,让操作者轻松的使用这个系统。类的设计:1.3.1为保证学生信息得以封装,在设计数据库学生表的同时,设计一个学生类(student)与之对应。1.3.2为了实现数据库与JAVA之间各种操作,需要设计一个数据库类(DataBase)1.3.3为了是系统更具完整性,在界面中加入了一个时间类(Today),用来显示当前系统的时间。1.3.4在核心JTable中需要一个模型类(stuModel),用来进行数据在表中的显示与更改。数据库选择考虑到系统的健壮性,本系统采用了SQLSERVER2008数据库。SQLSERVER2008操作界面相对简单,使用非常方便。环境需求

本系统开发环境为myEclipse+WINDOW7操作系统+SQLSERVER2008(2)功能结构图和流程图2.1整个系统模型图宿舍人员管理系统2.2流程图1T宿舍人员管理系统2.2流程图1T(2)数据库设计I.新建数据库

elseif(arg0.getSource()==button3){jTextField1.setText("");jPasswordField1.setText("");}}}3.1.2主界面的设计清输入名享查间3徐州工程学院

个或熠

9-E5201■Q■白□田三炮[Zj王珞丹222243301501601602□201口小白D田三炮学号姓名清输入名享查间3徐州工程学院

个或熠

9-E5201■Q■白□田三炮[Zj王珞丹222243301501601602□201口小白D田三炮学号姓名性别宿舍楼号房间号▲20090501101小明湖10120090501102小白W201=20090501103小里W30120090501104小畜W50120090501105白妞女W60120090501106徐敏女河50320090501107黑妞女Lw60220090501108张恬女50320090501109知诗诗女10120090501110康微微女50320090501111弓跃站10120090501112田三炮20120090501113王珞丹女20120090501114李二炮301▼20090501115柳岩女301.20090501123昧三Lw22220090501125王武河24520090501127赵柳I[幡24320090501128庙村支418部分代码省略background.add(timeLabel);newTime().start();//开启线程this.setSize(800,550);Toolkitkit=Toolkit.getDefaultToolkit();Dimensiondim=kit.getScreenSize();intheight=dim.height;intwidth=dim.width;intx=(width-800)/2;inty=(height-600)/2;this.setTitle("简易宿舍人员管理系统");this.setLocation(x,y);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSIJ;this.setVisible(true);this.setResizable(false);}classTimeextendsThread{//创建内部类publicvoidrun()(//重构父类的方法while(true){Datedate=newDate();//创建日期对象timeLabel.setText(date.toString().substring(11,19));//获取当前时间,并显示到时间标签中try{Thread.sleep(1000);//令线程休眠1秒}catch(InterruptedExceptione){e.printStackTrace();}}}}©OverridepublicvoidactionPerformed(ActionEventarg0){//点击退出按钮if(arg0.getSource()=jb5){this.dispose();}//点击返回登录按钮elseif(arg0.getSource()=jb6){java.awt.EventQueue.invokeLater(newRunnable(){publicvoidrun(){newLandFrame().setVisible(true);}});this.dispose();}//点击查询按钮elseif(arg0.getSource()=jb1){//Findfind二newFind(this,"查询",true);Stringname=this.jtf.getText();Stringsql;if(name.equals(""))sql="select*fromstudent";elsesql="select*fromstudentwherename=’"+name+"'";sm=newStuModel(sql);this.table.setModel(sm);}//点击添加按钮elseif(arg0.getSource()=jb2){AddRecordadd=newAddRecord(this,"添加记录",true);//跟新表中记录sm=newStuModel("");table.setModel(sm);}//点击删除按钮elseif(arg0.getSource()=jb4){introwId=this.table.getSelectedRow();//获取选择的行if(rowId=-1){JOptionPane.showMessageDialo(this,"请选择一行");return;}else{Stringstuid=(String)sm.getValueAt(rowId,0);System.out.println(stuid);DeleteRecorddelete=newDeleteRecord(stuid);sm=newStuModel("");table.setModel(sm);}}//点击修改按钮elseif(arg0.getSource()=jb3){introwId=this.table.getSelectedRow();//获取选择的行if(rowId=-1){JOptionPane.showMessageDialo(this,"请选择一行");return;}else{StringstuName=(String)sm.getValueAt(rowId,0);System.out.println(stuName);UpdRecordchange=newUpdRecord(this,"修改记录",truestuName,rowId,sm);sm=newStuModel("");table.setModel(sm);}}}}3.1.3添加模块设计运行结果如下:实现代码:publicAddRecord(Frameframe,Stringtitle,booleanmodal){super(frame,title,modal);JLabelbackground二newJLabel();URLurl二Find.class.getResource("/img/world02.jpg");中间代码省略}©OverridepublicvoidactionPerformed(ActionEventarg0){//点击确定按钮if(arg0.getSource()=ok){Stringsql="insertintostudentvalues(?,?,?,?,?)";String[]arg={idField.getText(),nameField.getText(),sexField.getText(),(String)dorm.getSelectedItem(),roomField.getText()};try{//如果添加成功if(db.execSql(sql,arg)==1){JOptionPane.showMessageDialo(null,”记录添加成功");this.dispose();}}catch(Exceptione){//如果主键重复,即名字相同时JOptionPane.showMessageDialo(null,”此学号已经存在,请输入不同的学号");nameField.setText("");idField.setText("");roomField.setText("");sexField.setText("");}finally{try{db.close();}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}}//点击取消按钮elseif(arg0.getSource()==cancel){this.dispose();}}3.1.4修改模块的设计当用户选择一个对象时,可对其进行修改,为保证数据的安全性,在修改时,学号设置为不能改变,其运行结果如下:

汕tJiS僦H输州工程胃阡:T或嗜73或":『J1震43010101其I—LI—•Z2---汕tJiS僦H输州工程胃阡:T或嗜73或":『J1震43010101其I—LI—•Z2---366吕吕吕h-_A—Jt—-JII-A—A字号蛀名性利20090501101矿10120D905011Q2小「:2012CD905C1123爪黑_玛_301■7-^2UG905011U4姓名.'苗501[一修改无汞□宿衲1#»孑问号5011福1601503|602503薄1C1海503101201典201301海[瞄222'245[胳|3曜|J1B1^publicvoidactionPerformed(ActionEventarg0){中间代码省略if(arg0.getSource()==ok){Stringsql="updatestudentsetname=?,dormId=?,roomId=?whereid=?";String[]arg={nameField.getText(),(String)dorm.getSelectedItem(),roomField.getText(),idField.getText()};try{inti二db.execSql(sql,arg);if(i==1){JOptionPane.showMessageDialo(null,"修改成功");db.close();this.dispose();}else{JOptionPane.showMessageDialo(null,"修改失败,注意信息是否有误");}

}catch(Exceptione){e.printStackTrace();}}elseif(arg0.getSource()==cancel){this.dispose();}}3.1.5删除模块运行结果如下:I鸟管易唁舍人瓣理童说添加修改删除系毓请输入名字昌3口3.口O-*-—A—A—AA学号姓名2小白D田肄2王2222433015016012009050-110920090501TiO200905011112009050刻侍诗

康微微张大炮田三恒涓息删除成功602L=6-匚I鸟管易唁舍人瓣理童说添加修改删除系毓请输入名字昌3口3.口O-*-—A—A—AA学号姓名2小白D田肄2王2222433015016012009050-110920090501TiO200905011112009050刻侍诗

康微微张大炮田三恒涓息删除成功602L=6-匚3-101.或5□小白D田三炮F\i~Jj?m"典UHUnUIT34将■瞪嶂20090501135李荣成200905011362009050-113720090501138王晓峰张康乐翟晓斐20090501156小会200*0501164刘浩史419逐426publicDeleteRecord(Stringid){Stringsql="deletefromstudentwhereid=?";String口arg={id};try{if(db.execSql(sql,arg)==1){JOptionPane.showMessageDialo(null,”删除成功”);System.out.println("删除成功");}else{JOptionPane.showMessageDialo(null,"删除失败");System.out.println("删除失败");}db.close();}catch(Exceptione){e.printStackTrace();}}}3.1.6查询模块运行结果如下:©OverridepublicvoidactionPerformed(ActionEventarg0){Stringsql;if(arg0.getSource()==ok){if(inputField.equals(""))sql="select*fromstudent";elsesql="select*fromstudentwherename=’"+inputField+try{db.execQuery(sql);}catch(ClassNotFoundExceptione){e.printStackTrace();}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}elseif(arg0.getSource()==cancel){this.dispose();}}3.1.7-树形显示模型借助JTREE来实现一个树形结构,清晰显示当前系统学生住宿的情况。E3徐州工程学院O■口力1O"口222o-口243o-3301o-口601O-E3W?3冲o-口4189E3419卜D田兴琅□蒋晓峰□李荣成口王晓峰□服康乐口翟晓斐k1―A:11。■亡▲学号姓名性别宿舍楼号房间号▲20090501100张恬女50320090501109刘诗诗女101=20090501110康微微女50320090501111弓成炮10120090501112田三炮20120090501113王珞丹女20120090501114李二炮30120090501115柳岩女30120090501123弓长三22220090501125王武湖24520090501127瑟柳24320090501128庙村支41020090501133田兴琅41920090501134蒋晓峰41920090501135李荣成41920090501136王晓峰41920090501137张康乐41920090501138翟晓斐419▼20090501164刘浩426I."IlIL4I.VA\Z//树结构Stringnode_1□二newString[111];Vector<Student>st1=newVector<Student>();root二newDefaultMutableTreeNode("徐州工程学院");red=newDefaultMutableTreeNode("1#楼");this.find("1#楼",node_1);for(inti=0;i<node_1.length;i++){System.out.println(node_1[i]);if(node_1[i]==null)break;DefaultMutableTreeNodenodetemp二newDefaultMutableTreeNode(node_1[i]);//Stringsss□二newString[111];Vector<Student>sss=newVector<Student>();this.findroom(node_1[i],sss);for(intj=0;j<sss.size();j++){DefaultMutableTreeNodesubnode=newDefaultMutableTreeNode(sss.get(j));nodetemp.add(subnode);}red.add(nodetemp);}中间代码省略//树结构结束publicvoidfind(Strings,Stringnode[]){inti=0;DataBasedb=newDataBase();try{ResultSetrs二db.execQuery("selectdistinctroomIdfromstudentwheredormId=’"+s+"'");while(rs.next()){node[i++]=rs.getString(1);}}catch(ClassNotFoundExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}publicvoidfindroom(Strings,Vector<Student>node){inti=0;DataBasedb二newDataBase();try{ResultSetrs二db.execQuery("selectnamefromstudentwhereroomId='"+s+"'");while(rs.next()){Studentstu二newStudent();stu.setName(rs.getString(1));node.add(stu);}}catch(ClassNotFoundExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}3.1.8-系统模块(退出返回模块设计)(2)相关类的设计包括学生类的设计,数据库操作类设计,模型类设计,时间类设计。3.2.1学生类Student的设计如下packagewxf.model;publicclassStudent{privateStringid;//学生学好privateStringname;//姓名privateStringsex;//性另"privateStringdormId;//宿舍楼号privateStringroomId;//房间号••••省略代码为各个字段的setter-getter方法}3.2.2数据库的连接以及对数据库的操作在MyEclipse中新建一个DataBase类,用来进行数据库的连接及对数据库的各种操作。具体代码如下:publicclassDataBase{//构造函数完成参数初始化publicDataBase(){conn=null;ps=null;rs=null;driverName="com.microsoft.jdbc.sqlserver.SQLServerDriver";jdbcUrl="jdbc:sqlserver://:1433;databaseName二susheManage";user="wxfeng";password="wangxiao19900728";}〃关闭数据集对象、语句对象和数据库连接对象publicvoidclose()throwsSQLException{if(rs!=null)rs.close();if(ps!=null)ps.close();if(conn!=null&&conn.isClosed())conn.close();}/*创建连接对象*/publicvoidcreateConn()throwsSQLException,ClassNotFoundException{if(conn==null){Class.forName(driverName);conn二DriverManager.getConnection(jdbcUrl,user,password);System.out.println("数据库连接成功");}elseSystem.out.println(conn);}/*执彳亍insert、update、delete操作*/publicintexecSql(Stringsql,String[]arg)throwsClassNotFoundException,SQLException{this.createConn();ps二conn.prepareStatement(sql);for(intk=0;k<arg.length;k++){ps.setString(k+1,arg[k]);}inti二ps.executeUpdate();returni;//若成功返回1}/*执行select操作*/publicResultSetexecQuery(Stringsql)throwsClassNotFoundException,SQLException{this.createConn();ps二conn.prepareStatement(sql);rs二ps.executeQuery();returnrs;}}-3.2.3-主界面时间类设计packagewxf.model;importjava.util.Calendar;publicclassToday{privatestaticfinalCalendarNOW=Calendar.getInstance();中间代码省略publicstaticStringgetDate(){returnYEAR+"-"+MONTH+"-"+DAY;}publicstaticStringgetDateOfNum(){Stringy=YEAR+"";Stringm二MONTH+"";Stringd=DAY+"";if(MONTH<10)m="0"+MONTH;if(DAY<10)d="0"+DAY;returny+m+d;}publicstaticStringgetDateOfShow(){returnYEAR+"年”+MONTH+"月”+DAY+"日”;}publicstaticStringgetDayOfWeek(){StringdayOfWeek="";switch(WEEK){case1:dayOfWeek=”星期日”;break;中间代码省略}}}-3.2.4-模型类设计publicclassStuModelextendsAbstractTableModel{//rowDate用来存放行数据//columnNames存放列名VectorrowDate,columnNames;//定义操作数据库需要的东西DataBasedb;publicStuModel(Stringsql){db二newDataBase();columnNames=newVector();//设置列名columnNames.add("学号");columnNames.add("姓名");columnNames.add("性别");columnNames.add("宿舍楼号");columnNames.add("房间号");rowDate=newVector();try{//加载驱动//db.createConn();if(sql.equals(""))sql="select*fromstudent";ResultSetrs二db.execQuery(sql);while(rs.next()){Vectorhang=newVector();hang.add(rs.getString(1));hang.add(rs.getString(2));hang.add(rs.getString(3));hang.add(rs.getS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论