C 第5次作业

发布 2022-09-05 19:33:28 阅读 1299

1. 定义一个cat类,拥有静态数据成员howmanycats,记录cat的个体数目;静态成员函数gethowmany(),存取howmanycats。设计程序测试这个类,体会静态数据成员和静态成员函数的用法。

1) 实验分析:本题的难点就是静态数据成员和静态成员函数的定义和使用。

2) 程序**:#include

#include

using namespace std;

class cat

public:

cat(string name="untitle",double age=0,double weight=0):name(name),age(age),weight(weight)

cat(cat &c):name(

static int gethowmany();

void showcat();

private:

string name;

double age,weight;

static int howmanycats;

int cat::howmanycats=0;

int cat::gethowmany()

return howmanycats;

void cat::showcat()

for(int i=0;i<30;i++)

cout<<"

cout< cout<<"the name of this cat is: "cout<<"the age of this cat is(years): cout<<"the weight of this cat is(kg):

for(i=0;i<30;i++)

cout<<"

cout<}

void outputwords();

int main()

outputwords();

cout<<"now we input data of one cat"< cat cat1;

outputwords();

cout<<"now we input data of one cat"< cat cat2("jack",8.5,80.7);

outputwords();

cout<<"now we input data of one cat"< cat cat3("哈哈",-100,0.5);

outputwords();

return 0;

void outputwords()

cout<<"now there are "<

3) 实验结果:

2. 设计一个点(point)类,1)在点类中设计友员函数,求两点间的距离。

2)设计一个线段(line)类。

1)实验分析:两点间的距离用普通函数dist来计算。

2)程序**:#include

#include

using namespace std;

class point

public:

point(int x=0,int y=0)

friend float dist(point &po1,point &po2);

private:

int x,y;

float dist(point &po1,point &po2)

double x=

double y=

return (sqrt(x*x+y*y));

class line

public:

line(point px1,point px2)

float length()

private:

point po1,po2;

void main()

int x,y;

cout<<"请输入第一点的坐标:";

cin>>x>>y;

point p1(x,y);

cout<<"请输入第二点的坐标:";

cin>>x>>y;

point p2(x,y);

line ab(p1,p2);

cout<<"the distance is "<

3)实验结果:

3、定义一个学生类,数据成员有:总人数、姓名、性别、成绩等,设计程序要求能统计学生的总人数、修改成绩并打印成绩。

程序**:#include

#include

using namespace std;

class student

public:

int nallnum;

char cname[5];

char csex[2];

int nscore;

int nid;

student()

protected:

private:

void main()

vector stu;

student tmpstu;

int nflag = 1;

do while (nflag !=0);

int nallnum =

int changeid;

cout<<"请输入想修改成绩的学生学号:">changeid;

int nflag1 = 0;

for (int i=0;i

if (nflag1 !=1)

file *fp = fopen(""w");

fprintf(fp,"总人数为:%d",nallnum);

for (i=0;i

cout<<"统计结果在result文件中!"

实验结果:4.设计一个类,要求类中至少有一个友员函数,然后在主程序中访问友员函数。

程序**:#include<>

#include<>

class point

public: point(int a,int b)

int x, y;

class line

int a,b,c;

public:

line(int x,int y,int z)

friend double length( line l,point p)

double d;

d=abs((

return d;

void main()

point p(9,9);

line l(5,3,-4);

cout<<"长度为"<}

实验结果:5. 设计一个用于人事管理的people(人员)类。

要求具有如下属性:姓名char name[11]、编号char number[7]、性别char sex[3]、生日birthday、身份证号char id[16]。其中“出生日期”定义为一个“日期”类内嵌对象。

用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数,拷贝构造函数、内联成员函数、聚集。

在测试程序中定义people类的对象数组,录入数据并显示。

程序**:#include

#include<>

using namespace std;

class birthday/*生日的birthday类*/

private:

int y,m,d;

public:

birthday(int y=1900,int m=1,int d=1)/*构造函数*/

birthday(birthday & p)/*拷贝构造函数*/

void set(int y,int m,int d)/*生日设定*/

void show()/输出生日*/

int gety()

int getm()

int getd()

class people

private:

char name[11];

C 第4次作业

1.设计并测试一个名为rectangle的矩形类,其属性为矩形的左上角与右下角两个点的坐标,根据坐标能计算矩形的面积。1 实验目的 根据坐标求矩形的面积。2 实验分析 类的基础题,题目的主要难点在于函数的调用。3 程序 include using namespace std class rectan...

C 第7次作业

实验七 继承与派生 一 1.定义一个shape基类,在此基础上派生出rectangle和circle,二者都有getarea 函数计算对象的面积。使用rectangle类创建一个派生类square。实验分析 首先定义出shape类,然后定义getarea函数,然后派生出rectangle和circl...

C 第6次作业

1.编写一个函数,统计一个英文句子中字母的个数,在主程序中实现输入 输出。实验分析 利用getline函数输入字符串,然后用循环语句依次取出字符,并判断是否为字母,若是字母,就将count加1,最后输出count的值即可。程序 include include using namespace std ...