學(xué)生信息管理系統(tǒng)MFC課程設(shè)計(jì)報(bào)告_第1頁(yè)
學(xué)生信息管理系統(tǒng)MFC課程設(shè)計(jì)報(bào)告_第2頁(yè)
學(xué)生信息管理系統(tǒng)MFC課程設(shè)計(jì)報(bào)告_第3頁(yè)
學(xué)生信息管理系統(tǒng)MFC課程設(shè)計(jì)報(bào)告_第4頁(yè)
學(xué)生信息管理系統(tǒng)MFC課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩13頁(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、為了鞏固本學(xué)期所學(xué)的C+面向程序設(shè)計(jì)以及數(shù)據(jù)庫(kù)原理的學(xué)習(xí)。提高和加強(qiáng)學(xué)生的計(jì)算機(jī)應(yīng)用及軟件開發(fā)能力,使學(xué)生具備初級(jí)程序員的基本素質(zhì);培養(yǎng)學(xué)生獨(dú)立分析問(wèn)題、解決問(wèn)題、查閱資料以及自學(xué)能力,以適應(yīng)信息管理行業(yè)日新月異的發(fā)展形勢(shì);本次課程設(shè)計(jì)為一個(gè)學(xué)生信息管理系統(tǒng)。該系統(tǒng)通過(guò)ODBC模式連接了SQL2005數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)包含了:一學(xué)生的基本信息表 (學(xué)號(hào)、姓名、姓名、性別、年齡、所學(xué)專業(yè)、電話)二選修課程信息表 (課程號(hào)、課程名、 學(xué)分 )三. 選課信息表 (學(xué)號(hào)、 課程號(hào)、 成績(jī) )該系統(tǒng)還對(duì)這三個(gè)表都具有【增】、【刪】、【查】、【改】的功能,同時(shí)還設(shè)計(jì)它們之間的關(guān)系,如學(xué)生與課程關(guān)系和學(xué)生的成績(jī)

2、等,同時(shí)還要對(duì)一些數(shù)據(jù)進(jìn)行查詢,如通過(guò)課程號(hào)查詢學(xué)生成績(jī)的集合。八心得體會(huì)1)過(guò)這次課程設(shè)計(jì),初步掌握MFC程序設(shè)計(jì),對(duì)消息的機(jī)制有了較為深刻的認(rèn)識(shí),對(duì)MFC中的應(yīng)用結(jié)構(gòu)類,菜單類,窗口,對(duì)話框有了理解。2)也了解了數(shù)據(jù)庫(kù)的有關(guān)知識(shí),學(xué)會(huì)了一些常用的數(shù)據(jù)庫(kù)查詢語(yǔ)句,對(duì)數(shù)據(jù)庫(kù)的功能和作用也有了一定的認(rèn)識(shí)。3)合理的規(guī)劃和設(shè)計(jì)界面也是十分重要的,一個(gè)好的程序也需要便捷的操作和美觀的界面,人性化設(shè)計(jì)是需要考慮進(jìn)取的。4)了解了ODBC數(shù)據(jù)庫(kù)訪問(wèn)技術(shù),ODBC提供了一組標(biāo)準(zhǔn)應(yīng)用程序接口,可以使用SOL語(yǔ)句實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的管理系統(tǒng)的訪問(wèn)。一、設(shè)計(jì)思路:本程序運(yùn)用了MFC ODBC應(yīng)用程序設(shè)計(jì)與SQL數(shù)據(jù)庫(kù)

3、,利用VC+中提供的MFC ODBC 開放數(shù)據(jù)庫(kù)連接組件進(jìn)行數(shù)據(jù)庫(kù)的訪問(wèn),利用了記錄集(RECORDSET類)進(jìn)行信息的添加( ADD ( ) ),刪除 (DEL ( ),修改 (UPDATE( ), 查詢(select()功能,并且對(duì)用戶登陸的權(quán)限進(jìn)行檢驗(yàn),并且具有錯(cuò)誤提示功能。二、設(shè)計(jì)說(shuō)明與調(diào)試分析A 根據(jù)設(shè)計(jì)要求分析數(shù)據(jù)的結(jié)構(gòu):數(shù)據(jù)項(xiàng)列表名稱注釋數(shù)據(jù)類型主要的所在表Sid學(xué)號(hào)char(6)主鍵xsSname姓名nchar(4 )not nullSsex性別nchar(3)nullSage年齡tinyintnullSprof專業(yè)nchar(20)nullStel電話char(11)null

4、Kid課程號(hào)char(3)主鍵kcKname課程名nchar(20)not nullKscore課程學(xué)分tnyintnot nullSid學(xué)號(hào)Char(6)主鍵s_kcKid課程號(hào)char(3)主鍵grade選修成績(jī)tinyintnot nullB 建立表根據(jù)設(shè)計(jì)要求分析數(shù)據(jù)的結(jié)構(gòu),利用SQL 2005創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)命名為:【wami】,創(chuàng)建3張表:xs表,kc表,xs_kc表,,如下圖: C 在表里面填好初始化數(shù)據(jù) 三ODBC的配置源程序說(shuō)明&附加SQL Server 2005數(shù)據(jù)庫(kù)配置ODBC運(yùn)行本實(shí)例需要配置用戶DSN,在ODBC數(shù)據(jù)源管理器中配置用戶DSN連接指定的SQL Se

5、rver數(shù)據(jù)庫(kù)。關(guān)鍵操作步驟如下:(1)單擊“開始”按鈕,選擇“程序”“管理工具”“數(shù)據(jù)源(ODBC)”命令,打開“ODBC數(shù)據(jù)源管理器”對(duì)話框,打開“用戶DSN”選項(xiàng)卡。(2)單擊“添加”按鈕,打開“創(chuàng)建新數(shù)據(jù)源”對(duì)話框,選擇安裝數(shù)據(jù)源的驅(qū)動(dòng)程序,這里選擇“SQL Server”。(3)單擊“完成”按鈕,打開“創(chuàng)建到SQL Server的新數(shù)據(jù)源”對(duì)話框,在“名稱”文本框中設(shè)置數(shù)據(jù)源名稱為“wangming”(即程序里面的DSN),在“描述”文本框設(shè)置數(shù)據(jù)源描述為“配置SQL Server數(shù)據(jù)庫(kù)DSN”,在“服務(wù)器”下拉列表框中選擇連接的數(shù)據(jù)庫(kù)所在服務(wù)器為“自己的計(jì)算機(jī)名(例如我的是:WIN

6、-PHT03USEDJ9SQLEXPRESS)”。(4)單擊“下一步”按鈕,選擇“使用網(wǎng)絡(luò)登錄ID的Windows NT驗(yàn)證”單選框,其他默認(rèn)(5)單擊“下一步”按鈕,選擇“更改默認(rèn)的數(shù)據(jù)庫(kù)為”復(fù)選框,并在其下拉列表框中選擇連接的數(shù)據(jù)庫(kù)名稱,這里選擇“student”【數(shù)據(jù)庫(kù)的名字】,單擊“下一步”按鈕。(6)單擊“完成”按鈕,打開“ODBC Microsoft SQL Server安裝”對(duì)話框,顯示新創(chuàng)建的ODBC數(shù)據(jù)源配置信息。(7)單擊“測(cè)試數(shù)據(jù)源”按鈕測(cè)試數(shù)據(jù)庫(kù)連接是否成功,如果測(cè)試成功,單擊“確定”按鈕,完成數(shù)據(jù)源配置。否則將無(wú)法使用!附加數(shù)據(jù)庫(kù)(1)將database文件夾中的兩個(gè)

7、文件拷貝到SQL Server 2005安裝路徑下的Data文件夾中。(2)打開SQL Server 2005中的“企業(yè)管理器”,然后展開本地服務(wù)器,在“數(shù)據(jù)庫(kù)”數(shù)據(jù)項(xiàng)上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“所有任務(wù)”/“附加數(shù)據(jù)庫(kù)”菜單項(xiàng)。(3)將彈出“附加數(shù)據(jù)庫(kù)”對(duì)話框,在該對(duì)話框中單擊“”按鈕,選擇所要附加數(shù)據(jù)庫(kù)的.mdf文件,單擊“確定”按鈕,即可完成數(shù)據(jù)庫(kù)的附加操作。四整個(gè)系統(tǒng)運(yùn)行結(jié)構(gòu)以及主界面如下所示:1.登錄界面(ID:admin Psw:123)2.菜單界面3.學(xué)生基本信息界面4.課程基本信息界面5選修課程成績(jī)界面6.課程號(hào)綜合查詢成績(jī)界面五部分關(guān)鍵代碼說(shuō)明1 .刪除信息代碼v

8、oid Student:OnDel() /刪除記錄tryUpdateData(TRUE);if(m_UId=)AfxMessageBox(請(qǐng)輸入學(xué)號(hào));return;CString strSql;strSql.Format(delete xs where Sid=%s,m_UId);/打開數(shù)據(jù)庫(kù),執(zhí)行查詢/ DNS指ODBC配置的數(shù)據(jù)源名稱/ CDatabase:openReadOnly | CDatabase:noOdbcDialog:設(shè)置數(shù)據(jù)庫(kù)讀取狀態(tài) 當(dāng)連上了,數(shù)據(jù)與對(duì)話框列綁定了,就往下讀取 /Sa是Sqlserver默認(rèn)管理員CDatabase database;database.O

9、penEx(DSN=wangming;UID=Sa,CDatabase:openReadOnly | CDatabase:noOdbcDialog); database.ExecuteSQL(strSql);/ 執(zhí)行SQL語(yǔ)句, 不返回值A(chǔ)fxMessageBox(_T(刪除成功);m_UId=;m_UName=;m_USex=;m_UAge=;m_UClass=;m_UPhone=;UpdateData(FALSE);catch(.)AfxMessageBox(_T(刪除失敗);2 增加信息代碼 void Student:OnAdd() /增加學(xué)生信息/ TODO: Add your con

10、trol notification handler code hereUpdateData(TRUE); if(m_UAge=) /驗(yàn)證輸入消息AfxMessageBox(請(qǐng)輸入年齡); return;if(m_UClass=)AfxMessageBox(請(qǐng)輸入專業(yè)); return;if(m_UId=)AfxMessageBox(請(qǐng)輸入學(xué)號(hào)); return;if(m_UName=)AfxMessageBox(請(qǐng)輸入姓名); return;if(m_UPhone=)AfxMessageBox(請(qǐng)輸入電話); return;if(m_Sex=)AfxMessageBox(請(qǐng)輸入性別); ret

11、urn;tryCString strSql; strSql.Format(insert into xs (Sid,Sname,SSex,Sage,Sprof,Stel) values (%s,%s,%s,%s,%s,%s),m_UId,m_UName,m_Sex,m_UAge,m_UClass,m_UPhone);/打開數(shù)據(jù)庫(kù),執(zhí)行查詢CDatabase database;database.Open(NULL,FALSE,FALSE,ODBC;DSN=wangming;UID=Sa;PWD;);database.ExecuteSQL(strSql);AfxMessageBox(_T(添加成功)

12、;m_UAge=;m_UClass=;m_UId=;m_UName=;m_UPhone=;m_USex=;catch(.)AfxMessageBox(_T(添加失敗,此學(xué)號(hào)存在);UpdateData(FALSE);3查詢信息代碼void Student:OnSelect() /查詢學(xué)生信息/ TODO: Add your control notification handler code heretryUpdateData(TRUE);if(m_UId=) /驗(yàn)證輸入消息AfxMessageBox(請(qǐng)輸入學(xué)號(hào)); return;CString strSql;strSql.Format(sel

13、ect Sid,Sname,SSex,Sage,Sprof,Stel from xs where Sid=%s,m_UId)/打開數(shù)據(jù)庫(kù),執(zhí)行查詢CDatabase database;database.OpenEx(DSN=wangming;UID=Sa,CDatabase:openReadOnly | CDatabase:noOdbcDialog);CRecordset recordSet(&database);recordSet.Open(CRecordset:snapshot,strSql);/提取結(jié)果集if(recordSet.IsEOF()&recordSet.IsBOF() if(

14、recordSet.IsBOF() /recordSet.MoveNext(); /elseif(recordSet.IsEOF() / recordSet.MovePrev(); /CString MyId;CString MyName;CString MySex;CString MyAge;CString MyClass;CString Myphone;short ss=0;recordSet.MoveFirst(); /while(!recordSet.IsEOF() /recordSet.GetFieldValue(ss,MyId);m_UId=MyId;ss+;recordSet.G

15、etFieldValue(ss,MyName);m_UName=MyName;ss+;recordSet.GetFieldValue(ss,MySex);m_Sex=MySex;ss+;recordSet.GetFieldValue(ss,MyAge);m_UAge=MyAge;ss+;recordSet.GetFieldValue(ss,MyClass);m_UClass=MyClass;ss+;recordSet.GetFieldValue(ss,Myphone);m_UPhone=Myphone;UpdateData(FALSE);catch(.)4.修改信息代碼void CClassI

16、nfo:OnButton3() / TODO: Add your control notification handler code heretryif(m_Id=) /驗(yàn)證消息AfxMessageBox(請(qǐng)輸入課程號(hào));return;UpdateData(TRUE); /CString strSql;strSql.Format(update kc set Kname=+m_Name+,Kscore=+m_Score+ where Kid=+m_Id+);/打開數(shù)據(jù)庫(kù),執(zhí)行查詢CDatabase database;database.OpenEx(DSN=wangming;UID=Sa,CDat

17、abase:openReadOnly | CDatabase:noOdbcDialog);database.ExecuteSQL(strSql);AfxMessageBox(_T(修改成功);m_Id=;m_Name=;m_Score=;UpdateData(FALSE);catch(CDBException *e)AfxMessageBox(_T(修改失敗);5單科成績(jī)綜合查詢界面(多表連接)void Alli:OnOK() m_List.DeleteAllItems();/ TODO: Add extra validation heretryUpdateData(TRUE);if(m_Na

18、me=)AfxMessageBox(請(qǐng)輸入課程號(hào));return;/打開數(shù)據(jù)庫(kù),執(zhí)行查詢CString strSql; /strSql.Format(select Kid,Kname,Kscore,Sid,Sprof,Sname,SSex,Sage,grade from View1 where Kid=%s,m_Name); /CDatabase database; /database.OpenEx(DSN=wangming;UID=Sa,CDatabase:openReadOnly | CDatabase:noOdbcDialog); /CRecordset recordSet(&datab

19、ase); /recordSet.Open(CRecordset:snapshot,strSql); /結(jié)果集指針if(recordSet.IsEOF()&recordSet.IsBOF() /AfxMessageBox(無(wú)此學(xué)號(hào)信息);if(recordSet.IsBOF()recordSet.MoveNext();CString Sid; /CString Kid;CString Kname;CString Kscore;CString Sname;CString SSex;CString Sage;CString grade;CString Sclass;int i=0;short ss=0;recordSet.MoveFirst();/讀取結(jié)果集while(!recordSet.IsEOF()recordSet.GetFieldValue(ss,Kid);ss+; /獲取結(jié)果集的值 ,獲取ss列的值,存放在KId recordSet.GetFieldValue(ss,Kname);ss+;recordSet.GetFieldValue(ss,Kscore);ss+;recordSet.GetFieldValue(ss,Sid);ss+;recordSet.GetFiel

溫馨提示

  • 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)論