头文件:
- #ifndef Seqlist_H
- #define Seqlist_H
- const int MaxSize=60;
- class Seqlist
- {
- public:
- Seqlist(){length=0;}
- Seqlist(int a[],int n);
- ~Seqlist(){}
- void Insert(int i,int x);
- int Delete(int i);
- int Locate(int x);
- int Get(int x);
- void PrintList();
- private:
- int data[MaxSize];
- int length;
- };
- #endif
- #include<iostream>
- using namespace std;
- #include "Seqlist.H"
- Seqlist::Seqlist(int a[],int n)
- {
- if(n>MaxSize)thro
-
- for(int i=0;i<n;i++)
- data[i]=a[i];
- length=n;
- }
- void Seqlist::Insert(int i,int x)
- {
- if(length>MaxSize)throw"上溢";
- if(i<1||i>length+1)throw"未知非法";
- for(int j=length;j>=i;j--)
- data[j]=data[j-1];
- data[i-1]=x;
- length++;
- }
- int Seqlist::Delete(int i)
- {
- if(length==0)throw"下溢";
- if(i<1||i>length)throw"位置非法";
- int x=data[i-1];
- for (int j=i;j<length;j++)
- data[j-1]=data[j];
- length--;
- return x;
- }
- int Seqlist ::Locate(int x)
- {
- for(int i=0;i<length;i++)
- if(data[i]==x)return i+1;
- return 0;
- }
- int Seqlist::Get(int x)
- {
- if(x<1&&x>length)throw"位置非法";
- else return data[x-1];
- }
- void Seqlist ::PrintList()
- {
- for(int i=0;i<length;i++)
- cout<<<<data[i]<<" ";
- cout<<endl;
主函数:
- #include<iostream>
- using namespace std;
- #include "Seqlist.H"
- void main()
- {
- int r[5]={12,23,38,49,57};
- Seqlist L(r,5);
- cout<<"执行插入学生成绩前数据为:"<<endl;
- L.PrintList();
- try
- {
- L.Insert(2,89);
- }
- catch (char *s)
- {
- cout<<s<<endl;
- }
- cout<<"执行插入后学生成绩的数据为:"<<endl;
- L.PrintList();
- try
- {
- L.Delete(1);
- }
- catch (char *s)
- {
- cout<<s<<endl;
- }
- cout<<"成绩为38的元素位置为:";
- cout<<L.Locate(38)<<endl;
- cout<<"位置为4的成绩位置为:";
- cout<<L.Get(4)<<endl;
- cout<<"删除后成绩为:"<<endl;
- L.PrintList();
- }