实验二:顺序表实现N个学生成绩操作

来源:互联网 发布:js gzip 解压缩字符串 编辑:程序博客网 时间:2024/03/28 22:34

SeqList.h:

#ifndef SeqList_H#define SeqList_Hconst 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;};#endif


SeqList.cpp

#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]=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;}


SeqList_main.cpp

#include<iostream>using namespace std;#include "SeqList.h"void main(){int r[5]={95,68,87,85,82};SeqList L(r,5);cout<<"5个学生的成绩分别是:"<<endl;L.PrintList();cout<<"现有A学生成绩为89"<<endl;try{L.Insert(3,89);}catch(char *s){cout<<s<<endl;}cout<<"将A学生的成绩插到第3个后成绩为:"<<endl;L.PrintList();cout<<"成绩为85的学生排在:";cout<<L.Locate(85)<<endl;cout<<"删除第4个学生的成绩前,所有学生成绩分别为:"<<endl;L.PrintList();try{L.Delete(4);}catch(char *s){cout<<s<<endl;}cout<<"删除后所有学生成绩分别为:"<<endl;L.PrintList();}


 

0 0
原创粉丝点击