当前位置:编程学习 > C/C++ >>

用C++编程来实现

构建一个类person,包含字符数组name(姓名),整型数据成员age(年龄)、实型数据成员salary(工资)和count(人数),成员函数display()用来输出name和age。构造函数包含两个参数,用来对name和age初始化。为persona设置一个友元函数用来修改工资。主函数中定义三个person对象,内容自己设定,然后分别输出每个人的姓名、年龄、工资以及所有的总人数(用count实现)。
答案:

#include<iostream>
#include<cstring>
using namespace std;
class Person
{
private:
char name[20];
int age;
float salary;
public:
static int count; //人数
Person(const char* names,int ages)
{
strcpy(name,names);//初始化姓名
age = ages;//初始化年龄
salary = 0;
count++;
}
void display()
{
cout<<"姓名:"<<name<<endl;
cout<<"年龄:"<<age<<endl;
cout<<"工资:"<<salary<<endl;
}
friend void ModifySalary(Person &one,float salarys);//修改工资的友元函数
};
int Person::count = 0;
void ModifySalary(Person &one,float salarys)
{
one.salary = salarys;
}
void main()
{
int ages;
float salarys;
char namestr[20];
cout<<"请输入第一个人的姓名:";
cin>>namestr;
cout<<"请输入第一个人的年龄:";
cin>>ages;
cout<<"请输入第一个人的工资:";
cin>>salarys;
Person one(namestr,ages);
ModifySalary(one,salarys);
cout<<"请输入第二个人的姓名:";
cin>>namestr;
cout<<"请输入第二个人的年龄:";
cin>>ages;
cout<<"请输入第二个人的工资:";
cin>>salarys;
Person two(namestr,ages);
ModifySalary(two,salarys);
cout<<"请输入第三个人的姓名:";
cin>>namestr;
cout<<"请输入第三个人的年龄:";
cin>>ages;
cout<<"请输入第三个人的工资:";
cin>>salarys;
Person three(namestr,ages);
ModifySalary(three,salarys);
one.display();
two.display();
three.display();
cout<<"人的数量:"<<Person::count<<endl;
}

结果如图:

匆忙中帮你写了一个例程,保证符合你的要求,也可以在VC6中编译运行,快快给我加分吧!!

#include <iostream>
using namespace std;

class Person
{
private:
char* name;
int age;
float salary;

public:
static int count; //人数,用静态成员变量
Person(const char* myname,int myage)
{
//初始化姓名字符串
name = (char *)malloc(4*strlen(myname)+1);
memset(name,0,sizeof(name));
strcpy(name,myname);
//初始化年龄
age = myage;
salary = 0;
count++;
}
void display()
{
cout<<"name:"<<name<<endl;
cout<<"age:"<<age<<endl;
cout<<"salary:"<<salary<<endl;
}
//修改工资的友元函数
friend void ModifySalary(Person &one,float mySalary);

};
int Person::count = 0;
void ModifySalary(Person &one,float mySalary)
{
one.salary = mySalary;
}

int main()
{
Person one("Yang",28);
ModifySalary(one,122.0);
one.display();
Person two("Li",35);
ModifySalary(two,250);
two.display();
Person three("Zhang",25);
ModifySalary(three,250);
three.display();
cout<<"Now Person count:"<<Person::count<<endl;
return 0;
}

上一个:C++编程,编译不出来
下一个:c++编程文件操作问题

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,