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