




版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 河北省保定市高中2024-2025學(xué)年高一上學(xué)期1月期末調(diào)研考試數(shù)學(xué)試題(B)(解析版)
- 弧形玻璃墻面施工方案
- 2025年安全員-C證考試試卷及答案
- c15墊層施工方案
- 2025年涑水學(xué)??荚囋囶}及答案
- 6年級上冊第6單元語文園地課堂筆記
- 矩形渡槽設(shè)計
- 5年級上冊譯林版本英語卡通跟讀第5單元
- 登山扣結(jié)構(gòu)設(shè)計
- astmg99銷盤式摩擦試驗測試方法
- 民法典合同編培訓(xùn)
- 2024-2030年中國油用牡丹行業(yè)需求狀況及產(chǎn)銷規(guī)模預(yù)測報告
- 無機(jī)化學(xué)實驗(下)知到智慧樹章節(jié)測試課后答案2024年秋陜西師范大學(xué)
- 高等教育自學(xué)考試自考《英語二》試題及答案指導(dǎo)(2025年)
- 2024年皖北衛(wèi)生職業(yè)學(xué)院單招職業(yè)技能測試題庫
- 軍工產(chǎn)品保密協(xié)議
- 商務(wù)數(shù)據(jù)分析理論試題題庫及答案
- 醫(yī)療安全(不良)事件報告制度培訓(xùn)課件
- 2025屆高考英語一輪復(fù)習(xí)應(yīng)用文之申請信課件
- DB34-T 4859-2024 農(nóng)村河道清淤規(guī)范
- 【課件】秦統(tǒng)一中國+課件-2024-2025學(xué)年統(tǒng)編版七年級歷史上冊
評論
0/150
提交評論