图书管理系统(C语言实现)

简介: 图书管理系统(C语言实现)

设计并实现一个简单的图书管理系统

本次实训内容主要在于训练学生的C语言的基本编程能力,通过C语言输入输出、循环语句、子函数设计、数组、结构体等知识点,完成一个简单图书管理系统的设计开发。实现录入图书、删除指定图书、修改指定图书和查询指定图书的基本信息等主要功能。

1.创建图书节点

1. #include<iostream>
2. #include<stdlib.h>
3. #include<string.h>
4. using namespace std;
5. struct Book{
6.  char id[101];// ISBN 
7.  char name[101];// 书名
8.  double price;//价格 
9. };

2.构建顺序表

1. typedef struct{
2.  Book *elem;//顺序表首地址
3.  int len;//表长 
4. }Sqlist;

3.图书信息的展示

1. void display(Sqlist L){ //不需要修改里面的信息 
2.  //展示表L中所有的图书信息
3.  int maxIndex = L.len;
4.  for(int i=1;i<=maxIndex;i++){
5.    printf("%s\t%s\t%lf\n",L.elem[i].id , L.elem[i].name , L.elem[i].price);//\n换行 \tTab      
6.  }
7. }

4.图书信息的查找

1. int findBook(Sqlist L,char id[]){
2.  //在表L 中查找 是否有 ISBN码为id的图书
3.  //遍历 表 L,如果出现了L中 图书的id  ==   id 
4.  int index = 0;//假设不存在
5.  int len = L.len;
6.  for(int i=1;i<=len;i++){
7.    if(strcmp(L.elem[i].id,id) == 0){//strcmp() 
8.      index = i;//修正假设   (假设修正法)
9.      break;
10.     }
11.   }
12.   return index;
13. }

5.图书信息的插入

1. void insertBook(Sqlist &L,Book t,int x){
2.  //判断x 是否合法
3.  int len = L.len;//1--len
4.  if(x<1 || x>len){
5.    printf("位置不合法!\n");
6.  }else{
7.    //将len 至 x位置的图书全部向后移动一个位置 
8.    for(int i=len;i>=x;i--){
9.      L.elem[i+1] = L.elem[i]; 
10.     }
11. 
12.     //将图书 t 加入 L的x位置
13.     L.elem[x] = t;
14.     L.len++;
15.     printf("图书插入成功!\n");
16.   }
17. }

6.图书信息的删除

1. void deleteBook(Sqlist &L,int indexT){
2.  int len = L.len;//1--len
3. 
4.  for(int i=indexT;i<len;i++){
5.    L.elem[i] = L.elem[i+1]; 
6.  }
7.  L.len--; //长度-1
8. 
9. }

7.图书信息总览

1. int main(){
2.  int n;
3.  //顺序存储结构
4.  Sqlist L;
5.  L.elem =(Book *)malloc(sizeof(Book)*100); 
6.  L.len=0;
7.  printf("-------------图书录入------------\n");
8.  printf("请输入图书的数目:\n");
9.  scanf("%d",&n);
10.   for(int i=1;i<=n;i++){
11.     printf("请输入第 %d 本图书的ISBN码:\n",i);
12.     scanf("%s",L.elem[i].id);
13.     getchar();
14.     printf("请输入第 %d 本图书的书名:\n",i);
15.     scanf("%s",L.elem[i].name);
16.     getchar();
17.     printf("请输入第 %d 本图书的价格:\n",i);
18.     scanf("%lf",&L.elem[i].price);
19.     L.len++; 
20.   }
21. 
22.   //展示所有的图书
23.   printf("\n-------------图书展示------------\n");
24.   display(L); 
25. 
26.   //图书查找功能
27.   printf("\n-------------图书查找------------\n"); 
28.   printf("请输入要查询图书的ISBN码:\n");
29.   char name[101];
30.   scanf("%s",name);
31.   //图书查找函数:返回值如果是0 则表示系统中无此图书,返回值非0  则表示系统中有次图书,返回值代表下标
32.   //参数:L  name
33.   int index = findBook(L,name);
34.   if(index==0){
35.     printf("ISBN码为:%s的图书不存在!",name);
36.   }else{//图书存在 
37.     printf("图书存在,要查找的图书信息如下:\n");
38.     printf("%s\t%s\t%lf\n",L.elem[index].id, L.elem[index].name, L.elem[index].price);
39. 
40.   }
41. 
42.   //图书插入
43.   //提示用户输入图书信息
44.   Book t;
45.   int x; 
46.   printf("\n-------------图书插入------------\n");
47.   printf("请输入要插入图书的ISBN码:\n");
48.   scanf("%s",t.id);
49.   printf("请输入要插入图书的名称:\n");
50.   scanf("%s",t.name);
51.   printf("请输入要插入图书的价格:\n");
52.   scanf("%lf",&t.price);
53.   printf("请输入要插入图书的位置(下标1--98):\n");
54.   scanf("%d", &x);
55.   //图书信息 整合 到了 t
56.   insertBook(L,t,x);
57. 
58. 
59.   //展示所有的图书
60.   printf("\n-------------图书展示------------\n");
61.   display(L); 
62. 
63. 
64.   //图书删除
65.   int indexT;
66.   char idT[101];
67.   printf("\n-------------图书删除------------\n"); 
68.   printf("请输入要删除图书的编码:\n");
69.   scanf("%s",idT);
70.   //用户要删除 ISBN码为 idT 的图书
71.   indexT = findBook(L,idT);//如果 0 则idT不存在,如果非0则返回的是下标 
72.   if(indexT!=0){//图书存在 
73.     printf("图书存在,确定删除请按1\n");
74.     int d;
75.     scanf("%d",&d);
76.     if(d==1){
77.       //从表L 中删除 下标indexT
78.       deleteBook(L,indexT);   
79.       printf("图书删除成功!\n");
80.     }
81. 
82.   }else{//==0
83.     printf("图书不存在!\n");
84.   }
85. 
86. 
87.   printf("\n-------------图书展示------------\n");
88.   display(L); 
89. 
90.   return 0;
91. }
目录
相关文章
|
4月前
|
存储 C语言
C语言实现简易学生信息管理系统
C语言实现简易学生信息管理系统
159 4
|
C语言
学生成绩管理系统(C语言实现)
学生成绩管理系统(C语言实现)
140 0
|
3月前
|
存储 C语言
详细解读C语言学生信息管理系统
详细解读C语言学生信息管理系统
24 0
|
4月前
|
存储 C语言
C语言实现简易图书管理系统
C语言实现简易图书管理系统
167 1
|
4月前
|
存储 C语言
C语言实现学生成绩管理系统
C语言实现学生成绩管理系统
238 2
|
4月前
|
存储 C语言
【C语言】学生管理系统
【C语言】学生管理系统
156 0
|
12月前
|
C语言
学生管理系统(C语言)简单版
学生管理系统(C语言)简单版
56 0
|
C语言 Windows
C语言,新学生管理系统
本系统综合运用了C语言的相关知识,例如:增加,减少,删除,修改,以及登录本系统的方式(游客登陆或者其他的)。 例如:本系统部分功能:
69 0
|
C语言
C语言-学生管理系统
C语言-学生管理系统
|
Python
学生信息管理系统(C语言版)
学生信息管理系统(C语言版)
140 0