Lesson title
Resume management system
Class setting requirements
- User management;
- Design personal resume information to realize information input, modification and deletion;
- Search resume by ID card number
- Statistics and display personnel information by gender
- Statistics and display personnel information by specialty
- Save statistics to a file
- Resume information import and export
Program operation interface
Core code
// pay.cpp : implementation file // #include "stdafx.h" #include "resume management system. h" #include "pay.h" #include"Cai.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // pay dialog BOOL pay::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here m_pay.InsertColumn(0,"Full name",LVCFMT_CENTER,100); m_pay.InsertColumn(1,"Gender",LVCFMT_CENTER,100); m_pay.InsertColumn(2,"ID number",LVCFMT_CENTER,100); m_pay.InsertColumn(3,"major",LVCFMT_CENTER,100); m_pay.InsertColumn(4,"Personal profile",LVCFMT_CENTER,165); m_pay.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES); ShowCai(); m_sex.SetCurSel(0); m_major.SetCurSel(0); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void pay::ShowCai() { m_pay.DeleteAllItems(); int num=ReadCai(); for(int i=0;i<num;i++) { m_pay.InsertItem(i,0); m_pay.SetItemText(i,0,cai[i].name); m_pay.SetItemText(i,1,cai[i].sex); m_pay.SetItemText(i,2,cai[i].id); m_pay.SetItemText(i,3,cai[i].major); m_pay.SetItemText(i,4,cai[i].about); } } int pay::ReadCai() { FILE *file=fopen("resume.txt","r"); int a=0; while(!feof(file)) { fscanf(file,"%s%s%s%s%s",&cai[a].name,&cai[a].sex,&cai[a].id,&cai[a].major,&cai[a].about); a++; } fclose(file); a--; return a; } pay::pay(CWnd* pParent /*=NULL*/) : CDialog(pay::IDD, pParent) { //{{AFX_DATA_INIT(pay) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT } void pay::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(pay) DDX_Control(pDX, IDC_COMBO2, m_major); DDX_Control(pDX, IDC_COMBO1, m_sex); DDX_Control(pDX, IDC_LIST1, m_pay); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(pay, CDialog) //{{AFX_MSG_MAP(pay) ON_BN_CLICKED(IDC_BUTTON1, OnButton1) ON_BN_CLICKED(IDC_BUTTON2, OnButton2) ON_BN_CLICKED(IDC_BUTTON3, OnButton3) ON_BN_CLICKED(IDC_BUTTON5, OnButton5) ON_BN_CLICKED(IDC_BUTTON6, OnButton6) ON_BN_CLICKED(IDC_BUTTON7, OnButton7) ON_BN_CLICKED(IDC_BUTTON8, OnButton8) ON_BN_CLICKED(IDC_BUTTON9, OnButton9) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // pay message handlers void pay::OnButton1() { int sel = m_pay.GetSelectionMark(); if(sel ==-1) { MessageBox("Please select resume to delete"); } CString id= m_pay.GetItemText(sel,0); int num=ReadCai(); FILE *file=fopen("resume.txt","w+"); for(int i=0;i<num;i++) { if(i==sel) continue; fprintf(file,"%s %s %s %s %s\r\n",cai[i].name,cai[i].sex\ ,cai[i].id,cai[i].major,cai[i].about); } fclose(file); MessageBox("Delete successful","Tips"); ShowCai(); } void pay::OnButton2() { // TODO: Add your control notification handler code here int sel = m_pay.GetSelectionMark(); CString sex,id,major,about; GetDlgItem(IDC_COMBO1)->GetWindowText(sex); GetDlgItem(IDC_EDIT1)->GetWindowText(id); GetDlgItem(IDC_COMBO2)->GetWindowText(major); GetDlgItem(IDC_EDIT3)->GetWindowText(about); if(sel ==-1) { MessageBox("Please select the resume to be modified"); } else { if(sex==""||id==""||major==""||about=="") { MessageBox("Incomplete modification information! Please fill in all the information!"); } else { CString name=m_pay.GetItemText(sel,0); int num=ReadCai(); FILE *file=fopen("resume.txt","w"); for(int i=0;i<num;i++) { if(sel==i) { strcpy(cai[i].name,name); strcpy(cai[i].sex,sex); strcpy(cai[i].id,id); strcpy(cai[i].major,major); strcpy(cai[i].about,about); } fprintf(file,"%s %s %s %s %s\r\n",cai[i].name,cai[i].sex\ ,cai[i].id,cai[i].major,cai[i].about); } fclose(file); MessageBox("Modified success"); ShowCai(); } } } void pay::OnButton3() { // TODO: Add your control notification handler code here m_pay.DeleteAllItems(); CString id; GetDlgItem(IDC_EDIT1)->GetWindowText(id); if(id=="") { ShowCai(); } else { int i = 0; for(int a=0;a<ReadCai();a++) { if(strcmp(id,cai[a].id)==0) { m_pay.InsertItem(i,0); m_pay.SetItemText(i,0,cai[a].name); m_pay.SetItemText(i,1,cai[a].sex); m_pay.SetItemText(i,2,cai[a].id); m_pay.SetItemText(i,3,cai[a].major); m_pay.SetItemText(i,4,cai[a].about); i++; } } } } void pay::OnButton5() { // TODO: Add your control notification handler code here m_pay.DeleteAllItems(); CString major; GetDlgItem(IDC_COMBO2)->GetWindowText(major); if(major=="") { ShowCai(); } else { int i = 0; for(int a=0;a<ReadCai();a++) { if(strcmp(major,cai[a].major)==0) { m_pay.InsertItem(i,0); m_pay.SetItemText(i,0,cai[a].name); m_pay.SetItemText(i,1,cai[a].sex); m_pay.SetItemText(i,2,cai[a].id); m_pay.SetItemText(i,3,cai[a].major); m_pay.SetItemText(i,4,cai[a].about); i++; } } } } void pay::OnButton6() { // TODO: Add your control notification handler code here m_pay.DeleteAllItems(); CString sex; GetDlgItem(IDC_COMBO1)->GetWindowText(sex); if(sex=="") { ShowCai(); } else { int i = 0; for(int a=0;a<ReadCai();a++) { if(strcmp(sex,cai[a].sex)==0) { m_pay.InsertItem(i,0); m_pay.SetItemText(i,0,cai[a].name); m_pay.SetItemText(i,1,cai[a].sex); m_pay.SetItemText(i,2,cai[a].id); m_pay.SetItemText(i,3,cai[a].major); m_pay.SetItemText(i,4,cai[a].about); i++; } } } } void pay::OnButton7() { // TODO: Add your control notification handler code here // Get the number of records that currently meet the conditions int nums=m_pay.GetItemCount(); CString name,sex,id,major,about; FILE *file=fopen("major.txt","a+"); for(int i=0;i<nums;i++) { fprintf(file,"%s %s %s %s %s\r\n",m_pay.GetItemText(i,0),m_pay.GetItemText(i,1),m_pay.GetItemText(i,2),m_pay.GetItemText(i,3),m_pay.GetItemText(i,4)); } fclose(file); MessageBox("Saved successfully!"); // CString x; // x.Format("%d",nums); // MessageBox(x); //(CListCTrl *)GetDlgItem(IDC_LIST1)->GetItemCount(nums); } void pay::OnButton8() { // TODO: Add your control notification handler code here int nums=m_pay.GetItemCount(); CString name,sex,id,major,about; FILE *file=fopen("sex.txt","a+"); for(int i=0;i<nums;i++) { fprintf(file,"%s %s %s %s %s\r\n",m_pay.GetItemText(i,0),m_pay.GetItemText(i,1),m_pay.GetItemText(i,2),m_pay.GetItemText(i,3),m_pay.GetItemText(i,4)); } fclose(file); MessageBox("Saved successfully!"); } void pay::OnButton9() { // TODO: Add your control notification handler code here MessageBox("Saved successfully!"); }