數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告通用學(xué)生信息管理系統(tǒng)_第1頁(yè)
數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告通用學(xué)生信息管理系統(tǒng)_第2頁(yè)
數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告通用學(xué)生信息管理系統(tǒng)_第3頁(yè)
數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告通用學(xué)生信息管理系統(tǒng)_第4頁(yè)
數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告通用學(xué)生信息管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、成績(jī)數(shù)據(jù)庫(kù)課程設(shè)計(jì)課程名稱 數(shù)據(jù)庫(kù)課程設(shè)計(jì) 題目名稱 通用學(xué)生信息管理系統(tǒng) 學(xué)生學(xué)院 計(jì)算機(jī)學(xué)院 專業(yè)班級(jí) 網(wǎng)絡(luò)開(kāi)發(fā)2班 學(xué) 號(hào)_ _學(xué)生姓名_ _指導(dǎo)教師 2010年5月25日廣東工業(yè)大學(xué)課程設(shè)計(jì)任務(wù)書(shū)題目名稱通用學(xué)生信息管理系統(tǒng)學(xué)生學(xué)院計(jì)算機(jī)學(xué)院專業(yè)班級(jí)網(wǎng)絡(luò)開(kāi)發(fā)2班姓 名學(xué) 號(hào)一、課程設(shè)計(jì)的內(nèi)容1研究學(xué)生信息管理系統(tǒng)在實(shí)際的應(yīng)用和意義。2學(xué)習(xí)使用sql server2000 vc+的實(shí)際使用,odbc驅(qū)動(dòng)程序的應(yīng)用和對(duì)服務(wù)器的配置等!3創(chuàng)建數(shù)據(jù)庫(kù),將其與vc+連接進(jìn)行增刪改查的功能,并而設(shè)計(jì)登錄界面,對(duì)不同的用戶設(shè)計(jì)不同的權(quán)限等!4編寫(xiě)課程設(shè)計(jì)的報(bào)告!二、課程設(shè)計(jì)的要求與數(shù)據(jù)1學(xué)生基本情況

2、數(shù)據(jù):學(xué)號(hào),姓名,性別,年齡,狀態(tài),電話和地址。2用戶數(shù)據(jù):登錄名,狀態(tài),密碼和權(quán)限。3教師數(shù)據(jù):教師號(hào),教師名,狀態(tài),年齡,性別。4課程表數(shù)據(jù):課程號(hào),課程名,課時(shí),學(xué)分和狀態(tài)。5成績(jī)數(shù)據(jù):課程號(hào),學(xué)生號(hào),課程成績(jī),狀態(tài)。6教學(xué)數(shù)據(jù):課程號(hào),老師號(hào)。三、課程設(shè)計(jì)應(yīng)完成的工作開(kāi)發(fā)一個(gè)用vc+技術(shù)的通用學(xué)生信息管理系統(tǒng),主要功能包括:用戶登錄,用戶管理,學(xué)生教師管理,成績(jī)管理,數(shù)據(jù)維護(hù),成績(jī)查詢,學(xué)生查詢,授課管理,授課查詢,課程管理等。四、課程設(shè)計(jì)進(jìn)程安排序號(hào)設(shè)計(jì)(論文)各階段名稱地點(diǎn)起止日期1選定本次課程設(shè)計(jì)及其論文的研究課題宿舍11周星期四2對(duì)研究課題進(jìn)行調(diào)查并做出詳細(xì)的需求分析宿舍12周

3、星期日3收集資料和參考文獻(xiàn)圖書(shū)館12周星期三4認(rèn)真閱讀和學(xué)習(xí)資料、文獻(xiàn)并做出初步構(gòu)思宿舍12周星期五5制定出整個(gè)系統(tǒng)的設(shè)計(jì)構(gòu)想、設(shè)計(jì)思路和方法宿舍12周星期六6進(jìn)行系統(tǒng)的設(shè)計(jì)、開(kāi)發(fā)和編寫(xiě)程序代碼宿舍13周星期一至四7對(duì)系統(tǒng)進(jìn)行測(cè)試和系統(tǒng)調(diào)試宿舍13周星期五六8完成整個(gè)系統(tǒng)的開(kāi)發(fā)并進(jìn)行系統(tǒng)維護(hù)宿舍13周星期日9撰寫(xiě)設(shè)計(jì)論文宿舍14周星期一10最終完成系統(tǒng)修改、論文撰寫(xiě)和表格填寫(xiě)宿舍14周星期二11上交課程設(shè)計(jì)、論文及表格教學(xué)樓6.6五、應(yīng)收集的資料及主要參考文獻(xiàn)1王珊.數(shù)據(jù)庫(kù)系統(tǒng)概論.北京:高等教育出版社,20072程展鵬.vc+.北京:清華大學(xué)出版社,2005.3 李華. visual c +

4、 教程m.北京:機(jī)械工業(yè)出版社,2007.發(fā)出任務(wù)書(shū)日期:2010年 5月15 日 指導(dǎo)教師簽名:計(jì)劃完成日期: 2010年 6月 5 日 基層教學(xué)單位責(zé)任人簽章: 主管院長(zhǎng)簽章:一、相關(guān)技術(shù)介紹41后臺(tái)數(shù)據(jù)庫(kù)42前臺(tái)開(kāi)發(fā)工具4二、需求分析51權(quán)限表52數(shù)據(jù)字典63數(shù)據(jù)流圖6三、概念結(jié)構(gòu)設(shè)計(jì)7四、邏輯結(jié)構(gòu)設(shè)計(jì)71系統(tǒng)的邏輯關(guān)系圖72具體的表的數(shù)據(jù)結(jié)構(gòu)83系統(tǒng)結(jié)構(gòu)圖9五、數(shù)據(jù)庫(kù)模塊設(shè)計(jì)101系統(tǒng)結(jié)構(gòu)圖102數(shù)據(jù)庫(kù)關(guān)系圖103用戶界面11六、數(shù)據(jù)庫(kù)實(shí)施121數(shù)據(jù)庫(kù)的創(chuàng)建122數(shù)據(jù)庫(kù)的備份133用戶界面設(shè)計(jì)與關(guān)鍵代碼14七、系統(tǒng)測(cè)試方案和測(cè)試報(bào)告291學(xué)生管理模塊測(cè)試292成績(jī)管理模塊測(cè)試303課程

5、管理模塊測(cè)試314教師管理模塊測(cè)試325授課管理模塊測(cè)試32八、系統(tǒng)的主要功能和使用33九、系統(tǒng)安裝說(shuō)明33十、個(gè)人總結(jié)34參考文獻(xiàn)34一、相關(guān)技術(shù)介紹1后臺(tái)數(shù)據(jù)庫(kù)sql全稱是“結(jié)構(gòu)化查詢語(yǔ)言(structured query language)”,sql server是一種使用傳統(tǒng)的transact-sql語(yǔ)言,基于客戶機(jī)/服務(wù)器,并且兩者間傳送請(qǐng)求和答復(fù)的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。sql server使用客戶機(jī)/服務(wù)器體系結(jié)構(gòu)將所有的工作分解為客戶機(jī)和服務(wù)器任務(wù),由兩者分別完成。sql server 2000是microsoft公司于2000年8月推出的最新數(shù)據(jù)庫(kù)引擎,作為大型電子商務(wù),數(shù)據(jù)倉(cāng)

6、庫(kù)的數(shù)據(jù)庫(kù)解決方案,它具有一下幾個(gè)特點(diǎn):1 熟悉的界面sql server2000與sql server 7.0就界面而言并沒(méi)有太大的差別,相信許多曾經(jīng)使用過(guò)sql server 7.0的讀者見(jiàn)到2000時(shí)就會(huì)有一種十分熟悉的感覺(jué),就方便了用戶從7.0版本到2000的升級(jí)。2 更加強(qiáng)大的數(shù)據(jù)引擎sql server2000擁有增強(qiáng)的數(shù)據(jù)引擎,高級(jí)的管理方式,這樣就大大降低了檢索的開(kāi)銷。此外sql server2000支xml,http,并與web相結(jié)合,使其功能更加強(qiáng)大。3與windows更好地結(jié)合。2前臺(tái)開(kāi)發(fā)工具vc+是微軟公司開(kāi)發(fā)的一個(gè)ide(集成開(kāi)發(fā)環(huán)境),換句話說(shuō),就是使用c+的一個(gè)開(kāi)

7、發(fā)平臺(tái).有些軟件就是這個(gè)編出來(lái)的.另外還有vb,vf.只是使用不同語(yǔ)言.但是,vc+是windows平臺(tái)上的c+編程環(huán)境,學(xué)習(xí)vc要了解很多windows平臺(tái)的特性并且還要掌握mfc、atl、com等的知識(shí),難度比較大。windows下編程需要了解windows的消息機(jī)制以及回調(diào)(callback)函數(shù)的原理;mfc是win32api的包裝類,需要理解文檔視圖類的結(jié)構(gòu),窗口類的結(jié)構(gòu),消息流向等等;com是代碼共享的二進(jìn)制標(biāo)準(zhǔn),需要掌握其基本原理等等。 vc作為一個(gè)主流的開(kāi)發(fā)平臺(tái)一直深受編程愛(ài)好者的喜愛(ài),但是很多人卻對(duì)它的入門(mén)感到難于上青天,究其原因主要是大家對(duì)他錯(cuò)誤的認(rèn)識(shí)造成的,嚴(yán)格的來(lái)說(shuō)vc

8、+不是門(mén)語(yǔ)言,雖然它和c+之間有密切的關(guān)系,如果形象點(diǎn)比喻的話,可以c+看作為一種”工業(yè)標(biāo)準(zhǔn)”,而vc+則是某種操作系統(tǒng)平臺(tái)下的”廠商標(biāo)準(zhǔn)”,而”廠商標(biāo)準(zhǔn)”是在遵循”工業(yè)標(biāo)準(zhǔn)”的前提下擴(kuò)展而來(lái)的。vc+應(yīng)用程序的開(kāi)發(fā)主要有兩種模式,一種是win api方式,另一種則是mfc方式,傳統(tǒng)的win api開(kāi)發(fā)方式比較繁瑣,而mfc則是對(duì)win api再次封裝,所以mfc相對(duì)于win api開(kāi)發(fā)更具備效率優(yōu)勢(shì),但為了對(duì)windows開(kāi)發(fā)有一個(gè)較為全面細(xì)致的認(rèn)識(shí),筆者在這里還是以講解win api的相關(guān)內(nèi)容為主線。二、需求分析學(xué)生信息管理系統(tǒng)是各所高校教育環(huán)節(jié)不可缺少的一部分,它的內(nèi)容對(duì)學(xué)校的決策者和管

9、理者來(lái)說(shuō)至關(guān)重要,所以該系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄?。但一直以?lái)人們使用傳統(tǒng)人工方式管理文件檔案,這種管理方式存在著許多缺點(diǎn),如:效率低、保密性差,另外時(shí)間一長(zhǎng),將產(chǎn)生大量的文件和數(shù)據(jù),這對(duì)于查找、更新和維護(hù)都帶來(lái)了不便。隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),他已進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來(lái)越重要的作用。早期的校園網(wǎng)絡(luò)、如今的web寬帶網(wǎng)都為我們共享數(shù)據(jù)提供了前所未有的方便,由此,建立高性能的學(xué)生信息管理系統(tǒng),作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)學(xué)生信息管理,具有手工管理無(wú)法比擬的優(yōu)點(diǎn),如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保

10、密性好、壽命長(zhǎng)、成本低等,這些優(yōu)點(diǎn)能夠極大的提高學(xué)生信息管理的效率,也是科學(xué)化、正規(guī)化的體現(xiàn)。因此,開(kāi)發(fā)這樣的軟件系統(tǒng)是很必要的。1權(quán)限表學(xué)生信息管理系統(tǒng)的主要功能是為是實(shí)現(xiàn)對(duì)學(xué)生的管理,包括增加,刪除,修改,查詢等。方便日常教學(xué)工作,提高管理的效率,而且要確保其信息安全!所以系統(tǒng)設(shè)計(jì)了三種不同的用戶:學(xué)生,教師,管理員。他們的權(quán)限如下圖所示:修改密碼用戶管理學(xué)生管理教師管理課程管理授課管理成績(jī)管理成績(jī)查詢授課查詢學(xué)生教師管理員權(quán)限圖具體的功能分析如下:系統(tǒng)登錄:程序一開(kāi)始就是登錄,用戶輸入用戶名和密碼,系統(tǒng)會(huì)通過(guò)查詢數(shù)據(jù)庫(kù)進(jìn)行驗(yàn)證,不正確就重新登錄,正確就能進(jìn)入;登錄后根據(jù)權(quán)限給予功能!修改

11、密碼:用戶都可以修改自己的密碼。用戶管理:只有管理員才有這個(gè)功能,可以增加,刪除,修改,用戶屬性。成績(jī)查詢:用戶可以根據(jù)權(quán)限,使用這功能,可以按姓名或課程來(lái)查詢,還可能以分?jǐn)?shù)進(jìn)行查詢,方便用戶使用。授課查詢:可以查某老師的課程或某課程的老師名。學(xué)生管理:可以對(duì)學(xué)生的信息進(jìn)行增加,刪除,修改,功能。成績(jī)管理:可以對(duì)成績(jī)進(jìn)行增加,刪除,修改,功能。教師管理:可以對(duì)老師的信息進(jìn)行增加,刪除,修改,功能。課程管理:對(duì)課程的基本信息進(jìn)行添加,刪除,修改等操作。2數(shù)據(jù)字典(1)學(xué)生數(shù)據(jù):學(xué)生編號(hào),學(xué)號(hào),姓名,性別,年齡,狀態(tài),電話和地址(2)用戶數(shù)據(jù):用戶編號(hào),登錄名,狀態(tài),密碼和權(quán)限(3)教師數(shù)據(jù):教師

12、編號(hào),教師號(hào),教師名,狀態(tài),年齡,性別和權(quán)限(4)課程表數(shù)據(jù):課程編號(hào),課程號(hào),課程名,課時(shí),學(xué)分和狀態(tài)(5)成績(jī)數(shù)據(jù):課程號(hào),學(xué)生號(hào),課程成績(jī),狀態(tài)其中,多個(gè)學(xué)生由一個(gè)老師教授課程,多個(gè)老師教授一個(gè)學(xué)生。多個(gè)老師教授一門(mén)課程,多門(mén)課程也可由一個(gè)老師兼任。學(xué)生可選修多門(mén)課程,一門(mén)課程也可多個(gè)學(xué)生一起選修。因此這三個(gè)實(shí)體都是多對(duì)多的關(guān)系。3數(shù)據(jù)流圖數(shù)據(jù)流圖三、概念結(jié)構(gòu)設(shè)計(jì)e-r圖四、邏輯結(jié)構(gòu)設(shè)計(jì)1系統(tǒng)的邏輯關(guān)系圖userinfo(login_id,login_name,login_password,login_level,login_status);teach(teach_id,course_n

13、o,teache_no,teache_status);student(student_id,student_no,student_name,student_sex,student_age, student_phone, student_address, student_status)teacher(teacher_id,teacher_no,teacher_name,teacher_sex,teacher_age,teacher_status)course(course_id,course_no,course_name,course_hour,course_credit,course_stat

14、us)score(score_id, student_no, course_no, score_result, score_status)2具體的表的數(shù)據(jù)結(jié)構(gòu)列 名數(shù)據(jù)類型長(zhǎng) 度備 注login_idsmallint2主鍵,非空l(shuí)ogin_namevarchar50非空,用戶名login_passwordvarchar50非空,口令login_levelvarchar5非空,權(quán)限login_statuschar2非空,狀態(tài)用戶表(userinfo)列 名數(shù)據(jù)類型長(zhǎng) 度備 注teach_idint4非空,主鍵course_nochar5非空,外鍵,課程名teache_nochar10非空,外鍵,

15、教師名teach_statuschar2非空,狀態(tài)教學(xué)表(teach)列 名數(shù)據(jù)類型長(zhǎng) 度備 注student_idint4主鍵,非空student_nochar10非空,學(xué)號(hào)student_namevarchar20非空,姓名student_sexchar2非空,性別student_agesmallint2非空,年齡student_phonevarchar20電話student_addressvarchar100地址student_statuschar2非空,狀態(tài)學(xué)生表(student)列 名數(shù)據(jù)類型長(zhǎng) 度備 注teacher_idint4主鍵,非空teacher_nochar10非空,教師

16、號(hào)teacher_namevarchar20非空,教師名teacher_sexchar2性別teacher_agesmallint2非空,年齡teacher_statuschar2非空,狀態(tài)教師表(teacher)列 名數(shù)據(jù)類型長(zhǎng) 度備 注course_idint4非空course_nochar5非空,課程號(hào)course_namevarchar20非空,課程名course_hoursmallint2非空,授課時(shí)間course_creditnumeric5非空,學(xué)分course_statuschar2非空,狀態(tài)課程表(course)列 名數(shù)據(jù)類型長(zhǎng) 度備 注score_idint4非空,主鍵st

17、udent_nochar10非空,外鍵,學(xué)號(hào)course_nochar5非空,外鍵,課程號(hào)score_resultsmallint2非空,成績(jī)score_statuschar2非空,狀態(tài)成績(jī)表(score)3系統(tǒng)結(jié)構(gòu)圖視圖五、數(shù)據(jù)庫(kù)模塊設(shè)計(jì)1系統(tǒng)結(jié)構(gòu)圖系統(tǒng)結(jié)構(gòu)圖2數(shù)據(jù)庫(kù)關(guān)系圖數(shù)據(jù)庫(kù)關(guān)系圖3用戶界面用戶登錄界面:用戶名:黃振龍 密碼:3107006990進(jìn)入后 基本界面:系統(tǒng)管理界面:基本信息管理界面:信息查詢界面:幫助界面:六、數(shù)據(jù)庫(kù)實(shí)施1數(shù)據(jù)庫(kù)的創(chuàng)建(1)創(chuàng)建studentscore數(shù)據(jù)庫(kù)create database studentscoreon( name = studentscore,

18、 filename = f:數(shù)據(jù)庫(kù)課程設(shè)計(jì)studentscore.mdf, size = 4, filegrowth = 2);(2)創(chuàng)建用戶表(userinfo)create table userinfo ( login_id smallint primary key clustered, login_name varchar(50) not null , login_password varchar(50) not null check(len(login_password)5), login_level varchar(5) not null, login_status char(2)

19、 default y check(login_status in(y,n) );(3)創(chuàng)建教師表(teacher)create table teacher( teacher_id int primary key clustered, teacher_no char(10) not null check(len(teacher_no)=10) unique, teacher_name varchar(20) not null, teacher_sex char(2) default 男 check(teacher_sex in(男 ,女), teacher_age smallint not nu

20、ll check(teacher_age2), teacher_status char(2) default y check(teacher_status in(y,n);(4)創(chuàng)建學(xué)生表(student)create table student(student_id int primary key clustered, student_no char(10) not null check(len(student_no)=10) unique, student_name varchar(20) not null, student_sex char(2) default 男 check(stud

21、ent_sex in(男 ,女), student_age smallint not null check(student_age2), student_phone varchar(20), student_address varchar(100), student_status char(2) default y check(student_status in(y,n);(5)創(chuàng)建課程表(course)create table course( course_id int primary key clustered, course_no char(5) not null check(len(c

22、ourse_no)=5) unique, course_name varchar(20) not null, course_hour smallint not null, course_credit numeric(2,1) not null, course_status char(2) default y check(course_status in (y,n);(6)創(chuàng)建教學(xué)表create table course( course_id int primary key clustered, course_no char(5) not null check(len(course_no)=5)

23、 unique, course_name varchar(20) not null, course_hour smallint not null, course_credit numeric(2,1) not null, course_status char(2) default y check(course_status in (y,n);(7)創(chuàng)建分?jǐn)?shù)表reate table score( score_id int primary key clustered, student_no char(10) not null check(len(student_no)=10) , course_n

24、o char(5) not null check(len(course_no)=5) , score_result smallint not null check(score_result=0) and (score_result=100), score_status char(2) default y check(score_status in (y,n), foreign key(student_no) references student(student_no), foreign key(course_no) references course(course_no) );2數(shù)據(jù)庫(kù)的備份關(guān)

25、于數(shù)據(jù)庫(kù)的備份,可以在另一臺(tái)電腦上多建立一個(gè)數(shù)據(jù)庫(kù)作為備份,對(duì)數(shù)據(jù)庫(kù)的操作要同時(shí)對(duì)兩個(gè)數(shù)據(jù)庫(kù)的相同操作才可以進(jìn)行!以后的災(zāi)難出現(xiàn)時(shí)也可以用另 一個(gè)數(shù)據(jù)庫(kù)文件進(jìn)行恢復(fù)!3用戶界面設(shè)計(jì)與關(guān)鍵代碼(1)用戶登錄界面如下void clogindlg:onok() / todo: add extra validation herecstring username,password;m_strusername.getwindowtext(username); /獲得輸入的用戶名m_strpassword.getwindowtext(password); /獲得輸入的密碼if(!m_database.iso

26、pen() /判斷數(shù)據(jù)庫(kù)是否打開(kāi),打開(kāi)返回true,否則返回falseif(m_database.open(_t(studentscore) /嘗試打開(kāi)數(shù)據(jù)庫(kù)m_recordset.m_pdatabase = &m_database ;cstring strsql;strsql.format(select * from userinfo where login_name=%s and login_password=%s and login_status=y,username,password);m_recordset.open(crecordset:forwardonly,strsql);/打

27、開(kāi)記錄集if(m_recordset.getrecordcount()=0)messagebox(密碼錯(cuò)誤,請(qǐng)重新輸入!,密碼錯(cuò)誤,mb_ok | mb_iconwarning);m_strpassword.setwindowtext();m_strpassword.setfocus();elsem_recordset.getfieldvalue(login_level,m_userlevel);/獲得數(shù)據(jù)庫(kù)中用戶的級(jí)別cdialog:onok();m_recordset.close();m_database.close();elsemessagebox(無(wú)法打開(kāi)數(shù)據(jù)庫(kù)!);void clog

28、indlg:oncancel() / todo: add extra cleanup hereif(messagebox(真的要退出系統(tǒng)嗎?,退出詢問(wèn),mb_okcancel | mb_iconquestion)=idok)cdialog:oncancel();bool clogindlg:oninitdialog() cdialog:oninitdialog();m_strpassword.setwindowtext(123456789);m_strusername.setwindowtext(liao);return true; / return true unless you set t

29、he focus to a control / exception: ocx property pages should return falsevoid clogindlg:onsetfocusloginuser() m_strusername.setwindowtext();m_strpassword.setwindowtext();(2)基本信息管理(學(xué)生管理)void cstudentdlg:refreshlist()m_list.deleteallitems();m_studentset.open();m_studentset.m_strfilter = student_status

30、=y;m_studentset.requery();for(int i=0;igetdlgitem(idc_student_female);p_maleradio = (cbutton*)this-getdlgitem(idc_student_male);m_badd.enablewindow(true);m_bdel.enablewindow(true);m_bedit.enablewindow(true);bool cstudentdlg:oninitdialog() cdialog:oninitdialog();/ todo: add extra initialization herem

31、_list.insertcolumn(0,編號(hào));m_list.insertcolumn(1,學(xué)號(hào));m_list.insertcolumn(2,姓名);m_list.insertcolumn(3,性別);m_list.insertcolumn(4,年齡);m_list.insertcolumn(5,電話);m_list.insertcolumn(6,地址);rect rectlist;m_list.getwindowrect(&rectlist);m_list.setcolumnwidth(0,45);m_list.setcolumnwidth(3,45);m_list.setcolumnw

32、idth(4,45);int othercolwidth = (rectlist.right-rectlist.left-4-45*3)/4;m_list.setcolumnwidth(1,othercolwidth);m_list.setcolumnwidth(2,othercolwidth);m_list.setcolumnwidth(5,othercolwidth);m_list.setcolumnwidth(6,othercolwidth);m_list.setextendedstyle(lvs_ex_fullrowselect);refreshlist();for(int j=0;j

33、getdlgitem(idc_student_female);p_maleradio = (cbutton*)this-getdlgitem(idc_student_male);resetbutton();return true; / return true unless you set the focus to a control / exception: ocx property pages should return falsevoid cstudentdlg:onclickliststudent(nmhdr* pnmhdr, lresult* presult) / todo: add

34、your control notification handler code hereint row = m_list.getselectionmark();/讓相應(yīng)的空間顯示相應(yīng)的 學(xué)號(hào) 姓名 性別 年齡 電話 地址cstring temp;temp = m_list.getitemtext(row,1);m_strno.setwindowtext(temp);temp = m_list.getitemtext(row,2);m_strname.setwindowtext(temp);temp = m_list.getitemtext(row,3);if(temp=女)checkradiob

35、utton(idc_student_female,idc_student_male,idc_student_female);elsecheckradiobutton(idc_student_female,idc_student_male,idc_student_male);temp = m_list.getitemtext(row,4);m_strage.selectstring(row,temp);temp = m_list.getitemtext(row,5);m_strphone.setwindowtext(temp);temp = m_list.getitemtext(row,6);m

36、_straddress.setwindowtext(temp);*presult = 0;void cstudentdlg:onstudentadd() / todo: add your control notification handler code here/以下為設(shè)置各個(gè)按鈕狀態(tài)cbutton *p_femaleradio,*p_maleradio;m_strname.enablewindow(true);m_strname.setwindowtext();m_strno.enablewindow(true);m_strno.setwindowtext();m_strage.enabl

37、ewindow(true);m_strage.selectstring(0,20);m_strphone.enablewindow(true);m_strphone.setwindowtext();m_straddress.enablewindow(true);m_straddress.setwindowtext();p_femaleradio =(cbutton*)this-getdlgitem(idc_student_female);p_femaleradio-enablewindow(true);p_maleradio = (cbutton*)this-getdlgitem(idc_st

38、udent_male); p_maleradio-enablewindow(true);m_bok.enablewindow(true);m_badd.enablewindow(false);m_bedit.enablewindow(false);m_bdel.enablewindow(false);/設(shè)置記錄集相關(guān)狀態(tài)m_studentset.open();m_studentset.addnew();void cstudentdlg:onstudentedit() / todo: add your control notification handler code hereint row =

39、 m_list.getselectionmark();cstring temp,strsql;cbutton *p_femaleradio,*p_maleradio;temp = m_list.getitemtext(row,0);if(!temp.isempty()strsql.format(student_id=%s,temp);m_studentset.open();m_studentset.m_strfilter = strsql;m_studentset.requery();m_studentset.edit();/單擊修改后,設(shè)置其他按鈕狀態(tài)m_bok.enablewindow(t

40、rue);m_badd.enablewindow(false);m_bdel.enablewindow(false);m_bedit.enablewindow(false);m_strname.enablewindow(true);m_strno.enablewindow(true);m_strphone.enablewindow(true);m_straddress.enablewindow(true);m_strage.enablewindow(true);p_femaleradio =(cbutton*)this-getdlgitem(idc_student_female);p_fema

41、leradio-enablewindow(true);p_maleradio = (cbutton*)this-getdlgitem(idc_student_male); p_maleradio-enablewindow(true);void cstudentdlg:onstudentdel() / todo: add your control notification handler code hereint row = m_list.getselectionmark();cstring temp,strsql;temp = m_list.getitemtext(row,0);if(!tem

42、p.isempty()if(messagebox(確認(rèn)要?jiǎng)h除該記錄?,刪除詢問(wèn),mb_okcancel|mb_iconquestion)=idok)strsql.format(student_id=%s,temp);m_studentset.open();m_studentset.m_strfilter = strsql;m_studentset.requery();m_studentset.edit();m_studentset.m_student_status = n;m_studentset.update();m_studentset.close();refreshlist();void

43、 cstudentdlg:onstudentok() / todo: add your control notification handler code herecstring no,name,phone,address,strsex,temp;int age;m_strno.getwindowtext(no);m_strname.getwindowtext(name);m_strphone.getwindowtext(phone);m_straddress.getwindowtext(address);m_strage.getwindowtext(temp);age = atoi(temp

44、);switch(getcheckedradiobutton(idc_student_female,idc_student_male)case idc_student_female : strsex = 女; break;case idc_student_male : strsex = 男; break;if(name=)messagebox(請(qǐng)輸入學(xué)生姓名!);elsem_studentset.m_student_no = no;m_studentset.m_student_name = name;m_studentset.m_student_sex = strsex;m_studentse

45、t.m_student_age = age;m_studentset.m_student_phone = phone;m_studentset.m_student_address = address;m_studentset.m_student_status = y;m_studentset.update();m_studentset.close();refreshlist();resetbutton();void cstudentdlg:oncancel() / todo: add extra cleanup hereif(m_studentset.isopen()m_studentset.

46、close();resetbutton();cdialog:oncancel();(3)基本信息管理(成績(jī)管理)bool cscoredlg:oninitdialog() cdialog:oninitdialog();/ todo: add extra initialization here/初始化數(shù)據(jù)庫(kù)if(!m_database.isopen()m_database.open(_t(studentscore);m_recordset.m_pdatabase = &m_database;/初始化列表框m_list.insertcolumn(0,成績(jī)編號(hào));m_list.insertcolum

47、n(1,學(xué)生名);m_list.insertcolumn(2,課程名);m_list.insertcolumn(3,分?jǐn)?shù));rect listrect;m_list.getwindowrect(&listrect);int width = listrect.right-listrect.left-4;for(int i=0;i4;i+)m_list.setcolumnwidth(i,width/4);m_list.setextendedstyle(lvs_ex_fullrowselect);refreshlist();return true; / return true unless you set the focus to a

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論