C++中输错后怎样重新输入
比如我要编写一个公路收费问题的程序,下面是程序的一部分,while(n!=0){cout<<"请输入车型(1:小客车2:卡车3:公汽)统计收费金额(按4出现统计结果按0结...
比如我要编写一个公路收费问题的程序,下面是程序的一部分,
while(n!=0)
{
cout<<"请输入车型(1:小客车 2:卡车 3: 公汽)统计收费金额(按4出现统计结果按0结束)"<<endl;
cin>>n;
switch(n)
{case 1:cars();break;
case 2:trucks();break;
case 3:buses();break;
case 4:display();break;
default:cout<<"Wrong!"<<endl;
}
if(n==0) break;
}
}
void Free::display()
{
cout<<"————————————————————————"<<endl;
cout<<"各类车型的车辆数和收费小计情况如下:"<<endl;
cout<<"小客车:共"<<car<<"辆,总计"<<carfee<<"元。\n";
cout<<"卡车:共"<<truck<<"辆,总计"<<truckfee<<"元。\n";
cout<<"公汽:共"<<bus<<"辆,总计"<<busfee<<"元。\n";
cout<<"所以车辆总计收入为"<<carfee+truckfee+busfee<<"元。\n";
cout<<"————————————————————————"<<endl;
}
假如我需要输入的是2,即我想输入的是卡车,但我不小心按成了3,那么这个3代表的就加到了总的车辆数中去,怎么编写可以使这个2消去,即表示输入错误重新输入? 展开
while(n!=0)
{
cout<<"请输入车型(1:小客车 2:卡车 3: 公汽)统计收费金额(按4出现统计结果按0结束)"<<endl;
cin>>n;
switch(n)
{case 1:cars();break;
case 2:trucks();break;
case 3:buses();break;
case 4:display();break;
default:cout<<"Wrong!"<<endl;
}
if(n==0) break;
}
}
void Free::display()
{
cout<<"————————————————————————"<<endl;
cout<<"各类车型的车辆数和收费小计情况如下:"<<endl;
cout<<"小客车:共"<<car<<"辆,总计"<<carfee<<"元。\n";
cout<<"卡车:共"<<truck<<"辆,总计"<<truckfee<<"元。\n";
cout<<"公汽:共"<<bus<<"辆,总计"<<busfee<<"元。\n";
cout<<"所以车辆总计收入为"<<carfee+truckfee+busfee<<"元。\n";
cout<<"————————————————————————"<<endl;
}
假如我需要输入的是2,即我想输入的是卡车,但我不小心按成了3,那么这个3代表的就加到了总的车辆数中去,怎么编写可以使这个2消去,即表示输入错误重新输入? 展开
1个回答
展开全部
在switch(n)里加一个
case 5:reduce();break;
假设私有成员为:int a,b,c;
加入下面的函数,用来消除错误的输入
void Free::reduce()
{
cout<<"请输入要消去的车型(1:小客车 2:卡车 3: 公汽)任意数字为取消"<<endl;
cin>>m;
switch(m)
{
case 1:a--;break;
case 2:b--;break;
case 3:c--;break;
default:cout<<"已选择不消去"<<endl;
}
}
case 5:reduce();break;
假设私有成员为:int a,b,c;
加入下面的函数,用来消除错误的输入
void Free::reduce()
{
cout<<"请输入要消去的车型(1:小客车 2:卡车 3: 公汽)任意数字为取消"<<endl;
cin>>m;
switch(m)
{
case 1:a--;break;
case 2:b--;break;
case 3:c--;break;
default:cout<<"已选择不消去"<<endl;
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询