注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

告别迷茫

梦想与现实的差距,就是我们生活的意义。因为我们有差距,我们才会一直积累,在努力。

 
 
 

日志

 
 

2014年04月09日  

2014-04-09 10:22:50|  分类: C++作业  李 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

/*设计一个矩阵类CRectangle,
该类中的私有成员变量存放Rectangle的长和宽,并设置它们的默认值为1,
通过成员函数set()来设定长和宽的值,并确保长宽都在(0,50)范围之内,
求其周长Perimeter并显示输出。以下是完成此项工作的程序,请将未完成的部分填入,使之完整。(公共C++实验预习5-程序填空2)*/
#include<iostream>
using namespace std;
class CRectangle
{
public:
    void Set(float a,float b)
    {
        if((a>0)&&(a<50)) length=a;
        else length=1;
        if((b>0)&&(b<50)) width=b;
        else width=1;
    }
    float perimeter()
    {
        return 2*(length+width);
    }
private:
    float length;
    float  width;
};

int main()
{
    CRectangle R;
    float l,w;//定义矩形的长和宽做为输入变量;
    //  cout<<"请输入矩形的长和宽:"<<endl;
    cin>>l>>w;
    R.Set(l,w); //设置矩形的长和宽
    cout<<"矩形的周长为:"<<R.perimeter()<<endl;
    return 0;
}
 


#include<iostream.h>
class  girl
{
private:
    char  name;
    int  age;
public:
    girl(char n, int d)     //构造函数
    {
        name= n;
     age=d;
 }
 friend void display(girl  &x);  //声明友元函数
};
void  display(girl & x)         //类外定义 友元函数
{
    cout<<"Girl's name is :"<<x. name<<", age is :"<<x.age ;
    //girl类的友元函数能访问girl类对象的私有成员
}
int  main( )
{
    girl  e('z',18);
    display(e);          //调用友元函数
    return 0;
}

#include<iostream>
using namespace std;
class MyClass
{
    char  ch;
public:
    MyClass( )
    {
        cout<<"This is a constructor! "<<endl;
        ch='a';
    }
    MyClass(char character )
    {
        cout<<"This is a constructor! "<<endl;
        ch=character;
    }
    void Print( )
    {
        cout<<"The value of ch is "<<ch<<endl;
    }
    ~ MyClass( )
    {
        cout<<"This is a destructor of "<<ch<<endl;
    }
};
int  main( )
{
    MyClass first,second;
    first.Print( );
    second.Print( );
    return 0;
}
/*
This is a constructor !                              
This is a constructor !                              
The value of ch is a 
The value of ch is b                                
This is a destructor of b
This is a destructor of a
*/


#include <iostream>
using namespace std;
class  Location{
private:
 int  X, Y;
public:
 void  init(int  initX,  int  initY);
 int  GetX();
 int  GetY();
};
void  Location::init(int  initX,  int  initY){X=initX;  Y=initY;}
int  Location::GetX(){return  X;}
int  Location::GetY(){return  Y;}
int main()
{
 Location A1;
    Location *PA1=&A1;  //定义一个指向A1的指针pA1;
    PA1->init(6,8);  //用pA1将对象A1成员X和Y分别赋值为6和8
 cout<<PA1->GetX()<<" "<<PA1->GetY()<<endl; //用pA1将对象A1成员X和Y依次输出
 return 0;
}
#include <iostream.h>
#include <math.h>
class A
{
private:
 int X,Y;
protected:
  int Z;
public:
 A(int a, int b, int c)
 {
  X=a;
  Y=b;
  Z=c;
 }
 int GetX()
 {
  return X;
 }
 int GetY()
 {
  return Y;
 }
 int GetZ()
 {
  return Z;
 }
};
class B :public A
{
private:
 int K;
public:
 B(int a, int b, int c, int d):A(a,b,c)
 {
  K=d;
 }
 void Show()
 {
 cout << GetX() << GetY() << Z << K << endl;
 }
};
void main()
{
 B b(1,2,3,4);
 b.Show();
}
#include<iostream>
using namespace std;
class CDateInfo 
{
public:
 CDateInfo(int x,int y,int z)
 {
  year=x;
  mounth=y;
  day=z;
 }
 CDateInfo()
 {
  year=200;
  mounth=1;
  day=1;

 }
 void SetDate(int y,int m,int d)
 {
  year=y;
  mounth=m;
  day=d;

 }
 void GetDate()
 {
  cout<<year<<"-"<<mounth<<"-"<<day<<endl;
 }
 

private:
 int year;
 int mounth;
 int day;
};
int main()
{
  CDateInfo data1,data2(2011,10,10); //定义对象data1和data2
  //分别调用类的不带参数的构造函数和带3个参数的构造函数对其数据成员进行初始化
  //date1的数据成员未初始化时,其年月日用默认值2000,1,1来继续初始化。
  int y,m,d;
  cin>>y>>m>>d; //输入年月日值
  data1.SetDate(y,m,d); //设置data1的年月日为y,m,d
  data1.GetDate(); //按year-month-day的格式显示data1的年月日
  data2.GetDate(); //按year-month-day的格式显示data2的年月日为“2011-10-10”
  return 0;
}


#include<iostream>
#include<cstring>
using namespace std;
class employee
{
protected:
  char *name;        //姓名
  int individualEmpNo;  //个人编号
  int grade;        //级别
  float accumPay;      //月薪总额
  static int employeeNo;  //本公司职员编号目前最大值
public:
  employee();        //构造函数
  ~employee();      //析构函数
  void pay();        //汁算月薪函数
  void promote(int);    //升级函数
  void displayStatus();  //显示人员信息
};

class technician:public employee  //兼职技术人员类
{
private:
  float hourlyRate;    //每小时酬金
  int workHours;      //当月工作时数
public:
  technician();      //构造函数
  void pay();        //计算月薪函数
  void displayStatus();  //显示人员信息
};

class salesman: virtual public employee  //兼职推销员类
{
protected:
  float CommRate;      //按销售额提取酬金的百分比
  float sales;      //当月销售额
public:
  salesman();        //构造函数
  void pay();        //计算月薪函数
  void displayStatus();  //显示人员信息
};

class manager: virtual public employee  //经理类
{
protected:
  float monthlyPay;    //固定月薪数
public:
  manager();        //构造函数
  void pay();        //计算月薪函数
  void displayStatus();  //显示人员信息
};
class salesmanager:public manager,public salesman  //销售经理类
{
public:
  salesmanager();      //构造函数
  void pay();        //计算月薪函数
  void displayStatus();  //显示人员信息
};


int employee::employeeNo=1000;  //员工编号基数为1000

employee::employee()
{
  char namestr[50];        //输入雇员姓名时首先临时存放在namestr中
  cout<<"请输入下一个雇员的姓名:";
  cin>>namestr;
  name=new char[strlen(namestr)+1];
                  //动态申请用于存放姓名的内存空间
  strcpy(name,namestr);      //将临时存放的姓名复制到name
  individualEmpNo=employeeNo++;  //新输入的员工,编号为目前最大编号加1
  grade=1;            //级别初值为1
  accumPay=0.0;          //月薪总额初值为0
}

employee::~employee()
{
  delete []name;    //在析构函数中删除为存放姓名动态分配的内存空间
}

void employee::pay()  //计算月薪,空函数
{
}

void employee::promote(int increment)
{
  grade+=increment;  //升级,提升的级数由increment指定
}

void employee::displayStatus()  //显示入员信息,空函数
{
}

technician::technician()
{
  hourlyRate=100;    //每小时酬金100元
}

void technician::pay()
{
  cout<<"请输入"<<name<<"本月的工作时数:";
  cin>>workHours;
  accumPay=hourlyRate*workHours;  //计算月薪,按小时计酬
  cout<<"兼职技术人员"<<name<<"编号"<<individualEmpNo
    <<"本月工资"<<accumPay<<endl;
}

void technician::displayStatus()
{
  cout<<"兼职技术人员"<<name<<"编号"<<individualEmpNo
    <<"级别为"<<grade<<"级,已付本月工资"<<accumPay<<endl;
}

salesman::salesman()
{
  CommRate=0.04;  //销售提成比例4%
}

void salesman::pay()
{
  cout<<"请输入"<<name<<"本月的销售额:";
  cin>>sales;
  accumPay=sales*CommRate;  //月薪=销售提成
  cout<<"推销员"<<name<<"编号"<<individualEmpNo
    <<"本月工资"<<accumPay<<endl;
}

void salesman::displayStatus()
{
  cout<<"推销员"<<name<<"编号"<<individualEmpNo
    <<"级别为"<<grade<<"级,已付本月工资"<<accumPay<<endl;
}

manager::manager()
{
  monthlyPay=8000;      //固定月薪80m元
}

void manager::pay()
{
  accumPay=monthlyPay;    //月薪总额即固定月薪数
  cout<<"经理"<<name<<"编号"<<individualEmpNo
    <<"本月工资"<<accumPay<<endl;
}

void manager::displayStatus()
{
  cout<<"经理"<<name<<"编号"<<individualEmpNo
    <<"级别为"<<grade<<"级,已付本月工资"<<accumPay<<endl;
}

salesmanager::salesmanager()
{
  monthlyPay=5000;
  CommRate=0.005;
}

void salesmanager::pay()
{
  cout<<"请输入"<<name<<"所管辖部门本月的销售总额:";
  cin>>sales;
  employee::accumPay=monthlyPay+sales*CommRate;  //月薪=固定月薪+销售提成
  cout<<"销售经理"<<name<<"编号"<<individualEmpNo
    <<"本月工资"<<accumPay<<endl;
}

void salesmanager::displayStatus()
{
  cout<<"销售经理"<<name<<"编号"<<individualEmpNo
    <<"级别为"<<grade<<"级,已付本月工资"<<accumPay<<endl;
}

int main()
{
  manager m1;
  technician t1;
  salesmanager sm1;
  salesman s1;
  m1.promote(3);      //经理m1提升3级
  m1.pay();
  m1.displayStatus();
  t1.promote(2);
  t1.pay();
  t1.displayStatus();
  sm1.promote(2);
  sm1.pay();
  sm1.displayStatus();
  s1.pay();
  s1.displayStatus();
  return 0;
}
 
  评论这张
 
阅读(5)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017