




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
《數據庫原理及其應用教程》課程設計學生信息管理系統學生姓名學號所在專業所在班級指導教師提交時間評閱情況成績
數據庫課程設計目錄摘要第一章緒論1.1研究背景1.2需求分析1.2.1功能需求1.2.2數據需求....第二章總體設計2.1軟件結構設計2.2系統模塊設計第三章數據庫設計3.1概念結構設計3.2邏輯結構設計....3.3SQL語句實現.第四章系統模塊詳細設計.4.1登錄界面.4.2相關功能界面.4.2.1學生基本信息編輯界面.4.2.2學生信息查詢界面統計4.2.3個人成績查詢界面設計4.2.4班級成績查詢界面設計第五章課程設計總結....附錄摘要該課程設計是利用NetBeans和SQLServer等工具完成學生信息管理系統的開發,它主要包括學生基本信息管理、家庭信息管理、獎懲信息管理和成績信息管理等模塊,系統除了可以完成對相關信息的錄入、修改及刪除等操作之外,還1
數據庫課程設計能夠對學生信息和成績信息進行查詢、統計,以便于管理人員一目了然地掌握學生基本情況。學生信息管理系統是一個教育單位不可缺少的部分,它的內容對于學校的決策者和管理者來說都至關重要,所以學生信息管理系統應該能夠為用戶提供充足的信息和快捷的查詢手段。但一直以來人們使用傳統人工的方式管理文件檔案,這種管理方式存在著許多缺點,如:效率低、保密性差,另外時間一長,將產生大量的文件和數據,這對于查找、更新和維護都帶來了不少的困難。對學生信息進行管理,具有手工管理的優點.例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、長、成本低等。這些優點能夠極大地提高學生信息管理的效率,也是企業的作為計算機應用的一部分,使用計算機所無法比擬壽命科學化、正規化管理,與世界接軌的重要條件。第一章緒論1.1研究背景學生信息管理系統是學校管理的重要工具,是學校不可或缺的部分。隨著在校大學生人數的不斷增加,教務系統的數量也不斷的上漲,。學校工作繁雜、資料眾多,人工管理信息的難度也越來越大,顯然是不能滿足實際的需要,效率也是很低的。并且這種傳統的方式存在著很多的弊端,如:保密性差、查詢不便、效率低,很難維護和更新等。然而,本系統針對以上缺點能夠極大地提高學生信息管理的效率,也是科學化、正規化的管理,與世界接軌的重要條件。所以如何自動高效地管理信息是這些年來許多人所研究的。1.2需求分析需求分析的任務是通過詳細調查用戶的各種需求,在此基礎之上確定新系統的功能。新系統還必須充分考慮今后可能的擴充和改變,不能僅僅按當前應用需求來設計數據庫。2
數據庫課程設計1.2.1功能需求經過對用戶實際管理工作的調研以及其對信息的關注度,最終確定本系統主要需要完成以下功能:1.學生基本信息管理功能:完成對學生基本資料信息進行管理。2.學生家庭信息管理功能:完成對學生家庭信息進行管理。3.學生獎懲信息管理功能:完成對學生每學期受到的獎勵或懲罰信息進行管理。4.學生成績信息管理功能:完成對學生學習的課程以及其成績進行管理。5.信息查詢統計:按姓名或學號對某個學生的基本信息進行查詢;按學號或姓名、學期對某個學生在該學期所有成績的查詢;按班級、課程名對某個班級某門課程的查詢;按班級、課程名和滿足成績條件對學生成績進行篩選查詢;按班級和課程名并且滿足某個成績條件的學生成績進行統計,包括滿足條件的學生人數,總分,平均分,最高分和最低分。1.2.2數據需求進行數據的需求分析時,不但要考慮到軟件系統當前要實現的功能,更要注重軟件的可維護性和擴展性,即考慮到以后可能增長的需求。根據用戶的需求以及用戶對信息的關注程度,得到系統對數據的需求描述如下:1.記錄學生的基本信息,包括學號、姓名、班級、性別、年齡、民族、政治面貌、電話、E-mail、QQ號碼等。2.記錄學生家庭的基本信息,包括家庭編號、家庭住址、郵編、聯系電話、家長姓名等。3.記錄學生的獎懲情況,包括獎懲等。4.記錄學生選修的課程情況,包括課程號、課程名時等。5.記錄學生的成績信息,編號、獎懲原因、獎懲內容、獎懲學期稱、課程學分、授課學包括學號、課程號、學期和成績等。3
數據庫課程設計6.記錄用戶的信息,包括用戶編號,用戶名,密碼和用戶權限等。第二章總體設計2.1軟件結構設計本系統是對學生信息、家庭信息、獎懲信息、課程信息和成績信息進行管理,主要包括添加、修改和刪除學生的基本信息、家庭信息、獎懲信息、課程信息和成績信息,對基本信息、成績信息進行查詢和統計操作,從而實現學生管理的自動化與計算機化。為了方便操作,我們將系統主要劃分為四個模塊:1.系統管理模塊:實現用戶的登錄及整個系統主窗體的管理。2.基本信息管理模塊:實現學生基本信息、家庭信息、獎懲信息的添加、修改、刪除等操作。3.成績信息管理模塊:實現課程信息和成績信息的添加、修改、刪除等操作。4.查詢統計模塊:實現學生個人信息的查詢及滿足條件的班級的學生成績的查詢統計。2.2系統模塊設計根據需求分析的結果,系統總體結構圖如圖2-1所示。4
數據庫課程設計StudentIMS.java主窗體系統管理DBClass.java數據處理模塊UserLogin.java用戶登錄StudentEdit.java學生基本信息編輯學生信息管理系統學生信息管理FamilyEdit.java家庭信息編輯RPEdit.java獎懲信息編輯CourseEdit.java課程信息編輯成績管理ScoreEdit.java成績信息編輯StudentQuery.java學生信息查詢查詢統計StuOneScoreQuery.java個人成績查詢ClassScoreQuery.java班級成績查詢圖2-1系統類結構圖第三章數據庫設計在信息系統中,后臺數據存儲的地位相當重要,數據庫的設計是程序開發和設計的關鍵性工作。設計合理的數據庫能提高數據存儲的效率,降低程序開發的難度,減縮軟件開發的周期。通過數據的需求分析得到的結果畫出數據庫E-R圖,5
數據庫課程設計接著根據E-R圖創建數據表及其數據對象,最后向數據庫中添加數據。這便是我們需要完成的數據庫概念結構設計和數據庫邏輯結構設計。3.1概念結構設計所謂的概念結構設計,即是將需求分析得到的用戶需求抽象為信息結構即概念模型的過程。通過概念結構設計最終得到數據庫的E-R模型,其主要步驟如下:1.確定系統中存在的有用實體根據需求分析,在學生信息管理系統中,需要完成學生基本信息、家庭信息、獎懲信息和成績信息的管理。我們可以很容易知道本系統中主要涉及學生、家庭、獎懲和課程等四個實體。2.確定實體之間聯系的類型實體之間聯系主要存在三種,分別是:一對一聯系(1:1),一對多聯系(1:N)和多對多聯系(M:N)。根據需求分析,在學生信息管理系統中一個學生只能擁有一個家庭,一個家庭也只有一個孩子在班級中學習;一個學生可能有一條或多條獎懲信息;一個學生可以選修多門課程,一門課程也可以被多個不同的學生選修等。因此,以上各實體之間存在如下關系:學生:家庭1:1學生:獎懲1:N學生:課程M:N3.將各個實體通過聯系了實體及其關系之后,我們示:連接起來,形成簡單的E-R圖。在確定就可以將其組合起來形成一個簡單的E-R圖,如下圖所111N家庭擁有學生接受獎懲M選修N課程圖2-2簡單E-R圖6
數據庫課程設計4.確定實體與聯系的屬性及碼學生實體E-R圖如圖2-3所示,包括學號、姓名、班級、性別、年齡、民族、政治面貌、電話、E-mail、QQ號等屬性。姓名性別學號年齡學生政治面貌民族QQ號電話E-mail班級圖2-3學生實體E-R圖家庭實體E-R圖如圖2-4所示,包括家庭編號、家庭住址、郵編、聯系電話、家長姓名等。家庭家庭編號家庭住址聯系電話家長姓名郵編圖2-4家庭實體E-R圖獎懲實體E-R圖如圖2-5所示,包括學期等屬性。獎懲編號、獎懲原因、獎懲內容、獎懲獎懲獎懲編號獎懲學期獎懲原因獎懲內容圖2-5獎懲實體E-R圖課程實體E-R圖如圖2-6所示,包括課程號、課程名稱、課程學分、授課學7
數據庫課程設計時等屬性。課程課程號授課學時課程名稱課程學分圖2-6課程實體E-R圖作為例子,本章對所有的實體的屬性都進行了簡化,只有一些必要的屬性,有興趣的學員可以進行進一步豐富其描述。5.把實體及聯系的屬性組合起來,形成完整E-R圖。在確定了實體及其聯系的屬性和碼之后,我們就可以將其組合起來形成一個完整的E-R圖(為了節省篇幅,在這里只畫出了選修聯系的屬性,其它實體的屬性參考圖2-3至2-6各實體的屬性即可),如圖2-7所示:111N家庭擁有學期學生M接受獎懲選修成績N課程圖2-7完整E-R圖3.2邏輯結構設計E-R圖表示的是數據庫的概念模型,它獨立于任何一種數據模型,獨立于任何一種具體的數據庫管理系統,因此,需要把上述的概念模型轉換為具體的被數據庫管理系統所支持的數據模型,這就是數據庫的邏輯結構設計。首先,根據完整的E-R圖,將其轉換為相的應關系模式。其基本轉換規則如下:1.每個實體轉換為一個關系模式,實體的屬性為關系模式的屬性,實體的碼為關系模式的碼。8
數據庫課程設計學生(學號,姓名,班級,性別,年齡,民族,政治面貌,電話,E-mail,QQ號)家庭(家庭編號,家庭住址,郵編,聯系電話,家長姓名)獎懲(獎懲編號,獎懲原因,獎懲內容,獎懲學期)課程(課程號,課程名稱,課程學分,授課學時)2.一般情況下,1:1和1:N的聯系不需要單獨轉換為關系模式,只需要將1對應的實體的碼放入另一方即可。學生與家庭之間1:1的聯系只需要將學生的碼學號放入家庭即可描述,因此將上面的家庭關系模式修改為:家庭(家庭編號,學號,家庭住址,郵編,聯系電話,家長姓名)同樣,學生與獎懲之間的1:N的聯系也只需要將學生的碼學號放入獎懲即可描述,因此將上面的獎懲關系模式修改為:獎懲(獎懲編號,學號,獎懲原因,獎懲內容,獎懲學期)3.一般情況下,M:N的聯系需要單獨轉換為一個關系模式,聯系的屬性作為關系模式的屬性,聯系兩端實體的碼的組合作為關系模式的碼。因為只有當學生選修了課程之后才可能出現成績,所以學生與課程之間M:N的聯系就必須單獨轉換為一個關系模式,其描述如下:選修(學號,課程號,學期,成績)然后,將轉換得到的關系模式根據所使用的數據庫管理系統進行具體的描述,包括其類型、大小、約束等信息。學生信息管理系統使用的是SQLServer2000數據庫。數據庫中各個表的結構描述如表2-6至2-11所示。表2-6學生信息表StudentInfo字段長字段名字段說明數據類型必填字段主(外)鍵度sno學號varchar10姓名varchar20班級varchar30性別char2是主鍵snameclasssex是否否否age年齡smallint29
數據庫課程設計nationality民族varchar12政治面貌char4stu_tel電話varchar20否否否否否zzmmemailqq電子郵箱varchar30QQ號碼varchar12表2-7家庭信息表FamilyInfo字段長必填字字段名字段說明數據類型主(外)鍵度段sno學號varchar10是主鍵,外鍵homeaddress家庭住址varchar50郵編char6family_tel家庭電話varchar30否否否否postcodepname家長姓名varchar20表2-8獎懲信息表RPInfo數據類字段長必填字字段名字段說明型度段主(外)鍵rpnosno獎懲編號int4是主鍵,自動增加外鍵學號varchar10是rpreason獎懲原因varchar50rpcontent獎懲內容varchar20rpterm獎懲學期smallint2否否否表2-9課程信息表CourseInfo字段長字段名字段說明數據類型必填字段主(外)鍵度cno課程號char4是主鍵10
數據庫課程設計cname課程名varchar30ccredit課程學分smallint2chours授課學時smallint2是否否表2-10成績信息表ScoreInfo字段說數據類字段長字段名明型度必填字段主(外)鍵sno學號varchar10cno課程號char4sterm學期smallint2grade成績float8是外鍵主鍵是外鍵否否表2-11用戶登錄信息表UserInfo字段名字段說明數據類型字段長度必填字段主(外)鍵userno用戶編號char4是主鍵是username用戶名varchar20password密碼varchar20usertype用戶類型varchar10否否最后,在確定了各個數據表中字段的類型、大小及約束之后,即可在SQLServer2000數據庫管理系統中建立相關數據表結構及其相關的聯系。到此為止,數據庫的設計就完成了,下面我們就可以直接進入應用程序的設計。3.3SQL語句實現數據表的創建:(1)學生信息表創建:CREATETABLEStudentInfo(snoVARCHAR(10)PRIMARYKEY,snameVARCHAR(20)NOTNULL,classVARCHAR(30),sexCHAR(2),11
ageSMALLINT,nationalityVARCHAR(12),zzmmCHAR(4),(2)家庭信息表創建:CREATETABLEFamilyInfo(snovarchar(10)primarykey,homeaddressvarchar(50),postcodechar(6),family_telvarchar(30),pnamevarchar(20),foreignkey(sno)referencesStudentInfo(sno))
(rpnointidentity(1,1)primarykey,snovarchar(10)notnull,rpreasonvarchar(50),rpcontentvarchar(20),rptermsmallint,foreignkey(sno)referencesStudentInfo(sno))(4)課程信息表創建:CREATETABLECourseInfo(cnochar(4)primarykey,cnamevarchar(30)notnull,ccreditsmallint,chourssmallint)(5)成績信息表創建:
CREATETABLEScoreInfo(snovarchar(10),cnochar(4),gradefloat,foreignkey(sno)referencesStudentInfo(sno),foreignkey(cno)referencesCourseInfo(cno))(6)用戶登錄信息表創建:CREATETABLEUserInfo(usernochar(4)primarykey,usernamevarchar(20)notnull,passwordvarchar(20),usertypevarchar(10))視圖的創建:
whereStudentInfo.sno=FamilyInfo.sno(太長未完全復制過來)(2)“s_sc_c”視圖創建:createviews_sc_casselectScoreIo,cname,grade,ccredit,StudentInfo.sno,stermfromScoreInfo,CourseInfo,StudentInfowhereStudentInfo.sno=ScoreInfo.snoandCourseIo=ScoreIo(3)“stu_rp”視圖創建:createviewstu_rp
第四章系統模塊詳細設計學生信息管理系統運行后先點“系統管理”中的“系統登錄”即可看到此界面,輸入用戶名和密碼,驗證正確后就可查看“學生信息編輯”、“成績管理”、“查詢統計”權力。輸入錯誤則會彈出提示!
4.2相關功能界面可對學生基本信息進行“添加”、“修改”、“刪除”、“保存”、“取消”操作。1、點輸入相應內容點顯示點“確定”后學生基本信息表中即出現添加那一欄同學的內容:
“確定”即可,不刪除則點“取消”。即修改成功,不需要修改則點。4.2.2學生信息查詢界面設計在該界面中,用戶可以根據學號或姓名來查找某個學生的基本信息,家庭信息和獎懲信息。一個學生對應的基本信息和家庭信息只有一條記錄,故可用文本的形式顯示出來,而一個學生可以有多條獎懲信息,在這里我們用表格的形式顯示出來,該界面如下圖所示。
若要查詢某位學生的基本信息,只需輸入該同學的姓名或學號點即可查詢。若輸入的姓名或學號不在范圍內顯示4.2.3個人成績查詢界面設計。在該界面中,用戶可以根據學生的學號或姓名和學期來查找在該學期該學生所有課程的成績。界面如下圖所示。
查詢步驟參照上述“學生基本信息查詢”,此處不再多加敘述。4.2.4班級成績查詢界面設計在該界面中,主要完成兩個功能:一是用戶可可以根據班級、課程名和選擇成績的分數條件來查找某個班級某門課程的成績。二是完成統計功能,包括滿足條件的總人數、總分、平均分、最高分、最低分等功能。完成后界面如下圖所示。20
點擊“退出”后,就可以安全退出學生信息管理系統了!第五章課程設計總結課程設計是培養學生綜合運用所學知識,發現,提出,分析和解決實際問題,鍛煉實踐能力的重要環節,是對學生實際工作能力的具體訓練和考察過程.本次課程設計雖然很辛苦,實在是受益匪淺。本來這門課的知識學的就不夠扎實,本次課程設計,在設計過程中碰到了很多問題,剛開始要設計的時候,還真不知道從哪里下手但最終在百度、同學和老師的幫助下都得到了解決,了會好多書本上沒有的東西,通過本次課程設計很好的輔助學習的效果,但是我發現我學到的知識比整整一個學期學到的都多。理論和實踐的相結合是學習最有效的方法。在設計的過程中發現了自己的不足之我也能將課本上的知識融會貫通,起到了21
數據庫課程設計處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固,通過這次課程設計之后,一定把以前所學過的知識重新溫故。通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。在這一學期的學習中,我終于體會到SQLServer2008功能的功能豐富,表達能力強,使用靈活方便,應用面廣。但是在其優勢后面必然也隱藏著劣勢,那就是對程序員的要求特別高。隨著社會的發,展人類需要處理的數據越來越多,對數據管理的要求也越來越重要。軟件的發也展從面向程序發展成為面向數據。22
數據庫課程設計附錄(代碼)由于篇幅有限,所以只附上主要功能的代碼:一、以“學生基本信息編輯窗體”為例:1、在主界面中對菜單項“學生信息編輯窗體”中做事件處理,注意,先修改“學生基本信息編輯“菜單項的變量名為“stuEditMenuItem”。privatevoidstuEditMenuItemActionPerformed(java.awt.event.ActionEventevt){//TODOaddyourhandlingcodehere:處理菜單事件StudentEditstu=newStudentEdit();//創建學生基本信息編輯窗體對象stu.setVisible(true);//設置窗體的可見性stu.setconn();//該窗體打開后連接數據庫jDesktopPane1.add(stu);//將該窗體添加到桌面容器中try{stu.setSelected(true);//設置窗體可選}catch(PropertyVetoExceptionex){Logger.getLogger(StuIMSView.class.getName()).log(Level.SEVERE,null,ex);}}這樣,當我們單擊主界面的“學生基本信息編輯“菜單項就可以彈出學生基本信息編輯界面。2.完成打開界面后顯示數據庫中的數據⑴首先建立數據庫的連接,在StudentEdit.java的源代碼部分寫入:publicvoidsetconn(){conn=DBClass.DBCon();}在stuEditMenuItemActionPerformed事件中寫入連接數據庫的代碼:stu.setconn();//該窗體打開后連接數據庫⑵其次在代碼部分添加需要用的成員變量,代碼如下:privateConnectionconn;privatePreparedStatementpstmt;privateResultSetrst;Booleanflag=false;//用來判斷是添加還是修改,false為添加,true為修改⑶編寫查詢并將結果顯示在表格中的方法outstu(),代碼如下:publicvoidoutstu(Strings){//查詢并將結果顯示在表格中try{inti=0;pstmt=conn.prepareStatement(s);rst=pstmt.executeQuery();while(i<jTable1.getRowCount()){//用循環清空表格中的內容,保證刪23
數據庫課程設計除數據時刷新內容i++;}intj=0;while(rst.next()){jTable1.setValueAt(rst.getString(1),j,0);jTable1.setValueAt(rst.getString(2),j,1);jTable1.setValueAt(rst.getString(3),j,2);jTable1.setValueAt(rst.getString(4),j,3);jTable1.setValueAt(rst.getInt(5),j,4);jTable1.setValueAt(rst.getString(6),j,5);jTable1.setValueAt(rst.getString(7),j,6);jTable1.setValueAt(rst.getString(8),j,7);jTable1.setValueAt(rst.getString(9),j,8);jTable1.setValueAt(rst.getString(10),j,9);j++;}pstmt.close();}catch(SQLExceptione){JOptionPane.showMessageDialog(null,查詢失敗!錯誤JOptionPane.ERROR_MESSAGE);}}⑷添加窗體打開事件的處理代碼:privatevoidformComponentShown(java.awt.event.ComponentEventevt){//TODOaddyourhandlingcodehere:窗體打開時,查詢顯示所有學生信息this.flag=false;}3.處理表格上的鼠標事件當我們選中表格中的某行數據時,可以在對應的文本框中顯示該數據。privatevoidjTable1MouseClicked(java.awt.event.MouseEventevt){24
數據庫課程設計//TODOaddyourhandlingcodehere:處理表格上的鼠標事件inti=jTable1.getSelectedRow();//獲得鼠標點擊的行//將該行的信息顯示在文本框中jsno.setText(jTable1.getValueAt(i,0).toString());jsname.setText(jTable1.getValueAt(i,1).toString());jclass.setText(jTable1.getValueAt(i,2).toString());jsex.setText(jTable1.getValueAt(i,3).toString());jage.setText(jTable1.getValueAt(i,4).toString());jnationality.setText(jTable1.getValueAt(i,5).toString());jzzmm.setText(jTable1.getValueAt(i,6).toString());jstu_tel.setText(jTable1.getValueAt(i,7).toString());jemail.setText(jTable1.getValueAt(i,8).toString());jqq.setText(jTable1.getValueAt(i,9).toString());}4.完成學生信息界面中的添加功能⑴編寫添加方法addstu()。publicvoidaddstu(){//將數據插入到數據庫中try{intoStudentInfo(sno,sname,class,sex,age,nationality,zzmm,stu_tel,email,qq)values(?,?,?,?,pstmt.setString(1,jsno.getText());pstmt.setString(2,jsname.getText());pstmt.setString(3,jclass.getText());pstmt.setString(4,jsex.getText());pstmt.setInt(5,Integer.parseInt(jage.getText().toString()));pstmt.setString(6,jnationality.getText());pstmt.setString(7,jzzmm.getText());pstmt.setString(8,jstu_tel.getText());pstmt.setString(9,jemail.getText());pstmt.setString(10,jqq.getText());pstmt.execute();pstmt.close();25
數據庫課程設計JOptionPane.showMessageDialog(null,添加成功!提示JOptionPane.INFORMATION_MESSAGE);}catch(SQLExceptionex){添加學生信息失敗!錯誤}}⑵添加按鈕的事件處理,此時保存按鈕可用,刪除和修改按鈕不可用。privatevoidaddButtonActionPerformed(java.awt.event.ActionEventevt){//TODOaddyourhandlingcodehere:添加學生信息,清空所有文本框jsno.setEditable(true);saveButton.setEnabled(true);//啟用保存按鈕alterButton.setEnabled(false);//在添加信息時,不能使用修改和刪除按鈕deleteButton.setEnabled(false);}5.完成privatevoidsaveButtonActionPerformed(java.awt.event.ActionEventevt){//TODOaddyourhandlingcodehere:保存(添加/修改的)信息保存按鈕事件,將輸入的信息插入到數據庫中if(flag){this.updatestu();}else{this.addstu();}saveButton.setEnabled(false);//設置保存按鈕不可以用addButton.setEnabled(true);alterButton.setEnabled(true);deleteButton.setEnabled(true);this.flag=false;}26
數據庫課程設計6.完成學生信息界面中的修改功能⑴編寫方法updatestu():publicvoidupdatestu(){//修改學生信息,不允許修改學號try{StudentInfosetsname=?,class=?,sex=?,age=?,nationality=?,zzmm=?,stu_tel=?,email=?,qq=?wherepstmt.setString(1,jsname.getText());pstmt.setString(2,jclass.getText());pstmt.setString(3,jsex.getText());pstmt.setInt(4,Integer.parseInt(jage.getText().toString()));pstmt.setString(5,jnationality.getText());pstmt.setString(6,jzzmm.getText());pstmt.setString(7,jstu_tel.getText());pstmt.setString(8,jemail.getText());pstmt.setString(9,jqq.getText());pstmt.setString(10,jsno.getText());pstmt.execute();pstmt.close();JOptionPane.showMessageDialog(null,修改成功!提示JOptionPane.INFORMATION_MESSAGE);}catch(SQLExceptionex){修改學生信息失敗!錯誤}}⑵修改按鈕的事件處理:privatevoidalterButtonActionPerformed(java.awt.event.ActionEventevt){//TODOaddyourhandlingcodehere:準備修改當前記錄this.flag=true;saveButton.setEnabled(true);//啟用保存按鈕addButton.setEnabled(false);//在修改信息時,不能使用添加和刪除按鈕deleteButton.setEnabled(false);}7.完成學生信息界面中的刪除功能⑴編寫方法deletestu()publicvoiddeletestu(){//刪除學生信息try{pstmt=fromStudentInfowhere27
數據庫課程設計pstmt.setString(1,jsno.getText());pstmt.executeUpdate();JOptionPane.showMessageDialog(null,刪除成功!提示JOptionPane.INFORMATION_MESSAGE);pstmt.close();}catch(SQLExceptionex){刪除學生信息失敗!錯誤}}⑵刪除按鈕的事件處理privatevoiddeleteButtonActionPerformed(java.awt.event.ActionEventevt){//TODOaddyourhandlingcodehere:刪除學生信息if(JOptionPane.showConfirmDialog(null,你確定要刪除該學生信息嗎?提示JOptionPane.OK_CANCEL_OPTION,JOptionPane.INFORMATION_MESSAGE)==JOptionPane.OK_OPTION){this.deletestu();}}8.取消按鈕事件privatevoidcancelButtonActionPerformed(java.awt.event.ActionEventevt){//TODOaddyourhandlingcodehere:取消按鈕,用戶取消添加或者修改,將所有按鈕恢復到初始狀態saveButton.setEnabled(false);addButton.setEnabled(true);alterButton.setEnabled(true);deleteButton.setEnabled(true);}這樣,學生基本信息的編輯窗體就實現了二、“學生基本信息查詢”界面查詢按鈕事件關鍵代碼如下:privatevoidqueryButtonActionPerformed(java.awt.event.ActionEventevt){//TODOaddyourhandlingcodehere:查詢學生的信息//清空表格中的內容,保證下一條數據的正確顯示28
數據庫課程設計try{inti=0;while(i<jTable1.getRowCount()){//用循環清空表格中的內容,保證刪除數據時刷新內容i++;}//pstmt1連接完成學生基本信息和家庭信息的查詢pstmt1=*fromstu_fwheresno=?orpstmt1.setString(1,jsno1.getText());pstmt1.setString(2,jsno1.getText());rst=pstmt1.executeQuery();rst.next();jsno.setText(rst.getString(1));jsname.setText(rst.getString(2));jclass.setText(rst.getString(3));jsex.setText(rst.getString(4));jage.setText(rst.getString(5));jnationality.setText(rst.getString(6));jzzmm.setText(rst.getString(7));jstutel.setText(rst.getString(8));jemail.setText(rst.getString(9));jqq.setText(rst.getString(10));jhaddr.setText(rst.getString(11));jpostcode.setText(rst.getString(12));jfamilytel.setText(rst.getString(13));jpname.setText(rst.getString(14));pstmt1.close();29
數據庫課程設計//pstmt2完成獎懲信息的查詢pstmt2=pstmt2.setString(1,jsno1.getText());pstmt2.setString(2,jsno1.getText());rst=pstmt2.executeQuery();intj=0;while(rst.next()){jTable1.setValueAt(rst.getString(1),j,0);jTable1.setValueAt(rst.getString(2),j,1);jTable1.setValueAt(rst.getString(3),j,2);jTable1.setValueAt(rst.getString(4),j,3);jTable1.setValueAt(rst.getString(5),j,4);j++;}}catch(SQLExceptione){JOptionPane.showMessageDialog(null,查詢失敗!錯誤JOptionPane.ERROR_MESSAGE);}}三、“學生個人成績查詢”界面查詢按鈕事件關鍵代碼如下:privatevoidqueryButtonActionPerformed(java.awt.event.ActionEventevt){//TODOaddyourhandlingcodehere:inti=0;while(i<jTable1.getRowCount()){//用循環清空表格中的內容,保證查詢數據時刷新內容i++;}Strings;cno,cname,grade,ccreditfroms_sc_cwhere(sno=?ortry{pstmt1=conn.prepareStatement(s);pstmt1.setString(1,jsno.getText());pstmt1.setString(2,jsno.getText());pstmt1.setInt(3,30
數據庫課程設計Integer.parseInt(jsterm.getSelectedItem().toString().trim()));rst=pstmt1.executeQuery();intj=0;while(rst.next()){jTable1.setValueAt(rst.getString(1),j,0);jTable1.setValueAt(rst.getString(2),j,1);jTable1.setValueAt(rst.getString(3),j,2);jTable1.setValueAt(rst.getString(4),j,3);j++;}}catch(SQLExceptionex){Logger.getLogger(StuOneScoreQuery.class.getName()).log(Level.SEVERE,null,ex);}}四、“班級成績查詢”界面查詢按鈕事件關鍵代碼如下:privatevoidqueryButtonActionPerformed(java.awt.event.ActionEventevt){//TODOaddyourhandlingcodehere:班級成績查詢統計inti=0;while(i<jTable1.getRowCount()){//用循環清空表格中的內容,保證查詢數據時刷新內容i++;}Strings,s1;count(*)asscount,sum(grade)astotal,avg(grade)asavg_s,max(grade)asmf,min(grade)asnffroms_sc_cwhereclass=?andcname=?//pstmt1完成班級查詢功能31
數據庫課程設計try{pstmt1=conn.prepareStatement(s);pstmt1.setString(1,jclass.getText());pstmt1.setString(2,jcname.getText());pstmt1.setFloat(3,Float.parseFloat(jgrade.getText()));rst=pstmt1.executeQuery();intj=0;while(rst.next()){jTable1.setValueAt(rst.getString(1),j,0);jTable1.setValueAt(rst.getString(2),j,1);jTable1.setValueAt(rst.getString(3),j,2);jTable1.setValueAt(rst.getString(4),j,3);jTable1.setValueAt(rst.getString(5),j,4);jTable1.setValueAt(rst.getString(6),j,5);j++;}//pstmt2連接完成統計功能pstmt2=conn.prepareStatement(s1);pstmt2.setString(1,jclass.getText());pstmt2.setString(2,jcname.getText());pstmt2.setFloat(3,Float.parseFloat(jgrade.getText()));rst=pstmt2.executeQuery();while(rst.next()){jcount.setText(rst.getString(1));jsum.setText(rst.getString(2));javg.setText(rst.getString(3));jmax.setText(rst.getString(4));jmin
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟考網絡工程師試題及答案分析報告2025年
- 西方政治制度與環境政策的互動試題及答案
- 西方政治制度對公民社會的影響試題及答案
- 議會制度討論題目及答案
- 網絡服務性能試題及答案探研
- 計算機軟件測試中的用戶體驗試題及答案
- 公共政策的評估體系建設試題及答案
- 精通網絡架構的試題及答案
- 環境政策在西方政治制度中的位置試題及答案
- 機電工程碩士研究生試題及答案
- 2025屆湖北省武漢華中師大一附中高三最后一模化學試題含解析
- 2025屆湖北省武漢華中師大一附中5月高考適應性考試英語試題試卷含解析
- 《上市公司社會責任報告披露要求》
- 重癥患者譫妄管理指南及標準解讀
- 三布五油防腐施工方案
- 第三單元課外古詩詞《逢入京使》課件【知識精研】七年級語文下冊(統編版2024)
- 生產經營單位主要負責人和安全管理人員安全培訓資料
- 危大工程安全管理檔案(2019版)
- 【MOOC】《學術寫作與國際發表》(北京科技大學)章節測驗慕課答案
- 房屋市政工程生產安全重大事故隱患判定標準(2024版)宣傳畫冊
- 《中國國家處方集》課件
評論
0/150
提交評論