1、C+上机指导部分参考答案3编写一个函数,用来求三个数的乘积,并在主函数中调用此函数。(1) 用不带默认参数的函数实现。(2) 用带默认参数的函数实现(传递1个参数,乘积为所传递的参数;传递2个参数,则为该2个参数的乘积;传递3个参数,则为该3个参数乘积)。对比两种方法,分析使用带默认参数的函数的优点和应用场合。总结如何选择默认参数的值。请分析本题中默认参数的值应该在什么范围选取答案:#includeint fun(int x,int y,int z) return x*y*z;void main() int x,z,y;coutplease input x: y: z:xyz;coutfun(
2、x,y,z)endl;2. #includeint fun(int x=2,int y=3,int z=1) return x*y*z;void main() coutfun(1)endl; coutfun(2,2)endl; coutfun(3,2,4)endl;4编写一个函数,用来实现对3个数按由小到大的顺序排序,并在主函数中调用此函数。要求函数的形参用以下两种形式实现:(1)使用指针形参(2)使用引用形参答案:#includeusing namespace std;void fun(float *p1,float *p2,float *p3) float temp; if(*p1*p2)
3、 temp=*p1; *p1=*p2; *p2=temp; if(*p1*p3) temp=*p1; *p1=*p3; *p3=temp; if(*p2*p3) temp=*p2; *p2=*p3; *p3=temp; int main() float a,b,c; cinabc; fun(&a,&b,&c); couta b cendl; return 0;2. #includevoid fun(float p1,float p2,float p3) float temp; if(p1p2) temp=p1; p1=p2; p2=temp; if(p1p3) temp=p1; p1=p3;
4、p3=temp; if(p2p3) temp=p2; p2=p3; p3=temp; int main() float a,b,c; cinabc; fun(a,b,c); couta b cendl; return 0;3某单位的职工工资包括基本工资Wage,岗位津贴Subsidy,房租Rent,水费WaterFee,电费ElecFee。设计实习工资管理的类Salary,该类的形式如下:class Salarypublic:Salary()初始化工资数据的各分项数据为0Salary() 初始化工资数据的各分项数据void setXX(double f) XX=f; double getXX(
5、) return XX; double RealSalary() /计算实发工资Private: Bouble Wage, Subsidy, Rent, WaterFee, ElecFee;其中,成员函数setXX()用于设置工资的各分项数据,成员函数getXX()用于获取工资的各分项数据,XX代表Wage、Subsidy等数据成员,如Wage对应的成员函数则为setWage()和getWage()。 实发工资=Wage+Subsidy-Rent-WaterFee-ElecFee编程完善该类的设计,并在主函数中测试该类的各成员函数。答案:#include#includeclass salary
6、private: double wage; /基本工资 double subsidy; /岗位double rent; /房租 double waterfee; /水费 double elecfee; /电费 public: salary(double Wage=0,double Subsidy=0,double Rent=0,double Waterfee=0,double Electfee=0) /初始化工资数据的各分项 wage = Wage; subsidy = Subsidy; rent = Rent; waterfee = Waterfee; elecfee = Electfee;
7、 salary(const salary& s) /拷贝构造函数 wage = s.wage; subsidy = s.subsidy; rent = s.rent; waterfee = s.waterfee; elecfee = s.elecfee; double real_salary(); void display(); salary() /析构函数;double salary:real_salary() double Real_Salary=0; /实际发放工资 Real_Salary = wage+subsidy-rent-waterfee-elecfee; return Real
8、_Salary;void salary:display() coutendl; coutn * 工资显示 *n; cout基本工资: wagen; cout 岗 位: subsidyn; cout房 租: rentn; cout 水 费: elecfeen; cout电 费: elecfeen; coutn; cout 合 计: real_salary()n; cout n;void main() salary SALARY(1000,20,30,40,50); SALARY.display();4设计一个时钟类Clock。数据成员包括hour(小时)、minute(分钟)、second(秒)
9、。要求用成员函数实现以下功能:(1)创建具有指定时钟(小时、分钟、秒)的Clock对象,默认时钟为00:00:00。(2)动态地设置时、分、秒。(3)在屏幕上按“时:分:秒”的格式显示时钟。(4)在主函数中测试该类。答案:#includeusing namespace std;class Clockpublic: Clock(int h=0,int m=0,int s=0) hour=h;minute=m;second=s; void setHour()cinhour; void setMinute()cinminute; void setSecond() cinsecond; void sh
10、ow() couthour:minute:secondendl; int getHour() return hour; int getMinute() return minute; int getSecond() return second;private:int hour,minute,second;void main() Clock a; couta.getHour():a.getMinute():a.getSecond()endl; a.show();5设计一个职工类Employee。数据成员包括字符串型的name(姓名)、street(街道地址)、city(市)、province(省)
11、、postalcode(邮政编码)。要求用成员函数实现以下功能:(1)创建职工对象时,可以按不同方式指定职工信息。(2)动态地设置职工对象信息。(3)在屏幕上打印职工信息。(4)在主函数中测试该类。参考:#include#includeusing namespace std;class Employee string name; string street; string city; string province; string postalcode ;public: Employee(string string1,string string2,string string3,string s
12、tring4,string string5) :name(string1),street(string2),city(string3),province(string4),postalcode(string5) ; Employee(string string_1,string string_2); Employee(); void set(string stringa,string stringb,string stringc,string stringd,string stringe); void display();Employee:Employee(string string_1,string string_2) name=string_1; street=string_2; city=福州; province=宁德; postalcode=10086; Employee:Employee() void Employee:display() coutendl; coutn * 职工信息显示 *n; cout * 姓名: namen;cout * 街道地址: streetn;cout * 市: cityn;cout * 省: provi
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1