2023年全國(guó)碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論