生手写的程序 错了 好多 大神帮忙看看吧

新手写的程序 错了 好多 大神帮忙看看吧
#include <iostream.h>
#include <stdlib.h>
class CEmployee
{
public:
virtual int salary()=0;  //后面说道各个子类实现接口并提供工资返回值(在这道题里面就是一句话)   所以这里给接口补上返回值类型int
};
class CManager:public CEmployee
{
private:
int Week;
public:
CManager()
{
Week=week;
}
int salary()           //既然说各个子类 继承实现 基类的接口,所以首先就应该把基类的接口以public形式 继承(抄)下来
{
return 2000*Week;
}
};
class CSaleman:public CEmployee
{
private:
int Sale;
public:
CSaleman()
{
Sale=sale;
}

int salary()
{
return 500+Sale*0.15;
}
};
class CNum_worker:public CEmployee
{
private:
int Number;
public:
CNum_worker()
{
Number=number;
}
int salary()
{
return 5*Number;
}
};
class CHour_worker:public CEmployee
{
private:
int Hour;
public:
CHour_worker()
{
Hour=hour;
}
int salary()
{
return 10*Hour
}
};
/////////////////////////////////
void main()
{
cout<<"please choose the position"<<endl;
cout<<"1.manager 2.saleman 3.num_worker 4.hour_worker 5.exit"<<endl;
int a;
cin>>a;
switch(a)          //switch(a){}  就像函数一样 没有引号
{
case 1:            //每种case下还需要一个{}
{
int week;         //上来就定义实参,给实参赋值       
cout<<"please input week"<<endl;   //注意   只要是“”括起来的部分 只要把意思表示明白就行了,所以都用小写方便
cin>>week;
CManager manager(week)  //定义完实参 就实例化对象+补构造函数  给变量赋值  变量大写,实参形参小写    类名C大写 对象小写
CEmployee *pm;
pm=&manager;
cout<<"pm->salary()"<<endl
}break;              //每个大括号后面都要写上break;
case 2:
{
int sale;
cout<<"please input sale"<<endl;
cin>>sale;
CSaleman saleman(sale);
CEmployee *ps;
ps=&saleman;
cout<<"ps->salary()"<<endl;
}break;
case 3:
{
int mumber;
cout<<"please input number"<<endl;
cin>>number;
CNum_worker num_worker(number);
CEmployee *pn;
pn=&num_worker;
cout<<"pn->salary()"<<endl;
}break;
case 4:
{
int hour;
cout<<"please input hour"<<endl;
cin>>hour;
CHour_worker hour_worker(hour);
CEmployee *ph;
ph=&hour_worker;
cout<<"ph->salary()"<<endl;
}break;
case 5:
default:       //这两种情况都是退出
exit(1);break;     //虽然没有大括号  但是也有break;

}

}

------解决方案--------------------
服了,这种问题以后没必要发帖,不是说你智商有问题。。。
#include <iostream.h>
#include <stdlib.h>
class CEmployee
{