版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計任務(wù)書</b></p><p> 指導(dǎo)教師(簽名): 教研室主任(簽名):</p><p> 2012年 8 月 28 日 2012 年 8 月 31 日</p><p><b> 課程設(shè)計報告</b>&l
2、t;/p><p> 課程名稱 數(shù)據(jù)庫原理及應(yīng)用 設(shè)計題目 學(xué)籍管理系統(tǒng) </p><p><b> 目 錄</b></p><p> 一、設(shè)計目的及要求3</p><p> 二、課程設(shè)計內(nèi)容說明4</p><p&g
3、t;<b> (一)概述4</b></p><p> (二)需求分析5</p><p><b> 1)問題陳述5</b></p><p> 2)系統(tǒng)需完成的功能5</p><p><b> 3)數(shù)據(jù)字典6</b></p><p&
4、gt; (三)概念結(jié)構(gòu)設(shè)計9</p><p><b> 1.ER圖9</b></p><p> (四)邏輯結(jié)構(gòu)設(shè)計9</p><p> (五)物理結(jié)構(gòu)設(shè)計10</p><p> (六)數(shù)據(jù)庫的實施12</p><p> (七)數(shù)據(jù)庫的運行14</p>
5、<p> (八)數(shù)據(jù)庫的運行和維護15</p><p> 三、結(jié)論及體會16</p><p> 一、參考文獻17</p><p><b> 二、附錄17</b></p><p><b> 一、設(shè)計目的及要求</b></p><p> 1
6、、通過兩周的課程設(shè)計,要求學(xué)生加深對數(shù)據(jù)庫技術(shù)相關(guān)理論的理解,增強動手能力,掌握使用現(xiàn)行較為流行的數(shù)據(jù)庫理論和數(shù)據(jù)庫開發(fā)工具進行數(shù)據(jù)庫管理操作(如建庫、建立完整性約束,對數(shù)據(jù)庫中數(shù)據(jù)進行查詢,更改等操作)的方法;具體應(yīng)用方面,要求學(xué)生對SQL語言要有較深入的了解和掌握,對數(shù)據(jù)庫的管理(主要是安全性方面)要有一定程度的了解;設(shè)計的最終結(jié)果為學(xué)生設(shè)計和完成具有較完善功能和一定規(guī)模的數(shù)據(jù)庫應(yīng)用系統(tǒng)(后臺)、以及部分前臺功能,并提交設(shè)計報告。&
7、lt;/p><p> 2、本次課程設(shè)計的步驟可按照設(shè)計內(nèi)容要求,在選擇了設(shè)計題目之后,先進行系統(tǒng)需求分析和E-R圖設(shè)計及相關(guān)文檔的撰寫;然后再進行關(guān)系模式轉(zhuǎn)換和評價、數(shù)據(jù)庫表的建立等;接下來進行系統(tǒng)功能的實現(xiàn),即完成后臺操作的代碼編寫,以及部分前臺功能的代碼編寫;調(diào)試和測試可基本同步進行,最后完成對系統(tǒng)的評價(或得出結(jié)論)和心得體會等文檔的撰寫。</p><p> 本次課程設(shè)計的重點在于各
8、個文檔的撰寫和系統(tǒng)功能的具體實現(xiàn)。學(xué)生須以本指導(dǎo)書中對設(shè)計內(nèi)容具體說明為設(shè)計依據(jù),并根據(jù)不同系統(tǒng)的不同要求有側(cè)重地完成任務(wù)。在語言上,須注意使用書面的、理論的語言,不要使用流行語、網(wǎng)絡(luò)語、縮略語等非標準書面語。敘述注意前后的連貫性、邏輯性。圖表要清晰,層次要分明。另外,如果在技術(shù)上或設(shè)計思路方面有亮點,也可以作為設(shè)計的一個重要內(nèi)容。</p><p> 3、根據(jù)以上信息完成如下要求:</p><
9、;p> 1、請認真作系統(tǒng)需求分析,設(shè)計出反映本系統(tǒng)的E-R圖(需求分析、概念設(shè)計)。</p><p> 2、寫出相應(yīng)已設(shè)計的E-R圖的關(guān)系模式,根據(jù)設(shè)計所需也可增加輔助關(guān)系模式,并找出各關(guān)系模式的關(guān)鍵字(邏輯設(shè)計)。</p><p> 3、在已設(shè)計的關(guān)系模式基礎(chǔ)上開發(fā)設(shè)計功能子系統(tǒng),要求子系統(tǒng)能完成如下功能要求(物理設(shè)計、設(shè)施與試運行):</p><p>
10、; 1)在某數(shù)據(jù)庫管理系統(tǒng)中建立各關(guān)系模式對應(yīng)的庫表,并設(shè)計所需的視圖、索引等。</p><p> 2)能對各庫表進行輸入、修改、刪除、添加、查詢、打印等基本操作。</p><p> 3)新生入校登記后可即時選課,老生每學(xué)期開始前可選課或作選課調(diào)整,一般要選共約20學(xué)分的若干門課程。</p><p> 4)能明細查詢某學(xué)生的選課情況及某課程的選修學(xué)生情況。&
11、lt;/p><p> 5)能統(tǒng)計查詢出某學(xué)生的成績單(包括總成績、平均成績、不及格門數(shù)等)及某門課的選課人數(shù)、最高分、最低分、平均成績等統(tǒng)計信息。</p><p> 6)能分析出某教師的教學(xué)質(zhì)量情況(可根據(jù)該教師所任所有課優(yōu)良數(shù)平均超過一定百分比來粗略評定)。</p><p> 7)其他你認為子系統(tǒng)應(yīng)有的查詢、統(tǒng)計功能。</p><p>
12、 8)要求子系統(tǒng)設(shè)計得界面友好,功能選擇方便合理,并適當考慮子系統(tǒng)在其安全性、完整性、備份、恢復(fù)等方面的功能要求。</p><p> 4、子系統(tǒng)設(shè)計完成后請書寫課程設(shè)計報告,設(shè)計報告要圍繞數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)設(shè)計的步驟來考慮書寫,力求清晰流暢。最后根據(jù)所設(shè)計子系統(tǒng)、書寫報告及出勤等綜合評定成績。</p><p> 二、課程設(shè)計內(nèi)容說明</p><p><b&
13、gt; 概述</b></p><p> 背景:隨著我國教育體制改革的深入進行,教育系統(tǒng)得到了前所未有的發(fā)展。學(xué)生管理正在逐步邁向管理信息現(xiàn)代化。但是我國的學(xué)生管理信息化水平還處在初級階段,主要表現(xiàn)在對學(xué)生的交費管理、學(xué)生的檔案管理還是采用原有的人工管理方式。學(xué)校的規(guī)模不斷擴大,學(xué)生數(shù)量急劇增加,有關(guān)學(xué)生的各種信息量也成倍增長。由于大學(xué)生類別和專業(yè)的設(shè)置的多樣化,大學(xué)生的學(xué)籍管理歷來是非常繁瑣和復(fù)雜
14、的的工作。面對龐大的信息量, 這時的人工管理幾乎無法實現(xiàn),在這種情況下用數(shù)據(jù)庫進行管理變的尤為必要,這可以發(fā)揮計算機的優(yōu)勢,就需要有學(xué)生信息管理系統(tǒng)來提高學(xué)生管理工作的效率.通過這樣的系統(tǒng),可以做到信息的規(guī)范管理,科學(xué)統(tǒng)計和快速的查詢,從而減少管理方面的工作量和減少人為的錯誤。</p><p><b> 編寫目的</b></p><p> 完成學(xué)籍管理系統(tǒng)將大大簡
15、化人工的工作量。</p><p> 開發(fā)環(huán)境:Microsoft Visual Studio 2008</p><p> 數(shù)據(jù)庫管理系統(tǒng):SQL Server 2005</p><p> 運行環(huán)境:Windows XP</p><p><b> 前臺語言:ASP</b></p><p>&
16、lt;b> 需求分析</b></p><p><b> 問題陳述</b></p><p> 設(shè)計本系統(tǒng)模擬學(xué)校學(xué)籍管理內(nèi)容,包括學(xué)生入學(xué)登記、學(xué)生選課、考試成績登記、補考處理及教師教學(xué)質(zhì)量分析統(tǒng)計等</p><p><b> 系統(tǒng)需完成的功能</b></p><p><
17、;b> 學(xué)生基本信息系統(tǒng)</b></p><p> 學(xué)生:學(xué)號(xh)、姓名(xm)、性別(xb)、年齡(nl)等。</p><p> 學(xué)生入學(xué)時新生需錄入登記,登記后即可選課學(xué)習(xí)課程(一學(xué)期約20學(xué)分)。</p><p> 學(xué)生選每門課有個成績(cj),若成績不及格則補考后還需記錄補考成績(bkcj)。</p><p&
18、gt;<b> 學(xué)籍管理系統(tǒng)</b></p><p><b> 功能如下:</b></p><p><b> 教務(wù)處登記學(xué)生成績</b></p><p><b> 學(xué)生選課</b></p><p> 教師查詢個人信息、工資等信息</p>
19、;<p> 學(xué)生查詢成績、所選的課程。</p><p> 計算各班的總分和平均分,并按照平均分將各班成績進行排序。</p><p> 統(tǒng)計不及格考生的信息</p><p> 可以按照特定的信息進行查找,并按照特定的要求進行排序。</p><p> 可以對學(xué)生的信息統(tǒng)計等等</p><p> 系
20、統(tǒng)的功能模塊設(shè)計圖如圖所示。</p><p><b> 數(shù)據(jù)字典</b></p><p> 經(jīng)過可行性分析和初步需求調(diào)查,抽象出該子系統(tǒng)業(yè)務(wù)流程圖,如圖所</p><p> 示。下面,結(jié)合該實例具體情況,給出教務(wù)處具體需求。</p><p> 學(xué)號(xh)、姓名(xm)、性別(xb)、年齡(nl)</p&g
21、t;<p> 課程代號(kcdh)、課程名(kcm)、課時數(shù)(kss)、必修課(bxk)、學(xué)分(xf)。</p><p> 教師:工號(gh)、姓名(xm)、性別(xb)、職稱(zc)、工齡(gl)、出生年月(csrq)、基本工資(jbgz)等。</p><p><b> 學(xué)生student</b></p><p> 老師
22、teacher </p><p><b> 系 xi</b></p><p><b> 新增的一個表 </b></p><p><b> 概念結(jié)構(gòu)設(shè)計</b></p><p><b> ER圖</b></p><p>&l
23、t;b> 邏輯結(jié)構(gòu)設(shè)計</b></p><p> 邏輯結(jié)構(gòu)設(shè)計就是把概念結(jié)構(gòu)設(shè)計階段設(shè)計好的基本E-R圖轉(zhuǎn)換為與選用DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。</p><p> 設(shè)計邏輯結(jié)構(gòu)一般分為3步進行:</p><p> ?。?)將概念結(jié)構(gòu)轉(zhuǎn)換為一般的關(guān)系、網(wǎng)狀、層次模型;</p><p> ?。?)將轉(zhuǎn)換來
24、的關(guān)系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換;</p><p> (3)對數(shù)據(jù)模型進行優(yōu)化。</p><p><b> 關(guān)系模型</b></p><p> 將E-R圖轉(zhuǎn)換為關(guān)系模型實際上就是要獎實體型、實體的屬性和實體型之間的聯(lián)系轉(zhuǎn)換為關(guān)系模式,這種轉(zhuǎn)換一般遵循如下原則:一個實體型轉(zhuǎn)換為一個關(guān)系模式。實體的屬性就是關(guān)系的屬性,
25、實體的碼就是關(guān)系的碼。對于實體型間的聯(lián)系則有以下不同的情況:</p><p> ?。?)一個1:1聯(lián)系可以轉(zhuǎn)換為一個獨立的關(guān)系模式,也可以與任意一端對應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個獨立的關(guān)系模式,則與該聯(lián)系相連的個實體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,每個實體的碼均是該關(guān)系的侯選碼。如果與某一端實體對應(yīng)的關(guān)系模式合并,則需要在關(guān)系模式的屬性中加入另一個關(guān)系模式的碼和聯(lián)系本身的屬性。</p>
26、<p> ?。?)一個1:n聯(lián)系可以轉(zhuǎn)換為一個獨立的關(guān)系模式,也可以與n端對應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個獨立的關(guān)系模式,則與該聯(lián)系相連的個各實體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為n端實體的碼。</p><p> ?。?)一個m:n聯(lián)系轉(zhuǎn)換為一個關(guān)系模式。與該聯(lián)系相連的個實體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,各實體的碼組成關(guān)系的碼或關(guān)系碼的一部分。</p>
27、<p> (4)3個或3個以上實體間的一個多元聯(lián)系可以轉(zhuǎn)換為一個關(guān)系模式。與該多元聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,各實體的碼組成關(guān)系的碼或關(guān)系碼的一部分。</p><p> ?。?)具有相同碼的關(guān)系模式可合并。</p><p> 將概念結(jié)構(gòu)設(shè)計階段設(shè)計好的基本E-R圖轉(zhuǎn)換為關(guān)系模型,如下所示:</p><p> 學(xué)生(學(xué)號,
28、專業(yè)號,院系號,姓名,性別)此為學(xué)生實體對應(yīng)的關(guān)系模式。</p><p> 教師(教工號,姓名,性別,職稱,所屬院系),此為老師實體對應(yīng)的關(guān)系模式。</p><p> 課程(課程號,課程名,學(xué)分),此為課程實體對應(yīng)的關(guān)系模式。</p><p> 院系(院系號,院系名稱,負責(zé)人),此為系實體對應(yīng)的關(guān)系模式。</p><p> 選修(學(xué)號
29、,課程號,成績),此為選修關(guān)系對應(yīng)的關(guān)系模式。</p><p> 授課(課程號,教工號,課時),此為老師授課關(guān)系對應(yīng)的關(guān)系模式。</p><p><b> 物理結(jié)構(gòu)設(shè)計</b></p><p> 數(shù)據(jù)庫的物理設(shè)計就是為一個給定的邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用要求的物理結(jié)構(gòu)的過程。物理結(jié)構(gòu)設(shè)計階段實現(xiàn)的是數(shù)據(jù)庫系統(tǒng)的內(nèi)模式,它的質(zhì)量直接決定
30、了整個系統(tǒng)的性能。因此在確定數(shù)據(jù)庫的存儲結(jié)構(gòu)和存取方法之前,對數(shù)據(jù)庫系統(tǒng)所支持的事務(wù)要進行仔細分析,獲得優(yōu)化數(shù)據(jù)庫物理設(shè)計的參數(shù)</p><p> 數(shù)據(jù)庫的物理設(shè)計通常分為兩步:</p><p> ?。?)確定數(shù)據(jù)庫的物理結(jié)構(gòu),在關(guān)系數(shù)據(jù)庫中主要指存取方法和存取結(jié)構(gòu);</p><p> ?。?)對物理結(jié)構(gòu)進行評價,評價的重點是時間和空間效率。</p>
31、<p> 1. 確定數(shù)據(jù)庫的存儲結(jié)構(gòu)</p><p> 由于本系統(tǒng)的數(shù)據(jù)庫建立不是很大,所以數(shù)據(jù)存儲采用的是一個磁盤的一個分區(qū)。</p><p> 2.存取方法和優(yōu)化方法</p><p> 存取方法是快速存取數(shù)據(jù)庫中數(shù)據(jù)的技術(shù)。數(shù)據(jù)庫管理系統(tǒng)一般都是提供多種存取方法。常用的存取方法有三類。第一類是索引方法,目前主要是B+樹索引方法;第二類是聚簇方
32、法;第三類是HASH方法。數(shù)據(jù)庫的索引類似書的目錄。在書中,目錄允許用戶不必瀏覽全書就能迅速地找到所需要的位置。在數(shù)據(jù)庫中,索引也允許應(yīng)用程序迅速找到表中的數(shù)據(jù),而不必掃描整個數(shù)據(jù)庫。在書中,目錄就是內(nèi)容和相應(yīng)頁號的清單。在數(shù)據(jù)庫中,索引就是表中數(shù)據(jù)和相應(yīng)存儲位置的列表。使用索引可以大大減少數(shù)據(jù)的查詢時間。</p><p> 但需要注意的是索引雖然能加速查詢的速度,但是為數(shù)據(jù)庫中的每張表都設(shè)置大量的索引并不是一
33、個明智的做法。這是因為增加索引也有其不利的一面:首先,每個索引都將占用一定的存儲空間,如果建立聚簇索引(會改變數(shù)據(jù)物理存儲位置的一種索引),占用需要的空間就會更大;其次,當對表中的數(shù)據(jù)進行增加、刪除和修改的時候,索引也要動態(tài)地維護,這樣就降低了數(shù)據(jù)的更新速度。</p><p><b> 功能實現(xiàn)</b></p><p> 完成數(shù)據(jù)庫的物理設(shè)計之后,設(shè)計人員就要用R
34、DBMS提供的數(shù)據(jù)定義語言和其他實用程序?qū)?shù)據(jù)庫邏輯設(shè)計和物理設(shè)計結(jié)果嚴格描述出來,成為DBMS可以接受的源代碼,再經(jīng)過調(diào)試產(chǎn)生目標模式。然后就可以組織數(shù)據(jù)入庫,最后就在此基礎(chǔ)上編寫各個表相關(guān)的觸發(fā)器和存儲過程。</p><p> 將生成的概念模型通過單擊PowerDesigner11工具菜單欄上的Tools選項,再選擇Generate Physical Data Model選項,就可以轉(zhuǎn)換為物理模型,生成的最
35、后結(jié)果具體如下圖所示:</p><p><b> 數(shù)據(jù)庫的實施</b></p><p> 1.完成數(shù)據(jù)庫的物理設(shè)計之后,設(shè)計人員就要用RDBMS提供的數(shù)據(jù)定義語言和其他實用程序?qū)?shù)據(jù)庫邏輯設(shè)計和物理設(shè)計結(jié)果嚴格描述出來,成為DBMS可以接受的源代碼,再經(jīng)過調(diào)試產(chǎn)生目標模式。然后就可以組織數(shù)據(jù)入庫了,這就是數(shù)據(jù)庫實施階段。</p><p>&
36、lt;b> 數(shù)據(jù)庫的實施</b></p><p> 數(shù)據(jù)庫的實施主要是根據(jù)邏輯結(jié)構(gòu)設(shè)計和物理結(jié)構(gòu)設(shè)計的結(jié)果,在計算機系統(tǒng)上建立實際的數(shù)據(jù)庫結(jié)構(gòu)、導(dǎo)入數(shù)據(jù)并進行程序的調(diào)試。它相當于軟件工程中的代碼編寫和程序調(diào)試的階段。</p><p> 當在PowerDesigner Trial 11中設(shè)計好本系統(tǒng)的物理結(jié)構(gòu)之后,就可以向數(shù)據(jù)庫轉(zhuǎn)換為相應(yīng)的表。先選擇菜單欄中Datab
37、ase的Connect,通過添加數(shù)據(jù)源,連接數(shù)據(jù)源,輸入用戶名和密碼進行轉(zhuǎn)換,生成相關(guān)的SQL語句,在通過運行之后,最終在SQL Server 2005中生成了如下所示的表。</p><p> 課程信息表(主要描述學(xué)校開設(shè)的課程的基本信息):</p><p><b> 中間表</b></p><p><b> 管理員信息表<
38、;/b></p><p> 學(xué)生基本信息表(主要描述一些學(xué)生入學(xué)前的基本信息):</p><p> 教師基本信息表(主要描述教師的一些基本信息):</p><p> 院系信息表(主要描述學(xué)校中各個院系的一些基本信息):</p><p><b> 數(shù)據(jù)庫的運行</b></p><p>
39、 通過SQL語句進行簡單測試</p><p> 當一小部分數(shù)據(jù)輸入數(shù)據(jù)庫后,就可以開始對數(shù)據(jù)庫系統(tǒng)進行聯(lián)合調(diào)試,這一階段要實際運行數(shù)據(jù)庫應(yīng)用程序,執(zhí)行對數(shù)據(jù)庫的各種操作,由于沒有應(yīng)用程序,所以只有通過SQL語言直接在數(shù)據(jù)庫中執(zhí)行對數(shù)據(jù)庫的各種操作。</p><p> 通過在SQL Server 2005的查詢分析器中輸入相應(yīng)的SQL語句,就可以得到相應(yīng)的結(jié)果,具體如下所示:</
40、p><p><b> 查詢課程的基本信息</b></p><p><b> 插入基本信息</b></p><p><b> 數(shù)據(jù)庫的運行和維護</b></p><p> 數(shù)據(jù)庫試運行合格后,數(shù)據(jù)庫開發(fā)工作就基本完成,即可投入正式運行了。但是,由于應(yīng)用環(huán)境在不斷變化,數(shù)據(jù)庫運
41、行過程中物理存儲也會不斷變化,對數(shù)據(jù)庫設(shè)計進行評價、調(diào)整、修改等維護工作是一個長期的任務(wù),也是設(shè)計工作的繼續(xù)和提高。</p><p> 在數(shù)據(jù)庫運行階段,對數(shù)據(jù)庫經(jīng)常性的維護工作主要是由DBA完成的,包括:</p><p> (1)數(shù)據(jù)庫的轉(zhuǎn)儲和恢復(fù)——DBA要針對不同的應(yīng)用要求制定不同的轉(zhuǎn)儲計劃,一保證一旦發(fā)生故障能盡快將數(shù)據(jù)庫恢復(fù)到某種一致的狀態(tài),并盡可能減少對數(shù)據(jù)庫的破壞。<
42、;/p><p> ?。?)數(shù)據(jù)庫的安全性、完整性控制——DBA根據(jù)實際情況修改原有的安全性控制和數(shù)據(jù)庫的完整性約束條件,以滿足用戶要求。</p><p> (3)數(shù)據(jù)庫性能的監(jiān)督、分析和改造——在數(shù)據(jù)庫運行過程中,DBA必須監(jiān)督系統(tǒng)運行,對監(jiān)測數(shù)據(jù)進行分析,找出改進系統(tǒng)性能的方法。</p><p> ?。?)數(shù)據(jù)庫的重組織與重構(gòu)造——數(shù)據(jù)庫運行一段時間后,由于記錄不斷
43、增、刪、改,會使數(shù)據(jù)庫的物理存儲情況變壞,降低了數(shù)據(jù)的存取效率,數(shù)據(jù)庫性能下降,這時DBA就要對數(shù)據(jù)庫進行重組織或部分重組織。</p><p><b> 三、結(jié)論及體會</b></p><p> 過兩星期的數(shù)據(jù)庫程序設(shè)計實習(xí),我們從中受益匪淺,并且對數(shù)據(jù)庫程序設(shè)計這一門課程有了更深一步的認識。在實習(xí)中,我們接觸到了一門新的語言——delphi,它提供給我們一個可視
44、化的操作界面,更能激發(fā)同學(xué)們的興趣愛好,所以我們學(xué)起來就有一股熱情。我們把這學(xué)期所學(xué)的理論知識和實踐聯(lián)系起來,在所開發(fā)的項目中漸漸成長。雖然我們對這些新的知識運用得還不是很熟練,但是相信我們也在滴水穿石地成長起來。發(fā)現(xiàn)問題,提出問題,解決問題,使我們從不足之處出發(fā),尋找新的學(xué)習(xí)方向。將其中調(diào)用的那些我看不懂的函數(shù)一一查清楚,逐漸弄懂它的設(shè)計思路,思考它有哪些不足,有哪些地方還須要改進,有什么更好的方法、更簡單的方法去實行。</p&
45、gt;<p> 這學(xué)習(xí)使我克服了偷懶的毛病,這在我以后的學(xué)習(xí)和工作中的心理定位與調(diào)節(jié)有很大的幫助。我感受到了做系統(tǒng)是一項非常煩瑣周密的學(xué)習(xí)活動,它不但需要一個人周密的思考問題的能力,處理問題的能力,還需要有足夠的耐心和嚴謹治學(xué)的作風(fēng),來不得半點馬虎。在實習(xí)中,我們設(shè)計了一組對學(xué)生學(xué)籍進行管理的系統(tǒng),它基本滿足了界面友好,易于操作的要求,因此更利于用戶操作方便,運行簡易,從而達到對學(xué)生學(xué)籍更加有效系統(tǒng)的管理,并且速度更快內(nèi)
46、容更直接地達到用戶所想要的效果。</p><p><b> 參考文獻</b></p><p> 1.《數(shù)據(jù)庫原理及應(yīng)用》 錢雪忠主編 北京郵電大學(xué)出版社 2010,6, 第三版</p><p> 2.ASP基礎(chǔ)教程 作者:魏雪英 </p><p> 3.《C#教程》作 者:鄭阿奇 出版社: 電子工業(yè)出
47、版社</p><p> 4. Kimball R等.數(shù)據(jù)倉庫工具箱.北京. 電子工業(yè)出版社,2003.</p><p> 5.Imhoff C等.數(shù)據(jù)倉庫設(shè)計. 北京. 機械工業(yè)出版社,2004.</p><p> 6.ttison R.Web倉庫工程與知識管理.北京.清華大學(xué)出版社,2003.</p><p> 7.in T等.SQ
48、L Server 2000數(shù)據(jù)倉庫與Analysis Services.北京.中國電力出版社,2003.</p><p> 8.楊樹青、楊玉順.數(shù)據(jù)庫應(yīng)用實例.北京:人民郵電出版社.2006.</p><p><b> 附錄</b></p><p><b> 核心代碼</b></p><p>
49、<b> 選課模塊</b></p><p> namespace Xueji</p><p><b> {</b></p><p> public partial class Xuanke : System.Web.UI.Page</p><p><b> {</b>
50、</p><p> protected void Page_Load(object sender, EventArgs e)</p><p><b> {</b></p><p> if (Session["username"] != null && Session["username&quo
51、t;].ToString()!="admin"&&Session["biao"]!="teacher")</p><p> { //顯示course表中的數(shù)據(jù)</p><p><b> //連接數(shù)據(jù)庫 </b></p><p> SqlConnection c
52、onn = new SqlConnection(); </p><p> conn.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=D:\\xueji.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";</p>
53、;<p> SqlDataAdapter sda = new SqlDataAdapter();</p><p> sda.SelectCommand = new SqlCommand("select * from course", conn);</p><p> DataSet ds = new DataSet();</p><
54、p> sda.Fill(ds);</p><p> GridView1.DataSource = ds.Tables[0].DefaultView;</p><p> GridView1.DataBind();</p><p><b> }</b></p><p><b> else</b
55、></p><p><b> {</b></p><p> Response.Redirect("Denglu.aspx");</p><p><b> }</b></p><p><b> }</b></p><p>
56、 protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)</p><p><b> {</b></p><p> SqlConnection conn = new SqlConnection();</p><p> conn.Connection
57、String = "Data Source=.\\SQLEXPRESS;AttachDbFilename=D:\\xueji.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";</p><p> conn.Open();</p><p> int x = GridView1.Sel
58、ectedIndex + 1;//獲得選擇的課程的課程代號</p><p> //通過課程代號取得course表中的其他信息</p><p> string sqlString = "select * from course where kcdh=" + "'" + x + "'";</p>&l
59、t;p> SqlDataAdapter sda = new SqlDataAdapter(sqlString,conn);</p><p> DataSet ds = new DataSet();</p><p> sda.Fill(ds);</p><p> string tongji_lesson = ds.Tables[0].Rows[0][&q
60、uot;kcdh"].ToString();</p><p> string tongji_teacher = ds.Tables[0].Rows[0]["shouke_teacher"].ToString();</p><p> string tongji_student = Session["username"].ToString(
61、);</p><p> string tongji_l_score = ds.Tables[0].Rows[0]["xf"].ToString();</p><p> //檢查該名同學(xué)是否已經(jīng)選了該課</p><p> string newsqlString = "select count(*) from le_te where
62、lesson="+"'"+tongji_lesson+"'"+"and student="+"'"+tongji_student+"'"; </p><p> SqlCommand cm = new SqlCommand(newsqlString, con
63、n);</p><p> //檢查該名同學(xué)是否超過20學(xué)分上限</p><p> string newsqlString1 = "select sum(l_score) as sum_score from le_te where student="+"'"+tongji_student+"'"+"gr
64、oup by l_score";</p><p> SqlCommand cm1 = new SqlCommand(newsqlString1,conn);</p><p> //檢查該門課是否超過了30人</p><p> string newsqlString3 = "select count(lesson) from le_te wh
65、ere lesson="+"'"+tongji_lesson+"'";</p><p> SqlCommand cm3 = new SqlCommand(newsqlString3,conn);</p><p> ////方便后續(xù)使用</p><p> //int renshu=(int.Par
66、se)(cm3.ExecuteScalar().ToString());</p><p> if ((int.Parse)(cm3.ExecuteScalar().ToString()) <= 1)//該門課程人數(shù)是否超過30人,數(shù)字1 為測試(滿兩個人 開課 )</p><p><b> { </b></p><p> if
67、((cm.ExecuteScalar().ToString() == "1"))//已經(jīng)選了該課</p><p><b> {</b></p><p> Response.Write("你已經(jīng)選了該課");</p><p><b> }</b></p><p
68、> else//未選該課,則查看是否學(xué)分已經(jīng)達到上限</p><p><b> {</b></p><p> if (cm1.ExecuteScalar() == null&&((int.Parse)(tongji_l_score))<20)//表示該名同學(xué)沒有選過任何課程 ,數(shù)據(jù)庫中還沒有數(shù)據(jù),必須另寫判斷</p>&
69、lt;p><b> {</b></p><p> //將取得的值放入te_le表中</p><p> string newsqlString2 = "insert into le_te (student,lesson,teacher,l_score) values('" + tongji_student + "'
70、;" + "," + "'" + tongji_lesson + "'" + "," + "'" + tongji_teacher + "'" + "," + "'" + tongji_l_score + "')
71、";</p><p> SqlCommand cm2 = new SqlCommand(newsqlString2, conn);</p><p> if ((cm2.ExecuteNonQuery()) == 1)</p><p><b> {</b></p><p> Response.Write(
72、"<script language='javascript'>alert('選課成功');</script>");</p><p><b> }</b></p><p><b> }</b></p><p><b> else<
73、;/b></p><p><b> {</b></p><p> if ((int.Parse)(cm1.ExecuteScalar().ToString()) < (20 - (int.Parse)(tongji_l_score)))//學(xué)分未達上限,需要減去即將選擇的該門課程的學(xué)分</p><p><b> {&
74、lt;/b></p><p> //將取得的值放入te_le表中</p><p> string newsqlString2 = "insert into le_te (student,lesson,teacher,l_score) values('" + tongji_student + "'" + ",&quo
75、t; + "'" + tongji_lesson + "'" + "," + "'" + tongji_teacher + "'" + "," + "'" + tongji_l_score + "')";</p>&l
76、t;p> SqlCommand cm2 = new SqlCommand(newsqlString2, conn);</p><p> if ((cm2.ExecuteNonQuery()) == 1)</p><p><b> {</b></p><p> Response.Write("<script lang
77、uage='javascript'>alert('選課成功');</script>");</p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p>&l
78、t;p><b> {</b></p><p> Response.Write("學(xué)分已經(jīng)達到上限");</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b>&l
79、t;/p><p><b> }</b></p><p><b> else</b></p><p><b> { </b></p><p> ////更新是否開課</p><p> //string newsqlString6 = "u
80、pdate course set kaike=" + "'開課'";</p><p> //SqlCommand cm6 = new SqlCommand(newsqlString6, conn);</p><p> //cm6.ExecuteNonQuery();</p><p> Response.Write(
81、"該門課已經(jīng)達到上限");</p><p><b> }</b></p><p> //以下為更新course表</p><p> //string newsqlString4 = "";</p><p> string newsqlString4 = "upda
82、te course set yixuanrenshu=" + "'" + (int.Parse)(cm3.ExecuteScalar().ToString()) + "'" + "where kcdh=" + "'" + tongji_lesson + "'";</p><p&
83、gt; SqlCommand cm4 = new SqlCommand(newsqlString4,conn);</p><p> cm4.ExecuteNonQuery();</p><p> //更新是否開課信息,滿30人開課 </p><p> string newsqlString5 = "select yixuanrenshu from
84、course where kcdh= "+"'"+tongji_lesson+"'"; </p><p> SqlDataAdapter sda2 = new SqlDataAdapter(newsqlString5, conn);</p><p> DataSet ds2 = new DataSet
85、();</p><p> sda2.Fill(ds2);</p><p> if ((int.Parse)(ds2.Tables[0].Rows[0]["yixuanrenshu"].ToString()) >= 2)</p><p><b> {</b></p><p> string
86、 newsqlString6 = "update course set kaike=" + "'開'"+"where kcdh="+"'"+tongji_lesson+"'";</p><p> SqlCommand cm6 = new SqlCommand(newsqlStrin
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)庫課程設(shè)計--學(xué)籍管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計--學(xué)籍管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計--學(xué)籍管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計---學(xué)籍管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計--- 學(xué)生學(xué)籍管理系統(tǒng)
- 學(xué)籍管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計報告
- 學(xué)生學(xué)籍管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計
- 數(shù)據(jù)庫原理課程設(shè)計---學(xué)籍管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計報告--學(xué)籍管理系統(tǒng)設(shè)計
- 數(shù)據(jù)庫課程設(shè)計報告--學(xué)籍管理系統(tǒng)設(shè)計
- 學(xué)生學(xué)籍管理系統(tǒng)報告--數(shù)據(jù)庫課程設(shè)計
- 數(shù)據(jù)庫課程設(shè)計---學(xué)生學(xué)籍信息管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計---學(xué)生學(xué)籍管理系統(tǒng)設(shè)計與實現(xiàn)
- 數(shù)據(jù)庫原理與技術(shù)課程設(shè)計--學(xué)籍管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計---數(shù)據(jù)庫
- 數(shù)據(jù)庫原理課程設(shè)計---個人事物管理數(shù)據(jù)庫課程設(shè)計
- 數(shù)據(jù)庫課程設(shè)計--圖書借閱管理數(shù)據(jù)庫設(shè)計
- 數(shù)據(jù)庫課程設(shè)計--數(shù)據(jù)庫設(shè)計
- 數(shù)據(jù)庫課程設(shè)計課程設(shè)計論文-醫(yī)院信息管理數(shù)據(jù)庫設(shè)計
- 數(shù)據(jù)庫課程設(shè)計--數(shù)據(jù)庫設(shè)計—公司管理系統(tǒng)
評論
0/150
提交評論