學(xué)生信息管理系統(tǒng)數(shù)據(jù)庫(kù)java_第1頁(yè)
學(xué)生信息管理系統(tǒng)數(shù)據(jù)庫(kù)java_第2頁(yè)
學(xué)生信息管理系統(tǒng)數(shù)據(jù)庫(kù)java_第3頁(yè)
學(xué)生信息管理系統(tǒng)數(shù)據(jù)庫(kù)java_第4頁(yè)
學(xué)生信息管理系統(tǒng)數(shù)據(jù)庫(kù)java_第5頁(yè)
已閱讀5頁(yè),還剩46頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 數(shù)據(jù)庫(kù)原理與應(yīng)用課程設(shè)計(jì)報(bào)告選題名稱(chēng): 學(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ù)是一門(mén)實(shí)踐性很強(qiáng)的課程,為了使學(xué)生加深對(duì)數(shù)據(jù)庫(kù)基本知識(shí)的理解,掌握數(shù)據(jù)庫(kù)設(shè)計(jì)和開(kāi)發(fā)的基本方法,學(xué)生自選題目,要求學(xué)生完成一個(gè)完整的數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程和基本的開(kāi)發(fā)過(guò)程,從而培養(yǎng)學(xué)生在數(shù)據(jù)庫(kù)應(yīng)用領(lǐng)域中的分析問(wèn)題和解決問(wèn)題的能力。2. 課程設(shè)計(jì)內(nèi)容:(1)數(shù)據(jù)庫(kù)設(shè)計(jì)教師講解數(shù)據(jù)庫(kù)的設(shè)計(jì)

2、方法以及PowerDesigner的使用,學(xué)生自選題目,要求學(xué)生根據(jù)題目的需求描述,進(jìn)行實(shí)際調(diào)研,提出完整的需求分析報(bào)告、用PowerDesigner建立概念模型、邏輯模型、物理模型。在物理模型中根據(jù)需要添加必要的約束、視圖、觸發(fā)器和存儲(chǔ)過(guò)程等數(shù)據(jù)庫(kù)對(duì)象,最后生成創(chuàng)建數(shù)據(jù)庫(kù)的腳本,提出物理設(shè)計(jì)的文檔。要求學(xué)生提交的報(bào)告包含:l 需求說(shuō)明書(shū)l 概念數(shù)據(jù)模型(E-R數(shù)據(jù)模型)l 邏輯數(shù)據(jù)模型(含關(guān)系規(guī)范化)l 物理數(shù)據(jù)模型(含約束、視圖、觸發(fā)器、存儲(chǔ)過(guò)程、安全設(shè)計(jì)、恢復(fù)方案、事務(wù)設(shè)計(jì)等等)l 創(chuàng)建數(shù)據(jù)庫(kù)的腳本(數(shù)據(jù)庫(kù)對(duì)象的定義語(yǔ)言)l 物理設(shè)計(jì)的文檔(數(shù)據(jù)庫(kù)的實(shí)施規(guī)劃)(2)數(shù)據(jù)庫(kù)開(kāi)發(fā)在數(shù)據(jù)庫(kù)設(shè)計(jì)

3、的基礎(chǔ)上開(kāi)發(fā)一個(gè)基本的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng),要求有基本的數(shù)據(jù)查詢功能和數(shù)據(jù)管理功能,并能將存儲(chǔ)過(guò)程、觸發(fā)器、事務(wù)控制等運(yùn)用其中。開(kāi)發(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)告。通過(guò)以上過(guò)程,鍛煉學(xué)生從實(shí)際應(yīng)用出發(fā),進(jìn)行需求分析,利用PD工具建立數(shù)據(jù)庫(kù)模型、完善數(shù)據(jù)庫(kù)模型,到最后的數(shù)據(jù)庫(kù)實(shí)施和應(yīng)用系統(tǒng)開(kāi)發(fā)。希望通過(guò)這個(gè)過(guò)程可以鞏固所學(xué)知識(shí),提高學(xué)生的綜合分析問(wèn)題和解決問(wèn)題的能力。4. 實(shí)驗(yàn)條件:(1) 硬件條件:PC機(jī)。(2) 軟件條件:(Elipse、SQ

4、L 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)越來(lái)越廣泛應(yīng)用于各類(lèi)信息化學(xué)校。學(xué)生信息管理系統(tǒng)要求實(shí)用性強(qiáng)、使用方便、效率高和安全可靠等特點(diǎn)。用戶管理:用戶共分為管理員,教師和學(xué)生。學(xué)生和教師通過(guò)注冊(cè)建立賬戶,管理員由系統(tǒng)設(shè)定統(tǒng)一的用戶名和密碼。經(jīng)分析我們認(rèn)為學(xué)生學(xué)籍管理系統(tǒng)的具體要求為: 1.能全面管理學(xué)校教學(xué)相關(guān)的各類(lèi)主體,如用戶管理員,學(xué)生用戶以及選修課程表 2.通過(guò)使用計(jì)算機(jī)能方便

5、的維護(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ù)模型(

6、B)對(duì)模型進(jìn)行必要的完善和優(yōu)化(C)根據(jù)需要設(shè)計(jì)視圖、存儲(chǔ)過(guò)程和觸發(fā)器等(D)描述安全管理方案、備份恢復(fù)策略、并發(fā)控制策略等5、 系統(tǒng)實(shí)現(xiàn)描述數(shù)據(jù)庫(kù)實(shí)施的方法和過(guò)程,詳細(xì)文檔以附件1形式提交。6. 個(gè)人工作報(bào)告除上一步驟要求的完整文檔外,每個(gè)人需陳述自己所承擔(dān)的工作、在討論中的個(gè)人見(jiàn)解,提供個(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)U

7、npw(un,pw,qx)l 物理模型設(shè)計(jì)階段s(學(xué)生信息表)字段名稱(chēng)數(shù)據(jù)類(lèi)型描述snochar (10)學(xué)號(hào),關(guān)鍵字snchar (20)姓名saint年齡sschar (10)性別sdchar (10)院系c(課程信息表)字段名稱(chēng)數(shù)據(jù)類(lèi)型描述cnochar (10)課程號(hào),關(guān)鍵字cnchar (30)課程名pcnochar (10)先行課程號(hào)sc(選課信息表)字段名稱(chēng)數(shù)據(jù)類(lèi)型描述snochar (10)學(xué)號(hào),關(guān)鍵字cnochar (10)課程號(hào),關(guān)鍵字gint成績(jī)unpw(用戶信息表)字段名稱(chēng)數(shù)據(jù)類(lèi)型描述unchar (10)用戶名,關(guān)鍵字pwchar (10)密碼qxint角色1.視圖:

8、2. s(學(xué)生信息表)3. c(課程信息表) 4. sc(選課信息表) 5. unpw(用戶信息表) l 實(shí)施和實(shí)現(xiàn)階段詳細(xì)見(jiàn)附件1。(2) 課程設(shè)計(jì)個(gè)人總結(jié)徐蘭:兩個(gè)星期的時(shí)間非??炀瓦^(guò)去了,這半個(gè)月我不敢說(shuō)自己有多大的進(jìn)步,但是獲得了不少的知識(shí),也了解了項(xiàng)目開(kāi)發(fā)的部分過(guò)程。雖說(shuō)上過(guò)數(shù)據(jù)庫(kù)相關(guān)的課程,有做過(guò)數(shù)據(jù)庫(kù)相關(guān)的實(shí)驗(yàn),但是沒(méi)有親身經(jīng)歷過(guò)相關(guān)的設(shè)計(jì)工作細(xì)節(jié)。這次課程設(shè)計(jì)給我提供了一個(gè)很好的機(jī)會(huì)。通過(guò)這次課程設(shè)計(jì)發(fā)現(xiàn)這其中需要的很多知識(shí)我們沒(méi)有接觸過(guò),上網(wǎng)查找資料的時(shí)候發(fā)現(xiàn)我們以前學(xué)到的僅僅是皮毛,還有很多需要我們掌握的東西我們根本不知道。同時(shí)也發(fā)現(xiàn)有狠毒已經(jīng)學(xué)過(guò)的東西我們沒(méi)有理解到位,不

9、能靈活運(yùn)用于實(shí)際,不能很好的用來(lái)解決問(wèn)題,這就需要自己不斷的大量的時(shí)間,通過(guò)不斷的自學(xué),不斷地發(fā)現(xiàn)問(wèn)題,思考問(wèn)題,進(jìn)而解決問(wèn)題。這次的課程設(shè)計(jì)也是為我們以后的畢業(yè)設(shè)計(jì)作品提前打好基礎(chǔ)。在這次的課程設(shè)計(jì)中,我負(fù)責(zé)的是創(chuàng)建數(shù)據(jù)庫(kù),這些就讓我用到了數(shù)據(jù)庫(kù)的很多知識(shí),對(duì)SQL語(yǔ)言,數(shù)據(jù)庫(kù)的創(chuàng)建、修改、刪除有了更深的了解,并且更加熟練的掌握了數(shù)據(jù)庫(kù)中的SQL語(yǔ)句。我想我做的是組里面最簡(jiǎn)單的工作,因?yàn)槲易龅氖怯谢A(chǔ)的,組長(zhǎng)做的JAVA前臺(tái)就比較的累了,她還要先去學(xué)習(xí)。在她做的時(shí)候我也學(xué)習(xí)了一下,為之后打個(gè)基礎(chǔ)。通過(guò)這次課程設(shè)計(jì)的完成,是我對(duì)自己所學(xué)知識(shí)進(jìn)一步的了解,同時(shí)通過(guò)實(shí)踐發(fā)現(xiàn)自己的不足,對(duì)知識(shí)的掌握

10、及運(yùn)用存在諸多的不完善。所以在今后的學(xué)習(xí)中,我會(huì)繼續(xù)努力,完善自我,同學(xué)的幫助和學(xué)校的精心安排是這個(gè)課題能夠順利進(jìn)行。李玲:在本次課程設(shè)計(jì)中,我負(fù)責(zé)課程設(shè)計(jì)報(bào)告的整理與編寫(xiě),通過(guò)整理報(bào)告,我對(duì)于SQL,JAVA的編程方式以及他們之間的相互連接,基本運(yùn)用有了全方位的認(rèn)識(shí),我的分析能力,獨(dú)立思考能力都得到了一定程度的提高?;仡櫰鸫苏n程設(shè)計(jì),至今我仍感慨頗多,從理論到實(shí)踐,在這段日子里,可以學(xué)到很多很多的東西,同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書(shū)本上所沒(méi)有學(xué)到過(guò)的知識(shí)。通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起

11、來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題,可以說(shuō)得是困難重重,但可喜的是最終都得到了解決。實(shí)驗(yàn)過(guò)程中,也對(duì)團(tuán)隊(duì)精神的進(jìn)行了考察,讓我們?cè)诤献髌饋?lái)更加默契,在成功后一起體會(huì)喜悅的心情。果然是團(tuán)結(jié)就是力量,只有互相之間默契融洽的配合才能換來(lái)最終完美的結(jié)果。讓我更加深切的體會(huì)到團(tuán)隊(duì)合作的重要性。許媛媛:這次的數(shù)據(jù)庫(kù)課程設(shè)計(jì),我主要是負(fù)責(zé)前期資料的收集,在設(shè)計(jì)期間及時(shí)提供相關(guān)的有利資料。兩個(gè)星期的時(shí)間非??炀瓦^(guò)去了,這兩個(gè)星期不敢說(shuō)自己有多大的進(jìn)步,獲得了多少知識(shí),但起碼是了解了系統(tǒng)開(kāi)發(fā)的過(guò)程。兩周課程設(shè)計(jì)讓我對(duì)java語(yǔ)言等編程技術(shù)

12、產(chǎn)生了濃厚的興趣,更重要的是增強(qiáng)了我學(xué)習(xí)的自信心。剛開(kāi)始我們查找資料、了解有關(guān)的知識(shí),相互探討,了解學(xué)生信息管理系統(tǒng)的需求,做好需求分析后,開(kāi)始系統(tǒng)的設(shè)計(jì),畫(huà)出E-R圖,寫(xiě)出各個(gè)實(shí)體的屬性。在我搜集資料的過(guò)程中,發(fā)現(xiàn)這其中需要的很多知識(shí)是我們之前沒(méi)有接觸過(guò)的,去圖書(shū)館查資料的時(shí)候發(fā)現(xiàn)我們前邊所學(xué)到的僅僅是皮毛,還有很多需要我們掌握的東西我們根本不知道。同時(shí)也發(fā)現(xiàn)有很多已經(jīng)學(xué)過(guò)的東西我們沒(méi)有理解到位,不能靈活運(yùn)用于實(shí)際,不能很好的用來(lái)解決問(wèn)題,這就需要我們不斷的大量的實(shí)踐,通過(guò)不斷的自學(xué),不斷地發(fā)現(xiàn)問(wèn)題,思考問(wèn)題,進(jìn)而解決問(wèn)題。在這個(gè)過(guò)程中我們將深刻理解所學(xué)知識(shí),同時(shí)也可以學(xué)到不少很實(shí)用的東西。

13、這次的系統(tǒng)設(shè)計(jì)不僅使我們學(xué)會(huì)了把數(shù)據(jù)庫(kù)的各個(gè)模塊聯(lián)系起來(lái),并與java相連接,更讓我懂得了如何設(shè)計(jì)一個(gè)系統(tǒng),了解了系統(tǒng)設(shè)計(jì)的過(guò)程。李盟:在本次課程設(shè)計(jì)中,本組課程選題名稱(chēng)為“學(xué)生信息管理系統(tǒng)”,由于我擔(dān)任的是組長(zhǎng),因此我不僅負(fù)責(zé)自己的部分,還負(fù)責(zé)課題布置與集中交流。我在本小組中的主要任務(wù)是java程序的編寫(xiě)及修改。在課程設(shè)計(jì)初期,我們小組首先確定的課題題目,在細(xì)致地討論了系統(tǒng)的需求,列出了相應(yīng)的模塊,并進(jìn)行了結(jié)構(gòu)化設(shè)計(jì)。然后我再根據(jù)我們的初步研究結(jié)果,確定我的編程方向,開(kāi)始我的任務(wù)。我通過(guò)借閱相關(guān)書(shū)籍,上網(wǎng)查閱資料等方式,完成了我的系統(tǒng)編程初稿。但在系統(tǒng)測(cè)試階段,出現(xiàn)了很多的問(wèn)題和錯(cuò)誤。 比如

14、數(shù)據(jù)庫(kù)文件的導(dǎo)入路徑出錯(cuò),導(dǎo)致數(shù)據(jù)庫(kù)連接錯(cuò)誤;通過(guò)老師的指導(dǎo),幸而解決了此問(wèn)題。通過(guò)這次課程設(shè)計(jì),我不僅清楚地知道了自己在數(shù)據(jù)庫(kù)原理知識(shí)和編程語(yǔ)言方面的不足,還認(rèn)識(shí)到了在合作過(guò)程中,個(gè)人的力量總是不足的,需要大家一起協(xié)作。我們真切地體驗(yàn)了軟件項(xiàng)目管理技能和方法,熟悉了軟件工具與環(huán)境,把課堂學(xué)習(xí)的理論知識(shí)很好的在實(shí)踐中運(yùn)用了起來(lái)。我們小組成員之間合作默契,奮斗雖是艱苦的,但收獲是快樂(lè)的。我們相信,在大家的不懈努力之下目標(biāo)一定可以達(dá)成,我們也將在學(xué)習(xí)數(shù)據(jù)庫(kù)及其他網(wǎng)絡(luò)編程語(yǔ)言的道路上更加進(jìn)步。7. 總結(jié)(組長(zhǎng)完成):小組分工情況說(shuō)明及工作量(工作量以百分比表示)李盟:前臺(tái)頁(yè)面設(shè)計(jì)31%李玲:報(bào)告整理

15、23%徐蘭:后臺(tái)SQL建表23%許媛媛:收集資料23%小組工作總結(jié) 課程設(shè)計(jì)誠(chéng)然是一門(mén)專(zhuān)業(yè)課,給我們很多專(zhuān)業(yè)知識(shí)以及專(zhuān)業(yè)技能上的提升,同時(shí)又是一門(mén)講道課,一門(mén)辯思課,給了我們?cè)S多道,給了我們很多思,給了我們莫大的空間。同時(shí),設(shè)計(jì)讓我們感觸很深。使我們對(duì)抽象的理論有了具體的認(rèn)識(shí)。在經(jīng)歷了將近兩個(gè)星期的課程設(shè)計(jì)過(guò)程后,本系統(tǒng)基本能夠完成學(xué)生學(xué)籍信息和學(xué)生的成績(jī)的查詢、插入、刪除、修改等。這次的課程設(shè)計(jì)是分組討論和制作的。我們小組從了解課題、理解課題、查找資料、確定思路到設(shè)計(jì)實(shí)施,學(xué)生信息管理系統(tǒng)初步形成。我們能從中深刻的感受到自己又收獲了很多東西。 首先,更進(jìn)一步的了解了數(shù)據(jù)庫(kù)的基本操作, 在這之

16、前,數(shù)據(jù)庫(kù)的學(xué) 習(xí)僅僅剛開(kāi)了個(gè)頭,我們只是在了解一些概念性的東西。在做這個(gè)系統(tǒng)之前,連基本的連接數(shù)據(jù)庫(kù),配文件DSN,數(shù)據(jù)庫(kù)查詢語(yǔ)句等這些東西都不熟練?,F(xiàn)在對(duì)于數(shù)據(jù)庫(kù)的增刪改查操作比較熟練了,對(duì)于初學(xué)者來(lái)說(shuō),比較頭疼的就是對(duì)于單引號(hào)的處理。我的建議是如果不理解先把按照課本上正確的語(yǔ)句敲,然后在多次進(jìn)行數(shù)據(jù)庫(kù)的鏈接,增刪改查操作中不斷總結(jié)規(guī)律。 這次設(shè)計(jì)的學(xué)生信息管理系統(tǒng),完全體現(xiàn)了自己在數(shù)據(jù)庫(kù)語(yǔ)言和程序設(shè)計(jì)課程學(xué)習(xí)狀況,充分地為自己以后更深入了數(shù)據(jù)庫(kù)語(yǔ)言奠下深厚的基礎(chǔ)。 縱觀此學(xué)生信息管理系統(tǒng)的整體概況,目前,自我認(rèn)為設(shè)計(jì)良好,相關(guān)功能都能夠?qū)崿F(xiàn),功能強(qiáng)大,條理清晰,界面可觀性比較好。并且特色

17、在于,所設(shè)計(jì)的表單都在一個(gè)表單系統(tǒng)桌面中運(yùn)行,比較符合系統(tǒng)的觀念。 通過(guò)本次實(shí)踐,我們學(xué)習(xí)了許多數(shù)據(jù)庫(kù)的知識(shí)以及它與JAVA的連接,而且學(xué)到了書(shū)本上學(xué)不到的東西,積累了一點(diǎn)經(jīng)驗(yàn)和教訓(xùn),有了些體會(huì)。1、必須詳細(xì)準(zhǔn)確的做好需求分析。 2、軟件工程原理和方法是軟件開(kāi)發(fā)得以順利進(jìn)行的保障,一定要遵守,否則既費(fèi)時(shí)又費(fèi)力。 3、通過(guò)本次課程設(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í)的過(guò)程,也是一個(gè)實(shí)踐的過(guò)程,它使我們獲得了一些開(kāi)發(fā)大型數(shù)據(jù)庫(kù)系統(tǒng)的經(jīng)驗(yàn)。還有就是由于我們對(duì)數(shù)據(jù)庫(kù)知識(shí)的掌握有限和不牢固,角色和視圖的創(chuàng)建沒(méi)有想象中的完美

18、,備份和還原也只是初步的形成,以致學(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源程序、代碼、具體語(yǔ)句等,若表格空間不足時(shí)可作為附錄另外附頁(yè)。50附件1 系統(tǒng)實(shí)施1、 登錄界面圖片: 代碼:package li;import javax.swing.*;import java.awt.*;import java.awt.event.*;import

19、 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 JPas

20、swordField(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;i

21、nt 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&q

22、uot;);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);t

23、his.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(&

24、quot;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)

25、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 actionP

26、erformed(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, "登錄名和密碼不能為空!&q

27、uot;); 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(fa

28、lse);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.setTex

29、t("");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=n

30、ew 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("課

31、程信息管理");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)");setSiz

32、e(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(

33、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("課程信息管理&qu

34、ot;).display();if (e.getActionCommand() = "選課信息管理") new SCM("選課信息管理").display();if (e.getActionCommand() = "成績(jī)信息管理") new GM("成績(jī)信息管理").display();if (e.getActionCommand() = "用戶信息管理") new PM("用戶信息管理").display();if (e.getActionCommand() = "

35、;退出管理系統(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(&qu

36、ot;查詢");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(&

37、quot;學(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);m

38、b.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

39、);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.getS

40、tring("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)", "姓名", "年齡&q

41、uot;, "性別", "院系" ;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");pl

42、ayerInfoj4 = 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

43、;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)前被選

44、中的記錄在數(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 sn

45、o='"+ 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

46、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 (SQLExceptio

47、n 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) / 判斷選擇的是不是查詢后

48、的結(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(

49、"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(fals

50、e);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.ne

51、xt() 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.dis

52、pose();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(&

53、quot;男", "計(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

54、.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 tsname = new JTextField(14);JComboBox cbssex = new JComboBox();JTextField tsage = new JTextField(14);JComboBox cbsdept = new JComboBox();JButton btnOK = new JBu

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論