




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、項目 名稱設計開始日期2012 0820項目完成日期2012-08-24文檔評審主要考核內容評審項目評審內容項目名稱課題是否從實際出發,是否滿足工作量需求,是否具有創意等文檔格式文檔格式是否規范;文字是否規范;圖表是否規范;術語是否準確等文檔質量程序設計思想與整體框架是否清晰等程序功能完備性評審主要內容評審項目評審內容程序運行 狀況程序是否能正常運行;是否出現死鎖;是否遇到錯誤而中止運行程序正確性對于給定的輸入數據,是否能得到正確的輸出結果程序與文 檔的一致 性程序與各種文檔的內容是否一致程序的代 碼量程序代碼量的大小實現方法圖形界面或命令行界面,美觀程度程序功能程序的功能是否完備答辯評審內容
2、評審項目評審內容答辯思路答辯思路是否清晰回答問題回答問題是否正確考勤評定成績考勤成績課程設計是否按照要求在機房完成課程設計總成績課程設計題目:學生信息管理系統問題闡述與分析:設計背景:隨著學校的發展,需要對越來越多的學生信息進行處理,依靠傳統的處理 方式已經滿足不了要求,所以可以通過編一個學生信息管理系統,使學生的信 息能夠集中管理,由于這個數據量比較大,而對于大量數據的處理,采用數據 庫更為安全簡便。在此,可以通過學生信息管理系統這個項目來學習數據庫的 使用和注意事項。對于學生信息管理系統這個項目,需要處理學生的基本信息, 姓名,學號,年齡,性別,宿舍,聯系方式等。設計實現意義有利于學生的管
3、理便利所要解決的主要問題幫助老師、同學們更方便快捷的查詢學生的信息應用范圍本系統適用于理論研究。即用來對平臺功能的增減,修改及相關算法優化 等做研究.工作量:我在學習VC+的MFC編程,數據庫的相關知識,同時進行下面的工 作,擬定課程設計的主要方向一學生信息管理系統;明確所做系統的主要需要解決的問題,根據問題分析系統所要實現的主要功能,根據功能設計出不同的模塊登陸模塊,注冊模塊,維護模塊。設計系統的登錄及各個主要功能的界面外觀;以各個界面所要實現的功能為以依據,為各個部分編寫代碼并匹配數據庫;登陸模塊,能進行登錄,并且輸入錯誤時,有提示信息注冊模塊,可進行用戶的注冊維護模塊,能進增加,刪除,修
4、改等動作調試程序,修改程序中出現的錯誤,并在功能,外觀方面對程序進行完善,使程序實用性更強;完成工程。工作計劃安排:2012年8月20日-8月20日:進行系統分析,確定各模塊及具體實現方案.2011年8月20日8月21日:進行系統的分析,確定各部分需要完成的主要功能,確定具體實現方案, 并學習相關知識,確定使用VC+6.0。2011年8月21日8月22日:根據分析和設計,開始系統的實現,進行代碼的編寫。2011年8月22日8月23日各模塊合并,調試運行。2011年9月23日8月24日:系統完善,撰寫報告目錄 TOC o 1-5 h z HYPERLINK l bookmark2 o Curre
5、nt Document 1緒論1 HYPERLINK l bookmark4 o Current Document 1。1項目簡介11.2設計目的11。3設計內容1 HYPERLINK l bookmark8 o Current Document 2需求分析1 HYPERLINK l bookmark10 o Current Document 2。1數據需求1 HYPERLINK l bookmark12 o Current Document 2.2事務需求1 HYPERLINK l bookmark14 o Current Document 3概要設計2 HYPERLINK l bookma
6、rk16 o Current Document 3.1系統的大致流程圖24詳細設計24.1系統的流程圖24.2整體邏輯數據庫結構24。3涉及算法的思想2 HYPERLINK l bookmark18 o Current Document 5用戶使用說明3 HYPERLINK l bookmark20 o Current Document 5。1開發運行環境3 HYPERLINK l bookmark22 o Current Document 5。2數據庫的名稱及內容3 HYPERLINK l bookmark24 o Current Document 6關鍵源程序4 HYPERLINK l b
7、ookmark26 o Current Document 6。1建立工程46.2模塊146.3模塊276.5模塊49 HYPERLINK l bookmark34 o Current Document 7測試結果及運行界面14 HYPERLINK l bookmark36 o Current Document 8總結14 HYPERLINK l bookmark38 o Current Document 8.1系統實現程度14 HYPERLINK l bookmark40 o Current Document 8.2問題及難點14 HYPERLINK l bookmark42 o Curren
8、t Document 8.3收獲與體會15 HYPERLINK l bookmark44 o Current Document 參考文獻151 緒論1.1 項目簡介本系統主要實現學生信息管理功能,為老師與同學提供一個可以快速查找信 息的平臺.1。2 設計目的 方便老師與同學查看學生信息,提高學生信息管理的效率,節省時間,從而實 現學校工作的邊界管理。1.3 設計內容主要包括:用戶的登陸于注冊,對學生信息的增加刪除修改.2 需求分析2。1 數據需求系統需要處理哪些數據 總體分為用戶輸入的數據和從數據庫中獲得的數據。主要數據類型包括:CString類型數據、double類型數據、int類型數據和C
9、Time類型數據.2。2 事務需求用戶:登陸、注冊,對數據的增刪改3 3 概要設計3。1 系統的大致流程圖4.1注冊模塊顯示信息4.1注冊模塊顯示信息4。3。2數據錄入在新建學生信息數據庫中錄入學生信息。4。3。3登錄框的設計4.3。3。1建立變量Sname, Spsw,通過格式變幻,將CString格式轉換 成數據庫規定的格式4.3。3。2通過compare函數將輸入的用戶名與密碼與數據庫比較4.3.4注冊框的設計先判定輸入框里的名字在數據庫里不存在,然后將輸入的信息替換入數據 庫4。3。5添加記錄4。3。5。1建立一個新的窗口,包含姓名,學號,年齡等基本信息錄入 框4。3.5。2用戶錄入要
10、添加記錄信息,如果要添加記錄和已有記錄不沖 突就會把錄入信息添加到新建Microsoft Office Access應用程序記 錄集中。4.3。6修改記錄對已經錄入的學生信息進行修改4。3.7刪除記錄將已選中的記錄從記錄集中去除。用戶使用說明5。1 開發運行環境5.1.1設備:本系統對設備的要求很低,一般的電腦主機都能運行。運行前安裝Visual C 6。0。5。1.2支持軟件:系統支持:Windows 7 等。開發工具:Visual C+ 6。0、Access 2010。5。2 數據庫的名稱及內容本系統包含兩個數據庫,Data和Database數據庫,Database數據庫中儲 存的是用戶名
11、與密碼,Data數據庫中儲存的是學生的學號、姓名、年齡、聯 系方式、宿舍。Data (學生通訊表)字段名稱中文含義數據類型寬度Num學號文本20Name姓名文本20Age年齡數字3Home宿舍文本20Phone聯系電話文本20Database (管理登錄表)字段名稱中文含義數據類型寬度Logname用戶名文本20Logpsw用戶密碼文本20關鍵源程序6。1 建立工程6.2模塊 1先在學生信息管理系統。cpp中添加代碼,通過ADO創建登陸數據庫 / 學生信息管理系統.cpp : Defines the class behaviors for the application. include st
12、dafx.hinclude 學生信息管理系統。 h”include 學生信息管理系統 Dlg.h”#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;endif / CMyAppBEGIN_MESSAGE_MAP(CMyApp, CWinApp)/ AFX_MSG_MAP (CMyApp)/ NOTE the ClassWizard will add and remove mapping macros here. / DO NOT EDIT what you see in these
13、blocks of generated code!/ AFX_MSGON_COMMAND(ID_HELP, CWinApp:OnHelp) END_MESSAGE_MAP()/ CMyApp constructionCMyApp:CMyApp()/ TODO: add construction code here,/ Place all significant initialization in InitInstance/ The one and only CMyApp objectCMyApp theApp;CDaoDatabase db; 建立全局變量,在其他地方調用時要加extern/
14、CMyApp initializationBOOL CMyApp::InitInstance()AfxEnableControlContainer();/ Standard initialization/ If you are not using these features and wish to reduce the size/ of your final executable, you should remove from the following/ the specific initialization routines you do not need.ifdef _AFXDLLEn
15、able3dControls();/ Call this when using MFC in a sharedDLLelseEnable3dControlsStatic();/ Call this when linking to MFC staticallyendif/這里就是程序入口,在這里添加數據庫檢查代碼CString Filepath=Database.mdb”;CDaoRecordset Dbset(db);CFileFind Ffind; /先看看存不存在數據庫文件BOOL flag=Ffind。FindFile (Filepath);Ffind。 Close();if(!flag
16、) /如果沒有就創建CString sqlcmd=CREATE TABLE DataTable(Name VARCHAR(20),Psw VARCHAR( 20) )”;db.Create(Filepath);db.Execute(sqlcmd);Dbset。 Open(AFX_DAO_USE_DEFAULT_TYPE, ”SELECT * FROM DataTable, 0);Dbset。 AddNew() ;Dbset。 SetFieldValue( ”Name,_variant_t( ”wzh) ;Dbset.SetFieldValue( Psw”,_variant_t(”123456”
17、);Dbset。Update。;Dbset。 Close();db。Close();/建立數據庫文件,設置初始化賬號CMyDlg dlg; m_pMainWnd = dlg; int nResponse = dlg。 DoModal(); if (nResponse = IDOK)/ TODO: Place code here to handle when the dialog is/ dismissed with OKelse if (nResponse = IDCANCEL)/ TODO: Place code here to handle when the dialog is/ dism
18、issed with Cancel/ Since the dialog has been closed, return FALSE so that we exit the/ application, rather than start the applications message pump. return FALSE;void CMyDlg::OnPaint()if (IsIconic()CPaintDC dc(this); / device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc GetSafeHdc(
19、), 0);/ Center icon in client rectangleint cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect。 Width() cxIcon + 1) / 2;int y = (rect。 Height() cyIcon + 1) / 2;/ Draw the icondc。DrawIcon(x, y, m_hIcon);else/ 給窗體添加背景CPaintDC dc(t
20、his);CRect rc;GetClientRect(&rc);CDC dcMem; dcMem.CreateCompatibleDC(&dc); CBitmap bmpBackground;bmpBackground。LoadBitmap (IDB_BITMAP1 ); BITMAP bitmap;bmpBackground.GetBitmap(bitmap); /取得 bmpBackground 中圖片 的信息,放在 bitmap 所指的指針中CBitmap pbmpPri = dcMem。 SelectObject(bmpBackground) ; dc.StretchBlt( 0,0
21、,rc.Width(), rc。 Height( ), &dcMem,0,0,bitmap。 bmWidth, bitmap。 bmHeight, SRCCOPY) ;/CDialog::OnPaint( );進入系統void CMyDlg:OnButton1 ( )DIALOGLOG tec; tec.DoModal() ;退出系統void CMyDlg:OnButton2()f (IDYES=MessageBox (” 確定退出?”,退出程序”, MB_ICONQUESTION I MB_YESNO )DestroyWindow( );6。3 模塊 2登陸extern CDaoDataba
22、se db;調用那個全局變量void DIALOGLOG::Onlogbt()/判斷輸入筐里的內容和數據庫里的內容是否吻合 UpdateData(true) ;CDaoRecordset Dbset(db); CString Filepath=Database。 mdb”;CString Sname,Spsw; _variant_t varname, varpsw; db.Open( Filepath);Dbset。 Open(AFX_DAO_USE_DEFAULT_TYPE, SELECT FROM DataTable”,0) ;varname=Dbset。 GetFieldValue(”N
23、ame”) ; varpsw=Dbset.GetFieldValue(”Psw);Sname=(LPCSTR)_bstr_t(varname); Spsw=(LPCSTR)_bstr_t(varpsw);Dbset.Close();db。Close();if(m_logname。IsEmpty()ll m_logpsw。IsEmpty () 如果輸入框中存 在空輸入MessageBox(信息不能為空!”); return;if( Sname。 Compare( m_logname)=0&Spsw.Compare( m_logpsw)=0)/如果密碼和用戶與數據庫一致 MessageBox(登入
24、成功!”,”溫情提示);DIALOG3 dlg;dlg。 DoModal() ;else MessageBox (用戶名或密碼錯誤!,”溫情提示”); return;注冊void DIALOGLOG:Onlogreg()DIALOGREG dlg;dlg.DoModal( );6.4 模塊 3取消void DIALOGREG::OnRegcancle()CDialog:OnCancel();注冊void DIALOGREG:OnRegbt()/讓數據庫里一直只有一個用戶UpdateData(true) ;/及時更新數據CString Filepath=Database。 mdb;CString
25、 Sname;_variant_t varname;CDaoRecordset Dbset(&db);db。Open(Filepath);Dbset。 Open(AFX_DAO_USE_DEFAULT_TYPE,SELECT FROM DataTable,0);varname=Dbset。 GetFieldValue(”Name”) ;Sname=(LPCSTR)_bstr_t(varname);if (m_regname.IsEmpty () II m_regpsw。IsEmptyO) MessageBox( 信息不能為空!”,溫情提示”); return;if( m_regpsw!=m_r
26、egpsw1)AfxMessageBox( 密碼不一致); return; if(Sname.Compare(m_regname)!=0) /如果輸入框里的名字在數據庫里不存 在Dbset。 Edit( );/將新數據代替舊數據Dbset.SetFieldValue(”Name”,_variant_t(m_regname);Dbset。 SetFieldValue(”Psw”,_variant_t(m_regpsw);Dbset。 Update( ); MessageBox(用戶注冊成功!,溫情提示); CDialog::OnOK();else/如果輸入的名字和數據庫里的一致,這提示存在該用戶
27、MessageBox(該用戶已存在!”,溫情提示);Dbset。 Close(); db。 Close();6。5 模塊 4初始化窗口BOOL DIALOG3::OnInitDialog()CDialog:OnInitDialog();/ TODO: Add extra initialization herem_list。 SetExtendedStyle(LVS_EX_FLATSBILVS_EX_FULLROWSELECTI LVS_EX_HEADERDRAGDROPILVS_EX_ONECLICKACTIVATE|LVS_EX_GRIDLINES); /設置擴展樣式m_list.Inser
28、tColumn(0,學號,LVCFMT_LEFT,100, 0) ;/添加學號項 m_list。InsertColumn (1, ” 姓名”,LVCFMT_LEFT, 100, 1);添加姓名 項m_list.InsertColumn(2, 年齡”, LVCFMT_LEFT, 100, 2) ;/添加年齡項 m_list。InsertColumn (3,” 聯系方式,LVCFMT_LEFT, 200,3); 添加聯 系方式項m_list.InsertColumn(4,宿舍,LVCFMT_LEFT,100,4); 添加宿舍項 readDb(); /在初始化函數中,如果沒有找到數據庫文件就創建,并
29、且在 列表中顯示出來return TRUE;/ return TRUE unless you set the focus to a control 通過ADO創建學生信息數據庫void DIALOG3:readDb()CString Filepath=” Data。 mdb; /將數據庫文件 Data。 mdb 在程序的同一 目錄下CFileFind Ffind;/先看看存不存在數據庫文件BOOL flag=Ffind.FindFile(Filepath);Ffind。 Close() ;訐(!flag)如果沒有,就創建 aa。 Create(Filepath);CString sqlcmd=
30、” CREATE TABLE DataTable(Num VARCHAR(20),Name VARCHAR(20) ,Age VARCHAR(3), Phone VARCHAR (20) ,Home VARCHAR(20) ; /創建內部表,并設置兩個屬性(姓名, 年齡)aa。 Execute(sqlcmd) ;/執行 sql 指令aa。 Close( ); /創建完成一定要關閉,否則出錯MessageBox(數據庫已建立成功!,溫情提示”);_variant_t varnum,varname; COleVariant varage, varphone, varhome;CString Sna
31、me,Sage,Snum,Sphone,Shome; int i=0;aa。 Open(Filepath);Dbset.Open(AFX_DAO_USE_DEFAULT_TYPE,”SELECT * FROM DataTable”, 0) ;while(! Dbset.IsEOF() varnum=Dbset。 GetFieldValue(Num) ;varname=Dbset。 GetFieldValue(”Name); varage=Dbset。 GetFieldValue(”Age”) ; varphone=Dbset.GetFieldValue(”Phone) ; varhome=Db
32、set.GetFieldValue(Home);Snum=(LPCSTR)_bstr_t(varnum); Sname=(LPCSTR)_bstr_t(varname); Sage=(LPCSTR)varage.pbstrVal; Sphone=(LPCSTR)varphone.pbstrVal;Shome=(LPCSTR) varhome.pbstrVal;/分別將數據庫里面讀出來的文件轉 換成 CStringm_list。Insertitem (i,”); m_list。 SetItemText( i,0, Snum) ; m_list。 SetItemText( i, 1, Sname)
33、; m_list.SetItemText(i,2,Sage); m_list.SetItemText(i,3, Sphone); m_list.SetItemText(i, 4, Shome); Dbset.MoveNext(); /沒有就不能循環 i+;Dbset.Close( );aa.Close() ;與表格相關聯void DIALOG3::OnClickList(NMHDR* pNMHDR, LRESULT pResult) int pos=m_list。 GetSelectionMark(); m_num=m_list.GetItemText( pos, 0); m_name=m_l
34、ist。 GetItemText(pos, 1); m_age=m_list。 GetItemText( pos,2) ; m_phone=m_list.GetItemText(pos,3); m_home=m_list。 GetItemText(pos, 4); UpdateData( false);*pResult = 0;新建void DIALOG3::Onadd()UpdateData( true);if (m_name。IsEmpty( )11 m_age.IsEmpty() II m_num.IsEmpty ()1 I m_phone。IsEmpty () II m_home.Is
35、Empty () 如果輸入框為空,則提示信 息MessageBox(”信息不能為空!”,”溫情提示”);elseCString Filepath=”Data。 mdb;int i=m_list.GetItemCount(); /在列表的隊尾添加,所以先獲取行數aa.Open(Filepath);Dbset。Open(AFX_DAO_USE_DEFAULT_TYPE SELECT * FROM DataTable”,0);Dbset.AddNew (); /在記錄集的隊尾添加Dbset。 SetFieldValue( ”Num,_variant_t( m_num) ); Dbset.SetFie
36、ldValue( ”Age,atol(m_age);Dbset.SetFieldValue( Name”,_variant_t(m_name) ); Dbset。 SetFieldValue(Home”,atol( m_home); Dbset.SetFieldValue (Phone,atol (m_phone); 將 CString 格式轉 換成數據庫規定的格式Dbset.Update() ;/及時更新Dbset。 Close() ;aa。 Close( );/并關閉 m_list.InsertItem(i,”); m_list.SetItemText(i,0,m_num); m_list
37、.SetItemText(i,l,m_name);/在 列表里顯示 m_list。 SetItemText( i,2,m_age);m_list。 SetItemText( i,3,m_phone) ; m_list.SetItemText(i,4,m_home);刪除void DIALOG3: Ondel()int pos=m_list。 GetSelectionMark() ;/所選中行的索引號 if(!(pos+l) /如果沒有選中從第一行到最后一行,則提示選中先 MessageBox (請先選擇需要刪除的一行!”,”溫情提示”;elseCString Filepath=”Data。 m
38、db”;aa.Open(Filepath);Dbset。 Open( AFX_DAO_USE_DEFAULT_TYPE,”SELECT * FROM DataTable,0);Dbset。 Move(pos); /將記錄集的指針移動到當前數據的索引處Dbset。 Delete(); /刪除數據Dbset。 Close() ;aa。 Close( );m_list.DeleteAllItems() ;readDb();/最后兩句的作用是刷新列表修改void DIALOG3:Onmodify()UpdateData(true);int pos=m_list.GetSelectionMark();i
39、f(!(pos+1)MessageBox (”請先選擇需要修改的行!”,”溫情提示);elseCString Filepath=Data。mdb”aa。 Open(Filepath);Dbset。 Open(AFX_DAO_USE_DEFAULT_TYPE,SELECT * FROMDataTable,0);Dbset。 Move( pos);Dbset。Edit(); /將指針移動到所選項后,將數據置于編輯狀態Dbset.SetFieldValue( ”Num,_variant_t(m_num) ;Dbset。 SetFieldValue( ”Name, _variant_t( m_name
40、) ;Dbset.SetFieldValue( ”Age,atol(m_age) );Dbset。 SetFieldValue(Phone, atol(m_phone);Dbset.SetFieldValue( ”Home”, atol(m_home);Dbset。 Update( );/修改完以后更新,否則會出錯Dbset.Close( );aa.Close();m_list。 DeleteAllItems();readDb();成員變量信息:/ stdafx。 h : include file for standard system include files,/ or project s
41、pecific include files that are used frequently, but/are changed infrequently#if !defined( AFX_STDAFX_H_B7A04679_274E_49A4_BE2C_DE7F27AD1443_INCLUDED_)defineAFX_STDAFX_H_B7A04679_274E_49A4_BE2C_DE7F27AD1443_INCLUDED_#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000/ Exclude rarely/ Exclude rarelyus
42、ed stuff from Windowsheadersinclude / MFC core and standard componentsinclude #include afxext.h#include afxext.hinclude afxdisp.hinclude afxdtctl.h/ MFC Automation classes/ MFC support for Internet Explorer 4 CommonControlsifndef _AFX_NO_AFXCMN_SUPPORT#include afxcmn。h/ MFC support for Windows Common Controlsendif / _AFX_NO_AFXCMN_SUPPORT#include / AFX_INSERT_LOCATION/ Microsoft Visual C+ will insert additional declarations immediately before the previous line.endif / !defined(AFX_STD
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課件學習-操作指南
- 財務會計與管理知識分析模擬題
- 視覺感知生物識別領域應用分析
- 自動控制原理第2章練習題
- 河南省平頂山市魯山縣五所學校2025屆九年級下學期中考三模生物試卷(含答案)
- 財務會計實務11財務報表教案
- 2025年android通知!2025中級Android開發面試解答最強技術實現
- 山東遺傳生物題目及答案
- 色彩這首短詩題目及答案
- 瑞安中考科學題目及答案
- 2024-2030年中國壓濾機行業發展前景調研與投資策略分析報告
- 血管導管相關感染預防與控制指南課件
- 胃癌教育課件
- 《光伏電站運行與維護》課件-項目五 光伏電站常見故障處理
- 《食物在身體里的旅行》(教案)四年級上冊科學教科版
- 汽車以租代購合同
- 人教版二年級下冊口算題1000題大全
- 工程圖制作規范
- 2024年河南省機關單位工勤技能人員培訓考核高級工技師《職業道德》題庫
- 馬清河灌區灌溉系統規劃設計
- 四川省南充市2023-2024學年高二下學期期末考試語文試題(解析版)
評論
0/150
提交評論