c++控制台应用程序

来源:互联网 发布:奇迹暖暖设计服装软件 编辑:程序博客网 时间:2024/06/03 13:51
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();
 
}


原创粉丝点击