间接寻址建立学生成绩

实验内容:     

建立一个由n个学生成绩的顺序表,n的大小由自己确定,每一个学生的成绩信息由自己确定,实现数据的对表进行插入、删除、查找等操作。分别输出结果。 

代码:


#include<iostream>  

using namespace std;  
const int M=10;  
struct Node  
{  
    int data;  
};  
class Student
{  
public:  
    Student();  
   Student(int a[],int n);  
    ~Student();  
    void Input(int i,int x);  
    int Delete(int i);  
    int Locate(int x);  
    void Print();  
private:  
    Node *data[M];  
    int length;  
};  
Student::Student()  
{  
    for(int i=0;i<M;i++)  
    {data[i]=NULL;}  
    length=0;  
}  
Student::Student(int a[],int n)  
{  
    if(n<0||n>M) 
throw"参数非法";  
    for(int i=0;i<M;i++)  
    {data[i]=NULL;}  
    for(int j=0;j<n;j++)  
    {  
        data[j]=new Node;  
        data[j]->data=a[j];  
    }  
    length=n;  
}  
Student::~Student()  
{  
    Node *p;    
    for(int i=0;i<length;i++)    
    {    
        p=data[i];    
        data[i]=NULL;    
        delete p;    
    }    
}  
void Student::Input(int i,int x)  
{  
    if(i<1||i>length+1) 
throw"位置非法";  
    for(int j=length;j>=i;j--)  
        data[j]=data[j-1];  
    data[i-1]=new Node;  
    data[i-1]->data=x;  
    length++;  
}  
int Student::Delete (int i)  
{  
    if(length==0) throw"下溢";  
    if(i<1||i>length) throw"位置非法";  
    Node *p=data[i-1];  
    int x=p->data;  
    for(int j=i-1;j<length-1;j++)  
        data[j]=data[j+1];  
    delete p;  
    length--;  
    data[length]=NULL;  
    return x;  
}  
int Student::Locate(int x)  
{  
    for(int i=0;i<length;i++)  
        if(data[i]->data ==x) return i+1;  
    return 0;  
}     
void Student::Print()  
{  
    for(int i=0;i<length;i++)  
cout<<"第"<<i+1<<"个学生成绩:"<<data[i]->data <<endl;
    cout<<endl;  
}  
void main()
{
int r[5]={80,90,70,60,50};
Student L(r,5);
cout<<"录入学生信息:"<<endl;
L.Print();
cout<<endl;
cout<<"在第2个位置插入85"<<endl;
L.Input(2,85);
cout<<"插入后学生成绩为:"<<endl;
L.Print();
cout<<endl;
cout<<"成绩为85的学生位置为:"<<endl;
cout<<L.Locate(85)<<endl;
cout<<"删除第一个学生成绩"<<endl;
L.Delete(1);
cout<<"删除后学生成绩为:"<<endl;

L.Print();}





猜你喜欢

转载自blog.csdn.net/CHENCHWT/article/details/80172281