首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

有个程序,希望帮忙改一下

2012-06-08 
有个程序,希望大虾帮忙改一下。function.h#includeiostreamusing namespace stdconst int LiftNum 3/

有个程序,希望大虾帮忙改一下。
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结构中定义变量。。。


C/C++ code
#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。

怎么说呢,觉得这个小程序没什么实际意义,实现的东西太少了。如果是作业的话,应该有要求吧。要是自己

想的,可以考虑再加点儿别的内容..

热点排行