您的位置:首页 > 编程语言 > C语言/C++

c++控制台应用程序

2011-09-30 10:19 288 查看
c++控制台应用程序

 悬赏分:50 - 解决时间:2009-9-19 12:38

设计一个控制台应用程序XXXPersion,其中包含一个描述人的抽象类PersionClass,利用继承的方式派生学生类StudentClass,教师类TeacherClass和歌手类SingerClass等,在PersionClass类中要有必要的数据如:姓名、性别、年龄等,在派生类StudentClass中要有所在学校等与学生有关的数据的描述;在TeacherClass类中要有职称等与教师有关的相关数据的描述,在SingerClass中要有住址、身高等与歌手有关的数据的描述。总的要求:要有必要的获得数据的手段,如获得学生、教师或歌手的姓名、性别、年龄,学生所在的学校、教师的职称、歌手的住址等,尽量将题目设计完整,功能完善,同时设计测试类对所设计的类及包含的功能进行测试。

评分标准:

1. 正确合理设计PersionClass类             10分

2. 正确使用继承设计StudentClass类                10分

3. 正确使用继承设计TeacherClass类                10分

4. 正确使用继承设计SingerClass类               10分

5. 能够正确设计测试类并进行合理测试           10分

6. 程序整体效果及运行                         10分

问题补充:学校的一次模拟,大家帮帮忙,对了,后面的题目的分数!!

提问者: 村里有点穷 - 试用期 二级 最佳答案#include <stdio.h>

#include <iostream>

using namespace std;

class XXXPerson{

public:

 char name[20]; //姓名

 char sex[2]; //性别

 int age; //年龄

public:

 XXXPerson(){

  memset(name, 0, 20);

  memset(sex, 0,2);

  age = 0;

 }

 XXXPerson(char n[], char s[], int i){  

  strcpy(name, n);  

  strcpy(sex, s);

  age = i;

 }

 virtual void displayInfo(){

  cout << "Person--> name: "<<name << "\t sex: " << sex << "\t age: " << age <<"." << endl;

 }

};

class StudentClass:public XXXPerson{

public:

 char school[50]; //所在学校

 char otherinfo[200]; //其它信息

public:

 StudentClass(char n[], char s[], int age, char sch[], char oi[]){

  strcpy(name, n);  

  strcpy(sex, s);

  this->age = age;

  strcpy(school, sch);

  strcpy(otherinfo, oi);

 }

 virtual void displayInfo(){

  cout << "学生 "<<name << "  的信息:" << endl;

  cout<< "\t性别:\t\t" << sex << endl;

  cout << "\t年龄:\t\t" << age << endl;

  cout << "\t所在学校:\t" << school << endl;

  cout << "\t附加信息:\t" << otherinfo << endl;

 }

};

class TeacherClass:public XXXPerson{

public:

 char tlevel[50]; //职称

 char otherinfo[200]; //其它信息

public:

 TeacherClass(char n[], char s[], int age, char sch[], char oi[]){

  strcpy(name, n);  

  strcpy(sex, s);

  this->age = age;

  strcpy(tlevel, sch);

  strcpy(otherinfo, oi);

 }

 virtual void displayInfo(){

  cout << "老师 "<<name << "  的信息:" << endl;

  cout<< "\t性别:\t\t" << sex << endl;

  cout << "\t年龄:\t\t" << age << endl;

  cout << "\t职称:\t\t" << tlevel << endl;

  cout << "\t附加信息:\t" << otherinfo << endl;

 }

};

class SingerClass:public XXXPerson{

public:

 int stature; //身高

 char address[200]; //住址

 char otherinfo[200]; //其它信息

public:

 SingerClass(char n[], char s[], int age,int t, char sch[], char oi[]){

  stature = t;

  strcpy(name, n);  

  strcpy(sex, s);

  this->age = age;

  strcpy(address, sch);

  strcpy(otherinfo, oi);

 }

 virtual void displayInfo(){

  cout << "歌手 "<<name << "  的信息:" << endl;

  cout<< "\t性别:\t\t" << sex << endl;

  cout << "\t年龄:\t\t" << age << endl;

  cout << "\t身高:\t\t" << stature << endl;

  cout << "\t住址:\t\t" << address << endl;

  cout << "\t附加信息:\t" << otherinfo << endl;

 }

};

int main(void){

 StudentClass p1("小明", "男", 19, "XX大学", "学生测试。");

 SingerClass p2("刘德华", "男", 40, 180,"保密不公开。", "歌手测试。");

 TeacherClass p3("李老师", "女", 39, "高级教师", "老师测试");

 

 XXXPerson *p[3] = {&p1, &p2, &p3};

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

  p[i]->displayInfo();

 

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ 测试 class c