![學(xué)生信息管理系統(tǒng)MFC課程設(shè)計報告_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-8/5/66376e8c-c9f2-403f-94b5-d6653bfe80f4/66376e8c-c9f2-403f-94b5-d6653bfe80f41.gif)
![學(xué)生信息管理系統(tǒng)MFC課程設(shè)計報告_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-8/5/66376e8c-c9f2-403f-94b5-d6653bfe80f4/66376e8c-c9f2-403f-94b5-d6653bfe80f42.gif)
![學(xué)生信息管理系統(tǒng)MFC課程設(shè)計報告_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-8/5/66376e8c-c9f2-403f-94b5-d6653bfe80f4/66376e8c-c9f2-403f-94b5-d6653bfe80f43.gif)
![學(xué)生信息管理系統(tǒng)MFC課程設(shè)計報告_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-8/5/66376e8c-c9f2-403f-94b5-d6653bfe80f4/66376e8c-c9f2-403f-94b5-d6653bfe80f44.gif)
![學(xué)生信息管理系統(tǒng)MFC課程設(shè)計報告_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-8/5/66376e8c-c9f2-403f-94b5-d6653bfe80f4/66376e8c-c9f2-403f-94b5-d6653bfe80f45.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、為了鞏固本學(xué)期所學(xué)的C+面向程序設(shè)計以及數(shù)據(jù)庫原理的學(xué)習(xí)。提高和加強(qiáng)學(xué)生的計算機(jī)應(yīng)用及軟件開發(fā)能力,使學(xué)生具備初級程序員的基本素質(zhì);培養(yǎng)學(xué)生獨(dú)立分析問題、解決問題、查閱資料以及自學(xué)能力,以適應(yīng)信息管理行業(yè)日新月異的發(fā)展形勢;本次課程設(shè)計為一個學(xué)生信息管理系統(tǒng)。該系統(tǒng)通過ODBC模式連接了SQL2005數(shù)據(jù)庫,數(shù)據(jù)庫包含了:一學(xué)生的基本信息表 (學(xué)號、姓名、姓名、性別、年齡、所學(xué)專業(yè)、電話)二選修課程信息表 (課程號、課程名、 學(xué)分 )三. 選課信息表 (學(xué)號、 課程號、 成績 )該系統(tǒng)還對這三個表都具有【增】、【刪】、【查】、【改】的功能,同時還設(shè)計它們之間的關(guān)系,如學(xué)生與課程關(guān)系和學(xué)生的成績
2、等,同時還要對一些數(shù)據(jù)進(jìn)行查詢,如通過課程號查詢學(xué)生成績的集合。八心得體會1)過這次課程設(shè)計,初步掌握MFC程序設(shè)計,對消息的機(jī)制有了較為深刻的認(rèn)識,對MFC中的應(yīng)用結(jié)構(gòu)類,菜單類,窗口,對話框有了理解。2)也了解了數(shù)據(jù)庫的有關(guān)知識,學(xué)會了一些常用的數(shù)據(jù)庫查詢語句,對數(shù)據(jù)庫的功能和作用也有了一定的認(rèn)識。3)合理的規(guī)劃和設(shè)計界面也是十分重要的,一個好的程序也需要便捷的操作和美觀的界面,人性化設(shè)計是需要考慮進(jìn)取的。4)了解了ODBC數(shù)據(jù)庫訪問技術(shù),ODBC提供了一組標(biāo)準(zhǔn)應(yīng)用程序接口,可以使用SOL語句實現(xiàn)對數(shù)據(jù)庫的管理系統(tǒng)的訪問。一、設(shè)計思路:本程序運(yùn)用了MFC ODBC應(yīng)用程序設(shè)計與SQL數(shù)據(jù)庫
3、,利用VC+中提供的MFC ODBC 開放數(shù)據(jù)庫連接組件進(jìn)行數(shù)據(jù)庫的訪問,利用了記錄集(RECORDSET類)進(jìn)行信息的添加( ADD ( ) ),刪除 (DEL ( ),修改 (UPDATE( ), 查詢(select()功能,并且對用戶登陸的權(quán)限進(jìn)行檢驗,并且具有錯誤提示功能。二、設(shè)計說明與調(diào)試分析A 根據(jù)設(shè)計要求分析數(shù)據(jù)的結(jié)構(gòu):數(shù)據(jù)項列表名稱注釋數(shù)據(jù)類型主要的所在表Sid學(xué)號char(6)主鍵xsSname姓名nchar(4 )not nullSsex性別nchar(3)nullSage年齡tinyintnullSprof專業(yè)nchar(20)nullStel電話char(11)null
4、Kid課程號char(3)主鍵kcKname課程名nchar(20)not nullKscore課程學(xué)分tnyintnot nullSid學(xué)號Char(6)主鍵s_kcKid課程號char(3)主鍵grade選修成績tinyintnot nullB 建立表根據(jù)設(shè)計要求分析數(shù)據(jù)的結(jié)構(gòu),利用SQL 2005創(chuàng)建一個數(shù)據(jù)庫,數(shù)據(jù)庫命名為:【wami】,創(chuàng)建3張表:xs表,kc表,xs_kc表,,如下圖: C 在表里面填好初始化數(shù)據(jù) 三ODBC的配置源程序說明&附加SQL Server 2005數(shù)據(jù)庫配置ODBC運(yùn)行本實例需要配置用戶DSN,在ODBC數(shù)據(jù)源管理器中配置用戶DSN連接指定的SQL Se
5、rver數(shù)據(jù)庫。關(guān)鍵操作步驟如下:(1)單擊“開始”按鈕,選擇“程序”“管理工具”“數(shù)據(jù)源(ODBC)”命令,打開“ODBC數(shù)據(jù)源管理器”對話框,打開“用戶DSN”選項卡。(2)單擊“添加”按鈕,打開“創(chuàng)建新數(shù)據(jù)源”對話框,選擇安裝數(shù)據(jù)源的驅(qū)動程序,這里選擇“SQL Server”。(3)單擊“完成”按鈕,打開“創(chuàng)建到SQL Server的新數(shù)據(jù)源”對話框,在“名稱”文本框中設(shè)置數(shù)據(jù)源名稱為“wangming”(即程序里面的DSN),在“描述”文本框設(shè)置數(shù)據(jù)源描述為“配置SQL Server數(shù)據(jù)庫DSN”,在“服務(wù)器”下拉列表框中選擇連接的數(shù)據(jù)庫所在服務(wù)器為“自己的計算機(jī)名(例如我的是:WIN
6、-PHT03USEDJ9SQLEXPRESS)”。(4)單擊“下一步”按鈕,選擇“使用網(wǎng)絡(luò)登錄ID的Windows NT驗證”單選框,其他默認(rèn)(5)單擊“下一步”按鈕,選擇“更改默認(rèn)的數(shù)據(jù)庫為”復(fù)選框,并在其下拉列表框中選擇連接的數(shù)據(jù)庫名稱,這里選擇“student”【數(shù)據(jù)庫的名字】,單擊“下一步”按鈕。(6)單擊“完成”按鈕,打開“ODBC Microsoft SQL Server安裝”對話框,顯示新創(chuàng)建的ODBC數(shù)據(jù)源配置信息。(7)單擊“測試數(shù)據(jù)源”按鈕測試數(shù)據(jù)庫連接是否成功,如果測試成功,單擊“確定”按鈕,完成數(shù)據(jù)源配置。否則將無法使用!附加數(shù)據(jù)庫(1)將database文件夾中的兩個
7、文件拷貝到SQL Server 2005安裝路徑下的Data文件夾中。(2)打開SQL Server 2005中的“企業(yè)管理器”,然后展開本地服務(wù)器,在“數(shù)據(jù)庫”數(shù)據(jù)項上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“所有任務(wù)”/“附加數(shù)據(jù)庫”菜單項。(3)將彈出“附加數(shù)據(jù)庫”對話框,在該對話框中單擊“”按鈕,選擇所要附加數(shù)據(jù)庫的.mdf文件,單擊“確定”按鈕,即可完成數(shù)據(jù)庫的附加操作。四整個系統(tǒng)運(yùn)行結(jié)構(gòu)以及主界面如下所示:1.登錄界面(ID:admin Psw:123)2.菜單界面3.學(xué)生基本信息界面4.課程基本信息界面5選修課程成績界面6.課程號綜合查詢成績界面五部分關(guān)鍵代碼說明1 .刪除信息代碼v
8、oid Student:OnDel() /刪除記錄tryUpdateData(TRUE);if(m_UId=)AfxMessageBox(請輸入學(xué)號);return;CString strSql;strSql.Format(delete xs where Sid=%s,m_UId);/打開數(shù)據(jù)庫,執(zhí)行查詢/ DNS指ODBC配置的數(shù)據(jù)源名稱/ CDatabase:openReadOnly | CDatabase:noOdbcDialog:設(shè)置數(shù)據(jù)庫讀取狀態(tài) 當(dāng)連上了,數(shù)據(jù)與對話框列綁定了,就往下讀取 /Sa是Sqlserver默認(rèn)管理員CDatabase database;database.O
9、penEx(DSN=wangming;UID=Sa,CDatabase:openReadOnly | CDatabase:noOdbcDialog); database.ExecuteSQL(strSql);/ 執(zhí)行SQL語句, 不返回值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=) /驗證輸入消息AfxMessageBox(請輸入年齡); return;if(m_UClass=)AfxMessageBox(請輸入專業(yè)); return;if(m_UId=)AfxMessageBox(請輸入學(xué)號); return;if(m_UName=)AfxMessageBox(請輸入姓名); return;if(m_UPhone=)AfxMessageBox(請輸入電話); return;if(m_Sex=)AfxMessageBox(請輸入性別); 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ù)庫,執(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é)號存在);UpdateData(FALSE);3查詢信息代碼void Student:OnSelect() /查詢學(xué)生信息/ TODO: Add your control notification handler code heretryUpdateData(TRUE);if(m_UId=) /驗證輸入消息AfxMessageBox(請輸入學(xué)號); return;CString strSql;strSql.Format(sel
13、ect Sid,Sname,SSex,Sage,Sprof,Stel from xs where Sid=%s,m_UId)/打開數(shù)據(jù)庫,執(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=) /驗證消息AfxMessageBox(請輸入課程號);return;UpdateData(TRUE); /CString strSql;strSql.Format(update kc set Kname=+m_Name+,Kscore=+m_Score+ where Kid=+m_Id+);/打開數(shù)據(jù)庫,執(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單科成績綜合查詢界面(多表連接)void Alli:OnOK() m_List.DeleteAllItems();/ TODO: Add extra validation heretryUpdateData(TRUE);if(m_Na
18、me=)AfxMessageBox(請輸入課程號);return;/打開數(shù)據(jù)庫,執(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(無此學(xué)號信息);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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年表面改性材料合作協(xié)議書
- 2025年智能食品營養(yǎng)秤合作協(xié)議書
- 八年級英語下冊 Unit 6 單元綜合測試卷(人教版 2025年春)
- SPM93-MODBUS串行通信協(xié)議-V1.0
- 2025年產(chǎn)權(quán)委托交易協(xié)議標(biāo)準(zhǔn)范文(2篇)
- 2025年二年級數(shù)學(xué)教學(xué)工作總結(jié)第一學(xué)期模版(二篇)
- 2025年個人無息的借款合同(三篇)
- 2025年個人房屋租房合同協(xié)議(三篇)
- 2025年個人車抵押借款合同常用版(2篇)
- 2025年五年級丑小鴨閱讀心得樣本(2篇)
- 青島版小學(xué)數(shù)學(xué)三年級上冊《分?jǐn)?shù)的初步認(rèn)識》教學(xué)案例
- 2024PowerTitan系列運(yùn)維指導(dǎo)儲能系統(tǒng)運(yùn)維指導(dǎo)
- 沸石轉(zhuǎn)輪知識講解
- 固定資產(chǎn)盤點(diǎn)報告醫(yī)院版
- 中國內(nèi)部審計準(zhǔn)則及指南
- 銀行個人業(yè)務(wù)培訓(xùn)課件
- 2024年ISTQB認(rèn)證筆試歷年真題薈萃含答案
- tpu顆粒生產(chǎn)工藝
- 《體檢中心培訓(xùn)》課件
- 腫瘤患者全程管理
- 初中數(shù)學(xué)深度學(xué)習(xí)與核心素養(yǎng)探討
評論
0/150
提交評論