基于顺序存储结构的图书信息表的新图书的入库
#include<iostream>
#include<stdlib.h>
#include<string.h>typedef int status;#define OK 1using namespace std;typedef struct{char no[50];char name[50];float price;
}Book;typedef struct{Book* elem;int len;
}SqList;status InitList(SqList* L,int n){L->elem=(Book*)malloc((n+5)*sizeof(Book));if(!L->elem) exit(-1);L->len=0;return OK;
}status CreateList(SqList* L,int n){for(int i=0;i<n;i++){Book b;cin>>b.no>>b.name>>b.price;L->elem[L->len]=b;L->len++;}return OK;
}bool InsertList(SqList*L,int place,Book b){ //place是序号不是下标 if(place<1 || place>L->len){cout<<"Sorry,the position to be inserted is invalid!";return false;}for(int i=L->len;i>=place;i--){L->elem[i]=L->elem[i-1];} L->elem[place-1]=b;L->len++;return true;
}void PrintList(SqList* L){for(int i=0;i<L->len;i++){printf("%s %s %.2f\n",L->elem[i].no,L->elem[i].name,L->elem[i].price);}
}int main(){SqList L;int n=0;cin>>n; //图书数 InitList(&L,n);CreateList(&L,n);int place=0;cin>>place;Book b;cin>>b.no>>b.name>>b.price;bool success=InsertList(&L,place,b); if(success)PrintList(&L);return 0;
}
基于顺序存储结构的图书信息表的新图书的出库
#include<iostream>
#include<stdlib.h>
#include<string.h>typedef int status;#define OK 1using namespace std;typedef struct{char no[50];char name[50];float price;
}Book;typedef struct{Book* elem;int len;
}SqList;status InitList(SqList* L,int n){L->elem=(Book*)malloc((n+5)*sizeof(Book));if(!L->elem) exit(-1);L->len=0;return OK;
}status CreateList(SqList* L,int n){for(int i=0;i<n;i++){Book b;cin>>b.no>>b.name>>b.price;L->elem[L->len]=b;L->len++;}return OK;
}bool DeleteList(SqList*L,int place){ //place是序号不是下标 if(place<1 || place>L->len){cout<<"Sorry,the position to be deleted is invalid!";return false;}for(int i=place;i<L->len;i++){L->elem[i-1]=L->elem[i];} L->len--;return true;
}void PrintList(SqList* L){for(int i=0;i<L->len;i++){printf("%s %s %.2f\n",L->elem[i].no,L->elem[i].name,L->elem[i].price);}
}int main(){SqList L;int n=0;cin>>n; //图书数 InitList(&L,n);CreateList(&L,n);int place=0;cin>>place;bool success=DeleteList(&L,place); if(success)PrintList(&L);return 0;
}