版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 面向?qū)ο蟪绦蛟O(shè)計(jì)(A)課程設(shè)計(jì)</p><p> 題 目 學(xué)生成績(jī)管理系統(tǒng) </p><p><b> 課程設(shè)計(jì)報(bào)告單</b></p><p> 《面向?qū)ο蟪绦蛟O(shè)計(jì)(A)課程設(shè)計(jì)》任務(wù)書(shū)</p><p> 一、課程設(shè)計(jì)任
2、務(wù)及要求:</p><p> 任務(wù):針對(duì)小型信息管理系統(tǒng)或若干綜合性設(shè)計(jì)題目,選擇一種軟件開(kāi)發(fā)模型,完成從需求分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn),軟件測(cè)試的全過(guò)程。</p><p><b> 要求:</b></p><p> (1) 根據(jù)軟件系統(tǒng)開(kāi)發(fā)的一般原則,完成相應(yīng)系統(tǒng)的功能設(shè)計(jì),完成主要功能模塊的程序?qū)崿F(xiàn)并進(jìn)行測(cè)試訓(xùn)練,給出代碼運(yùn)行結(jié)果和相應(yīng)
3、的設(shè)計(jì)文檔??梢苑纸M進(jìn)行,但所有學(xué)生必須經(jīng)歷整個(gè)系統(tǒng)的開(kāi)發(fā)全過(guò)程,以便加深對(duì)系統(tǒng)開(kāi)發(fā)全過(guò)程的認(rèn)識(shí)。</p><p> ?。?)提交課程設(shè)計(jì)報(bào)告。</p><p> ?。?)指標(biāo): 要求完成課程設(shè)計(jì)報(bào)告3000字以上(約二十頁(yè));完成所設(shè)計(jì)的題目,設(shè)計(jì)題目的語(yǔ)句行數(shù)的和在200行語(yǔ)句以上。</p><p><b> 二、工作量</b></
4、p><p> 2周(10個(gè)工作日)時(shí)間</p><p><b> 三、計(jì)劃安排</b></p><p> 第1個(gè)工作日:查找相關(guān)資料、書(shū)籍,閱讀示例文檔,選擇題目。</p><p> 第2個(gè)工作日-第4個(gè)工作日:設(shè)計(jì)程序結(jié)構(gòu)、模塊圖。</p><p> 第5個(gè)工作日-第9個(gè)工作日:完成程序的
5、編碼,并且自己調(diào)試、測(cè)試。穿插進(jìn)行課程設(shè)計(jì)報(bào)告的撰寫(xiě)。</p><p> 第10個(gè)工作日:上交課程設(shè)計(jì)報(bào)告,由教師檢查軟件測(cè)試效果、檢查課程設(shè)計(jì)報(bào)告,給出學(xué)生成績(jī)。</p><p><b> 指導(dǎo)教師簽字:</b></p><p><b> 目 錄</b></p><p> 引言 ……
6、……………………………………………………………………1</p><p> 1 開(kāi)發(fā)環(huán)境 …………………………………………………………………1</p><p> 1.1 硬件環(huán)境 ………………………………………………………………………1</p><p> 1.2 軟件環(huán)境 ………………………………………………………………………1</p>&l
7、t;p> 1.2.1 SQL Server 2005、Delphi7簡(jiǎn)單介紹 ………………………………2</p><p> 2 需求分析 ………………………………………………………………3</p><p> 2.1 信息需求 ………………………………………………………………………3</p><p> 2.2 功能需求 …………………………………………
8、……………………………3</p><p> 2.3 安全性與完整性要求 …………………………………………………………3</p><p> 3 概念結(jié)構(gòu)設(shè)計(jì) …………………………………………………………3</p><p> 4 邏輯結(jié)構(gòu)設(shè)計(jì) …………………………………………………………4</p><p> 5 數(shù)據(jù)庫(kù)實(shí)現(xiàn) …………
9、…………………………………^^……………6</p><p> 5.1 創(chuàng)建數(shù)據(jù)庫(kù) ……………………………………………………………………6</p><p> 5.2 創(chuàng)建數(shù)據(jù)表格 …………………………………………………………………6</p><p> 6 數(shù)據(jù)庫(kù)的運(yùn)行和維護(hù) …………………………………………………8</p><p>
10、6.1 數(shù)據(jù)定義 ……………………………………………………………………8</p><p> 6.2 數(shù)據(jù)查詢 ……………………………………………………………………8</p><p> 6.2.1 單表查詢 ……………………………………………………………8</p><p> 6.2.2 連接查詢 ……………………………………………………………8</
11、p><p> 6.2.3 操作結(jié)果集查詢 ……………………………………………………9</p><p> 6.2.4 嵌套查詢 ……………………………………………………………9</p><p> 6.3 數(shù)據(jù)庫(kù)的更新 ………………………………………………………………9</p><p> 6.3.1 插入數(shù)據(jù) ………………………………
12、……………………………9</p><p> 6.3.2 修改數(shù)據(jù) ……………………………………………………………10</p><p> 6.3.3 刪除數(shù)據(jù) ……………………………………………………………10</p><p> 6.4 數(shù)據(jù)庫(kù)索引 …………………………………………………………………10</p><p> 6.4.
13、1 建立索引 ……………………………………………………………10</p><p> 6.4.2 刪除索引 ……………………………………………………………10</p><p> 6.5 數(shù)據(jù)庫(kù)視圖 …………………………………………………………………10</p><p> 6.6 數(shù)據(jù)庫(kù)的安全性 ……………………………………………………………11</
14、p><p> 6.7 數(shù)據(jù)庫(kù)的完整性 ……………………………………………………………12</p><p> Delphi7軟件實(shí)現(xiàn) …………………………………………………12</p><p> 7.1 界面設(shè)計(jì) ……………………………………………………………………13</p><p> 7.2 數(shù)據(jù)庫(kù)連接 …………………………………
15、………………………………13</p><p> 7.3 登陸權(quán)限 ……………………………………………………………………13</p><p> 7.3.1用戶登陸設(shè)計(jì)…………………………………………………………13</p><p> 7.3.2權(quán)限管理設(shè)計(jì)…………………………………………………………13</p><p> 7.4 管
16、理界面 ……………………………………………………………………13</p><p> 7.5 查詢界面 ……………………………………………………………………13</p><p> 7.6 統(tǒng)計(jì)界面 ……………………………………………………………………13</p><p> 7.7 報(bào)表界面 ……………………………………………………………………14</
17、p><p> 8 程序測(cè)試 ………………………………………………………………14</p><p> 8.1 測(cè)試環(huán)境 ……………………………………………………………………14</p><p> 8.2 功能測(cè)試 ……………………………………………………………………14</p><p> 8.3 問(wèn)題匯總 ……………………………………
18、………………………………14</p><p> 9 結(jié)論 ……………………………………………………………………19</p><p> 參考文獻(xiàn) …………………………………………………………………20</p><p><b> 引言</b></p><p> 21世紀(jì)以高科技為核心的知識(shí)經(jīng)濟(jì)將占主導(dǎo)地位,國(guó)家的綜
19、合國(guó)力和國(guó)際競(jìng)爭(zhēng)力將越來(lái)越取決于科學(xué)技術(shù)創(chuàng)新水平。教育作為知識(shí)創(chuàng)新、傳播和應(yīng)用的基礎(chǔ),培養(yǎng)和輸送人才的搖籃,已經(jīng)成為經(jīng)濟(jì)發(fā)展和社會(huì)進(jìn)步的基礎(chǔ)。盡管人類進(jìn)步的程度隨著不同時(shí)代,不同地區(qū)而有所變化,教育的口徑卻在不斷擴(kuò)寬,以便使過(guò)去僅供少數(shù)人使用的教育資源能夠?yàn)楦喔鞣N年齡、不同社會(huì)階層和背景的人們所用。在信息爆炸的時(shí)代,傳統(tǒng)教學(xué)管理面臨著諸多挑戰(zhàn)。信息在社會(huì)和經(jīng)濟(jì)的發(fā)展中所起的作用越來(lái)越為人們所重視。信息資源的開(kāi)發(fā)和利用,已成為衡量一個(gè)國(guó)
20、家綜合國(guó)力的重要標(biāo)志之一。在計(jì)算機(jī)的三大主要領(lǐng)域(科學(xué)計(jì)算、數(shù)據(jù)處理與過(guò)程控制)中,數(shù)據(jù)處理的比重約占70%左右。計(jì)算機(jī)作為處理的工具,為適應(yīng)數(shù)據(jù)處理需求迅速提高,滿足各類信息系統(tǒng)對(duì)數(shù)據(jù)管理的要求,在文件系統(tǒng)的基礎(chǔ)上發(fā)展起了數(shù)據(jù)庫(kù)系統(tǒng)。計(jì)算機(jī)數(shù)據(jù)庫(kù)管理隨著計(jì)算機(jī)硬件(尤其是外存儲(chǔ)器)、軟件技術(shù)和計(jì)算機(jī)應(yīng)用范圍的發(fā)展而不斷發(fā)展。</p><p> 在計(jì)算機(jī)高速發(fā)展的今天,它已經(jīng)應(yīng)用到了各個(gè)行業(yè),當(dāng)然,學(xué)校也不例外
21、。以前學(xué)校對(duì)學(xué)生的成績(jī)是用人管理,而作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)學(xué)生成績(jī)進(jìn)行信息管理,有著手工管理所無(wú)法比擬的優(yōu)點(diǎn),如:查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高學(xué)校對(duì)學(xué)生成績(jī)管理的效率。因此,開(kāi)發(fā)一套學(xué)生成績(jī)管理系統(tǒng)是有必要的。</p><p><b> 1 開(kāi)發(fā)環(huán)境</b></p><p> 我使用的是Windo
22、ws XP系統(tǒng),安裝了SQL Server 2005、Delphi7用于本系統(tǒng)的開(kāi)發(fā)。</p><p><b> 1.1 硬件環(huán)境</b></p><p> 電腦:鋒銳 K42A-15筆記本電腦</p><p> 操作系統(tǒng):Windows XP</p><p> 處理器:Intel 酷睿2雙核 P7450<
23、/p><p> 處理器主頻: 2.2GHz</p><p> 主板芯片組: Intel PM45+ICH9M</p><p> 內(nèi)存 :2GB (威剛 PC3-10700 DDR3 SDRAM 1334MHz)</p><p><b> 硬盤(pán):320GB</b></p><p> 顯卡:NV
24、IDIA GeForce 9300M GS</p><p><b> 1.2 軟件環(huán)境</b></p><p> 1.2.1 SQL Server 2005、Delphi7簡(jiǎn)單介紹</p><p> ?。?)SQL Server 是一個(gè)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同開(kāi)發(fā)的
25、,于1988 年推出了第一個(gè)OS/2 版本。在Windows NT 推出后,Microsoft與Sybase 在SQL Server 的開(kāi)發(fā)上就分道揚(yáng)鑣了,Microsoft 將SQL Server 移植到Windows NT系統(tǒng)上,專注于開(kāi)發(fā)推廣SQL Server 的Windows NT 版本。Sybase 則較專注于SQL Server在UNIX 操作系統(tǒng)上的應(yīng)SQL Server安裝界面用。</p><p&g
26、t; 以下表格介紹了SQL Server 2005的幾個(gè)主要特性增強(qiáng),重點(diǎn)關(guān)注企業(yè)數(shù)據(jù)管理、開(kāi)發(fā)人員生產(chǎn)力和商務(wù)智能。企業(yè)管理特點(diǎn)如下: </p><p> ?。?)Delphi,是Windows平臺(tái)下著名的快速應(yīng)用程序開(kāi)發(fā)工具(Rapid Application Development,簡(jiǎn)稱RAD)。它的前身,即是DOS時(shí)代盛行一時(shí)的“BorlandTurbo Pascal”,最早的版本由美國(guó)Borland(
27、寶蘭)公司于1995年開(kāi)發(fā)。主創(chuàng)者為Anders Hejlsberg。經(jīng)過(guò)數(shù)年的發(fā)展,此產(chǎn)品也轉(zhuǎn)移至Embarcadero公司旗下。Delphi是一個(gè)集成開(kāi)發(fā)環(huán)境(IDE),使用的核心是由傳統(tǒng)Pascal語(yǔ)言發(fā)展而來(lái)的Object Pascal,以圖形用戶界面為開(kāi)發(fā)環(huán)境,透過(guò)IDE、VCL工具與編譯器,配合連結(jié)數(shù)據(jù)庫(kù)的功能,構(gòu)成一個(gè)以面向?qū)ο蟪绦蛟O(shè)計(jì)為中心的應(yīng)用程序開(kāi)發(fā)工具。</p><p><b>
28、 它的特點(diǎn)如下:</b></p><p> ①直接編譯生成可執(zhí)行代碼,編譯速度快。由于Delphi編譯器采用了條件編譯和選擇鏈接技術(shù),使用 Delphi界面</p><p> 它生成的執(zhí)行文件更加精煉,運(yùn)行速度更快。在處理速度和存取服務(wù)器方面,Delphi的性能遠(yuǎn)遠(yuǎn)高于其他同類產(chǎn)品。</p><p> ②支持將存取規(guī)則分別交給客戶機(jī)或服務(wù)器處理的
29、兩種方案,而且允許開(kāi)發(fā)人員建立一個(gè)簡(jiǎn)單的部件或部件集合,封裝起所有的規(guī)則,并獨(dú)立于服務(wù)器和客戶機(jī),所有的數(shù)據(jù)轉(zhuǎn)移通過(guò)這些部件來(lái)完成。這樣,大大減少了對(duì)服務(wù)器的請(qǐng)求和網(wǎng)絡(luò)上的數(shù)據(jù)傳輸量,提高了應(yīng)用處理的速度。</p><p> ③提供了許多快速方便的開(kāi)發(fā)方法,使開(kāi)發(fā)人員能用盡可能少的重復(fù)性工作完成各種不同的應(yīng)用。利用項(xiàng)目模板和專家生成器可以很快建立項(xiàng)目的構(gòu)架,然后根據(jù)用戶的實(shí)際需要逐步完善。</p>
30、<p> ?、芫哂锌芍赜眯院涂蓴U(kuò)展性。開(kāi)發(fā)人員不必再對(duì)諸如標(biāo)簽、按鈕及對(duì)話框等Windows的常見(jiàn)部件進(jìn)行編程。Delphi包含許多可以重復(fù)使用的部件,允許用戶控制Windows的開(kāi)發(fā)效果。</p><p> ⑤具有強(qiáng)大的數(shù)據(jù)存取功能。它的數(shù)據(jù)處理工具BDE(BorlandDatabaseEngine)是一個(gè)標(biāo)準(zhǔn)的中介軟件層,可以用來(lái)處理當(dāng)前流行的數(shù)據(jù)格式,如xBase、Paradox等,也可以通過(guò)
31、BDE的SQLLink直接與Sybase、SQLServer、Informix、Oracle等大型數(shù)據(jù)庫(kù)連接。 Delphi既可用于開(kāi)發(fā)系統(tǒng)軟件,也適合于應(yīng)用軟件的開(kāi)發(fā)。</p><p> ?、迵碛袕?qiáng)大的網(wǎng)絡(luò)開(kāi)發(fā)能力,能夠快速的開(kāi)發(fā)B/S應(yīng)用,它內(nèi)置的IntraWeb和ExpressWeb使得對(duì)于網(wǎng)絡(luò)的開(kāi)發(fā)效率超過(guò)了其他任何的開(kāi)發(fā)工具。</p><p> ?、逥elphi使用獨(dú)特的VCL類
32、庫(kù),使得編寫(xiě)出的程序顯得條理清晰,VCL是現(xiàn)在最優(yōu)秀的類庫(kù),它使得Delphi在軟件開(kāi)發(fā)行業(yè)處于一個(gè)絕對(duì)領(lǐng)先的地位。用戶可以按自己的需要,任意的構(gòu)建、擴(kuò)充、甚至是刪減VCL,以滿足不同的需要。</p><p> ?、鄰腄elphi8開(kāi)始Delphi也支持.Net框架下程序開(kāi)發(fā)。</p><p> 當(dāng)前DELPHI 已經(jīng)成為一個(gè)品牌,而不僅僅是一個(gè)開(kāi)發(fā)平臺(tái)或開(kāi)發(fā)語(yǔ)言的名稱。 當(dāng)前DELPH
33、I產(chǎn)品已經(jīng)由CodeGear公司繼續(xù)發(fā)展,該公司是BORLAND公司的全資子公司。當(dāng)前,CodeGear為廣大開(kāi)發(fā)者提供了DELPHI FOR PHP,以高度可視化的方式全面支持面向?qū)ο蟮腜HP 網(wǎng)站開(kāi)發(fā),大大提高了PHP開(kāi)發(fā)網(wǎng)站的代碼復(fù)用程度,成為WEB應(yīng)用開(kāi)發(fā)的新利器。</p><p><b> 2 需求分析</b></p><p> 2.1 信息需求 &
34、lt;/p><p> 隨著學(xué)校規(guī)模的不斷擴(kuò)大,專業(yè)、班級(jí)、學(xué)生的數(shù)量急劇增加,有關(guān)學(xué)生選課的各種信息量也成倍增長(zhǎng),而目前許多高校的學(xué)生選課管理仍停留在復(fù)雜的人工操作上,重復(fù)工作較多,工作量大,效率低,因此,迫切需要開(kāi)發(fā)基于互聯(lián)網(wǎng)的體育課信息管理系統(tǒng)來(lái)提高管理工作的效率。基于互聯(lián)網(wǎng)的學(xué)生選課管理系統(tǒng),在學(xué)生選課的規(guī)范管理、科學(xué)統(tǒng)計(jì)和快速查詢方面具有較大的實(shí)用意義。它提高了信息的開(kāi)放性,大大地改善了學(xué)生、教師對(duì)其最新信
35、息查詢的準(zhǔn)確性。</p><p><b> 2.2 功能需求</b></p><p> 1.可實(shí)現(xiàn)學(xué)生選課注冊(cè)</p><p> 2.方便實(shí)現(xiàn)學(xué)生選課信息查詢</p><p> 3.可對(duì)學(xué)生成績(jī)檔案進(jìn)行管理,成績(jī)表單生成簡(jiǎn)便。</p><p> 4.安全有效的用戶區(qū)分,管理</p&
36、gt;<p> 5.檔案數(shù)據(jù)的高安全性,保密性</p><p><b> 6.有幫助文檔</b></p><p> 7.使用穩(wěn)定,操作性能好,操作方法易于掌握,系統(tǒng)的安全性強(qiáng)</p><p> 2.3 安全性與完整性要求 </p><p><b> 概念結(jié)構(gòu)設(shè)計(jì)</b><
37、;/p><p> 概念結(jié)構(gòu)設(shè)計(jì)階段是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵,它通過(guò)對(duì)用戶需求進(jìn)行綜合、歸納與抽象,形成一個(gè)獨(dú)立于具體DBMS的概念模型。</p><p> 設(shè)計(jì)教室管理數(shù)據(jù)庫(kù)包括管理員、學(xué)生、教師、課程四個(gè)關(guān)系。</p><p><b> E-R圖如下:</b></p><p><b> 邏輯結(jié)構(gòu)設(shè)計(jì)<
38、/b></p><p> 邏輯結(jié)構(gòu)是獨(dú)立于任何一種數(shù)據(jù)模型的信息結(jié)構(gòu)。邏輯結(jié)構(gòu)的任務(wù)是把概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的基本E-R圖轉(zhuǎn)化為宜選用的DBMS所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu),并對(duì)其進(jìn)行優(yōu)化。E-R圖向關(guān)系模型轉(zhuǎn)化要解決的問(wèn)題是如何將實(shí)體型和實(shí)體間的聯(lián)系轉(zhuǎn)化為關(guān)系模式,如何確定這些關(guān)系模式的屬性和碼。設(shè)計(jì)學(xué)生成績(jī)管理數(shù)據(jù)庫(kù),包括課程、學(xué)生、教師、成績(jī)四個(gè)關(guān)系, 其關(guān)系模式中對(duì)每個(gè)實(shí)體定義的屬性如下:&
39、lt;/p><p> 課程信息表(課號(hào),課程名稱,學(xué)分,主講教師,學(xué)時(shí))</p><p> 學(xué)生信息表 (學(xué)號(hào),姓名,性別,年齡,所在院系,專業(yè))</p><p> 學(xué)生成績(jī)表(學(xué)號(hào),課號(hào),成績(jī))</p><p> 教師信息表(教工編號(hào),姓名,性別,年齡,所在院系)</p><p> 用戶權(quán)限表(UserName
40、,Password,權(quán)限)</p><p> 學(xué)生選課表(學(xué)號(hào),課號(hào))</p><p><b> 5 數(shù)據(jù)庫(kù)實(shí)現(xiàn)</b></p><p> 5.1 創(chuàng)建數(shù)據(jù)庫(kù) </p><p> 打開(kāi)SQL Sever 2005,選擇默認(rèn)數(shù)據(jù)庫(kù)連接。接下來(lái)右鍵單擊數(shù)據(jù)新建數(shù)據(jù)庫(kù),命名為:學(xué)生成績(jī)管理系統(tǒng)。</p>
41、<p> 或者:(1)打開(kāi)SQL工具“查詢分析器”</p><p> (2)在查詢窗口中鍵入下列SQL語(yǔ)句</p><p> create database學(xué)生成績(jī)管理系統(tǒng)</p><p> 執(zhí)行上述SQL語(yǔ)句即可新建一名為 “學(xué)生成績(jī)管理系統(tǒng)”的數(shù)據(jù)庫(kù)</p><p> 5.2 創(chuàng)建數(shù)據(jù)表格</p>&l
42、t;p> 一個(gè)完整的數(shù)據(jù)庫(kù)不可缺少的就是數(shù)據(jù)表,若干個(gè)數(shù)據(jù)表的集合成一個(gè)數(shù)據(jù)庫(kù)。數(shù)據(jù)表主要用來(lái)存放一定格式的記錄,數(shù)據(jù)表中的行被稱為記錄,列被稱為字段。創(chuàng)建數(shù)據(jù)表的過(guò)程其實(shí)就是定義字段的過(guò)程。</p><p> 在此學(xué)生成績(jī)管理系統(tǒng)中需要?jiǎng)?chuàng)建六個(gè)表,即課學(xué)生信息表、學(xué)生成績(jī)表、教師信息表、用戶權(quán)限表、學(xué)生選課表、課程信息表。</p><p> 創(chuàng)建數(shù)據(jù)庫(kù)后,為學(xué)生成績(jī)管理系統(tǒng)數(shù)
43、據(jù)庫(kù)添加數(shù)據(jù)表,步驟如下。</p><p><b> 新建查詢窗口</b></p><p> 在查詢窗口中鍵入下列SQL語(yǔ)句</p><p> ?、賑reate table課程信息表( //創(chuàng)建課程信息表</p><p> 課號(hào)char(10) primary key, //課號(hào)</p
44、><p> 課程名稱char(15) not null, //課程名稱</p><p> 主講教師char(4) Not null, //主講教師</p><p> 學(xué)時(shí) int Not null, //學(xué)時(shí)</p><p> 學(xué)分int, Not null //學(xué)分)&
45、lt;/p><p> 執(zhí)行上述SQL語(yǔ)句即可創(chuàng)建課程信息表相關(guān)表格;</p><p> ?、赾reate table 學(xué)生信息表( //創(chuàng)建學(xué)生信息表</p><p> 學(xué)號(hào) char(10) primary key, //學(xué)號(hào)</p><p> 姓名 char(4) not null, //姓名&
46、lt;/p><p> 性別 char(1) not null, //性別 </p><p> 年齡 int not null, //年齡</p><p> 所在院系char(15) not null, //所在院系</p><p> 專業(yè) char(15) not null
47、 //專業(yè))</p><p> 執(zhí)行上述SQL語(yǔ)句即可創(chuàng)建學(xué)生信息表相關(guān)表格;</p><p> ?、踓reate table 教師信息表( //創(chuàng)建教師信息表</p><p> 教工編號(hào)char(10) primary key, //教工編號(hào)</p><p> 姓名char(4) not
48、 null, //姓名</p><p> 性別 char(1) not null, //性別</p><p> 年齡 int not null, //年齡</p><p> 所在院系 char(15) not null //所在院系)</p><
49、p> 執(zhí)行上述SQL語(yǔ)句即可創(chuàng)建教師信息表相關(guān)表格;</p><p> ?、躢reate table 學(xué)生成績(jī)表( //創(chuàng)建學(xué)生成績(jī)表</p><p> 學(xué)號(hào) char(10) primary key, //學(xué)號(hào)</p><p> 課號(hào) char(10) primary key, /
50、/課號(hào)</p><p> 成績(jī) int not null //成績(jī))</p><p> 執(zhí)行上述SQL語(yǔ)句即可創(chuàng)建學(xué)生成績(jī)表相關(guān)表格;</p><p> ⑤create table 用戶權(quán)限表( //創(chuàng)建用戶權(quán)限表</p><p> UserName char(1
51、0) primary key // 用戶名</p><p> Password char(6) not null, //密碼 </p><p> 權(quán)限 int not null, //權(quán)限</p><p> 執(zhí)行上述SQL語(yǔ)句即可創(chuàng)建用戶權(quán)限表相關(guān)表格;</p><
52、;p> ⑥create table 學(xué)生選課表( //創(chuàng)建學(xué)生選課表</p><p> 學(xué)號(hào) char(10) primary key, //學(xué)號(hào)</p><p> 課號(hào) char(10) primary key //課號(hào) </p><p> 執(zhí)行上述SQL語(yǔ)句即可創(chuàng)建學(xué)生選課表相關(guān)表格。</p>&
53、lt;p> 6 數(shù)據(jù)庫(kù)的運(yùn)行和維護(hù)</p><p> 6.1 數(shù)據(jù)定義 </p><p> ?。?)基本表的創(chuàng)建,建表語(yǔ)句</p><p> create table 表名</p><p><b> ?。?)基本表的刪除</b></p><p> drop table stude
54、nts</p><p><b> 6.2 數(shù)據(jù)查詢</b></p><p> 6.2.1 單表查詢</p><p> ?。?)查詢 學(xué)號(hào) 為0811080101學(xué)生的 姓名</p><p><b> select姓名</b></p><p> from 學(xué)生信息表
55、</p><p> where 學(xué)號(hào)='0811080101'</p><p> ?。?)查詢 性別 為’女’并且 所在院系 為’計(jì)算機(jī)科學(xué)學(xué)院’的 姓名</p><p><b> select姓名</b></p><p> from 學(xué)生信息表</p><p> wher
56、e 性別 ='女' and</p><p> 所在院系 ='工商'</p><p> (3)查詢所有學(xué)生的姓名和系別。</p><p> select 學(xué)生,所在院系t</p><p> from 學(xué)生信息表</p><p> ?。?)查詢 所在院系 為計(jì)算機(jī)科學(xué)學(xué)院 系的 姓名
57、。</p><p> select 姓名</p><p> from 學(xué)生信息表</p><p> where 所在院系 ='計(jì)算機(jī)科學(xué)學(xué)院'</p><p> ?。?)查詢所有學(xué)生所在院系名稱</p><p> select distinct 所在院系</p><p&g
58、t; from 學(xué)生信息表</p><p> (6)查詢學(xué)生信息表中年齡小于21和年齡大于21的學(xué)生的姓名和所在院系別</p><p> select 姓名,院系</p><p> from 學(xué)生信息表</p><p> where 年齡>21 or年齡<21</p><p> ?。?)查詢
59、所有學(xué)生的平均年齡</p><p> select avg(年齡) as 平均年齡</p><p> from 學(xué)生信息表</p><p> 6.2.2 連接查詢 </p><p> (1)學(xué)生的學(xué)號(hào)、姓名,所選課程的課號(hào)、課程名稱和成績(jī)、主講教師</p><p> Select 學(xué)生信息表.學(xué)號(hào),&l
60、t;/p><p><b> 學(xué)生信息表.姓名,</b></p><p><b> 課程信息表.課號(hào),</b></p><p> 課程信息表.課程名稱,</p><p><b> 學(xué)生成績(jī)表.成績(jī),</b></p><p><b> 教師信
61、息表.姓名</b></p><p> from學(xué)生信息表, 課程信息表, 學(xué)生成績(jī)表, 教師信息表</p><p> Where學(xué)生信息表.學(xué)號(hào)=學(xué)生成績(jī)表.學(xué)號(hào) and </p><p> 課程信息表.課號(hào)=學(xué)生成績(jī)表.課號(hào)績(jī)and </p><p> 教師信息表.姓名=課程信息表.主講教師</p><
62、;p> ?。?)找出教授數(shù)據(jù)庫(kù)原理的老師的教師名</p><p><b> 教師信息表.姓名</b></p><p> from課程信息表, 教師信息表</p><p> Where課程信息表.課號(hào)=教師信息表.教工編號(hào) and課程信息表.課程名稱='數(shù)據(jù)庫(kù)原理'</p><p> 6.2.
63、3 操作結(jié)果集查詢</p><p> 查詢0811080102號(hào)同學(xué)和0811080103號(hào)同學(xué)共同選修的課程</p><p><b> Select 課號(hào)</b></p><p> From 學(xué)生成績(jī)表</p><p> Where 學(xué)號(hào)='0811080102'</p><
64、;p><b> Intersect</b></p><p><b> Select課號(hào)</b></p><p><b> From學(xué)生成績(jī)表</b></p><p> Where 學(xué)號(hào)='0811080103'</p><p> 6.2.4 嵌
65、套查詢</p><p> 查詢選修了0301這門(mén)課的所有學(xué)生的學(xué)號(hào)、姓名、年齡、所在院系</p><p> Select 學(xué)號(hào),姓名,年齡,所在院系</p><p> From 學(xué)生信息表</p><p> Where 學(xué)號(hào) in</p><p> (select 學(xué)號(hào)</p><p>
66、; From 學(xué)生成績(jī)表</p><p> Where 課號(hào)=’0301’)</p><p> 6.3 數(shù)據(jù)庫(kù)的更新</p><p><b> 6.3.1插入數(shù)據(jù)</b></p><p> 向?qū)W生信息表中添加一項(xiàng)記錄:</p><p> 姓名:葉問(wèn),學(xué)號(hào):0811080201,性別:
67、男,年齡:24,所在院系:計(jì)算機(jī)科學(xué)與工程學(xué)院</p><p><b> Insert</b></p><p> Into 學(xué)生信息表(學(xué)號(hào),性別,年齡,所在院系)</p><p> Values ('0811080201',' 葉問(wèn)', '男',' 36','計(jì)算機(jī)
68、科學(xué)與工程學(xué)院')</p><p> 6.3.2 修改數(shù)據(jù)</p><p> 修改陳琦的學(xué)號(hào)為081108023:</p><p> Update 學(xué)生信息表</p><p> Set 學(xué)號(hào)=’0811080203’</p><p> Where 姓名=’陳琦’;</p><p&
69、gt; 6.3.3 刪除數(shù)據(jù)</p><p> 刪除所有工商學(xué)生的記錄</p><p><b> Delete </b></p><p> from 學(xué)生信息表</p><p> Where(所在院系=’計(jì)算機(jī)科學(xué)與工程學(xué)院’);</p><p> 6.4 數(shù)據(jù)庫(kù)索引</p&
70、gt;<p> 創(chuàng)建索引可以大大提高系統(tǒng)的性能。第一,通過(guò)創(chuàng)建唯一性索引,可以保證每一行數(shù)據(jù)的唯一性。第二,可以大大加快數(shù)據(jù)的檢索速度,這也是所以的最主要原因。第三,可以加速表與表之間的連接,特別是實(shí)現(xiàn)數(shù)據(jù)的參考完整性方面特有意義。第四,在使用ORDER BY和GROUP BY子句進(jìn)行數(shù)據(jù)檢索時(shí),同樣可以顯著減少查詢中分組和排序的時(shí)間。第五,通過(guò)使用索引,可以在查詢過(guò)程中,使用優(yōu)化隱藏器,提高系統(tǒng)性能。</p>
71、;<p> 6.4.1 建立索引</p><p> (1) 在 課程信息表的 課號(hào) 列上創(chuàng)建非聚集索引。</p><p> Create index 課程名稱 ON 課程信息表(課號(hào))</p><p> (2) 在 學(xué)生信息表 的學(xué)號(hào) 列上創(chuàng)建非聚集索引。</p><p> Create unique index
72、學(xué)號(hào) ON 學(xué)生信息表(學(xué)號(hào))</p><p> (3) 在學(xué)生信息表的 學(xué)號(hào) 列創(chuàng)建一個(gè)非聚集索引,要求索引鍵值按 學(xué)號(hào) 升序排列。</p><p> Create index 學(xué)生學(xué)號(hào) ON 學(xué)生信息表(學(xué)號(hào) ASC)</p><p> 6.4.2 刪除索引</p><p> 刪除學(xué)生信息表中的 學(xué)號(hào) 索引。</p&
73、gt;<p> Drop index 學(xué)號(hào)</p><p> 6.5 數(shù)據(jù)庫(kù)視圖</p><p> (1)查詢所有學(xué)生選課的信息,包括學(xué)號(hào)、姓名、課號(hào)、課程名稱</p><p> create view 學(xué)生選課查詢</p><p><b> as</b></p><p&
74、gt; select 學(xué)生信息表.學(xué)號(hào),姓名,課程信息表.課號(hào),課程名稱</p><p> from 學(xué)生信息表,學(xué)生選課表,課程信息表</p><p> where 學(xué)生信息表.學(xué)號(hào)=學(xué)生選課表.學(xué)號(hào)</p><p> and 課程信息表.課號(hào)=學(xué)生選課表.課號(hào)</p><p><b> go </b>&l
75、t;/p><p> (2)查詢所有學(xué)生成績(jī)的信息,包括學(xué)號(hào)、姓名、課程名稱、成績(jī)</p><p> create view 學(xué)生成績(jī)查詢</p><p><b> as</b></p><p> select 學(xué)生信息表.學(xué)號(hào),姓名,課程信息表.課程名稱,成績(jī)</p><p> from
76、學(xué)生信息表,課程信息表,學(xué)生成績(jī)表,學(xué)生選課表</p><p> where 學(xué)生信息表.學(xué)號(hào)=學(xué)生選課表.學(xué)號(hào)</p><p> and 學(xué)生選課表.學(xué)號(hào)=學(xué)生成績(jī)表.學(xué)號(hào)</p><p> and 學(xué)生信息表.學(xué)號(hào)=學(xué)生成績(jī)表.學(xué)號(hào)</p><p> and 課程信息表.課號(hào)=學(xué)生選課表.課號(hào)</p>&
77、lt;p> and 學(xué)生成績(jī)表.課號(hào)=學(xué)生選課表.課號(hào)</p><p> and 學(xué)生成績(jī)表.課號(hào)=課程信息表.課號(hào)</p><p><b> go </b></p><p><b> (3)更新視圖:</b></p><p> (1)修改信息:將王蒙的名字改為孟尋</
78、p><p> Update 學(xué)生選課查詢</p><p> set 學(xué)生名='孟尋 '</p><p> where 學(xué)生名='王蒙</p><p> (2)刪除信息:刪除視圖 學(xué)生選課查詢 中孟尋的記錄</p><p><b> delete</b></p&g
79、t;<p> from score</p><p> where 學(xué)生名='孟尋'</p><p> (4)刪除視圖:刪除前面的 學(xué)生選課查詢 視圖。</p><p> drop view學(xué)生選課查詢</p><p> 6.6 數(shù)據(jù)庫(kù)的安全性</p><p> ?。?)把對(duì)
80、學(xué)生信息表 的insert權(quán)限授予用戶admin,并允許他再將此權(quán)限授予其他用戶。</p><p> grant insert</p><p> on table學(xué)生信息表</p><p><b> to admin</b></p><p> with grant option</p><p
81、> ?。?)把查詢表 學(xué)生選課表 的權(quán)限授給用戶孟尋。</p><p> grant select</p><p> on table學(xué)生信息表</p><p><b> to 孟尋</b></p><p> (3)把用戶孟尋查詢 學(xué)生信息表 權(quán)限收回。</p><p> revo
82、ke select </p><p> on table學(xué)生信息表</p><p><b> from 孟尋 </b></p><p><b> 數(shù)據(jù)庫(kù)的完整性</b></p><p> 對(duì)于學(xué)生成績(jī)表:成績(jī)的值應(yīng)該在0和100之間:</p><p> creat
83、e table 學(xué)生成績(jī)表( //創(chuàng)建學(xué)生成績(jī)表</p><p> 課號(hào) char(10) primary key, //課號(hào)</p><p> 學(xué)號(hào) char(10) primary key, //學(xué)號(hào)</p><p> 成績(jī) int Not null
84、 //成績(jī)</p><p> check (成績(jī) >0 and 成績(jī)<=100 ) </p><p><b> )</b></p><p> 7 Delphi7軟件實(shí)現(xiàn)</p><p><b> 7.1 界面設(shè)計(jì)</b></p><p> 我
85、到網(wǎng)上找了一些管理系統(tǒng)的圖片,用PS進(jìn)行了一些加工處理,再將所要用的標(biāo)題和按鈕以及表格添加進(jìn)去??偣?2個(gè)界面,第一個(gè)是登陸界面,第二個(gè)是菜單界面,第十個(gè)是關(guān)于的界面,其余為功能界面。</p><p><b> 登錄界面一覽:</b></p><p><b> 管理界面一覽:</b></p><p><b>
86、 查詢界面一覽:</b></p><p> 7.2 數(shù)據(jù)庫(kù)連接 </p><p> 數(shù)據(jù)庫(kù)的連接要用到ADOConnection按鈕,然后用ADOTable按鈕連接數(shù)據(jù)庫(kù)的表和DataSource按鈕、DBGrid按鈕,用以顯示表的內(nèi)容。連接的時(shí)候注意要將Active設(shè)置為true。做查詢表連接數(shù)據(jù)庫(kù)用ADOQuery和DataSource、DBGrid三個(gè)按鈕,在bu
87、tton上鍵入相應(yīng)的條件語(yǔ)句就能實(shí)現(xiàn)相應(yīng)的查詢操作。</p><p><b> 7.3 登陸權(quán)限</b></p><p> 7.3.1 用戶登陸設(shè)計(jì)</p><p> 在用戶登錄界面的登錄按鈕上設(shè)置了具體的條件,學(xué)生只能在登錄后進(jìn)行選課和成績(jī)以及課程的查詢操作,或者瀏覽關(guān)于軟件的制作團(tuán)隊(duì)的信息;教師則可以對(duì)學(xué)生的成績(jī)進(jìn)行錄入修改等管理,
88、對(duì)學(xué)生成績(jī)選課進(jìn)行查看,以及查看統(tǒng)計(jì)和報(bào)表,瀏覽關(guān)于界面;管理員則可查看任何界面,擁有對(duì)教師、學(xué)生的信息進(jìn)行修改的權(quán)限,還可以對(duì)不同的用戶進(jìn)行授予權(quán)限。進(jìn)入第菜單界面的時(shí)候,對(duì)于沒(méi)有權(quán)限的操作,菜單上顯示為不可操作的灰色。</p><p> 7.3.2 權(quán)限管理設(shè)計(jì)</p><p> 不同用戶的權(quán)限信息儲(chǔ)存在數(shù)據(jù)庫(kù)的用戶權(quán)限表格里面,管理員的權(quán)限代碼為0,教師的權(quán)限代碼為1,學(xué)生的權(quán)限
89、代碼為2。當(dāng)用戶在登錄的時(shí)候,程序會(huì)與用的權(quán)限進(jìn)行核對(duì),賦予相應(yīng)的權(quán)限。而這張用戶權(quán)限表則由管理員進(jìn)行管理,可向其中添加、刪除、修改用戶以及權(quán)限。</p><p><b> 7.4 管理界面</b></p><p> 管理界面有教師信息管理、學(xué)生信息管理、課程信息管理、用戶權(quán)限管理以及成績(jī)管理,在各個(gè)界面有添加、刪除、修改、提交、退出幾個(gè)選項(xiàng),有相應(yīng)權(quán)限的人可對(duì)
90、其進(jìn)行修改。</p><p><b> 7.5 查詢界面</b></p><p> 查詢界面主要是供學(xué)生進(jìn)行成績(jī)和課程的查詢操作??梢暂斎胱约旱膶W(xué)號(hào)、姓名、課號(hào)、課程名稱進(jìn)行成績(jī)與已選課程的查詢。</p><p> 7.6 統(tǒng)計(jì)界面 </p><p> 統(tǒng)計(jì)界面使用了一個(gè)GroupBox,里面放了三個(gè)Radi
91、oButton,分別統(tǒng)計(jì)了總學(xué)生人數(shù)、不及格學(xué)生以及優(yōu)秀學(xué)生人數(shù)(成績(jī)?cè)?0分以上者)。</p><p> 7.7 報(bào)表界面 </p><p> 因?yàn)閳?bào)表只用于查看打印,所以連接在學(xué)生選課查詢的視圖上。另外有預(yù)覽報(bào)表和打印報(bào)表以及退出按鈕,可實(shí)現(xiàn)報(bào)表預(yù)覽、打印。另外用函數(shù)功能顯示了總?cè)藬?shù)、最高成績(jī)、低成績(jī)以及平均成績(jī)。</p><p><b> 報(bào)
92、表界面一覽:</b></p><p><b> 8 程序測(cè)試</b></p><p><b> 8.1 測(cè)試環(huán)境</b></p><p> WindowsXP,分配內(nèi)存1GB,SQL Sever 2005,Delphi7。</p><p><b> 功能測(cè)試<
93、;/b></p><p> 經(jīng)過(guò)測(cè)試,基本實(shí)現(xiàn)了管理、查詢、修改、更新、統(tǒng)計(jì)、報(bào)表等功能,程序比較穩(wěn)定。</p><p><b> 8.3 問(wèn)題匯總</b></p><p> 本程序的不足主要在于:</p><p> 選課和信息查詢只需要輸入學(xué)號(hào)或者課號(hào)就可以查詢到所有人的資料,在設(shè)計(jì)的時(shí)候考慮了很久還是
94、沒(méi)有辦法解決這一問(wèn)題。</p><p> 由于選課和成績(jī)表設(shè)置了學(xué)生、課程的外碼到學(xué)生信息表和學(xué)生選課表,所以向選課和成績(jī)表中添加學(xué)生信息表中不存在的信息時(shí),程序會(huì)出錯(cuò),一直沒(méi)有找到有效地應(yīng)對(duì)機(jī)制。</p><p><b> 9 結(jié)論</b></p><p> 本學(xué)生成績(jī)查詢系統(tǒng)主要參照課本,相對(duì)來(lái)說(shuō)比較簡(jiǎn)單。但是由于主要以課本為依據(jù),所
95、以整個(gè)設(shè)計(jì)做下來(lái)基本掌握了課本上數(shù)據(jù)庫(kù)的基礎(chǔ)操作。首先是對(duì)SQL Sever 2005的運(yùn)用有了更深一層的領(lǐng)悟,對(duì)于Delphi7,由于涉及的大部分時(shí)間都在使用這一款軟件,我對(duì)它的基本操作已經(jīng)很熟悉了。設(shè)計(jì)中提還是完成了,學(xué)生成績(jī)管理系統(tǒng)實(shí)現(xiàn)了對(duì)學(xué)生成績(jī)以及課程的管理、查詢、基本的統(tǒng)計(jì)、報(bào)表,也實(shí)現(xiàn)了對(duì)學(xué)生、教師、管理員的權(quán)限的管理。設(shè)計(jì)過(guò)程中我也遇到了一些問(wèn)題,再向其他同學(xué)請(qǐng)教的過(guò)程中我收獲了很多。</p><p&
96、gt; ?。?)操作視圖查詢,編寫(xiě)代碼時(shí)發(fā)現(xiàn),一個(gè)表中的主鍵必須是另一個(gè)表的外鍵時(shí)才可以對(duì)另一個(gè)表進(jìn)行引用。</p><p> (2)在設(shè)計(jì)表時(shí)應(yīng)注意使用正確的字段類型。</p><p> (3)表的主鍵是多個(gè)屬性的組合主鍵,則必須作為表級(jí)完整性進(jìn)行定義。</p><p><b> 參考文獻(xiàn)</b></p><p>
97、; [1] 肖永順 劉韜 李生海等.delphi程序設(shè)計(jì)[M].北京.人民郵電出版社.2000.1</p><p> [2] 儲(chǔ)啟明 周旭.delphi7典型實(shí)例開(kāi)發(fā)篇(基礎(chǔ)開(kāi)發(fā)篇)[M].北京.清華大學(xué)出版社.2003.9</p><p> [3] 段來(lái)盛 鄭城榮.delphi實(shí)戰(zhàn)演練[M].北京:人民郵電出版社.2000.11</p><p> [
溫馨提示
- 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ù)僅提供信息存儲(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é)生成績(jī)管理系統(tǒng)
- 課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生成績(jī)管理系統(tǒng) 課程設(shè)計(jì)
- 課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)-- 學(xué)生成績(jī)管理系統(tǒng)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)9
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)10
- vfp課程設(shè)計(jì)--- 學(xué)生成績(jī)管理系統(tǒng)
- java課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- vfp課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- vb課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- vb課程設(shè)計(jì)----學(xué)生成績(jī)管理系統(tǒng)
- web課程設(shè)計(jì).學(xué)生成績(jī)管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論