📄 systemview.cpp
字号:
MessageBox("打开档案失败,档案不存在或者您的输入有误!"); break;
default:
haveone=true;
}
}*/
if(!cfile.Open(filename,CFile::modeRead,NULL)) MessageBox("打开档案失败,档案不存在或者您的输入有误!");
else haveone=true;
if(haveone)
{
if(strlen(dlgbirth))//如果输入了生日,要精确判断
{
//CString cstring;
//cstring.Format("%s=%d",dlgbirth,strlen(dlgbirth));
//MessageBox(cstring);//测试能否进入,成功
CString birth;
cfile.Read(chnum,1);//姓名
chnum[1]=0;
num=atoi(chnum);
cfile.Read(chmain,num);
//MessageBox(chmain);
cfile.Read(chnum,1);//性别
chnum[1]=0;
num=atoi(chnum);
cfile.Read(chmain,num); //MessageBox(chmain);
cfile.Read(chnum,2);//民族
chnum[2]=0;
num=atoi(chnum);
cfile.Read(chmain,num); //MessageBox(chmain);
cfile.Read(chnum,1);//得到生日
chnum[1]=0;
num=atoi(chnum);
cfile.Read(chmain,num);
//////////////////////////////////////////////////////////////////////////////
chmain[num]=0;/*要将最后加个0截止*/ //MessageBox(chmain);
//////////////////////////////////////////////////////////////////////////////
birth=chmain;
if(birth==dlgbirth)
{
MessageBox("档案查找成功!");
find=true;
}
else
{
MessageBox("查找失败!生日与姓名不符合!");
find=false;
}
}//if(strlen(cf.m_birth))
else find=true;
if(find)//找到了
{
findout=true;//告知全局已经找到
cfile.SeekToBegin();
cfile.Read(chnum,1);
chnum[1]=0;
num=atoi(chnum);
cfile.Read(chmain,num);
chmain[num]=0;
name=chmain; lenth+=(num+1);
cfile.Read(chnum,1);
chnum[1]=0;
num=atoi(chnum);
cfile.Read(chmain,num);
chmain[num]=0;
sex=chmain; lenth+=(num+1);
cfile.Read(chnum,2);
chnum[2]=0;
num=atoi(chnum);
cfile.Read(chmain,num);
chmain[num]=0;
minzu=chmain; lenth+=(num+2);
cfile.Read(chnum,1);
chnum[1]=0;
num=atoi(chnum);
cfile.Read(chmain,num);
chmain[num]=0;
birth=chmain; lenth+=(num+1);
cfile.Read(chnum,2);
chnum[2]=0;
num=atoi(chnum);
cfile.Read(chmain,num);
chmain[num]=0;
shenfenzheng=chmain; lenth+=(num+2);
cfile.Read(chnum,2);
chnum[2]=0;
num=atoi(chnum);
cfile.Read(chmain,num);
chmain[num]=0;
jiguan=chmain; lenth+=(num+2);
cfile.Read(chnum,2);
chnum[2]=0;
num=atoi(chnum);
cfile.Read(chmain,num);
chmain[num]=0;
address=chmain; lenth+=(num+2);
cfile.Read(chnum,2);
chnum[2]=0;
num=atoi(chnum);
cfile.Read(chmain,num);
chmain[num]=0;
college=chmain; lenth+=(num+2);
cfile.Read(chnum,2);
chnum[2]=0;
num=atoi(chnum);
cfile.Read(chmain,num);
chmain[num]=0;
zhuanye=chmain; lenth+=(num+2);
cfile.Read(chnum,2);
chnum[2]=0;
num=atoi(chnum);
cfile.Read(chmain,num);
chmain[num]=0;
xuewei=chmain; lenth+=(num+2);
cfile.Read(chnum,1);
chnum[1]=0;
num=atoi(chnum);
cfile.Read(chmain,num);
chmain[num]=0;
waiyuyuzhong=chmain; lenth+=(num+1);
cfile.Read(chnum,1);
chnum[1]=0;
num=atoi(chnum);
cfile.Read(chmain,num);
chmain[num]=0;
waiyudengji=chmain; lenth+=(num+1);
cfile.Read(chnum,2);
chnum[2]=0;
num=atoi(chnum);
cfile.Read(chmain,num);
chmain[num]=0;
jinrushijian=chmain; lenth+=(num+2);
cfile.Read(chnum,1);
chnum[1]=0;
num=atoi(chnum);
cfile.Read(chmain,num);
chmain[num]=0;
bumen=chmain; lenth+=(num+1);
cfile.Read(chnum,2);
chnum[2]=0;
num=atoi(chnum);
cfile.Read(chmain,num);
chmain[num]=0;
zhiwei=chmain; lenth+=(num+2);
cfile.Read(chnum,2);
chnum[2]=0;
num=atoi(chnum);
cfile.Read(chmain,num);
chmain[num]=0;
xinshui=chmain; lenth+=(num+2);
cfile.Read(chnum,2);
chnum[2]=0;
num=atoi(chnum);
cfile.Read(chmain,num);
chmain[num]=0;
lianxihaoma=chmain; lenth+=(num+2);
// cfile.Read(chnum,2);
// chnum[2]=0;
// num=atoi(chnum);
cfile.Seek(lenth,CFile::begin);
num=cfile.GetLength()-lenth;
char *buf;
buf=new char[num+1];
buf[num]=0;
cfile.Read(buf,num);
beizhu=buf;
free(buf);
cfile.Close();
lenth=0;
}//if(find)
Invalidate();
}//if(haveone)
}
void CSystemView::WriteFile()
{
CFile cfile;
if(!cfile.Open(name,CFile::modeCreate|CFile::modeWrite,NULL))
MessageBox("创建档案文件失败!");
else
{
UINT length=0;//保存字符串长度
char ch[10];//保存length类型转化后的字符串
CString str;
////////////////////////////////////////////
length=strlen(name);
itoa(length,ch,10);
cfile.Write(ch,1);
cfile.Write(name,strlen(name));
length=strlen(sex);
itoa(length,ch,10);
cfile.Write(ch,1);
cfile.Write(sex,strlen(sex));
////////////写可能超过的两位数的项目//////////////////////////////////////////////
length=strlen(minzu);
itoa(length,ch,10);
if(length<10)//将民族的数目固定为2位,不足用0补齐
{
str.Format("%d",0);
cfile.Write(str,1);//先写个0
cfile.Write(ch,1);//再写进个数
}
else cfile.Write(ch,2);//写个两位数
cfile.Write(minzu,strlen(minzu));
////////////////////////////////////////////////////////////////////
length=strlen(birth);
itoa(length,ch,10);
cfile.Write(ch,1);
cfile.Write(birth,strlen(birth));
//////////////////////身份证的位数要超过两位/////////////////////
length=strlen(shenfenzheng);
itoa(length,ch,10);
cfile.Write(ch,2);//写个两位数
cfile.Write(shenfenzheng,strlen(shenfenzheng));
///////////////////籍贯//////////////////////////////////////////////
length=strlen(jiguan);
itoa(length,ch,10);
if(length<10)//将籍贯的数目固定为2位,不足用0补齐
{
str.Format("%d",0);
cfile.Write(str,1);//先写个0
cfile.Write(ch,1);//再写进个数
}
else cfile.Write(ch,2);//写个两位数
cfile.Write(jiguan,strlen(jiguan));
///////////////////家庭住址//////////////////////////////////////////////
length=strlen(address);
itoa(length,ch,10);
if(length<10)//将家庭住址的数目固定为2位,不足用0补齐
{
str.Format("%d",0);
cfile.Write(str,1);//先写个0
cfile.Write(ch,1);//再写进个数
}
else cfile.Write(ch,2);//写个两位数
cfile.Write(address,strlen(address));
//////////////////////毕业院校///////////////////////////////////////////
length=strlen(college);
itoa(length,ch,10);
if(length<10)//将毕业院校的数目固定为2位,不足用0补齐
{
str.Format("%d",0);
cfile.Write(str,1);//先写个0
cfile.Write(ch,1);//再写进个数
}
else cfile.Write(ch,2);//写个两位数
cfile.Write(college,strlen(college));
/////////////////////////////////////////////////////////////////
length=strlen(zhuanye);
itoa(length,ch,10);
if(length<10)//将专业的数目固定为2位,不足用0补齐
{
str.Format("%d",0);
cfile.Write(str,1);//先写个0
cfile.Write(ch,1);//再写进个数
}
else cfile.Write(ch,2);//写个两位数
cfile.Write(zhuanye,strlen(zhuanye));
/////////////////////////////////////////////////////////////////
length=strlen(xuewei);
itoa(length,ch,10);
if(length<10)//将学位的数目固定为2位,不足用0补齐
{
str.Format("%d",0);
cfile.Write(str,1);//先写个0
cfile.Write(ch,1);//再写进个数
}
else cfile.Write(ch,2);//写个两位数
cfile.Write(xuewei,strlen(xuewei));
length=strlen(waiyuyuzhong);
itoa(length,ch,10);
cfile.Write(ch,1);
cfile.Write(waiyuyuzhong,strlen(waiyuyuzhong));
length=strlen(waiyudengji);
itoa(length,ch,10);
cfile.Write(ch,1);
cfile.Write(waiyudengji,strlen(waiyudengji));
///////////////进入时间为两位数//////////////////////////////
length=strlen(jinrushijian);
itoa(length,ch,10);
cfile.Write(ch,2);//写个两位数
cfile.Write(jinrushijian,strlen(jinrushijian));
//////////////////////////////////////////////////////////////
length=strlen(bumen);
itoa(length,ch,10);
cfile.Write(ch,1);
cfile.Write(bumen,strlen(bumen));
length=strlen(zhiwei);
itoa(length,ch,10);
if(length<10)//将职位的数目固定为2位,不足用0补齐
{
str.Format("%d",0);
cfile.Write(str,1);//先写个0
cfile.Write(ch,1);//再写进个数
}
else cfile.Write(ch,2);//写个两位数
cfile.Write(zhiwei,strlen(zhiwei));
length=strlen(xinshui);
itoa(length,ch,10);
if(length<10)//将薪水的数目固定为2位,不足用0补齐
{
str.Format("%d",0);
cfile.Write(str,1);//先写个0
cfile.Write(ch,1);//再写进个数
}
else cfile.Write(ch,2);//写个两位数
cfile.Write(xinshui,strlen(xinshui));
length=strlen(lianxihaoma);
itoa(length,ch,10);
cfile.Write(ch,2);
cfile.Write(lianxihaoma,strlen(lianxihaoma));
// length=strlen(beizhu);
// itoa(length,ch,10);
// cfile.Write(ch,2);
cfile.Write(beizhu,strlen(beizhu));
cfile.Close();
}
Invalidate();
}
void CSystemView::OnRButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
cpoint=point;
m_RBD=true;
CView::OnRButtonDown(nFlags, point);
}
void CSystemView::OnRButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
m_RBD=false;
CView::OnRButtonUp(nFlags, point);
}
void CSystemView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CClientDC dc(this);
if(m_lbdraw)
if(m_RBD)
{
CPen pen(PS_SOLID,5,RGB(255,0,0));
CPen *oldpen;
oldpen=dc.SelectObject(&pen);
dc.MoveTo(cpoint);
dc.LineTo(point);
cpoint=point;
dc.SelectObject(oldpen);
}
CView::OnMouseMove(nFlags, point);
}
void CSystemView::OnLBDraw()
{
// TODO: Add your command handler code here
m_lbdraw=true;
}
void CSystemView::OnCLEARDRAW()
{
// TODO: Add your command handler code here
Invalidate();
}
void CSystemView::OnDestroy()
{
CView::OnDestroy();
// TODO: Add your message handler code here
CFile cfile;
char ch[10],che[10];
CString str;
int length;
if(!cfile.Open("data",CFile::modeCreate|CFile::modeWrite,NULL))
MessageBox("创建档案文件失败!");
else
{
////////////写可能超过的两位数的项目//////////////////////////////////////////////
itoa(totalnumber,che,10);
length=strlen(che);
itoa(length,ch,10);
if(length<10)//将民族的数目固定为2位,不足用0补齐
{
str.Format("%d",0);
cfile.Write(str,1);//先写个0
cfile.Write(ch,1);//再写进个数
}
else cfile.Write(ch,2);//写个两位数
cfile.Write(che,strlen(che));
////////////////////////////////////////////////////////////////////
}
}
void CSystemView::OnCancelMode()
{
CView::OnCancelMode();
// TODO: Add your message handler code here
}
int CSystemView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
CFile cfile;
UINT len;
char ch[3],*chmain;
if(!cfile.Open("data",CFile::modeRead,NULL))
MessageBox("读取预设置文件出错,请在安装文件夹新建data.txt文件");
else
{
cfile.Read(ch,2);
ch[2]=0;
len=atoi(ch);
chmain=new char[len];
cfile.Read(chmain,len);
totalnumber=atoi(chmain);
}
return 0;
}
void CSystemView::OnSEThong()
{
// TODO: Add your command handler code here
C1=255;
C2=C3=0;
Invalidate();
}
void CSystemView::OnSETbai()
{
// TODO: Add your command handler code here
C1=C2=C3=255; Invalidate();
}
void CSystemView::OnSEThuang()
{
// TODO: Add your command handler code here
C1=C2=255;
C3=0; Invalidate();
}
void CSystemView::OnSETlan()
{
// TODO: Add your command handler code here
C1=C2=0;
C3=255; Invalidate();
}
void CSystemView::OnSETlv()
{
// TODO: Add your command handler code here
C1=C3=0;
C2=255; Invalidate();
}
void CSystemView::OnSETzi()
{
// TODO: Add your command handler code here
C1=C3=255;
C2=0; Invalidate();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -