已閱讀5頁(yè),還剩46頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)庫(kù)原理與應(yīng)用課程設(shè)計(jì)報(bào)告選題名稱: 學(xué)生信息管理系統(tǒng) 組 長(zhǎng): 李盟 指導(dǎo)教師: 湯嘉立 設(shè)計(jì)日期: 2016.06.132016.06.24 學(xué)號(hào)姓名小組評(píng)分教師評(píng)分2014144414李盟902014144415李玲902014144429徐蘭902014144431許媛媛901. 課程設(shè)計(jì)目的:數(shù)據(jù)庫(kù)是一門實(shí)踐性很強(qiáng)的課程,為了使學(xué)生加深對(duì)數(shù)據(jù)庫(kù)基本知識(shí)的理解,掌握數(shù)據(jù)庫(kù)設(shè)計(jì)和開發(fā)的基本方法,學(xué)生自選題目,要求學(xué)生完成一個(gè)完整的數(shù)據(jù)庫(kù)設(shè)計(jì)過程和基本的開發(fā)過程,從而培養(yǎng)學(xué)生在數(shù)據(jù)庫(kù)應(yīng)用領(lǐng)域中的分析問題和解決問題的能力。2. 課程設(shè)計(jì)內(nèi)容:(1)數(shù)據(jù)庫(kù)設(shè)計(jì)教師講解數(shù)據(jù)庫(kù)的設(shè)計(jì)方法以及PowerDesigner的使用,學(xué)生自選題目,要求學(xué)生根據(jù)題目的需求描述,進(jìn)行實(shí)際調(diào)研,提出完整的需求分析報(bào)告、用PowerDesigner建立概念模型、邏輯模型、物理模型。在物理模型中根據(jù)需要添加必要的約束、視圖、觸發(fā)器和存儲(chǔ)過程等數(shù)據(jù)庫(kù)對(duì)象,最后生成創(chuàng)建數(shù)據(jù)庫(kù)的腳本,提出物理設(shè)計(jì)的文檔。要求學(xué)生提交的報(bào)告包含:l 需求說明書l 概念數(shù)據(jù)模型(E-R數(shù)據(jù)模型)l 邏輯數(shù)據(jù)模型(含關(guān)系規(guī)范化)l 物理數(shù)據(jù)模型(含約束、視圖、觸發(fā)器、存儲(chǔ)過程、安全設(shè)計(jì)、恢復(fù)方案、事務(wù)設(shè)計(jì)等等)l 創(chuàng)建數(shù)據(jù)庫(kù)的腳本(數(shù)據(jù)庫(kù)對(duì)象的定義語言)l 物理設(shè)計(jì)的文檔(數(shù)據(jù)庫(kù)的實(shí)施規(guī)劃)(2)數(shù)據(jù)庫(kù)開發(fā)在數(shù)據(jù)庫(kù)設(shè)計(jì)的基礎(chǔ)上開發(fā)一個(gè)基本的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng),要求有基本的數(shù)據(jù)查詢功能和數(shù)據(jù)管理功能,并能將存儲(chǔ)過程、觸發(fā)器、事務(wù)控制等運(yùn)用其中。開發(fā)工具可以自己選擇。3. 課程設(shè)計(jì)要求:數(shù)據(jù)庫(kù)課程設(shè)計(jì)單獨(dú)設(shè)課,為2周獨(dú)立實(shí)踐環(huán)節(jié)(40學(xué)時(shí)),一般4人1組,指定1人為組長(zhǎng)(也可申請(qǐng)獨(dú)立完成),但每人要承擔(dān)獨(dú)立的工作、獨(dú)立完成課程設(shè)計(jì)報(bào)告。通過以上過程,鍛煉學(xué)生從實(shí)際應(yīng)用出發(fā),進(jìn)行需求分析,利用PD工具建立數(shù)據(jù)庫(kù)模型、完善數(shù)據(jù)庫(kù)模型,到最后的數(shù)據(jù)庫(kù)實(shí)施和應(yīng)用系統(tǒng)開發(fā)。希望通過這個(gè)過程可以鞏固所學(xué)知識(shí),提高學(xué)生的綜合分析問題和解決問題的能力。4. 實(shí)驗(yàn)條件:(1) 硬件條件:PC機(jī)。(2) 軟件條件:(Elipse、SQL Server2008、PowerDesigner)5. 實(shí)驗(yàn)方法與步驟:1、 需求分析(一)目標(biāo)學(xué)生信息管理系統(tǒng)的目標(biāo)是方便學(xué)校教務(wù)處系統(tǒng)的管理學(xué)生的信息,并為學(xué)校和學(xué)生間提供一個(gè)信息共享的平臺(tái)。隨著學(xué)校的普及和人們文化水平的提高,高效的教學(xué)管理系統(tǒng)越來越廣泛應(yīng)用于各類信息化學(xué)校。學(xué)生信息管理系統(tǒng)要求實(shí)用性強(qiáng)、使用方便、效率高和安全可靠等特點(diǎn)。用戶管理:用戶共分為管理員,教師和學(xué)生。學(xué)生和教師通過注冊(cè)建立賬戶,管理員由系統(tǒng)設(shè)定統(tǒng)一的用戶名和密碼。經(jīng)分析我們認(rèn)為學(xué)生學(xué)籍管理系統(tǒng)的具體要求為: 1.能全面管理學(xué)校教學(xué)相關(guān)的各類主體,如用戶管理員,學(xué)生用戶以及選修課程表 2.通過使用計(jì)算機(jī)能方便的維護(hù)(包括插入、刪除、修改)各信息表 3能方便的實(shí)現(xiàn)基于多個(gè)表的連接查詢 4系統(tǒng)具有操作方便、簡(jiǎn)捷等特點(diǎn)(二)需求陳述 學(xué)生對(duì)功能的需求分析: 查詢個(gè)人基本信息 查詢學(xué)生課程信息 查詢學(xué)生成績(jī)信息 管理員對(duì)功能的需求分析:添加、刪除、修改、查詢學(xué)生信息添加、刪除、修改、查詢課程信息修改、查詢用戶信息查詢選課信息修改、查詢成績(jī)信息2、 概念數(shù)據(jù)模型設(shè)計(jì)(A)局部E-R模型(B)整體E-R模型3、 邏輯模型設(shè)計(jì)(A)將概念數(shù)據(jù)模型轉(zhuǎn)化成邏輯數(shù)據(jù)模型(B)對(duì)模型進(jìn)行必要的完善和優(yōu)化4、 物理模型設(shè)計(jì)(A)將邏輯數(shù)據(jù)模型轉(zhuǎn)化成物理數(shù)據(jù)模型(B)對(duì)模型進(jìn)行必要的完善和優(yōu)化(C)根據(jù)需要設(shè)計(jì)視圖、存儲(chǔ)過程和觸發(fā)器等(D)描述安全管理方案、備份恢復(fù)策略、并發(fā)控制策略等5、 系統(tǒng)實(shí)現(xiàn)描述數(shù)據(jù)庫(kù)實(shí)施的方法和過程,詳細(xì)文檔以附件1形式提交。6. 個(gè)人工作報(bào)告除上一步驟要求的完整文檔外,每個(gè)人需陳述自己所承擔(dān)的工作、在討論中的個(gè)人見解,提供個(gè)人所承擔(dān)工作的有關(guān)文檔(可能是不完整的),并對(duì)個(gè)人的工作情況、收獲等進(jìn)行總結(jié)。(1) 承擔(dān)的工作及貢獻(xiàn)l 需求分析階段l 概念模型設(shè)計(jì)階段局部E-R模型: 整體E-R模型:l 邏輯模型設(shè)計(jì)階段Student(sno,sn,sa,ss,sd)Course(cno,cn,pcno)Sc(sno,cno,g)Unpw(un,pw,qx)l 物理模型設(shè)計(jì)階段s(學(xué)生信息表)字段名稱數(shù)據(jù)類型描述snochar (10)學(xué)號(hào),關(guān)鍵字snchar (20)姓名saint年齡sschar (10)性別sdchar (10)院系c(課程信息表)字段名稱數(shù)據(jù)類型描述cnochar (10)課程號(hào),關(guān)鍵字cnchar (30)課程名pcnochar (10)先行課程號(hào)sc(選課信息表)字段名稱數(shù)據(jù)類型描述snochar (10)學(xué)號(hào),關(guān)鍵字cnochar (10)課程號(hào),關(guān)鍵字gint成績(jī)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è)計(jì)個(gè)人總結(jié)徐蘭:兩個(gè)星期的時(shí)間非??炀瓦^去了,這半個(gè)月我不敢說自己有多大的進(jìn)步,但是獲得了不少的知識(shí),也了解了項(xiàng)目開發(fā)的部分過程。雖說上過數(shù)據(jù)庫(kù)相關(guān)的課程,有做過數(shù)據(jù)庫(kù)相關(guān)的實(shí)驗(yàn),但是沒有親身經(jīng)歷過相關(guān)的設(shè)計(jì)工作細(xì)節(jié)。這次課程設(shè)計(jì)給我提供了一個(gè)很好的機(jī)會(huì)。通過這次課程設(shè)計(jì)發(fā)現(xiàn)這其中需要的很多知識(shí)我們沒有接觸過,上網(wǎng)查找資料的時(shí)候發(fā)現(xiàn)我們以前學(xué)到的僅僅是皮毛,還有很多需要我們掌握的東西我們根本不知道。同時(shí)也發(fā)現(xiàn)有狠毒已經(jīng)學(xué)過的東西我們沒有理解到位,不能靈活運(yùn)用于實(shí)際,不能很好的用來解決問題,這就需要自己不斷的大量的時(shí)間,通過不斷的自學(xué),不斷地發(fā)現(xiàn)問題,思考問題,進(jìn)而解決問題。這次的課程設(shè)計(jì)也是為我們以后的畢業(yè)設(shè)計(jì)作品提前打好基礎(chǔ)。在這次的課程設(shè)計(jì)中,我負(fù)責(zé)的是創(chuàng)建數(shù)據(jù)庫(kù),這些就讓我用到了數(shù)據(jù)庫(kù)的很多知識(shí),對(duì)SQL語言,數(shù)據(jù)庫(kù)的創(chuàng)建、修改、刪除有了更深的了解,并且更加熟練的掌握了數(shù)據(jù)庫(kù)中的SQL語句。我想我做的是組里面最簡(jiǎn)單的工作,因?yàn)槲易龅氖怯谢A(chǔ)的,組長(zhǎng)做的JAVA前臺(tái)就比較的累了,她還要先去學(xué)習(xí)。在她做的時(shí)候我也學(xué)習(xí)了一下,為之后打個(gè)基礎(chǔ)。通過這次課程設(shè)計(jì)的完成,是我對(duì)自己所學(xué)知識(shí)進(jìn)一步的了解,同時(shí)通過實(shí)踐發(fā)現(xiàn)自己的不足,對(duì)知識(shí)的掌握及運(yùn)用存在諸多的不完善。所以在今后的學(xué)習(xí)中,我會(huì)繼續(xù)努力,完善自我,同學(xué)的幫助和學(xué)校的精心安排是這個(gè)課題能夠順利進(jìn)行。李玲:在本次課程設(shè)計(jì)中,我負(fù)責(zé)課程設(shè)計(jì)報(bào)告的整理與編寫,通過整理報(bào)告,我對(duì)于SQL,JAVA的編程方式以及他們之間的相互連接,基本運(yùn)用有了全方位的認(rèn)識(shí),我的分析能力,獨(dú)立思考能力都得到了一定程度的提高?;仡櫰鸫苏n程設(shè)計(jì),至今我仍感慨頗多,從理論到實(shí)踐,在這段日子里,可以學(xué)到很多很多的東西,同時(shí)不僅可以鞏固了以前所學(xué)過的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過的知識(shí)。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說得是困難重重,但可喜的是最終都得到了解決。實(shí)驗(yàn)過程中,也對(duì)團(tuán)隊(duì)精神的進(jìn)行了考察,讓我們?cè)诤献髌饋砀幽酰诔晒笠黄痼w會(huì)喜悅的心情。果然是團(tuán)結(jié)就是力量,只有互相之間默契融洽的配合才能換來最終完美的結(jié)果。讓我更加深切的體會(huì)到團(tuán)隊(duì)合作的重要性。許媛媛:這次的數(shù)據(jù)庫(kù)課程設(shè)計(jì),我主要是負(fù)責(zé)前期資料的收集,在設(shè)計(jì)期間及時(shí)提供相關(guān)的有利資料。兩個(gè)星期的時(shí)間非常快就過去了,這兩個(gè)星期不敢說自己有多大的進(jìn)步,獲得了多少知識(shí),但起碼是了解了系統(tǒng)開發(fā)的過程。兩周課程設(shè)計(jì)讓我對(duì)java語言等編程技術(shù)產(chǎn)生了濃厚的興趣,更重要的是增強(qiáng)了我學(xué)習(xí)的自信心。剛開始我們查找資料、了解有關(guān)的知識(shí),相互探討,了解學(xué)生信息管理系統(tǒng)的需求,做好需求分析后,開始系統(tǒng)的設(shè)計(jì),畫出E-R圖,寫出各個(gè)實(shí)體的屬性。在我搜集資料的過程中,發(fā)現(xiàn)這其中需要的很多知識(shí)是我們之前沒有接觸過的,去圖書館查資料的時(shí)候發(fā)現(xiàn)我們前邊所學(xué)到的僅僅是皮毛,還有很多需要我們掌握的東西我們根本不知道。同時(shí)也發(fā)現(xiàn)有很多已經(jīng)學(xué)過的東西我們沒有理解到位,不能靈活運(yùn)用于實(shí)際,不能很好的用來解決問題,這就需要我們不斷的大量的實(shí)踐,通過不斷的自學(xué),不斷地發(fā)現(xiàn)問題,思考問題,進(jìn)而解決問題。在這個(gè)過程中我們將深刻理解所學(xué)知識(shí),同時(shí)也可以學(xué)到不少很實(shí)用的東西。這次的系統(tǒng)設(shè)計(jì)不僅使我們學(xué)會(huì)了把數(shù)據(jù)庫(kù)的各個(gè)模塊聯(lián)系起來,并與java相連接,更讓我懂得了如何設(shè)計(jì)一個(gè)系統(tǒng),了解了系統(tǒng)設(shè)計(jì)的過程。李盟:在本次課程設(shè)計(jì)中,本組課程選題名稱為“學(xué)生信息管理系統(tǒng)”,由于我擔(dān)任的是組長(zhǎng),因此我不僅負(fù)責(zé)自己的部分,還負(fù)責(zé)課題布置與集中交流。我在本小組中的主要任務(wù)是java程序的編寫及修改。在課程設(shè)計(jì)初期,我們小組首先確定的課題題目,在細(xì)致地討論了系統(tǒng)的需求,列出了相應(yīng)的模塊,并進(jìn)行了結(jié)構(gòu)化設(shè)計(jì)。然后我再根據(jù)我們的初步研究結(jié)果,確定我的編程方向,開始我的任務(wù)。我通過借閱相關(guān)書籍,上網(wǎng)查閱資料等方式,完成了我的系統(tǒng)編程初稿。但在系統(tǒng)測(cè)試階段,出現(xiàn)了很多的問題和錯(cuò)誤。 比如數(shù)據(jù)庫(kù)文件的導(dǎo)入路徑出錯(cuò),導(dǎo)致數(shù)據(jù)庫(kù)連接錯(cuò)誤;通過老師的指導(dǎo),幸而解決了此問題。通過這次課程設(shè)計(jì),我不僅清楚地知道了自己在數(shù)據(jù)庫(kù)原理知識(shí)和編程語言方面的不足,還認(rèn)識(shí)到了在合作過程中,個(gè)人的力量總是不足的,需要大家一起協(xié)作。我們真切地體驗(yàn)了軟件項(xiàng)目管理技能和方法,熟悉了軟件工具與環(huán)境,把課堂學(xué)習(xí)的理論知識(shí)很好的在實(shí)踐中運(yùn)用了起來。我們小組成員之間合作默契,奮斗雖是艱苦的,但收獲是快樂的。我們相信,在大家的不懈努力之下目標(biāo)一定可以達(dá)成,我們也將在學(xué)習(xí)數(shù)據(jù)庫(kù)及其他網(wǎng)絡(luò)編程語言的道路上更加進(jìn)步。7. 總結(jié)(組長(zhǎng)完成):小組分工情況說明及工作量(工作量以百分比表示)李盟:前臺(tái)頁(yè)面設(shè)計(jì)31%李玲:報(bào)告整理23%徐蘭:后臺(tái)SQL建表23%許媛媛:收集資料23%小組工作總結(jié) 課程設(shè)計(jì)誠(chéng)然是一門專業(yè)課,給我們很多專業(yè)知識(shí)以及專業(yè)技能上的提升,同時(shí)又是一門講道課,一門辯思課,給了我們?cè)S多道,給了我們很多思,給了我們莫大的空間。同時(shí),設(shè)計(jì)讓我們感觸很深。使我們對(duì)抽象的理論有了具體的認(rèn)識(shí)。在經(jīng)歷了將近兩個(gè)星期的課程設(shè)計(jì)過程后,本系統(tǒng)基本能夠完成學(xué)生學(xué)籍信息和學(xué)生的成績(jī)的查詢、插入、刪除、修改等。這次的課程設(shè)計(jì)是分組討論和制作的。我們小組從了解課題、理解課題、查找資料、確定思路到設(shè)計(jì)實(shí)施,學(xué)生信息管理系統(tǒng)初步形成。我們能從中深刻的感受到自己又收獲了很多東西。 首先,更進(jìn)一步的了解了數(shù)據(jù)庫(kù)的基本操作, 在這之前,數(shù)據(jù)庫(kù)的學(xué) 習(xí)僅僅剛開了個(gè)頭,我們只是在了解一些概念性的東西。在做這個(gè)系統(tǒng)之前,連基本的連接數(shù)據(jù)庫(kù),配文件DSN,數(shù)據(jù)庫(kù)查詢語句等這些東西都不熟練。現(xiàn)在對(duì)于數(shù)據(jù)庫(kù)的增刪改查操作比較熟練了,對(duì)于初學(xué)者來說,比較頭疼的就是對(duì)于單引號(hào)的處理。我的建議是如果不理解先把按照課本上正確的語句敲,然后在多次進(jìn)行數(shù)據(jù)庫(kù)的鏈接,增刪改查操作中不斷總結(jié)規(guī)律。 這次設(shè)計(jì)的學(xué)生信息管理系統(tǒng),完全體現(xiàn)了自己在數(shù)據(jù)庫(kù)語言和程序設(shè)計(jì)課程學(xué)習(xí)狀況,充分地為自己以后更深入了數(shù)據(jù)庫(kù)語言奠下深厚的基礎(chǔ)。 縱觀此學(xué)生信息管理系統(tǒng)的整體概況,目前,自我認(rèn)為設(shè)計(jì)良好,相關(guān)功能都能夠?qū)崿F(xiàn),功能強(qiáng)大,條理清晰,界面可觀性比較好。并且特色在于,所設(shè)計(jì)的表單都在一個(gè)表單系統(tǒng)桌面中運(yùn)行,比較符合系統(tǒng)的觀念。 通過本次實(shí)踐,我們學(xué)習(xí)了許多數(shù)據(jù)庫(kù)的知識(shí)以及它與JAVA的連接,而且學(xué)到了書本上學(xué)不到的東西,積累了一點(diǎn)經(jīng)驗(yàn)和教訓(xùn),有了些體會(huì)。1、必須詳細(xì)準(zhǔn)確的做好需求分析。 2、軟件工程原理和方法是軟件開發(fā)得以順利進(jìn)行的保障,一定要遵守,否則既費(fèi)時(shí)又費(fèi)力。 3、通過本次課程設(shè)計(jì),端正了我們的學(xué)習(xí)態(tài)度,提高了實(shí)踐能力。使我認(rèn)識(shí)到應(yīng)該以嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度勇于去實(shí)踐和探索。 這次課程設(shè)計(jì)既是一個(gè)學(xué)習(xí)的過程,也是一個(gè)實(shí)踐的過程,它使我們獲得了一些開發(fā)大型數(shù)據(jù)庫(kù)系統(tǒng)的經(jīng)驗(yàn)。還有就是由于我們對(duì)數(shù)據(jù)庫(kù)知識(shí)的掌握有限和不牢固,角色和視圖的創(chuàng)建沒有想象中的完美,備份和還原也只是初步的形成,以致學(xué)生學(xué)籍管理系統(tǒng)只是達(dá)到了基本要求,有待進(jìn)一步改善,希望老師給予批評(píng)。小組自評(píng)學(xué)號(hào): 2014144414 姓名: 李萌 成績(jī):90學(xué)號(hào): 2014144415 姓名: 李玲 成績(jī):90學(xué)號(hào): 2014144429 姓名: 徐蘭 成績(jī):90學(xué)號(hào): 2014144431 姓名: 許媛媛 成績(jī):90源程序、代碼、具體語句等,若表格空間不足時(shí)可作為附錄另外附頁(yè)。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ù)庫(kù)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, 密碼錯(cuò)誤!);txtPwd.setText();success = true;if (!success) JOptionPane.showMessageDialog(null, 登錄名錯(cuò)誤!);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(成績(jī)信息管理);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() = 成績(jī)信息管理) new GM(成績(jī)信息管理).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é)號(hào), 姓名, 年齡, 性別, 院系 ;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() / 刪除某個(gè)學(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) / 判斷要?jiǎng)h除的信息是否被選中JOptionPane.showMessageDialog(null, 請(qǐng)選擇要?jiǎng)h除的記錄!); else if (!bstd) / 判斷選擇的是不是查詢后的結(jié)果int j1 = 0;try rs = stmt.executeQuery(select * from s);while (rs.next() & j1 = row) / 找出當(dāng)前被選中的記錄在數(shù)據(jù)庫(kù)中的對(duì)應(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ù)庫(kù)中當(dāng)前被選中的記錄stmt.executeUpdate(delete from unpw where un= + xh + );/ 刪除對(duì)應(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() / 修改某個(gè)學(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, 請(qǐng)選擇要修改的記錄!); 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ù)庫(kù)中的對(duì)應(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() / 顯示某個(gè)查詢的結(jié)果mxh = sst.xh;playerInfo = new Object15;String columnNames = 學(xué)號(hào), 姓名, 年齡, 性別, 院系 ;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é)號(hào)不存在!);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(男, 計(jì)科系);this.dispose();if (e.getActionCommand() = 刪除) this.delete();if (e.getActionCommand() = 修改) this.update();if (e.getActionCommand() = 查詢) sst = new SSelect(學(xué)號(hào):);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é)號(hào):);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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度國(guó)際藝術(shù)品交易合同標(biāo)準(zhǔn)版
- 2025年度室外燈具生產(chǎn)加工及供應(yīng)鏈管理合同
- 二零二四年水路貨物運(yùn)輸合同貨物損失賠償標(biāo)準(zhǔn)細(xì)則3篇
- 2025年新型建筑刮膩?zhàn)邮┕す?jié)能評(píng)估合同
- 2025年度生物質(zhì)能發(fā)電項(xiàng)目施工合同
- 2025年度生物制藥研發(fā)合作終止合同
- 2025年度供應(yīng)鏈管理保密合同
- 二零二四年食堂食堂節(jié)能改造與碳排放交易服務(wù)合同3篇
- 2025年度智慧城市固定資產(chǎn)借款合同
- 2025年度股票質(zhì)押反擔(dān)保合同違約責(zé)任及糾紛解決機(jī)制
- 2023年四川省公務(wù)員錄用考試《行測(cè)》真題卷及答案解析
- 2025年高考物理復(fù)習(xí)壓軸題:電磁感應(yīng)綜合問題(原卷版)
- 雨棚鋼結(jié)構(gòu)施工組織設(shè)計(jì)正式版
- 2024尼爾森IQ中國(guó)本土快消企業(yè)調(diào)研報(bào)告
- 2024年印度辣椒行業(yè)狀況及未來發(fā)展趨勢(shì)報(bào)告
- 鑄鋁焊接工藝
- 《社區(qū)康復(fù)》課件-第六章 骨關(guān)節(jié)疾病、損傷患者的社區(qū)康復(fù)實(shí)踐
- 2024年湖南省公務(wù)員考試行政職業(yè)能力測(cè)驗(yàn)真題
- 攀巖運(yùn)動(dòng)之繩結(jié)技巧課程
- 防打架毆斗安全教育課件
- 采購(gòu)行業(yè)的swot分析
評(píng)論
0/150
提交評(píng)論