先说一些废话:代码一点不会,所以抄了个书上的。在上机的时候敲了两遍,边抄边记住。最后实在不知道到底哪里错了,索性就这样了。
const int MaxSize=10;
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);
void PrintList();
private:
int data[MaxSize];
int length;
};
const int MaxSize=10
这个老师布置的是N个数据,估计是要具体点比较好写。
#include<iostream>
using namespace std;
#include "SeqList.h"
SeqList::SeqList(int a[],int n)
{
if(n>MaxSize)
throw "参数非法";
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-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;
}
void SeqList::PrintList()
{
for(int i=0;i<length;i++)
cout<<data[i]<<" ";
cout<<endl;
}
#include "SeqList.h"
上面这句要去掉了。
void main()
{
int r[5]=1,2,3,4,5};
SeqList L(r,5);
cout<<"执行插入操作前数据为:"<<endl;
L.PrintList();
try
{
L.Insert(2,3);
}
catch(char *s)
书上给的代码我原封不动抄了一遍,发现怎么都有错啊,估计是另要写类似
#include<iostream>
这样的语句。给的代码涉及到头文件与源程序之间的引用,然后我把类似
#include "SeqList.h"
这样的语句去掉,把三部分代码弄到一个文件里,发现没有那么多错了。还是有错误,没法。
SeqList::SeqList(int a[],int n)
从第二部分的这里开始错,后面大同小异。