有个程序,希望大虾帮忙改一下。
function.h
#include<iostream>
using namespace std;
const int LiftNum = 3; //设电梯数目为3
const int LIMIT=14; //最多为14个人
class lift{
private:
int lift_level; //电梯所在层数
int max_level; //最高层
int min_level; //最底层
int people; //人数
public:
lift(int max=10,int min=1,int l=5,int num=5):lift_level(l),max_level(
max),min_level(min),people(num){}
~lift();
bool up(int up_level);
bool down(int down_level);
void opendoor();
void closedoor();
bool isfull();
bool in();
bool out();
int level() const {return lift_level;}
};
function.cpp
#include"Function.h"
bool lift::up( int up_level)
{
if(lift_level+up_level <=max_level){
lift_level+=up_level;
return true;
}
else return false;
}
bool lift::down( int down_level){
if(lift_level-down_level>=min_level){
lift_level-=down_level;
return true;
}
else return false;
}
bool lift::opendoor ()
{
cout << "Now the door is open."; << endl;
}
bool lift::closedoor ()
{
cout << "Now the door is close."; << endl;
bool lift::isfull()
{
if (people<LIMIT)
return false;
else
return true;
}
bool lift::in()
{
if (isfull())
return false;
cout << "Full"; <<endl;
closedoor();
else
{opendoor();
people++;
closedoor();
return true;
}
}
bool lift::out()
{
if(people==0)
return false;
else
{
opendoor();
people--;
closedoor();
return true;
}
}
main.cpp
#include"Function.h"
#include<iostream>
using namespace std;
int main()
{
lift ele[LiftNum]= {
lift(10,1,5,5),
lift(10,1,5,5),
lift(10,1,5,5)
};
cout <<"Choose which elevator you want : " << endl;
int num;
cin>>num;
while(cin&&num>=1&&num<=3)
{
enum{in,out,up,down};
cout << "选择你想要的服务:1.进电梯,2.出电梯,3.上楼,4.下楼"<<endl;
int choice;
cin >>choice;
switch(choice)
{
case 1 :ele[num-1].in();
case 2 :ele[num-1].out();
case 3 :cout << "输入你想到的楼层:";
int floor;
cin>>floor;
if(ele[num-1].up(floor))
cout << "you have reached " ;
else
cout << "请从新输入" <<endl;
case 4 :cout << "输入你想到的楼层:";
int floor1;
cin>>floor;
if(ele[num-1].down(floor1))
cout << "you have reached " ;
else
cout << "请从新输入" <<endl;
default :cout <<"没有这项服务";
continue;
}
}
return 0;
}
[解决办法]
都是一些基本错误,函数申明定义类型不一致。cout中有分号,花括号不匹配。switch case结构中定义变量。。。
#include<iostream>using namespace std;const int LiftNum = 3; //设电梯数目为3const int LIMIT=14; //最多为14个人 class lift{ private: int lift_level; //电梯所在层数 int max_level; //最高层 int min_level; //最底层 int people; //人数public: lift(int max=10,int min=1,int l=5,int num=5):lift_level(l),max_level( max),min_level(min),people(num){} ~lift(); bool up(int up_level); bool down(int down_level); void opendoor(); void closedoor(); bool isfull(); bool in(); bool out(); int level() const {return lift_level;} }; bool lift::up( int up_level) { if(lift_level+up_level <=max_level){ lift_level+=up_level; return true; } else return false; } bool lift::down( int down_level){ if(lift_level-down_level>=min_level){ lift_level-=down_level; return true; } else return false; }void lift::opendoor () //返回值类型位void{ cout << "Now the door is open." << endl; //多了分号}void lift::closedoor (){ cout << "Now the door is close." << endl;} //少了花括号 bool lift::isfull() { if (people<LIMIT) return false; else return true; } bool lift::in() { if (isfull()) { cout << "Full" <<endl; //多了分号 closedoor(); return false; } else { opendoor(); people++; closedoor(); return true; } } bool lift::out() { if(people==0) return false; else { opendoor(); people--; closedoor(); return true; } }#include<iostream> using namespace std; int main() { lift ele[LiftNum]= { lift(10,1,5,5), lift(10,1,5,5), lift(10,1,5,5) }; cout <<"Choose which elevator you want : " << endl; int num; cin>>num; while(cin&&num>=1&&num<=3) { enum{in,out,up,down}; cout << "选择你想要的服务:1.进电梯,2.出电梯,3.上楼,4.下楼"<<endl; int choice; int floor1(0); cin >>choice; switch(choice) { case 1 :ele[num-1].in(); case 2 :ele[num-1].out(); case 3 :cout << "输入你想到的楼层:"; int floor; cin>>floor; if(ele[num-1].up(floor)) cout << "you have reached " ; else cout << "请从新输入" <<endl; case 4 :cout << "输入你想到的楼层:"; cin>>floor; if(ele[num-1].down(floor1)) cout << "you have reached " ; else cout << "请从新输入" <<endl; default :cout <<"没有这项服务"; continue; } } return 0; }
[解决办法]
case后边记着加上break。
怎么说呢,觉得这个小程序没什么实际意义,实现的东西太少了。如果是作业的话,应该有要求吧。要是自己
想的,可以考虑再加点儿别的内容..