維克斯討論區
請高手幫忙指點教導我~~
寫一個程式,先建立一個人員類別,再以繼承方式建立一個代表學生的類別以及一個代表老師的類別,其中學生與老師分別要有以下成員:
成員 學生 老師
姓名 V V
出生年 V V
學號 V X
年級 V X
教授科目 X V
(學生要有姓名、出生年、學號、年級等成員;老師要有姓名、出生年、教授科目等成員)
請安排繼承結構,並建立3個學生與3個老師於螢幕上顯示輸出。最後請增加一個可依據年齡排序的方法 。
因為我剛接觸C++不久,所以程式碼內容不知通不通?(不知對不對?)有些地方不知如何表達?(例如老師那邊),還請各位大大多多指導~!教教我~~
#include<iostream>
#include<string>
using namespace std;
class Person{
public:
Person(string,int);
Person(){}
protected:
string name;
int birtheryear;
};
Person::Person(string n, int a) : name(n)
{
birtheryear = a;
}
class Student: public Person {
friend ostream& operator<<(ostream&, Student &);
public:
Student(string n,int a,string i,int g) : Person(n,a)
{
id = i;
grade = g;
}
private:
string id;
int grade;
};
ostream& operator<<(ostream& o, Student & s)
{
return o << "姓名" << s.name << "出生年" << s.birtherday << "學號" << s.id << "年"<< s.grade << endl;
}
class Teacher: public Person {
friend ostream& operator<<(ostream&, Teacher &);
public:
int main()
{
String *aa[]={ new Student("李怡珊", 1992,00000001,1),
new Student("黃文耀", 1990,00000002,2),
new Student("王松山", 1989,00000003,3),
new Teacher("張誠升", 1989,國文),
new Teacher("王山奎", 1989,數學),
new Teacher("黃美麗", 1989,自然),}
cout << "原始資料為" << endl;
for(int i=0;i<3;i++)
cout << *aa;
for(int j=3;j<6;j++)
cout << *aa[j];
for(int i=0;i<=5;i++)
for(int j=i+1;i<6;j++)
if(*aa > *aa[j]){
Person *temp;
temp=aa;
aa=aa[j];
aa[j]=temp;
cout << "排序後"<< endl;
for(int i=0;i<6;i++)
cout<< *aa;
}
}
還請會的人..教教我這個初學者~~幫我完成這支程式~~(因為很想學會~~)
|