顺序表学生成绩实验

顺序表实验

#include<iostream>

#include<string>

using namespace std;

const int MaxSize=10;

class Student

{

private:

       intGrade[MaxSize];

      

       char*name[MaxSize];

       intlenght;

public:

       Student(){lenght=0;}

       Student(char*a[],int b[],int x);

       ~Student(){};

       voidInsert(int i,char*n,int m);

       intDelete(int i);

       charLocate(char *k);

       voidPrint();

};

#include<iostream>

using namespace std;

#include "SeqList.h"

Student::Student(char *a[],int b[],int x)

{

       if(x>MaxSize)throw"上溢";

       for(inti=0;i<x;i++)

       {

              name[i]=a[i];

              Grade[i]=b[i];

             

       }

       lenght=x;

}

void Student::Insert(int i,char *n,int m)

{

       if(lenght>=MaxSize)throw"上溢";

       if(i<1||i>lenght+1)throw"位置非法";

       for(intj=lenght;j>=i;j--)

       {

              name[j]=name[j-1];

              Grade[j]=Grade[j-1];

             

       }

       name[i-1]=n;

       Grade[i-1]=m;

      

       lenght++;

}

int Student::Delete(int i)

{

       if(lenght==0)throw"下溢";

       if(i<1||i>lenght+1)throw"位置非法";

       charg=*name[i-1];

       for(intj=i;j<lenght;j++)

       {

              name[j-1]=name[j];

       }

       lenght--;

       returng;

}

char Student::Locate(char *k)

{

       for(inti=0;i<lenght;i++)

              if(name[i]==k)cout<<i+1<<endl;

       return0;

}

void Student::Print()

{

       for(inti=0;i<lenght;i++)

              cout<<name[i]<<""<<Grade[i]<<endl;

}

#include<iostream>

using namespace std;

#include "SeqList.h"

void main()

{

       char*r[5]={"A","B","C","D","E"};

       intg[5]={100,85,90,67,95};

       cout<<"执行插入操作前的数据为:"<<endl;

       StudentL(r,g,5);

       L.Print();

       try

       {

              L.Insert(2,"F",60);

       }

       catch(char*w)

       {

              cout<<w<<endl;

       }

       cout<<"执行插入操作后数据为:"<<endl;

       L.Print();

       cout<<"姓名为A的学生的序号为:"<<endl;

       cout<<L.Locate("A")<<endl;

       cout<<"执行删除第一个学生数据的操作,删除前数据为:"<<endl;

       L.Print();

       try

       {

              L.Delete(1);

       }

       catch(char*w)

       {

              cout<<w<<endl;

       }

       cout<<"删除后数据为:"<<endl;

       L.Print();

}

猜你喜欢

转载自blog.csdn.net/Vring_Jan/article/details/80188206