Відлагодження прикладу з англійськими відстанями
Далі приведена програма 26.1 здійснює перевірку введених користувачем в клас Distance даних на наявність помилок. Зараз нам не потрібні раніше розроблені методи переведення відстаней з одних одиниць в інші. Програма повинна тільки одержувати дані та виводити їх на дисплей, якщо ж користувач помилився, то потрібно відхилити дані, пояснити користувачу, в чому полягає його помилка, і попросити ввести дані знову.
#include<iostream>
#include<string>
#include<stdlib>
using namespace std;
int isFeet(string);
///////////////
class Distance
{
private:
int feet;
float inches;
public:
Distance(): feet(0),inches(0.0)
{ }
Distance (int ft,float in):feet(ft),inches(in)
{ }
void showdist()
{cout <<feet << "\' "<< inches <<"\''";}
void getdist();
};
////////////////
void Distance::getdist()
{string instr;
while (true)
{
cout <<"\n\nVvedit futy: ";
cin.unsetf(ios::skipws);
cin>>instr;
if(isFeet(instr))
{
feet=atoi(instr.c_str()); //перевести
Значення в цілочисельне
break;
}
cout<<"Futy povynni buty cilymy <1000\n";
Кінець циклу while для футів
while(true)
{
cout<<"Vvedit dujmy: ";
cin.unsetf(ios::skipws);
cin>>inches;
if(inches>=12.0||inches<0.0)
{cout<< "Dujmy povynni buty miz 0 i 11.99\n";
Cin.clear(ios::failbit); //штучне встановлення прапору помилки
}
If (cin.good() )//чи все гаразд з cin
Дата добавления: 2015-08-26; просмотров: 590;