这个函数哪里出错了

来源:百度知道 编辑:UC知道 时间:2024/06/23 06:44:14
void Employee::DeleteInfo() //删除员工数据的函数
{
char tmp;
int cNum = 1000;
DBOperate dbo;
dbo.ReadOut();
void Employee::shownum(long number);

cout<<"请输入您要修改的员工编号>: ";
cin>>cNum;
int MN;
MN = Employee::MaxNum();

for(int i=0;i<MN;i++) //遍历数据文件,查找要删除的员工
{
if(Enum[i] == cNum)
Employee::shownum(cNum);
}

cout<<"确认要删除该员工信息?(Y为确认 N为放弃): ";
cin>>tmp;
if(tmp=='Y')
{
if(i==MN-1)
dbo.WriteIn(-1);
else
{
for(int j=i;j<MN-1;j++)
{
Enum[j] = Enum[j+1]; }
dbo.WriteIn(-1);
}

cout<<" 删除操作成功 ! "<<endl;
}

}

运行的时候不删除指定的数据,反而删除当前最后一个数据……
各位C++高人,我是初学者,大家多多帮忙了
二楼大神的貌似也不行。。。嗯。。。

if(Enum[i] == cNum)
Employee::shownum(cNum);
改为
if(Enum[i] == cNum)
{
Employee::shownum(cNum);
break;
}

if(tmp=='Y')
{
if(i==MN-1)
dbo.WriteIn(-1);
else
{
for(int j=i;j<MN-1;j++)
{
Enum[j] = Enum[j+1]; }
dbo.WriteIn(-1);
}

改为:
if(tmp=='Y')
{
if(i==MN-1)
dbo.WriteIn(-1);
}
else
{
for(int j=i;j<MN-1;j++)
{
Enum[j] = Enum[j+1]; }
dbo.WriteIn(-1);
}

需要研究下这个:Employee::shownum(cNum);