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