

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> ?。紝W生成績管理系統(tǒng)></p><p> -----數(shù)據(jù)庫原理課程設計</p><p> 姓 名: _______</p><p> 班 級: ______</p><p> 學 號: _______</p><p> 指導老師: _______</p>
2、;<p> 成 績: ________________ </p><p> 評 語 </p><p><b> 計算機工程學院</b></p><p> 基于VC的學生成績管理系統(tǒng)</p><p><b> [摘要] </b><
3、/p><p> 學生成績管理工作是學校管理工作的重要組成部分,隨著學校規(guī)模的擴大、學生人數(shù)的增加,利用計算機技術和數(shù)據(jù)庫技術設計開發(fā)學生成績管理系統(tǒng)、實現(xiàn)學生成績理工作的自動化成為學生管理部門的迫切需要。本系統(tǒng)提供了學生的基本信息的查詢、學生成績的管理程教師的基本信息的管理等,主要包據(jù)了成績的查詢、錄入、修改、刪除和數(shù)據(jù)庫的備份等功能。好的學生成績管理系統(tǒng)為管理學生成績提供了方便,有效提高了對學生的成績的管理。本文
4、介紹此次課程設計的選題背景和意義,相關的研究和設計的過程,以及設計思路和實現(xiàn)細節(jié)的考慮,為便于說明,文中繪制了程序結框圖、數(shù)據(jù)流程圖和部分界面圖。最后給出了我在本次課程設過中的體會。</p><p> [關鍵詞] VC++ SQL語言 ODBC 數(shù)據(jù)庫 存儲過程 觸發(fā)器 視圖</p><p><b> 目錄</b></p><p&
5、gt;<b> 第一章 引言1</b></p><p> 1.1 課題研究背景與意義1</p><p> 1.2 本課題研究內容與目標1</p><p> 1.3 開發(fā)環(huán)境1</p><p> 1.4體系結構設計1</p><p> 第二章 需求分析1</p>
6、;<p> 2.1 信息要求2</p><p> 2.2 處理要求.2</p><p> 2.3 安全性與完整性要求.2</p><p> 第三章 概念結構設計1</p><p> 3.1 分ER圖2</p><p> 3.2 總ER圖2</p><p>
7、 第四章 邏輯結構設計1</p><p> ?。?1 關系模型2</p><p> ?。?2 數(shù)據(jù)模型優(yōu)化2</p><p><b> 4.3數(shù)據(jù)字典2</b></p><p><b> ?。?4視圖設計2</b></p><p> 第五章 數(shù)據(jù)庫的實施和維護
8、1</p><p> 5.1 儲存過程設計2</p><p> 5.2 觸發(fā)器設計2</p><p> 5.3 模塊設計2</p><p><b> 結論6</b></p><p><b> 參考文獻2</b></p><p>&
9、lt;b> 第一章引言</b></p><p> 1.1課題研究背景與意義</p><p> 學生成績管理工作是學校管理工作的重要組成部分,利用計算機技術和數(shù)據(jù)庫技術設計開發(fā)學生學籍管理系統(tǒng)、實現(xiàn)學生學籍管理工作的自動化成為學生管理部門的迫切需要。</p><p> 學生的成績管理系統(tǒng)能大幅度地提高對成績管理的效率,方便教師及教務處對學生成
10、績的管理.本系統(tǒng)主要完成對學生和教師的基本信息的錄入、查詢和刪除;對學生的成績的管理(包括成績的查詢、錄入、修改、刪除);以及數(shù)據(jù)庫的備份等操作。由于剛開始數(shù)據(jù)庫設計的不是很好以及對VC運用的不熟練,所以有些功能想加上去,迫于水平和時間的有限,只能粗略地實現(xiàn)這些功能。</p><p> 1.2本課題研究內容與目標</p><p> 本課題研究對學生成績管理系統(tǒng)要實現(xiàn)哪些功能才能為廣大師
11、</p><p> 提供方便,應用對數(shù)據(jù)據(jù)原理的理論學習,通過上機實踐的方式將理論知識與實踐更好的給合起來,鞏固所學的知識。</p><p> 實踐和鞏固在課堂教學中學習的關于數(shù)據(jù)庫原理的有關知識和數(shù)據(jù)庫系統(tǒng)的建立方法,熟練掌握對于給定實際問題,為了建立一個學生成績管理系統(tǒng),必須得經過系統(tǒng)調研、需求分析、概念設計、邏輯設計、物理設計、系統(tǒng)調試、維護以及系統(tǒng)評價的一般過程,為畢業(yè)設計打下
12、基礎。</p><p><b> 1.3 開發(fā)環(huán)境</b></p><p> 硬件:PC,CPU:AMD Core Processor 4000+,內存:1.00GB,硬盤:160GB;</p><p> 操作系統(tǒng):Microsoft WindowsXP;</p><p> 軟件:Visual C++ 6.0
13、Server 2000</p><p><b> 1.4體系結構設計</b></p><p><b> 第二章 需求分析</b></p><p><b> 2.1 信息要求</b></p><p> (1)學生成績管理系統(tǒng)包含學生和教師的基本信息的處理,學生成績的管理,
14、數(shù)據(jù)庫的管理,登陸用戶的管理。</p><p> (2)學生信息包括學號、姓名、性別、年齡、電話、系名、班級;通過學號可查找相應學生的各科成績。</p><p> (3)課程表包括課程號、課程名稱、學時、學分、任課老師號。</p><p> (4)系包括系名、系主任、系人數(shù)。</p><p> (5)班級包括班級名、班主任、班級人數(shù)、
15、系名。</p><p> (6)教師表包括教師號、教師名、學歷、聯(lián)系方式。</p><p><b> 0層數(shù)據(jù)流圖:</b></p><p><b> 1層數(shù)據(jù)流圖:</b></p><p><b> 2.2 處理要求</b></p><p>
16、 能對學生和教師的信息進行查詢、錄入、修改、刪除;能夠查詢學生的各科成績、平均分,并能對其進行修改、刪除等操作。</p><p> 2.3 安全性與完整性要求</p><p><b> 安全性:</b></p><p> (1) 管理員能夠方便的對信息進行添加、修改、刪除、查詢、匯總、統(tǒng)計等操作。</p><p>
17、 (2)教師可以在自己的權限內,對學生的成績進行錄入、修改、刪除操作。</p><p> (3) 學生可以在自己的權限內對信息進行訪問,查詢相關信息。</p><p><b> 完整性:</b></p><p> 能夠防止合法用戶使用數(shù)據(jù)庫向數(shù)據(jù)庫中添加不合語義的數(shù)據(jù)。</p><p> 通過各個表之間的聯(lián)系來
18、實現(xiàn)數(shù)據(jù)完整性約束。</p><p> 第三章 概念結構設計</p><p><b> 3.1 分ER圖</b></p><p> 登陸表E-R圖 主鍵:用戶名,用戶類型</p><p> 學生信息表E-R圖 主鍵:學號 外鍵:系名,班級</p><p> 系表E-R圖 主
19、鍵:系名</p><p> 成績表E-R圖 主鍵:學號,課程號 外鍵:學號,課程號</p><p> 班級表E-R圖 主鍵:班級 外鍵:系名</p><p> 課程表E-R圖 主鍵:課程號 外鍵:任課老師</p><p> 教師表E-R圖 主鍵:教師號</p><p><b>
20、3.2 總ER圖</b></p><p><b> 合并E-R圖</b></p><p> 第四章 邏輯結構設計</p><p><b> 4.1 關系模型</b></p><p> 將總體概念結構E-R圖轉化成關系模型</p><p> 登陸(用戶類型
21、,用戶名,密碼)</p><p> 學生信息(學號,姓名,性別,年齡,電話,系名,班級)</p><p> 系(系名,系主任,系人數(shù))</p><p> 成績(學號,課程號,學年學期,成績)</p><p> 班級(班級,班主任,班人數(shù),系名)</p><p> 課程表(課程號,課程名稱,學時,學分,任課老師
22、)</p><p> 教師(教師號,教師名,學歷,聯(lián)系方式)</p><p> 4.2 數(shù)據(jù)模型優(yōu)化</p><p> 將轉化的關系模型進行優(yōu)化,最終達到第三范式</p><p><b> 確定數(shù)據(jù)依賴</b></p><p> 登陸(用戶類型,用戶名,密碼)</p>&l
23、t;p> (用戶類型,用戶名)->密碼</p><p> 學生信息(學號,姓名,性別,年齡,電話,系名,班級)</p><p> 學號->姓名,學號->性別,學號->年齡,學號->電話,學號->系名,學號->班級,(學號,姓名)->性別,班級->系名,</p><p> 系(系名,系主任,系人數(shù))&
24、lt;/p><p> 系名->系主任,系名->系人數(shù)</p><p> 成績(學號,課程號,學年學期,成績)</p><p> (學號,課程號)->學年學期,(學號,課程號)->成績,</p><p> 班級(班級,班主任,班人數(shù),系名)</p><p> 班級->班主任,班級-&
25、gt;班人數(shù),班級->系名,(班級,班主任)->班人數(shù)</p><p> 課程表(課程號,課程名稱,學時,學分,任課老師)</p><p> 課程號->課程名稱,課程號->學時,課程號->學分,課程號->任課老師</p><p> 教師(教師號,教師名,學歷,聯(lián)系方式)</p><p> 教師號-&
26、gt;教師名,教師號->學歷,教師號->聯(lián)系方式</p><p> 這些關系都符合要求,屬于第三范式,所以不用再對這些模式進行分解了.</p><p><b> 4.3數(shù)據(jù)字典</b></p><p><b> 表1:學生信息表</b></p><p><b> 表2系
27、表</b></p><p><b> 表3登陸表</b></p><p><b> 表4班級表</b></p><p><b> 表5教師</b></p><p><b> 表6成績</b></p><p>&l
28、t;b> 表7學生信息</b></p><p><b> 4.4視圖設計</b></p><p> (1)打印成績>60分的學生</p><p> create view V_grade</p><p><b> as</b></p><p>
29、; select A.學號,A.姓名,A.性別,B.課程號,C.課程名稱,B.成績</p><p> from 學生信息 A,成績 B,課程表 C</p><p> where A.學號=B.學號 and B.課程號=C.課程號 and 成績>60</p><p> 執(zhí)行:select * from V_grade</p><p&g
30、t; (2) 查看計算機工程學院的考試情況</p><p> create view V_computer</p><p><b> as</b></p><p> select B.學年學期,A.學號,A.姓名,A.班級,C.課程名稱,B.成績</p><p> from 學生信息 A,成績 B,課程表 C&
31、lt;/p><p> where A.學號=B.學號 and B.課程號=C.課程號 and A.系名='計算機工程學院'</p><p> 執(zhí)行: select * from V_computer</p><p> 第五章 數(shù)據(jù)庫的實施和維護</p><p><b> 5.1約束關系:</b>&l
32、t;/p><p> (1)為成績表添加約束 成績只能在0~150之內</p><p> alter table 成績</p><p> add constraint CK_成績 check (成績 between 0 and 150)</p><p> (2)為成績表創(chuàng)建索引</p><p> create i
33、ndex IX_成績 on 成績(學年學期 ASC)</p><p> 5.2 儲存過程設計</p><p> (1)根據(jù)輸入的參數(shù)刪除學生信息</p><p> create proc DeleteNum_proc</p><p> @number char(10)</p><p><b> as
34、 </b></p><p> delete 學生信息 </p><p><b> from 學生信息</b></p><p> where 學號=@number</p><p> (2) 根據(jù)參數(shù)添加教師信息</p><p> create proc AddTeacher_p
35、roc</p><p> @teanumber varchar(10),</p><p> @teaname char(10),</p><p> @teasc varchar(20),</p><p> @teaphone varchar(20)</p><p><b> as</b>
36、</p><p> insert into 教師</p><p> values(@teanumber,@teaname,@teasc,@teaphone)</p><p> (3) 根據(jù)傳入的參數(shù)刪除相應的教師信息</p><p> create proc DeleteTea_proc</p><p> @
37、teanumber varchar(10)</p><p><b> as</b></p><p><b> delete 教師</b></p><p><b> from 教師</b></p><p> where 教師號=@teanumber</p>
38、<p> ?。?)添加學生的信息</p><p> create proc AddStu_proc</p><p> @stunum char(10),</p><p> @stuname varchar(10),</p><p> @stusex char(2),</p><p> @stuyea
39、r int,</p><p> @stuphone varchar(20),</p><p> @stuxi varchar(20),</p><p> @stuclass varchar(20)</p><p><b> as</b></p><p> insert into 學生信息
40、</p><p> values(@stunum,@stuname,@stusex,@stuyear,@stuphone,@stuxi,@stuclass)</p><p><b> 5.3 觸發(fā)器設計</b></p><p> (1) 為學生信息表創(chuàng)建觸發(fā)器,當刪除學生信息時,刪除相應的成績表中的內容。</p><p
41、> create trigger tri_學生信息</p><p> on 學生信息 for delete </p><p><b> as</b></p><p> delete 成績 from 成績 A,deleted B</p><p> where A.學號=B.學號</p>
42、;<p> (2)當教師退休后,刪除其資料,并將其從課程表中刪除,所以創(chuàng)建一個觸發(fā)器</p><p> create trigger tri_教師</p><p> on 教師 for delete </p><p><b> as</b></p><p> delete 課程表 from 課程表
43、 as A,deleted as B</p><p> where B.教師號=A.任課老師</p><p> (3) 添加學生信息時,就為其添加登入信息</p><p> create trigger tri_login </p><p> on 學生信息 for insert</p><p><b&g
44、t; as</b></p><p> declare @name varchar(2)</p><p> declare @password varchar(10)</p><p> select @name=姓名 from inserted </p><p> select @password from inserte
45、d</p><p> insert into 登陸</p><p> values('學生',@name,@password)</p><p> ?。?)刪除學生信息時,也刪除登陸表中的信息</p><p> create trigger tri_destu</p><p> on 學生信息 f
46、or delete</p><p><b> as</b></p><p> declare @name varchar(2)</p><p> declare @password varchar(10)</p><p> select @name=姓名 from deleted</p><p
47、> select @password=學號 from deleted</p><p> delete 登陸 from 登陸</p><p> where 用戶名=@name and 密碼=@password</p><p><b> 5.4 模塊設計</b></p><p> (1)模塊一:基本信息<
48、;/p><p> 該模塊主要完成對學生及教師的查詢、添加、以及刪除等功能,在添加學生信息時,自動將其添加到登陸列表中,為其添加登陸的權限.先在SQL分析器中創(chuàng)建一個觸發(fā)器,在向學生信息表中添加信息時,就會觸發(fā).建四個對話框,兩個對話框用來顯示學生信息和教師信息,另外兩個對話框用來實現(xiàn)對學生和教師信息的管理.在顯示基本信息對話框中,為其添加CLIST CONTRL控件,弄成報表的形式,在程序中調用建立的幾個記錄集.利
49、用滾動記錄的幾個函數(shù),實現(xiàn)向報表控件中添加數(shù)據(jù),這樣就可以把學生和老師的信息給顯示出來.而在對學生和教師信息管理的對話框中,設立幾個變量與對話框中的EDIT編輯框相關聯(lián).調用UpateData(),可以把輸入的值傳給變量,這樣就可以實現(xiàn)所想要的功能.</p><p> (2)成績查詢模塊.</p><p> 該模塊主要用于查詢學生的成績,實現(xiàn)學生成績的查詢.按學號查詢該學生的全部考試信
50、息.按班級查詢,可以獲得該班級學生的考試信息,不分學期.按系查詢,可以獲得某系的全部考試信息.另外兩個對話框實現(xiàn)查詢個人平均分和班級成績情況的查詢.前兩個對話框就不再敘述了,原理與前面的一樣,在求平均分時,根據(jù)輸入的學年學期和學號,可以查詢該學生在這個學年的考試平均分,考試門數(shù)程不及格的門數(shù).在實現(xiàn)求平均分過程中,本想用存儲過程進行實現(xiàn)的,但由于在MFC中不知道如何調用有返回值的存儲過程,所以用一個個比較過去,記錄總和和考試課程數(shù).這樣
51、就可以求出相應的平均分.不及格數(shù)也呼之欲出.求班級成績也同理可得。</p><p><b> 成績管理模塊</b></p><p> 該模塊實現(xiàn)對成績的錄入、修改、刪除功能。三個模塊的功能是類似的,所以只要實現(xiàn)一個,其他的兩個就相當容易了,在這里,我是調用SQL語句進行添加、修改和刪除的。首先把幾個編輯框與幾個變量進行關聯(lián),其實不用關聯(lián)也是可以的,可以利用GetD
52、lgItem(ID號)->GetWindowText(字符串變量),這樣也可以把值傳送給變量。建立一個數(shù)據(jù)類對象CDatabase m_db,用這個對象打開相對應的數(shù)據(jù)庫,用str.Format(“SQL語名”),對字符串進行格式化成SQL語句,這樣就可以用m_db.ExecuteSQL(str),執(zhí)行SQL語句,這樣相寫一個函數(shù)進行查詢,省了很多的代碼,比較簡潔。也可以調用存儲過程進行實現(xiàn),因為獲取返回值的存儲過程不會,所以這里
53、有調用的存儲過程是沒有返回值的。</p><p> 系統(tǒng)管理模塊和數(shù)據(jù)庫管理模塊</p><p> 這兩個模塊,一個用于修改用戶的密碼,一個用于數(shù)據(jù)庫的備份與刪除。在修改密碼這個對話框中,把用戶登陸名給顯示出來,舊密碼保存在全局變量中,用來檢驗用戶輸入的舊密碼是否正確,如果正確的話,調用SQL語句的Update對數(shù)據(jù)庫中的相應元組進行修改。數(shù)據(jù)庫備份這個模塊,用了一個CCOMBOX控件
54、,用來讓用戶選擇進行哪種數(shù)據(jù)操作,有數(shù)據(jù)庫完全備份,差異備份和移除設備。這三個都是調用數(shù)據(jù)庫的相應命令進行操作。如完作備份,剛調用如下語句:sql.Format("backup database student to disk='%s'",m_getpathname);此處是利用CFileDlg進行相應的操作。不過這段內容有點缺陷,就是在退出程序后,原來保存的那個路徑名會清空,所以還得再選擇路徑進行備
55、份。</p><p><b> 結論</b></p><p> 在本次課程設計過程中,學到了很多知識,由于課程設計起草的比較晚,所以功能比較差些,功能也未能進行更深入的思考,自己也對VC涉足不深,所以在運用方面有所欠缺,數(shù)據(jù)庫方面,整體考慮也不周到。在課設的前一周有對課設考慮了一下,本來有考慮了好幾個模塊,像成績錄入模塊、班級統(tǒng)計模塊、年級統(tǒng)計模塊。在成績錄入模塊
56、中再分別進行錄入、修改、增加、刪除、查詢、打印等功能。班級統(tǒng)計模塊又分別有學生總成績、平均成績、班級排名、統(tǒng)計班級某分數(shù)段內的學生成績人數(shù)、各學生該科成績、班級排名等功能(只相對于某個學期)。還有年級統(tǒng)計模塊,分為各年級各專業(yè)學生總成績還有排名、各學生各科成績年級排名,各班各分數(shù)段人數(shù)等功能。不過在考完試之后再開始真正做課程設計,時間有些傖促,所以只是實現(xiàn)其中的一部分功能。在用VC與SERVER 2000進行學生成績管理系統(tǒng)的設計時,開
57、始對用ODBC連接數(shù)據(jù)庫時,經過了一天的時間,本打算用ADO進行連接,不過對我來說有點眼高手低,對ADO與ODBC都是一點都不懂,最后還是決定用ODBC進行連接,相對比較容易上手。通過本次課程設計,對在VC++中如何編寫基本的ODBC數(shù)據(jù)庫等有了初步的認識,</p><p> 現(xiàn)在講講數(shù)據(jù)庫設計方向的一些感言,經過幾天的不眠不休的備斗,不過數(shù)據(jù)庫還是設計的不好.像數(shù)據(jù)庫的對象命名,我就沒按標準來對對象進行命名,
58、用了漢字,這樣在程序中建立數(shù)據(jù)集時,就出現(xiàn)了一大堆m_column的字樣,這些表示屬性,給寫程序帶來了不便,不過相信以后我不會再犯這個錯誤了.建表時,那些主外鍵也未考慮周到,導致在添加數(shù)據(jù)過程中老是出現(xiàn)些問題,像觸發(fā)器的建立,由于主外鍵沒設計好,導致內部錯誤,這樣花費了我很多時間查找錯誤原,都是由于前期工作沒做好,正所謂”磨刀不誤砍柴工”,這下我完全體會到了這句話的深義.在做好數(shù)據(jù)庫設計之前,首先得對數(shù)據(jù)庫中各種概念有所理解,然后在實施
59、過程中,對數(shù)據(jù)庫管理軟件創(chuàng)建的各個部分有個整體的認識.</p><p> 通過本次課程設計,學到了很多知識,不僅是數(shù)據(jù)庫方面的,還有對軟件設計過程中應該注意哪些問題也有了初步的認識,相信在以后的設計過程中,我會做得更好.</p><p><b> 參考文獻</b></p><p> <<Visual C++數(shù)據(jù)庫編程技術與實例
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學生成績管理系統(tǒng)數(shù)據(jù)庫課程設計
- 數(shù)據(jù)庫課程設計---學生成績管理系統(tǒng)
- 數(shù)據(jù)庫課程設計(學生成績管理系統(tǒng))
- 數(shù)據(jù)庫課程設計---學生成績管理系統(tǒng)數(shù)據(jù)庫設計
- 數(shù)據(jù)庫課程設計--學生成績管理系統(tǒng)
- 學生成績管理系統(tǒng)-數(shù)據(jù)庫課程設計
- 學生成績管理系統(tǒng)數(shù)據(jù)庫課程設計
- 數(shù)據(jù)庫學生成績管理系統(tǒng)課程設計
- 數(shù)據(jù)庫課程設計——學生成績管理系統(tǒng)
- 數(shù)據(jù)庫課程設計--學生成績管理系統(tǒng)
- 數(shù)據(jù)庫課程設計----學生成績管理系統(tǒng)
- 數(shù)據(jù)庫課程設計--學生成績管理系統(tǒng)
- 數(shù)據(jù)庫課程設計--- 學生成績管理系統(tǒng)
- 數(shù)據(jù)庫課程設計--學生成績管理系統(tǒng)
- 數(shù)據(jù)庫課程設計----學生成績管理系統(tǒng)
- 學生成績管理系統(tǒng)-數(shù)據(jù)庫課程設計
- 學生成績管理系統(tǒng)-數(shù)據(jù)庫課程設計
- 數(shù)據(jù)庫課程設計--學生成績管理系統(tǒng)
- 數(shù)據(jù)庫課程設計--學生成績管理系統(tǒng)
- 數(shù)據(jù)庫課程設計----學生成績管理系統(tǒng)
評論
0/150
提交評論