⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 changedlg.cpp

📁 一个人事档案的数据库
💻 CPP
字号:
// ChangeDlg.cpp : implementation file
//

#include "stdafx.h"
#include "dangan.h"
#include "ChangeDlg.h"
#include "FindallDlg.h"
#include "ChangeornotDlg.h"
#include "InChangDlg.h"
#include "AllDlg.h"
//#include "hlinklist.h"
#include "fstream.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CChangeDlg dialog

LinkList CList=new LNode;
LinkList ChosenNode;
CChangeDlg::CChangeDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CChangeDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CChangeDlg)
	m_month = 0;
	m_pay = 0.0f;
	m_year = 0;
	m_num = -1;
	//}}AFX_DATA_INIT
}


void CChangeDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CChangeDlg)
	DDX_Control(pDX, IDC_CHANGE_INYEAR, m_year_c);
	DDX_Control(pDX, IDC_CHANGE_INPAY, m_pay_c);
	DDX_Control(pDX, IDC_CHANGE_INMONTH, m_month_c);
	DDX_Control(pDX, IDC_CHANGE_INPARTY, m_party);
	DDX_Control(pDX, IDC_CHANGE_INNATION, m_nation);
	DDX_Control(pDX, IDC_CHANGE_INLEVEL, m_level);
	DDX_Control(pDX, IDC_CHANGE_INDUTY, m_duty);
	DDX_Control(pDX, IDC_CHANGE_INCOMPANY, m_company);
	DDX_Control(pDX, IDC_CHANGE_INBIRTHPLACE, m_birthplace);
	DDX_Control(pDX, IDC_CHANGE_INNAME, m_cname);
	DDX_Control(pDX, IDC_STATIC_CHOSEEDIT, m_static_edit);
	DDX_Control(pDX, IDC_CHANGE_INSEX, m_sex);
	DDX_Control(pDX, IDC_EDIT_CHANGE, m_edit_change);
	DDX_Control(pDX, IDC_CHANGE_RESALT, m_chang_resalt);
	DDX_Text(pDX, IDC_CHANGE_INMONTH, m_month);
	DDV_MinMaxInt(pDX, m_month, 1, 12);
	DDX_Text(pDX, IDC_CHANGE_INPAY, m_pay);
	DDX_Text(pDX, IDC_CHANGE_INYEAR, m_year);
	DDV_MinMaxInt(pDX, m_year, 1900, 2002);
	DDX_Radio(pDX, IDC_CHANGE_NUM, m_num);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CChangeDlg, CDialog)
	//{{AFX_MSG_MAP(CChangeDlg)
	ON_BN_CLICKED(IDC_CHANGE_RESALT, OnChangeResalt)
	ON_EN_CHANGE(IDC_EDIT_CHANGE, OnChangeEditChange)
	ON_BN_CLICKED(IDC_BUT_CHANGE, OnButChange)
	ON_BN_CLICKED(IDC_CHANGE_NAME, OnChangeName)
	ON_BN_CLICKED(IDC_CHANGE_NUM, OnChangeNum)
	ON_CBN_SELCHANGE(IDC_CHANGE_INSEX, OnSelchangeChangeInsex)
	ON_EN_CHANGE(IDC_CHANGE_INNAME, OnChangeChangeInname)
	ON_EN_CHANGE(IDC_CHANGE_INBIRTHPLACE, OnChangeChangeInbirthplace)
	ON_EN_CHANGE(IDC_CHANGE_INNATION, OnChangeChangeInnation)
	ON_EN_CHANGE(IDC_CHANGE_INDUTY, OnChangeChangeInduty)
	ON_EN_CHANGE(IDC_CHANGE_INLEVEL, OnChangeChangeInlevel)
	ON_EN_CHANGE(IDC_CHANGE_INPARTY, OnChangeChangeInparty)
	ON_EN_CHANGE(IDC_CHANGE_INCOMPANY, OnChangeChangeIncompany)
	ON_BN_CLICKED(IDC_BUT_CHOSEN, OnButChosen)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CChangeDlg message handlers

void CChangeDlg::OnChangeResalt() 
{
	CDialog::OnOK();
	CFindallDlg dlg;
	dlg.DoModal();
}

void CChangeDlg::OnButChange() 
{
	if((flag==0||flag==1)&&chosen&&Fflag){
		CChangeornotDlg dlg;
		dlg.DoModal();
		if(dlg.flag_1){
			ofstream out("persondatalist.txt");
			LinkList q=new LNode;
			q=CList;
			CHANGEPERSONDATA();
			while(q->next){
				out<<q->data.num<<"  "<<q->data.name<<"  "<<q->data.sex<<"  "<<q->data.year<<"  "<<q->data.month<<"  "<<q->data.birthplace<<"  "<<q->data.nation<<"  "<<q->data.duty<<"  "<<q->data.level<<"  "<<q->data.party<<"  "<<q->data.company<<"  "<<q->data.pay<<endl;
				q=q->next;
			}
			out<<q->data.num<<"  "<<q->data.name<<"  "<<q->data.sex<<"  "<<q->data.year<<"  "<<q->data.month<<"  "<<q->data.birthplace<<"  "<<q->data.nation<<"  "<<q->data.duty<<"  "<<q->data.level<<"  "<<q->data.party<<"  "<<q->data.company<<"  "<<q->data.pay<<endl;
			out.close();
			MessageBox("修改成功!");
		}
		else if(dlg.flag_1==0){
			MessageBox("修改被取消!");
		}
	}
	else
		MessageBox("请按步骤操作");
}

void CChangeDlg::OnCancel() 
{
	CDialog::OnCancel();
	CAllDlg dlg;
	dlg.DoModal();
}
void CChangeDlg::OnChangeNum() 
{
	flag=0;
	m_num=0;
	m_static_edit.SetWindowText("请输入其编号");
	UpdateData(FALSE);
}

void CChangeDlg::OnChangeName() 
{
	flag=1;
	m_num=1;
	m_static_edit.SetWindowText("请输入其姓名");
	UpdateData(FALSE);
}

BOOL CChangeDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	//********************INput**********************
	ifstream in("persondatalist.txt");
	if(!in){
		AfxMessageBox("can not open file");
		return 0;
	}
	int i=1;
	LinkList p;
	p=new LNode;
	p=CList;
	in>>nlist;
//	CString STR[50];
//	int j=0;
	while(i<=nlist&&in){
		in>>p->data.num>>p->data.name>>p->data.sex>>p->data.year>>p->data.month>>p->data.birthplace>>p->data.nation>>p->data.duty>>p->data.level>>p->data.party>>p->data.company>>p->data.pay;
//		cout<<p->data.num<<"  "<<p->data.name<<"  "<<p->data.sex<<"  "<<p->data.year<<"  "<<p->data.month<<"  "<<p->data.birthplace<<"  "<<p->data.nation<<"  "<<p->data.duty<<"  "<<p->data.party<<"  "<<p->data.company<<"  "<<p->data.party<<"  "<<p->data.pay<<endl;
//		m_list.AddString(CHANGETOSTRING(p,STR));			
		if(i++<nlist){
			p->next=new LNode;
			p=p->next;
		}
	}
	p->next=NULL;
	in.close();	
	//**********************INput************************/
	m_sex.SetCurSel(0);
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CChangeDlg::OnChangeChangeInname() 
{
	m_cname.GetWindowText(mname);
	// send this notification unless you override the CDialog::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	
	// TODO: Add your control notification handler code here
	
}

void CChangeDlg::OnChangeEditChange() 
{
	m_edit_change.GetWindowText(changething);
	chosen=1;
//	OutputOfFind();
	// send this notification unless you override the CDialog::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	
	// TODO: Add your control notification handler code here
	
}
//LinkList MMlist;

void CChangeDlg::TCHANGETOCHAR(CString mchar[21], int num)
{
	int i=0;
	mchar[i]+=num%10+'0';
	while(num/=10){
		mchar[i]+=num%10+'0';
	}
	mchar[i].MakeReverse();
	mchar[i]+='\0';
}

/*void MMCHANGETOCHAR(CString mchar[10],int num){
	int i=0;
	mchar[i]+=num%10+'0';
	while(num/=10){
		mchar[i]+=num%10+'0';
	}
	mchar[i].MakeReverse();
	mchar[i]+='\0';
}
*/
LinkList CChangeDlg::FindThePersonToChange()
{
	if(flag==0){//按编号查找修改
		LinkList newp=CList;		
		while(newp->next){
			CString numchar[21];
			TCHANGETOCHAR(numchar,newp->data.num);
			int i=0;
			if(numchar[i]==changething){
				Fflag=1;
				return newp;
			}
			else
				newp=newp->next;
		}
		CString numchar[21];
		TCHANGETOCHAR(numchar,newp->data.num);
		int i=0;
		if(numchar[i]==changething){
			Fflag=1;
			return newp;
		}
		return NULL;
//		else
//		if(newp=NULL)
//			MessageBox("您所要修改的人员不在档案中\n请查证");

	}
	else if(flag==1){//按姓名查找修改
		LinkList newp=CList;
		while(newp->next){
			if(changething==newp->data.name){
				Fflag=1;
				return newp;
			}
			else
				newp=newp->next;
		}
		if(changething==newp->data.name){
			Fflag=1;
			return newp;
		}
//		else
//			MessageBox("您所要修改的人员不在档案中\n请查证");
	}
	return NULL;
}

void CChangeDlg::OnSelchangeChangeInsex() 
{
	int nSelection=m_sex.GetCurSel();
	m_sex.GetLBText(nSelection,msex);
	UpdateData(FALSE);
}


bool CChangeDlg::CHANGEPERSONDATA()
{
	LinkList pp;
	pp=FindThePersonToChange();
//	CString ttt=pp->data.name;
//	MessageBox(ttt);
	if(pp){
	strcpy(pp->data.name,(char*) LPCTSTR(mname));
	strcpy(pp->data.birthplace,(char*)LPCTSTR(mbirthplace));
	strcpy(pp->data.duty,(char*)LPCTSTR(mduty));
	strcpy(pp->data.level,(char*)LPCTSTR(mlevel));
	strcpy(pp->data.nation,(char*)LPCTSTR(mnation));
	strcpy(pp->data.party,(char*)LPCTSTR(mparty));
	strcpy(pp->data.sex,(char*)LPCTSTR(msex));
	strcpy(pp->data.company,(char*)LPCTSTR(mcompany));
	pp->data.year=m_year;
	pp->data.month=m_month;
	pp->data.pay=m_pay;
//	pp->data.num=mnum;
//	pp->next=NULL;
	}
	else
		MessageBox("您所要修改的人员不在档案中\n请查证");
	return TRUE;
}
void CChangeDlg::OnChangeChangeInbirthplace() 
{
	m_birthplace.GetWindowText(mbirthplace);
}

void CChangeDlg::OnChangeChangeInnation() 
{
	m_nation.GetWindowText(mnation);	
}

void CChangeDlg::OnChangeChangeInduty() 
{
	m_duty.GetWindowText(mduty);	
}

void CChangeDlg::OnChangeChangeInlevel() 
{
	m_level.GetWindowText(mlevel);	
}

void CChangeDlg::OnChangeChangeInparty() 
{
	m_party.GetWindowText(mparty);	
}

void CChangeDlg::OnChangeChangeIncompany() 
{
	m_company.GetWindowText(mcompany);	
}

void CChangeDlg::OutputOfFind()
{
	LinkList pp=new LNode;
	pp=FindThePersonToChange();
	m_cname.SetWindowText(pp->data.name);
	m_sex.SetWindowText(pp->data.sex);
	m_year=pp->data.year;
	char chyear[10];
	char chmonth[10];
	char chpay[10];
	_itoa(pp->data.year,chyear,10);
	_itoa(pp->data.month,chmonth,10);
	_itoa((int)pp->data.pay,chpay,10);
	m_year_c.SetWindowText(chyear);
	m_month_c.SetWindowText(chmonth);
	m_pay_c.SetWindowText(chpay);
	m_nation.SetWindowText(pp->data.nation);
	m_birthplace.SetWindowText(pp->data.birthplace);
	m_company.SetWindowText(pp->data.company);
	m_level.SetWindowText(pp->data.level);
	m_party.SetWindowText(pp->data.party);
	m_duty.SetWindowText(pp->data.duty);
}

void CChangeDlg::OnButChosen() 
{
	OutputOfFind();	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -