版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、<p><b> 數(shù)據(jù)庫課程設計報告</b></p><p> -------學生信息管理系統(tǒng)</p><p> 軟件學院軟件工程專業(yè)07級1班 </p><p> 姓名:*** 學號:*********** </p><p><b> 目 錄</b></p>
2、<p> 一、系統(tǒng)開發(fā)平臺1</p><p><b> 二、數(shù)據(jù)庫規(guī)劃2</b></p><p> 2.1 任務陳述2</p><p> 2.2 任務目標2</p><p><b> 三、系統(tǒng)定義3</b></p><p> 3.1 系統(tǒng)邊
3、界3</p><p> 3.2 用戶視圖5</p><p><b> 四、需求分析7</b></p><p> 4.1 用戶需求說明8</p><p> 4.1.1 數(shù)據(jù)需求8</p><p> 4.1.2 事務需求8</p><p> 4.2 系統(tǒng)
4、需求說明11</p><p> 五、數(shù)據(jù)庫邏輯設計13</p><p> 5.1 ER圖13</p><p> 5.2 數(shù)據(jù)字典14</p><p> 5.3 關(guān)系表16</p><p> 六、數(shù)據(jù)庫物理設計17</p><p><b> 6.1 索引17&l
5、t;/b></p><p><b> 6.2 視圖17</b></p><p> 6.3 安全機制18</p><p><b> 6.4 其他18</b></p><p> 七、應用程序設計19</p><p> 7.1 功能模塊19</p&g
6、t;<p> 7.2 界面設計20</p><p> 7.3 事務設計30</p><p> 八、測試和運行58</p><p><b> 九、總結(jié)65</b></p><p> 9.1 系統(tǒng)優(yōu)點65</p><p> 9.2 系統(tǒng)不足65</p>
7、<p> 9.3 系統(tǒng)改進65</p><p> 9.4 經(jīng)驗與收獲65</p><p> 附. 參考文獻66</p><p><b> 一、系統(tǒng)開發(fā)平臺</b></p><p> 1.1 題目:學生信息管理系統(tǒng)</p><p> 學生信息管理系統(tǒng)是一個教育單位不可
8、缺少的部分,它的內(nèi)容對于學校的決策者和管理者來說都至關(guān)重要,所以學生信息管理系統(tǒng)應該能夠為用戶提供充足的信息和快捷的查詢手段。但一直以來人們使用傳統(tǒng)人工的方式管理文件檔案,這種管理方式存在著許多缺點,如效率低、保密性差,另外時間一長,將產(chǎn)生大量的文件和數(shù)據(jù),這對于查找、更新和維護都帶來了不少的困難。系統(tǒng)采用Eclipse V3.2 JDK 1.6作為開發(fā)工具,Java為開發(fā)語言,采用Microsoft SQL Server 2000建
9、立數(shù)據(jù)庫,先在Microsoft SQL Server 2000中設計并制作各部分需要調(diào)用的數(shù)據(jù)庫,并進行初始數(shù)據(jù)的輸入,再進行界面的設計和事件代碼的編寫,在指導老師的幫助下,已經(jīng)基本上成功地實現(xiàn)了設計要求。其中數(shù)據(jù)庫設計和程序設計是系統(tǒng)的核心部分。通過對數(shù)據(jù)庫的概念設計、邏輯設計、物理設計和系統(tǒng)的模塊設計,使得系統(tǒng)界面簡潔,功能明確,方便了工作人員的操作。</p><p> 1.2 開發(fā)語言:Java<
10、/p><p> 用Java做設計流程清晰、結(jié)構(gòu)合理,有良好的可擴充性和耦合性。</p><p> 1.3 開發(fā)工具:Eclipse V3.2 JDK 1.6</p><p> 1.4 數(shù)據(jù)庫:Microsoft SQL Server 2000</p><p> SQL Server 2000 Enterprise Edition則是一套
11、完整的數(shù)據(jù)庫和分析產(chǎn)品,具有高度可擴展性和可靠性,對市場的快速反應能力強,可以快速構(gòu)建各種業(yè)務方案,且具有高度的安全性保障。</p><p> 1.5 操作系統(tǒng):Microsoft Windows XP</p><p><b> 二、數(shù)據(jù)庫規(guī)劃</b></p><p><b> 2.1 任務陳述</b></p&
12、gt;<p> 學生信息管理系統(tǒng)是一個教育單位不可缺少的部分,它的內(nèi)容對于學校的決策者和管理者來說都至關(guān)重要。隨著學校的規(guī)模不斷擴大,學生數(shù)量急劇增加,有關(guān)學生的各種信息量也成倍增長?!?】面對龐大的信息量需要有學生管理系統(tǒng)來提高學生管理工作的效率。一個完善的學生信息管理系統(tǒng)能夠極大地提高學生信息管理的效率,具有檢索迅速、查找方便、可靠性高、存儲量大、更新快、壽命長、成本低等優(yōu)點。【2】</p><p
13、> 本學生信息管理系統(tǒng)包括學籍信息管理、院系信息管理、教師信息管理、課程信息管理、選課信息管理、授課信息管理、成績信息管理七大模塊。一共設置了三種用戶身份,分別是Administrator用戶、Teacher用戶和Student用戶。管理員可以擁有完全的權(quán)限管理系統(tǒng),教師用戶擁有修改、查看那自己所授課程和錄入成績的權(quán)限,而學生用戶則擁有查詢學籍信息、查詢課程信息、選課、注銷選課和查詢成績信息的權(quán)限。</p><
14、;p><b> 2.2 任務目標</b></p><p> 本系統(tǒng)主要可以實現(xiàn)以下任務目標:</p><p> 1、系統(tǒng)可以準確地記錄和查詢學生信息,包括學生的姓名、用戶名、密碼、院系、專業(yè)、班級、入學時間、聯(lián)系方式等。</p><p> 2、系統(tǒng)可以對學校的院系情況進行管理,包括添加修改刪除學院信息、添加修改刪除某學院某專業(yè)信息
15、等。</p><p> 3、系統(tǒng)可以準確地記錄和查詢教師信息,包括教師的姓名、用戶名、密碼、院系、研究方向、入校時間、聯(lián)系方式等。</p><p> 4、系統(tǒng)可以對基礎數(shù)據(jù)進行維護。</p><p> 5、系統(tǒng)可以對開設的課程進行管理,包括課程信息的查詢、添加、修改和刪除,每門課程的狀態(tài)分為選課階段、已開課、統(tǒng)計成績、公布成績四種狀態(tài)。</p>
16、<p> 6、學生選課管理,學生只可以注銷在選課階段的課程,處于已開課、統(tǒng)計成績、公布成績的課程不可以注銷。</p><p> 7、成績信息的錄入和管理,系統(tǒng)可以自動計算每門課程學生的平均分并且可按照學生成績排名。</p><p> 8、系統(tǒng)可以提供強大數(shù)據(jù)統(tǒng)計、查詢、報表生成以及打印等功能。</p><p> 9、用戶權(quán)限管理:本系統(tǒng)一共設置了三
17、種用戶身份,分別是Administrator用戶、Teacher用戶和Student用戶。管理員可以擁有完全的權(quán)限管理系統(tǒng),教師用戶擁有修改、查看那自己所授課程和錄入成績的權(quán)限,而學生用戶則擁有查詢學籍信息、查詢課程信息、選課、注銷選課和查詢成績信息的權(quán)限。</p><p><b> 10、異常處理。</b></p><p><b> 三、系統(tǒng)定義<
18、;/b></p><p><b> 3.1 系統(tǒng)邊界</b></p><p> 系統(tǒng)邊界描述數(shù)據(jù)庫系統(tǒng)和企業(yè)信息系統(tǒng)的其他部分的接口,是信息系統(tǒng)內(nèi)部構(gòu)成元素與外部有聯(lián)系實體之間的信息關(guān)系的描述與分割。它并不需要在它們之間劃一條物理邊界,而只需要弄清它們之間信息輸入與輸出的分割。</p><p> 本數(shù)據(jù)庫系統(tǒng)共包括學生信息、教師信息
19、、課程信息、學院及專業(yè)信息、選課信息、授課信息及成績信息八個模塊。該信息系統(tǒng)的其他部分包括學生專業(yè)選擇、教師配置、學生選課、學院設置、課程要求、具體教學等。</p><p> 數(shù)據(jù)庫系統(tǒng)的內(nèi)部構(gòu)成元素與外部其他部分之間的信息關(guān)系如下圖所示:</p><p><b> 3.2 用戶視圖 </b></p><p> 3.2.1 學生(Stud
20、ent)用戶視圖</p><p><b> 修改個人信息。</b></p><p> 按課程名、課程號、專業(yè)、學分等信息查詢課程,選課和查詢已選課程。</p><p> 注銷選課(只能注銷選課階段的課程,已公布成績的課程不可注銷)。</p><p> 成績查詢(教師公布成績后學生方可查看到自己的成績)。</
21、p><p> 教師(Teacher)用戶視圖</p><p><b> 修改個人信息。</b></p><p> 修改所授課程的信息(一名教師可教授多門課程)。</p><p> 查看所授課程的學生選課情況。</p><p> 錄入、查看成績(錄入成績的課程狀態(tài)為“統(tǒng)計成績” ,成績錄入的權(quán)
22、限只有教師用戶有)。</p><p> 公布成績(公布成績后學生方可查看到自己的成績)。</p><p> 自動計算所授課程的選課人數(shù)、有成績?nèi)藬?shù)、平均成績,且按成績由高到低排序。</p><p> 管理員(Administrator)用戶視圖</p><p><b> 學生管理:</b></p>
23、<p> 查詢、添加、修改、刪除學生信息。</p><p><b> 教師管理:</b></p><p> 查詢、添加、修改、刪除教師信息。</p><p><b> 課程管理:</b></p><p> 查詢、添加、修改、刪除課程信息。</p><p>
24、<b> 選課管理:</b></p><p> 查詢選課信息,添加選課信息(修改選課信息權(quán)限只有學生用戶有),修改選課狀態(tài)(選課階段、已開課、統(tǒng)計成績、公布成績、結(jié)束)。</p><p><b> 授課管理:</b></p><p> 查詢、添加、修改授課信息。</p><p><b&
25、gt; 專業(yè)管理:</b></p><p> 添加、修改、刪除專業(yè)信息。</p><p><b> 學院管理:</b></p><p> 添加、修改、刪除學院信息。</p><p><b> 管理員操作:</b></p><p> 查詢、添加、修改、刪
26、除管理員信息。</p><p><b> 修改個人信息。</b></p><p> 數(shù)據(jù)庫系統(tǒng)多用戶視圖</p><p><b> 四、需求分析</b></p><p> 此學生管理信息系統(tǒng)的主要功能如下圖所示:</p><p> 4.1 用戶需求說明</p&
27、gt;<p> 4.1.1 數(shù)據(jù)需求</p><p><b> 其中需求數(shù)據(jù)為:</b></p><p><b> 學生基本信息記錄:</b></p><p> 用戶名、密碼、姓名、院系、專業(yè)、班級、入學時間、手機號</p><p><b> 教師基本信息記錄:&l
28、t;/b></p><p> 姓名、用戶名、密碼、院系、研究方向、入校時間、手機號</p><p> 管理員基本信息記錄:</p><p> 用戶名、密碼、姓名、權(quán)限等級、郵箱、手機號、注冊日期</p><p><b> 課程基本信息記錄:</b></p><p> 課程號、課程名
29、、所屬專業(yè)、學分、備注</p><p> 學院及專業(yè)基本信息記錄:</p><p> 學院:學院名稱、地址</p><p> 專業(yè):專業(yè)名稱、所屬學院</p><p><b> 選課信息管理:</b></p><p> 選課:學生用戶選定課程的課程號、課程名、開課專業(yè)、學分、詳細信息&l
30、t;/p><p> 注銷選課:學生用戶注銷選課的課程號、課程名、任課教師、學分、課程狀態(tài)(只能注銷狀態(tài)為選課階段的課程)</p><p><b> 授課信息管理:</b></p><p> 課程號、課程名、教師號、教師姓名、選課人數(shù)</p><p><b> 成績信息管理:</b></p&
31、gt;<p> 學生查看:課程號、課程名、任課教師、學分、狀態(tài)、成績</p><p> 教師錄入:所授課程、學號、成績</p><p> 教師查看:名次、學號、姓名、學院、專業(yè)、班級、入學年份、成績、狀態(tài)</p><p> 4.1.2 事務需求</p><p><b> 數(shù)據(jù)錄入:</b><
32、/p><p> 錄入學生的基本信息:</p><p> 學號、姓名、所屬專業(yè)、班級、入學年份</p><p><b> 錄入學生的選課信息</b></p><p> 錄入教師的基本信息:</p><p> 學工號、姓名、院系、研究方向、注冊年份</p><p> 教
33、師錄入學生的成績信息:</p><p> 選擇所授課程后,錄入學號、成績</p><p> 錄入課程的基本信息:</p><p> 課程號、課程名、開課專業(yè)、學分、詳細信息</p><p><b> 錄入授課信息:</b></p><p><b> 課程號、教師號</b&
34、gt;</p><p><b> 錄入專業(yè)信息: </b></p><p><b> 專業(yè)名、所屬學院</b></p><p><b> 錄入學院信息:</b></p><p><b> 學院名、地址</b></p><p>
35、; 錄入新管理員的基本信息:</p><p> 管理員號、管理員姓名、權(quán)限設置(輔導員級、院級、校級、全局)</p><p><b> 數(shù)據(jù)更新/刪除:</b></p><p> ?。?) 學生個人信息的更新</p><p> ?。?) 學生注銷選課信息</p><p> ?。?) 教師個人
36、信息的更新</p><p> ?。?) 教師所授課程信息的更新</p><p> ?。?) 教師錄入成績的更新/ 刪除</p><p> (6) 學生基本信息的更新/ 刪除(管理員操作)</p><p> ?。?) 教師基本信息的更新/ 刪除(管理員操作)</p><p> ?。?) 課程基本信息的更新/ 刪除(管理
37、員操作)</p><p> (9) 選課狀態(tài)的更新:分為選課階段、已開課、統(tǒng)計成績、公布成績、結(jié)束(管理員操作)</p><p> 授課信息的更新(管理員操作)</p><p> 專業(yè)基本信息的更新/ 刪除(管理員操作)</p><p> 學院基本信息的更新/ 刪除(管理員操作)</p><p> 管理員個人
38、信息的更新(管理員操作)</p><p> 新管理員基本信息的更新/ 刪除(管理員操作)</p><p><b> 數(shù)據(jù)查看:</b></p><p><b> 學生用戶視圖下:</b></p><p> (1) 列出學生基本信息</p><p> ?。?) 按照課程
39、號列出課程的課程號、課程名、開課專業(yè)、學分、詳細信息</p><p> ?。?) 按照課程名列出所有課程的課程號、課程名、開課專業(yè)、學分、詳細信息</p><p> ?。?) 按照開課專業(yè)列出所有課程的課程號、課程名、開課專業(yè)、學分、詳細信息</p><p> (5) 按照學分列出所有課程的課程號、課程名、開課專業(yè)、學分、詳細信息</p><p
40、> ?。?) 列出所選課程的課程號、課程名、任課教師、學分、狀態(tài)、成績</p><p><b> 教師用戶視圖下:</b></p><p> ?。?) 列出教師基本信息</p><p> ?。?) 列出所授課程的基本信息</p><p> ?。?) 列出所授課程的學生選課信息:學號、姓名、專業(yè)、班級、入學年份、聯(lián)
41、系方式、成績、狀態(tài)</p><p> ?。?) 列出已錄入成績的學生名次、學號、姓名、學院、專業(yè)、班級、入學年份、成績、狀態(tài),并按照成績名次排序</p><p><b> 管理員用戶視圖下:</b></p><p> (1) 按照學號列出學生的學號、姓名、學院、專業(yè)、班級、入學年份、聯(lián)系方式</p><p> (2
42、) 按照姓名列出所有學生的學號、姓名、學院、專業(yè)、班級、入學年份、聯(lián)系方式</p><p> ?。?) 按照專業(yè)列出所有學生的學號、姓名、學院、專業(yè)、班級、入學年份、聯(lián)系方式</p><p> ?。?) 按照學院列出所有學生的學號、姓名、學院、專業(yè)、班級、入學年份、聯(lián)系方式</p><p> ?。?) 按照學工號列出教師的學工號、姓名、學院、方向、注冊年份、emai
43、l、聯(lián)系方式</p><p> ?。?) 按照姓名列出所有教師的學工號、姓名、學院、方向、注冊年份、email、聯(lián)系方式</p><p> ?。?) 按照學院列出所有教師的學工號、姓名、學院、方向、注冊年份、email、聯(lián)系方式</p><p> ?。?) 按照方向列出所有教師的學工號、姓名、學院、方向、注冊年份、email、聯(lián)系方式</p><
44、p> ?。?) 按照課程號列出課程的課程號、課程名、開課專業(yè)、學分、詳細信息</p><p> (10)按照課程名列出課程的課程號、課程名、開課專業(yè)、學分、詳細信息</p><p> (11)按照開課專業(yè)列出課程的課程號、課程名、開課專業(yè)、學分、詳細信息</p><p> ?。?2)按照學分列出課程的課程號、課程名、開課專業(yè)、學分、詳細信息</p&g
45、t;<p> (13)按照課程號列出選課信息:課程號、課程名、學號、學生姓名、教師號、教師姓名、狀態(tài)、成績</p><p> ?。?4)按照學生學號列出選課信息:課程號、課程名、學號、學生姓名、教師號、教師姓名、狀態(tài)、成績</p><p> ?。?5)按照教師學工號列出選課信息:課程號、課程名、學號、學生姓名、教師號、教師姓名、狀態(tài)、成績</p><p&
46、gt; ?。?6)按照課程狀態(tài)列出選課信息:課程號、課程名、學號、學生姓名、教師號、教師姓名、狀態(tài)、成績</p><p> ?。?7)按照課程號列出授課信息:課程號、課程名、教師號、教師姓名、選課人數(shù)</p><p> ?。?8)按照課程名列出授課信息:課程號、課程名、教師號、教師姓名、選課人數(shù)</p><p> (19)按照教師學工號列出授課信息:課程號、課程名
47、、教師號、教師姓名、選課人數(shù)</p><p> ?。?0)按照管理員號列出管理員的管理員號、姓名、權(quán)限、email、聯(lián)系方式、注冊日期</p><p> ?。?1)按照姓名列出所有管理員的管理員號、姓名、權(quán)限、email、聯(lián)系方式、注冊日期</p><p> 4.2 系統(tǒng)需求說明 </p><p> 該學生信息管理系統(tǒng)需要較強的數(shù)據(jù)處理功
48、能,理論上應該能夠容納上萬人的數(shù)據(jù)資料,并且在搜索方面理應具有較快的響應速度,能夠處理多方面的數(shù)據(jù)請求。權(quán)限設置清晰明了,能夠有效的防止越權(quán)操作。系統(tǒng)能夠有效的處理各種異常,具有較好的健壯性。</p><p> 4.2.1 初始數(shù)據(jù)庫大小</p><p> ?。?) 大約有1400門課程,分屬于約40個學院中,每個學院有10個以下的專業(yè)。</p><p> (2
49、) 大約有2萬名學生分布在各個學院,每個學院平均有500名學生。</p><p> ?。?) 大約有4000名教師分布在各個學院,每個學院平均有100名教師。</p><p> ?。?) 大約有120名管理員分布在各個學院,每個學院平均有3名管理員。</p><p> ?。?) 每名學生一學期平均選擇5門課程。</p><p> ?。?) 每
50、名教師平均所授課程為2門。</p><p> 4.2.2 網(wǎng)絡和共享需求</p><p> ?。?) 所有學院必須安全的和總部中央數(shù)據(jù)庫網(wǎng)絡互連</p><p> (2) 必須能夠支持每個學院至少300名用戶同時訪問,需要考慮這么大數(shù)量并發(fā)訪問的許可需求。</p><p><b> 性能:</b></p>
51、;<p><b> 4.2.3 性能</b></p><p> 高峰期:每年的1月、3月、6月、9月</p><p> ?。?) 單個記錄查詢時間少于1秒,高峰期少于5秒</p><p> ?。?) 多個記錄查詢時間少于5秒,高峰期少于10秒</p><p> (3) 更新/保存記錄時間少于1秒,高峰
52、期少于5秒</p><p><b> 4.2.4 安全性</b></p><p> ?。?) 數(shù)據(jù)庫必須有口令保護</p><p> ?。?) 每個用戶分配特定的用戶視圖所應有的訪問權(quán)限</p><p> ?。?) 用戶只能在適合他們完成工作需要的窗口中看到需要的數(shù)據(jù)</p><p> 4.2
53、.5 備份和恢復</p><p><b> 每天24點備份</b></p><p> 4.2.6 用戶界面</p><p><b> 菜單驅(qū)動,聯(lián)機幫助</b></p><p> 4.2.7 法律問題</p><p> 對用戶信息管理,遵守法律</p>
54、<p><b> 五、數(shù)據(jù)庫邏輯設計</b></p><p> 5.1 ER圖【3】:</p><p> 本系統(tǒng)的ER圖如下:</p><p> 實體: 聯(lián)系: 屬性: </p><p> m m<
55、/p><p> n n </p><p> m m </p><p> 1 1</p><p> 1
56、 m</p><p> 該ER圖包括課程、教師、學生、學院、專業(yè)五個實體和授課、選課、工作于、屬于、包含五個聯(lián)系。</p><p><b> 5.2 數(shù)據(jù)字典</b></p><p> 5.2.1 從數(shù)據(jù)字典中抽取出來的系統(tǒng)實體描述:</p><p> 5.2.2 從數(shù)據(jù)字典中抽取出來的聯(lián)系
57、的描述:</p><p><b> 5.3 關(guān)系表</b></p><p> 該數(shù)據(jù)庫關(guān)系圖如下:</p><p><b> 其中包含的聯(lián)系有:</b></p><p><b> 六、數(shù)據(jù)庫物理設計</b></p><p><b>
58、6.1 索引</b></p><p> College數(shù)據(jù)庫中的索引:</p><p> 在表“學生”中,對主鍵學號做了索引,作為該表的主索引。每次改變學號,姓名幾乎都要和其相對應,索引把表“學生”里姓名一列作為“學生”的二級索引。索引使“學生”中的學號一列按順序排列,方便查找學生信息,為實現(xiàn)以下功能提供了方便:</p><p> 查找學生基本信息
59、以及修改學生基本信息;</p><p> 向“學生”表里添加學生和刪除學生信息也可以根據(jù)索引方便找到。</p><p> 另外,在數(shù)據(jù)庫的其他表中,由于其他表的信息量不如“學生”這么大,像“教師”、“管理員”等,這樣建索引反而使效率提高不明顯,又浪費空間,所以這些表中沒有這樣建索引,只有表“學生”中用到。</p><p><b> 6.2 視圖<
60、;/b></p><p> 此環(huán)節(jié)設計在數(shù)據(jù)庫應用生命周期的需求分析和收集階段標識的用戶視圖。通常,視圖使用SQL或類似QBE的工具創(chuàng)建。例如,對軟件學院的管理員:</p><p> CREATE VIEW Student1_View</p><p> AS SELECT student_id, name, major, class, enter_ye
61、ar, phone</p><p> FROM student</p><p> WHERE college = ‘軟件學院’;</p><p><b> 6.3 安全機制</b></p><p> 6.3.1 系統(tǒng)安全</p><p> 1、提供了充足的異常處理機制,能夠捕獲由各種錯誤
62、引發(fā)的異常(如:越權(quán)操作、輸入數(shù)據(jù)類型與數(shù)據(jù)庫要求類型不一致、查詢過程中出現(xiàn)的錯誤等等)。</p><p> 2、系統(tǒng)登錄時要憑用戶名和口令進入,輸入正確時才可以進入系統(tǒng)。用戶需要選擇自己的身份(學生、教師、管理員),若用戶名和密碼輸入正確,系統(tǒng)可以打開符合該用戶身份的操作界面。其他界面該用戶沒有權(quán)限訪問。</p><p> 6.3.2 數(shù)據(jù)安全</p><p>
63、; 1、根據(jù)用戶身份,用戶進入不同的用戶界面,即享有不同的權(quán)限,只有管理員才可以實現(xiàn)修改一些重要信息,以確保數(shù)據(jù)庫不被隨意更改,保證數(shù)據(jù)安全。</p><p> 2、該學生系統(tǒng)共有三種身份:學生、教師、管理員。他們相應的權(quán)限如下:</p><p> (1)學生:查看修改個人信息、查看課程信息、選課/注銷選課(只有在選課階段的課程才可以注銷)、查看自己所選課程成績(教師公布成績后學生方
64、可查看到自己的成績)。</p><p> ?。?)教師:查看修改個人信息、查看修改所授課程信息(一名教師可教授多門課程)、查看所授課程的學生選課情況、成績錄入(錄入成績的課程狀態(tài)為“統(tǒng)計成績” ,成績錄入的權(quán)限只有教師用戶有)、公布成績(公布成績后學生方可查看到自己的成績)。</p><p> ?。?)管理員:添加刪除修改查看學生信息、添加刪除修改查看教師信息、添加刪除修改查看課程信息、添
65、加刪除修改查看學院信息、添加刪除修改查看專業(yè)信息、添加查看選課信息(修改選課信息權(quán)限只有學生用戶有)、修改課程狀態(tài)、添加修改查看授課信息、添加刪除修改查看其他管理員信息、查看修改個人信息。</p><p><b> 6.4 其他</b></p><p> 規(guī)范化產(chǎn)生一個結(jié)構(gòu)上一致且最小冗余的邏輯數(shù)據(jù)庫設計,但是,規(guī)范化的數(shù)據(jù)庫設計有時不能提供最大的處理效率。所以我
66、們愿意接收規(guī)范化設計方面的一些損失而實現(xiàn)更好的性能。在該系統(tǒng)中,表“學生”中復制了表“專業(yè)”的“所屬學院”一列,加快了檢索速度,方便通過列“學院”來查詢特定學院的學生,也方便形成某學院的視圖。</p><p><b> 七、應用程序設計</b></p><p><b> 7.1 功能模塊</b></p><p> 該
67、學生管理信息系統(tǒng)共有三個角色:學生、教師、管理員,各個角色實現(xiàn)的功能如下:</p><p> 7.1.1 學生(Student)用戶</p><p> ?。?)修改個人信息。</p><p> ?。?)按課程名、課程號、專業(yè)、學分等信息查詢課程,選課和查詢已選課程。</p><p> (3)注銷選課(只能注銷選課階段的課程,已公布成績的課
68、程不可注銷)。</p><p> ?。?)成績查詢(教師公布成績后學生方可查看到自己的成績)。</p><p> 教師(Teacher)用戶</p><p> ?。?)修改個人信息。</p><p> ?。?)修改所授課程的信息(一名教師可教授多門課程)。</p><p> (3)查看所授課程的學生選課情況。<
69、;/p><p> ?。?)錄入、查看成績(錄入成績的課程狀態(tài)為“統(tǒng)計成績” ,成績錄入的權(quán)限只有教師用戶有)。</p><p> (5)公布成績(公布成績后學生方可查看到自己的成績)。</p><p> (6)自動計算所授課程的選課人數(shù)、有成績?nèi)藬?shù)、平均成績,且按成績由高到低排序。</p><p> 管理員(Administrator)用戶
70、</p><p><b> (1)學生管理:</b></p><p> 查詢、添加、修改、刪除學生信息。</p><p><b> ?。?)教師管理:</b></p><p> 查詢、添加、修改、刪除教師信息。</p><p><b> (3)課程管理:&l
71、t;/b></p><p> 查詢、添加、修改、刪除課程信息。</p><p><b> ?。?)選課管理:</b></p><p> 查詢選課信息,添加選課信息(修改選課信息權(quán)限只有學生用戶有),修改選課狀態(tài)(選課階段、已開課、統(tǒng)計成績、公布成績、結(jié)束)。</p><p><b> ?。?)授課管理
72、:</b></p><p> 查詢、添加、修改授課信息。</p><p><b> (6)專業(yè)管理:</b></p><p> 添加、修改、刪除專業(yè)信息。</p><p><b> (7)學院管理:</b></p><p> 添加、修改、刪除學院信息。&
73、lt;/p><p><b> ?。?)管理員操作:</b></p><p> 查詢、添加、修改、刪除管理員信息。</p><p> (9)修改個人信息。</p><p><b> 7.2 界面設計</b></p><p> 7.2.1 登錄界面</p>&l
74、t;p> 用戶在登錄界面可以選擇不同的角色,輸入用戶名和密碼并經(jīng)過系統(tǒng)驗證后,可以進入相應角色的操作界面。</p><p> 7.2.2 學生用戶操作界面</p><p> ?。?)修改個人信息的界面。</p><p> ?。?)按課程名、課程號、專業(yè)、學分等信息查詢課程,選課。</p><p> (3)查詢已選課程及成績(教師公
75、布成績后學生方可查看到自己的成績),注銷選課(只能注銷選課階段的課程,已公布成績的課程不可注銷)。</p><p> ?。?)退出系統(tǒng)時的提示。</p><p> 7.2.3 教師用戶操作界面</p><p> ?。?)修改個人信息。</p><p> ?。?)修改所授課程的信息(一名教師可教授多門課程)。下拉框中會顯示當前所授課程,從中選
76、擇要修改的課程并輸入新的課程信息。</p><p> (3)查看所授課程的學生選課情況。</p><p> ?。?)錄入、查看成績(錄入成績的課程狀態(tài)為“統(tǒng)計成績” ,成績錄入的權(quán)限只有教師用戶有),系統(tǒng)自動計算所授課程的選課人數(shù)、有成績?nèi)藬?shù)、平均成績,且按成績由高到低排序。</p><p> ?。?)公布成績(教師公布成績后學生方可查看到自己的成績)。</
77、p><p> 7.2.4 管理員用戶操作界面</p><p> (1)學生管理:查詢、添加、修改、刪除學生信息。</p><p> ?。?)教師管理:查詢、添加、修改、刪除教師信息。</p><p> ?。?)課程管理:查詢、添加、修改、刪除課程信息。</p><p> ?。?)選課管理:查詢選課信息,添加選課信息(修
78、改選課信息權(quán)限只有學生用戶有),修改選課狀態(tài)(選課階段、已開課、統(tǒng)計成績、公布成績、結(jié)束)。</p><p> ?。?)授課管理:查詢、添加、修改授課信息。</p><p> ?。?)專業(yè)管理:添加、修改、刪除專業(yè)信息。</p><p> ?。?)學院管理:添加、修改、刪除學院信息。</p><p> (8)管理員操作:查詢、添加、修改、刪
79、除管理員信息。</p><p> ?。?)修改個人信息。</p><p><b> 7.3 事務設計</b></p><p> 該系統(tǒng)中,所有關(guān)于查詢的事務基本上都可以由Select語句實現(xiàn),而更新的事務則用Update語句,刪除的事務用Delete語句實現(xiàn)?!?】7.3.1 管理員事務</p><p> 有關(guān)管
80、理員的事務包括管理員的添加、查詢、刪除、修改及身份驗證等。具體實現(xiàn)代碼如下:</p><p> public ResultSet search(String target, String method) {</p><p> if (method.equals("id"))</p><p> return searchByID(target
81、);</p><p><b> else</b></p><p> return searchByName(target);</p><p><b> }</b></p><p> public ResultSet searchLeisure() {</p><p>
82、 sql = "select * from student where student_id not in(select student_id from selection)";</p><p> ResultSet rst = db.select(sql);</p><p> return rst;</p><p><b>
83、}</b></p><p> public boolean add(Admin a) {</p><p> sql = "insert into admin values(?,?,?,?,?,?,?)";</p><p><b> try {</b></p><p> Prepar
84、edStatement ps = db.getConnection().prepareStatement(sql);</p><p> ps.setString(1, a.getAdminID());</p><p> ps.setString(2, a.getPassword());</p><p> ps.setString(3, a.getName())
85、;</p><p> ps.setInt(4, a.getAuthority());</p><p> ps.setString(5, a.getEmail());</p><p> ps.setString(6, a.getPhone());</p><p> ps.setString(7, a.getRegisterDate())
86、;</p><p> ps.executeUpdate();</p><p> return true;</p><p> } catch (SQLException e) {</p><p> return false;</p><p><b> }</b></p>&l
87、t;p><b> }</b></p><p> public boolean delete(String id) {</p><p> sql = "delete from admin where admin_id=?";</p><p><b> try {</b></p>
88、<p> PreparedStatement ps = db.getConnection().prepareStatement(sql);</p><p> ps.setString(1, id);</p><p> ps.executeUpdate();</p><p> return true;</p><p> }
89、 catch (SQLException e) {</p><p> return false;</p><p><b> }</b></p><p><b> }</b></p><p> public boolean update(Admin a, String id) {</p&
90、gt;<p> sql = "update admin set admin_id=?, name=?, auth=? where admin_id=?";</p><p><b> try {</b></p><p> PreparedStatement ps = db.getConnection().prepareStatem
91、ent(sql);</p><p> ps.setString(1, a.getAdminID());</p><p> ps.setString(2, a.getName());</p><p> ps.setInt(3, a.getAuthority());</p><p> ps.executeUpdate();</p&g
92、t;<p> return true;</p><p> } catch (SQLException e) {</p><p> return false;</p><p><b> }</b></p><p><b> }</b></p><p>
93、 public boolean modify(String id, String email, String phone) {</p><p> sql = "update admin set email=?, phone=? where admin_id=?";</p><p><b> try {</b></p><p&
94、gt; PreparedStatement ps = db.getConnection().prepareStatement(sql);</p><p> ps.setString(1, email);</p><p> ps.setString(2, phone);</p><p> ps.setString(3, id);</p><
95、p> ps.executeUpdate();</p><p> return true;</p><p> } catch (SQLException e) {</p><p> return false;</p><p><b> }</b></p><p><b>
96、 }</b></p><p> public boolean changePass(String id, String pass) {</p><p> sql = "update admin set password=? where admin_id=?";</p><p><b> try {</b>&
97、lt;/p><p> PreparedStatement ps = db.getConnection().prepareStatement(sql);</p><p> ps.setString(1, pass);</p><p> ps.setString(2, id);</p><p> ps.executeUpdate();<
98、/p><p> return true;</p><p> } catch (SQLException e) {</p><p> return false;</p><p><b> }</b></p><p><b> }</b></p><p&
99、gt; public Admin getAdminByID(String id) {</p><p> Admin admin = new Admin();</p><p> sql = "select * from admin where admin_id='" + id + "'";</p><p>
100、 ResultSet rst = db.select(sql);</p><p><b> try {</b></p><p> if (rst.next()) {</p><p> admin.setAdminID(rst.getString(1));</p><p> admin.setPassword(r
101、st.getString(2));</p><p> admin.setName(rst.getString(3));</p><p> admin.setAuthority(rst.getInt(4));</p><p> admin.setEmail(rst.getString(5));</p><p> admin.setPho
102、ne(rst.getString(6));</p><p> admin.setRegisterDate(rst.getString(7));</p><p> db.close();</p><p> return admin;</p><p><b> } else</b></p><p&
103、gt; return null;</p><p> } catch (SQLException e) {</p><p> e.printStackTrace();</p><p> return null;</p><p><b> }</b></p><p><b> }
104、</b></p><p> public boolean check(String id, String pass) {</p><p> sql = "select * from admin where admin_id='" + id + "' and password='"</p><
105、p> + pass + "'";</p><p> ResultSet rst = db.select(sql);</p><p><b> try {</b></p><p> if (rst.next()) {</p><p> db.close();</p>
106、<p> return true;</p><p><b> } else</b></p><p> return false;</p><p> } catch (SQLException e) {</p><p> return false;</p><p><b&
107、gt; }</b></p><p><b> }</b></p><p> public String authorityToString(int autho) {</p><p> switch (autho) {</p><p><b> case 0:</b></p
108、><p> return "未知";</p><p><b> case 4:</b></p><p> return "全局";</p><p><b> case 3:</b></p><p> return "校級
109、";</p><p><b> case 2:</b></p><p> return "院級";</p><p><b> case 1:</b></p><p> return "輔導員級";</p><p>&l
110、t;b> }</b></p><p> return "";</p><p><b> }</b></p><p> private ResultSet searchByID(String target) {</p><p> sql = "select * fr
111、om admin where admin_id='" + target + "'";</p><p> ResultSet rst = db.select(sql);</p><p> return rst;</p><p><b> }</b></p><p> p
112、rivate ResultSet searchByName(String target) {</p><p> sql = "select * from admin where name='" + target + "'";</p><p> ResultSet rst = db.select(sql);</p>&
113、lt;p> return rst;</p><p><b> }</b></p><p> 7.3.2 學生事務</p><p> 有關(guān)學生的事務包括根據(jù)學號/姓名/學院/專業(yè)/所選課程狀態(tài)等信息分別添加、刪除、修改、查詢學生信息及身份驗證等。具體實現(xiàn)代碼如下:</p><p> public Resul
114、tSet search(String target, String method) {</p><p> if (method.equals("id"))</p><p> return searchByID(target);</p><p> else if (method.equals("name"))</p&
115、gt;<p> return searchByName(target);</p><p> else if (method.equals("major"))</p><p> return searchByMajor(target);</p><p><b> else</b></p>&
116、lt;p> return searchByCollege(target);</p><p><b> }</b></p><p> public ResultSet searchLeisure() {</p><p> sql = "select * from student where student_id not i
117、n(select student_id from selection)";</p><p> ResultSet rst = db.select(sql);</p><p> return rst;</p><p><b> }</b></p><p> public boolean add(Stude
118、nt s) {</p><p> sql = "insert into student values(?,?,?,?,?,?,?,?)";</p><p><b> try {</b></p><p> PreparedStatement ps = db.getConnection().prepareStatement
119、(sql);</p><p> ps.setString(1, s.getStudentID());</p><p> ps.setString(2, s.getPassword());</p><p> ps.setString(3, s.getName());</p><p> ps.setString(4, s.getColle
120、ge());</p><p> ps.setString(5, s.getMajor());</p><p> ps.setString(6, s.getClassInfo());</p><p> ps.setString(7, s.getEnterYear());</p><p> ps.setString(8, s.getPho
121、ne());</p><p> ps.executeUpdate();</p><p> return true;</p><p> } catch (SQLException e) {</p><p> return false;</p><p><b> }</b></p>
122、;<p><b> }</b></p><p> public boolean delete(String id) {</p><p> sql = "delete from student where student_id=?";</p><p><b> try {</b>&l
123、t;/p><p> PreparedStatement ps = db.getConnection().prepareStatement(sql);</p><p> ps.setString(1, id);</p><p> ps.executeUpdate();</p><p> sql = "delete from sel
124、ection where student_id=?";</p><p> PreparedStatement ps2 = db.getConnection().prepareStatement(sql);</p><p> ps2.setString(1, id);</p><p> ps2.executeUpdate();</p>&
125、lt;p> return true;</p><p> } catch (SQLException e) {</p><p> return false;</p><p><b> }</b></p><p><b> }</b></p><p> publ
126、ic boolean update(Student s, String id) {</p><p> sql = "update student set student_id=?, name=?, college=?, major=?, class=?, enter_year=? where student_id=?";</p><p><b> try
127、{</b></p><p> PreparedStatement ps = db.getConnection().prepareStatement(sql);</p><p> ps.setString(1, s.getStudentID());</p><p> ps.setString(2, s.getName());</p>&
128、lt;p> ps.setString(3, s.getCollege());</p><p> ps.setString(4, s.getMajor());</p><p> ps.setString(5, s.getClassInfo());</p><p> ps.setString(6, s.getEnterYear());</p>
129、<p> ps.setString(7, id);</p><p> ps.executeUpdate();</p><p> sql = "update selection set student_id=? where student_id='" + id</p><p><b> + "'
130、;";</b></p><p> PreparedStatement ps2 = db.getConnection().prepareStatement(sql);</p><p> ps2.setString(1, s.getStudentID());</p><p> ps2.executeUpdate();</p>&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設計報告--學生信息管理系統(tǒng)
- 學生信息管理系統(tǒng)課程設計報告
- 學生信息管理系統(tǒng)課程設計報告
- 學生信息管理系統(tǒng)課程設計報告
- 學生信息管理系統(tǒng)課程設計報告
- 學生信息管理系統(tǒng)課程設計報告
- 學生信息管理系統(tǒng)課程設計報告 (2)
- 學生選課信息管理系統(tǒng)課程設計報告
- vb課程設計報告-- 學生信息管理系統(tǒng)
- java課程設計報告--學生信息管理系統(tǒng)
- java課程設計報告---學生信息管理系統(tǒng)
- vb課程設計報告--學生信息管理系統(tǒng)
- c課程設計報告(學生信息管理系統(tǒng))
- c++課程設計——學生信息管理系統(tǒng)課程設計報告
- 學生信息管理系統(tǒng)課程設計
- 課程設計----學生信息管理系統(tǒng)
- 課程設計--學生信息管理系統(tǒng)
- 課程設計---學生信息管理系統(tǒng)
- 學生信息管理系統(tǒng)課程設計
- 學生信息管理系統(tǒng)課程設計
評論
0/150
提交評論