dalice1111 2017-06-13 01:24 采纳率: 0%
浏览 705

C++问题,求帮看看代码里有哪里有错误,代码有点长,输出函数和排名函数好像有问题,运行的时候有错误。

``# include

include

include

using namespace std;
class StudentMessage
{
public:
string name;
int ID;
int num;
float Score[3];

} ;
class Student:public StudentMessage
{

private:
    float sum;
    float ave;
    Student *s;
public:
    ~Student();
    void input(void);
    void output(void);
    void search(void);
    void remove(void);
    void change(void);
    void MathsRank(void);
    void EnglishRank(void);
    void CRank(void);
    void SumRank(void);

};
Student::~Student()
{
delete(s);
}
void Student::input(void)
{
int i,num;
cout<<"请输入学生的人数:";
cin>>num;
s= new Student[num];
for(i=1;i<=num;i++)
{
cout<<"请输入第"< cin>>s[i-1].name;
cout<<"请输入第"< cin>>s[i-1].ID;
cout<<"请输入第"< cin>>s[i-1].Score[0];
cout<<"请输入第"< cin>>s[i-1].Score[1];
cout<<"请输入第"< cin>>s[i-1].Score[2];
s[i-1].sum = s[i-1].Score[0] + s[i-1].Score[1] + s[i-1].Score[2];

s[i-1].ave = s[i-1].sum /3;
}
}
void Student::output(void)
{
int i;
for(i=1;i<=num;i++)
{
cout<<"姓名:"< }
}
void Student::search(void)
{
string name;
cout cin>>name;

int i;  

for(i=1; i<=num; i++)  
{  
    if(name == s[i-1].name)  
    {  
        break;  
    }  
}  
        cout<<"姓名:"<<s[i-1].name<<endl<<"学号:"<<s[i-1].ID<<endl<<"数学成绩:"<<s[i-1].Score[0]<<endl<<"英语成绩:"<<s[i-1].Score[1]<<endl<<"C++成绩:"<<s[i-1].Score[2]<<endl<<"总分:"<<s[i-1].sum<<endl<<"平均分:"<<s[i-1].ave<<endl;

}
void Student::remove(void)
{
int n,i,j;
string name;
cout<<"请输入需要删除的学生的姓名:";
cin>>name;
for(i=1;i<=num;i++)
{
if(name==s[i-1].name)
{
n=i;
}
}
for(j=n+1;j<num;j++)
{
s[j-2]=s[j-1];
}
num=num-1;
}

void Student::change(void)
{
int i;
string n;
cout<<"请输入需要修改的学生的姓名:";
cin>>n;
for(i=0;i {
if(n==s[i].name)
{
break;
}
}
cout cout cout cin>>s[i].name;
cout<<"请输入该学生的学号:";
cin>>s[i].ID;
cout<<"请输入该学生的数学成绩:";
cin>>s[i].Score[0];
cout<<"请输入该学生的英语成绩:";
cin>>s[i].Score[1];
cout<<"请输入第该学生的C++成绩:";
cin>>s[i].Score[2];
s[i].sum = s[i].Score[0] + s[i].Score[1] + s[i].Score[2];

s[i].ave = s[i].sum / 3;
}
void Student::MathsRank(void)
{
int i,t;
for(i=1;i<=num;i++)
{
if(s[i].Score[0] > s[i-1].Score[0] && i-1>=0)
{
t=s[i-1].Score[0];
s[i-1].Score[0]=s[i].Score[0];
s[i].Score[0]=t;
}
cout< }
}
void Student::EnglishRank(void)
{
int i,t;
for(i=1;i {
if(s[i].Score[1] > s[i-1].Score[1] && i-1>=0)
{
t=s[i-1].Score[1];
s[i-1].Score[1]=s[i].Score[1];
s[i].Score[1]=t;
}
cout< }
}
void Student::CRank(void)
{ int i,t;
for(i=1;i {
if(s[i].Score[2] > s[i-1].Score[2] && i-1>=0)
{
t=s[i-1].Score[2];
s[i-1].Score[2]=s[i].Score[2];
s[i].Score[2]=t;
}
cout<<s[i-1].Score[2]<<endl;
}

}
void Student::SumRank(void)
{
int i,t;
for(i=1;i<=num;i++)
{
if(s[i].sum > s[i-1].sum && i-1>=0)
{
t=s[i-1].sum;
s[i-1].sum=s[i].sum;
s[i].sum=t;
}
cout<<s[i-1].sum<<endl;
}
}
int main()
{

cout<<"欢迎使用学生成绩管理系统"<<endl<<endl;        
cout<<"请按任意将进入学生管理系统:"<<endl<<endl;   
cout<<"请选择要操作的命令:"<<endl<<endl;    
cout<<"1 输入学生信息"<<endl<<endl;    
cout<<"2 输出学生信息"<<endl<<endl;    
cout<<"3 查找学生信息"<<endl<<endl;    
cout<<"4 删除学生信息"<<endl<<endl;    
cout<<"5 修改学生信息"<<endl<<endl;    
cout<<"6 学生数学成绩的排名"<<endl<<endl;    
cout<<"7 学生英语成绩的排名"<<endl<<endl;    
cout<<"8 学生C++成绩的排名"<<endl<<endl;    
cout<<"9 学生成绩总分的排名"<<endl<<endl;  
int i;
Student s;   
while(1)
{
    cout<<"请选择操作命令:";
    cin>>i;
    switch(i)
    {
        case 1:
                s.input();
                break;  
        case 2:
                s.output();
                break;
        case 3:
                s.search();
                break;
        case 4:
                s.remove();
                break;
        case 5:
                s.change();
                break;
        case 6:
                s.MathsRank();
                s.output();
                break;
        case 7:
                s.EnglishRank();
                s.output();
                break;  
        case 8:
                s.CRank();
                s.output();
                break;
        case 9:
                s.SumRank();
                s.output();
                break;
        default:
                break;
     } 
} 
return 0;   

}
`


  • 写回答

3条回答 默认 最新

  • hyh0lh 2017-06-13 02:06
    关注

    StudentMessage::num 是什么时候赋值的?你定义它的目的是什么?

    题外话:你的代码怎么那么多错漏,你编译过吗?

    评论

报告相同问题?

悬赏问题

  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R
  • ¥15 在线请求openmv与pixhawk 实现实时目标跟踪的具体通讯方法
  • ¥15 八路抢答器设计出现故障
  • ¥15 opencv 无法读取视频
  • ¥15 用matlab 实现通信仿真
  • ¥15 按键修改电子时钟,C51单片机
  • ¥60 Java中实现如何实现张量类,并用于图像处理(不运用其他科学计算库和图像处理库))
  • ¥20 5037端口被adb自己占了