| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 652 人关注过本帖
标题:[求助]程序有问题 请达人们指点下小弟 (继承的问题)
只看楼主 加入收藏
xweiweix
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2006-5-20
收藏
 问题点数:0 回复次数:3 
[求助]程序有问题 请达人们指点下小弟 (继承的问题)
/*
编写一个学生和教师数据输入和显示程序,学生数据有编号、姓名、班号和成绩,教师数据有编号、姓名、
职称和部门。要求将编号、姓名输入和显示设计成一个类person,并作为学生数据操作类student和教师数
据操作类teacher的基类。
*/
#include<iostream.h>
#include<string.h>
class Student; //学生类
class Teacher; //教师类
class Person //人类
{
private:
int id;
char name[20];
public:
Person(int x,char *p)
{
id=x;
strcpy(name,p);
}
void show(Student s)
{
cout << "编号:" << id << endl;
cout << "姓名:" << name << endl;
cout << "班号:" << s.getclassid() << endl;
cout << "成绩:" << s.getscore() << endl;
}
void show(Teacher t) //show函数的重载
{
cout << "编号:" << id << endl;
cout << "姓名:" << name << endl;
cout << "职称:" << t.getzhicheng() << endl;
cout << "部门:" << t.getbumen() << endl;
}
};
class Student:public Person
{
private:
int classid;
double score;
public:
void setclassid(int x) //设置私有属性班级号
{
classid=x;
}
void setscore(double y) //设置私有属性成绩
{
score=y;
}
int getclassid()
{
return classid;
}
double getscore()
{
return score;
}
};
class Teacher:public Person
{
private:
char zhicheng[10]; //职称
char bumen[10]; //部门
public:
void setzhicheng(char *p) //设置私有属性职称
{
strcpy(zhicheng,p);
}
void setbumen(char *p) //设置私有属性部门
{
strcpy(bumen,p);
}
char getzhicheng()
{
return zhicheng;
}
char getbumen()
{
return bumen;
}
};
void main()
{
Person s1(1,"小强");
Student p1;
p1.setclassid(15);
p1.setscore(90.8);
s1.show(p1);
}
搜索更多相关主题的帖子: 继承 
2007-01-23 20:21
owen118
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-1-1
收藏
得分:0 

这样写的实质变成了person 继承student 和 teacher
题目要求:"将编号、姓名输入和 显示 设计成一个类person"--不是在说在person中show
我改了一点:
#include<iostream.h>
#include<string.h>

class Person //人类
{
private:
int id;
char name[20];

public:
Person(int x, char *p)
{
id = x;
strcpy(name, p);
}

int get_id() { return id; }

char *get_name() { return name; }
};

class Student:public Person
{
private:
int classid;
double score;
public:

Student(int x, char *p, int xx, double yy):Person(x, p)
{
classid = xx; //设置私有属性班级号
score = yy; //设置私有属性成绩
}

int getclassid() { return classid; }

double getscore() { return score; }

void show()
{
cout << "编号: " << get_id() << endl;
cout << "姓名: " << get_name() << endl;
cout << "班号: " << getclassid() << endl;
cout << "成绩: " << getscore() << endl;
}
};

class Teacher:public Person
{
private:
char zhicheng[10]; //职称
char bumen[10]; //部门

public:
Teacher(int x, char *p, char *q, char *r):Person(x, p)
{
strcpy(zhicheng, q); //设置私有属性职称
strcpy(bumen, r); //设置私有属性部门
}

char *getzhicheng()
{
return zhicheng;
}
char *getbumen()
{
return bumen;
}

void show()
{
cout << "编号:" << get_id() << endl;
cout << "姓名:" << get_name() << endl;
cout << "职称:" << getzhicheng() << endl;
cout << "部门:" << getbumen() << endl;
}
};

void main()
{
Student s1(1, "小强", 10, 77.82);
s1.show();

Teacher p1(2, "ddd", "xxx", "ooo");
p1.show();
}

2007-01-24 01:15
qlh
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-1-17
收藏
得分:0 
在main函数中定义一个指向基类person的指针,然后利用指向基类的指针可以调用派生类指针这条信息分别调用student和特acher的show函数。
2007-01-24 16:39
xweiweix
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2006-5-20
收藏
得分:0 
谢谢各位指点

努力学习编程ing 目标--软件工程师
2007-01-24 19:04
快速回复:[求助]程序有问题 请达人们指点下小弟 (继承的问题)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022107 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved