版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告</b></p><p> -------學(xué)生信息管理系統(tǒng)</p><p><b> 一、系統(tǒng)開發(fā)平臺(tái)</b></p><p> 1.1 題目:學(xué)生選課管理信息系統(tǒng)</p><p> (1) 要求系統(tǒng)可以準(zhǔn)確地記錄和查詢學(xué)生信息,包括學(xué)生的姓名
2、、單位、年齡、性別以及身份證號(hào)碼等。</p><p> (2) 要求系統(tǒng)可以準(zhǔn)確地記錄學(xué)生地每一次獎(jiǎng)懲情況。</p><p> (3) 系統(tǒng)可以對(duì)學(xué)校的院系情況進(jìn)行管理,包括設(shè)置學(xué)院名稱、修改某學(xué)院某專業(yè)方向的名稱等。</p><p> (4) 系統(tǒng)應(yīng)該可以對(duì)基礎(chǔ)數(shù)據(jù)進(jìn)行維護(hù)。</p><p> (5)系統(tǒng)能夠?qū)﹂_設(shè)的課程進(jìn)行管理&l
3、t;/p><p> (6)學(xué)生選課管理、考試(登記分?jǐn)?shù))</p><p> (7)系統(tǒng)還應(yīng)該提供強(qiáng)大數(shù)據(jù)統(tǒng)計(jì)、查詢、報(bào)表生成以及打印等功能。</p><p><b> (8)用戶權(quán)限管理</b></p><p><b> (9)異常處理</b></p><p> 1.2
4、 開發(fā)語言:Java</p><p> 用Java做設(shè)計(jì)流程清晰、結(jié)構(gòu)合理,有良好的可擴(kuò)充性和耦合性。</p><p> 1.3 開發(fā)工具:Eclipse</p><p> 1.4 數(shù)據(jù)庫(kù): MySQL</p><p> 1.5 操作系統(tǒng):Microsoft Windows 8.1</p><p><b&
5、gt; 二、數(shù)據(jù)庫(kù)規(guī)劃</b></p><p><b> 2.1 任務(wù)陳述</b></p><p> (1) 要求系統(tǒng)可以準(zhǔn)確地記錄和查詢學(xué)生信息,包括學(xué)生的姓名、單位、年齡、性別以及身份證號(hào)碼等。</p><p> (2) 要求系統(tǒng)可以準(zhǔn)確地記錄學(xué)生地每一次獎(jiǎng)懲情況。</p><p> (3) 系
6、統(tǒng)可以對(duì)學(xué)校的院系情況進(jìn)行管理,包括設(shè)置學(xué)院名稱、修改某學(xué)院某專業(yè)方向的名稱等。</p><p> (4) 系統(tǒng)應(yīng)該可以對(duì)基礎(chǔ)數(shù)據(jù)進(jìn)行維護(hù)。</p><p> (5)系統(tǒng)能夠?qū)﹂_設(shè)的課程進(jìn)行管理</p><p> (6)學(xué)生選課管理、考試(登記分?jǐn)?shù))</p><p> (7)系統(tǒng)還應(yīng)該提供強(qiáng)大數(shù)據(jù)統(tǒng)計(jì)、查詢、報(bào)表生成以及打印等功能。&
7、lt;/p><p><b> (8)用戶權(quán)限管理</b></p><p><b> (9)異常處理</b></p><p><b> 2.2 任務(wù)目標(biāo)</b></p><p> 本系統(tǒng)主要可以實(shí)現(xiàn)以下任務(wù)目標(biāo):</p><p> 1、系統(tǒng)可以準(zhǔn)確地
8、記錄和查詢學(xué)生信息,包括學(xué)生的姓名、專業(yè)、生日、性別以及身份證號(hào)碼等,可以準(zhǔn)確地記錄學(xué)生的每一次獎(jiǎng)懲情況。</p><p> 2、系統(tǒng)可以對(duì)學(xué)校的院系情況進(jìn)行管理,包括添加查詢修改刪除學(xué)院信息、添加查詢修改刪除某學(xué)院某專業(yè)信息等。</p><p> 3、系統(tǒng)可以準(zhǔn)確地記錄和查詢教師信息,包括教師的姓名、專業(yè)、生日、性別以及身份證號(hào)碼等。</p><p> 4、
9、系統(tǒng)可以對(duì)開設(shè)的課程進(jìn)行管理,包括課程信息的查詢、添加、修改和刪除,選課階段、已開課、統(tǒng)計(jì)成績(jī)、公布成績(jī)?nèi)N狀態(tài)。</p><p> 5、系統(tǒng)可以對(duì)基礎(chǔ)數(shù)據(jù)進(jìn)行維護(hù)。</p><p> 6、學(xué)生選課管理,學(xué)生只可以注銷在選課階段的課程,處于已開課、統(tǒng)計(jì)成績(jī)、公布成績(jī)的課程不可以注銷。</p><p> 7、系統(tǒng)可以提供強(qiáng)大數(shù)據(jù)統(tǒng)計(jì)、查詢、報(bào)表生成以及打印等功能
10、。</p><p> 8、用戶權(quán)限管理:本系統(tǒng)一共設(shè)置了三種用戶身份,分別是管理員用戶、教師用戶和學(xué)生用戶。</p><p> 院系管理員可以管理增改刪查所有學(xué)院情況、課程、老師、學(xué)生情況,修改密碼</p><p> 教師用戶擁有修改、查看那自己所授課程和錄入成績(jī)的權(quán)限,修改密碼</p><p> 學(xué)生用戶則擁有查詢學(xué)籍信息、查詢課程
11、信息、選課、注銷選課和查詢成績(jī)信息的權(quán)限。</p><p><b> 9、異常處理。</b></p><p><b> 三、系統(tǒng)定義</b></p><p><b> 3.1 系統(tǒng)邊界</b></p><p> 系統(tǒng)邊界描述數(shù)據(jù)庫(kù)系統(tǒng)和企業(yè)信息系統(tǒng)的其他部分的接口,是信
12、息系統(tǒng)內(nèi)部構(gòu)成元素與外部有聯(lián)系實(shí)體之間的信息關(guān)系的描述與分割。它并不需要在它們之間劃一條物理邊界,而只需要弄清它們之間信息輸入與輸出的分割。</p><p> 本數(shù)據(jù)庫(kù)系統(tǒng)共包括學(xué)生信息、教師信息、課程信息、學(xué)院及專業(yè)信息、選課信息、授課信息及成績(jī)信息八個(gè)模塊。該信息系統(tǒng)的其他部分包括學(xué)生專業(yè)選擇、教師配置、學(xué)生選課、學(xué)院設(shè)置、課程要求、具體教學(xué)等。</p><p> 數(shù)據(jù)庫(kù)系統(tǒng)的內(nèi)部
13、構(gòu)成元素與外部其他部分之間的信息關(guān)系如下圖所示:</p><p><b> 3.2 用戶視圖 </b></p><p> 3.2.1 學(xué)生(Student)用戶視圖</p><p><b> 修改個(gè)人信息。</b></p><p> 按課程名、課程號(hào)、專業(yè)、學(xué)分等信息查詢課程,選課和查詢已選
14、課程。</p><p> 注銷選課(只能注銷選課階段的課程,已公布成績(jī)的課程不可注銷)。</p><p> 成績(jī)查詢(教師公布成績(jī)后學(xué)生方可查看到自己的成績(jī))。</p><p> 教師(Teacher)用戶視圖</p><p><b> 修改個(gè)人信息。</b></p><p> 修改所授
15、課程的信息(一名教師可教授多門課程)。</p><p> 錄入、查看成績(jī)(錄入成績(jī)的課程狀態(tài)為“統(tǒng)計(jì)成績(jī)” ,成績(jī)錄入的權(quán)限只有教師用戶有)。</p><p> 公布成績(jī)(公布成績(jī)后學(xué)生方可查看到自己的成績(jī))。</p><p> 備選功能:自動(dòng)計(jì)算所授課程的選課人數(shù)、有成績(jī)?nèi)藬?shù)、平均成績(jī),且按成績(jī)由高到低排序。查看所授課程選課情況。教師可以自主選課(教師所在學(xué)
16、院方向的課程)。</p><p> 學(xué)院管理員(Administrator)用戶視圖</p><p><b> 學(xué)生管理:</b></p><p> 查詢、添加、修改、刪除學(xué)生信息,添加學(xué)生獎(jiǎng)懲信息</p><p><b> 教師管理:</b></p><p> 查
17、詢、添加、修改、刪除教師信息。</p><p><b> 課程管理:</b></p><p> 查詢、添加、修改、刪除課程信息。</p><p><b> 選課管理:</b></p><p> 查詢選課信息,添加選課信息(修改選課信息權(quán)限只有學(xué)生用戶有),修改選課狀態(tài)(選課階段、已開課、統(tǒng)計(jì)
18、成績(jī)、公布成績(jī)、結(jié)束)。</p><p><b> 授課管理:</b></p><p> 查詢、添加、修改、刪除授課信息。</p><p><b> 專業(yè)管理:</b></p><p> 查詢、添加、修改、刪除專業(yè)信息。</p><p><b> 學(xué)院管理
19、:</b></p><p> 查詢、添加、修改、刪除學(xué)院信息。</p><p><b> 管理員操作:</b></p><p> 查詢、添加、修改、刪除學(xué)院管理員信息。</p><p><b> 修改個(gè)人信息。</b></p><p> 數(shù)據(jù)庫(kù)系統(tǒng)多用戶
20、視圖</p><p><b> 四、需求分析</b></p><p> 此學(xué)生管理信息系統(tǒng)的主要功能如下圖所示:</p><p> 學(xué)生用戶:修改個(gè)人信息、課程查詢、選課、注銷選課、成績(jī)查詢</p><p> 教師用戶:修改個(gè)人信息、修改所授課程信息、查看學(xué)生選課信息、成績(jī)錄入</p><p&
21、gt; 管理員用戶:學(xué)生管理、教師管理、課程管理、專業(yè)管理、學(xué)員管理、管理員操作</p><p> 4.1 用戶需求說明</p><p> 4.1.1 數(shù)據(jù)需求</p><p><b> 其中需求數(shù)據(jù)為:</b></p><p><b> 學(xué)生基本信息記錄:</b></p>
22、<p> 用戶名、姓名、身份證號(hào)、方向、性別、生日、密碼、獎(jiǎng)懲信息</p><p><b> 教師基本信息記錄:</b></p><p> 用戶名、姓名、身份證號(hào)、方向、性別、生日、密碼</p><p> 管理員基本信息記錄:</p><p> 用戶名、密碼、姓名、權(quán)限等級(jí)</p>&l
23、t;p> 5、課程基本信息記錄:</p><p> 課程號(hào)、課程名、所屬方向、學(xué)分</p><p> 6、學(xué)院及專業(yè)基本信息記錄:</p><p> 學(xué)院:學(xué)院名稱,學(xué)院號(hào)</p><p> 方向:方向名稱、所屬學(xué)院</p><p><b> 7、選課信息管理:</b></
24、p><p> 選課:學(xué)生用戶選定課程的課程號(hào)、課程名、開課專業(yè)、學(xué)分、詳細(xì)信息</p><p> 注銷選課:學(xué)生用戶注銷選課的課程號(hào)、課程名、任課教師、學(xué)分、課程狀態(tài)(只能注銷狀態(tài)為選課階段的課程)</p><p><b> 8、授課信息管理:</b></p><p> 課程號(hào)、課程名、教師號(hào)、教師姓名、選課人數(shù)&l
25、t;/p><p><b> 9、成績(jī)信息管理:</b></p><p> 學(xué)生查看:課程號(hào)、課程名、任課教師、學(xué)分、狀態(tài)、成績(jī)</p><p> 教師錄入:所授課程、學(xué)號(hào)、成績(jī)</p><p> 教師查看:名次、學(xué)號(hào)、姓名、學(xué)院、專業(yè)、班級(jí)、成績(jī)</p><p> 4.1.2 事務(wù)需求<
26、;/p><p><b> 數(shù)據(jù)錄入:</b></p><p> 錄入學(xué)生的基本信息:</p><p> 學(xué)號(hào)、姓名、所屬專業(yè)、性別、生日、身份證號(hào)</p><p><b> 錄入學(xué)生的選課信息</b></p><p> 錄入教師的基本信息:</p><
27、;p> 學(xué)工號(hào)、姓名、院系、性別、生日、身份證號(hào)、研究方向</p><p> 教師錄入學(xué)生的成績(jī)信息:</p><p> 選擇所授課程后,錄入學(xué)號(hào)、成績(jī)</p><p> 錄入課程的基本信息:</p><p> 課程號(hào)、課程名、開課專業(yè)、學(xué)分</p><p><b> 錄入授課信息:<
28、/b></p><p><b> 課程號(hào)、教師號(hào)</b></p><p><b> 錄入專業(yè)信息: </b></p><p><b> 專業(yè)名、所屬學(xué)院</b></p><p><b> 錄入學(xué)院信息:</b></p><
29、p><b> 學(xué)院名、地址</b></p><p> 錄入學(xué)院管理員的基本信息:</p><p> 管理員號(hào)、管理員姓名</p><p> 錄入超級(jí)管理員的基本信息</p><p> 管理員號(hào)、管理員姓名</p><p><b> 數(shù)據(jù)更新/刪除:</b>&
30、lt;/p><p> ?。?) 學(xué)生個(gè)人信息的更新</p><p> ?。?) 學(xué)生注銷選課信息</p><p> (3) 教師個(gè)人信息的更新</p><p> ?。?) 教師所授課程信息的更新</p><p> (5) 教師錄入成績(jī)的更新/ 刪除</p><p> ?。?) 學(xué)生基本信息的更新
31、/ 刪除(管理員操作)</p><p> ?。?) 教師基本信息的更新/ 刪除(管理員操作)</p><p> ?。?) 課程基本信息的更新/ 刪除(管理員操作)</p><p> ?。?) 選課狀態(tài)的更新:分為選課階段、已開課、統(tǒng)計(jì)成績(jī)、公布成績(jī)、結(jié)束(管理員操作)</p><p> 授課信息的更新(管理員操作)</p>&
32、lt;p> 專業(yè)基本信息的更新/ 刪除(管理員操作)</p><p> 學(xué)院基本信息的更新/ 刪除(管理員操作)</p><p> 管理員個(gè)人信息的更新(管理員操作)</p><p><b> 數(shù)據(jù)查看:</b></p><p><b> 學(xué)生用戶視圖下:</b></p>
33、<p> (1) 列出學(xué)生基本信息</p><p> ?。?) 按照課程號(hào)列出課程的課程號(hào)、課程名、開課專業(yè)、學(xué)分</p><p><b> 教師用戶視圖下:</b></p><p> ?。?) 列出教師基本信息</p><p> ?。?) 列出所授課程的基本信息</p><p>
34、; ?。?) 列出所授課程的學(xué)生選課信息:學(xué)號(hào)、姓名、所屬專業(yè)、性別、生日、身份證號(hào)</p><p><b> 管理員用戶視圖下:</b></p><p> ?。?) 按照學(xué)號(hào)列出學(xué)生的學(xué)號(hào)、姓名、所屬專業(yè)、性別、生日、身份證號(hào)</p><p> ?。?) 按照學(xué)工號(hào)列出教師的學(xué)工號(hào)、姓名、院系、性別、生日、身份證號(hào)、研究方向</p&g
35、t;<p> ?。?) 按照課程號(hào)列出課程的課程號(hào)、課程名、開課專業(yè)、學(xué)分</p><p> ?。?)按照課程號(hào)列出選課信息:課程號(hào)、課程名、學(xué)號(hào)、學(xué)生姓名、教師號(hào)、教師姓名、狀態(tài)、成績(jī)</p><p> ?。?)按照學(xué)生學(xué)號(hào)列出選課信息:課程號(hào)、課程名、學(xué)號(hào)、學(xué)生姓名、教師號(hào)、教師姓名、狀態(tài)、成績(jī)</p><p> (6)按照教師學(xué)工號(hào)列出選課信息
36、:課程號(hào)、課程名、學(xué)號(hào)、學(xué)生姓名、教師號(hào)、教師姓名、狀態(tài)、成績(jī)</p><p> ?。?)按照課程號(hào)列出授課信息:課程號(hào)、課程名、教師號(hào)、教師姓名、選課人數(shù)</p><p> (8)按照課程名列出授課信息:課程號(hào)、課程名、教師號(hào)、教師姓名、選課人數(shù)</p><p> (9)按照教師學(xué)工號(hào)列出授課信息:課程號(hào)、課程名、教師號(hào)、教師姓名、選課人數(shù)</p>
37、<p> ?。?0)按照學(xué)院管理員號(hào)列出學(xué)院管理員的管理員號(hào)、姓名</p><p> ?。?1)按照超級(jí)管理員號(hào)列出超級(jí)管理員的管理員號(hào)、姓名</p><p> 4.2 系統(tǒng)需求說明 </p><p> 該學(xué)生選課管理信息系統(tǒng)需要較強(qiáng)的數(shù)據(jù)處理功能,理論上應(yīng)該能夠容納上萬人的數(shù)據(jù)資料,并且在搜索方面理應(yīng)具有較快的響應(yīng)速度,能夠處理多方面的數(shù)據(jù)請(qǐng)求。
38、權(quán)限設(shè)置清晰明了,能夠有效的防止越權(quán)操作。系統(tǒng)能夠有效的處理各種異常,具有較好的健壯性。</p><p> 4.2.1 初始數(shù)據(jù)庫(kù)大小</p><p> ?。?) 大約有10門課程,分屬于約4個(gè)學(xué)院中,每個(gè)學(xué)院有10個(gè)以下的專業(yè)。</p><p> ?。?) 大約有20名學(xué)生分布在各個(gè)學(xué)院,每個(gè)學(xué)院平均有2名學(xué)生。</p><p> ?。?
39、) 大約有20名教師分布在各個(gè)學(xué)院,每個(gè)學(xué)院平均有2名教師。</p><p> ?。?) 大約有10名管理員分布在各個(gè)學(xué)院,每個(gè)學(xué)院平均有1名學(xué)院管理員。</p><p> ?。?) 每名學(xué)生一學(xué)期平均選擇2門課程。</p><p> ?。?) 每名教師平均所授課程為2門。</p><p> 4.2.2 網(wǎng)絡(luò)和共享需求</p>
40、<p> ?。?) 所有學(xué)院必須安全的和總部中央數(shù)據(jù)庫(kù)網(wǎng)絡(luò)互連</p><p> (2) 必須能夠支持每個(gè)學(xué)院至少300名用戶同時(shí)訪問,需要考慮這么大數(shù)量并發(fā)訪問的許可需求。</p><p><b> 性能:</b></p><p><b> 4.2.3 性能</b></p><p&
41、gt; 高峰期:每年的1月、3月、6月、9月</p><p> ?。?) 單個(gè)記錄查詢時(shí)間少于1秒,高峰期少于5秒</p><p> ?。?) 多個(gè)記錄查詢時(shí)間少于5秒,高峰期少于10秒</p><p> (3) 更新/保存記錄時(shí)間少于1秒,高峰期少于5秒</p><p><b> 4.2.4 安全性</b><
42、;/p><p> ?。?) 數(shù)據(jù)庫(kù)必須有口令保護(hù)</p><p> ?。?) 每個(gè)用戶分配特定的用戶視圖所應(yīng)有的訪問權(quán)限</p><p> ?。?) 用戶只能在適合他們完成工作需要的窗口中看到需要的數(shù)據(jù)</p><p> 4.2.5 備份和恢復(fù)</p><p><b> 每天24點(diǎn)備份</b>&l
43、t;/p><p> 4.2.6 用戶界面</p><p><b> 菜單驅(qū)動(dòng),聯(lián)機(jī)幫助</b></p><p> 4.2.7 法律問題</p><p> 對(duì)用戶信息管理,遵守法律</p><p><b> 五、數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)</b></p><p&g
44、t; 5.1 ER圖【3】:</p><p> 本系統(tǒng)的ER圖如下:</p><p> 實(shí)體: 聯(lián)系: 屬性: </p><p> m m</p><p> n n </p&
45、gt;<p> m m </p><p> 1 1</p><p> 1 m</p><p> 該ER圖包括課程、教師、學(xué)生、學(xué)院、專業(yè)五個(gè)實(shí)
46、體和授課、選課、工作于、屬于、包含五個(gè)聯(lián)系。</p><p><b> 5.2 數(shù)據(jù)字典</b></p><p> 5.2.1 從數(shù)據(jù)字典中抽取出來的系統(tǒng)實(shí)體描述:</p><p> 5.2.2 從數(shù)據(jù)字典中抽取出來的聯(lián)系的描述:</p><p><b> 5.3 關(guān)系表</b></p
47、><p> 該數(shù)據(jù)庫(kù)關(guān)系圖如下:</p><p><b> 其中包含的聯(lián)系有:</b></p><p><b> 六、數(shù)據(jù)庫(kù)物理設(shè)計(jì)</b></p><p><b> 6.1 安全機(jī)制</b></p><p> 6.1.1 系統(tǒng)安全</p&g
48、t;<p> 1、提供了充足的異常處理機(jī)制,能夠捕獲由各種錯(cuò)誤引發(fā)的異常(如:越權(quán)操作、輸入數(shù)據(jù)類型與數(shù)據(jù)庫(kù)要求類型不一致、查詢過程中出現(xiàn)的錯(cuò)誤等等)。</p><p> 2、系統(tǒng)登錄時(shí)要憑用戶名和口令進(jìn)入,輸入正確時(shí)才可以進(jìn)入系統(tǒng)。用戶需要選擇自己的身份(學(xué)生、教師、管理員),若用戶名和密碼輸入正確,系統(tǒng)可以打開符合該用戶身份的操作界面。其他界面該用戶沒有權(quán)限訪問。</p>&l
49、t;p> 6.1.2 數(shù)據(jù)安全</p><p> 1、根據(jù)用戶身份,用戶進(jìn)入不同的用戶界面,即享有不同的權(quán)限,只有管理員才可以實(shí)現(xiàn)修改一些重要信息,以確保數(shù)據(jù)庫(kù)不被隨意更改,保證數(shù)據(jù)安全。</p><p> 2、該學(xué)生系統(tǒng)共有三種身份:學(xué)生、教師、管理員。他們相應(yīng)的權(quán)限如下:</p><p> (1)學(xué)生:查看修改個(gè)人信息、查看課程信息、選課/注銷選課
50、(只有在選課階段的課程才可以注銷)、查看自己所選課程成績(jī)(教師公布成績(jī)后學(xué)生方可查看到自己的成績(jī))。</p><p> ?。?)教師:查看修改個(gè)人信息、查看修改所授課程信息(一名教師可教授多門課程)、查看所授課程的學(xué)生選課情況、成績(jī)錄入(錄入成績(jī)的課程狀態(tài)為“統(tǒng)計(jì)成績(jī)” ,成績(jī)錄入的權(quán)限只有教師用戶有)、公布成績(jī)(公布成績(jī)后學(xué)生方可查看到自己的成績(jī))。</p><p> ?。?)管理員:添
51、加刪除修改查看學(xué)生信息、添加刪除修改查看教師信息、添加刪除修改查看課程信息、添加刪除修改查看學(xué)院信息、添加刪除修改查看專業(yè)信息、添加查看選課信息(修改選課信息權(quán)限只有學(xué)生用戶有)、修改課程狀態(tài)、添加修改查看授課信息、添加刪除修改查看其他管理員信息、查看修改個(gè)人信息。</p><p><b> 6.2 其他</b></p><p> 規(guī)范化產(chǎn)生一個(gè)結(jié)構(gòu)上一致且最小冗
52、余的邏輯數(shù)據(jù)庫(kù)設(shè)計(jì),但是,規(guī)范化的數(shù)據(jù)庫(kù)設(shè)計(jì)有時(shí)不能提供最大的處理效率。所以我們?cè)敢饨邮找?guī)范化設(shè)計(jì)方面的一些損失而實(shí)現(xiàn)更好的性能。在該系統(tǒng)中,表“學(xué)生”中復(fù)制了表“專業(yè)”的“所屬學(xué)院”一列,加快了檢索速度,方便通過列“學(xué)院”來查詢特定學(xué)院的學(xué)生,也方便形成某學(xué)院的視圖。</p><p><b> 七、應(yīng)用程序設(shè)計(jì)</b></p><p><b> 7.1
53、 功能模塊</b></p><p> 該學(xué)生管理信息系統(tǒng)共有三個(gè)角色:學(xué)生、教師、管理員</p><p><b> 7.2 界面設(shè)計(jì)</b></p><p><b> 登錄界面</b></p><p><b> 7.3 代碼設(shè)計(jì)</b></p>
54、<p><b> 連接數(shù)據(jù)庫(kù):</b></p><p> String url="jdbc:mysql://localhost:3306/dbsml?"</p><p> + "user=dbsml & password=28129";</p><p> Connection
55、con;</p><p> String sql;</p><p> Statement stmt;</p><p><b> try{</b></p><p> Class.forName("com.mysql.jdbc.Driver");</p><p> Sys
56、tem.out.println(4);</p><p> conn=DriverManager.getConnection(url,"dbsml","28129");</p><p> stmt=conn.createStatement();</p><p> }catch (SQLException e) {</
57、p><p> System.out.println("MySQL操作錯(cuò)誤");</p><p> e.printStackTrace();</p><p><b> 增加:</b></p><p> System.out.println("actionPerformed4");
58、</p><p> b4.setPreferredSize(new Dimension(120, 40));</p><p> b4.addActionListener(new ActionListener() {</p><p><b> @Override</b></p><p> public void a
59、ctionPerformed(ActionEvent e) {</p><p> // // TODO Auto-generated method stub</p><p><b> try {</b></p><p> jt.print();</p><p> } catch (PrinterException
60、 e1) {</p><p> // TODO Auto-generated catch block</p><p> e1.printStackTrace();</p><p><b> }</b></p><p><b> }</b></p><p><b&
61、gt; });</b></p><p><b> 刪除:</b></p><p><b> try{</b></p><p> con=DriverManager.getConnection(url,"dbsml","28129");</p><
62、;p> stmt=con.createStatement();</p><p> sql = "select * from course where C_id = '" + t1.getText() + "'";</p><p> ResultSet rs = stmt.executeQuery(sql);</p&g
63、t;<p> if(rs.next()){</p><p> sql="DELETE FROM course WHERE(C_id='"+t1.getText()+"')";</p><p> stmt.executeUpdate(sql);</p><p> sql="DELE
64、TE FROM tc WHERE(C_id='"+t1.getText()+"')";</p><p> stmt.executeUpdate(sql);</p><p> sql="DELETE FROM sc WHERE(C_id='"+t1.getText()+"')";<
65、/p><p> stmt.executeUpdate(sql);</p><p> JOptionPane.showMessageDialog(this,"刪除課程成功!","提示",JOptionPane.INFORMATION_MESSAGE);</p><p><b> }</b></p&g
66、t;<p><b> else</b></p><p> JOptionPane.showMessageDialog(this,"此課程不存在!","提示",JOptionPane.INFORMATION_MESSAGE);</p><p> stmt.close();</p><p>
67、; con.close();</p><p> }catch(SQLException e2){</p><p> e2.printStackTrace();</p><p><b> }</b></p><p> t1.setText("");</p><p>&l
68、t;b> }</b></p><p><b> 查詢:</b></p><p><b> try{</b></p><p> sql = "SELECT * FROM " + getTable() + " WHERE "+ chooseState() + &
69、quot; = '" + t1.getText() + "'" +</p><p> " and " + getPassword() + " = '" + t2.getText() + "'";</p><p> System.out.println(sql);&l
70、t;/p><p> ResultSet rs = stmt.executeQuery(sql);</p><p> if(rs.next()){</p><p> result = true;</p><p><b> }</b></p><p> System.out.println(re
71、sult);</p><p> stmt.close();</p><p> conn.close();</p><p> }catch (SQLException e) {</p><p> System.out.println("MySQL操作錯(cuò)誤");</p><p> e.prin
72、tStackTrace();</p><p> } catch (Exception e) {</p><p> e.printStackTrace();</p><p><b> }</b></p><p> 獲取Choice狀態(tài):</p><p> public int getSta
73、te(){</p><p> System.out.println(7);</p><p> int state = 1;</p><p> if(c.getSelectedItem().equals("管 理 員")){</p><p> state = 1;</p><p> Syst
74、em.out.println(8);</p><p> }else if(c.getSelectedItem().equals("教 師")){</p><p> state = 2;</p><p> System.out.println(9);</p><p><b> }</b><
75、/p><p> else if(c.getSelectedItem().equals("學(xué) 生")){</p><p> state = 3; </p><p> System.out.println(10);</p><p><b> }</b></p><p> re
76、turn state;</p><p><b> }</b></p><p> 給Choice增加查詢到的item</p><p> public void addChoice() throws SQLException {</p><p> // TODO Auto-generated method stub&
77、lt;/p><p> System.out.println("addChoice");</p><p> conn = getConnection();</p><p> stmt = conn.createStatement();</p><p> sql = "select C_name from tea
78、cher natural join tc natural join course where T_id = '"+DLA.t1.getText()+"'";</p><p> ResultSet rs = stmt.executeQuery(sql);</p><p> System.out.println(sql);</p>
79、<p> while(rs.next()){</p><p> c.add(rs.getString(1));</p><p><b> }</b></p><p><b> }</b></p><p> 給TableModle加數(shù)據(jù)</p><p>
80、 class MyTableModel1 extends AbstractTableModel{</p><p> String kcnum,kcname,score;</p><p> final String[] columnNames={"課程號(hào)","課程名","學(xué)分"};</p><p> O
81、bject[][]data=new Object[100][3];</p><p> public MyTableModel1(){</p><p><b> int m=0;</b></p><p> String url="jdbc:mysql://localhost:3306/dbsml?"</p>
82、<p> + "user=dbsml & password=28129";</p><p> Connection con;</p><p> String sql;</p><p> Statement stmt;</p><p><b> try{</b></p
83、><p> Class.forName("com.mysql.jdbc.Driver");</p><p> }catch(java.lang.ClassNotFoundException e){</p><p><b> }</b></p><p><b> try{</b>
84、;</p><p> con=DriverManager.getConnection(url,"dbsml","28129");</p><p> stmt=con.createStatement();</p><p> sql="SELECT * FROM tc natural join course WHE
85、RE T_id='"+DLA.t1.getText()+"'";</p><p> ResultSet rs=stmt.executeQuery(sql);</p><p> while(rs.next()){</p><p> kcnum=rs.getString(1);</p><p>
86、 kcname=rs.getString(3);</p><p> score=rs.getString(5);</p><p> data[m][0]=kcnum;data[m][1]=kcname;data[m++][2]=score;</p><p><b> }</b></p><p> stmt.cl
87、ose();</p><p> con.close();</p><p> }catch(SQLException e){</p><p><b> }</b></p><p><b> }</b></p><p> public int getColumnCou
88、nt(){</p><p> return columnNames.length;</p><p><b> }</b></p><p> public int getRowCount(){</p><p> return data.length;</p><p><b> }
89、</b></p><p> public String getColumnName(int col){</p><p> return columnNames[col];</p><p><b> }</b></p><p> public Object getValueAt(int row,int
90、col){</p><p> return data[row][col];</p><p><b> }</b></p><p> public void setValueAt(Object value,int row,int col){</p><p> int numRows=getRowCount();&l
91、t;/p><p> int numCols=getColumnCount();</p><p> for(int i=0;i<numRows;i++){</p><p> for(int j=0;j<numCols;j++){</p><p> System.out.print(" "+data[i][j]
92、);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> 打?。?lt;/b>&
93、lt;/p><p><b> 下載:</b></p><p><b> int m=0;</b></p><p> System.out.println("actionPerformed3");</p><p> Boolean result=false;</p>
94、<p><b> try{</b></p><p> Class.forName("com.mysql.jdbc.Driver");</p><p> System.out.println(4);</p><p> conn=getConnection();</p><p>
95、Statement stmt=conn.createStatement();</p><p> System.out.println(5);</p><p> String sql = "select C_name,S_id,S_name,State_name,score from sc "</p><p> + "natural
96、 join student natural join state natural join tc natural"</p><p> + " join course"</p><p> + " where T_id='"+DLA.t1.getText()+"'and C_name = '"+g
97、etChoice()+"'";</p><p> System.out.println(sql);</p><p> ResultSet rs = stmt.executeQuery(sql);</p><p> rs.last();</p><p> int temp=rs.getRow();</p
98、><p> rs.beforeFirst();</p><p> o2=new Object[temp][5];</p><p> while(rs.next()){</p><p> System.out.println(rs.getString(1));</p><p> o2[m][0]=rs.getStr
99、ing(1);</p><p> o2[m][1]=rs.getString(2);</p><p> o2[m][2]=rs.getString(3);</p><p> o2[m][3]=rs.getString(4);</p><p> o2[m++][4]=rs.getString(5);</p><p&g
100、t;<b> }</b></p><p> System.out.println(result);</p><p> stmt.close();</p><p> conn.close();</p><p> }catch (SQLException c) {</p><p> Sys
101、tem.out.println("MySQL操作錯(cuò)誤");</p><p> c.printStackTrace();</p><p> } catch (Exception d) {</p><p> d.printStackTrace();</p><p><b> } </b></
102、p><p> JFileChooser chooser = new JFileChooser();</p><p> chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);</p><p> if (JFileChooser.APPROVE_OPTION == chooser.showSa
103、veDialog(null)) {</p><p> File saveFile = chooser.getSelectedFile();</p><p> if (saveFile.exists()) {</p><p> JOptionPane.showConfirmDialog(null, "文件已存在是否覆蓋",</p>
104、<p> "文件存在", JOptionPane.YES_NO_OPTION,</p><p> JOptionPane.WARNING_MESSAGE);</p><p><b> } else {</b></p><p><b> try {</b></p>&l
105、t;p><b> // 打開文件</b></p><p> String filepath = saveFile.getPath() + ".xls";</p><p> File fi = new File(filepath);</p><p> WritableWorkbook book = Workboo
106、k.createWorkbook(fi);</p><p> // 生成名為“第一頁(yè)”的工作表,參數(shù)0表示這是第一頁(yè)</p><p> WritableSheet sheet = book.createSheet("第一頁(yè)", 0);</p><p> // 在Label對(duì)象的構(gòu)造子中指名單元格位置是第一列第一行(0,0)</p>
107、;<p> // 以及單元格內(nèi)容為test</p><p> Label label = new Label(0, 0, "課程名稱");</p><p> Label label01 = new Label(1, 0, "學(xué)生學(xué)號(hào)");</p><p> Label label02 = new Labe
108、l(2, 0, "學(xué)生姓名");</p><p> Label label03 = new Label(3, 0, "課程狀態(tài)");</p><p> Label label04 = new Label(4, 0, "課程成績(jī)");</p><p> // 將定義好的單元格添加到工作表中</p&
109、gt;<p> sheet.addCell(label);</p><p> sheet.addCell(label01);</p><p> sheet.addCell(label02);</p><p> sheet.addCell(label03);</p><p> sheet.addCell(label04)
110、;</p><p><b> /*</b></p><p> * 生成一個(gè)保存數(shù)字的單元格 必須使用Number的完整包路徑,否則有語法歧義</p><p> * 單元格位置是第二列,第一行,值為789.123</p><p><b> */</b></p><p>
111、 for (int i = 0; i < o2.length; i++) {</p><p> for (int k = 0; k < o2[i].length; k++) {</p><p> Label lab = new Label(k, i + 1, o2[i][k]</p><p> .toString());</p>&
112、lt;p> sheet.addCell(lab);</p><p><b> }</b></p><p><b> }</b></p><p> // 寫入數(shù)據(jù)并關(guān)閉文件</p><p> book.write();</p><p> book.close(
113、);</p><p> } catch (Exception e1) {</p><p> System.out.println(e1);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計(jì)--學(xué)生選課信息管理系統(tǒng)
- 信息管理系統(tǒng)課程設(shè)計(jì)_學(xué)生選課管理信息系統(tǒng)課程設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--學(xué)生選課信息管理系統(tǒng)
- 學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)報(bào)告--學(xué)生信息管理系統(tǒng)
- 學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 學(xué)生選課管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)報(bào)告--學(xué)生選課管理系統(tǒng)
- 學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告 (2)
- vb課程設(shè)計(jì)報(bào)告-- 學(xué)生信息管理系統(tǒng)
- java課程設(shè)計(jì)報(bào)告--學(xué)生信息管理系統(tǒng)
- java課程設(shè)計(jì)報(bào)告---學(xué)生信息管理系統(tǒng)
- vb課程設(shè)計(jì)報(bào)告--學(xué)生信息管理系統(tǒng)
- c課程設(shè)計(jì)報(bào)告(學(xué)生信息管理系統(tǒng))
- c++課程設(shè)計(jì)——學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論