SQL學(xué)生管理(整理)_第1頁(yè)
SQL學(xué)生管理(整理)_第2頁(yè)
SQL學(xué)生管理(整理)_第3頁(yè)
SQL學(xué)生管理(整理)_第4頁(yè)
SQL學(xué)生管理(整理)_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

《數(shù)據(jù)庫(kù)系統(tǒng)原理》課程設(shè)計(jì)報(bào)告說(shuō)明書學(xué)生信息管理系統(tǒng)學(xué)生姓名學(xué) 號(hào)所在專業(yè)所在班級(jí)指導(dǎo)教師提交時(shí)間評(píng)閱情況成 績(jī)目 錄讀書筆記錯(cuò)誤!未定義書簽。學(xué)生信息管理系統(tǒng)概述21.1 研究背景21.2開(kāi)發(fā)意義2系統(tǒng)需求分析22.1開(kāi)發(fā)環(huán)境和軟件22.2系統(tǒng)設(shè)計(jì)與功能分析23數(shù)據(jù)庫(kù)設(shè)計(jì)33.1系統(tǒng)概念結(jié)構(gòu)設(shè)計(jì)33.2系統(tǒng)邏輯結(jié)構(gòu)設(shè)計(jì)43.3數(shù)據(jù)庫(kù)實(shí)現(xiàn)53.3.1數(shù)據(jù)庫(kù)關(guān)系圖53.3.2SQL語(yǔ)句實(shí)現(xiàn)5系統(tǒng)模塊詳細(xì)設(shè)計(jì)74.1用戶登錄模塊74.2 各用戶操作模塊74.2.1 管理員操作模塊74.2.2 教師操作模塊74.2.3 學(xué)生操作模塊7系統(tǒng)運(yùn)行與測(cè)試75.1管理員登錄75.2教師登錄85.3學(xué)生登錄96.課程設(shè)計(jì)總結(jié)97.附錄(代碼)10.讀書筆記關(guān)于網(wǎng)上花店管理系統(tǒng)的讀書筆記 :在網(wǎng)上購(gòu)物逐步平民化的今天,網(wǎng)上購(gòu)物人數(shù)不斷增加,現(xiàn)代 IT技術(shù)和互聯(lián)網(wǎng)的結(jié)合。給了市場(chǎng)創(chuàng)造了無(wú)限商機(jī)!我閱讀了一片“網(wǎng)上花店管理系統(tǒng)”的論文。該論文主要研究網(wǎng)上花店管理系統(tǒng)。該系統(tǒng)以 MySQL作為后臺(tái)數(shù)據(jù)庫(kù),JSP作為前臺(tái)開(kāi)發(fā)工具,通過(guò) Java中的 JDBC連接數(shù)據(jù)庫(kù)。提供給用戶網(wǎng)上瀏覽,購(gòu)買,支付等功能,同時(shí).管理員對(duì)可以該系統(tǒng)進(jìn)行維護(hù)和管理!SQLServer安全可靠,性能好,易用性強(qiáng), JSP的Web運(yùn)用跨平臺(tái),系統(tǒng)底層采用 Java開(kāi)發(fā)。Java語(yǔ)言簡(jiǎn)單,面向?qū)ο螅踩愿叩奶攸c(diǎn),運(yùn)用 Serlvet模式和Tomcat服務(wù)器。這幾點(diǎn)的綜合搭配使得該系統(tǒng)靈活方便易用,簡(jiǎn)化了動(dòng)態(tài)網(wǎng)站的開(kāi)發(fā)。網(wǎng)上花店管理系統(tǒng)實(shí)現(xiàn)了用戶注冊(cè),網(wǎng)上訂購(gòu)支付,留言,購(gòu)物車,鮮花資料管理和用戶管理,訂單管理等功能。 SQl數(shù)據(jù)庫(kù)實(shí)現(xiàn)了用戶注冊(cè)登記信息的存儲(chǔ),和網(wǎng)站資料維護(hù),更新等使得數(shù)據(jù)的管理更加便利,高效JSP則為用戶提高動(dòng)態(tài)圖形界面,簡(jiǎn)化了操作,提高了易用性。論文還詳細(xì)介紹了系統(tǒng)的邏輯結(jié)構(gòu)設(shè)計(jì),邏輯圖,總功能設(shè)計(jì),和數(shù)據(jù)庫(kù)設(shè)計(jì)等。該系統(tǒng)即使是不懂web技術(shù)的人也可以熟悉運(yùn)用。開(kāi)發(fā)工具和數(shù)據(jù)庫(kù)的工具有很多,各有各的優(yōu)勢(shì)。在互聯(lián)網(wǎng)大行其道的時(shí)代,電腦技術(shù)順應(yīng)著時(shí)代的發(fā)展,只有我們把握運(yùn)用好各類技術(shù),相互結(jié)合與利用,才能制作出更好的軟件和程序。1學(xué)生信息管理系統(tǒng)信管1081班,200811622124,吳曉陽(yáng)指導(dǎo)教師:鄭贊紅學(xué)生信息管理系統(tǒng)概述1.1 研究背景學(xué)生信息管理系統(tǒng)是學(xué)校管理的重要工具,是學(xué)校不可或缺的部分。 隨著在校大學(xué)生人數(shù)的不斷增加,教務(wù)系統(tǒng)的數(shù)量也不斷的上漲,。學(xué)校工作繁雜、資料眾多,人工管理信息的難度也越來(lái)越大,顯然是不能滿足實(shí)際的需要,效率也是很低的。并且這種傳統(tǒng)的方式存在著很多的弊端,如:保密性差、查詢不便、效率低,很難維護(hù)和更新等。然而,本系統(tǒng)針對(duì)以上缺點(diǎn)能夠極大地提高學(xué)生信息管理的效率 ,也是科學(xué)化、正規(guī)化的管理,與世界接軌的重要條件。所以如何自動(dòng)高效地管理信息是這些年來(lái)許多人所研究的。1.2開(kāi)發(fā)意義隨著這些年電腦計(jì)算機(jī)的速度質(zhì)的提高,成本的下降, IT 互聯(lián)網(wǎng)大眾趨勢(shì)的發(fā)展。我們使用電腦的高效率才處理數(shù)據(jù)信息成為可能。 學(xué)生學(xué)籍管理系統(tǒng)的出現(xiàn),正是管理人員與信息數(shù)據(jù),計(jì)算機(jī)的進(jìn)入互動(dòng)時(shí)代的體現(xiàn)。友好的人機(jī)交互模式,清晰簡(jiǎn)明的圖形界面,高效安全的操作使得我們對(duì)成千上萬(wàn)的信息的管理得心應(yīng)手。通過(guò)這個(gè)系統(tǒng),可以做到信息的規(guī)范管理,科學(xué)統(tǒng)計(jì)和快速的查詢,從而減少管理方面的工作量?毋庸置疑,切實(shí)有效地把計(jì)算機(jī)管理引入學(xué)校教務(wù)管理中,對(duì)于促進(jìn)學(xué)校管理制度,提高學(xué)校教案質(zhì)量與辦學(xué)水平有著顯著意義?系統(tǒng)需求分析2.1 開(kāi)發(fā)環(huán)境和軟件(1)操作系統(tǒng):Windows7(2)數(shù)據(jù)庫(kù)軟件:SQLServer2005(3)Java開(kāi)發(fā)工具:Eclipse2.2 系統(tǒng)設(shè)計(jì)與功能分析學(xué)生信息管理系統(tǒng),可用于學(xué)校等機(jī)構(gòu)的學(xué)生信息管理,查詢,更新與維護(hù),使用方便,易用性強(qiáng),圖形界面清晰明了。該軟件用java語(yǔ)言編寫,用SQLServer2005數(shù)據(jù)庫(kù)作為后臺(tái)的數(shù)據(jù)庫(kù)進(jìn)行信息的存儲(chǔ),用SQL語(yǔ)句完成學(xué)生學(xué)籍信息的添加,查詢,修改,刪除的操作以及成績(jī)的錄入,修改,刪除等。用ODBC驅(qū)動(dòng)實(shí)現(xiàn)前臺(tái)Java與后臺(tái)SQL數(shù)據(jù)庫(kù)的連接。Java語(yǔ)言跨平臺(tái)性強(qiáng),可以在windows,linux,ubuntu等系統(tǒng)下使用,方便簡(jiǎn)單,安全性好。SQLServer2005數(shù)據(jù)庫(kù)高效安全,兩者結(jié)合可相互利用各自的優(yōu)勢(shì)。該系統(tǒng)實(shí)現(xiàn)的大致功能:1. 用戶登陸界面。該界面可以選擇使用者的身份,“管理員,教師,學(xué)生”。不同的身份有不同的操作界面和功能權(quán)限。ID號(hào)和密碼輸入正確即可登錄。學(xué)生管理界面。提供了學(xué)生學(xué)籍信息的查詢,相關(guān)科目的成績(jī)查詢和排名,修改登錄密碼等功能。2. 教師管理界面。提供了對(duì)學(xué)生學(xué)籍信息的查詢,添加,修改,刪除;學(xué)生成績(jī)的錄入,修改,刪除,查詢班級(jí)排名。修改密碼等功能。3.管理員管理界面。擁有最高的權(quán)限。允許添加教師信息和課程信息等。4. 登錄的用戶信息分別存儲(chǔ)在SQL數(shù)據(jù)庫(kù)的“管理員信息表”,“教師信息表”,“學(xué)籍信息表”中,如果用戶信息不存在則三張表中,將會(huì)無(wú)權(quán)利登錄本管理系統(tǒng)。保證了本學(xué)生管理系統(tǒng)的安全性。數(shù)據(jù)庫(kù)設(shè)計(jì)3.1 系統(tǒng)概念結(jié)構(gòu)設(shè)計(jì)教師ID教師姓名教師登錄密碼課程學(xué)號(hào)課程號(hào) 成績(jī)成績(jī)管理員ID學(xué)籍管理員

課程號(hào)課程名稱教師ID姓名學(xué)號(hào)性別籍貫登錄密碼班級(jí)號(hào)籍貫班級(jí)登錄密碼總?cè)藬?shù)班級(jí)名稱實(shí)體屬性表: 班級(jí)號(hào)實(shí)體 屬性教師 教師ID,教師姓名,登錄密碼課程 課程號(hào),課程名稱,教師 ID管理員 管理員ID,登錄密碼班級(jí) 班級(jí)號(hào),班級(jí)名稱,總?cè)藬?shù)學(xué)籍 學(xué)號(hào),姓名,性別,班級(jí)號(hào),籍貫,登錄密碼成績(jī) 學(xué)號(hào),課程號(hào),成績(jī)3.2系統(tǒng)邏輯結(jié)構(gòu)設(shè)計(jì)教師信息表:字段名類型空值約束條件教師IDvarchar(8)notnull主鍵教師姓名varchar(8)notnull登錄密碼varchar(8)notnull課程信息表:字段名類型空值約束條件課程號(hào)varchar(8)notnull主鍵課程名稱varchar(12)notnull教師IDvarchar(8)notnull外鍵班級(jí)信息表:字段名類型空值約束條件班級(jí)號(hào)varchar(8)notnull主鍵班級(jí)名稱varchar(8)notnull所屬學(xué)院varchar(6)班級(jí)人數(shù)nchar(4)管理員信息表:字段名類型空值約束條件管理員IDvarchar(10)notnull主鍵登錄密碼varchar(10)notnull成績(jī)信息表:字段名類型空值約束條件班級(jí)號(hào)varchar(15)notnull主鍵,外鍵班級(jí)名稱varchar(8)notnull主鍵,外鍵所屬學(xué)院smallintnotnull學(xué)籍信息表:字段名類型空值約束條件學(xué)號(hào)intnotnull主鍵姓名varchar(30)notnull性別char(2)班級(jí)號(hào)varchar(30)notnull外鍵籍貫char(10)登錄密碼moneynotnull3.3 數(shù)據(jù)庫(kù)實(shí)現(xiàn)3.3.1 數(shù)據(jù)庫(kù)關(guān)系圖3.3.2 SQL語(yǔ)句實(shí)現(xiàn)數(shù)據(jù)表的創(chuàng)建:(1)教師信息表創(chuàng)建:createtable 教師信息表 (教師IDvarchar(8)primarykey,教師姓名varchar(8)notnullunique,登錄密碼varchar(8)notnull,)(2)課程信息表創(chuàng)建:createtable 課程信息表 (課程號(hào)varchar(8)primarykey,課程名稱varchar(12)notnull,教師IDvarchar(8)notnullforeignkey( 教師ID)references 教師信息表(教師ID))(3)班級(jí)信息表創(chuàng)建:createtable 班級(jí)信息表 (班級(jí)號(hào)varchar(8)notnullprimarykey,班級(jí)名稱varchar(8)notnullunique,所屬學(xué)院varchar(8),班級(jí)人數(shù) nchar(4))(4)學(xué)籍信息表創(chuàng)建:createtable 學(xué)籍信息表 (學(xué)號(hào)varchar(15)primarykey,姓名varchar(8)notnull,性別varchar(4),班級(jí)號(hào)varchar(8)notnull,籍貫varchar(5),登錄密碼varchar(6)notnullforeignkey( 班級(jí)號(hào))references 班級(jí)信息表 (班級(jí)號(hào)))(5)成績(jī)信息表創(chuàng)建:createtable 成績(jī)信息表 (學(xué)號(hào)varchar(15),課程號(hào)varchar(8),成績(jī)

smallintprimarykey(foreignkey(foreignkey(

學(xué)號(hào),課程號(hào))學(xué)號(hào))references課程號(hào))references

學(xué)籍信息表(課程信息表

學(xué)號(hào)),(課程號(hào)

))(6)管理員信息表創(chuàng)建:createtable 課程信息表 (管理員IDvarchar(8)primarykey,登錄密碼 varchar(12)notnull)視圖的創(chuàng)建:“教師課程詳細(xì)信息”視圖創(chuàng)建:createview

教師課程詳細(xì)信息asSELECT教師信息表

教師信息表.登錄密碼

.

教師ID,

教師信息表

.

教師姓名

,課程信息表

.

課程號(hào)

,課程信息表

.

課程名稱

,FROM

教師信息表JOIN

課程信息表

ON

教師信息表

.

教師

ID=

課程信息表

.

教師ID“學(xué)生成績(jī)信息”視圖創(chuàng)建:createview學(xué)生成績(jī)信息asSELECT學(xué)籍信息表.學(xué)號(hào),學(xué)籍信息表.姓名,學(xué)籍信息表.性別,課程信息表.課程名稱,成績(jī)信息表.成績(jī)FROM成績(jī)信息表JOIN學(xué)籍信息表ON成績(jī)信息表.學(xué)號(hào)=學(xué)籍信息表.學(xué)號(hào)JOIN班級(jí)信息表ON班級(jí)信息表.班級(jí)號(hào)=學(xué)籍信息表.班級(jí)號(hào)JOIN課程信息表ON課程信息表.課程號(hào)=成績(jī)信息表.課程號(hào)存儲(chǔ)過(guò)程創(chuàng)建:“單科成績(jī)排名”創(chuàng)建:createproc[dbo].[ 單科成績(jī)排名 ]@kechennamechar(8),@classnamechar(8)asselect學(xué)籍信息表.學(xué)號(hào),姓名,成績(jī)from成績(jī)信息表join課程信息表on課程信息表.課程號(hào)=成績(jī)信息表.課程號(hào)join學(xué)籍信息表on學(xué)籍信息表.學(xué)號(hào)=成績(jī)信息表.學(xué)號(hào)join班級(jí)信息表on班級(jí)信息表.班級(jí)號(hào)=學(xué)籍信息表.班級(jí)號(hào)where課程名稱=@kechennameand班級(jí)名稱=@classnameorderby 成績(jī)desc“全班排名”創(chuàng)建:createproc[dbo].[全班排名]@classchar(8)asselect學(xué)籍信息表.學(xué)號(hào),姓名,avg(成績(jī))as平均分,sum(成績(jī))as總分from成績(jī)信息表join學(xué)籍信息表on成績(jī)信息表.學(xué)號(hào)=學(xué)籍信息表.學(xué)號(hào)join班級(jí)信息表on班級(jí)信息表.班級(jí)號(hào)=學(xué)籍信息表.班級(jí)號(hào)where班級(jí)信息表.班級(jí)名稱=@classgroupby學(xué)籍信息表.姓名,學(xué)籍信息表.學(xué)號(hào)orderbyavg(成績(jī))desc,學(xué)籍信息表.學(xué)號(hào)系統(tǒng)模塊詳細(xì)設(shè)計(jì)4.1 用戶登錄模塊4.2 各用戶操作模塊4.2.1 管理員操作模塊(圖 1)4.2.2 教師操作模塊(圖 2)圖1 圖24.2.3 學(xué)生操作模塊5. 系統(tǒng)運(yùn)行與測(cè)試5.1管理員登錄點(diǎn)擊“管理員”按鈕。輸入正確的ID和密碼。驗(yàn)證成功則可進(jìn)入管理員管理界面。管理員ID號(hào)和登錄密碼存在數(shù)據(jù)庫(kù)中的管理員信息表。表中存在的管理員才允許登錄。(1)添加教師信息。在彈出的輸入欄中輸入正確的數(shù)據(jù)。如果輸入重復(fù)的信息則會(huì)彈出。如果某項(xiàng)未填則彈出。輸入的數(shù)據(jù)會(huì)分別寫進(jìn)“教師信息表”和“課程信息表”中。增加的教師信息,允許讓更多的教師登錄本系統(tǒng)進(jìn)行管理操作?。?)修改教師信息如果要修改的教師信息不存在,則(3)刪除信息修改輸入的教師信息不存在,則(4)查詢教師信息5.2教師登錄在登錄界面選擇“教師”按鈕,并輸入正確的 ID號(hào)和密碼,即可登錄成功!輸入錯(cuò)誤則會(huì)彈出提示!ID 號(hào)輸入正確,登錄成功!進(jìn)入教師管理的操作界面:(1)顯示學(xué)生信息。(2)添加學(xué)生信息新添加的信息會(huì)保存在學(xué)籍信息表中!如果輸入的信息已經(jīng)存在,則顯示如果輸入的數(shù)據(jù)正確,則3)修改學(xué)生信息,輸入正確則顯示!刪除學(xué)生信息,(5)錄入學(xué)生成績(jī)(6)修改學(xué)生成績(jī)刪除學(xué)生成績(jī)(8)查詢學(xué)生成績(jī)(9)所有成績(jī)排名(10)單科成績(jī)排名(11)更改登錄密碼修改成功后即可用新的密碼進(jìn)行登錄!5.3 學(xué)生登錄輸入正確的ID號(hào)和密碼,即可正常登錄?。?)顯示學(xué)生信息(2)查詢個(gè)人成績(jī)(3)單科成績(jī)排名(4)全班成績(jī)排名(5)修改密碼修改密碼后會(huì)更新學(xué)生學(xué)籍表里面的登錄密碼,下次就可以用新密碼登錄。點(diǎn)擊 后,就可以安全退出學(xué)生管理系統(tǒng)了!6.課程設(shè)計(jì)總結(jié)課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問(wèn)題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過(guò)程.本次課程設(shè)計(jì)雖然很辛苦,實(shí)在是受益匪淺。本來(lái)這門課的知識(shí)學(xué)的就不夠扎實(shí),本次課程設(shè)計(jì),在設(shè)計(jì)過(guò)程中碰到了很多問(wèn)題,剛開(kāi)始要設(shè)計(jì)的時(shí)候,還真不知道從哪里下手但最終在圖書、同學(xué)和老師的幫助下都得到了解決,讓我學(xué)會(huì)了好多書本上沒(méi)有的東西,通過(guò)本次課程設(shè)計(jì)我也能將課本上的知識(shí)融會(huì)貫通,起到了很好的輔助學(xué)習(xí)的效果,但是我發(fā)現(xiàn)我學(xué)到的知識(shí)比整整一個(gè)學(xué)期學(xué)到的都多。理論和實(shí)踐的相結(jié)合是學(xué)習(xí)最有效的方法。在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固,通過(guò)這次課程設(shè)計(jì)之后,一定把以前所學(xué)過(guò)的知識(shí)重新溫故。通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。7.附錄(代碼)由于篇幅有限,所以只附上主要功能的代碼:登陸界面與主功能界面:publicclass Sqlextends JFrame implements ActionListener{JFrame mm=newJFrame( "您好!請(qǐng)您先登錄! ")。JTextField t2=newJTextField( null ,15) 。JTextField t4=newJPasswordField( null ,15) 。public String zh=null 。JRadioButton b=newJRadioButton( "教師")。JRadioButton b1=newJRadioButton( "學(xué)生")。JRadioButton b2=newJRadioButton( "管理員")。publicvoid jiemian(){mm.setSize(300,340) 。mm.setVisible( true )。mm.setLocation(200,300) 。mm.setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE)。JLabelt1= newJLabel( "ID號(hào):")。JLabelt3= newJLabel( "密碼:" )。JButtondenglu2= newJButton( "登錄")

。denglu2.setContentAreaFilled(

false

)。Containern=

mm.getContentPane()

。n.setLayout(

null )。t1.setBounds(42,125,75,35)

。t2.setBounds(80,125,150,35)

。t3.setBounds(40,180,75,35)

。t4.setBounds(80,180,150,35)

。denglu2.setBounds(102,245,70,30)n.add(t1) 。n.add( t2)。n.add(t3)

。。

n.add(

t4)。n.add(denglu2) 。b.setBounds(130,85,70,30)b1.setBounds(70,85,70,30)b2.setBounds(190,85,70,30)

。。。ButtonGrouprg=

newButtonGroup()

。b.setSelected(b1.setSelected(b1.setSelected(

false )。true )。false )。n.add(

b)

。n.add(

b2)

。rg.add(

b2)

。

rg.add(

b)

。n.add( b1)。rg.add(b.setContentAreaFilled(b1.setContentAreaFilled(b2.setContentAreaFilled(

b1)

。false )。false )。false )。denglu2.addActionListener(

this

)。publicvoid

}actionPerformed(ActionEvente){JButtondenglu2=(JButton)e.getSource()if (b.isSelected()){zh=t2.getText() 。Stringmima= t4.getText() 。

。try {Class. forName ("sun.jdbc.odbc.JdbcOdbcDriver"

)。Connectionc=DriverManager. getConnection

("jdbc:odbc:

學(xué)生信息系統(tǒng)")。Statements=c.createStatement(ResultSet. TYPE_SCROLL_SENSITIVE ,ResultSet. CONCUR_UPDATABLE)。ResultSetr=s.executeQuery( "select*from

教師信息表where

教師ID='"

+zh+"'and

登錄密碼

='"

+mima+"'"

)。r.last()

。if (r.getRow()==1){ mm.setVisible(r.beforeFirst()while (r.next()){JOptionPane.

false )。。showMessageDialog

(

null

,r.getString(

"教師姓名

")+"老師!您好!歡迎登錄教師管理系統(tǒng)!

")

}JFramemmm=newJFrame()

。mmm.setSize(400,420)

。mmm.setVisible(

true )。mmm.setLocation(200,300)mmm.setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE)。JLabelaaa= newJLabel( "學(xué)生信息管理:")。JLabelaaa1= newJLabel(JButtonb1= newJButton( "顯示學(xué)生信息")。b1.setBounds(40,45,140,30)JButtonb2= newJButton( "添加學(xué)生信息")。b2.setBounds(200,45,140,30)JButtonb3= newJButton( "修改學(xué)生信息")。b3.setBounds(40,90,140,30)JButtonb4= newJButton( "刪除學(xué)生信息")。b4.setBounds(200,90,140,30)JButtonb5= newJButton( "錄入學(xué)生成績(jī)")。b5.setBounds(40,170,140,30)JButtonb6= newJButton( "修改學(xué)生成績(jī)")。b6.setBounds(200,170,140,30)JButtonb7= newJButton( "刪除學(xué)生成績(jī)")。b7.setBounds(40,215,140,30)JButtonb8= newJButton( "查詢學(xué)生成績(jī)")。b8.setBounds(200,215,140,30)JButtonb9= newJButton( "所有成績(jī)排名")。b9.setBounds(40,260,140,30)JButtonb12= newJButton( "單科成績(jī)排名")。b12.setBounds(200,260,140,30)JButtonb10= newJButton( "退出系統(tǒng)")。b10.setBounds(60,325,100,30)JButtonb11= newJButton( "修改密碼")。b11.setBounds(220,325,100,30)aaa.setBounds(15,15,90,30) 。aaa1.setBounds(15,140,90,30) 。Containern=mmm.getContentPane() 。

"學(xué)生成績(jī)管理。。。。。。。。。。。。

:")。n.setLayout(

null )。J_ActionListener1a1=newJ_ActionListener1()。J_ActionListener2a2=newJ_ActionListener2()。J_ActionListener3a3=newJ_ActionListener3()。J_ActionListener4a4=newJ_ActionListener4()。J_ActionListener5a5=newJ_ActionListener5()。J_ActionListener7a7=newJ_ActionListener7()。J_ActionListener8a8=newJ_ActionListener8()。J_ActionListener9a9=newJ_ActionListener9()。J_ActionListener10a10=newJ_ActionListener10()。J_ActionListener12a12=newJ_ActionListener12()。J_ActionListener11a11=newJ_ActionListener11()。n.add(b1)。n.add(b2)。n.add(b3)。n.add(b4)。n.add(b5)。n.add(b6)。n.add(b7) 。n.add(b8) 。n.add(b9) 。n.add(b10) 。n.add(aaa) 。n.add(aaa1) 。n.add(b11) 。n.add(b12) 。b1.addActionListener(a1) 。b2.addActionListener(a2)

。b3.addActionListener(a3)

。b4.addActionListener(a4)

。b5.addActionListener(a5)

。b6.addActionListener(a7)

。b7.addActionListener(a8)

。b8.addActionListener(a9) 。b9.addActionListener(a10)b10.addActionListener({ publicvoid{System.

。b11.addActionListener(a1)b12.addActionListener(a12)newActionListener()actionPerformed( final ActionEvente)exit (0) 。 }

。})

。((JComponent)mmm.getContentPane()).setOpaque( .URLurl=Sql. class .getResource( "未命名.jpg" )。ImageIconimg= newImageIcon(url) 。JLabelbackground= newJLabel(img) 。mmm.getLayeredPane().add(background, newInteger(Integer.background.setBounds(0,0,img.getIconWidth(),img.getIconHeight())

)。

MIN_VALUE))。。elsecatch

}{ JOptionPane. showMessageDialog}(Exceptione1){ e1.printStackTrace()

(

null}

,"教師ID或密碼有誤!請(qǐng)重新輸入!

")

。

}}}publicstaticvoidSqlapp= newSql()

main(Stringargs[]){。app.jiemian() 。}}向數(shù)據(jù)庫(kù)添加新的學(xué)生信息:class

DataBase{

//DataBase

類publicvoid Add(Stringxh,Stringxm,Stringxb,Stringbj,Stringjg,Stringmm)throws SQLException{ // 為學(xué)籍管理系統(tǒng)添加新記錄try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"Connectionc=DriverManager.getConnection

)。("jdbc:odbc:

學(xué)生信息系統(tǒng)

")。Statements=c.createStatement(ResultSet.

TYPE_SCROLL_SENSITIVE

,ResultSet.ResultSetr=s.executeQuery(='" +xh+"'" )。

CONCUR_UPDATABLE)。"select*from 學(xué)籍信息表

where

學(xué)號(hào)r.last()

。if

(r.getRow()==1){JOptionPane.

showMessageDialog

(

null

, "該學(xué)號(hào)的學(xué)生信息已存在")。}Elseif (xh.equals( "")){ // 判斷新輸入的學(xué)號(hào)是否為空J(rèn)OptionPane. showMessageDialog ( null , "學(xué)號(hào)不能為空else { s.executeUpdate( "insertinto 學(xué)籍信息表 values('" +xh+"','" +xm+"','" +xb+"','" +bj+ "','" +jg+ "','" +mm+"')" )。s.close() 。c.close() 。JOptionPane. showMessageDialog ( null , "<html>" +"學(xué)號(hào):" +xh+"<br>" +"姓名:"+xm+"<br>" +"性別:"+xb+"<br>" +"班級(jí)號(hào):" +bj+ "<br>" +"籍貫:" +jg+ "<br>"+"登錄密碼:"+mm+"<br> 學(xué)生記錄添加成功! ")

")。}。}catch

}(ClassNotFoundExceptione){JOptionPane.

showMessageDialog

(

null

,

"數(shù)據(jù)添加異常!

")

。}}publicvoid

DisplayAll(ResultSetr){JFramem= newJFrame( "顯示所有學(xué)生信息m.setBounds(60,70,700,600) 。

")

。m.setVisible(

true )。JTextAreaaa=

newJTextArea()

aa.setBounds(0,0,700,600)

。Containerc1=m.getContentPane()

。c1.setLayout(

null

)。c1.add(aa)

。try { r.last()aa.append(

"\t

。學(xué)號(hào)"+"\t" +"r.beforeFirst()

姓名"+"\t"。

+"性別

"+"\t"

+"班級(jí)"+"\t"

+"

籍貫"+"\n"

)

。while

(r.next()){ aa.append( "第"+r.getRow()+ "行記錄:" )。aa.append(r.getString( "學(xué)號(hào)"))。aa.append( "\t" +r.getString( "姓名"))。aa.append( "\t" +r.getString( "性別"))。aa.append( "\t" +r.getString( "班級(jí)"))。aa.append( "\t" +r.getString( "籍貫")+"\n"

)

。}}catch (Exceptione){ e.printStackTrace()publicvoid DisplayOne(Stringstr22)

。}}throws Exception{try{Connectionc=DriverManager. getConnection ("jdbc:odbc: 學(xué)生信息系統(tǒng)")。Statements=c.createStatement(ResultSet. TYPE_SCROLL_SENSITIVE ,ResultSet.

CONCUR_UPDATABLE)

。名稱息表.

as 班級(jí),籍貫班級(jí)號(hào) where

ResultSetr=s.executeQuery(from 學(xué)籍信息表 join學(xué)號(hào)='" +str22+ "'" )。

"select 學(xué)號(hào),班級(jí)信息表 on 班級(jí)信息表// 執(zhí)行查詢的 SQL語(yǔ)句

.

姓名,性別, 班級(jí)班級(jí)號(hào)=學(xué)籍信r.last() 。int cc=r.getRow()if (cc==0){ JOptionPane.else {r.beforeFirst()while (r.next())

。showMessageDialog。

(

null

, "未查詢到相關(guān)信息!

")

。

}{JOptionPane. showMessageDialog ( null , "<html>" +" 學(xué)號(hào):"+r.getString( "學(xué)號(hào)")+"<br>" +"姓名:"+r.getString( "姓名")+"<br>"+"性別:"+r.getString( "性別")+"<br>" +"班級(jí):"+r.getString( "班級(jí)")+"<br>"+"籍貫:"+r.getString( "籍貫")+"<br> 已查詢到相關(guān)記錄! ") 。}}}catch (Exceptione){ e.printStackTrace() 。}}publicvoid DeleteXh(Stringstr11) // 執(zhí)行按學(xué)號(hào)刪除學(xué)生記錄的操作{ try{Class. forName ("sun.jdbc.odbc.JdbcOdbcDriver" )。Connectionc=DriverManager. getConnection ("jdbc:odbc: 學(xué)生信息系統(tǒng)")

。Statements=c.createStatement(ResultSet. TYPE_SCROLL_SENSITIVE ,ResultSet. CONCUR_UPDATABLE)。ResultSetr=s.executeQuery(='" +str11+ "'" )。

"select*from

學(xué)籍信息表

where

學(xué)號(hào)r.last()

。if

(r.getRow()==1){s.executeUpdate( "deletefrom 學(xué)籍信息表 whereJOptionPane. showMessageDialog ( null ,} else {JOptionPane. showMessageDialog

學(xué)號(hào)='" +str11+ "'" )。"學(xué)生記錄刪除成功! ") 。( null , "學(xué)籍系統(tǒng)中并無(wú)相關(guān)記錄!")

。

}catch

}(Exceptione){}}publicvoid

DeleteXm(Stringstr13)

// 執(zhí)行按姓名刪除學(xué)生記錄的操作{try{Class.

forName ("sun.jdbc.odbc.JdbcOdbcDriver"Connectionc=DriverManager. getConnection

)

。("jdbc:odbc:

學(xué)生信息系統(tǒng)

")。Statements=c.createStatement(ResultSet. TYPE_SCROLL_SENSITIVE ,ResultSet. CONCUR_UPDATABLE)ResultSetr=s.executeQuery( "select*from 學(xué)籍信息表 where='" +str13+ "'" )。

。姓名r.last()

。if (r.getRow()==1){s.executeUpdate(

"deletefrom

學(xué)籍信息表

where

姓名='" +str13+

"'"

)

。JOptionPane.

showMessageDialog

(

null

,

"學(xué)生記錄刪除成功!")

。}else { JOptionPane.

showMessageDialog

( null

, "學(xué)籍系統(tǒng)中并無(wú)相關(guān)記錄!

")

。

}}catch (Exceptione){}}publicvoid{

UpdateXh(Stringxg,Stringstr15,Stringstr16)try

{Class. forName ("sun.jdbc.odbc.JdbcOdbcDriver"

)

。Connectionc=DriverManager. getConnection

("jdbc:odbc:

學(xué)生信息系統(tǒng)

")。Statements=c.createStatement(ResultSet. TYPE_SCROLL_SENSITIVE ,ResultSet. CONCUR_UPDATABLE)ResultSetr=s.executeQuery( "select*from 學(xué)籍信息表 wherer.last() 。

。

學(xué)號(hào)='"

+xg+"'"

)

。if (r.getRow()==1){ s.executeUpdate(

"update

學(xué)籍信息表

set"+str15+ "='"JOptionPane.

+str16+ "'where 學(xué)號(hào)='" +xg+"'" )。 // 直接執(zhí)行SQL語(yǔ)句修改showMessageDialog ( null , "學(xué)生記錄修改成功! ") 。}else{JOptionPane. showMessageDialog ( null , "學(xué)籍系統(tǒng)中并無(wú)相關(guān)記錄!") 。catch (Exceptione){JOptionPane.}}

}。showMessageDialog

}

(

null

, "學(xué)籍系統(tǒng)中并無(wú)相關(guān)記錄!

")

。publicvoidtry {

UpdateXm(Stringstr18,Stringstr19,Stringstr20)

{Class. forName ("sun.jdbc.odbc.JdbcOdbcDriver"

)

。Connectionc=DriverManager. getConnection

("jdbc:odbc:

學(xué)生信息系統(tǒng)

")。Statements=c.createStatement(ResultSet. TYPE_SCROLL_SENSITIVE

,ResultSet. CONCUR_UPDATABLE)。ResultSetr=s.executeQuery( "select*from 學(xué)籍信息表 where 姓名='" +str18+ "'" )。r.last() 。if (r.getRow()==1)"+str19+

"='"

+str20+ "'whereJOptionPane.

{s.executeUpdate(姓名='" +str18+showMessageDialog

"'"

"update)。( null

,

學(xué)籍信息表 set// 直接執(zhí)行SQL語(yǔ)句修改"學(xué)生記錄修改成功!") 。 }else {JOptionPane.

showMessageDialog

( null

, "學(xué)籍系統(tǒng)中并無(wú)相關(guān)記錄!

")

。}

。}catch

(Exceptione){JOptionPane.}}

showMessageDialog

(

null

, "學(xué)籍系統(tǒng)中并無(wú)相關(guān)記錄!

")

。publicvoidtry {

AddScore(Stringxh,Stringkch,Stringcj){Class. forName ("sun.jdbc.odbc.JdbcOdbcDriver"

)

。Connectionc=DriverManager. getConnection

("jdbc:odbc:

學(xué)生信息系統(tǒng)

")。Statements=c.createStatement(ResultSet. TYPE_SCROLL_SENSITIVE ,ResultSet. CONCUR_UPDATABLE)。if (xh.equals( "")||kch.equals( "")||cj.equals( "")){ialog ( null , "輸入框不允許為空 ")。 }else {ResultSetr=s.executeQuery( "select*from='" +xh+"'and 課程號(hào)='" +kch+"'" )。

JOptionPane.成績(jī)信息表 where

showMessageD學(xué)號(hào)int

i=Integer.

r.last()parseInt

。(cj)

。if

(r.getRow()==1){JOptionPane.

showMessageDialog

(

null

, "該學(xué)生該科成績(jī)已存在")。}else {s.executeUpdate( "insertinto 成績(jī)信息表 values('" +xh+"','" +kch+"','" +i+"')" )。JOptionPane. showMessageDialog ( null , "<html>" +"學(xué)號(hào):"+xh+"<br>"+"課程號(hào):" +kch+"<br>" +"成績(jī):" +cj+ "<br> 學(xué)生成績(jī)添加成功! ") 。catch (Exceptione){JOptionPane. showMessageDialog ( null , "成績(jī)輸入的學(xué)號(hào)或者課程號(hào)不存在!publicvoid UpdateScore(Stringxh,Stringkch,Stringcj){

}}}

")

。}}try

{Class. forName ("sun.jdbc.odbc.JdbcOdbcDriver"

)

。Connectionc=DriverManager. getConnection

("jdbc:odbc:

學(xué)生信息系統(tǒng)

")。Statements=c.createStatement(ResultSet. TYPE_SCROLL_SENSITIVE ,ResultSet. CONCUR_UPDATABLE)。if (xh.equals( "")||kch.equals( "")||cj.equals( "")){JOptionPane. showMessageDialog ( null , "輸入框不允許為空 ")。 }else {int i=Integer. parseInt (cj) 。ResultSetr=s.executeQuery( "select*from 成績(jī)信息表where 學(xué)號(hào)='" +xh+"'and 課程號(hào)='" +kch+"'" )。r.last() 。 if (r.getRow()==1){ s.executeUpdate( "update 成績(jī)信息表 set 成績(jī)='" +i+"'where 學(xué)號(hào)='" +xh+"'and 課程號(hào)='" +kch+"'" )。JOptionPane. showMessageDialog ( null , "學(xué)生成績(jī)修改成功! ") 。 }else {JOptionPane. showMessageDialog ( null , "成績(jī)表中并無(wú)相關(guān)記錄! ") 。}。}} catch (Exceptione){JOptionPane. showMessageDialog ( null , "學(xué)籍系統(tǒng)中并無(wú)相關(guān)記錄!") 。}}publicvoid DeleteScore(Stringxh,Stringkch){try{Class. forName ("sun.jdbc.odbc.JdbcOdbcDriver" )。Connectionc=DriverManager. getConnection ("jdbc:odbc: 學(xué)生信息系統(tǒng) ")。Statements=c.createStatement(ResultSet. TYPE_SCROLL_SENSITIVE ,ResultSet. CONCUR_UPDATABLE)。ResultSetr=s.executeQuery( "select*from 成績(jī)信息表where 學(xué)號(hào)='" +xh+"'and 課程號(hào)='" +kch+ "'" )。 r.last() 。if (r.getRow()==1){s.executeUpdate( "deletefrom 成績(jī)信息表 where 學(xué)號(hào)='" +xh+"'and 課程號(hào)='" +kch+"'" )。JOptionPane. showMessageDialog ( null , "學(xué)生記錄刪除成功!") 。}else {JOptionPane. showMessageDialog ( null , "學(xué)籍系統(tǒng)中并無(wú)相關(guān)記錄! ") 。}} catch (Exceptione){}}publicvoid SearchScore(Stringxh){JFramem= newJFrame( "學(xué)號(hào)"+xh+"的各科成績(jī)")。m.setBounds(60,70,326,320) 。m.setVisible( true )。JTextAreaaa= newJTextArea() 。aa.setBounds(0,0,326,320) 。Containerc1=m.getContentPane() 。c1.setLayout(

null

)。c1.add(aa)

。try

{Class. forName ("sun.jdbc.odbc.JdbcOdbcDriver" )。Connectionc=DriverManager. getConnection ("jdbc:odbc: 學(xué)生信息系統(tǒng)Statements=c.createStatement(ResultSet. TYPE_SCROLL_SENSITIVE ,ResultSet. CONCUR_UPDATABLE)。ResultSetr1=s.executeQuery( "select名稱,成績(jī) from 成績(jī)信息表 join 課程信息表 on 成績(jī)信息表 .課程號(hào)

")。學(xué)號(hào),課程=課程信息表 .課程號(hào)

" +"where

學(xué)號(hào)='" +xh+"'"

)。r1.last()

。aa.append(r1.beforeFirst()aa.append(

"查詢到該學(xué)生 "+r1.getRow()+。" 學(xué)號(hào)"+"\t" +"

"科成績(jī)課程名稱

"+"\n"" +"\t"

)

。+"

成績(jī)"+"\n")。while (r1.next()){ aa.append(r1.getString(aa.append( "\t

"

"學(xué)號(hào)"))+r1.getString(

。

"課程名稱"))

。aa.append(

"\t"

+r1.getString(

"成績(jī)")+"\n"

)

。}}catch (Exceptione){ e.printStackTrace() 。 } }publicvoid ListAll(Stringbanji){JFramem= newJFrame(banji+ "班成績(jī)排名 ")。m.setBounds(60,70,413,319) 。m.setVisible( true )。JTextAreaaa= newJTextArea() 。aa.setBounds(0,0,413,319) 。Containerc1=m.getContentPane() 。c1.setLayout( null )。c1.add(aa) 。try {Class. forName ("sun.jdbc.odbc.JdbcOdbcDriver"Connectionc=DriverManager. getConnectionStatements 。s=c.createStatement(ResultSet. TYPE_SCROLL_SENSITIVE ,ResultSet.Stringsql= "execute 全班排名 '" +banji+ "'" 。ResultSetr1=s.executeQuery(sql) 。r1.last() 。aa.append( "\t 學(xué)號(hào)"+"\t" +"姓名"+"\t"

)。("jdbc:odbc: 學(xué)生信息系統(tǒng)CONCUR_UPDATABLE)。+"平均分" +"\t" +"總分

")

。"+"\n" )。r1.beforeFirst() 。for (int

i=1

。r1.next() 。i++){ aa.append( "第"+i+"名:")。aa.append(r1.getString( "學(xué)號(hào)"))。aa.append( "\t" +r1.getString( "姓名"))。aa.append( "\t" +r1.getString( "平均分"))。aa.append( "\t" +r1.getString( "總分")+"\n"}}

)

。catch (Exceptione){e.printStackTrace()

}}publicvoid

ListOne(Stringstr1,Stringstr2){JFramem= newJFrame(str2+m.setBounds(60,70,326,320)

"班"+str1+。

"科"+"成績(jī)排名

")。try

{Class.

m.setVisible( true )。JTextAreaaa= newJTextArea() 。aa.setBounds(0,0,326,320) 。Containerc1=m.getContentPane()c1.setLayout( null )。c1.add(aa) 。forName ("sun.jdbc.odbc.JdbcOdbcDriver"Connectionc=DriverManager.

。)。getConnection

("jdbc:odbc:

學(xué)生信息系統(tǒng)")。Statements 。s=c.createStatement(ResultSet. TYPE_SCROLL_SENSITIVEResultSet. CONCUR_UPDATABLE)。Stringsql= "execute 單科成績(jī)排名

,'"

+str1+

"',"

+"'"

+str2+

"'"

。ResultSetr1=s.executeQuery(sql)

。r1.last()

。aa.append(

"\t"

+"

學(xué)號(hào)"+"\t"

+"姓名"+"\t"

+"成績(jī)"+"\n"

)

。

r1.beforeFirst()

。for

(int

i=1

。r1.next()

。i++){ aa.append(

"第"+i+

"名:")。aa.append(r1.getString(

"學(xué)號(hào)"))

。aa.append(aa.append(

"\t""\t"

+r1.getString(+r1.getString(

"姓名"成績(jī)

"))")+

。"\n"

)

}}catch (Exceptione){e.printStackTrace() 。 }}publicvoid AddTeacher(Stringid,Stringxm,Stringmm,Stringkch,Stringkcm){try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"Connectionc=DriverManager.getConnection

)。("jdbc:odbc:

學(xué)生信息系統(tǒng)

")。Statements=c.createStatement(ResultSet. TYPE_SCROLL_SENSITIVE

,ResultSet.if (id.equals( "")||mm.equals(ane. showMessageDialog ( nullelse { ResultSetr=s.executeQuery(

CONCUR_UPDATABLE)。"")||kch.equals( "")||kcm.equals(, "輸入框不允許為空 ")。 }"select*from 教師信息表

"")){JOptionPwhere 教師信息表.教師ID='"

+id+ "'"

)

。r.last()

。if (r.getRow()==1){JOptionPane.

showMessageDialog

(

null

, "您輸入的教師

ID已存在已存在")。}else { s.executeUpdate( "insertinto('" +id+ "','" +xm+"','" +mm+"')" )。s.executeUpdate( "insertinto

教師信息表 values課程信

溫馨提示

  • 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)論