數(shù)據(jù)庫課程設(shè)計學(xué)生選課信息管理系統(tǒng)

上傳人:仙*** 文檔編號:253590780 上傳時間:2025-03-16 格式:DOC 頁數(shù):27 大?。?.29MB
收藏 版權(quán)申訴 舉報 下載
數(shù)據(jù)庫課程設(shè)計學(xué)生選課信息管理系統(tǒng)_第1頁
第1頁 / 共27頁
數(shù)據(jù)庫課程設(shè)計學(xué)生選課信息管理系統(tǒng)_第2頁
第2頁 / 共27頁
數(shù)據(jù)庫課程設(shè)計學(xué)生選課信息管理系統(tǒng)_第3頁
第3頁 / 共27頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《數(shù)據(jù)庫課程設(shè)計學(xué)生選課信息管理系統(tǒng)》由會員分享,可在線閱讀,更多相關(guān)《數(shù)據(jù)庫課程設(shè)計學(xué)生選課信息管理系統(tǒng)(27頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、 信息工程學(xué)院信息工程學(xué)院 課程設(shè)計報告 設(shè)計名稱:設(shè)計名稱: 數(shù)據(jù)數(shù)據(jù)庫庫課程設(shè)計課程設(shè)計 姓姓 名:名: 楊美麗楊美麗 學(xué)學(xué) 號:號:1134160211 1134160211 姓姓 名:名: 張曉魁張曉魁 學(xué)學(xué) 號:號:113416021134160232 32 姓姓 名:名: 張穎莉張穎莉 學(xué)學(xué) 號:號:113416021134160240 40 專業(yè)班級:專業(yè)班級: 軟件工程軟件工程 系系 (院) :院) : 信息工程學(xué)院信息工程學(xué)院 設(shè)計時間:設(shè)計時間: 201120012 學(xué)年第學(xué)年第一一學(xué)期學(xué)期 設(shè)計地點:設(shè)計地點: 數(shù)據(jù)庫實驗室數(shù)據(jù)庫實驗室 成績:成績: 數(shù)據(jù)庫課程設(shè)計報告

2、第 1 頁,共 27頁 一課程設(shè)計目的 數(shù)據(jù)庫課程設(shè)計是為數(shù)據(jù)庫原理及應(yīng)用課程而獨立開設(shè)的實踐性課程,對于鞏固數(shù)據(jù)庫知識,加強學(xué)生的實際動手能力和提高學(xué)生綜合素質(zhì)十分必要。通過本實驗達到以下目的: (1) 培養(yǎng)學(xué)生具有 C/S 和 B/S/S 模式的數(shù)據(jù)庫應(yīng)用軟件系統(tǒng)的設(shè)計和開發(fā)能力。 (2) 熟練掌握一種數(shù)據(jù)庫系統(tǒng)(如 SQL SERVER)的使用。 (3) 熟練掌握一種數(shù)據(jù)庫應(yīng)用軟件開發(fā)工具(如 POWERBUILDER 、ASP、VB.NET)的使用。 (4) 通過設(shè)計實際的數(shù)據(jù)庫系統(tǒng)應(yīng)用課題,進一步熟悉數(shù)據(jù)庫管理系統(tǒng)的操作技術(shù),提高動手能力,提高分析問題和解決問題的能力。 二課程設(shè)計任

3、務(wù)與要求: 1、任務(wù):任務(wù): 學(xué)生選課系統(tǒng) 問題描述: 1) 學(xué)校學(xué)生有一萬多人。 2) 每個學(xué)生都有學(xué)號、學(xué)生姓名、學(xué)生性別、學(xué)生年齡、所在系別等信息。 3) 每門課程有課程號、課程名、學(xué)分、學(xué)期、學(xué)時。 4) 學(xué)生可以選修多門課程,一門課程可以供多個學(xué)生選修。 2、設(shè)計要求:設(shè)計要求: 1) 實現(xiàn)學(xué)生信息管理的信息添加、修改、刪除。 2) 實現(xiàn)課程信息管理的信息添加、修改、刪除。 3) 實現(xiàn)對所有學(xué)生選課管理的選課、查詢。 4) 能夠按學(xué)號、課程號查詢學(xué)生的選課信息。 5) 能夠按查詢值查詢。 6)設(shè)計一完整的數(shù)據(jù)庫。要求掌握數(shù)據(jù)庫的設(shè)計的每個步驟;掌握數(shù)據(jù)設(shè)計各階段的輸入、輸出、設(shè)計環(huán)境

4、、目標和方法;熟練的使用 SQL 語言實現(xiàn)數(shù)據(jù)庫以及數(shù)據(jù)庫重要對象的建立、應(yīng)用和維護。 三課程設(shè)計說明書 1 需求分析需求分析 (1 1)數(shù)據(jù)需求)數(shù)據(jù)需求 學(xué)生選課信息管理系統(tǒng)需要完成功能主要有: 用戶登錄窗體界面,包括用戶名和密碼。 學(xué)生選課信息管理系統(tǒng)窗體界面包含學(xué)生信息管理、課程信息管理、選課信息管理和退出本系統(tǒng),點擊子系統(tǒng)可以進入各個模塊。 學(xué)生信息管理窗體有添加、修改、刪除、退出的功能,包括學(xué)生學(xué)號、姓名、性別、年齡、所在系部。 課程信息管理窗體有添加、修改、刪除、退出的功能,包括課程編號、課程名、學(xué)分、學(xué)期、學(xué)時。 學(xué)生選課與選課信息查詢窗體有選課、查詢與退出的功能,選課包括選擇

5、學(xué)生與選擇課程,選課查詢包括查詢內(nèi)容與查詢值。 數(shù)據(jù)庫課程設(shè)計報告 第 2 頁,共 27頁 (2 2)事務(wù)事務(wù)需求需求 在登錄窗體部分,要求: 可以輸入用戶名和密碼進入系統(tǒng)學(xué)生選課信息管理系統(tǒng)主窗體。 在學(xué)生選課信息管理系統(tǒng)的主窗體部分,要求: 可以執(zhí)行點擊學(xué)生信息管理、 課程信息管理、 選課信息管理和退出本系統(tǒng)按鈕進入的各個子系統(tǒng)操作。 在學(xué)生信息管理部分,要求: a.可以瀏覽學(xué)生信息。 b.可以對學(xué)生信息進行添加、修改、刪除操作。 在課程信息管理部分,要求: a.可以瀏覽課程信息。 b.對課程信息可添加、修改、刪除操作。 在學(xué)生選課與選課信息查詢部分,要求: a.顯示當前數(shù)據(jù)庫中選課信息情

6、況。 b.對學(xué)生選課與選課信息查詢有選課、查詢與退出操作。 c.對學(xué)生選課信息有查詢操作。 (3)(3)關(guān)系模式關(guān)系模式 (1) 登錄(用戶名,密碼,用戶分類) (2) 學(xué)生信息(學(xué)生學(xué)號,姓名,性別,年齡,所在系部) (3) 課程信息(課程編號,課程名,學(xué)分,學(xué)期,學(xué)時) (4) 學(xué)生選課(學(xué)生學(xué)號,課程編號,成績) (5) 選課信息查詢(學(xué)生學(xué)號, 課程編號) (4 4)數(shù)據(jù)流程圖)數(shù)據(jù)流程圖(DFD) 通過對系統(tǒng)需求的調(diào)查分析,細化軟件功能,把系統(tǒng)劃分為四個子系統(tǒng),明確每個子系統(tǒng)所要完的主要邏輯功能,采用以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動和處理。 圖 1-1 頂層數(shù)據(jù)流圖 學(xué)生選課管理 系

7、統(tǒng) 學(xué)生 管理員 學(xué)生信息 選課信息 選課信息 圖書信息 課程信息 圖書信息 學(xué)生 學(xué)生 數(shù)據(jù)庫課程設(shè)計報告 第 3 頁,共 27頁 圖 1-2 一層數(shù)據(jù)流圖 注: D1 選課信息數(shù)據(jù)庫 D2 學(xué)生信息數(shù)據(jù)庫 D3 用戶登錄數(shù)據(jù)庫 D4 課程信息數(shù)據(jù)庫 F1 登錄信息 F2,F(xiàn)3 選課信息 F4 課程管理信息 F5 學(xué)生信息 圖 1-3 二層數(shù)據(jù)流圖 P2.1 選擇查詢 F2.1 F2 P2.2 直接選課 D1 P2.3 多條件查詢 F3 F2.2 P 數(shù)據(jù)流 數(shù)據(jù)處理 D 數(shù)據(jù)存儲 F F4 P3 D1 F5 課程信息 學(xué)生信息 P4 D2D3 D4 登 錄 P1 選課查詢 P2 F2 F1

8、 F3 數(shù)據(jù)庫課程設(shè)計報告 第 4 頁,共 27頁 圖 1-4 二層數(shù)據(jù)流圖 圖 1-5 二層數(shù)據(jù)流圖 (5 5)數(shù)據(jù)字典)數(shù)據(jù)字典 為了使各數(shù)據(jù)流,數(shù)據(jù)處理過程,存儲過程不能反映其中的數(shù)據(jù)成,數(shù)據(jù)項目,數(shù)據(jù)特性,所以用數(shù)據(jù)字典來對數(shù)據(jù)流圖中的各成份進行具體的定義,為系統(tǒng)的分析,設(shè)計及以后的實現(xiàn)提供供有關(guān)元素一致性定義和詳細的描述: 數(shù)據(jù)流字典數(shù)據(jù)流字典 數(shù)據(jù)流名稱:用戶登錄 標志符:F1 別名:無 來源:用戶 去向:查詢處理過程(P2、P3、P4) 數(shù)據(jù)組成:用戶名+密碼 F4 P3.1 課程 P3.2 添 加 P3.4 刪除 D3 F4 F4 P3.3 修改 F4 P4.1 學(xué)生信息 F5

9、 P4.2 添 加 P4.3 修改 P4.4 刪除 D4 數(shù)據(jù)庫課程設(shè)計報告 第 5 頁,共 27頁 數(shù)據(jù)流名稱:選課查詢 標志符:F2 別名:無 來源:學(xué)生 去向:查詢處理過程(P2) 數(shù)據(jù)組成:選擇學(xué)生|選擇課程 數(shù)據(jù)流名稱:直接選課 標志符:F2.1 別名:無 來源:學(xué)生 去向: 直接查詢處理過程(P2.2) 數(shù)據(jù)組成:選擇學(xué)生|選擇課程 數(shù)據(jù)流名稱:多條件查詢 標志符:F2.2 別名:無 來源:學(xué)生 去向: 多條件查詢處理過程(P2.3) 數(shù)據(jù)組成:學(xué)號|課程號|查詢值 數(shù)據(jù)流名稱:課程信息 標志符:F4 別名:無 來源:學(xué)生 去向: 課程信息處理過程(P3) 數(shù)據(jù)組成:課程編號|課程

10、名|學(xué)期|學(xué)時|學(xué)分 數(shù)據(jù)流名稱:課程添加 標志符:F4 別名:無 來源:管理員 去向: 查詢處理過程(P3.2) 數(shù)據(jù)組成:課程編號|課程名|學(xué)期|學(xué)時|學(xué)分 數(shù)據(jù)流名稱:課程修改 標志符:F4 別名:無 來源:管理員 去向:查詢處理過程(P3.3) 數(shù)據(jù)組成:課程編號|課程名|學(xué)期|學(xué)時|學(xué)分 數(shù)據(jù)流名稱:課程刪除 標志符:F6.2 別名:無 來源:管理員 去向: 課程管理處理過程(P4.3) 數(shù)據(jù)組成:課程編號|課程名|學(xué)期|學(xué)時|學(xué)分 數(shù)據(jù)流名稱:學(xué)生管理信息 標志符:F5 別名:無 來源:管理員 數(shù)據(jù)庫課程設(shè)計報告 第 6 頁,共 27頁 去向:學(xué)生管理處理過程(P4) 數(shù)據(jù)組成:學(xué)

11、號|姓名|性別|年齡|所在系 數(shù)據(jù)流名稱:學(xué)生信息添加 標志符:F5 別名:無 來源:管理員 去向:學(xué)生管理處理過程(P4.2) 數(shù)據(jù)組成:學(xué)號|姓名|性別|年齡|所在系 數(shù)據(jù)流名稱:學(xué)生信息修改 標志符:F5 別名:無 來源:管理員 去向:學(xué)生管理處理過程(P4.3) 數(shù)據(jù)組成:學(xué)號|姓名|性別|年齡|所在系 數(shù)據(jù)存儲字典:數(shù)據(jù)存儲字典: 數(shù)據(jù)存儲名稱:選課信息數(shù)據(jù)庫 標志符:D1 描述:選課信息資料 流入數(shù)據(jù)流:F2 涉及處理: P2.2,P2.3 數(shù)據(jù)組成:學(xué)號+課程號+成績 數(shù)據(jù)存儲名稱:學(xué)生信息數(shù)據(jù)庫 標志符:D2 描述:學(xué)生信息資料 流入數(shù)據(jù)流:F5,F4 涉及處理:P2.2,P2

12、.3,P3.2 數(shù)據(jù)組成:學(xué)號+姓名+性別+年齡+所在系 數(shù)據(jù)存儲名稱:用戶登錄數(shù)據(jù)庫 標志符:D3 描述:用戶登錄資料 流入數(shù)據(jù)流:F5 涉及處理:P4.2,P4.3,P4.4 數(shù)據(jù)組成:用戶名+密碼 數(shù)據(jù)存儲名稱:課程信息數(shù)據(jù)庫 標志符:D4 描述:課程信息資料 流入數(shù)據(jù)流:F4 涉及處理:P3.2,P3.3,P3.4 數(shù)據(jù)組成:課程編號+課程名+學(xué)期+學(xué)時+學(xué)分 數(shù)據(jù)處理字典:數(shù)據(jù)處理字典: 數(shù)據(jù)處理名稱:用戶登錄 標志符:P1 處理定義:登錄系統(tǒng) 激發(fā)條件:所輸入的用戶名和密碼正確 輸入:F1 輸出:F2,F5 數(shù)據(jù)處理名稱:選課查詢 標志符:P2 處理定義:查詢選課信息 數(shù)據(jù)庫課程設(shè)

13、計報告 第 7 頁,共 27頁 激發(fā)條件:所輸入圖書信息找到 輸入:F2 輸出:F3 數(shù)據(jù)處理名稱:查詢選擇 標志符:P2.1 處理定義:選擇查詢方式 激發(fā)條件:已選擇查詢方式 輸入:F2 輸出:F2.1,F2.2 數(shù)據(jù)處理名稱:多條件查詢 標志符:P2.3 處理定義:查詢選課信息 激發(fā)條件:所輸入選課信息找到 輸入:F2.2 輸出:F3 數(shù)據(jù)處理名稱:直接查詢 標志符:P2.2 處理定義:直接查詢選課信息 激發(fā)條件:所輸入選課信息找到 輸入:F2.1 輸出:F3 數(shù)據(jù)處理名稱:課程信息 標志符:P3 處理定義:管理課程信息 激發(fā)條件:選擇管理子功能 輸入:F4 輸出:D4 數(shù)據(jù)處理名稱:課程

14、添加 標志符:P3.1 處理定義:添加課程信息 激發(fā)條件:課程號 輸入:F4.1 輸出:D4 數(shù)據(jù)處理名稱:課程修改 標志符:P3.2 處理定義:修改課程信息 激發(fā)條件:課程號 輸入:F4.2 輸出:D4 數(shù)據(jù)處理名稱:課程刪除 標志符:P3.2 處理定義:刪除課程信息 激發(fā)條件:課程號 輸入:F4.3 輸出:D4 數(shù)據(jù)處理名稱:學(xué)生信息 標志符:P4 處理定義:管理學(xué)生信息 激發(fā)條件:選擇管理子功能 輸入:F5 輸出:D3 數(shù)據(jù)處理名稱:學(xué)生添加 標志符:P4.1 處理定義:添加學(xué)生信息 數(shù)據(jù)庫課程設(shè)計報告 第 8 頁,共 27頁 激發(fā)條件:學(xué)號 輸入:F5.1 輸出:D3 數(shù)據(jù)處理名稱:學(xué)

15、生修改 標志符:P4.2 處理定義:修改學(xué)生信息 激發(fā)條件:學(xué)號 輸入:F5.2 輸出:D3 數(shù)據(jù)處理名稱:學(xué)生刪除 標志符:P4.3 處理定義:刪除學(xué)生信息 激發(fā)條件:學(xué)號 輸入:F5.3 輸出:D3 2 概要設(shè)計概要設(shè)計 (1 1)實體圖及實體圖及 E E- -R R 圖圖 根據(jù) 1)所要實現(xiàn)的功能設(shè)計,可能建立它們之間的關(guān)系,進而實現(xiàn)邏輯結(jié)構(gòu)功能。 學(xué)生選課信息管理系統(tǒng)可以劃分的實體有:用戶登錄實體、學(xué)生信息實體、課程信息實體、學(xué)生選課信息實體、學(xué)生選課查詢信息實體。用 E-R 圖一一描述這些實體。 用戶登錄用戶登錄實體圖:實體圖: 圖 2-1 用戶登錄實體及其屬性圖 學(xué)生信息實體學(xué)生信

16、息實體圖:圖: 圖 2-2 學(xué)生信息實體及其屬性圖 課程信息實體圖課程信息實體圖 用戶登錄 用戶名用戶名 密碼密碼 課程信息 課程號 課程名 學(xué)分 學(xué)期 學(xué)時 學(xué)生信息 學(xué)號 所在系別 學(xué)生年齡 學(xué)生性別 學(xué)生姓名 數(shù)據(jù)庫課程設(shè)計報告 第 9 頁,共 27頁 圖 2-3 課程信息實體及其屬性圖 選課信息實體圖選課信息實體圖 圖 2-4 選課信息實體及其屬性圖 總的總的 E-R 圖:圖: 圖 2-5 實體及聯(lián)系圖 (2 2)關(guān)系圖關(guān)系圖 管理員 管理 管理 學(xué)生 課程 查詢 選課 選修 1 1 m 1 m m m n 選課信息 學(xué)號 課程號 成績 數(shù)據(jù)庫課程設(shè)計報告 第 10 頁,共 27頁 圖

17、-6 數(shù)據(jù)庫存表關(guān)系圖 3 邏輯設(shè)計邏輯設(shè)計 表 3-1 用戶登錄信息表 表中表中列名列名 數(shù)據(jù)類型數(shù)據(jù)類型 可否為空可否為空 說明說明 userName char(16) not null(主鍵主鍵) 用戶名稱用戶名稱 userPassword char(16) not null 密碼密碼 表 3-2 學(xué)生信息表 表中表中列名列名 數(shù)據(jù)類型數(shù)據(jù)類型 可否為空可否為空 說明說明 Sno char(10) not null(主鍵主鍵) 學(xué)號學(xué)號 Sname char(8) not null 姓名姓名 Ssex char(2) null 性別性別 Sage int null 年齡年齡 Sdept

18、char(20) null 所在系別所在系別 表 3-3 課程信息表 表中表中列名列名 數(shù)據(jù)類型數(shù)據(jù)類型 可否為空可否為空 說明說明 Cno char(10) Not null(主鍵主鍵) 課程號課程號 Cname char(20) Not null 課程名稱課程名稱 Ccredt int null 學(xué)分學(xué)分 Csemester int null 學(xué)期學(xué)期 Cperiod int Null 學(xué)時學(xué)時 表 3-4 選課信息表 表中表中列名列名 數(shù)據(jù)類型數(shù)據(jù)類型 可否為空可否為空 說明說明 Sno char(10) Not null(外主鍵外主鍵) 學(xué)生學(xué)學(xué)生學(xué)號號 數(shù)據(jù)庫課程設(shè)計報告 第 11

19、頁,共 27頁 Cno char(10) Not null(外主鍵外主鍵) 課程號課程號 grade int null 成績成績 表 3-5 查詢選課信息表 表中表中列名列名 數(shù)據(jù)類型數(shù)據(jù)類型 可否為空可否為空 說明說明 Sno char(10) Not null(外主鍵外主鍵) 學(xué)生學(xué)學(xué)生學(xué)號號 Cno char(10) Not null(外主鍵外主鍵) 課程號課程號 4 物理設(shè)計物理設(shè)計 數(shù)據(jù)庫物理設(shè)計階段的任務(wù)是根據(jù)具體計算機系統(tǒng)(DBMS 和硬件等)的特點, 為給定的數(shù)據(jù)庫模型確定合理的存儲結(jié)構(gòu)和存取方法。所謂的“合理”主要有兩個含義:一個是要使設(shè)計出的物理數(shù)據(jù)庫占用較少的存儲空間,另

20、一個對數(shù)據(jù)庫的操作具有盡可能高的速度。主要體現(xiàn)在后者。 (1)建立索引: 對 tb1_Student 表在 Sno 屬性列上建立聚集索引,在 Sname 屬性列上建立非聚集索引。 對 tb1_Course 表在 Cno 上建立聚集索引,在 Cname、 Ccredt、Csemester、Cperiod 上建立非聚集索引。 對 tb1_SC 表在 Sno、Cno 上建立聚集索引,在 Grade 上建立非聚集索引 對 tb1_User 表在 userName 上建立聚集索引。 (2)存儲結(jié)構(gòu) 確定數(shù)據(jù)庫的存儲結(jié)構(gòu)主要指確定數(shù)據(jù)的存放位置和存儲結(jié)構(gòu),包括確定關(guān)系、索引、日志、備份等的存儲安排及存儲結(jié)

21、構(gòu),以及確定系統(tǒng)存儲參數(shù)的配置。 將日志文件和數(shù)據(jù)庫對象(表、索引等)分別放在不同的磁盤可以改進系統(tǒng)的性能。所以系統(tǒng)將日志文件和數(shù)據(jù)文件存放在不同磁盤上。 5 5 數(shù)據(jù)庫建立數(shù)據(jù)庫建立 (1)創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫 create database SelectCourse on (name= SelectCourse _data,filename=d: SelectCourse _data.mdf, size=5MB, maxsize=20MB, filegrowth=2MB) log on (name= SelectCourse _log,filename=d: SelectCourse _l

22、og.ldf, size=1MB, maxsize=20MB, filegrowth=20%) (2)學(xué)生信息學(xué)生信息表建立表建立 use SelectCourse go create table tb1_Student (Sno char(5) primary key, 數(shù)據(jù)庫課程設(shè)計報告 第 12 頁,共 27頁 sname char(20) unique, Ssex char(1), Sage int, Sdept char(15); go (3)課程信息課程信息表表建立建立 create table tb1_Course( Cno char(5), Cname char(10), Gr

23、ade char(1), Primary key (Cno); (4)選課選課表建立表建立 create table tb1_SC( Sno char(5), Cno char(5), Grade int, Primary key(Sno,Cno), Foreign key(Sno)References Student(Sno), Foreign key(Cno)References Course(Cno); (5)索引的創(chuàng)建索引的創(chuàng)建 USE SelectCourse GO ALTER TABLE dbo.tb1_Student ADD CONSTRAINT PK_tbl_Student P

24、RIMARY KEY CLUSTERED (Sno ASC )WITH (PAD_INDEX = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON PRIMARY 6 6 數(shù)據(jù)初始化數(shù)據(jù)初始化 (1)將將學(xué)生信息學(xué)生信息加入表加入表 tb1_Student 中中 insert into tb1_Student values(11001,李勇,男,20,CS) insert into tb1_Student values(11002,劉晨,男,19,CS) insert into tb1_Student value

25、s(11003,王敏,女,18,MA) insert into tb1_Student values(11004,張立,男,20,IS) (2)將將課程信息課程信息加入加入 tb1_Course 表中表中 insert into tb1_Course values(1,數(shù)據(jù)庫,4); insert into tb1_Course values(2,數(shù)學(xué),2); insert into tb1_Course values(3,信息系統(tǒng),4); insert into tb1_Course values(4,操作系統(tǒng),3); insert into tb1_Course values(5,數(shù)據(jù)結(jié)構(gòu)

26、,4); insert into tb1_Course values(6,數(shù)據(jù)處理,2); insert into tb1_Course values(7,C 語言,4); (3)將將選課信息選課信息加入加入 tb1_SC 表中表中 insert into tb1_SC values(11001,1,92); insert into tb1_SC values(11001,2,85); 數(shù)據(jù)庫課程設(shè)計報告 第 13 頁,共 27頁 insert into tb1_SC values(11001,3,92); insert into tb1_SC values(11002,2,88); inse

27、rt into tb1_SC values(11002,3,90); 7 7 數(shù)據(jù)庫數(shù)據(jù)庫用戶用戶權(quán)限管理權(quán)限管理 該系統(tǒng)設(shè)置兩種類型的用戶 (1) 管理員(superadministrator) 即管理員擁有所有的權(quán)限。 (2) 學(xué)生(student):可以對課程進行選課、查看自己的選課信息以及自己的學(xué)生信息。 8 8、建立觸發(fā)器,存儲過程、建立觸發(fā)器,存儲過程 -此代碼主要是實現(xiàn)新建一存儲過程,該存儲過程的名字為 qchengji,其功能是按給定的學(xué)生姓名和課程名從 SC 表中查詢該生所選該課程的成績。 create procedure qchengji sname_in char(8),

28、cname_in char(20),score_out int output as begin select score_out=grade from tb1_Student,tb1_Course,tb1_SC where tb1_Student.Sno=tb1_SC.Sno and tb1_Course.Cno=tb1_SC.Cno and Sname=sname_in and Cname=cname_in end Go declare Sname_in char(8),Cname_in char(20),Score_out int select Sname_in=楊美麗,Cname_in=

29、cs11 exec qchengji Sname_in,Cname_in,Score_out output print Sname_in print Cname_in print Score_out go -此代碼主要是實現(xiàn)新建一存儲過程,該存儲過程的名字為 cjcx,其功能是按給定的學(xué)號和課程號從 SC 表中查詢該生所選該課程的成績。 create procedure cjcx sno_in char(8),cno_in char(10),score_out int output as begin select score_out=grade from tb1_SC where tb1_SC

30、.Sno=sno_in and tb1_SC.Cno=cno_in end go declare Sno_in char(8),Cno_in char(10),Score_out int select Sno_in=1134160201,Cno_in=cs11 exec cjcx Sno_in,Cno_in,Score_out output print Sno_in print Cno_in print Score_out -此代碼主要是實現(xiàn)新建一觸發(fā)器,該觸發(fā)器的名字為 score_sc_tri,其功能是對輸入的成績進 數(shù)據(jù)庫課程設(shè)計報告 第 14 頁,共 27頁 行合法性檢查,即確保輸入的

31、成績在 0-100 之間。 create trigger score_sc_tri on tb1_SC for insert,update as declare score_read int select score_read=grade from inserted if score_read=0 and score_read0 rollback transaction end 數(shù)據(jù)庫課程設(shè)計報告 第 15 頁,共 27頁 9 9 系統(tǒng)實現(xiàn)系統(tǒng)實現(xiàn) (1 1) 系統(tǒng)功能模塊圖:系統(tǒng)功能模塊圖: 系統(tǒng)功能模塊圖如圖 10-1 圖 9-1 系統(tǒng)功能模塊圖 四個模塊的功能如下: 登錄登錄模塊模塊:

32、可以實現(xiàn)一般用戶和管理員登錄管理 學(xué)生信息管理學(xué)生信息管理: 主要用于學(xué)生信息管理,其中管理員可以對學(xué)生信息進行添加、修改、刪除操作。學(xué)生可以查看自己的學(xué)生信息。 課程信息管理課程信息管理: 主要是課程的信息添加、修改、刪除。 選課信息管理選課信息管理: 學(xué)生選課與選課信息查詢窗體有選課、查詢與退出的功能,選課包括選擇學(xué)生與選擇課程,選課查詢包括查詢內(nèi)容與查詢值。 (2 2) 前臺開發(fā)平臺的選擇:前臺開發(fā)平臺的選擇:C#C#.NET.NET (3 3) C#C#.NET.NET 與數(shù)據(jù)庫的連接與數(shù)據(jù)庫的連接 ADO.NET 是 C#.NET 訪問數(shù)據(jù)庫的主要方式。 ADO.NET 的數(shù)據(jù)訪問方

33、式 ADO.NET 的數(shù)據(jù)存取API 提供3 種數(shù)據(jù)訪問方式: a)通過ODBC 相連,訪問支持早期ODBC 協(xié)議的數(shù)據(jù)庫。 b)通過OLEDB 相連,訪問SQL Server6.5, MicrosoftAccess, Oracle 或者其他有提供OLE DB 連接能力的數(shù)據(jù)庫 c)使用SqlConnection 直接與SQL Server7.0以及SQL Server2005 相連 C#.NET訪問數(shù)據(jù)庫的具體過程 a)創(chuàng)建數(shù)據(jù)庫連接 ADO.NET 中使用sqlConnection 類對SQL Server7.0 以及更高版本進行連接, 這個類的構(gòu)造函數(shù)接受一個可選參數(shù),稱為連接字符串,

34、該字符串用于定義正在連接的數(shù)據(jù)庫的類型、位置以及其他信息,這些屬性用分號分隔,通常該字符串包含如下信息:Data Source 特性: 指定SQL Server 數(shù)據(jù)庫所在計算機名稱; Initial Catalog 特性: 指定連接的SQL Server 數(shù)據(jù)庫的名稱; User ID 和Pass-Word 特學(xué)生選課系統(tǒng) 用戶登錄 學(xué)生信息 管理 課程信息管理 選課信息管理 數(shù)據(jù)庫課程設(shè)計報告 第 16 頁,共 27頁 性: 指定用SQL SERVER登錄方式的有效帳戶名和密碼或設(shè)置為:Integrated Security=True設(shè)置為Windows 登錄方式。 b ) 填充數(shù)據(jù) 創(chuàng)建

35、數(shù)據(jù)源連接以后,接下來創(chuàng)建數(shù)據(jù)適配器,適配器在創(chuàng)建過程中需要向其傳遞兩個要素:用于包含結(jié)構(gòu)化查詢語句的數(shù)據(jù)描述和用于指明數(shù)據(jù)庫連接信息的連接描述,創(chuàng)建后可利用Fill 方法,將所需的數(shù)據(jù)填充在一個數(shù)據(jù)集(DataSet)中。 c ) 關(guān)閉數(shù)據(jù)庫的連接 由于DataSet采用是斷開連接的方式,所以當把數(shù)據(jù)填充到數(shù)據(jù)集后即可斷開與數(shù)據(jù)庫的連接。 d) 為控件指定數(shù)據(jù)源 數(shù)據(jù)填充到數(shù)據(jù)集后,要在窗體上顯示出來,則必須把相應(yīng)的數(shù)據(jù)表綁定到數(shù)據(jù)控件上。 具體實現(xiàn)代碼如下: public SqlConnection dataConnection = new SqlConnection(); public

36、SqlDataAdapter dataAdapter; public DataSet dataSet = new DataSet(); string connstr = server=PC-200906200558SQLEXPRESS;database=SelectCourse;integrated security=SSPI; public DataSet GetDataFormDB(string sqlStr) try dataConnection.ConnectionString = connstr; dataAdapter = new SqlDataAdapter(sqlStr, da

37、taConnection); dataSet.Clear(); dataAdapter.Fill(dataSet); dataConnection.Close(); catch (Exception ex) MessageBox.Show(ex.Message); dataConnection.Close(); if (dataSet.Tables0.Rows.Count != 0) return dataSet; else return null; public bool UpdateDB(string sqlStr) SqlConnection sqlConn = new SqlConne

38、ction(connstr); try 數(shù)據(jù)庫課程設(shè)計報告 第 17 頁,共 27頁 SqlCommand cmdTable = new SqlCommand(sqlStr, sqlConn); cmdTable.CommandType = CommandType.Text; sqlConn.Open(); cmdTable.ExecuteNonQuery(); sqlConn.Close(); return true; catch (Exception ex) MessageBox.Show(ex.Message); return false; (4 4) 學(xué)生選課信息管理學(xué)生選課信息管理模

39、塊的實現(xiàn)模塊的實現(xiàn) 學(xué)生選課信息管理系統(tǒng)登錄界面如圖10-2 圖9-2學(xué)生選課信息管理系統(tǒng)登錄界面圖 學(xué)生選課信息管理系統(tǒng)主界面如圖10-3 數(shù)據(jù)庫課程設(shè)計報告 第 18 頁,共 27頁 圖9-3 學(xué)生選課信息管理系統(tǒng)主界面 學(xué)生信息管理運行界面如圖10-4 圖9-4學(xué)生信息管理運行界面 下面給出學(xué)生信息管理界面的主要代碼: private void frmStudent_Load(object sender, EventArgs e) try ObjClose(); String sqlStr; 數(shù)據(jù)庫課程設(shè)計報告 第 19 頁,共 27頁 DataBase db = new DataBas

40、e(); DataSet ds = new DataSet(); sqlStr = select * from tb1_Student; ds = db.GetDataFormDB(sqlStr); if (ds = null) MessageBox.Show(沒有任何學(xué)生紀錄); else dgrdvStudent.DataSource = ds.Tables0; dgrdvStudent_RowHeaderMouseClick(null, null); catch (Exception ex) MessageBox.Show(ex.Message); private void button

41、1_Click(object sender, EventArgs e) try if (button1.Text.Trim() = 添加) button1.Text = 確定; ObjOpen(); Clear(); button2.Enabled = false; button3.Enabled = false; button4.Enabled = false; else button1.Text = 添加; if (textBox1.Text.Trim() != null & textBox2.Text.Trim() != null) string sqlStr; sqlStr = ins

42、ert into tb1_Student values( + textBox1.Text.Trim() + , + textBox2.Text.Trim() + , + comboBox1.Text.Trim() + , + textBox3.Text.Trim() + , + textBox4.Text.Trim() + ); DataBase db = new DataBase(); bool b; 數(shù)據(jù)庫課程設(shè)計報告 第 20 頁,共 27頁 b = db.UpdateDB(sqlStr); if (b = true) if (MessageBox.Show(添加成功!繼續(xù)添加嗎?, 添

43、加學(xué)生, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) = DialogResult.Yes) Clear(); ObjOpen(); button1.Text = 確定; else ObjClose(); button2.Enabled = true; button3.Enabled = true; button4.Enabled = true; dgrdvStudent.Enabled = true; else goto exit; else MessageBox.Sho

44、w(學(xué)號與姓名不能為空); textBox1.Focus(); button1.Text = 確定; RefreshData(); textBox1.SelectAll(); catch (Exception ex) MessageBox.Show(ex.Message); Clear(); ObjClose(); dgrdvStudent.Enabled = false; exit: ; 數(shù)據(jù)庫課程設(shè)計報告 第 21 頁,共 27頁 課程信息運行界面如圖 10-5 所示: 圖9-5課程信息運行界面 下面給出課程信息管理界面的主要程序代碼: private void frmCourse_Loa

45、d(object sender, EventArgs e) try ObjClose(); string sqlStr; DataBase db = new DataBase(); DataSet ds = new DataSet(); sqlStr = select * from tb1_Course; ds = db.GetDataFormDB(sqlStr); if (ds = null) MessageBox.Show(沒有任何學(xué)生記錄); else dCourse.DataSource = ds.Tables0; dCourse_RowHeaderMouseClick(null, n

46、ull); catch (Exception ex) 數(shù)據(jù)庫課程設(shè)計報告 第 22 頁,共 27頁 MessageBox.Show(ex.Message); private void button1_Click(object sender, EventArgs e) try if (button1.Text.Trim() = 添加) button1.Text = 確定; ObjOpen(); Clear(); button2.Enabled = false; button3.Enabled = false; button4.Enabled = false; else button1.Text

47、= 添加; if (textBox1.Text.Trim() != null & textBox2.Text.Trim() != null) string sqlStr; sqlStr = insert into tb1_Course(Cno,Cname,Csemester,Ccredt,Cperiod)values( + textBox1.Text.Trim() + , + textBox2.Text.Trim() + , + comboBox1.Text.Trim() + , + textBox3.Text.Trim() + , + textBox4.Text.Trim() + ); Da

48、taBase db = new DataBase(); bool b; b = db.UpdateDB(sqlStr); if (b = true) if (MessageBox.Show(添加成功!繼續(xù)添加嗎?, 添加課程, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) = DialogResult.Yes) Clear(); ObjOpen(); button1.Text = 確定; else ObjClose(); button2.Enabled = true; but

49、ton3.Enabled = true; button4.Enabled = true; 數(shù)據(jù)庫課程設(shè)計報告 第 23 頁,共 27頁 dCourse.Enabled = true; else goto exit; else MessageBox.Show(課程編號與課程名不能為空!); textBox1.Focus(); button1.Text = 確定; RefreshData(); textBox1.SelectAll(); catch (Exception ex) MessageBox.Show(ex.Message); Clear(); ObjClose(); dCourse.En

50、abled = false; exit: ; void RefreshData() string comStr; DataBase db = new DataBase(); DataSet ds = new DataSet(); comStr = select * from tb1_Course; ds = db.GetDataFormDB(comStr); if (ds != null) dCourse.DataSource = ds.Tables0; else MessageBox.Show(沒有任何學(xué)生記錄!); 學(xué)生選課信息運行界面如圖 9-6 所示 數(shù)據(jù)庫課程設(shè)計報告 第 24 頁,

51、共 27頁 圖 9-6 學(xué)生選課信息運行界面 下面給出學(xué)生選課管理界面的主要代碼: private void button1_Click(object sender, EventArgs e) try if (comboBox1.SelectedIndex = 0 & comboBox2.SelectedIndex = 0) sqlStr = insert into tb1_SC values( + comboBox1.Text.Trim().Substring(0, 8) + , + comboBox2.Text.Trim().Substring(0, 6) + ,0); connectio

52、n.ConnectionString = connStr; SqlCommand comm = new SqlCommand(sqlStr, connection); connection.Open(); comm.ExecuteNonQuery(); connection.Close(); MessageBox.Show(選課成功!, 學(xué)生選課); else MessageBox.Show(請先選擇學(xué)生和課程!); catch (Exception ex) MessageBox.Show(ex.Message); 數(shù)據(jù)庫課程設(shè)計報告 第 25 頁,共 27頁 MessageBox.Show(

53、該生已經(jīng)選擇了該課程!, 不能重選, MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1); comboBox1.SelectedIndex = -1; comboBox2.SelectedIndex = -1; RefreshData(); private void button2_Click(object sender, EventArgs e) try if (selectCondition = tb1_SC.Sno) str = textBox1.Text.Trim(); if (s

54、electCondition = tb1_SC.Cno) str = textBox1.Text.Trim(); if (comboBox3.SelectedIndex = -1 | textBox1.Text = ) MessageBox.Show(請選擇查詢條件并輸入查詢值!); else sqlStr = select tb1_SC.Sno,tb1_Student.Sname, + tb1_SC.Cno,tb1_Course.Cname,tb1_SC.grade from + tb1_Student inner join (tb1_Course inner join + tb1_SC o

55、n tb1_Course.Cno=tb1_SC.Cno) on tb1_Student+ .Sno=tb1_SC.Sno where+ selectCondition + = + textBox1.Text.Trim() + ; connection.ConnectionString = connStr; adapter = new SqlDataAdapter(sqlStr, connection); DataSet ds = new DataSet(); adapter.Fill(ds); if (ds.Tables0.Rows.Count = 0) MessageBox.Show(沒有符

56、合條件的選課記錄!); else comboBox1.DataSource = ds.Tables0; SetHeaderText(); 數(shù)據(jù)庫課程設(shè)計報告 第 26 頁,共 27頁 1 10 0 課程設(shè)計心得體會課程設(shè)計心得體會 這次的課程設(shè)計可以說是為畢業(yè)設(shè)計做的一個預(yù)演,做起來真的困難重重,深刻體會到做一個軟件真的很不容易,里面需要的很多知識我們沒有接觸過,經(jīng)過自己課下去圖書館借書補充自己的知識以及在老師的幫助下,終于把系統(tǒng)完成了。這個軟件還有許多不足之處需要去改?,F(xiàn)在能力有限也只能做到這樣了。 通過做這次課程設(shè)計發(fā)現(xiàn)還有很多知識沒有吃透,這需要我們不斷的實踐,不斷的自學(xué)習(xí),不斷的發(fā)現(xiàn)問

57、題去思考問題。 另外我還充分體會了從事軟件開發(fā)工作需要特別嚴謹認真的態(tài)度和作風(fēng),一點都馬虎不得。每一個細微的細節(jié)都必須十分的注意,如果不認真思考決策,就會出現(xiàn)或大或小的錯誤,如果早期的錯誤隱藏下來,對后面的工作影響就會很大,甚至有時要推倒很多前面做的工作重來。有時候,我自己覺得我寫的程序非常的正確,但是就是編譯通不過,在查找錯誤的過程中,面臨著否認自己的過程,非常的痛苦,而且由于自己的經(jīng)驗及各方面的能力的不足,所以進展的速度非常的緩慢,往往幾天的時間還沒有一點進展。這時候,我一般是先自己通過書本,手冊和資料找解決辦法,實在沒轍了才向?qū)<艺埥?。盡管向?qū)<艺埥探鉀Q問題比較快,自己鉆研花的時間較多,

58、但我強迫自己獨立的思考對我的學(xué)習(xí)提高幫助非常大。 在開始編寫程序的時候,我看到別人的軟件功能非常的詳細,而且界面非常的漂亮,總希望自己的軟件也非常的完善,但是,經(jīng)過二個月的學(xué)習(xí),發(fā)現(xiàn)編一個優(yōu)秀的軟件決不是一蹴而就的事情,需要長時間的積累和經(jīng)驗。我認清自己的能力后,我就特別注意在工作的過程中不貪圖大而全,而是根據(jù)自己的能力,制定適當?shù)哪繕恕?由于我的知識淺薄,經(jīng)驗不足及閱歷頗淺,因此,在該系統(tǒng)的設(shè)計方面還有很多不足,比如功能過少,界面不夠醒目等問題,我會在工作的使用過程中,根據(jù)工作的具體要求不斷的修改,完善,爭取使該系統(tǒng)慢慢趨向完美。 在本系統(tǒng)的設(shè)計過程和課程設(shè)計報告的編寫過程中,老師和同學(xué)都給予了我許多無私的幫助,尤其是我的指導(dǎo)老師楊鋒英老師給我的系統(tǒng)設(shè)計提出了很多寶貴的修改意見,在這里,我向這些無私幫助我的人表示衷心的感謝。

展開閱讀全文
溫馨提示:
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. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  sobing.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!