版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
西安郵電大學(xué)數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告題目:選課系統(tǒng)課程設(shè)計(jì)學(xué)院名稱(chēng):計(jì)算機(jī)學(xué)院專(zhuān)業(yè)名稱(chēng):軟件工程班級(jí):軟件1104學(xué)號(hào):04113125學(xué)生姓名:郭亞濤指導(dǎo)教師:?jiǎn)唐桨矔r(shí)間:2013年6月17日至2013年6月30日
課程設(shè)計(jì)目的1.進(jìn)一步學(xué)習(xí)和掌握數(shù)據(jù)庫(kù)原理的基礎(chǔ)知識(shí)和理論。2.學(xué)習(xí)SQLServer數(shù)據(jù)庫(kù)管理系統(tǒng)的基本功能和建立數(shù)據(jù)庫(kù)各種對(duì)象的方法。3.熟練掌握和使用SQL語(yǔ)言操縱數(shù)據(jù)庫(kù),使用T-SQL語(yǔ)言編程。4.理解和掌握利用數(shù)據(jù)庫(kù)所學(xué)的理論知識(shí)來(lái)設(shè)計(jì)數(shù)據(jù)庫(kù)的基本方法和步驟。5.通過(guò)上機(jī)操作和調(diào)試程序,提高學(xué)生理論聯(lián)系實(shí)際和動(dòng)手操作能力。 二、課程設(shè)計(jì)內(nèi)容1.完成數(shù)據(jù)的添加和修改,并提交數(shù)據(jù)庫(kù)保存。其中的數(shù)據(jù)包括:學(xué)生信息、課程信息、教師信
2.設(shè)計(jì)實(shí)現(xiàn)學(xué)生信息查詢(xún),教師信息查詢(xún),課程信息查詢(xún),選課,選課查詢(xún),等JAVA圖形化界面面
。
3.具備一定的安全性管理功能。包括登錄、退出等功能。三、軟硬件環(huán)境及系統(tǒng)所采用的體系結(jié)構(gòu)系統(tǒng)的體系結(jié)構(gòu)為C/S,前臺(tái)為Java,后臺(tái)數(shù)據(jù)庫(kù)一般為SQLServer需求分析學(xué)生管理是學(xué)校管理中的一項(xiàng)重要任務(wù),以往的手工操作已經(jīng)不能適應(yīng)現(xiàn)在辦公的需要.為了擺脫繁瑣的勞動(dòng),提高工作效率,利用計(jì)算機(jī)進(jìn)行信息處理成為必然.開(kāi)發(fā)功能完善及安全可靠的管理系統(tǒng)可以大大提高學(xué)校資源的利用率,及時(shí),準(zhǔn)確地獲取需要的信息,充分發(fā)揮人員的工作潛力。正是咨詢(xún)業(yè)的迅速發(fā)展使得人們從過(guò)去的手工勞動(dòng)中得以解脫.同時(shí),編寫(xiě)一套完善的學(xué)生管理系統(tǒng)的任務(wù)就顯得尤為重要。本學(xué)生管理系統(tǒng)可實(shí)現(xiàn)學(xué)生基本信息、成績(jī)信息、課程信息、班級(jí)基本信息表、教師基本信息表等的錄入、修改、查詢(xún)、更新和刪除。功能需求分析用戶(hù)密碼管理密碼修改、用戶(hù)刪除和用戶(hù)信息查詢(xún)。班級(jí)管理添加、修改、刪除和查詢(xún)班級(jí)信息。教師管理添加、修改、刪除和查詢(xún)教師信息。五、系統(tǒng)設(shè)計(jì)本系統(tǒng)采用C/S體系結(jié)構(gòu),客戶(hù)端負(fù)責(zé)提供表達(dá)邏輯、顯示用戶(hù)界面信息、訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)服務(wù)器,采用java作為開(kāi)發(fā)工具;服務(wù)器端則用于提供數(shù)據(jù)服務(wù),采用SQLServer2008標(biāo)準(zhǔn)版作為數(shù)據(jù)庫(kù)管理系統(tǒng)。本系統(tǒng)按照功能劃分為以下三個(gè)個(gè)模塊:學(xué)生界面(包括學(xué)生添加和查詢(xún)等)、教師界面(包括課程查詢(xún)、成績(jī)添加等)和管理員界面(包括課程管理、教師管理、學(xué)生管理等)。系統(tǒng)的功能模塊圖如下圖所示:選選修課程管理系統(tǒng)教師界面教師界面管理員界面管理員界面學(xué)生界面數(shù)據(jù)庫(kù)設(shè)計(jì)2、數(shù)據(jù)庫(kù)設(shè)計(jì)(1)數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)本系統(tǒng)主要有三個(gè)實(shí)體:學(xué)生實(shí)體、選修課兩個(gè)實(shí)體,一個(gè)學(xué)生可以選修若干門(mén)課程,一門(mén)課程也可以被多個(gè)學(xué)生選修,這兩個(gè)實(shí)體集之間是多對(duì)多聯(lián)系,聯(lián)系上有選課成績(jī);b、教師和課程兩個(gè)實(shí)體,一個(gè)老師可以教授若干門(mén)課程,一門(mén)課程也可以被多個(gè)老師教授,這兩個(gè)實(shí)體集之間也是多對(duì)多聯(lián)系;數(shù)據(jù)庫(kù)設(shè)計(jì)(2)數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì) 根據(jù)關(guān)系模型的轉(zhuǎn)換原則,上面的E—R圖可轉(zhuǎn)換為如下所示的關(guān)系模型:學(xué)生信息表:根據(jù)上面的E-R圖設(shè)計(jì)及關(guān)系模型的設(shè)計(jì),得出數(shù)據(jù)表的設(shè)計(jì),在本系統(tǒng)中主要的數(shù)據(jù)表如下:表1教師信息表teacher的表結(jié)構(gòu)主碼列名數(shù)據(jù)類(lèi)型寬度是否可為空PK教師工號(hào)char10
教師姓名char10是
所屬院系char10是教授課程號(hào)char10教授課程名char10是表2學(xué)生信息表student的表結(jié)構(gòu)主碼列名數(shù)據(jù)類(lèi)型寬度是否可為空PK學(xué)號(hào)char10
姓名char10是
所屬院系char20是所選課程號(hào)int4選修課程char10是選修成績(jī)int10是表3course的表結(jié)構(gòu)主碼列名數(shù)據(jù)類(lèi)型寬度是否可為空PK課程號(hào)char10課程名char10是
學(xué)分int4
學(xué)時(shí)int4下面在系統(tǒng)實(shí)施階段就可以物理實(shí)現(xiàn)數(shù)據(jù)庫(kù)了,本系統(tǒng)使用前面實(shí)驗(yàn)已經(jīng)建好的服務(wù)器端SQLServer數(shù)據(jù)庫(kù) 1.課程基本信息表E-R圖:課程課程課程號(hào)課程名總分學(xué)時(shí)學(xué)分成績(jī)基本信息表E-R圖:成績(jī)成績(jī)課程號(hào)學(xué)號(hào)學(xué)期各科成績(jī)3.教師基本信息表E-R圖:教師教師教師姓名性別民族出生日期所教專(zhuān)業(yè)教師編號(hào)工資系統(tǒng)的實(shí)施代碼:publiccharlogon()throwsSQLException { Stringtuserid=t1.getText(); Stringtpassword=newString(t2.getPassword()); Stringsql1=null,sql2=null; ResultSetrs=null; SqlManagerDBm=SqlManager.createInstance();//單態(tài)模式獲取實(shí)例 DBm.connectDB(); sql1="execProcLogon'"+tuserid+"','"+tpassword+"'"; rs=DBm.executeQuery(sql1);if(rs.next())//如果存儲(chǔ)過(guò)程有結(jié)果返回,則將用戶(hù)信息讀入并保存 { System.out.println(rs.getString(1)+"如果存儲(chǔ)過(guò)程有結(jié)果返回,則將用戶(hù)信息讀入并保存"); userid=rs.getString(1);password=rs.getString(2); if(userid.startsWith("T")) {TeaInfo.saveTea(userid);} elseif(userid.startsWith("S")){StuInfo.saveStu(userid);} elseif(userid.startsWith("A")) {sql2=sql1;DBm.connectDB();rs=DBm.executeQuery(sql2);} rs.close();DBm.closeDB(); returnuserid.substring(0,1).toCharArray()[0]; } else{userid=null;password=null; JOptionPane.showMessageDialog(this,"用戶(hù)名或密碼錯(cuò)誤,請(qǐng)重新填寫(xiě)", "警告",JOptionPane.WARNING_MESSAGE); rs.close();DBm.closeDB();return'0';}} publicvoidreset() {t1.setText(null);t2.setText(null);t1.requestFocusInWindow();}publicvoidactionPerformed(ActionEvente) { if(e.getSource()==button) {if(selectcourse()>0){ JOptionPane.showMessageDialog(this,"選課成功\n點(diǎn)擊\"確定\"查看已選課程","選課成功",JOptionPane.INFORMATION_MESSAGE); ChooseList.updateTable();stuPanel.card.show(StuPanel.pCenter,"已選課程");}}} publicintselectcourse() { intselectedCount=ChooseList.getSelectedCount(); inta=xianzhi();intc=0; String[]courseID=newString[selectedCount];if(selectedCount==3) { JOptionPane.showMessageDialog(this,"選課數(shù)目不能超過(guò)3門(mén),你已經(jīng)選擇了3門(mén)\n點(diǎn)擊\"確定\"查看已選課程", "警告",JOptionPane.WARNING_MESSAGE); ChooseList.updateTable(); StuPanel.card.show(StuPanel.pCenter,"已選課程");returnc;} else{if(a+selectedCount>3) { JOptionPane.showMessageDialog(this,"選課數(shù)目不能超過(guò)3門(mén),你已經(jīng)選擇了"+selectedCount+"門(mén)\n點(diǎn)擊\"確定\"查看已選課程", "警告",JOptionPane.WARNING_MESSAGE); ChooseList.updateTable(); StuPanel.card.show(StuPanel.pCenter,"已選課程");returnc;} else {//不能選重復(fù)了 Stringsql="execSelectedCourse'"+Logon.userid+"'"; //System.out.println(sql+"不能選重復(fù)了"); SqlManagerDBm=SqlManager.createInstance(); DBm.connectDB(); ResultSetrs=DBm.executeQuery(sql); try{inti=0;while(rs.next()){ courseID[i]=rs.getString(1).trim();System.out.println(courseID[i]+"changdu");} rs.close();}catch(SQLExceptione){e.printStackTrace();returnc;} DBm.closeDB(){for(inti=0;i<count;i++) { for(intj=0;j<selectedCount;j++) { if(table1.getValueAt(i,0).toString().equals("true")) { //System.out.println(table1.getValueAt(i,1).toString().trim()+"選課不能重復(fù),點(diǎn)擊"); //System.out.println(courseID[j]); if(table1.getValueAt(i,1).toString().trim().equals(courseID[j])){ JOptionPane.showMessageDialog(this,"選課不能重復(fù),\n點(diǎn)擊\"確定\"查看已選課程", "警告",JOptionPane.WARNING_MESSAGE); ChooseList.updateTable(); StuPanel.card.show(StuPanel.pCenter,"已選課程"); returnc;}}} } for(inti=0;i<count;i++) { if(table1.getValueAt(i,0).toString().equals("true")) { Stringcourseid=table1.getValueAt(i,1).toString(); sql="execSelectCourse'"+Logon.userid+"','"+courseid+"'";DBm.connectDB(); c=DBm.executeUpdate(sql);DBm.closeDB();System.out.println("c1="+c); }System.out.println("c2="+c);} if(c==0){ JOptionPane.showMessageDialog(this,"請(qǐng)選擇選修課", "警告",JOptionPane.WARNING_MESSAGE);}returnc;}}} publicintxianzhi(){ inta=0; for(inti=0;i<count;i++) {if(table1.getValueAt(i,0).toString().equals("true"))a++;} returna;}}publicvoidactionPerformed(ActionEvente) {modify.setVisible(true);} publicstaticvoidsaveStu(Stringid) {SqlManagerDBm=SqlManager.createInstance(); DBm.connectDB(); Stringsql="execProcStudent'"+id+"'"; ResultSetrs=DBm.executeQuery(sql); System.out.println(sql); try{ rs.next(); jid.setText(rs.getString(1)); jname.setText(rs.getString(2)); jsex.setText(rs.getString(3)); jbirth.setText(rs.getString(4)); jclass.setText(rs.getString(5));}catch(SQLExceptione){ e.printStackTrace();}}}七、系統(tǒng)評(píng)價(jià)及心得體會(huì)通過(guò)將近兩周的時(shí)間的艱苦歷程,終于完成了本次數(shù)據(jù)庫(kù)的課程設(shè)計(jì)——選修課程管理系統(tǒng)。如果憑現(xiàn)在所學(xué)的知識(shí)來(lái)看要完成選修課程管理系統(tǒng),這是遠(yuǎn)遠(yuǎn)不夠的,因此需要下去大量查資料并自學(xué)很多知識(shí)。所以在做的過(guò)程中,邊做邊學(xué),作出的效果并不是那么的完善。以前沒(méi)有做過(guò)這種數(shù)據(jù)庫(kù)管理系統(tǒng),面對(duì)好幾張表時(shí),對(duì)于它們之間的聯(lián)系、E-R圖的結(jié)構(gòu),都是要經(jīng)過(guò)深思熟慮之后才能動(dòng)手開(kāi)始整個(gè)數(shù)據(jù)庫(kù)建立與java編程。本次課程設(shè)計(jì)雖然完成了,但是我知道還是存在一些缺陷的,數(shù)據(jù)庫(kù)還不是那么的完美,還存在一些漏洞,java編程界面面也不是那么的完美,界面結(jié)構(gòu)也有一些缺點(diǎn),但是我盡最大的能力來(lái)使我的數(shù)據(jù)庫(kù)和界面面更加的人性化,更加的方便實(shí)用。在以后的學(xué)習(xí)過(guò)程中,需要對(duì)事物多加考慮,對(duì)問(wèn)題全面考慮。要把問(wèn)題更加的完善,不能想到什么就做什么,一定要在動(dòng)手之前做好充分的準(zhǔn)備,這樣才可以做到事半功倍。本次課程設(shè)計(jì)取得一定的成績(jī),是值得欣慰的。同時(shí),也認(rèn)識(shí)到自學(xué)的重要性,要不懂多查書(shū),多查資料。在做的過(guò)程中,學(xué)習(xí)知識(shí)。同時(shí)提高自己。參考文獻(xiàn)[1]錢(qián)雪忠.數(shù)據(jù)庫(kù)原理及應(yīng)用(第二版).北京郵電大學(xué)出版社.2004[2]錢(qián)雪忠.數(shù)據(jù)庫(kù)原理及應(yīng)用實(shí)驗(yàn)指導(dǎo)(第二版).北京郵電大學(xué)出版社.2004[3]李剛.瘋狂Java講義.電子工業(yè)出版社.2008附錄:源代碼importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjavax.swing.table.DefaultTableModel;importjava.sql.*;importjava.util.Vector;publicclassAdmPanelextendsJPanelimplementsActionListener,ItemListener,MouseListener{ privatestaticfinallongserialVersionUID=1L;//添加默認(rèn)序列號(hào) JButtonb1,b2,b3,b4,b5,b6; JPanelp1,p2,pCenter; CardLayoutcard=null; JTextFieldt1=newJTextField(10),t2=newJTextField(10),t3=newJTextField(10),tt1=newJTextField(10),tt2=newJTextField(10),tt3=newJTextField(10); ButtonGroupsex1=newButtonGroup(), sex2=newButtonGroup(); JRadioButtonradio1=newJRadioButton("男",true), radio2=newJRadioButton("女"); JRadioButtonr1=newJRadioButton("男",true),r2=newJRadioButton("女"); JComboBoxyear,month,date,yy,mm,dd,post; JTabletable1,table2; Vector<String>vectorColName1=newVector<String>(), vectorColName2=newVector<String>(); Vector<Vector<String>>vector1=newVector<Vector<String>>(), vector2=newVector<Vector<String>>(); DefaultTableModelmodel1=newDefaultTableModel(vectorColName1,0){ privatestaticfinallongserialVersionUID=1L;//添加默認(rèn)序列號(hào) publicbooleanisCellEditable(introw,intcolumn){returnfalse;} }; DefaultTableModelmodel2=newDefaultTableModel(vectorColName2,0){ privatestaticfinallongserialVersionUID=1L;//添加默認(rèn)序列號(hào) publicbooleanisCellEditable(introw,intcolumn){returnfalse;} }; AdmPanel() { setLayout(newBorderLayout()); t1=newJTextField(10); t2=newJTextField(10); t3=newJTextField(10); tt1=newJTextField(10); tt2=newJTextField(10); tt3=newJTextField(10); sex1.add(radio1); sex1.add(radio2); sex2.add(r1); sex2.add(r2); year=newJComboBox(); month=newJComboBox(); date=newJComboBox(); yy=newJComboBox(); mm=newJComboBox(); dd=newJComboBox(); post=newJComboBox(); post.addItem("助教"); post.addItem("講師"); post.addItem("副教授"); post.addItem("教授"); for(inti=1980;i<1995;i++) year.addItem(i); for(inti=1;i<=12;i++) month.addItem(i); for(inti=1;i<=31;i++) date.addItem(i); for(inti=1950;i<1995;i++) yy.addItem(i); for(inti=1;i<=12;i++) mm.addItem(i); for(inti=1;i<=31;i++) dd.addItem(i); year.addItemListener(this); month.addItemListener(this); yy.addItemListener(this); mm.addItemListener(this); post.addItemListener(this); b1=newJButton("學(xué)生信息管理"); b2=newJButton("教師信息管理"); b3=newJButton("輸入"); b4=newJButton("刪除"); b5=newJButton("輸入"); b6=newJButton("刪除"); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); b5.addActionListener(this); b6.addActionListener(this); JPanelp0=newJPanel(); p0.add(b1); p0.add(b2); pCenter=newJPanel(); card=newCardLayout(); pCenter.setLayout(card); p1=createStuPanel(); p2=createTeaPanel(); pCenter.add("學(xué)生信息管理",p1); pCenter.add("教師信息管理",p2); add(p0,BorderLayout.NORTH); add(pCenter,BorderLayout.CENTER); } privateJPanelcreateStuPanel() { JPanelp=newJPanel(); JScrollPanep1; JPanelp2=newJPanel(); p.setLayout(newGridLayout(2,1)); SqlManagerDBm=SqlManager.createInstance();//單態(tài)模式獲取實(shí)例 DBm.connectDB(); Stringsql="execProcAllStu"; ResultSetrs=DBm.executeQuery(sql); vectorColName1.addElement("學(xué)號(hào)"); vectorColName1.addElement("姓名"); vectorColName1.addElement("性別"); vectorColName1.addElement("生日"); vectorColName1.addElement("班級(jí)"); model1.setDataVector(vector1,vectorColName1); table1=newJTable(model1); table1.addMouseListener(this); p1=newJScrollPane(table1); p.add(p1); try{ while(rs.next()){ Vector<String>rec_vector=newVector<String>();//從結(jié)果集中取數(shù)據(jù)放入向量rec_vector中 rec_vector.addElement(rs.getString(1)); rec_vector.addElement(rs.getString(2)); rec_vector.addElement(rs.getString(3)); rec_vector.addElement(rs.getString(4)); rec_vector.addElement(rs.getString(5)); vector1.addElement(rec_vector);//向量rec_vector加入向量vect中 } //tm.fireTableStructureChanged();//更新表格,顯示向量vect的內(nèi)容 rs.close(); }catch(SQLExceptione){ e.printStackTrace(); } DBm.closeDB(); //構(gòu)造p2 Boxbase=Box.createHorizontalBox(), boxleft=Box.createVerticalBox(), boxright=Box.createVerticalBox(); JPanelpp1=newJPanel(), pp2=newJPanel(), pp3=newJPanel(), pp4=newJPanel(), pp5=newJPanel(), pp6=newJPanel(), psex=newJPanel(), pbirth=newJPanel(); psex.add(radio1); psex.add(radio2); pbirth.add(year); pbirth.add(month); pbirth.add(date); pp1.add(newJLabel("學(xué)生編號(hào):")); pp1.add(t1); pp2.add(newJLabel("學(xué)生姓名:")); pp2.add(t2); pp3.add(newJLabel("學(xué)生性別:")); pp3.add(psex); pp4.add(newJLabel("學(xué)生生日:")); pp4.add(pbirth); pp5.add(newJLabel("所在班級(jí):")); pp5.add(t3); pp6.add(b3); pp6.add(b4); boxleft.add(Box.createVerticalStrut(30)); boxleft.add(pp1); boxleft.add(Box.createVerticalStrut(20)); boxleft.add(pp2); boxleft.add(Box.createVerticalStrut(20)); boxleft.add(pp3); boxright.add(Box.createVerticalStrut(20)); boxright.add(pp4); boxright.add(Box.createVerticalStrut(20)); boxright.add(pp5); boxright.add(Box.createVerticalStrut(20)); boxright.add(pp6); base.add(boxleft); base.add(Box.createHorizontalStrut(80)); base.add(boxright); p2.add(base); p.add(p2); returnp; } privateJPanelcreateTeaPanel() { JPanelp=newJPanel(); JScrollPanep1; JPanelp2=newJPanel(); p.setLayout(newGridLayout(2,1)); SqlManagerDBm=SqlManager.createInstance();//單態(tài)模式獲取實(shí)例 DBm.connectDB(); Stringsql="execProcAllTea"; ResultSetrs=DBm.executeQuery(sql); vectorColName2.addElement("教師編號(hào)"); vectorColName2.addElement("教師姓名"); vectorColName2.addElement("教師性別"); vectorColName2.addElement("生日"); vectorColName2.addElement("職稱(chēng)"); vectorColName2.addElement("所在院系"); model2.setDataVector(vector2,vectorColName2); table2=newJTable(model2); table2.addMouseListener(this); p1=newJScrollPane(table2); p.add(p1); try{ while(rs.next()){ Vector<String>rec_vector=newVector<String>();//從結(jié)果集中取數(shù)據(jù)放入向量rec_vector中 rec_vector.addElement(rs.getString(1)); rec_vector.addElement(rs.getString(2)); rec_vector.addElement(rs.getString(3)); rec_vector.addElement(rs.getString(4)); rec_vector.addElement(rs.getString(5)); rec_vector.addElement(rs.getString(6)); vector2.addElement(rec_vector);//向量rec_vector加入向量vect中 } //tm.fireTableStructureChanged();//更新表格,顯示向量vect的內(nèi)容 rs.close(); }catch(SQLExceptione){ e.printStackTrace(); } DBm.closeDB(); //構(gòu)造p2 Boxbase=Box.createHorizontalBox(), boxleft=Box.createVerticalBox(), boxright=Box.createVerticalBox(); JPanelpp1=newJPanel(), pp2=newJPanel(), pp3=newJPanel(), pp4=newJPanel(), pp5=newJPanel(), pp6=newJPanel(), pp7=newJPanel(), psex=newJPanel(), pbirth=newJPanel(); psex.add(r1); psex.add(r2); pbirth.add(yy); pbirth.add(mm); pbirth.add(dd); pp1.add(newJLabel("教職工號(hào):")); pp1.add(tt1); pp2.add(newJLabel("教師姓名:")); pp2.add(tt2); pp3.add(newJLabel("教師性別:")); pp3.add(psex); pp4.add(newJLabel("教師生日:")); pp4.add(pbirth); pp5.add(newJLabel("教師職稱(chēng):")); pp5.add(post); pp6.add(newJLabel("所在院系:")); pp6.add(tt3); pp7.add(b5); pp7.add(b6); boxleft.add(Box.createVerticalStrut(40)); boxleft.add(pp1); boxleft.add(Box.createVerticalStrut(20)); boxleft.add(pp2); boxleft.add(Box.createVerticalStrut(20)); boxleft.add(pp3); boxright.add(Box.createVerticalStrut(30)); boxright.add(pp4); boxright.add(Box.createVerticalStrut(10)); boxright.add(pp5); boxright.add(Box.createVerticalStrut(10)); boxright.add(pp6); boxright.add(pp7); base.add(boxleft); base.add(Box.createHorizontalStrut(80)); base.add(boxright); p2.add(base); p.add(p2); returnp; } publicvoidactionPerformed(ActionEvente) { if(e.getSource()==b1) { card.show(pCenter,"學(xué)生信息管理"); } elseif(e.getSource()==b2) { card.show(pCenter,"教師信息管理"); } if(e.getSource()==b3) { Stringuserid=t1.getText(), username=t2.getText(), classs=t3.getText(); Stringsex="男"; if(radio2.isSelected()) { sex="女"; } Stringbirth=String.valueOf((Integer)year.getSelectedItem())+"-" +String.valueOf((Integer)month.getSelectedItem()) +"-"+String.valueOf((Integer)date.getSelectedItem()); Stringsql="execInsertStudent'"+userid+"','"+username+"','"+sex+"','"+birth+"','"+classs+"'"; Strings="execIsExistsStu'"+userid+"'"; Stringinserlog="execInsertLogon'"+userid+"'"; System.out.println(sql); SqlManagerDBm=SqlManager.createInstance();//單態(tài)模式獲取實(shí)例 DBm.connectDB(); ResultSetrset=DBm.executeQuery(s); System.out.println(s); try{ if(rset.next()) { JOptionPane.showMessageDialog(this,"學(xué)生信息插入失敗,該學(xué)生ID號(hào)已存在", "警告",JOptionPane.WARNING_MESSAGE); rset.close(); } else{ ResultSetrs=DBm.executeQuery(sql); if(rs.next()) { JOptionPane.showMessageDialog(this,"學(xué)生信息插入成功", "成功",JOptionPane.WARNING_MESSAGE); DBm.connectDB(); DBm.executeUpdate(inserlog); t1.setText("S"); t2.setText(null); t3.setText(null); radio1.setSelected(true); //this.post.setSelectedIndex(0); year.setSelectedIndex(0); month.setSelectedIndex(0); date.setSelectedIndex(0); //sql="select*fromInserted"; //ResultSetrs=DBm.executeQuery(sql); Vector<String>rec_vector=newVector<String>();//從結(jié)果集中取數(shù)據(jù)放入向量rec_vector中 rec_vector.addElement(rs.getString(1)); rec_vector.addElement(rs.getString(2)); rec_vector.addElement(rs.getString(3)); rec_vector.addElement(rs.getString(4)); rec_vector.addElement(rs.getString(5)); vector1.addElement(rec_vector);//向量rec_vector加入向量vect中 model1.fireTableStructureChanged();//更新表格,顯示向量vect的內(nèi)容 rs.close(); } else{ JOptionPane.showMessageDialog(this,"學(xué)生信息插入失敗", "警告",JOptionPane.WARNING_MESSAGE); rs.close(); } } }catch(SQLExceptionex){ ex.printStackTrace(); } DBm.closeDB(); } if(e.getSource()==b4) { //同步刪除數(shù)據(jù)庫(kù)中的數(shù)據(jù) intselectrow=0; selectrow=table1.getSelectedRow(); Stringid=table1.getValueAt(selectrow,0).toString(); Stringsql="execDeleteStudent'"+id+"'"; Stringdeletelog="execDeleteLogon'"+id+"'"; SqlManagerDBm=SqlManager.createInstance();//單態(tài)模式獲取實(shí)例 DBm.connectDB(); if(DBm.executeUpdate(sql)==1) { JOptionPane.showMessageDialog(this,"學(xué)生信息已刪除", "刪除成功",JOptionPane.INFORMATION_MESSAGE); DBm.connectDB(); DBm.executeUpdate(deletelog); model1.removeRow(selectrow); t1.setText("S"); t2.setText(null); t3.setText(null); radio1.setSelected(true); year.setSelectedIndex(0); month.setSelectedIndex(0); date.setSelectedIndex(0); } DBm.closeDB(); } if(e.getSource()==b5) { Stringuserid=tt1.getText(), username=tt2.getText(), depart=tt3.getText(), post=(String)this.post.getSelectedItem(); Stringsex="男"; if(r2.isSelected()) { sex="女"; } Stringbirth=String.valueOf((Integer)yy.getSelectedItem())+"-"+String.valueOf((Integer)mm.getSelectedItem())+"-"+String.valueOf((Integer)dd.getSelectedItem()); Stringsql="execInsertTeacher'"+userid+"','"+username+"','"+sex+"','"+birth+"','"+post+"','"+depart+"'"; Strings="execIsExistsTea'"+userid+"'"; Stringinsertlog="execInsertLogon'"+userid+"'"; System.out.println(sql); SqlManagerDBm=SqlManager.createInstance();//單態(tài)模式獲取實(shí)例 DBm.connectDB(); ResultSetrset=DBm.executeQuery(s); System.out.println(s); try{ if(rset.next()) { JOptionPane.showMessageDialog(this,"教師信息插入失敗,該教師ID號(hào)已存在", "警告",JOptionPane.WARNING_MESSAGE); rset.close(); } else{ ResultSetrs=DBm.executeQuery(sql); if(rs.next()) { JOptionPane.showMessageDialog(this,"教師信息插入成功", "成功",JOptionPane.WARNING_MESSAGE); DBm.connectDB(); DBm.executeUpdate(insertlog); tt1.setText("T"); tt2.setText(null); tt3.setText(null); r1.setSelected(true); this.post.setSelectedIndex(0); yy.setSelectedIndex(0); mm.setSelectedIndex(0); dd.setSelectedItem(0); Vector<String>rec_vector=newVector<String>();//從結(jié)果集中取數(shù)據(jù)放入向量rec_vector中 rec_vector.addElement(rs.getString(1)); rec_vector.addElement(rs.getString(2)); rec_vector.addElement(rs.getString(3)); rec_vector.addElement(rs.getString(4)); rec_vector.addElement(rs.getString(5)); rec_vector.addElement(rs.getString(6)); vector2.addElement(rec_vector);//向量rec_vector加入向量vect中 model2.fireTableStructureChanged();//更新表格,顯示向量vect的內(nèi)容 rs.close(); } else{ JOptionPane.showMessageDialog(this,"教師信息插入失敗", "警告",JOptionPane.WARNING_MESSAGE); rs.close(); } } }catch(SQLExceptionex){ ex.printStackTrace(); } DBm.closeDB(); } if(e.getSource()==b6) { //同步刪除數(shù)據(jù)庫(kù)中的數(shù)據(jù) intselectrow=0; selectrow=table2.getSelectedRow(); Stringid=table2.getValueAt(selectrow,0).toString(); Stringsql="execDeleteTeacher'"+id+"'"; Stringdeletelog="execDeleteLogon'"+id+"'"; SqlManagerDBm=SqlManager.createInstance();//單態(tài)模式獲取實(shí)例 DBm.connectDB(); if(DBm.executeUpdate(sql)==1) { JOptionPane.showMessageDialog(this,"教師信息信息已刪除", "刪除成功",JOptionPane.INFORMATION_MESSAGE); DBm.connectDB(); DBm.executeUpdate(deletelog); model2.removeRow(selectrow); tt1.setText("T"); tt2.setText(null); tt3.setText(null); r1.setSelected(true); yy.setSelectedIndex(0); mm.setSelectedIndex(0); dd.setSelectedIndex(0); } DBm.closeDB(); } } publicvoidmousePressed(MouseEvente){} publicvoidmouseReleased(MouseEvente){} publicvoidmouseEntered(MouseEvente){} publicvoidmouseExited(MouseEvente){} publicvoidmouseMoved(MouseEvente){} publicvoidmouseDraged(MouseEvente){} publicvoidmouseClicked(MouseEvente) { if(e.getSource()==table1) { intselectrow=0; selectrow=table1.getSelectedRow(); Stringid=table1.getValueAt(selectrow,0).toString(); Stringname=table1.getValueAt(selectrow,1).toString(); Stringsex=table1.getValueAt(selectrow,2).toString(); Stringbirth=table1.getValueAt(selectrow,3).toString().substring(0,10); Stringclasss=table1.getValueAt(selectrow,4).toString(); t1.setText(id); t2.setText(name); t3.setText(classs); if(sex.trim().equals("男")) radio1.setSelected(true); elseif(sex.equals("女")) radio2.setSelected(true); inty=Integer.parseInt(birth.substring(0,4)); intm=Integer.parseInt(birth.substring(5,7)); intd=Integer.parseInt(birth.substring(8)); year.setSelectedIndex(y-1980); month.setSelectedIndex(m-1); date.setSelectedIndex(d-1); } elseif(e.getSource()==table2) { intselectrow=0; selectrow=table2.getSelectedRow(); Stringid=table2.getValueAt(selectrow,0).toString(); Stringname=table2.getValueAt(selectrow,1).toString(); Stringsex=table2.getValueAt(selectrow,2).toString(); Stringbirth=table2.getValueAt(selectrow,3).toString().substring(0,10); Stringposition=table2.getValueAt(selectrow,4).toString(); Stringdepart=table2.getValueAt(selectrow,5).toString(); tt1.setText(id); tt2.setText(name); tt3.setText(depart); if(sex.trim().equals("男")) r1.setSelected(true); elseif(sex.equals("女")) r2.setSelected(true); inty=Integer.parseInt(birth.substring(0,4)); intm=Integer.parseInt(birth.substring(5,7)); intd=Integer.parseInt(birth.substring(8)); yy.setSelectedIndex(y-1950); mm.setSelectedIndex(m-1); dd.setSelectedIndex(d-1); if(position.equals("助教")) post.setSelectedIndex(0); elseif(position.equals("講師")) post.setSelectedIndex(1); elseif(position.equals("副教授")) post.setSelectedIndex(2); elseif(position.equals("教授")) post.setSelectedIndex(3); } } publicvoiditemStateChanged(ItemEvente) { if(e.getSource()==year) { inty=(Integer)year.getSelectedItem(); intm=(Integer)month.getSelectedItem(); if(((y%4==0)&&(y%100!=0))||(y%400==0)) { if(m==2) { date.removeAll(); for(inti=1;i<=29;i++) { date.addItem(i); } } elseif(m==1||m==3||m==5||m==7||m==8||m==10||m==12) { date.removeAll(); for(inti=1;i<=31;i++) { date.addItem(i); } } elseif(m==4||m==6||m==9||m==11) { date.removeAll(); for(inti=1;i<=30;i++) { date.addItem(i); } } } else{ if(m==2) { date.removeAll(); for(inti=1;i<=28;i++) { date.addItem(i); } } elseif(m==1||m==3||m==5||m==7||m==8||m==10||m==12) { date.removeAll(); for(inti=1;i<=31;i++) { date.addItem(i); } } elseif(m==4||m==6||m==9||m==11) { date.removeAll(); for(inti=1;i<=30;i++) { date.addItem(i); } } } } elseif(e.getSource()==month) { inty=(Integer)year.getSelectedItem(); intm=(Integer)month.getSelectedItem(); if(((y%4==0)&&(y%100!=0))||(y%400==0)) { if(m==2) { date.removeAll(); for(inti=1;i<=29;i++) { date.addItem(i); } } elseif(m==1||m==3||m==5||m==7||m==8||m==10||m==12) { date.removeAll(); for(inti=1;i<=31;i++) { date.addItem(i); } } elseif(m==4||m==6||m==9||m==11) { date.removeAll(); for(inti=1;i<=30;i++) { date.addItem(i); } } } else{ if(m==2) { date.removeAll(); for(inti=1;i<=28;i++) { date.addItem(i); } } elseif(m==1||m==3||m==5||m==7||m==8||m==10||m==12) { date.removeAll(); for(inti=1;i<=31;i++) { date.addItem(i); } } elseif(m==4||m==6||m==9||m==11) { date.removeAll(); for(inti=1;i<=30;i++) { date.addItem(i); } } } } elseif(e.getSource()==yy) { inty=(Integer)yy.getSelectedItem(); intm=(Integer)mm.getSelectedItem(); if(((y%4==0)&&(y%100!=0))||(y%400==0)) { if(m==2) { dd.removeAll(); for(inti=1;i<=29;i++) { dd.addItem(i); } } elseif(m==1||m==3||m==5||m==7||m==8||m==10||m==12) { dd.removeAll(); for(inti=1;i<=31;i++) { dd.addItem(i); } } elseif(m==4||m==6||m==9||m==11) { dd.removeAll(); for(inti=1;i<=30;i++) { dd.addItem(i); } } } else{ if(m==2) { dd.removeAll(); for(inti=1;i<=28;i++) { dd.addItem(i); } } elseif(m==1||m==3||m==5||m==7||m==8||m==10||m==12) { date.removeAll(); for(inti=1;i<=31;i++) { date.addItem(i); } } elseif(m==4||m==6||m==9||m==11) { date.removeAll(); for(inti=1;i<=30;i++) { date.addItem(i); } } } } elseif(e.getSource()==mm) { inty=(Integer)yy.getSelectedItem(); intm=(Integer)mm.getSelectedItem(); if(((y%4==0)&&(y%100!=0))||(y%400==0)) { if(m==2) { dd.removeAll(); for(inti=1;i<=29;i++) { dd.addItem(i); } } elseif(m==1||m==3||m==5||m==7||m==8||m==10||m==12) { dd.removeAll(); for(inti=1;i<=31;i++) { dd.addItem(i); } } elseif(m==4||m==6||m==9||m==11) { dd.removeAll(); for(inti=1;i<=30;i++) { dd.addItem(i); } } } else{ if(m==2) { dd.removeAll(); for(inti=1;i<=28;i++) { dd.addItem(i); } } elseif(m==1||m==3||m==5||m==7||m==8||m==10||m==12) { dd.removeAll(); for(inti=1;i<=31;i++) { dd.addItem(i); } } elseif(m==4||m==6||m==9||m==1
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度年福建省高校教師資格證之高等教育心理學(xué)自我檢測(cè)試卷A卷附答案
- 2024年度山西省高校教師資格證之高等教育法規(guī)通關(guān)提分題庫(kù)及完整答案
- 2024年合成膠粘劑項(xiàng)目投資申請(qǐng)報(bào)告代可行性研究報(bào)告
- 2024年私人損害賠償自愿協(xié)議
- 高校食品專(zhuān)業(yè)實(shí)驗(yàn)室安全管理探究
- 新形勢(shì)下企業(yè)經(jīng)濟(jì)管理創(chuàng)新思路探究
- 2024年商業(yè)樓宇化糞池建造協(xié)議范例
- 2024年加工區(qū)租賃協(xié)議
- 2024年度工程地質(zhì)勘察協(xié)議范本
- 2024屆安徽省安大附中高三下學(xué)期第一次診斷測(cè)試數(shù)學(xué)試題
- 湖北省危險(xiǎn)廢物監(jiān)管物聯(lián)網(wǎng)系統(tǒng)管理計(jì)劃填報(bào)說(shuō)明
- 大學(xué)生就業(yè)指南攻略課件
- 智能算力數(shù)據(jù)中心風(fēng)險(xiǎn)評(píng)估與應(yīng)對(duì)措施
- 八年級(jí)數(shù)學(xué)上冊(cè)第一學(xué)期期中綜合測(cè)試卷(湘教版 2024年秋)
- 公司法教案第四章公司法律制度
- 知道網(wǎng)課智慧《睡眠醫(yī)學(xué)(廣州醫(yī)科大學(xué))》測(cè)試答案
- 電氣設(shè)備故障預(yù)測(cè)與健康管理分析篇
- 中考語(yǔ)文知識(shí)點(diǎn)專(zhuān)題27 名著《紅星照耀中國(guó)》知識(shí)點(diǎn)
- 門(mén)診導(dǎo)診課件
- 河北省衡水中學(xué)2022-2023學(xué)年高一上學(xué)期綜合素質(zhì)檢測(cè)二數(shù)學(xué)試題含解析
- 教科版小學(xué)科學(xué)四年級(jí)下冊(cè)說(shuō)課稿全套
評(píng)論
0/150
提交評(píng)論