VC++實訓(xùn)--學(xué)生信息管理系統(tǒng)_第1頁
VC++實訓(xùn)--學(xué)生信息管理系統(tǒng)_第2頁
VC++實訓(xùn)--學(xué)生信息管理系統(tǒng)_第3頁
VC++實訓(xùn)--學(xué)生信息管理系統(tǒng)_第4頁
VC++實訓(xùn)--學(xué)生信息管理系統(tǒng)_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、信息科學(xué)與工程學(xué)院報告書專 業(yè):計算機(jī)科學(xué)與技術(shù)課程 名稱:VC+實訓(xùn)題 目:學(xué)生信息管理系統(tǒng)班 級:設(shè) 計 者:完 成 時 間:總 成 績教師簽名學(xué)生信息管理系統(tǒng)一 系統(tǒng)總體方案系統(tǒng)基本實現(xiàn)了對學(xué)生信息的查詢,添加,修改,刪除,保存功能。二 設(shè)計思路和主要步驟思路主要是設(shè)計一個單文檔用來實現(xiàn)主界面,然后在菜單欄添加一個菜單項,下面包含錄入學(xué)生基本信息,查詢學(xué)生基本信息,和修改學(xué)生基本信息等多項子菜單,每項子菜單都對應(yīng)一個對話框?qū)?shù)據(jù)進(jìn)行處理。在主對話框中添加列表控件用來顯示學(xué)生的基本信息,以方便學(xué)生信息的修改,具體修改哪一項。對于學(xué)生信息的錄入,查詢,修改,刪除都用按鈕控件,并為每個按鈕添加

2、消息響應(yīng)函數(shù)用來處理學(xué)生的信息操作。接下來就是要把學(xué)生的基本信息能夠保存下來,因此要用到文件的操作,fstream可以滿足要求。綜上所述,必須先掌握按鈕控件,列表控件,新對話框的構(gòu)建,編輯控件和消息的響應(yīng)與處理原理!三 各功能模塊和流程圖1.功能模塊實現(xiàn) 主界面 對話框一 對話框2 對話框3四 設(shè)計代碼1.主體框架代碼:int CMainFrame:OnCreate(LPCREATESTRUCT lpCreateStruct)if (CFrameWnd:OnCreate(lpCreateStruct) = -1)return -1;if (!m_wndToolBar.CreateEx(this

3、, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY|CBRS_SIZE_DYNAMIC)|!m_wndToolBar.LoadToolBar(IDR_MAINFRAME)TRACE0("Failed to create toolbarn");return -1; / fail to createIf(!m_wndStatusBar.Create(this)|!m_wndStatusBar.SetIndicators(indicators,siz

4、eof(indicators)/sizeof(UINT)TRACE0("Failed to create status barn");return -1; / fail to createm_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);EnableDocking(CBRS_ALIGN_ANY);DockControlBar(&m_wndToolBar);return 0;void CMainFrame:OnMenuitemadd() CMyDlgAdd dlg1;dlg1.DoModal();void CMainFrame:On

5、Menuitemmodify() CMyDlgModify dlg2;dlg2.DoModal();void CMainFrame:OnMenuitemseek() CMyDlgSeek dlg3;dlg3.DoModal();2.錄入消息對話框的消息映射:HBRUSH CMyDlgAdd:OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) HBRUSH hbr = CDialog:OnCtlColor(pDC, pWnd, nCtlColor);if(nCtlColor = CTLCOLOR_BTN | nCtlColor = CTLCOLOR_

6、STATIC)pDC->SetTextColor(RGB(0,0,255);pDC->SetBkMode(TRANSPARENT);pDC->SetTextColor(RGB(0,0,255);pDC->SetBkMode(TRANSPARENT);return hbr;void CMyDlgAdd:OnPaint() CPaintDC dc(this); / device context for paintingLOGFONT lf;memset(&lf,0,sizeof(LOGFONT);lf.lfHeight=28;lf.lfCharSet=GB2312_

7、CHARSET;strcpy(LPSTR)&(lf.lfFaceName),"華文新魏");CFont cf;cf.CreateFontIndirect(&lf);m_Title.SetFont(&cf);void CMyDlgAdd:OnOK() UpdateData();struct Record *re=per;fstream file;CFile file1;file.open("record.txt",ios:in|ios:out|ios:app); int nIndex=m_Speciality.GetCurSel()

8、;int i=GetCheckedRadioButton(IDC_RADIO1,IDC_RADIO2);const int size=sizeof(struct Record);if(re)->id=0|(re)->name=0|re->speciality=0|re->grade=0|i=0)MessageBox("輸入不完整,不能提交!");else strcpy(re)->id,m_Num);strcpy(re)->name,m_Name);CString str;int y,m,d;y=m_Birth.GetYear();m=m_

9、Birth.GetMonth();d=m_Birth.GetDay();str.Format("%d-%d-%d",y,m,d);strcpy(re->date,str);if(i=IDC_RADIO1) strcpy(re->sex,"男");if(i=IDC_RADIO2) strcpy(re->sex,"女");if(nIndex=0) strcpy(re->speciality,"計算機(jī)");if(nIndex=1) strcpy(re->speciality,"數(shù)學(xué)

10、");strcpy(re->grade,m_Grade);file<<re->id<<" "<<re->name<<" "<<re->sex<<" "<<re->speciality<<" "<<re->grade<<" "<<re->date<<endl;file.close();CDialog:On

11、OK(); MessageBox("添加成功!",MB_OK,MB_ICONASTERISK);2.學(xué)生信息修改對話框消息映射:BOOL CMyDlgModify:OnInitDialog() CDialog:OnInitDialog();UpdateData(false);const int nColumns=6;m_list1.InsertColumn(0,"學(xué)號"); m_list1.InsertColumn(1,"姓名");m_list1.InsertColumn(2,"性別");m_list1.Inser

12、tColumn(3,"專業(yè)");m_list1.InsertColumn(4,"年級");m_list1.InsertColumn(5,"出生日期"); CRect rect4;m_list1.GetClientRect(rect4); for(int i=0;i<nColumns;i+)m_list1.SetColumnWidth(i,rect4.Width()/nColumns); fstream file;struct Record per;memset(&per,0,sizeof(struct Record);f

13、ile.open("record.txt",ios:in|ios:out);if(!file) MessageBox("Open error!");for(int j=0;!file.eof();j+)file>>per.id>>>>per.sex>>per.speciality>>per.grade>>per.date;m_list1.InsertItem(j,per.id);m_list1.SetItemText(j,1,);m_list1.Set

14、ItemText(j,2,per.sex);m_list1.SetItemText(j,3,per.speciality);m_list1.SetItemText(j,4,per.grade);m_list1.SetItemText(j,5,per.date);strcpy(per.id,"");strcpy(,"");strcpy(per.sex,"");strcpy(per.speciality,"");strcpy(per.grade,"");strcpy(per.date

15、,"");file.close();ListView_SetExtendedListViewStyle(m_list1.m_hWnd,LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES); /設(shè)置可以選整行return TRUE; void CMyDlgModify:OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) UpdateData(); struct Record per;memset(&per,0,sizeof(struct Record);CListCtrl* pListCtrl = (CL

16、istCtrl*) GetDlgItem(IDC_LIST1); ASSERT(pListCtrl != NULL);POSITION pos = m_list1.GetFirstSelectedItemPosition(); if(pos!=NULL)nItem = m_list1.GetNextSelectedItem(pos);m_Id=m_list1.GetItemText(nItem,0);m_Name=m_list1.GetItemText(nItem,1);if(m_list1.GetItemText(nItem,2)="男") CheckRadioButto

17、n(IDC_RADIO1,IDC_RADIO2,IDC_RADIO1);elseCheckRadioButton(IDC_RADIO1,IDC_RADIO2,IDC_RADIO2);m_Speciality=m_list1.GetItemText(nItem,3);m_Grade=m_list1.GetItemText(nItem,4);m_Date=m_list1.GetItemText(nItem,5);m_Num.Format("%d",nItem+1);UpdateData(false);*pResult = 0;void CMyDlgModify:OnOK() i

18、f(IDNO = MessageBox("確定要修改嗎?","提問",MB_YESNO|MB_ICONQUESTION)return ;UpdateData();fstream file1,file2;struct Record per;file1.open("record.txt",ios:in);file2.open("record1.txt",ios:out);if(!file1|!file2)MessageBox("Open error!");return ;int n =0 , m =

19、 0;while(!file1.eof()n+ ;file1>>per.id>>>>per.sex>>per.speciality>>per.grade>>per.date;n-;m = n ;file1.close();file1.open("record.txt",ios:in);int nIndex = m_list1.GetSelectionMark();char id20="0"strcpy(id,m_list1.GetItemText(nIndex,0);

20、memset(&per,0,sizeof(struct Record);while(n)file1>>per.id>>>>per.sex>>per.speciality>>per.grade>>per.date;if(strcmp(per.id,id) != 0 )file2<<per.id<<" "<<<<" "<<per.sex<<" "<&l

21、t;per.speciality<<" "<<per.grade<<" "<<per.date<<endl;else/要修改的記錄strcpy(per.id,m_Id);strcpy(,m_Name);int i=GetCheckedRadioButton(IDC_RADIO1,IDC_RADIO2);if(i=IDC_RADIO1)strcpy(per.sex,"男");if(i=IDC_RADIO2)strcpy(per.sex,"女"

22、);strcpy(per.speciality,m_Speciality);strcpy(per.grade,m_Grade);strcpy(per.date,m_Date);file2<<per.id<<" "<<<<" "<<per.sex<<" "<<per.speciality<<" "<<per.grade<<" "<<per.date&l

23、t;<endl;n-;file1.close();file2.close();remove("record.txt");rename("record1.txt","record.txt");m_Num= ""m_Name= ""m_Speciality= ""m_Grade= ""UpdateData(FALSE);RefreshData(m);void CMyDlgModify:RefreshData(int m )struct Record pe

24、r;fstream file;file.open("record.txt",ios:in);memset(&per,0,sizeof(struct Record);m_list1.DeleteAllItems();m_list1.SetRedraw(FALSE);int i = 0 ;while( i < m )file>>per.id>>>>per.sex>>per.speciality>>per.grade>>per.date;m_list1.InsertItem(i,

25、per.id); m_list1.SetItemText(i,1,);m_list1.SetItemText(i,2,per.sex);m_list1.SetItemText(i,3,per.speciality);m_list1.SetItemText(i,4,per.grade);m_list1.SetItemText(i,5,per.date);i+;file.close();m_list1.SetRedraw(TRUE);4.學(xué)生信息查找代碼:void CMyDlgSeek:OnButton1() UpdateData();fstream file1,file2;str

26、uct Record per;file1.open("record.txt",ios:in);file2.open("record1.txt",ios:out);if(!file1|!file2)MessageBox("Open error!");return ;int n =0;while(!file1.eof()n+ ;file1>>per.id>>>>per.sex>>per.speciality>>per.grade>>per.date;n

27、-;file1.close();file1.open("record.txt",ios:in);char id20="0"strcpy(id,m_Num);memset(&per,0,sizeof(struct Record);while(n)file1>>per.id>>>>per.sex>>per.speciality>>per.grade>>per.date;if(strcmp(per.id,id) != 0 )file2<<per.id&l

28、t;<" "<<<<" "<<per.sex<<" "<<per.speciality<<" "<<per.grade<<" "<<per.date<<endl;n-;if(IDNO = MessageBox("確定要刪除嗎?","提問",MB_YESNO|MB_ICONQUESTION)return ;file1.close();file2.close();remove("record.txt");rename("record1.txt","record.txt");m_Num= ""m_Name= ""m_Speciality = ""m_Grade= ""m_Birth= ""UpdateData(FALSE);void CMyDlgSeek:OnButton2() CDialog:OnCan

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論