引入万能库和命名空间
#include<bits/stdc++.h>
using namespace std;
定义结构体
typedef struct
{
char no[20];
char name[20];
double price;
}Book;
typedef struct
{
Book* elem;
int length;
}SqList;
初始化顺序表
//初始化_顺序表
int init_SqList(SqList &L)
{
L.elem=new Book[30];
if(!L.elem){
cout<<"顺序表构造失败"<<endl;
exit(-1);
}
L.length=0;
cout<<"顺序表构造成功"<<endl;
return 1;
}
添加
//添加_顺序表
int set_SqList(SqList &L)
{
int x,i;
cout<<"请输入你要录入的图书数量:";
cin>>x;
for(i=1;i<=x;i++){
cout<<"书号:";
cin>>L.elem[i].no;
cout<<"书名:";
cin>>L.elem[i].name;
cout<<"书价:";
cin>>L.elem[i].price;
cout<<""<<endl;
++L.length;
}
return 0;
}
查询全部
void show_SqList(SqList L){
int i=1;
cout<<"书号\t\t"<<"书名\t\t"<<"图书价格"<<endl;
for(i;i<=L.length;i++){
cout<<L.elem[i].no<<"\t\t"<<L.elem[i].name<<"\t\t"<<L.elem[i].price<<endl;
}
}
指定查询
int find_SqList(SqList L)
{
int n;
char a[20];
char b[20];
double c;
int i;
cout<<"----1.按书号查找-----"<<endl;
cout<<"----2.按书名查找-----"<<endl;
cout<<"----3.按书价查找-----"<<endl;
cout<<"请选择你要执行的操作:";
cin>>n;
switch (n) {
case 1:
cout<<"请输入你要查询的书号: ";
cin>>a;
for(i=0;i<L.length;i++){
if(!strcmp(L.elem[i].no,a)){
cout<<"书号\t\t"<<"书名\t\t"<<"图书价格"<<endl;
cout<<L.elem[i].no<<"\t\t"<<L.elem[i].name<<"\t\t"<<L.elem[i].price<<endl;
}
}
break;
case 2:
cout<<"请输入你要查询的书名: ";
cin>>b;
for(i=0;i<L.length;i++){
if(!strcmp(L.elem[i].name,b)){
cout<<"书号\t\t"<<"书名\t\t"<<"图书价格"<<endl;
cout<<L.elem[i].no<<"\t\t"<<L.elem[i].name<<"\t\t"<<L.elem[i].price<<endl;
}
}
break;
case 3:
cout<<"请输入你要查询的书价: ";
cin>>c;
for(i=0;i<L.length;i++){
if(L.elem[i].price==c){
cout<<"书号\t\t"<<"书名\t\t"<<"图书价格"<<endl;
cout<<L.elem[i].no<<"\t\t"<<L.elem[i].name<<"\t\t"<<L.elem[i].price<<endl;
}
}
break;
default:
break;
}
return 0;
}
插入
int insert_SqList(SqList &L)
{
int n;
int i;
char a[20];
char b[20];
double c;
cout<<"请输入你要插入的位置: ";
cin>>n;
if(n<1|n>L.length+1){cout<<"插入位置不合法!!"<<endl;return 0;}
if(L.length==30){cout<<"顺序表已经存满!"<<endl;return 0;}
//腾出要插入的位置n
for(int i=L.length;i>=n;i--){
L.elem[i+1].price=L.elem[i].price;
strcpy(L.elem[i+1].no,L.elem[i].no);
strcpy(L.elem[i+1].name,L.elem[i].name);
}
//在位置n插入图书
cout<<"请输入你要添加的图书信息: "<<endl;
cout<<"书号: ";
cin>>a;
strcpy(L.elem[n].no,a);
cout<<"书名: ";
cin>>b;
strcpy(L.elem[n].name,b);
cout<<"图书价格: ";
cin>>c;
L.elem[n].price=c;
L.length++;
return 0;
}
删除
int delete_SqList(SqList &L)
{
int n;
int i;
cout<<"请输入你要删除的位置: ";
cin>>n;
if(n<1|n>L.length+1){cout<<"删除位置不合法!!"<<endl;return 0;}
//覆盖要删除的位置
for(i=n;i<L.length;i++){
L.elem[i].price=L.elem[i+1].price;
strcpy(L.elem[i].no,L.elem[i+1].no);
strcpy(L.elem[i].name,L.elem[i+1].name);
}
L.length--;
cout<<"删除成功!"<<endl;
return 1;
}
主方法
int main()
{
int n;
SqList L;
system("color 3b");
while (1) {
cout<<"=======================图书管理系统============================"<<endl;
cout<<"-----------------------1.初始化-------------------------------"<<endl;
cout<<"-----------------------2.录入图书信息--------------------------"<<endl;
cout<<"-----------------------3.查看所有图书--------------------------"<<endl;
cout<<"-----------------------4.查询图书-----------------------------"<<endl;
cout<<"-----------------------5.插入图书-----------------------------"<<endl;
cout<<"-----------------------6.删除图书-----------------------------"<<endl;
cout<<"-----------------------7.图书数量-----------------------------"<<endl;
cout<<"-----------------------0.退出---------------------------------"<<endl;
cout<<"请选择你要执行的操作:";
cin>>n;
cout<<""<<endl;
switch (n) {
case 1:
init_SqList(L);
break;
case 2:
set_SqList(L);
break;
case 3:
show_SqList(L);
break;
case 4:
find_SqList(L);
break;
case 5:
insert_SqList(L);
break;
case 6:
delete_SqList(L);
break;
case 7:
cout<<"现有图书的总数量为: "<<L.length<<endl;
break;
case 0:
cout<<"-----------感谢使用图书管理系统--------"<<endl;
exit(0);
break;
default:
cout<<"你输入的数字有错,请输入0-6的执行数字。"<<endl;
break;
}
}
return 0;
}
全部代码及实现
#include<bits/stdc++.h>
using namespace std;
typedef struct
{
char no[20];
char name[20];
double price;
}Book;
typedef struct
{
Book* elem;
int length;
}SqList;
//初始化_顺序表
int init_SqList(SqList &L)
{
L.elem=new Book[30];
if(!L.elem){
cout<<"顺序表构造失败"<<endl;
exit(-1);
}
L.length=0;
cout<<"顺序表构造成功"<<endl;
return 1;
}
//添加_顺序表
int set_SqList(SqList &L)
{
int x,i;
cout<<"请输入你要录入的图书数量:";
cin>>x;
for(i=1;i<=x;i++){
cout<<"书号:";
cin>>L.elem[i].no;
cout<<"书名:";
cin>>L.elem[i].name;
cout<<"书价:";
cin>>L.elem[i].price;
cout<<""<<endl;
++L.length;
}
return 0;
}
//查询全部_顺序表
void show_SqList(SqList L){
int i=1;
cout<<"书号\t\t"<<"书名\t\t"<<"图书价格"<<endl;
for(i;i<=L.length;i++){
cout<<L.elem[i].no<<"\t\t"<<L.elem[i].name<<"\t\t"<<L.elem[i].price<<endl;
}
}
//指定查询_顺序表
int find_SqList(SqList L)
{
int n;
char a[20];
char b[20];
double c;
int i;
cout<<"----1.按书号查找-----"<<endl;
cout<<"----2.按书名查找-----"<<endl;
cout<<"----3.按书价查找-----"<<endl;
cout<<"请选择你要执行的操作:";
cin>>n;
switch (n) {
case 1:
cout<<"请输入你要查询的书号: ";
cin>>a;
for(i=0;i<L.length;i++){
if(!strcmp(L.elem[i].no,a)){
cout<<"书号\t\t"<<"书名\t\t"<<"图书价格"<<endl;
cout<<L.elem[i].no<<"\t\t"<<L.elem[i].name<<"\t\t"<<L.elem[i].price<<endl;
}
}
break;
case 2:
cout<<"请输入你要查询的书名: ";
cin>>b;
for(i=0;i<L.length;i++){
if(!strcmp(L.elem[i].name,b)){
cout<<"书号\t\t"<<"书名\t\t"<<"图书价格"<<endl;
cout<<L.elem[i].no<<"\t\t"<<L.elem[i].name<<"\t\t"<<L.elem[i].price<<endl;
}
}
break;
case 3:
cout<<"请输入你要查询的书价: ";
cin>>c;
for(i=0;i<L.length;i++){
if(L.elem[i].price==c){
cout<<"书号\t\t"<<"书名\t\t"<<"图书价格"<<endl;
cout<<L.elem[i].no<<"\t\t"<<L.elem[i].name<<"\t\t"<<L.elem[i].price<<endl;
}
}
break;
default:
break;
}
return 0;
}
//插入_顺序表
int insert_SqList(SqList &L)
{
int n;
int i;
char a[20];
char b[20];
double c;
cout<<"请输入你要插入的位置: ";
cin>>n;
if(n<1|n>L.length+1){cout<<"插入位置不合法!!"<<endl;return 0;}
if(L.length==30){cout<<"顺序表已经存满!"<<endl;return 0;}
//腾出要插入的位置n
for(int i=L.length;i>=n;i--){
L.elem[i+1].price=L.elem[i].price;
strcpy(L.elem[i+1].no,L.elem[i].no);
strcpy(L.elem[i+1].name,L.elem[i].name);
}
//在位置n插入图书
cout<<"请输入你要添加的图书信息: "<<endl;
cout<<"书号: ";
cin>>a;
strcpy(L.elem[n].no,a);
cout<<"书名: ";
cin>>b;
strcpy(L.elem[n].name,b);
cout<<"图书价格: ";
cin>>c;
L.elem[n].price=c;
L.length++;
return 0;
}
//删除_顺序表
int delete_SqList(SqList &L)
{
int n;
int i;
cout<<"请输入你要删除的位置: ";
cin>>n;
if(n<1|n>L.length+1){cout<<"删除位置不合法!!"<<endl;return 0;}
//覆盖要删除的位置
for(i=n;i<L.length;i++){
L.elem[i].price=L.elem[i+1].price;
strcpy(L.elem[i].no,L.elem[i+1].no);
strcpy(L.elem[i].name,L.elem[i+1].name);
}
L.length--;
cout<<"删除成功!"<<endl;
return 1;
}
int main()
{
int n;
SqList L;
system("color 3b");
while (1) {
cout<<"=======================图书管理系统============================"<<endl;
cout<<"-----------------------1.初始化-------------------------------"<<endl;
cout<<"-----------------------2.录入图书信息--------------------------"<<endl;
cout<<"-----------------------3.查看所有图书--------------------------"<<endl;
cout<<"-----------------------4.查询图书-----------------------------"<<endl;
cout<<"-----------------------5.插入图书-----------------------------"<<endl;
cout<<"-----------------------6.删除图书-----------------------------"<<endl;
cout<<"-----------------------7.图书数量-----------------------------"<<endl;
cout<<"-----------------------0.退出---------------------------------"<<endl;
cout<<"请选择你要执行的操作:";
cin>>n;
cout<<""<<endl;
switch (n) {
case 1:
init_SqList(L);
break;
case 2:
set_SqList(L);
break;
case 3:
show_SqList(L);
break;
case 4:
find_SqList(L);
break;
case 5:
insert_SqList(L);
break;
case 6:
delete_SqList(L);
break;
case 7:
cout<<"现有图书的总数量为: "<<L.length<<endl;
break;
case 0:
cout<<"-----------感谢使用图书管理系统--------"<<endl;
exit(0);
break;
default:
cout<<"你输入的数字有错,请输入0-6的执行数字。"<<endl;
break;
}
}
return 0;
}
![](https://img-blog.csdnimg.cn/6b366f8158d640c199334af82d3d1083.png)