栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

南邮程序设计类课程教辅平台C++第3版第五章作业

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

南邮程序设计类课程教辅平台C++第3版第五章作业

这不是mooc奥!!!一些没有算法却可以达到100行的屑程序(。助兄一臂之力。

1. (11分) 5-5-4简易工资管理

题目描述

某公司财务部需要开发一个计算机雇员工资的程序,该公司有3类员工:
工人的工资为每小时工资额(通过成员函数设定)乘以当月工作时数(通过成员函数设定)再加上工龄工资;
销售员工资为每小时工资额(通过成员函数设定)乘以当月工作时数(通过成员函数设定)加上销售额提成再加上工龄工资,
其中销售额提成等于该销售员当月售出商品金额(通过成员函数设定)的1%;
管理人员工资为基本工资1000元再加上工龄工资。
工龄工资就是雇员在该公司工作的工龄每增加一年,月工资就增加35元。
请用面向对象方法分析、设计这个程序,并用C++语言写出完整程序。
设计基类Employee,定义如下:

class Employee
{
	protected:
		string name;   //姓名
		int working_years;   //工龄
	public:
		Employee(string nm="unnamed",int wy=0);
		string Getname();
		double ComputePay();    //求工龄工资,就是:工龄*35
		void SetWorkyears(int wy);
};

由Employee公有派生3个类:Worker、SalesPerson 和 Manager。
在Worker类中添加数据成员:

		double pay_per_hour;  //每小时工资额
		int work_time;             //当月工作时数

成员函数:

		本类的构造函数
		double count_pay();             //计算工资,按上面说明的计算规则
		void SetWorktime(int wt);    //设置当月工作时数
		void Setpay_per_hour(int x);  //设置每小时工资额

在SalesPerson类中添加数据成员:

		double pay_per_hour;   //每小时工资额
		double saleroom;       //当月售出商品金额
		int work_time;         //当月工作时数

成员函数:

		本类的构造函数
		double count_pay();           //计算工资,按上面说明的计算规则
		void SetWorktime(int wt);     //设置当月工作时数
		void Setpay_per_hour(int x);  //设置每小时工资额
		void Setsalesroom(double sr); //设置当月售出商品金额

在Manager类中添加成员函数:

		本类的构造函数
		double count_pay();    //计算工资,按上面说明的计算规则

请直接复制使用如下的main()函数:

int main()
{
	Worker work("zhangqiang",3,200);
	work.Setpay_per_hour(50);
	cout<<"工资="< 

SalesPerson sales("wangjun",5,300000,25);

sales.SetWorktime(40);
sales.Setpay_per_hour(80);
sales.Setsalesroom(450000);
cout<

Manager mana("sunchao",20);
cout< return 0;
}

输入描述

无输入

输出描述

工资=10105
zhangqiang  5750
wangjun  7875
sunchao  1700

样例输入1:

样例输出1:

工资=10105
zhangqiang  5750
wangjun  7875
sunchao  1700
#include
using namespace std;
class Employee
{
	protected:
		string name;   //姓名
		int working_years;   //工龄
	public:
		Employee(string nm="unnamed",int wy=0){
			name=nm;working_years = wy;
		}
		string Getname(){
			return name;
		}
		double ComputePay(){
			return 35*working_years;
		}   //求工龄工资,就是:工龄*35
		void SetWorkyears(int wy){
			working_years=wy;	
		}
};
class Worker:public Employee{
	private:
		double pay_per_hour;  //每小时工资额
		int work_time;             //当月工作时数
	public:
		Worker(string n,int t,int m){
			name=n;work_time=m;working_years=t;
		}
		double count_pay(){
			return pay_per_hour*work_time+ComputePay();
		}             //计算工资,按上面说明的计算规则
		void SetWorktime(int wt){
			work_time=wt;
		}    //设置当月工作时数
		void Setpay_per_hour(int x){
			pay_per_hour=x;
		} //设置每小时工资额
};  
class SalesPerson:public Employee{
	private:
		double pay_per_hour;   //每小时工资额
		double saleroom;       //当月售出商品金额
		int work_time;         //当月工作时数
	public:
		SalesPerson(string n,int y,int s,int wt){
			name=n;working_years=y;saleroom=s;work_time=wt;	
		}
		double count_pay(){
			return pay_per_hour * work_time + saleroom * 0.01 + ComputePay();
		}          //计算工资,按上面说明的计算规则
		void SetWorktime(int wt){
			work_time=wt;
		}    //设置当月工作时数
		void Setpay_per_hour(int x){
			pay_per_hour=x;
		}  //设置每小时工资额
		void Setsalesroom(double sr){
			saleroom=sr;
		} //设置当月售出商品金额
};
class Manager:public Employee{
	public:
		Manager(string nm,int wy){
			name=nm;working_years = wy;
		}
		double count_pay(){
			return 1000+working_years*35;
		}    //计算工资,按上面说明的计算规则	
};

int main()
{
	Worker work("zhangqiang",3,200);
	work.Setpay_per_hour(50);
	cout<<"工资="< 

​​​​​​2. (12分) 5.3+ 出租车收费程序

题目描述

输入起始站、终止站和里程,计费方式是起步价8元,其中含3公里费用,以后每半公里收费0.7元,不足半公里按半公里计。
可以定义一个Station类,一个Mile类,利用Station类和Mile类为基类公有派生Price类。
编写程序实现在Price类中的构造函数Price()和void disp()函数功能
并在主函数中定义一个Price类的对象,显示完整的信息。

编程提示:
Station类,其中包括如下内容:

保护数据成员:string from  //表示起始地名
              string to    //表示目标地名
公有成员函数:构造函数        //提供起始和目标地名
              函数 void disp()  //显示起止地名

Mile类,其中包括如下内容:

保护数据成员:double mile  //表示两地之间的距离,用公里数表示
公有成员函数:构造函数   //提供两地之间的距离
              函数 void disp()  //显示里程数

Price类,从Station类和Mile类公有继承,再增加如下内容:

私有数据成员:double price   //两地之间打车的总费用
公有成员函数:构造函数   //调用基类构造函数并计算费用
              函数 void disp()  //显示总费用

主函数中定义一个Price类的对象(起始站、终止站和里程信息从键盘输入),
并调用disp函数输出所有信息,包括起始站、终止站、里程、总费用。

输入描述

起始站 终止站 里程数

输出描述

起始站 终止站 里程数 总费用

样例输入1:

仙林 模范马路 23.8

样例输出1:

仙林 模范马路 23.8 37.4

样例输入2:

新街口 仙林中心 27.2

样例输出2:

新街口 仙林中心 27.2 42.3
#include
using namespace std;
class Station{
	protected:
		string from;  //表示起始地名
        string to;    //表示目标地名
    public:
    	Station(string f,string t){
			from=f;to=t;
		}	//提供起始和目标地名
    	void disp(){
    		cout<>s>>e>>m;
	Price p1(s,e,m);
	p1.Station::disp();
	p1.Mile::disp();;
	p1.Price::disp();
	return 0;
}

3. (11分) 补充编程题3-4-4 对象成员:产品类Product的设计

题目描述

设计一个产品类 Product ,允许通过如下方式来创建产品对象: 通过指定产品名创建; 通过指定产品名和产品价格创建; 通过指定产品名、产品价格、出厂日期(对象成员)创建; Product 还应该包含如下属性:生产厂家、易碎标记、有效日期(使用对象成员)、颜色、高度。成员函数包括访问和修改这些属性的操作。 在 main( ) 中定义对象,并输出相关信息。 
相关类的定义提示:

class Product
{
       string name;
       double price;
       Date deptime;
       string factory;
       bool easy_break;
       Date valtime; 
       string color;
       double high;
public:
       ........ 
       void output (  ); 
}; 

输出函数提示 : 

void Product::output (  )
{
       cout< 

main()函数如下,请复制使用

int main()
{
       string  s;
       cin>>s;
       Product p1("car");
       Product p2("glass",3.00);
       Product p3("pen",5.00,2009,3,14);
       p1.SetProduct("car",100000.0,2009,3,14,"nanjing",0,2010,10,14,"red",1.5);
       p1.output();
       p2.output();
       p3.output();
       return 0;
}

输入描述

Start

输出描述

Constrcting One....
Constrcting Two....
Constrcting Three....
car 100000
2009-3-14
nanjing 0
2010-10-14
glass 3
2000-1-1
unnamed 0
2000-1-1
pen 5
2009-3-14
unnamed 0
2000-1-1

样例输入1:

Start

样例输出1:

Constrcting One....
Constrcting Two....
Constrcting Three....
car 100000
2009-3-14
nanjing 0
2010-10-14
glass 3
2000-1-1
unnamed 0
2000-1-1
pen 5
2009-3-14
unnamed 0
2000-1-1
#include
using namespace std;
class Date{
	int year,month,day;
public:
	Date(int y=2000,int m=1,int d=1){
		year=y;month=m;day=d;
	}
	int Getyear(){
		return year;
	}
	int Getmonth(){
		return month;
	}
	int Getday(){
		return day;
	}
	void re(int y,int m,int d){
		year=y;month=m;day=d;
	}
	
};
class Product
{
    string name;
    double price;
    Date deptime;
    string factory;
    bool easy_break;
    Date valtime; 
    string color;
    double high;
public:
	Product(string n);
	Product(string n,double p);
	Product(string n,double p,int y,int m,int d);
    void SetProduct(string n,double p,int y,int m,int d,string f,bool e,int a,int b,int c,string c1,double h);
    void output(); 
}; 
void Product::SetProduct(string n,double p,int y,int m,int d,string f,bool e,int a,int b,int c,string c1,double h){
	name=n;price=p;deptime.re(y,m,d);factory=f;easy_break=e;valtime.re(a,b,c);color=c1;high=h;
}
Product::Product(string n){
	cout<<"Constrcting One...."<>s;
       Product p1("car");
       Product p2("glass",3.00);
       Product p3("pen",5.00,2009,3,14);
       p1.SetProduct("car",100000.0,2009,3,14,"nanjing",0,2010,10,14,"red",1.5);
       p1.output();
       p2.output();
       p3.output();
       return 0;
} 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/783813.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号