回 帖 发 新 帖 刷新版面

主题:有关档案类定义的问题(各位帮忙改改错吧!!!)

[size=4]定义一个档案类,包含档案编号、档案名称数据成员,要求: 
1、分别编写成员函数用于实现对档案信息的输入、输出与修改(PS:不能修改档案编号)。 
2、以此档案类为基类公有派生出学生档案类,其中包含学生的学号、姓名、性别、年龄、3门课程成绩数据;定义成员函数用于实现数据的输入、输出与修改(PS:不能修改学号)。 
3、 以此档案类为基类公有派生出教师档案类,其中包含教师的教工号、姓名、性别、年龄、工资数据;定义成员函数用于实现数据的输入、输出与修改(PS:不能修改教工号)。 
4、可以实现对10个学生与10个教师的档案操作(输入、输出、修改)。


[color=800000]#include<iostream>
using namespace std;
class document
{public:
    char  name[20];
    int number;
    int i;

    int NO();
    void setname(char *);
    char getname();
};
void document::setname(char *namestr)
{strcpy(name,namestr);}
int document::NO()

cin>>number;return number;
}
class students:protected document    
{public:
 int snumber();
 char sex();
 int age();
 int grade();
 };
int students::snumber()
{int j;j=number;return j;}
char students::sex()
{char s;cin>>s;return s;}
int students::age()
{int a;cin>>a;return a;}
int students::grade()
{int g;cin>>g;return g;}
class teachers:protected document    
{public:
 int snumber();
 char sex();
 int age();
 int pay();
 };
int teachers::snumber()
{int j;j=number;return j;}
char teachers::sex()
{char s;cin>>s;return s;}
int teachers::age()
{int a;cin>>a;return a;}
int teachers::pay()
{int p;cin>>p;return p;}
main()
{       int i;int j;
     teachers g;students w;

    char student[5],namestr;
    char teacher[5]; 
    for(i=0;i<20;i++)
    {cout<<"please scanf a student's name"<<endl;
    cin>>namestr;
    }
    students();
     student[j]=w.snumber();
     student[j]=w.sex();
     student[j]=w.age();
     student[j]=w.grade();
    for(j=0;j<4;j++)
    cout<<w.snumber<<w.sex<<w.age<<w.grade<<endl;
    for(i=0;i<20;i++)
    {cout<<"please scanf a teacher's name"<<endl;
    cin>>namestr;
    }
    teachers();
    teacher[j]=g.snumber();
     teacher[j]=g.sex();
     teacher[j]=g.age();
     teacher[j]=g.pay();
     for(j=0;j<4;j++)
    cout<<g.snumber<<g.sex<<g.age<<g.pay<<endl;
}[/color][/size]

回复列表 (共7个回复)

沙发

cout<<w.snumber<<w.sex<<w.age<<w.grade<<endl;
调用成员函数要有括号啊
w.snumber()........

板凳

char student[5],namestr

namestr应该是个  string 变量吧?
string   namestr

3 楼

student[j]=w.snumber();
     student[j]=w.sex();
     student[j]=w.age();
     student[j]=w.grade();

那些j是干什么的?j还没被初始化

4 楼

是的,我已经改了一下,现在可以输入相关数据了,但是不能输出,还请达人帮帮忙!

#include<iostream>
using namespace std;
class document
{public:
    char  name[2];
    int number;
    int i;

    int NO();
    void setname(char *);
    char getname();
};
void document::setname(char *namestr)
{strcpy(name,namestr);}
int document::NO()

cin>>number;return number;
}
class students:protected document    
{public:
 int snumber();
 char sex();
 int age();
 int grade();
 };
int students::snumber()
{int j;j=number;return j;}
char students::sex()
{char s;cin>>s;return s;}
int students::age()
{int a;cin>>a;return a;}
int students::grade()
{int g;cin>>g;return g;}
class teachers:protected document    
{public:
 int snumber();
 char sex();
 int age();
 int pay();
 };
int teachers::snumber()
{int j;j=number;return j;}
char teachers::sex()
{char s;cin>>s;return s;}
int teachers::age()
{int a;cin>>a;return a;}
int teachers::pay()
{int p;cin>>p;return p;}
main()
{       int i;int j;
     teachers g;students w;

    char student[5],namestr;
    char teacher[5]; 
    for(i=0;i<2;i++)
    {cout<<"please scanf a student's name"<<endl;
     cin>>namestr;
    
     w.snumber();
     w.sex();
     w.age();
     w.grade();
    }

    cout<<"编号"<<w.snumber<<"性别"<<w.sex <<"年龄"<<w.age<<"成绩"<<w.grade<<endl;
    for(i=0;i<2;i++)
    {cout<<"please scanf a teacher's name"<<endl;
    cin>>namestr;
    
    
    g.snumber();
    g.sex();
    g.age();
    g.pay();
    }
   
    cout<<"编号"<<g.snumber<<"性别"<<g.sex<<"年龄"<<g.age<<"工资"<<g.pay<<endl;
}

5 楼

cout<<"编号"<<g.snumber<<"性别"<<g.sex<<"年龄"<<g.age<<"工资"<<g.pay<<endl;
那些成员函数的括号也要加上

6 楼

而且你根本没往  结构体里面存入  性别  年龄  工资等变量啊

7 楼

[quote]而且你根本没往  结构体里面存入  性别  年龄  工资等变量啊[/quote]
是啊,就是这样才没法输出,输出都是随机数.
求教一下怎么输入,偶不会类,因为刚才试了一下有错误.
又调试了半天,就只有名称和编号没法输出了.
希望达人再帮帮忙!!!
谢谢!!!!!!

我来回复

您尚未登录,请登录后再回复。点此登录或注册