




已閱讀5頁,還剩46頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)庫原理與應(yīng)用課程設(shè)計報告選題名稱: 學(xué)生信息管理系統(tǒng) 組 長: 李盟 指導(dǎo)教師: 湯嘉立 設(shè)計日期: 2016.06.132016.06.24 學(xué)號姓名小組評分教師評分2014144414李盟902014144415李玲902014144429徐蘭902014144431許媛媛901. 課程設(shè)計目的:數(shù)據(jù)庫是一門實(shí)踐性很強(qiáng)的課程,為了使學(xué)生加深對數(shù)據(jù)庫基本知識的理解,掌握數(shù)據(jù)庫設(shè)計和開發(fā)的基本方法,學(xué)生自選題目,要求學(xué)生完成一個完整的數(shù)據(jù)庫設(shè)計過程和基本的開發(fā)過程,從而培養(yǎng)學(xué)生在數(shù)據(jù)庫應(yīng)用領(lǐng)域中的分析問題和解決問題的能力。2. 課程設(shè)計內(nèi)容:(1)數(shù)據(jù)庫設(shè)計教師講解數(shù)據(jù)庫的設(shè)計方法以及PowerDesigner的使用,學(xué)生自選題目,要求學(xué)生根據(jù)題目的需求描述,進(jìn)行實(shí)際調(diào)研,提出完整的需求分析報告、用PowerDesigner建立概念模型、邏輯模型、物理模型。在物理模型中根據(jù)需要添加必要的約束、視圖、觸發(fā)器和存儲過程等數(shù)據(jù)庫對象,最后生成創(chuàng)建數(shù)據(jù)庫的腳本,提出物理設(shè)計的文檔。要求學(xué)生提交的報告包含:l 需求說明書l 概念數(shù)據(jù)模型(E-R數(shù)據(jù)模型)l 邏輯數(shù)據(jù)模型(含關(guān)系規(guī)范化)l 物理數(shù)據(jù)模型(含約束、視圖、觸發(fā)器、存儲過程、安全設(shè)計、恢復(fù)方案、事務(wù)設(shè)計等等)l 創(chuàng)建數(shù)據(jù)庫的腳本(數(shù)據(jù)庫對象的定義語言)l 物理設(shè)計的文檔(數(shù)據(jù)庫的實(shí)施規(guī)劃)(2)數(shù)據(jù)庫開發(fā)在數(shù)據(jù)庫設(shè)計的基礎(chǔ)上開發(fā)一個基本的數(shù)據(jù)庫應(yīng)用系統(tǒng),要求有基本的數(shù)據(jù)查詢功能和數(shù)據(jù)管理功能,并能將存儲過程、觸發(fā)器、事務(wù)控制等運(yùn)用其中。開發(fā)工具可以自己選擇。3. 課程設(shè)計要求:數(shù)據(jù)庫課程設(shè)計單獨(dú)設(shè)課,為2周獨(dú)立實(shí)踐環(huán)節(jié)(40學(xué)時),一般4人1組,指定1人為組長(也可申請獨(dú)立完成),但每人要承擔(dān)獨(dú)立的工作、獨(dú)立完成課程設(shè)計報告。通過以上過程,鍛煉學(xué)生從實(shí)際應(yīng)用出發(fā),進(jìn)行需求分析,利用PD工具建立數(shù)據(jù)庫模型、完善數(shù)據(jù)庫模型,到最后的數(shù)據(jù)庫實(shí)施和應(yīng)用系統(tǒng)開發(fā)。希望通過這個過程可以鞏固所學(xué)知識,提高學(xué)生的綜合分析問題和解決問題的能力。4. 實(shí)驗條件:(1) 硬件條件:PC機(jī)。(2) 軟件條件:(Elipse、SQL Server2008、PowerDesigner)5. 實(shí)驗方法與步驟:1、 需求分析(一)目標(biāo)學(xué)生信息管理系統(tǒng)的目標(biāo)是方便學(xué)校教務(wù)處系統(tǒng)的管理學(xué)生的信息,并為學(xué)校和學(xué)生間提供一個信息共享的平臺。隨著學(xué)校的普及和人們文化水平的提高,高效的教學(xué)管理系統(tǒng)越來越廣泛應(yīng)用于各類信息化學(xué)校。學(xué)生信息管理系統(tǒng)要求實(shí)用性強(qiáng)、使用方便、效率高和安全可靠等特點(diǎn)。用戶管理:用戶共分為管理員,教師和學(xué)生。學(xué)生和教師通過注冊建立賬戶,管理員由系統(tǒng)設(shè)定統(tǒng)一的用戶名和密碼。經(jīng)分析我們認(rèn)為學(xué)生學(xué)籍管理系統(tǒng)的具體要求為: 1.能全面管理學(xué)校教學(xué)相關(guān)的各類主體,如用戶管理員,學(xué)生用戶以及選修課程表 2.通過使用計算機(jī)能方便的維護(hù)(包括插入、刪除、修改)各信息表 3能方便的實(shí)現(xiàn)基于多個表的連接查詢 4系統(tǒng)具有操作方便、簡捷等特點(diǎn)(二)需求陳述 學(xué)生對功能的需求分析: 查詢個人基本信息 查詢學(xué)生課程信息 查詢學(xué)生成績信息 管理員對功能的需求分析:添加、刪除、修改、查詢學(xué)生信息添加、刪除、修改、查詢課程信息修改、查詢用戶信息查詢選課信息修改、查詢成績信息2、 概念數(shù)據(jù)模型設(shè)計(A)局部E-R模型(B)整體E-R模型3、 邏輯模型設(shè)計(A)將概念數(shù)據(jù)模型轉(zhuǎn)化成邏輯數(shù)據(jù)模型(B)對模型進(jìn)行必要的完善和優(yōu)化4、 物理模型設(shè)計(A)將邏輯數(shù)據(jù)模型轉(zhuǎn)化成物理數(shù)據(jù)模型(B)對模型進(jìn)行必要的完善和優(yōu)化(C)根據(jù)需要設(shè)計視圖、存儲過程和觸發(fā)器等(D)描述安全管理方案、備份恢復(fù)策略、并發(fā)控制策略等5、 系統(tǒng)實(shí)現(xiàn)描述數(shù)據(jù)庫實(shí)施的方法和過程,詳細(xì)文檔以附件1形式提交。6. 個人工作報告除上一步驟要求的完整文檔外,每個人需陳述自己所承擔(dān)的工作、在討論中的個人見解,提供個人所承擔(dān)工作的有關(guān)文檔(可能是不完整的),并對個人的工作情況、收獲等進(jìn)行總結(jié)。(1) 承擔(dān)的工作及貢獻(xiàn)l 需求分析階段l 概念模型設(shè)計階段局部E-R模型: 整體E-R模型:l 邏輯模型設(shè)計階段Student(sno,sn,sa,ss,sd)Course(cno,cn,pcno)Sc(sno,cno,g)Unpw(un,pw,qx)l 物理模型設(shè)計階段s(學(xué)生信息表)字段名稱數(shù)據(jù)類型描述snochar (10)學(xué)號,關(guān)鍵字snchar (20)姓名saint年齡sschar (10)性別sdchar (10)院系c(課程信息表)字段名稱數(shù)據(jù)類型描述cnochar (10)課程號,關(guān)鍵字cnchar (30)課程名pcnochar (10)先行課程號sc(選課信息表)字段名稱數(shù)據(jù)類型描述snochar (10)學(xué)號,關(guān)鍵字cnochar (10)課程號,關(guān)鍵字gint成績unpw(用戶信息表)字段名稱數(shù)據(jù)類型描述unchar (10)用戶名,關(guān)鍵字pwchar (10)密碼qxint角色1.視圖:2. s(學(xué)生信息表)3. c(課程信息表) 4. sc(選課信息表) 5. unpw(用戶信息表) l 實(shí)施和實(shí)現(xiàn)階段詳細(xì)見附件1。(2) 課程設(shè)計個人總結(jié)徐蘭:兩個星期的時間非常快就過去了,這半個月我不敢說自己有多大的進(jìn)步,但是獲得了不少的知識,也了解了項目開發(fā)的部分過程。雖說上過數(shù)據(jù)庫相關(guān)的課程,有做過數(shù)據(jù)庫相關(guān)的實(shí)驗,但是沒有親身經(jīng)歷過相關(guān)的設(shè)計工作細(xì)節(jié)。這次課程設(shè)計給我提供了一個很好的機(jī)會。通過這次課程設(shè)計發(fā)現(xiàn)這其中需要的很多知識我們沒有接觸過,上網(wǎng)查找資料的時候發(fā)現(xiàn)我們以前學(xué)到的僅僅是皮毛,還有很多需要我們掌握的東西我們根本不知道。同時也發(fā)現(xiàn)有狠毒已經(jīng)學(xué)過的東西我們沒有理解到位,不能靈活運(yùn)用于實(shí)際,不能很好的用來解決問題,這就需要自己不斷的大量的時間,通過不斷的自學(xué),不斷地發(fā)現(xiàn)問題,思考問題,進(jìn)而解決問題。這次的課程設(shè)計也是為我們以后的畢業(yè)設(shè)計作品提前打好基礎(chǔ)。在這次的課程設(shè)計中,我負(fù)責(zé)的是創(chuàng)建數(shù)據(jù)庫,這些就讓我用到了數(shù)據(jù)庫的很多知識,對SQL語言,數(shù)據(jù)庫的創(chuàng)建、修改、刪除有了更深的了解,并且更加熟練的掌握了數(shù)據(jù)庫中的SQL語句。我想我做的是組里面最簡單的工作,因為我做的是有基礎(chǔ)的,組長做的JAVA前臺就比較的累了,她還要先去學(xué)習(xí)。在她做的時候我也學(xué)習(xí)了一下,為之后打個基礎(chǔ)。通過這次課程設(shè)計的完成,是我對自己所學(xué)知識進(jìn)一步的了解,同時通過實(shí)踐發(fā)現(xiàn)自己的不足,對知識的掌握及運(yùn)用存在諸多的不完善。所以在今后的學(xué)習(xí)中,我會繼續(xù)努力,完善自我,同學(xué)的幫助和學(xué)校的精心安排是這個課題能夠順利進(jìn)行。李玲:在本次課程設(shè)計中,我負(fù)責(zé)課程設(shè)計報告的整理與編寫,通過整理報告,我對于SQL,JAVA的編程方式以及他們之間的相互連接,基本運(yùn)用有了全方位的認(rèn)識,我的分析能力,獨(dú)立思考能力都得到了一定程度的提高。回顧起此課程設(shè)計,至今我仍感慨頗多,從理論到實(shí)踐,在這段日子里,可以學(xué)到很多很多的東西,同時不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次課程設(shè)計使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實(shí)際動手能力和獨(dú)立思考的能力。在設(shè)計的過程中遇到問題,可以說得是困難重重,但可喜的是最終都得到了解決。實(shí)驗過程中,也對團(tuán)隊精神的進(jìn)行了考察,讓我們在合作起來更加默契,在成功后一起體會喜悅的心情。果然是團(tuán)結(jié)就是力量,只有互相之間默契融洽的配合才能換來最終完美的結(jié)果。讓我更加深切的體會到團(tuán)隊合作的重要性。許媛媛:這次的數(shù)據(jù)庫課程設(shè)計,我主要是負(fù)責(zé)前期資料的收集,在設(shè)計期間及時提供相關(guān)的有利資料。兩個星期的時間非常快就過去了,這兩個星期不敢說自己有多大的進(jìn)步,獲得了多少知識,但起碼是了解了系統(tǒng)開發(fā)的過程。兩周課程設(shè)計讓我對java語言等編程技術(shù)產(chǎn)生了濃厚的興趣,更重要的是增強(qiáng)了我學(xué)習(xí)的自信心。剛開始我們查找資料、了解有關(guān)的知識,相互探討,了解學(xué)生信息管理系統(tǒng)的需求,做好需求分析后,開始系統(tǒng)的設(shè)計,畫出E-R圖,寫出各個實(shí)體的屬性。在我搜集資料的過程中,發(fā)現(xiàn)這其中需要的很多知識是我們之前沒有接觸過的,去圖書館查資料的時候發(fā)現(xiàn)我們前邊所學(xué)到的僅僅是皮毛,還有很多需要我們掌握的東西我們根本不知道。同時也發(fā)現(xiàn)有很多已經(jīng)學(xué)過的東西我們沒有理解到位,不能靈活運(yùn)用于實(shí)際,不能很好的用來解決問題,這就需要我們不斷的大量的實(shí)踐,通過不斷的自學(xué),不斷地發(fā)現(xiàn)問題,思考問題,進(jìn)而解決問題。在這個過程中我們將深刻理解所學(xué)知識,同時也可以學(xué)到不少很實(shí)用的東西。這次的系統(tǒng)設(shè)計不僅使我們學(xué)會了把數(shù)據(jù)庫的各個模塊聯(lián)系起來,并與java相連接,更讓我懂得了如何設(shè)計一個系統(tǒng),了解了系統(tǒng)設(shè)計的過程。李盟:在本次課程設(shè)計中,本組課程選題名稱為“學(xué)生信息管理系統(tǒng)”,由于我擔(dān)任的是組長,因此我不僅負(fù)責(zé)自己的部分,還負(fù)責(zé)課題布置與集中交流。我在本小組中的主要任務(wù)是java程序的編寫及修改。在課程設(shè)計初期,我們小組首先確定的課題題目,在細(xì)致地討論了系統(tǒng)的需求,列出了相應(yīng)的模塊,并進(jìn)行了結(jié)構(gòu)化設(shè)計。然后我再根據(jù)我們的初步研究結(jié)果,確定我的編程方向,開始我的任務(wù)。我通過借閱相關(guān)書籍,上網(wǎng)查閱資料等方式,完成了我的系統(tǒng)編程初稿。但在系統(tǒng)測試階段,出現(xiàn)了很多的問題和錯誤。 比如數(shù)據(jù)庫文件的導(dǎo)入路徑出錯,導(dǎo)致數(shù)據(jù)庫連接錯誤;通過老師的指導(dǎo),幸而解決了此問題。通過這次課程設(shè)計,我不僅清楚地知道了自己在數(shù)據(jù)庫原理知識和編程語言方面的不足,還認(rèn)識到了在合作過程中,個人的力量總是不足的,需要大家一起協(xié)作。我們真切地體驗了軟件項目管理技能和方法,熟悉了軟件工具與環(huán)境,把課堂學(xué)習(xí)的理論知識很好的在實(shí)踐中運(yùn)用了起來。我們小組成員之間合作默契,奮斗雖是艱苦的,但收獲是快樂的。我們相信,在大家的不懈努力之下目標(biāo)一定可以達(dá)成,我們也將在學(xué)習(xí)數(shù)據(jù)庫及其他網(wǎng)絡(luò)編程語言的道路上更加進(jìn)步。7. 總結(jié)(組長完成):小組分工情況說明及工作量(工作量以百分比表示)李盟:前臺頁面設(shè)計31%李玲:報告整理23%徐蘭:后臺SQL建表23%許媛媛:收集資料23%小組工作總結(jié) 課程設(shè)計誠然是一門專業(yè)課,給我們很多專業(yè)知識以及專業(yè)技能上的提升,同時又是一門講道課,一門辯思課,給了我們許多道,給了我們很多思,給了我們莫大的空間。同時,設(shè)計讓我們感觸很深。使我們對抽象的理論有了具體的認(rèn)識。在經(jīng)歷了將近兩個星期的課程設(shè)計過程后,本系統(tǒng)基本能夠完成學(xué)生學(xué)籍信息和學(xué)生的成績的查詢、插入、刪除、修改等。這次的課程設(shè)計是分組討論和制作的。我們小組從了解課題、理解課題、查找資料、確定思路到設(shè)計實(shí)施,學(xué)生信息管理系統(tǒng)初步形成。我們能從中深刻的感受到自己又收獲了很多東西。 首先,更進(jìn)一步的了解了數(shù)據(jù)庫的基本操作, 在這之前,數(shù)據(jù)庫的學(xué) 習(xí)僅僅剛開了個頭,我們只是在了解一些概念性的東西。在做這個系統(tǒng)之前,連基本的連接數(shù)據(jù)庫,配文件DSN,數(shù)據(jù)庫查詢語句等這些東西都不熟練?,F(xiàn)在對于數(shù)據(jù)庫的增刪改查操作比較熟練了,對于初學(xué)者來說,比較頭疼的就是對于單引號的處理。我的建議是如果不理解先把按照課本上正確的語句敲,然后在多次進(jìn)行數(shù)據(jù)庫的鏈接,增刪改查操作中不斷總結(jié)規(guī)律。 這次設(shè)計的學(xué)生信息管理系統(tǒng),完全體現(xiàn)了自己在數(shù)據(jù)庫語言和程序設(shè)計課程學(xué)習(xí)狀況,充分地為自己以后更深入了數(shù)據(jù)庫語言奠下深厚的基礎(chǔ)。 縱觀此學(xué)生信息管理系統(tǒng)的整體概況,目前,自我認(rèn)為設(shè)計良好,相關(guān)功能都能夠?qū)崿F(xiàn),功能強(qiáng)大,條理清晰,界面可觀性比較好。并且特色在于,所設(shè)計的表單都在一個表單系統(tǒng)桌面中運(yùn)行,比較符合系統(tǒng)的觀念。 通過本次實(shí)踐,我們學(xué)習(xí)了許多數(shù)據(jù)庫的知識以及它與JAVA的連接,而且學(xué)到了書本上學(xué)不到的東西,積累了一點(diǎn)經(jīng)驗和教訓(xùn),有了些體會。1、必須詳細(xì)準(zhǔn)確的做好需求分析。 2、軟件工程原理和方法是軟件開發(fā)得以順利進(jìn)行的保障,一定要遵守,否則既費(fèi)時又費(fèi)力。 3、通過本次課程設(shè)計,端正了我們的學(xué)習(xí)態(tài)度,提高了實(shí)踐能力。使我認(rèn)識到應(yīng)該以嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度勇于去實(shí)踐和探索。 這次課程設(shè)計既是一個學(xué)習(xí)的過程,也是一個實(shí)踐的過程,它使我們獲得了一些開發(fā)大型數(shù)據(jù)庫系統(tǒng)的經(jīng)驗。還有就是由于我們對數(shù)據(jù)庫知識的掌握有限和不牢固,角色和視圖的創(chuàng)建沒有想象中的完美,備份和還原也只是初步的形成,以致學(xué)生學(xué)籍管理系統(tǒng)只是達(dá)到了基本要求,有待進(jìn)一步改善,希望老師給予批評。小組自評學(xué)號: 2014144414 姓名: 李萌 成績:90學(xué)號: 2014144415 姓名: 李玲 成績:90學(xué)號: 2014144429 姓名: 徐蘭 成績:90學(xué)號: 2014144431 姓名: 許媛媛 成績:90源程序、代碼、具體語句等,若表格空間不足時可作為附錄另外附頁。50附件1 系統(tǒng)實(shí)施1、 登錄界面圖片: 代碼:package li;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;class DLFrame extends JFrame implements ActionListener, ItemListener / 登錄界面JPanel p1 = null;JPanel p2 = null;JPanel p3 = null;JLabel userName = new JLabel(用戶:);JTextField txtUser = new JTextField();JLabel password = new JLabel(密碼:);JPasswordField txtPwd = new JPasswordField(6);JLabel role = new JLabel(角色:);JComboBox cbrole = new JComboBox();JButton btnLogin = new JButton(登錄);JButton btncz = new JButton(重置);JButton btnCancel = new JButton(取消);JLabel imageLabel;Icon image;static int OK = 1;static int CANCEL = 0;int actionCode = 0;Connection con = null;Statement stmt = null;ResultSet rs = null;int qxian = 0;public DLFrame() / 構(gòu)造方法super(登錄界面);p1 = new JPanel();p2 = new JPanel();p3 = new JPanel();cbrole.addItem(管理員);cbrole.addItem(學(xué)生);image = new ImageIcon(Tulips.jpg);imageLabel = new JLabel(image);p1.add(imageLabel);this.setLayout(new FlowLayout();this.setBounds(100, 100, 246, 345);p2.setLayout(new GridLayout(4, 2);p2.add(userName);p2.add(txtUser);p2.add(password);p2.add(txtPwd);p2.add(role);p2.add(cbrole);p3.add(btnLogin);p3.add(btncz);p3.add(btnCancel);this.add(p1);this.add(p2);this.add(p3);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.show();btnLogin.addActionListener(this);cbrole.addItemListener(this);btncz.addActionListener(this);btnCancel.addActionListener(this);public void connDB() / 連接數(shù)據(jù)庫try Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver); catch (ClassNotFoundException e) e.printStackTrace();try con = DriverManager.getConnection(jdbc:sqlserver:/localhost:1433; DatabaseName=student,sa, 123);stmt = con.createStatement(); catch (SQLException e) e.printStackTrace();public void closeDB() / 關(guān)閉連接try stmt.close();con.close(); catch (SQLException e) e.printStackTrace();public void itemStateChanged(ItemEvent e) if (e.getStateChange() = ItemEvent.SELECTED) JComboBox jcb = (JComboBox) e.getSource();qxian = jcb.getSelectedIndex();public void actionPerformed(ActionEvent e) Object source = e.getSource();String un = null;String pw = null;boolean success = false;/ 用于判斷是否登錄成功if (source = btnLogin) if (txtUser.getText().equals() | txtPwd.getText().equals() / 判斷是否輸入了用戶名和密碼JOptionPane.showMessageDialog(null, 登錄名和密碼不能為空!); else this.connDB();try rs = stmt.executeQuery(select * from unpw where qx=+ qxian);while (rs.next() un = rs.getString(un).trim();pw = rs.getString(pw).trim();if (txtUser.getText().equals(un) if (txtPwd.getText().equals(pw) actionCode = OK;this.setVisible(false);if (qxian = 0) new ManagerFrane();/ 進(jìn)入管理員界面if (qxian = 1) new StudentFrame();/ 進(jìn)入學(xué)生界面success = true;break; else JOptionPane.showMessageDialog(null, 密碼錯誤!);txtPwd.setText();success = true;if (!success) JOptionPane.showMessageDialog(null, 登錄名錯誤!);txtUser.setText();txtPwd.setText(); catch (SQLException e1) e1.printStackTrace(); else if (source = btncz) txtUser.setText();txtPwd.setText(); else if (source = btnCancel) System.exit(0);public static void main(String args)JPanel mainp=new JPanel();DLFrame student=new DLFrame();2、 管理員界面圖片: 代碼:package li;import java.awt.*;import java.awt.event.*;import javax.swing.*;class ManagerFrane extends JFrame implements ActionListener / 管理員界面JPanel p1 = new JPanel();JPanel p2 = new JPanel();JButton btns = new JButton(學(xué)生信息管理);JButton btnc = new JButton(課程信息管理);JButton btnsc = new JButton(選課信息管理);JButton btng = new JButton(成績信息管理);JButton btnu = new JButton(用戶信息管理);JButton btnClose = new JButton(退出管理系統(tǒng));JLabel l = new JLabel(管理員);ManagerFrane() / 構(gòu)造方法super(學(xué)生信息管理系統(tǒng));setSize(350, 200);add(North, p1);add(Center, p2);p1.add(l);p2.add(btns);p2.add(btnc);p2.add(btnsc);p2.add(btng);p2.add(btnu);p2.add(btnClose);btns.addActionListener(this);btnc.addActionListener(this);btnsc.addActionListener(this);btng.addActionListener(this);btnu.addActionListener(this);btnClose.addActionListener(this);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);show();public void actionPerformed(ActionEvent e) if (e.getActionCommand() = 學(xué)生信息管理)new SM().display();if (e.getActionCommand() = 課程信息管理) new CM(課程信息管理).display();if (e.getActionCommand() = 選課信息管理) new SCM(選課信息管理).display();if (e.getActionCommand() = 成績信息管理) new GM(成績信息管理).display();if (e.getActionCommand() = 用戶信息管理) new PM(用戶信息管理).display();if (e.getActionCommand() = 退出管理系統(tǒng)) System.exit(0);(1) 學(xué)生信息管理代碼:class SM extends JFrame implements ActionListener / 學(xué)生信息管理JPanel p = new JPanel();JButton btnAdd = new JButton(增加);JButton btnDelete = new JButton(刪除);JButton btnAlter = new JButton(修改);JButton btnSearch = new JButton(查詢);JButton btnDisplay = new JButton(顯示);JMenuBar mb = new JMenuBar();JPanel p1 = new JPanel();JTable sTable;JScrollPane scroll;Connection con = null;Statement stmt = null;ResultSet rs = null;Object playerInfo;SSelect sst;String mxh = null;boolean bstd = false;SM() / 構(gòu)造方法super(學(xué)生信息管理);add(South, p);this.add(Center, p1);mb.add(btnAdd);mb.add(btnDelete);mb.add(btnAlter);mb.add(btnSearch);mb.add(btnDisplay);SM(SSelect sst) / 構(gòu)造方法super(學(xué)生信息管理);this.sst = sst;bstd = true;add(South, p);this.add(Center, p1);mb.add(btnAdd);mb.add(btnDelete);mb.add(btnAlter);mb.add(btnSearch);mb.add(btnDisplay);this.connDB();this.setBounds(200, 200, 400, 260);btnAdd.addActionListener(this);btnDelete.addActionListener(this);btnAlter.addActionListener(this);btnSearch.addActionListener(this);btnDisplay.addActionListener(this);this.setJMenuBar(mb);/ this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setResizable(false);show();public void display() / 顯示所有學(xué)生的基本信息int i = 0;int j = 0;int k = 0;List al = new ArrayList();try rs = stmt.executeQuery(select * from s);while (rs.next() / 找出表中的記錄數(shù)賦給ial.add(rs.getString(sno);al.add(rs.getString(sn);al.add(rs.getString(ss);al.add(rs.getInt(sa);al.add(rs.getString(sd);i+; catch (SQLException e) e.printStackTrace();playerInfo = new Objecti5;String columnNames = 學(xué)號, 姓名, 年齡, 性別, 院系 ;try rs = stmt.executeQuery(select * from s order by sno);while (rs.next() playerInfoj0 = rs.getString(sno);playerInfoj1 = rs.getString(sn);playerInfoj2 = rs.getInt(sa);playerInfoj3 = rs.getString(ss);playerInfoj4 = rs.getString(sd);j+; catch (SQLException e) e.printStackTrace();sTable = new JTable(playerInfo, columnNames);/ 創(chuàng)建網(wǎng)格p1.add(sTable);scroll = new JScrollPane(sTable);this.add(scroll);public void delete() / 刪除某個學(xué)生的基本信息String xh = null;String xm = null;int nl = 0;String xb = null;String yx = null;int row = -1;row = sTable.getSelectedRow();if (row = -1) / 判斷要刪除的信息是否被選中JOptionPane.showMessageDialog(null, 請選擇要刪除的記錄!); else if (!bstd) / 判斷選擇的是不是查詢后的結(jié)果int j1 = 0;try rs = stmt.executeQuery(select * from s);while (rs.next() & j1 = row) / 找出當(dāng)前被選中的記錄在數(shù)據(jù)庫中的對應(yīng)xh = rs.getString(sno);xm = rs.getString(sn);nl = rs.getInt(sa);xb = rs.getString(ss);yx = rs.getString(sd);j1+; catch (SQLException e) e.printStackTrace();int i1 = 0;try int rs1 = stmt.executeUpdate(delete from s where sno=+ xh + ); / 刪除數(shù)據(jù)庫中當(dāng)前被選中的記錄stmt.executeUpdate(delete from unpw where un= + xh + );/ 刪除對應(yīng)的用戶表中的記錄JOptionPane.showMessageDialog(null, 記錄刪除成功!);this.dispose();new SM().display(); catch (SQLException e) e.printStackTrace(); else try int rs1 = stmt.executeUpdate(delete from s where sno=+ mxh + );stmt.executeUpdate(delete from unpw where un= + mxh+ );JOptionPane.showMessageDialog(null, 記錄刪除成功!);this.dispose();new SM().display(); catch (SQLException e) e.printStackTrace();public void update() / 修改某個學(xué)生的基本信息String xh = null;String xm = null;int nl = 0;String xb = null;String yx = null;int row = -1;row = sTable.getSelectedRow();if (row = -1) JOptionPane.showMessageDialog(null, 請選擇要修改的記錄!); else int j1 = 0;try if (!bstd) / 判斷選擇的是不是查詢后的結(jié)果rs = stmt.executeQuery(select * from s); else rs = stmt.executeQuery(select * from s where sno= + mxh+ );while (rs.next() & j1 = row) / 找出當(dāng)前被選中的記錄在數(shù)據(jù)庫中的對應(yīng)xh = rs.getString(sno);xm = rs.getString(sn);nl = rs.getInt(sa);xb = rs.getString(ss);yx = rs.getString(sd);j1+; catch (SQLException e) e.printStackTrace();SAdd sadd = new SAdd(xb, yx);sadd.setTitle(修改);sadd.tsno.setText(xh);sadd.tsname.setText(xm);sadd.tsage.setText( + nl);sadd.tsno.setEnabled(false);this.dispose();public void select() / 顯示某個查詢的結(jié)果mxh = sst.xh;playerInfo = new Object15;String columnNames = 學(xué)號, 姓名, 年齡, 性別, 院系 ;try rs = stmt.executeQuery(select * from s where sno= + mxh + );while (rs.next() playerInfo00 = rs.getString(sno);playerInfo01 = rs.getString(sn);playerInfo02 = rs.getInt(sa);playerInfo03 = rs.getString(ss);playerInfo04 = rs.getString(sd); catch (SQLException e) e.printStackTrace();if (playerInfo01 = null) this.dispose();JOptionPane.showMessageDialog(null, 學(xué)號不存在!);new SM().display(); else sTable = new JTable(playerInfo, columnNames);/ 創(chuàng)建網(wǎng)格p1.add(sTable);scroll = new JScrollPane(sTable);this.add(scroll);public void actionPerformed(ActionEvent e) if (e.getActionCommand() = 增加) new SAdd(男, 計科系);this.dispose();if (e.getActionCommand() = 刪除) this.delete();if (e.getActionCommand() = 修改) this.update();if (e.getActionCommand() = 查詢) sst = new SSelect(學(xué)號:);this.dispose();if (e.getActionCommand() = 顯示) this.dispose();new SM().display();1. 用于學(xué)生信息管理中增加或修改某條記錄的界面圖片: 代碼:class SAdd extends JFrame implements ActionListener, ItemListener / 用于學(xué)生信息管理中增加或修改某條記錄的界面JLabel lsno = new JLabel(學(xué)號:);JLabel lsname = new JLabel(姓名:);JLabel lssex = new JLabel(性別:);JLabel lsage = new JLabel(年齡:);JLabel lsdept = new JLabel(院系:);JTextField tsno = new JTextField(14);JTextField
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45487-2025船舶與海上技術(shù)海上環(huán)境保護(hù)船舶燃油消耗數(shù)據(jù)收集規(guī)范
- GB/T 38205.2-2025液壓傳動16 MPa系列單出桿缸的安裝尺寸第2部分:缸徑25 mm~220 mm緊湊型系列
- 考試過程中情緒管理的重要性與實(shí)踐試題及答案
- 軟件開發(fā)合作協(xié)議
- 項目管理考試的前瞻性分析試題及答案
- 2024新教材高中政治 第四課 只有堅持和發(fā)展中國特色社會主義才能實(shí)現(xiàn)中華民族偉大復(fù)興 4.3 習(xí)近平新時代中國特色社會主義思想教學(xué)設(shè)計 部編版必修1
- 2025年金融理財師考試倫理決策思維訓(xùn)練及試題答案
- 提高項目管理考試自信的有效途徑與試題答案
- 財務(wù)報表分析與特許金融分析師考試試題及答案
- 2025年金融市場法規(guī)和監(jiān)管試題及答案
- 四川涼山歷年中考語文現(xiàn)代文之散文閱讀7篇(截至2024年)
- 教學(xué)課件:《城市地理學(xué)》
- 幼兒園集中教育活動培訓(xùn)
- DB37-T 5307-2024 住宅小區(qū)供水設(shè)施建設(shè)標(biāo)準(zhǔn)
- 公司安全生產(chǎn)管理制度培訓(xùn)
- 燃?xì)夤艿兰霸O(shè)施保護(hù)專項方案
- DB31-T 1298-2021 既有多層住宅加裝電梯安全技術(shù)要求
- 在登高作業(yè)時要注意的安全事項
- 【MOOC】數(shù)學(xué)建模精講-西南交通大學(xué) 中國大學(xué)慕課MOOC答案
- 地下管廊電纜施工方案
評論
0/150
提交評論