#include<iostream.h>
#include
<stdlib.h>
const int max=5;
class stu
{
private:
    
int length;
    
int result[max];
public:
    stu (
int length=0){}
    ~stu(){}
    void input();
//输入函数
    void output()
const;//输出函数
    char 
* insert();//插入函数
    char 
* remove();//删除函数
    void search()
const;//顺序查找
    void sort();
//排序函数
};

void stu::input()
{
    cout
<<"开始建立顺序表,请输入学生成绩表中学生的人数:";
    cin
>>length;
    cout
<<endl;
    
    
if(length<=0||length>max)
    {
        cerr
<<"学生成绩表的长度范围输入错误!"<<endl;
        
exit(1);
    }
    
    
    
for(int i=0;i<length;i++)
    {
        cout
<<"请输入第"<<i+1<<"学生的成绩:";
        cin
>>result[i];
    }
}

void stu::output()
const
{
    
if(length<=0)
    {
        cerr
<<"学生成绩表为空!"<<endl;
        
exit(1);
    }
    
for(int i=0;i<length;i++)
    {
        cout
<<""<<i+1<<"个学生的成绩是:"<<result[i]<<endl;
    }
}

char 
*stu::insert()
{
    
if(length==max)
    {
        cerr
<<"学生成绩表满,不能插入!";
        
exit(1);
    }
    
    
int i=0;//要插入学生成绩的位置
    cout
<<"请输入要插入学生成绩的位置:";
    cin
>>i;
    cout
<<endl;
    cout
<<endl;
    
if(i<0||i>length)
    {
        cerr
<<"插入位置不合理!"<<endl;
        
exit(1);
    }
    
    cout
<<"请输入要插入学生的成绩:";
    
int temp=0;//要插入学生的成绩
    cin
>>temp;
    cout
<<endl;
    
for(int j=length-1;j>=i;j--)
    {
        result[j
+1]=result[j];
    }
    result[i]
=temp;
    length
++;
    return 
"插入成功\n";
    

}

char 
*stu::remove()
{
    
if(length==0)
    {
        cerr
<<"学生成绩表为空,不能删除!";
        
exit(1);
    }
    
    
int i=0;//要删除学生成绩的位置
    cout
<<"请输入要删除学生成绩的位置:";
    cin
>>i;
    cout
<<endl;
    
if(i<0||i>length-1)
    {
        cerr
<<"不存在要删除学生的位置!";
        
exit(1);
    }

    
//int temp=result[i-1];//将要被删除的学生成绩存入一个临时变量
    
for(int j=i;j<length;j++)
        result[j]
=result[j+1];
    length
--;
    return 
"删除成功\n";
    
}

void stu::search()
const
{
    
if(length==0)
    {
        cerr
<<"学生成绩表为空!";
        
exit(1);
    }
    
int temp=0;
    cout
<<"请输入要查询学生成绩的成绩:";
    cin
>>temp;
    cout
<<endl;
    
for(int i=0;i<length;i++)
        
if(result[i]==temp) 
        {
            cout
<<"查找成功!您查找的成绩在学生成绩表的第"<<i<<"个位置"<<endl;
            break;
        }
    cout
<<"查找失败!"<<endl;
}

void stu::sort()
{
    
int temp=0;
    
for(int i=0;i<length-1;i++)
    {
        
int k=i;
        
for(int j=i+1;j<length;j++)
            
if(result[k]>=result[j]) k=j;
        
if(k!=i)
        {
            temp
=result[k];
            result[k]
=result[i];
            result[i]
=temp;
        }
    }
    cout
<<"排序完成"<<endl;
    
for(i=0;i<length;i++)
        cout
<<result[i]<<endl;
}


int menu()
{
    cout
<<"************************* 学生成绩管理系统(线性表) ****************************"<<endl;
    cout
<<"*                                                                             *"<<endl;
    cout
<<"*                                                                             *"<<endl;
    cout
<<"*       1. 输入学生的成绩                                                     *"<<endl;
    cout
<<"*       2. 插入学生的成绩                                                     *"<<endl;
    cout
<<"*       3. 删除指定学生的成绩                                                 *"<<endl;
    cout
<<"*       4. 查找指定学生的成绩                                                 *"<<endl;
    cout
<<"*       5. 对学生的成绩排序                                                   *"<<endl;
    cout
<<"*       6. 输出学生的成绩                                                     *"<<endl;
    cout
<<"*       7. 退出                                                               *"<<endl;
    cout
<<"*                                                                             *"<<endl;
    cout
<<"*******************************************************************************"<<endl;
    
int choice=0;
    cout
<<"请选择动作:";
    cin
>>choice;
    cout
<<endl;
    return choice;
}

void main()
{
    stu student;
    bool 
exit=false;
    
int choice=menu();
    
while(true)
    {
        switch(choice)
        {
        
case 1:student.input();break;
        
case 2:student.insert();break;
        
case 3:student.remove();break;
        
case 4:student.search();break;
        
case 5:student.sort();break;
        
case 6:student.output();break;
        
case 7:exit=true;break;
        }
        
if(exit==true)
            break;
        cout
<<endl;
        cout
<<"请继续选择动作:";
        cin
>>choice;
        cout
<<endl;
            
    }
}