📄 adddlg.cpp
字号:
// adddlg.cpp : implementation file
//
#include "stdafx.h"
#include "type.h"
#include "adddlg.h"
#include "iostream.h"
#include "fstream.h"
#include "string"
#include "stdlib.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// adddlg dialog
adddlg::adddlg(CWnd* pParent /*=NULL*/)
: CDialog(adddlg::IDD, pParent)
{
//{{AFX_DATA_INIT(adddlg)
m_type1 = _T("");
m_type2 = _T("");
m_type3 = _T("");
m_type4 = _T("");
m_each1 = _T("");
m_each2 = _T("");
m_each3 = _T("");
m_each4 = _T("");
m_type5 = _T("");
m_each5 = _T("");
m_price1 = _T("");
m_price2 = _T("");
m_price3 = _T("");
m_price4 = _T("");
m_price5 = _T("");
m_time1 = _T("");
m_time2 = _T("");
m_time3 = _T("");
m_time4 = _T("");
m_time5 = _T("");
m_time6 = _T("");
m_time7 = _T("");
m_time8 = _T("");
m_time9 = _T("");
m_time10 = _T("");
//}}AFX_DATA_INIT
}
void adddlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(adddlg)
DDX_Text(pDX, IDC_EDIT1, m_type1);
DDX_Text(pDX, IDC_EDIT4, m_type2);
DDX_Text(pDX, IDC_EDIT7, m_type3);
DDX_Text(pDX, IDC_EDIT10, m_type4);
DDX_Text(pDX, IDC_EDIT2, m_each1);
DDX_Text(pDX, IDC_EDIT5, m_each2);
DDX_Text(pDX, IDC_EDIT8, m_each3);
DDX_Text(pDX, IDC_EDIT11, m_each4);
DDX_Text(pDX, IDC_EDIT13, m_type5);
DDX_Text(pDX, IDC_EDIT14, m_each5);
DDX_Text(pDX, IDC_EDIT3, m_price1);
DDX_Text(pDX, IDC_EDIT6, m_price2);
DDX_Text(pDX, IDC_EDIT9, m_price3);
DDX_Text(pDX, IDC_EDIT12, m_price4);
DDX_Text(pDX, IDC_EDIT15, m_price5);
DDX_Text(pDX, IDC_EDIT16, m_time1);
DDX_Text(pDX, IDC_EDIT17, m_time2);
DDX_Text(pDX, IDC_EDIT18, m_time3);
DDX_Text(pDX, IDC_EDIT19, m_time4);
DDX_Text(pDX, IDC_EDIT20, m_time5);
DDX_Text(pDX, IDC_EDIT21, m_time6);
DDX_Text(pDX, IDC_EDIT22, m_time7);
DDX_Text(pDX, IDC_EDIT23, m_time8);
DDX_Text(pDX, IDC_EDIT24, m_time9);
DDX_Text(pDX, IDC_EDIT25, m_time10);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(adddlg, CDialog)
//{{AFX_MSG_MAP(adddlg)
ON_EN_CHANGE(IDC_EDIT2, OnChangeEdit2)
ON_EN_CHANGE(IDC_EDIT5, OnChangeEdit5)
ON_EN_CHANGE(IDC_EDIT8, OnChangeEdit8)
ON_EN_CHANGE(IDC_EDIT11, OnChangeEdit11)
ON_EN_CHANGE(IDC_EDIT14, OnChangeEdit14)
ON_BN_CLICKED(IDOK2, OnCancel)
ON_EN_CHANGE(IDC_EDIT16, OnChangeEdit2)
ON_EN_CHANGE(IDC_EDIT17, OnChangeEdit2)
ON_EN_CHANGE(IDC_EDIT18, OnChangeEdit5)
ON_EN_CHANGE(IDC_EDIT19, OnChangeEdit5)
ON_EN_CHANGE(IDC_EDIT20, OnChangeEdit8)
ON_EN_CHANGE(IDC_EDIT21, OnChangeEdit8)
ON_EN_CHANGE(IDC_EDIT22, OnChangeEdit11)
ON_EN_CHANGE(IDC_EDIT23, OnChangeEdit11)
ON_EN_CHANGE(IDC_EDIT24, OnChangeEdit14)
ON_EN_CHANGE(IDC_EDIT25, OnChangeEdit14)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// adddlg message handlers
void adddlg::OnOK()
{
// TODO: Add extra validation here
UpdateData(TRUE);
fstream datafile;
datafile.open("d:\\Program Files\\type\\type.typ",ios::app);
if(!m_type1.IsEmpty()&&!m_each1.IsEmpty()&&!m_time1.IsEmpty()&&!m_time2.IsEmpty()&&!m_price1.IsEmpty()){
datafile<<"notebegin\n";
datafile<<m_type1<<"\n";
datafile<<m_each1<<"\n";
datafile<<m_time1<<"\n";
datafile<<m_time2<<"\n";
datafile<<m_price1<<"\n";
datafile<<"noteend\n";
}
if(!m_type2.IsEmpty()&&!m_each2.IsEmpty()&&!m_time3.IsEmpty()&&!m_time4.IsEmpty()&&!m_price2.IsEmpty()){
datafile<<"notebegin\n";
datafile<<m_type2<<"\n";
datafile<<m_each2<<"\n";
datafile<<m_time3<<"\n";
datafile<<m_time4<<"\n";
datafile<<m_price2<<"\n";
datafile<<"noteend\n";
}
if(!m_type3.IsEmpty()&&!m_each3.IsEmpty()&&!m_time5.IsEmpty()&&!m_time6.IsEmpty()&&!m_price3.IsEmpty()){
datafile<<"notebegin\n";
datafile<<m_type3<<"\n";
datafile<<m_each3<<"\n";
datafile<<m_time5<<"\n";
datafile<<m_time6<<"\n";
datafile<<m_price3<<"\n";
datafile<<"noteend\n";
}
if(!m_type4.IsEmpty()&&!m_each4.IsEmpty()&&!m_time7.IsEmpty()&&!m_time8.IsEmpty()&&!m_price4.IsEmpty()){
datafile<<"notebegin\n";
datafile<<m_type4<<"\n";
datafile<<m_each4<<"\n";
datafile<<m_time7<<"\n";
datafile<<m_time8<<"\n";
datafile<<m_price4<<"\n";
datafile<<"noteend\n";
}
if(!m_type5.IsEmpty()&&!m_each5.IsEmpty()&&!m_time9.IsEmpty()&&!m_time10.IsEmpty()&&!m_price5.IsEmpty()){
datafile<<"notebegin\n";
datafile<<m_type5<<"\n";
datafile<<m_each5<<"\n";
datafile<<m_time9<<"\n";
datafile<<m_time10<<"\n";
datafile<<m_price5<<"\n";
datafile<<"noteend\n";
}
datafile.close();
m_type1="";
m_each1="";
m_time1="";
m_time2="";
m_price1="";
m_type2="";
m_each2="";
m_time3="";
m_time4="";
m_price2="";
m_type3="";
m_each3="";
m_time5="";
m_time6="";
m_price3="";
m_type4="";
m_each4="";
m_time7="";
m_time8="";
m_price4="";
m_type5="";
m_each5="";
m_time9="";
m_time10="";
m_price5="";
UpdateData(FALSE);
}
void adddlg::OnCancel()
{
// TODO: Add extra cleanup here
CDialog::OnCancel();
}
void adddlg::OnChangeEdit2()
{
// TODO: If this is a RICHEDIT control, the control will not
// 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
UpdateData(TRUE);
if(m_each1.IsEmpty())
return;
if(m_time1.IsEmpty())
return;
if(m_time2.IsEmpty())
return;
int i=compare(m_time1,m_time2);
float n=atof(m_each1)*i;
m_price1.Format("%.2f",n/100);
UpdateData(FALSE);
}
CString adddlg::dateyear(CString date,int n)
{
CString buff;
CString retu;
int m=date.Find('.');
if(n==1){
retu=date.Left(m);
}
if(n==2){
n=date.Find(".",m+1);
retu=date.Left(n);
retu=retu.Right(n-m-1);
}
if(n==3){
n=date.Find(".",m+1);
m=date.GetLength();
retu=date.Right(m-n-1);
}
return retu;
}
int adddlg::compare(CString a, CString b)
{
int montha,monthb,datea,dateb,buff,last;
int n,i;
int yeara=atoi(dateyear(a,1));
int yearb=atoi(dateyear(b,1));
datea=atoi(dateyear(a,3));
dateb=atoi(dateyear(b,3));
montha=atoi(dateyear(a,2));
monthb=atoi(dateyear(b,2));
n=yearb-yeara;
for(i=0;i<n;i++)
{
yeara+=i;
if(!(yeara%400==0)&&!(yeara%4==0))
buff+=365;
else
buff+=366;
}
for(i=1;i<monthb+1;i++)
{
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
buff+=31;
if(i==4||i==6||i==9||i==11)
buff+=30;
if(i==2)
{
if(!(yearb%400==0)&&!(yearb%4==0))
buff+=29;
else
buff+=28;
}
}
buff+=dateb;
for(i=1;i<montha+1;i++)
{
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
last+=31;
if(i==4||i==6||i==9||i==11)
last+=30;
if(i==2)
{
if(!(yeara%400==0)&&!(yeara%4==0))
last+=29;
else
last+=28;
}
}
last+=datea;
return buff-last+1;
}
void adddlg::OnChangeEdit5()
{
// TODO: If this is a RICHEDIT control, the control will not
// 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
UpdateData(TRUE);
if(m_each2.IsEmpty())
return;
if(m_time3.IsEmpty())
return;
if(m_time4.IsEmpty())
return;
int i=compare(m_time3,m_time4);
float n=atof(m_each2)*i;
m_price2.Format("%.2f",n/100);
UpdateData(FALSE);
}
void adddlg::OnChangeEdit8()
{
// TODO: If this is a RICHEDIT control, the control will not
// 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
UpdateData(TRUE);
if(m_each3.IsEmpty())
return;
if(m_time5.IsEmpty())
return;
if(m_time6.IsEmpty())
return;
int i=compare(m_time5,m_time6);
float n=atof(m_each3)*i;
m_price3.Format("%.2f",n/100);
UpdateData(FALSE);
}
void adddlg::OnChangeEdit11()
{
// TODO: If this is a RICHEDIT control, the control will not
// 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
UpdateData(TRUE);
if(m_each4.IsEmpty())
return;
if(m_time7.IsEmpty())
return;
if(m_time8.IsEmpty())
return;
int i=compare(m_time7,m_time8);
float n=atof(m_each4)*i;
m_price4.Format("%.2f",n/100);
UpdateData(FALSE);
}
void adddlg::OnChangeEdit14()
{
// TODO: If this is a RICHEDIT control, the control will not
// 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
UpdateData(TRUE);
if(m_each5.IsEmpty())
return;
if(m_time9.IsEmpty())
return;
if(m_time10.IsEmpty())
return;
int i=compare(m_time9,m_time10);
float n=atof(m_each5)*i;
m_price5.Format("%.2f",n/100);
UpdateData(FALSE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -