



版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、工業應用技術學院課程設計說明書題目:學生信息管理系統姓名:蔡 陽 陽院 (系):信息工程學院專業班級: 14級計算機科學與技術一班學號:1401110107指導教師:吉 同成績:時間:2015年 9 月 11日至2015年 11月 14 日專業資料工業應用技術學院課程設計任務書題目學生信息管理系統專業、班級14 級計算機科學與技術一班學號 1401110107 姓名 蔡陽陽主要容:1.了解 Windows編程的基礎知識,掌握MFC 應用程序的基本知識;2. 基本掌握面向對象程序設計的基本思路和法;3. 掌握用 VC+ 開發應用程序的的一般步驟和法;4. 能夠利用所學的基本知識 , 設計一個簡單
2、的學生信息管理應用程序,具有以下功能:實現學生信息的存儲,可以用文件來實現。編程實現學生信息的添加、刪除、修改、瀏覽和查詢等功能(必須實現的功能)。基本要求:1. 用 VC進行編碼,實現應用程序的功能。注重編碼質量,代碼要有適當的注釋;2. 采用單文檔多視圖式,左邊為樹視圖,右邊為列表視圖,左邊一級節點為中原工學院,二級節點為計算機學院和軟件學院,三級節點為計算機學院的三個專業。要求可以動態增加節點。樓便為列表視圖,包含學生的學號、性別、姓名各科成績等。右邊也可以實現動態增加3 當選中節點時,顯示對應的學生信息。如當選中”中原工學院 ”時選中所用的學生信息,選中“計算機學院”時,顯示所有計算機
3、學院學生信息主要參考資料:1譚浩強 .C+ 語言基礎課程 M. 北京:清華大學出版社,2009專業資料2 于永彥 . C+ 程序設計基礎案例教程 M. 北京:北京大學出版社, 20093 莉.C+ 語言程序設計習題與實驗指導 M. 清華大學出版社 ,2007完成期限:9 月 11日-11月 14 日指導教師簽名:課程負責人簽名:2015 年 11月 14 日摘要隨著科學技術的發展,計算機領域不斷取得新的研究成果。計算機在代替和延伸勞動面發揮越來越重要的作用,不僅咋商業、企業、銀行等起著重要作用,而且在日常生活中國也越來越來離不開計算機。就像在大學,有很多學生信息需要處理、保存。以及提供優質的服
4、務,此事計算機顯得尤為重要。 隨著科學技術的不斷提高,計算機科學日漸成熟,其強大的功能已為人們深刻認識。作為計算機應用的一部分,使用計算機對學生作業信息進行管理,有著手工管理所無法比擬的有點。所以,現今大部分大學都使用了計算機來規劃整個學生信息、提供選課、網絡教學等。學生作業處理系統能便用戶迅速、準確處理學生作業,給出評分評價,得到想要的數據并能將學生的信息以文檔的形式保存,以供使用時調出。本文介紹了簡易學生的作業處理系統在Microsoft VisualC+ 6.0 環境下的實現過程:系統的分析、功能模塊的設計、系統的調試和測試。 此系統的主要管理信息: 學生的班級、學生的學號、專業資料學生
5、的作業情況、作業評分。本系統的主要功能有:輸入數據、顯示所有的數據、按成績降序排列、查找并顯示一組數據、插入一組數據、修改一組數據、刪除一組數據、從文件中讀取數據、將所有記錄寫入文件、退出本系統。關鍵字:學生成績處理、VC+ 、MFC 、控件四、主要步驟1、新建工程:用MFC AppWizard(exe)創建一個單文檔的應用程序StudentCheck 。在第六步中將視圖的基類選擇為。2 、 1 添加一個基于ListView 類的新的類listView 、用于顯示學生信息專業資料2 、 2 為 CMainFrame添加一個切分窗口的映射函數OnCreateClient并添加一個切分窗口的函數成
6、員CSplitterWnd m_wndSplitter;然后添加下列代碼:專業資料CRect rect;GetClientRect(&rect);CSize paneSize(rect.Width()/3,rect.Height();m_wndSplitter.CreateStatic(this,1,2);m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CStudentCheckView),paneSize,pContext);m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(listView),CSize(0,
7、0),pContext);return true;2 、 4 創建一個CstuInfoDlg對話框2、 5 添加下列控件專業資料并為上面控件添加變量在 WorkSpace 中進入 ClassView 視圖,為 CStuInfoDlg 類添加一個 BOOL 型的成員變量m_bMale, 并在 CStuInfoDlg 類設置該變量的初始值,添加代碼如下:StuInfoDlg:StuInfoDlg(CWnd* pParent /*=NULL*/): CDialog(StuInfoDlg:IDD, pParent)m_bMale=FALSE;/AFX_DATA_INIT(StuInfoDlg)m_st
8、rSpecial = _T("");m_tBirth = 0;m_strMath = 0;m_strName = _T("");m_strNO = _T("");m_strAcademy = _T("");/AFX_DATA_INIT用 MFC ClassWizard為 CStuInfoDlg類添加 WM_INITDIALOG消息映射,并添加下列初始化代碼:專業資料if(!m_bMale)CheckRadioButton(IDC_RADIO_MALE,IDC_RADIO_FEMALE,IDC_RADIO_FEMAL
9、E);elseCheckRadioButton(IDC_RADIO_MALE,IDC_RADIO_FEMALE,IDC_RADIO_MALE);/ 對專業組合框進行初始化m_comboSpecial.AddString("網絡工程 ");m_comboSpecial.AddString("軟件工程 ");m_comboSpecial.AddString("計算機科學 ");m_comboSpecial.AddString("服裝設計 ");m_comboSpecial.AddString("服裝表演 &q
10、uot;);m_comboSpecial.AddString("藝術設計 ");m_strSpecial=" 網絡工程 "m_comboAcademy.AddString("計算機學院 ");m_comboAcademy.AddString("服裝學院 ");m_strAcademy="計算機學院 "m_tBirth=CTime(1989,10,7,0,0,0);m_strMath=80;UpdateData(FALSE);/將信息顯示在控件中2 、6 用 MFC ClassWizard為單選按
11、鈕IDC_RADIO_MALE添加 BN_CLICKED 的消息映射,并添加下列初始代碼:m_bMale=TRUE;用 MFC ClassWizard 為單選按鈕 IDC_RADIO_FEMALE 添加 BN_CLICKED 的消息映射,并添加下列初始代碼:m_bMale=FALSE;用 MFC ClassWizard 為單選按鈕 IDOK 添加 BN_CLICKED 的消息映射,并添加下列初始代碼:UpdateData();m_strName.TrimLeft();/將字符串最前面的空格修整掉m_strNO.TrimLeft();專業資料if(m_strName.IsEmpty()Messa
12、geBox(" 必須要有姓名!");else if(m_strNO.IsEmpty()MessageBox(" 必須要有學號!");Else3 、 1 用 MFC ClassWizard 為 CStudentCheckView類添加 NM_CLICK消息映射通過映射來在列表視圖顯示學生信息。并添加下列初始化代碼:專業資料CPoint point;UINT uFlags;:GetCursorPos(&point);/該函數檢取光標的位置,以屏幕坐標表示CTreeCtrl& m_TreeCtrl = GetTreeCtrl();m_TreeC
13、trl.ScreenToClient(&point);HTREEITEM hSel=m_TreeCtrl.HitTest(point,&uFlags);/ 測試鼠標點是否在一個節點項上,若是,則選中該點if(hSel!=NULL)&&(TVHT_ONITEM & uFlags)m_TreeCtrl.SelectItem(hSel);CString strItem=m_TreeCtrl.GetItemText(hSel);CStudentCheckDoc *doc=GetDocument();int nIndex=doc->m_stuObArray.
14、GetSize();/得到數組的大小:知道儲存了幾個學生的信息");for(int n=0;n<nIndex;n+)CStudentInfo*stu=(CStudentInfo*)doc->m_stuObArray.GetAt(n);/調 取m_stuObArray中儲存的第n 個對象信息CString str=stu->strSpecial;/得到該學生的專業信息CString dlg=stu->strAcademy;/得到該學生的學院信息POSITION pos=GetDocument()->GetFirstViewPosition();GetDoc
15、ument()->GetNextView(pos);listView*list=(listView*)GetDocument()->GetNextView(pos);/定義一個指向列表視圖類的指針if(n=0)list->GetListCtrl().DeleteAllItems();/刪除全部列表項if(strItem=str|strItem=dlg|strItem="中原工學院 ")list->Onprint(stu);/把息輸信入到列表中3、2 然后為 CStudentCheckView添加一個void 類型的成員函數CreateTree() 函
16、數,用來動態添加學生信息專業資料并添加下列初始代碼:CTreeCtrl& m_TreeCtrl = GetTreeCtrl();m_TreeCtrl.DeleteAllItems();HTREEITEM hRoot,hParent,hChild,pS;hRoot=m_TreeCtrl.InsertItem("中原工學院 ",0,1);BOOL flag=TRUE;CStudentCheckDoc *doc=GetDocument();int i=doc->m_stuObArray.GetSize();for(int n=0;n<i;n+)CStudent
17、Info *stu=(CStudentInfo*)doc->m_stuObArray.GetAt(n); CString str1=stu->strAcademy;CString str2=stu->strSpecial;if(!m_TreeCtrl.ItemHasChildren(hRoot)/判斷根節點是否有子節點hParent=m_TreeCtrl.InsertItem(str2,hRoot);m_TreeCtrl.InsertItem(str1,0,1,hParent);elsehParent=m_TreeCtrl.GetChildItem(hRoot);pS=hPa
18、rent;for(;pS!=NULL;pS=m_TreeCtrl.GetNextItem(pS,TVGN_NEXT)CString strItem1=m_TreeCtrl.GetItemText(pS);if(strItem1=str2)flag=FALSE;if(flag)專業資料hParent=m_TreeCtrl.InsertItem(str2,hRoot);m_TreeCtrl.InsertItem(str1,0,1,hParent);elseif(!m_TreeCtrl.ItemHasChildren(hParent)/ 判斷是否有子節點 m_TreeCtrl.InsertItem(
19、str1,0,1,hParent);elsehChild=m_TreeCtrl.GetChildItem(hParent); for(;hChild!=NULL;hChild=m_TreeCtrl.GetNextItem(hChild,TVGN_NEXT)CString strItem2=m_TreeCtrl.GetItemText(hChild);if(strItem2=str1)flag=TRUE;if(!flag)m_TreeCtrl.InsertItem(str1,0,1,hParent);SetCtrlStyle(m_TreeCtrl.GetSafeHwnd(),TVS_HASLIN
20、ES|TVS_LINESATROOT|TVS_HASBUTTONS);3、3 為 CStudentCheckView添加消息映射OnIntialUpte,用來調用CreateTree() 函數,動態添加學生信息。并添加下列初始代碼:CTreeCtrl& m_TreeCtrl = GetTreeCtrl();m_TreeCtrl.DeleteAllItems();CreateTree();3、4 為 CStudentCheckView添加一個 void 類型的成員函數SetCtrlStyle(HWND hWnd,DWORD dwNewStyle)/設置列表控件不同的顯示式專業資料并添加下
21、列初始代碼:LONG lStyle;lStyle = GetWindowLong(hWnd, GWL_STYLE);/獲取當前窗口stylelStyle &= LVS_TYPEMASK; /清除顯示式位lStyle |= dwNewStyle; /設置 styleSetWindowLong(hWnd, GWL_STYLE, lStyle);/設置 style4 、1 在 WorkSpace 中進入 ClassView 視圖,為 listView 類添加一個 void 型的成員函數 Onprint(CStudentInfo *dlg), 用來添加學生信息。并添加下列初始代碼:CListC
22、trl&m_listctrl=GetListCtrl();/變量m_listctrl.InsertItem(0,dlg->strName);/姓名m_listctrl.SetItemText(0,1,dlg->strNO);/學號if(dlg->bMale)m_listctrl.SetItemText(0,2,"男 ");elsem_listctrl.SetItemText(0,2,"女 ");m_listctrl.SetItemText(0,3,dlg->tBirth.Format("%Y-%m-%d"
23、;);/ 出生年月 CString str;/ 理解str.Format("%d",dlg->strMath);/數學成績m_listctrl.SetItemText(0,4,str);專業資料m_listctrl.SetItemText(0,5,dlg->strSpecial);/專業m_listctrl.SetItemText(0,6,dlg->strAcademy);/學院4 、 2 然后為 listView 添加消息映射 NM_CLICK ,用來通過點擊或得學生的映射,并通過點擊查找學生信息。并添加下列初始代碼:int i = lpItem->
24、;iItem;if (i >= 0)CListCtrl& ListCtrl = GetListCtrl();CString str = ListCtrl.GetItemText(i, 0);MessageBox(str);4 、 3 為 listView 添加消息映射OnIntialUpte,用來在列表視圖輸出學生的信息專業資料并添加下列初始代碼:CListCtrl&m_listctrl=GetListCtrl();CString strHeader7="姓名 ","學號 ","性別 ","出生年月 &
25、quot;,"數學成績 ","所選專業 ","所在學院 "int nWidth7=100,100,100,100,100,100,100;for(int nCol=0;nCol<7;nCol+)m_listctrl.InsertColumn(nCol,strHeadernCol,LVCFMT_LEFT,nWidthnCol);5 、 1 建立序列化類 CStudentInfo 用來保存學生信息 ,添加 C/C+ Header File ,并添加下列初始代碼:class CStudentInfo:public CObjectpub
26、lic:CString strName;CString strNO;BOOLbMale;CTimetBirth;intstrMath;CString strSpecial;CString strAcademy;DECLARE_SERIAL(CStudentInfo)public:CStudentInfo();CStudentInfo(CString name,CString id,BOOL male,CTime birth,int math,CString special,CString academy);void Serialize(CArchive &ar);5 、 2 添加 C/
27、C+ Source File, 并添加下列初始代碼:#include "stdafx.h"專業資料#include "StudentInfo.h"CStudentInfo:CStudentInfo(CString name,CString id,BOOL male,CTime birth,int math,CString special,CString academy)strName=name;strNO=id;bMale=male;tBirth=birth;strMath=math;strSpecial=special;strAcademy=acade
28、my;IMPLEMENT_SERIAL(CStudentInfo,CObject,1) /序列化實現voidCStudentInfo:Serialize(CArchive&ar)/從檔案文件中讀取該對象或向檔案文件中寫入該對象。if(ar.IsStoring()ar<<strName<<strNO<<bMale<<tBirth<<strMath<<strSpecial<<strAcademy; elsear>>strName>>strNO>>bMale>>
29、tBirth>>strMath>>strSpecial>>strAcademy; 6、 1 打開該文檔應用程序的菜單資源,添加頂層菜單項“學生基本操作”并添加菜單項目:添加刪除、修改、查詢, ID 依次為 ID_STUINFO_ADD 、 ID_STUINFO_Del 、 ID_STUINFO_XIUGAI 、ID_STUINFO_FIND 。打開 CStudentCheckDoc, 分別添加下列映射:專業資料6、 2 分別為下列函數添加下列代碼用來添加、刪除、修改、查詢學生的信息,添加初始代碼:void CStudentCheckDoc:OnStuinfo
30、Add() /添加信息StuInfoDlg dlg;if(dlg.DoModal()!=IDOK)return;/ 判斷學生信息是不是已經添加 CStudentInfo*pStudent=newCStudentInfo(dlg.m_strName,dlg.m_strNO,dlg.m_bMale,dlg.m_tBirth, dlg.m_strMath,dlg.m_strAcademy,dlg.m_strSpecial);m_stuObArray.Add(pStudent);POSITION pos=GetFirstViewPosition();CStudentCheckView *stu=(CS
31、tudentCheckView*)GetNextView(pos); stu->CreateTree();SetModifiedFlag();/ 設置文檔更改標志UpdateAllViews(NULL);/ 更新視圖void CStudentCheckDoc:OnSTUINFODEl() /刪除學生信息Find dlg;if(dlg.DoModal()!=IDOK)return;int i=m_stuObArray.GetSize();for(int n=0;n<i;n+)CStudentInfo *stu=(CStudentInfo*)m_stuObArray.GetAt(n);
32、if(stu->strName=dlg.m_name)delete m_stuObArray.GetAt(n);m_stuObArray.RemoveAt(n,1);專業資料SetModifiedFlag();/ 設置文檔更改標志UpdateAllViews(NULL);/ 更新視圖void CStudentCheckDoc:OnStuinfoFind() /查找學生信息Find dlg;if(dlg.DoModal()!=IDOK)return;int i=m_stuObArray.GetSize();if(i=0)AfxMessageBox(" 無學生信息 ");
33、elsefor(int n=0;n<i;n+)CStudentInfo *stu=(CStudentInfo*)m_stuObArray.GetAt(n);if(stu->strName=dlg.m_name)/*POSITION pos=GetFirstViewPosition();GetNextView(pos);listView *list=(listView*)GetNextView(pos);CListCtrl& m_list=list->GetListCtrl();m_list.DeleteAllItems();list->Onprint(stu);
34、flag=FALSE;*/CString strRes,strSex(" 女 ");CString str;/ 理解str.Format("%d",stu->strMath);if(stu->bMale) strSex="男 "strRes.Format(" 姓名:%s,n學號: %s,n性別:%s,n出生年月:%s,n 學院: %s,n 專業: %s,n 數學成績: %s",stu->strName,stu->strNO,strSex,stu->tBirth.Format("
35、;%Y-%m-%d"),stu->strAcademy,stu->strSpecial,str);AfxMessageBox(strRes);/ 判斷是否找到 void CStudentCheckDoc:OnStuinfoXiugai() /修改學生信息Find dlg;StuInfoDlg dl;BOOL flag=TRUE;if(dlg.DoModal()!=IDOK)return;int i=m_stuObArray.GetSize();if(i=0)專業資料AfxMessageBox(" 無學生信息 ");elsefor(int n=0;n<i
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025建筑裝修工承包合同
- 2025年的寫字樓租賃合同樣本
- 框式平板硫化機的性能特點
- 2025網絡平臺廣告代理合同
- 礦山救護中心安全站位管理標準
- 新房首付墊資借款合同
- 煤礦皮帶輸送機跑偏原因和處理方法
- 管道阻火器主要性能
- 分銷渠道管理渠道激勵
- 辦公環境風險辨識與管控
- 期中試卷(試題)-2023-2024學年六年級下冊數學人教版
- 全國行政區域身份證代碼表(EXCEL版)
- MOOC 大學體育-華中科技大學 中國大學慕課答案
- 腰椎間盤突出疑難病例討論
- 社區便利店計劃書
- 人工智能的風險與挑戰
- 基層紀檢委員培訓課件
- 信息論與編碼期末考試題(全套)
- 肺癌麻醉科教學查房
- 氣體檢測系統中英文對照外文翻譯文獻
- 死亡病例監測報告督導記錄表
評論
0/150
提交評論