基于线性表的图书管理系统----顺序表,基本功能的实现!兼容C语言和C++

mac2026-04-24  6

我的第一篇原创代码,嘿嘿!

很多同学反映课本上面的线性表看不懂,所以今天他来啦!这是一个简单易懂的学习线性表的程序------图书管理系统。希望能够帮助到你们! 话不对说,下面我们直接上源代码,有不懂的可以随时问小编哟!有大神路过恳请多多指点指点小编,小编应当感激不尽!

#include<iostream> #include<stdio.h> #include<stdlib.h> using namespace std; typedef struct { char no[20]; char name[20]; double price; }Book; typedef struct { Book *elem; int length; }SqList; //顺序表的初始化 int IntList(SqList &L) { L.elem=new Book[30]; if(!L.elem){cout<<"顺序表构造失败!"<<endl;exit(-1);} L.length=0; cout<<"顺序表构造成功!"<<endl; return 1; } //顺序表的取值 int GetList(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;\ ++L.length; } return 0; } //顺序表的元素显示 void ShowList(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 LocalList(SqList L) { int i=1; int x,c; char a[20]; char b[20]; cout<<"1、按书号查找:"<<endl; cout<<"2、按书名查找:"<<endl; cout<<"3、按图书价格查找:"<<endl; cin>>x; switch(x) { case 1: cout<<"请输入你要查询的书号:"; cin>>a; for(i;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;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;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: cout<<"输入的数字选项有错误!"<<endl; break; } return 0; } //顺序表的插入 int InsertList(SqList &L) { int i; char a[20]; char b[20]; int s; cout<<"请输入你要插入的位置:"; cin>>i; if(i<1||i>L.length+1){cout<<"插入位置不合法!"<<endl;return 0;} if(L.length==30){cout<<"顺序表已经存满!"<<endl;return 0;} for(int j=L.length;j>=i-1;j--) { L.elem[j+1].price=L.elem[j].price; strcpy(L.elem[j+1].name,L.elem[j].name); strcpy(L.elem[j+1].no,L.elem[j].no); } cout<<"请输入你要添加的图书信息:"<<endl; cout<<"书号:"; cin>>a; strcpy(L.elem[i-1].no,a); cout<<"书名:"; cin>>b; strcpy(L.elem[i-1].name,b); cout<<"图书价格:"; cin>>s; L.elem[i-1].price=s; L.length++; return 0; } //顺序表的删除 int DeleteList(SqList &L) { int i; cout<<"请输入你要删除的位置:"; cin>>i; if(i<1||i>L.length){cout<<"输入的位置不合法!";return 0;} for(int j=i-1;j<L.length;j++) { L.elem[j].price=L.elem[j+1].price; strcpy(L.elem[j].name,L.elem[j+1].name); strcpy(L.elem[j].no,L.elem[j+1].no); } L.length--; return 1; } //顺序表存储的图书数量 int NumberList(SqList L) { cout<<"现有图书的总数量为:"<<L.length<<endl; return 0; } int main() { int n; SqList L; system("color 3b"); while(1) { cout<<"***********************************"<<endl; cout<<"--------欢迎进入图书管理系统-------"<<endl; cout<<"------- 1、构造顺序表 ---------"<<endl; cout<<"------- 2、录入图书信息 --------"<<endl; cout<<"------- 3、查找图书信息 --------"<<endl; cout<<"------- 4、插入图书信息 --------"<<endl; cout<<"------- 5、删除图书信息 --------"<<endl; cout<<"------- 6、统计图书数量 --------"<<endl; cout<<"------- 0、退出图书管理系统 ------"<<endl; cout<<"请选择你要执行的操作:"; cin>>n; switch(n) { case 1: IntList(L); break; case 2: GetList(L); break; case 3: LocalList(L); break; case 4: InsertList(L); break; case 5: DeleteList(L); break; case 6: NumberList(L); break; case 0: cout<<"-------- 谢谢使用图书管理系统! --------"<<endl; exit(0); break; default: cout<<"你输入的数字有错,请输入0`6的执行数字。"<<endl; break; } } return 0; } **支持小编的请给小编点个关注哟!小编接下来还会陆续给大家更新,一起互相学习C语言、C++以及JAVA; 谢谢大家的观看!**
最新回复(0)