版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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ú)立分析問題、解決問題、查閱資料以及自學(xué)能力,以適應(yīng)信息管理行業(yè)日新月異的發(fā)展形勢(shì);本次課程設(shè)計(jì)為一個(gè)學(xué)生信息管理系統(tǒng)。該系統(tǒng)通過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é)生的成
2、績(jī)等,同時(shí)還要對(duì)一些數(shù)據(jù)進(jìn)行查詢,如通過課程號(hào)查詢學(xué)生成績(jī)的集合。八心得體會(huì)1)過這次課程設(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ù)訪問技術(shù),ODBC提供了一組標(biāo)準(zhǔn)應(yīng)用程序接口,可以使用SOL語(yǔ)句實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的管理系統(tǒng)的訪問。一、設(shè)計(jì)思路:本程序運(yùn)用了MFC ODBC應(yīng)用程序設(shè)計(jì)與SQL數(shù)據(jù)
3、庫(kù),利用VC+中提供的MFC ODBC 開放數(shù)據(jù)庫(kù)連接組件進(jìn)行數(shù)據(jù)庫(kù)的訪問,利用了記錄集(RECORDSET類)進(jìn)行信息的添加( ADD ( ) ),刪除 (DEL ( ),修改 (UPDATE( ), 查詢(select()功能,并且對(duì)用戶登陸的權(quán)限進(jìn)行檢驗(yàn),并且具有錯(cuò)誤提示功能。二、設(shè)計(jì)說明與調(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)nul
4、lKid課程號(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的配置源程序說明&附加SQL Server 2005數(shù)據(jù)庫(kù)配置ODBC運(yùn)行本實(shí)例需要配置用戶DSN,在ODBC數(shù)據(jù)源管理器中配置用戶DSN連接指定的S
5、QL Server數(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ī)名(例如我的
6、是:WIN-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文件
7、夾中的兩個(gè)文件拷貝到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)鍵代碼說明1 .刪除
8、信息代碼void 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ì)話框列綁定了,就往
9、下讀取 /Sa是Sqlserver默認(rèn)管理員CDatabase database;database.OpenEx("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_UClas
10、s=""m_UPhone=""UpdateData(FALSE);catch(.)AfxMessageBox(_T("刪除失敗");2 增加信息代碼 void Student:OnAdd() /增加學(xué)生信息/ TODO: Add your control notification handler code hereUpdateData(TRUE); if(m_UAge="") /驗(yàn)證輸入消息AfxMessageBox("請(qǐng)輸入年齡"); return;if(m_UClass="&quo
11、t;)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)輸入性別"); return
12、;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;D
13、SN=wangming;UID=Sa;PWD;");database.ExecuteSQL(strSql);AfxMessageBox(_T("添加成功");m_UAge=""m_UClass=""m_UId=""m_UName=""m_UPhone=""m_USex=""catch(.)AfxMessageBox(_T("添加失敗,此學(xué)號(hào)存在");UpdateData(FALSE);3查詢信息代碼void Student:O
14、nSelect() /查詢學(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("select Sid,Sname,SSex,Sage,Sprof,Stel from xs where Sid='%s'",m_UId)/打開數(shù)據(jù)庫(kù),執(zhí)行查詢CDatabase
15、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(recordSet.IsBOF() /recordSet.MoveNext(); /elseif(recordSet
16、.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.GetFieldValue(ss,MyName);m_UName=MyName;ss+;recordSet.GetFi
17、eldValue(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 CClassInfo:OnButton3() / TODO: Add your control notification hand
18、ler 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 datab
19、ase;database.OpenEx("DSN=wangming;UID=Sa",CDatabase:openReadOnly | CDatabase:noOdbcDialog);database.ExecuteSQL(strSql);AfxMessageBox(_T("修改成功");m_Id=""m_Name=""m_Score=""UpdateData(FALSE);catch(CDBException *e)AfxMessageBox(_T("修改失敗");5單科成績(jī)
20、綜合查詢界面(多表連接)void Alli:OnOK() m_List.DeleteAllItems();/ TODO: Add extra validation heretryUpdateData(TRUE);if(m_Name="")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='
21、%s'",m_Name); /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() /AfxMessageBox("
22、;無(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+
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 酒店實(shí)習(xí)報(bào)告內(nèi)容版6篇
- 網(wǎng)絡(luò)營(yíng)銷的產(chǎn)品方案
- 護(hù)士醫(yī)德醫(yī)風(fēng)個(gè)人自我總結(jié)(30篇)
- 河北省邯鄲市大名縣2024?2025學(xué)年高二上學(xué)期10月月考 數(shù)學(xué)試卷含答案
- 公益愛心活動(dòng)策劃方案(7篇)
- DB12-T 1077-2021 黨政機(jī)關(guān)辦公用房配置管理規(guī)范
- 標(biāo)準(zhǔn)文本-青貯玉米中粗脂肪的測(cè)定
- 上海市縣(2024年-2025年小學(xué)五年級(jí)語(yǔ)文)人教版綜合練習(xí)(下學(xué)期)試卷及答案
- DB11T 1083-2014 耕地地力評(píng)價(jià)技術(shù)規(guī)程
- 規(guī)則游戲課件教學(xué)課件
- 頂管用鋼筋混凝土管標(biāo)準(zhǔn)
- (完整版)肝硬化ppt課件
- 幼師專業(yè)職業(yè)生涯規(guī)劃書PPT課件(PPT 13頁(yè))
- 一年級(jí)第一學(xué)期體育知識(shí)結(jié)構(gòu)圖(1)
- PPT模板:嚴(yán)謹(jǐn)實(shí)用國(guó)獎(jiǎng)答辯國(guó)家獎(jiǎng)學(xué)金申請(qǐng)課件
- 校園道路的施工設(shè)計(jì)方案
- 小學(xué)生個(gè)人簡(jiǎn)歷表(空表)【范本模板】
- 小學(xué)五年級(jí)下冊(cè)科學(xué)課件-4.3《火山》1人教版(28張)ppt課件
- 地表能量平衡
- 汽車燈光系統(tǒng)--ppt課件
- 配合比調(diào)整權(quán)限
評(píng)論
0/150
提交評(píng)論