學生信息管理系統(tǒng)MFC課程設計報告_第1頁
學生信息管理系統(tǒng)MFC課程設計報告_第2頁
學生信息管理系統(tǒng)MFC課程設計報告_第3頁
學生信息管理系統(tǒng)MFC課程設計報告_第4頁
學生信息管理系統(tǒng)MFC課程設計報告_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、為了鞏固本學期所學的C+面向程序設計以及數據庫原理的學習。提高和加強學生的計算機應用及軟件開發(fā)能力,使學生具備初級程序員的基本素質;培養(yǎng)學生獨立分析問題、解決問題、查閱資料以及自學能力,以適應信息管理行業(yè)日新月異的發(fā)展形勢;本次課程設計為一個學生信息管理系統(tǒng)。該系統(tǒng)通過ODBC模式連接了SQL2005數據庫,數據庫包含了:一學生的基本信息表 (學號、姓名、姓名、性別、年齡、所學專業(yè)、電話)二選修課程信息表 (課程號、課程名、 學分 )三. 選課信息表 (學號、 課程號、 成績 )該系統(tǒng)還對這三個表都具有【增】、【刪】、【查】、【改】的功能,同時還設計它們之間的關系,如學生與課程關系和學生的成績

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

3、,利用VC+中提供的MFC ODBC 開放數據庫連接組件進行數據庫的訪問,利用了記錄集(RECORDSET類)進行信息的添加( ADD ( ) ),刪除 (DEL ( ),修改 (UPDATE( ), 查詢(select()功能,并且對用戶登陸的權限進行檢驗,并且具有錯誤提示功能。二、設計說明與調試分析A 根據設計要求分析數據的結構:數據項列表名稱注釋數據類型主要的所在表Sid學號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課程學分tnyintnot nullSid學號Char(6)主鍵s_kcKid課程號char(3)主鍵grade選修成績tinyintnot nullB 建立表根據設計要求分析數據的結構,利用SQL 2005創(chuàng)建一個數據庫,數據庫命名為:【wami】,創(chuàng)建3張表:xs表,kc表,xs_kc表,,如下圖: C 在表里面填好初始化數據 三ODBC的配置源程序說明&附加SQL Server 2005數據庫配置ODBC運行本實例需要配置用戶DSN,在ODBC數據源管理器中配置用戶DSN連接指定的SQL Se

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

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

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

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

9、penEx(DSN=wangming;UID=Sa,CDatabase:openReadOnly | CDatabase:noOdbcDialog); database.ExecuteSQL(strSql);/ 執(zhí)行SQL語句, 不返回值AfxMessageBox(_T(刪除成功);m_UId=;m_UName=;m_USex=;m_UAge=;m_UClass=;m_UPhone=;UpdateData(FALSE);catch(.)AfxMessageBox(_T(刪除失敗);2 增加信息代碼 void Student:OnAdd() /增加學生信息/ 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(請輸入學號); 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);/打開數據庫,執(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(添加失敗,此學號存在);UpdateData(FALSE);3查詢信息代碼void Student:OnSelect() /查詢學生信息/ TODO: Add your control notification handler code heretryUpdateData(TRUE);if(m_UId=) /驗證輸入消息AfxMessageBox(請輸入學號); return;CString strSql;strSql.Format(sel

13、ect Sid,Sname,SSex,Sage,Sprof,Stel from xs where Sid=%s,m_UId)/打開數據庫,執(zhí)行查詢CDatabase database;database.OpenEx(DSN=wangming;UID=Sa,CDatabase:openReadOnly | CDatabase:noOdbcDialog);CRecordset recordSet(&database);recordSet.Open(CRecordset:snapshot,strSql);/提取結果集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+);/打開數據庫,執(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;/打開數據庫,執(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); /結果集指針if(recordSet.IsEOF()&recordSet.IsBOF() /AfxMessageBox(無此學號信息);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();/讀取結果集while(!recordSet.IsEOF()recordSet.GetFieldValue(ss,Kid);ss+; /獲取結果集的值 ,獲取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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論