版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
成績徐州工程學(xué)院
面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)報(bào)告設(shè)計(jì)名稱宿舍人員管理系統(tǒng)學(xué)院信電工程學(xué)院專業(yè)計(jì)算機(jī)科學(xué)與技術(shù)班級09軟件2班學(xué)生姓名王曉峰學(xué)號20090501136設(shè)計(jì)地點(diǎn)計(jì)算機(jī)應(yīng)用技術(shù)實(shí)驗(yàn)室指導(dǎo)教師胡局新設(shè)計(jì)起止時(shí)間:2012年1月2日至2012年1月6日一、目的及意義本次課程設(shè)計(jì)的題目是“宿舍人員管理系統(tǒng)”。在如今的高?;蛘咧袑W(xué),學(xué)生人數(shù)越來越多,住宿的學(xué)生相應(yīng)的也越來越多,原本的手工管理宿舍人員顯然已經(jīng)很難適應(yīng)龐大的學(xué)生的數(shù)量,這次設(shè)計(jì)的目的和意義就是,方便管理人員對住宿學(xué)生進(jìn)行管理,能夠清楚便捷的對宿舍人員進(jìn)行管理,輕松地對宿舍人員進(jìn)行增加,修改,刪除,查詢,并且通過樹結(jié)構(gòu)可以一目了然學(xué)校宿舍的住宿情況。這次課程設(shè)用到了,數(shù)據(jù)庫,初層次的設(shè)計(jì)模型,JAVAGUI界面設(shè)計(jì),JDBC等方面的知識,加深了JAVA基礎(chǔ)知識的理解,了解了很多以往沒有接觸到的java類庫,對今后數(shù)據(jù)庫操作,軟件設(shè)計(jì)的模式和步驟都有很大的幫助。二、設(shè)計(jì)方案(1)課題概述:功能需求添加功能:當(dāng)有人員入住宿舍時(shí),使用添加功能進(jìn)行人員信息的添加。1.1.2刪除功能:當(dāng)人員畢業(yè)或者其他情況不在宿舍住了,使用刪除功能刪除學(xué)生的信息。查詢功能:當(dāng)要獲取某個(gè)人的信息資料時(shí),使用查詢功能,可以方便找到需要的信息。修改功能:當(dāng)有人員更換宿舍或者信息需要修改時(shí),使用修改功能對人員資料進(jìn)行修改。1.5顯示功能:以樹的層次結(jié)構(gòu)來顯示,能夠方便顯示學(xué)校個(gè)宿舍樓的住宿情況。界面需求:1.2.1登錄界面:只有輸入正確的用戶名和密碼,才可以使用這個(gè)系統(tǒng)軟件。主界面:以簡單清晰的操作界面,提供簡單方便的操作方式,讓操作者輕松的使用這個(gè)系統(tǒng)。類的設(shè)計(jì):1.3.1為保證學(xué)生信息得以封裝,在設(shè)計(jì)數(shù)據(jù)庫學(xué)生表的同時(shí),設(shè)計(jì)一個(gè)學(xué)生類(student)與之對應(yīng)。1.3.2為了實(shí)現(xiàn)數(shù)據(jù)庫與JAVA之間各種操作,需要設(shè)計(jì)一個(gè)數(shù)據(jù)庫類(DataBase)1.3.3為了是系統(tǒng)更具完整性,在界面中加入了一個(gè)時(shí)間類(Today),用來顯示當(dāng)前系統(tǒng)的時(shí)間。1.3.4在核心JTable中需要一個(gè)模型類(stuModel),用來進(jìn)行數(shù)據(jù)在表中的顯示與更改。數(shù)據(jù)庫選擇考慮到系統(tǒng)的健壯性,本系統(tǒng)采用了SQLSERVER2008數(shù)據(jù)庫。SQLSERVER2008操作界面相對簡單,使用非常方便。環(huán)境需求
本系統(tǒng)開發(fā)環(huán)境為myEclipse+WINDOW7操作系統(tǒng)+SQLSERVER2008(2)功能結(jié)構(gòu)圖和流程圖2.1整個(gè)系統(tǒng)模型圖宿舍人員管理系統(tǒng)2.2流程圖1T宿舍人員管理系統(tǒng)2.2流程圖1T(2)數(shù)據(jù)庫設(shè)計(jì)I.新建數(shù)據(jù)庫
elseif(arg0.getSource()==button3){jTextField1.setText("");jPasswordField1.setText("");}}}3.1.2主界面的設(shè)計(jì)清輸入名享查間3徐州工程學(xué)院
個(gè)或熠
9-E5201■Q■白□田三炮[Zj王珞丹222243301501601602□201口小白D田三炮學(xué)號姓名清輸入名享查間3徐州工程學(xué)院
個(gè)或熠
9-E5201■Q■白□田三炮[Zj王珞丹222243301501601602□201口小白D田三炮學(xué)號姓名性別宿舍樓號房間號▲20090501101小明湖10120090501102小白W201=20090501103小里W30120090501104小畜W50120090501105白妞女W60120090501106徐敏女河50320090501107黑妞女Lw60220090501108張?zhí)衽?0320090501109知詩詩女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("簡易宿舍人員管理系統(tǒng)");this.setLocation(x,y);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSIJ;this.setVisible(true);this.setResizable(false);}classTimeextendsThread{//創(chuàng)建內(nèi)部類publicvoidrun()(//重構(gòu)父類的方法while(true){Datedate=newDate();//創(chuàng)建日期對象timeLabel.setText(date.toString().substring(11,19));//獲取當(dāng)前時(shí)間,并顯示到時(shí)間標(biāo)簽中try{Thread.sleep(1000);//令線程休眠1秒}catch(InterruptedExceptione){e.printStackTrace();}}}}?OverridepublicvoidactionPerformed(ActionEventarg0){//點(diǎn)擊退出按鈕if(arg0.getSource()=jb5){this.dispose();}//點(diǎn)擊返回登錄按鈕elseif(arg0.getSource()=jb6){java.awt.EventQueue.invokeLater(newRunnable(){publicvoidrun(){newLandFrame().setVisible(true);}});this.dispose();}//點(diǎn)擊查詢按鈕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);}//點(diǎn)擊添加按鈕elseif(arg0.getSource()=jb2){AddRecordadd=newAddRecord(this,"添加記錄",true);//跟新表中記錄sm=newStuModel("");table.setModel(sm);}//點(diǎn)擊刪除按鈕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);}}//點(diǎn)擊修改按鈕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添加模塊設(shè)計(jì)運(yùn)行結(jié)果如下:實(shí)現(xiàn)代碼:publicAddRecord(Frameframe,Stringtitle,booleanmodal){super(frame,title,modal);JLabelbackground二newJLabel();URLurl二Find.class.getResource("/img/world02.jpg");中間代碼省略}?OverridepublicvoidactionPerformed(ActionEventarg0){//點(diǎn)擊確定按鈕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){//如果主鍵重復(fù),即名字相同時(shí)JOptionPane.showMessageDialo(null,”此學(xué)號已經(jīng)存在,請輸入不同的學(xué)號");nameField.setText("");idField.setText("");roomField.setText("");sexField.setText("");}finally{try{db.close();}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}}//點(diǎn)擊取消按鈕elseif(arg0.getSource()==cancel){this.dispose();}}3.1.4修改模塊的設(shè)計(jì)當(dāng)用戶選擇一個(gè)對象時(shí),可對其進(jìn)行修改,為保證數(shù)據(jù)的安全性,在修改時(shí),學(xué)號設(shè)置為不能改變,其運(yùn)行結(jié)果如下:
汕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刪除模塊運(yùn)行結(jié)果如下:I鳥管易唁舍人瓣理童說添加修改刪除系毓請輸入名字昌3口3.口O-*-—A—A—AA學(xué)號姓名2小白D田肄2王2222433015016012009050-110920090501TiO200905011112009050刻侍詩
康微微張大炮田三恒涓息刪除成功602L=6-匚I鳥管易唁舍人瓣理童說添加修改刪除系毓請輸入名字昌3口3.口O-*-—A—A—AA學(xué)號姓名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查詢模塊運(yùn)行結(jié)果如下:?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來實(shí)現(xiàn)一個(gè)樹形結(jié)構(gòu),清晰顯示當(dāng)前系統(tǒng)學(xué)生住宿的情況。E3徐州工程學(xué)院O■口力1O"口222o-口243o-3301o-口601O-E3W?3沖o-口4189E3419卜D田興瑯□蔣曉峰□李榮成口王曉峰□服康樂口翟曉斐k1―A:11?!鐾觥鴮W(xué)號姓名性別宿舍樓號房間號▲20090501100張?zhí)衽?0320090501109劉詩詩女101=20090501110康微微女50320090501111弓成炮10120090501112田三炮20120090501113王珞丹女20120090501114李二炮30120090501115柳巖女30120090501123弓長三22220090501125王武湖24520090501127瑟柳24320090501128廟村支41020090501133田興瑯41920090501134蔣曉峰41920090501135李榮成41920090501136王曉峰41920090501137張康樂41920090501138翟曉斐419▼20090501164劉浩426I."IlIL4I.VA\Z//樹結(jié)構(gòu)Stringnode_1□二newString[111];Vector<Student>st1=newVector<Student>();root二newDefaultMutableTreeNode("徐州工程學(xué)院");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);}中間代碼省略//樹結(jié)構(gòu)結(jié)束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-系統(tǒng)模塊(退出返回模塊設(shè)計(jì))(2)相關(guān)類的設(shè)計(jì)包括學(xué)生類的設(shè)計(jì),數(shù)據(jù)庫操作類設(shè)計(jì),模型類設(shè)計(jì),時(shí)間類設(shè)計(jì)。3.2.1學(xué)生類Student的設(shè)計(jì)如下packagewxf.model;publicclassStudent{privateStringid;//學(xué)生學(xué)好privateStringname;//姓名privateStringsex;//性另"privateStringdormId;//宿舍樓號privateStringroomId;//房間號????省略代碼為各個(gè)字段的setter-getter方法}3.2.2數(shù)據(jù)庫的連接以及對數(shù)據(jù)庫的操作在MyEclipse中新建一個(gè)DataBase類,用來進(jìn)行數(shù)據(jù)庫的連接及對數(shù)據(jù)庫的各種操作。具體代碼如下:publicclassDataBase{//構(gòu)造函數(shù)完成參數(shù)初始化publicDataBase(){conn=null;ps=null;rs=null;driverName="com.microsoft.jdbc.sqlserver.SQLServerDriver";jdbcUrl="jdbc:sqlserver://:1433;databaseName二susheManage";user="wxfeng";password="wangxiao19900728";}〃關(guān)閉數(shù)據(jù)集對象、語句對象和數(shù)據(jù)庫連接對象publicvoidclose()throwsSQLException{if(rs!=null)rs.close();if(ps!=null)ps.close();if(conn!=null&&conn.isClosed())conn.close();}/*創(chuàng)建連接對象*/publicvoidcreateConn()throwsSQLException,ClassNotFoundException{if(conn==null){Class.forName(driverName);conn二DriverManager.getConnection(jdbcUrl,user,password);System.out.println("數(shù)據(jù)庫連接成功");}elseSystem.out.println(conn);}/*執(zhí)彳亍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}/*執(zhí)行select操作*/publicResultSetexecQuery(Stringsql)throwsClassNotFoundException,SQLException{this.createConn();ps二conn.prepareStatement(sql);rs二ps.executeQuery();returnrs;}}-3.2.3-主界面時(shí)間類設(shè)計(jì)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-模型類設(shè)計(jì)publicclassStuModelextendsAbstractTableModel{//rowDate用來存放行數(shù)據(jù)//columnNames存放列名VectorrowDate,columnNames;//定義操作數(shù)據(jù)庫需要的東西DataBasedb;publicStuModel(Stringsql){db二newDataBase();columnNames=newVector();//設(shè)置列名columnNames.add("學(xué)號");columnNames.add("姓名");columnNames.add("性別");columnNames.add("宿舍樓號");columnNames.add("房間號");rowDate=newVector();try{//加載驅(qū)動//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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度暖通工程保險(xiǎn)合同
- 課題申報(bào)參考:明清時(shí)期俄人旅華游記中的中國形象研究
- 課題申報(bào)參考:面向大學(xué)生情緒調(diào)節(jié)的人工智能眼動交互音樂生成系統(tǒng)設(shè)計(jì)研究
- 二零二五年度模具行業(yè)創(chuàng)新項(xiàng)目合作合同2篇
- 2025版選礦廠礦山地質(zhì)勘查承包合同樣本3篇
- 2025年度個(gè)人汽車租賃與停車服務(wù)合同4篇
- 2025版寧夏糧食和物資儲備局糧食儲備庫智能化升級合同3篇
- 2025年度牛糞處理設(shè)施融資租賃合同范本4篇
- 2025版農(nóng)副業(yè)科技成果轉(zhuǎn)化承包合同書二份3篇
- 二零二五年度磚廠生產(chǎn)線承包租賃合同3篇
- 2024年銀行考試-興業(yè)銀行筆試參考題庫含答案
- 泵站運(yùn)行管理現(xiàn)狀改善措施
- 2024屆武漢市部分學(xué)校中考一模數(shù)學(xué)試題含解析
- SYT 0447-2014《 埋地鋼制管道環(huán)氧煤瀝青防腐層技術(shù)標(biāo)準(zhǔn)》
- 第19章 一次函數(shù) 單元整體教學(xué)設(shè)計(jì) 【 學(xué)情分析指導(dǎo) 】 人教版八年級數(shù)學(xué)下冊
- 浙教版七年級下冊科學(xué)全冊課件
- 弧度制及弧度制與角度制的換算
- 瓦楞紙箱計(jì)算公式測量方法
- 江蘇省中等職業(yè)學(xué)校學(xué)業(yè)水平考試商務(wù)營銷類(營銷方向)技能考試測試題
- DB32-T 4004-2021水質(zhì) 17種全氟化合物的測定 高效液相色譜串聯(lián)質(zhì)譜法-(高清現(xiàn)行)
- DB15T 2724-2022 羊糞污收集處理技術(shù)規(guī)范
評論
0/150
提交評論