📄 changedlg.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 + -