數(shù)據(jù)庫原理課程設(shè)計基于VC的學(xué)生成績管理系統(tǒng)_第1頁
數(shù)據(jù)庫原理課程設(shè)計基于VC的學(xué)生成績管理系統(tǒng)_第2頁
數(shù)據(jù)庫原理課程設(shè)計基于VC的學(xué)生成績管理系統(tǒng)_第3頁
數(shù)據(jù)庫原理課程設(shè)計基于VC的學(xué)生成績管理系統(tǒng)_第4頁
數(shù)據(jù)庫原理課程設(shè)計基于VC的學(xué)生成績管理系統(tǒng)_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、 學(xué)生成績管理系統(tǒng) 數(shù)據(jù)庫原理課程設(shè)計姓 名: _班 級: _學(xué) 號: _指導(dǎo)老師: _成 績: _ 評 語 計算機工程學(xué)院 基于VC的學(xué)生成績管理系統(tǒng)摘要 學(xué)生成績管理工作是學(xué)校管理工作的重要組成部分,隨著學(xué)校規(guī)模的擴大、學(xué)生人數(shù)的增加,利用計算機技術(shù)和數(shù)據(jù)庫技術(shù)設(shè)計開發(fā)學(xué)生成績管理系統(tǒng)、實現(xiàn)學(xué)生成績理工作的自動化成為學(xué)生管理部門的迫切需要。本系統(tǒng)提供了學(xué)生的基本信息的查詢、學(xué)生成績的管理程教師的基本信息的管理等,主要包據(jù)了成績的查詢、錄入、修改、刪除和數(shù)據(jù)庫的備份等功能。好的學(xué)生成績管理系統(tǒng)為管理學(xué)生成績提供了方便,有效提高了對學(xué)生的成績的管理。本文介紹此次課程設(shè)計的選題背景和意義,相關(guān)的

2、研究和設(shè)計的過程,以及設(shè)計思路和實現(xiàn)細(xì)節(jié)的考慮,為便于說明,文中繪制了程序結(jié)框圖、數(shù)據(jù)流程圖和部分界面圖。最后給出了我在本次課程設(shè)過中的體會。關(guān)鍵詞 VC+ SQL語言 ODBC 數(shù)據(jù)庫 存儲過程 觸發(fā)器 視圖目錄 TOC o 1-2 h z u HYPERLINK l _Toc137449016 第一章 引言 PAGEREF _Toc137449016 h 1 HYPERLINK l _Toc137449017 1.1 課題研究背景與意義 PAGEREF _Toc137449017 h 1 HYPERLINK l _Toc137449018 1.2 本課題研究內(nèi)容與目標(biāo) PAGEREF _T

3、oc137449018 h 1 HYPERLINK l _Toc137449018 1. 開發(fā)環(huán)境 PAGEREF _Toc137449018 h 1 HYPERLINK l _Toc137449018 1.體系結(jié)構(gòu)設(shè)計 PAGEREF _Toc137449018 h 1 HYPERLINK l _Toc137449019 第二章 需求分析 PAGEREF _Toc137449019 h 1 HYPERLINK l _Toc137449020 2.1 信息要求 PAGEREF _Toc137449020 h 2 HYPERLINK l _Toc137449021 2.2 處理要求. PAGER

4、EF _Toc137449021 h 2 HYPERLINK l _Toc137449021 2.3 安全性與完整性要求. PAGEREF _Toc137449021 h 2 HYPERLINK l _Toc137449019 第三章 概念結(jié)構(gòu)設(shè)計 PAGEREF _Toc137449019 h 1 HYPERLINK l _Toc137449020 3.1 分圖 PAGEREF _Toc137449020 h 2 HYPERLINK l _Toc137449021 3.2 總圖 PAGEREF _Toc137449021 h 2 HYPERLINK l _Toc137449019 第四章邏輯

5、結(jié)構(gòu)設(shè)計 PAGEREF _Toc137449019 h 1 HYPERLINK l _Toc137449020 .1 關(guān)系模型 PAGEREF _Toc137449020 h 2 HYPERLINK l _Toc137449021 .2 數(shù)據(jù)模型優(yōu)化 PAGEREF _Toc137449021 h 2 HYPERLINK l _Toc137449021 .數(shù)據(jù)字典 PAGEREF _Toc137449021 h 2 HYPERLINK l _Toc137449021 .視圖設(shè)計 PAGEREF _Toc137449021 h 2 HYPERLINK l _Toc137449019 第五章 數(shù)

6、據(jù)庫的實施和維護 PAGEREF _Toc137449019 h 1 HYPERLINK l _Toc137449020 5.1 儲存過程設(shè)計 PAGEREF _Toc137449020 h 2 HYPERLINK l _Toc137449021 5.2 觸發(fā)器設(shè)計 PAGEREF _Toc137449021 h 2 HYPERLINK l _Toc137449022 5.3模塊設(shè)計 PAGEREF _Toc137449022 h 2 HYPERLINK l _Toc137449043 結(jié)論6 HYPERLINK l _Toc137449022 參考文獻(xiàn) PAGEREF _Toc1374490

7、22 h 2第一章引言1.1課題研究背景與意義 學(xué)生成績管理工作是學(xué)校管理工作的重要組成部分,利用計算機技術(shù)和數(shù)據(jù)庫技術(shù)設(shè)計開發(fā)學(xué)生學(xué)籍管理系統(tǒng)、實現(xiàn)學(xué)生學(xué)籍管理工作的自動化成為學(xué)生管理部門的迫切需要。學(xué)生的成績管理系統(tǒng)能大幅度地提高對成績管理的效率,方便教師及教務(wù)處對學(xué)生成績的管理.本系統(tǒng)主要完成對學(xué)生和教師的基本信息的錄入、查詢和刪除;對學(xué)生的成績的管理(包括成績的查詢、錄入、修改、刪除);以及數(shù)據(jù)庫的備份等操作。由于剛開始數(shù)據(jù)庫設(shè)計的不是很好以及對VC運用的不熟練,所以有些功能想加上去,迫于水平和時間的有限,只能粗略地實現(xiàn)這些功能。1.2本課題研究內(nèi)容與目標(biāo)本課題研究對學(xué)生成績管理系統(tǒng)要

8、實現(xiàn)哪些功能才能為廣大師提供方便,應(yīng)用對數(shù)據(jù)據(jù)原理的理論學(xué)習(xí),通過上機實踐的方式將理論知識與實踐更好的給合起來,鞏固所學(xué)的知識。實踐和鞏固在課堂教學(xué)中學(xué)習(xí)的關(guān)于數(shù)據(jù)庫原理的有關(guān)知識和數(shù)據(jù)庫系統(tǒng)的建立方法,熟練掌握對于給定實際問題,為了建立一個學(xué)生成績管理系統(tǒng),必須得經(jīng)過系統(tǒng)調(diào)研、需求分析、概念設(shè)計、邏輯設(shè)計、物理設(shè)計、系統(tǒng)調(diào)試、維護以及系統(tǒng)評價的一般過程,為畢業(yè)設(shè)計打下基礎(chǔ)。1. 開發(fā)環(huán)境硬件:PC,CPU:AMD Core Processor 4000+,內(nèi)存:1.00GB,硬盤:160GB;操作系統(tǒng):Microsoft WindowsXP;軟件:Visual C+ 6.0 Server 2

9、0001.4體系結(jié)構(gòu)設(shè)計登陸界面輸入用戶名和密碼用戶名和密碼正確?執(zhí)行主菜單YN退出基本信息查看學(xué)生信息查看教師信息學(xué)生信息管理教師信息管理成績查詢學(xué)號查詢班級查詢系查詢顯示全部平均分個人平均分班級平均分成績管理添加成績修改成績刪除成績系統(tǒng)管理修改密碼退出數(shù)據(jù)庫管理數(shù)據(jù)庫完全備份數(shù)據(jù)庫差異備份刪除數(shù)據(jù)庫作者信息Author第二章 需求分析2.1 信息要求(1)學(xué)生成績管理系統(tǒng)包含學(xué)生和教師的基本信息的處理,學(xué)生成績的管理,數(shù)據(jù)庫的管理,登陸用戶的管理。(2)學(xué)生信息包括學(xué)號、姓名、性別、年齡、電話、系名、班級;通過學(xué)號可查找相應(yīng)學(xué)生的各科成績。(3)課程表包括課程號、課程名稱、學(xué)時、學(xué)分、任課

10、老師號。(4)系包括系名、系主任、系人數(shù)。(5)班級包括班級名、班主任、班級人數(shù)、系名。(6)教師表包括教師號、教師名、學(xué)歷、聯(lián)系方式。0層數(shù)據(jù)流圖:1層數(shù)據(jù)流圖:2.2 處理要求能對學(xué)生和教師的信息進行查詢、錄入、修改、刪除;能夠查詢學(xué)生的各科成績、平均分,并能對其進行修改、刪除等操作。2.3 安全性與完整性要求安全性:(1) 管理員能夠方便的對信息進行添加、修改、刪除、查詢、匯總、統(tǒng)計等操作。(2)教師可以在自己的權(quán)限內(nèi),對學(xué)生的成績進行錄入、修改、刪除操作。(3) 學(xué)生可以在自己的權(quán)限內(nèi)對信息進行訪問,查詢相關(guān)信息。完整性:能夠防止合法用戶使用數(shù)據(jù)庫向數(shù)據(jù)庫中添加不合語義的數(shù)據(jù)。通過各個

11、表之間的聯(lián)系來實現(xiàn)數(shù)據(jù)完整性約束。第三章 概念結(jié)構(gòu)設(shè)計3.1 分圖登陸表E-R圖 主鍵:用戶名,用戶類型學(xué)生信息表E-R圖 主鍵:學(xué)號 外鍵:系名,班級系表E-R圖 主鍵:系名成績表E-R圖 主鍵:學(xué)號,課程號 外鍵:學(xué)號,課程號班級表E-R圖 主鍵:班級 外鍵:系名課程表E-R圖 主鍵:課程號 外鍵:任課老師教師表E-R圖 主鍵:教師號3.2 總圖 合并E-R圖第四章邏輯結(jié)構(gòu)設(shè)計4.1 關(guān)系模型將總體概念結(jié)構(gòu)E-R圖轉(zhuǎn)化成關(guān)系模型登陸(用戶類型,用戶名,密碼)學(xué)生信息(學(xué)號,姓名,性別,年齡,電話,系名,班級)系(系名,系主任,系人數(shù))成績(學(xué)號,課程號,學(xué)年學(xué)期,成績)班級(班級,班主任,

12、班人數(shù),系名)課程表(課程號,課程名稱,學(xué)時,學(xué)分,任課老師)教師(教師號,教師名,學(xué)歷,聯(lián)系方式)4.2 數(shù)據(jù)模型優(yōu)化將轉(zhuǎn)化的關(guān)系模型進行優(yōu)化,最終達(dá)到第三范式確定數(shù)據(jù)依賴登陸(用戶類型,用戶名,密碼)(用戶類型,用戶名)-密碼學(xué)生信息(學(xué)號,姓名,性別,年齡,電話,系名,班級)學(xué)號-姓名,學(xué)號-性別,學(xué)號-年齡,學(xué)號-電話,學(xué)號-系名,學(xué)號-班級,(學(xué)號,姓名)-性別,班級-系名,系(系名,系主任,系人數(shù))系名-系主任,系名-系人數(shù)成績(學(xué)號,課程號,學(xué)年學(xué)期,成績)(學(xué)號,課程號)-學(xué)年學(xué)期,(學(xué)號,課程號)-成績,班級(班級,班主任,班人數(shù),系名)班級-班主任,班級-班人數(shù),班級-系名

13、,(班級,班主任)-班人數(shù)課程表(課程號,課程名稱,學(xué)時,學(xué)分,任課老師)課程號-課程名稱,課程號-學(xué)時,課程號-學(xué)分,課程號-任課老師教師(教師號,教師名,學(xué)歷,聯(lián)系方式)教師號-教師名,教師號-學(xué)歷,教師號-聯(lián)系方式這些關(guān)系都符合要求,屬于第三范式,所以不用再對這些模式進行分解了.4.3數(shù)據(jù)字典 表1:學(xué)生信息表字段名稱數(shù)據(jù)類型長度約束課程號varchar20不為空課程名稱varchar20不為空學(xué)時float8不為空學(xué)分float8不為空任課老師varchar10不為空 表2系表字段名稱數(shù)據(jù)類型長度約束系名varchar20不為空系主任varchar10不為空系人數(shù)int 4 表3登陸表

14、字段名稱數(shù)據(jù)類型長度約束用戶類型varchar10不為空用戶名varchar10不為空密碼varchar10不為空 表4班級表字段名稱數(shù)據(jù)類型長度約束班級varchar20不為空班主任varchar10班人數(shù)int 4系名varchar20不為空 表5教師字段名稱數(shù)據(jù)類型長度約束教師號varchar10不為空教師名char10不為空學(xué)歷varchar20聯(lián)系方式varchar20 表6成績字段名稱數(shù)據(jù)類型長度約束學(xué)號char10不為空課程號varchar20不為空學(xué)年學(xué)期varchar20不為空成績float80150 表7學(xué)生信息字段名稱數(shù)據(jù)類型長度約束學(xué)號char10不為空姓名varcha

15、r10不為空性別char2不為空年齡int 4不為空電話varchar20系名varchar20不為空班級varchar20不為空4.4視圖設(shè)計(1)打印成績60分的學(xué)生create view V_gradeasselect A.學(xué)號,A.姓名,A.性別,B.課程號,C.課程名稱,B.成績from 學(xué)生信息 A,成績 B,課程表 Cwhere A.學(xué)號=B.學(xué)號 and B.課程號=C.課程號 and 成績60執(zhí)行:select * from V_grade(2) 查看計算機工程學(xué)院的考試情況create view V_computerasselect B.學(xué)年學(xué)期,A.學(xué)號,A.姓名,A.班

16、級,C.課程名稱,B.成績from 學(xué)生信息 A,成績 B,課程表 Cwhere A.學(xué)號=B.學(xué)號 and B.課程號=C.課程號 and A.系名=計算機工程學(xué)院執(zhí)行: select * from V_computer第五章 數(shù)據(jù)庫的實施和維護5.1約束關(guān)系:(1)為成績表添加約束 成績只能在0150之內(nèi)alter table 成績add constraint CK_成績 check (成績 between 0 and 150)(2)為成績表創(chuàng)建索引create index IX_成績 on 成績(學(xué)年學(xué)期 ASC)5.2 儲存過程設(shè)計(1)根據(jù)輸入的參數(shù)刪除學(xué)生信息create proc

17、 DeleteNum_procnumber char(10)as delete 學(xué)生信息 from 學(xué)生信息where 學(xué)號=number(2) 根據(jù)參數(shù)添加教師信息create proc AddTeacher_procteanumber varchar(10),teaname char(10),teasc varchar(20),teaphone varchar(20)asinsert into 教師values(teanumber,teaname,teasc,teaphone)(3) 根據(jù)傳入的參數(shù)刪除相應(yīng)的教師信息create proc DeleteTea_procteanumber v

18、archar(10)asdelete 教師from 教師where 教師號=teanumber(4)添加學(xué)生的信息create proc AddStu_procstunum char(10),stuname varchar(10),stusex char(2),stuyear int,stuphone varchar(20),stuxi varchar(20),stuclass varchar(20)asinsert into 學(xué)生信息values(stunum,stuname,stusex,stuyear,stuphone,stuxi,stuclass)5.3 觸發(fā)器設(shè)計(1) 為學(xué)生信息表

19、創(chuàng)建觸發(fā)器,當(dāng)刪除學(xué)生信息時,刪除相應(yīng)的成績表中的內(nèi)容。create trigger tri_學(xué)生信息on 學(xué)生信息 for delete asdelete 成績 from 成績 A,deleted Bwhere A.學(xué)號=B.學(xué)號(2)當(dāng)教師退休后,刪除其資料,并將其從課程表中刪除,所以創(chuàng)建一個觸發(fā)器create trigger tri_教師on 教師 for delete asdelete 課程表 from 課程表 as A,deleted as Bwhere B.教師號=A.任課老師(3) 添加學(xué)生信息時,就為其添加登入信息create trigger tri_login on 學(xué)生信息

20、 for insertasdeclare name varchar(2)declare password varchar(10)select name=姓名 from inserted select password from insertedinsert into 登陸values(學(xué)生,name,password)(4)刪除學(xué)生信息時,也刪除登陸表中的信息create trigger tri_destuon 學(xué)生信息 for deleteasdeclare name varchar(2)declare password varchar(10)select name=姓名 from dele

21、tedselect password=學(xué)號 from deleteddelete 登陸 from 登陸where 用戶名=name and 密碼=password5.4模塊設(shè)計(1)模塊一:基本信息該模塊主要完成對學(xué)生及教師的查詢、添加、以及刪除等功能,在添加學(xué)生信息時,自動將其添加到登陸列表中,為其添加登陸的權(quán)限.先在SQL分析器中創(chuàng)建一個觸發(fā)器,在向?qū)W生信息表中添加信息時,就會觸發(fā).建四個對話框,兩個對話框用來顯示學(xué)生信息和教師信息,另外兩個對話框用來實現(xiàn)對學(xué)生和教師信息的管理.在顯示基本信息對話框中,為其添加CLIST CONTRL控件,弄成報表的形式,在程序中調(diào)用建立的幾個記錄集.利用

22、滾動記錄的幾個函數(shù),實現(xiàn)向報表控件中添加數(shù)據(jù),這樣就可以把學(xué)生和老師的信息給顯示出來.而在對學(xué)生和教師信息管理的對話框中,設(shè)立幾個變量與對話框中的EDIT編輯框相關(guān)聯(lián).調(diào)用UpateData(),可以把輸入的值傳給變量,這樣就可以實現(xiàn)所想要的功能.(2)成績查詢模塊. 該模塊主要用于查詢學(xué)生的成績,實現(xiàn)學(xué)生成績的查詢.按學(xué)號查詢該學(xué)生的全部考試信息.按班級查詢,可以獲得該班級學(xué)生的考試信息,不分學(xué)期.按系查詢,可以獲得某系的全部考試信息.另外兩個對話框?qū)崿F(xiàn)查詢個人平均分和班級成績情況的查詢.前兩個對話框就不再敘述了,原理與前面的一樣,在求平均分時,根據(jù)輸入的學(xué)年學(xué)期和學(xué)號,可以查詢該學(xué)生在這個

23、學(xué)年的考試平均分,考試門數(shù)程不及格的門數(shù).在實現(xiàn)求平均分過程中,本想用存儲過程進行實現(xiàn)的,但由于在MFC中不知道如何調(diào)用有返回值的存儲過程,所以用一個個比較過去,記錄總和和考試課程數(shù).這樣就可以求出相應(yīng)的平均分.不及格數(shù)也呼之欲出.求班級成績也同理可得。成績管理模塊 該模塊實現(xiàn)對成績的錄入、修改、刪除功能。三個模塊的功能是類似的,所以只要實現(xiàn)一個,其他的兩個就相當(dāng)容易了,在這里,我是調(diào)用SQL語句進行添加、修改和刪除的。首先把幾個編輯框與幾個變量進行關(guān)聯(lián),其實不用關(guān)聯(lián)也是可以的,可以利用GetDlgItem(ID號)-GetWindowText(字符串變量),這樣也可以把值傳送給變量。建立一個

24、數(shù)據(jù)類對象CDatabase m_db,用這個對象打開相對應(yīng)的數(shù)據(jù)庫,用str.Format(“SQL語名”),對字符串進行格式化成SQL語句,這樣就可以用m_db.ExecuteSQL(str),執(zhí)行SQL語句,這樣相寫一個函數(shù)進行查詢,省了很多的代碼,比較簡潔。也可以調(diào)用存儲過程進行實現(xiàn),因為獲取返回值的存儲過程不會,所以這里有調(diào)用的存儲過程是沒有返回值的。系統(tǒng)管理模塊和數(shù)據(jù)庫管理模塊這兩個模塊,一個用于修改用戶的密碼,一個用于數(shù)據(jù)庫的備份與刪除。在修改密碼這個對話框中,把用戶登陸名給顯示出來,舊密碼保存在全局變量中,用來檢驗用戶輸入的舊密碼是否正確,如果正確的話,調(diào)用SQL語句的Upda

25、te對數(shù)據(jù)庫中的相應(yīng)元組進行修改。數(shù)據(jù)庫備份這個模塊,用了一個CCOMBOX控件,用來讓用戶選擇進行哪種數(shù)據(jù)操作,有數(shù)據(jù)庫完全備份,差異備份和移除設(shè)備。這三個都是調(diào)用數(shù)據(jù)庫的相應(yīng)命令進行操作。如完作備份,剛調(diào)用如下語句:sql.Format(backup database student to disk=%s,m_getpathname);此處是利用CFileDlg進行相應(yīng)的操作。不過這段內(nèi)容有點缺陷,就是在退出程序后,原來保存的那個路徑名會清空,所以還得再選擇路徑進行備份。結(jié)論 在本次課程設(shè)計過程中,學(xué)到了很多知識,由于課程設(shè)計起草的比較晚,所以功能比較差些,功能也未能進行更深入的思考,自己

26、也對VC涉足不深,所以在運用方面有所欠缺,數(shù)據(jù)庫方面,整體考慮也不周到。在課設(shè)的前一周有對課設(shè)考慮了一下,本來有考慮了好幾個模塊,像成績錄入模塊、班級統(tǒng)計模塊、年級統(tǒng)計模塊。在成績錄入模塊中再分別進行錄入、修改、增加、刪除、查詢、打印等功能。班級統(tǒng)計模塊又分別有學(xué)生總成績、平均成績、班級排名、統(tǒng)計班級某分?jǐn)?shù)段內(nèi)的學(xué)生成績?nèi)藬?shù)、各學(xué)生該科成績、班級排名等功能(只相對于某個學(xué)期)。還有年級統(tǒng)計模塊,分為各年級各專業(yè)學(xué)生總成績還有排名、各學(xué)生各科成績年級排名,各班各分?jǐn)?shù)段人數(shù)等功能。不過在考完試之后再開始真正做課程設(shè)計,時間有些傖促,所以只是實現(xiàn)其中的一部分功能。在用VC與SERVER 2000進行學(xué)生成績管理系統(tǒng)的設(shè)計時,開始對用ODBC連接數(shù)據(jù)庫時,經(jīng)過了一天的時間,本打算用ADO進行連接,不過對我來說有點眼高手低,對ADO與ODBC都是一點都不懂,最后還是決定用ODBC進行連接,相對比較容易上手。通過本次課程設(shè)計,對在VC+中如何編寫基本的ODBC數(shù)據(jù)庫等有了初步的認(rèn)識,還有也提高了Windows編程技術(shù),進一步提高了Visual C+的操作能力,雖然在之前看過孫鑫的一些視頻,由于很少進行

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論