#include<iostream.h>
#include<malloc.h>
#include<string.h>
#define Data Data_Beginning_Start_teacher;
#define ok 1;
#define error 0;
typedef int status;
///////////////////////////////////////
//定义一个教师基类
class M_Teacher
{
private:
char MySex[5];
char MyName[10];
int Age;
public:
int StartData; //开始任教日期
int TotalWage;//总工资
int BaseWage;//基本工资
int CashAward;//奖金
int LessonNum;// 课时数
char Title[10];
void Register(char *name,char *sex,int age)
{
strcpy(MyName,name); strcpy(MySex,sex);
Age=age;
};
char *Getname(){return MyName;};
char *Getsex(){return MySex;};
int Getage(){return Age;};
void Show_Me();
};
//////////////////////////////////////////////
//定义一个院士类 并继承了老师类
class M_Academician:public M_Teacher
{
private:
public:
int A_Work_Overtime(int LessonNum){return LessonNum*150; };
M_Academician() //对象赋值
{
TotalWage = (10000+2000+20*100);
strcpy(Title,"院士");
BaseWage=10000; CashAward=2000;LessonNum=20;
};
~M_Academician(){};
};
/////////////////////////////////////////////////
//教授类对象
class M_Professor:public M_Teacher
{
private:
public:
int B_Work_Overtime(int LessonNum){return LessonNum*120; };
M_Professor() //对象赋值
{
int B_Work_shu=0;
TotalWage = ( 8000+1500+26*80 );
BaseWage = 8000; CashAward = 1500; LessonNum = 26;
strcpy(Title,"正教授");
};
~M_Professor(){};
};
/////////////////////////////////////
//打印基本信息
void M_Teacher::Show_Me()
{
cout<<"\n姓名 性别 年龄 职称 月薪 奖金 课时 总工资\n";
cout<<"\n"<<Getname()<<" "<<Getsex()<<" "<<Getage()<<" "<<Title<<" "<<BaseWage<<" "
<<CashAward<<" "<<LessonNum<<" "<<TotalWage<<endl<<endl;
};
//////////////////////////////
//主函数
void main()
{
int LessonNum;
char name1[10];
static int w=1000; //数据定义
char name[10];
char sex[5];
int age;
static int i,j,k=1,n=1;
int a,b; M_Academician *p1, p[3] ;
M_Professor *q1, q[3] ;
/////////////////////////////////////////////////////
p[1].Register("张三","男",50);
q[1].Register("李四","女",55); //初始化教授和院士
////////////////////////////////////////////////////////////////////////////////
cout<<" \3\3\3职工信息查询系统 V1.0版本\3\3\3\n";
loop1: cout<<"\n\n1.显示....2.增加....3.删除....4.查找....5.修改....6.退出\n"; //打印表头
cout<<"\n请输入您要进行的操作代码:";
///////////////////////////////////////////////////////////////////////////
cin>>a;
switch(a)
{
case 1:
for(i=1;i<=k;i++)
{
if (p[i].TotalWage == 0)
break;
cout<<"编号:"<<w<<endl;
p[i].Show_Me();
w++; //显示代码
};
for(j=1;j<=n;j++)
{
if (q[j].TotalWage==0)
break;
cout<<"编号"<<w<<endl;
q[j].Show_Me();w++;
};
goto loop1;
///////////////////////////////////////////////////
case 2:
int o;
cout<<"\n1.院士,2.正教授"<<endl<<"请输入您要插入的教师职称:";
cin>>o;
if(o==1)
{
cout<<"本系统已经记载了以下院士:"<<" "<<endl;
for(i=1;i<=k;i++)
{
if (p[i].TotalWage == 0)
break;
cout<<p[i].Getname() ;
};
p1=(M_Academician *)malloc(sizeof(p[i]));
cout<<"\n\n请依次输入院士的'姓名/性别/年龄':\n ";
cin>>name>>sex>>age;
p[i].Register(name,sex,age);
cout<<"\n此职工是否加班?(1.是,2.否)\n"<<"请输入您选择的代码:";
cin>>b;
if(b==1)
{
cout<<"请输入加班数:";
cin>>LessonNum;
p[i].A_Work_Overtime(LessonNum);
p[i].TotalWage += p[i].A_Work_Overtime(LessonNum);
p[i].LessonNum += LessonNum;
}
k++;
};
if(o==2)
{
cout<<"本系统已经记载了以下教授:\n";
for(j=1;j<=k;j++)
{
if (q[j].TotalWage == 0)
break;
cout<<q[j].Getname() ;
};
q1= (M_Professor*)malloc(sizeof(q[i]));
cout<<"\n\n请依次输入教授的'姓名/性别/年龄': "<<" "<<endl;
cin>>name>>sex>>age;
q[i].Register(name,sex,age);
cout<<"\n此职工是否加班?(1.是,2.否)\n"<<"请输入您选择的代码:";
cin>>b;
if(b==1) //添加人员代码
{
cout<<"请输入加班数:";
cin>>LessonNum;
q[j].B_Work_Overtime(LessonNum);
q[j].TotalWage += q[j].B_Work_Overtime(LessonNum);
q[j].LessonNum += LessonNum;
}
n++;
}
cout<<"\n\n增加数据成功!\n";w--;
goto loop1;
////////////////////////////////////////////////////////////////////////////
case 3:
cout<<"\n请输入要删除的教师姓名:";
cin>>name;
for(i=1;i<=k;i++)
{
if(p[i].Getname() == "*name1" )
{free(p1);
cout<<"成功删除!"; //删除代码
break;};
};
for(j=1;j<=n;j++)
{
if(q[j].Getname() == "*name1" )break;
};
goto loop1;
//////////////////////////////////////////////////////////////////////////// //
case 4:
cout<<"请输入要查找人的姓名:";
cin>>name1;
for( i=1;i<=k;i++)
{
if(p[i].Getname()=="name1") //查找人员代码
{p[i].Show_Me() ;break;}
};
for(j=1;j<=n;j++)
{
if(q[j].Getname()=="name1")
{q[j].Show_Me(); break;}
else
cout<<"无此人!";
};
goto loop1;
////////////////////////////////////////////////////////////////
case 6:
return;
default:
cout<<"输入错误请重新输入!";
goto loop1;
}
}
///////////////////////////////谢谢大家帮助
//我的问题主要出现在查找和删除那里,还有修改选项没有思路!请大哥们指教!
//谢谢你们