课程设计---图书登记管理系统
来源:互联网 发布:linux查看mysql的密码 编辑:程序博客网 时间:2024/04/28 05:23
图书登记管理系统应该具有下列功能:
(1)、 通过键盘输入某本图书的信息;
(2) 、给定图书编号,显示该本图书的信息;
(3) 、给定作者姓名,显示所有该作者编写的图书信息;
(4) 、给定出版社,显示该出版社的所有图书信息;
(5) 、给定图书编号,删除该本图书的信息;
(6) 、提供一些统计各类信息的功能。
#include "stdio.h" #include "stdlib.h" #include "string.h" typedef struct book { int book_id; //图书编号 char book_name[20]; //图书名字 char name[20]; //作者姓名 char press[20]; //出版社 struct book *next; }book; book *head=NULL; int length; //链表的长度 void create() { book *p1,*p2; length=0; p1=(book *)malloc(sizeof(book)); p1->book_id=-1; if(head==NULL) head=p1; printf("请输入图书的编号、名字、作者姓名、出版社信息:\n"); while(1) //图书编号为0的时候退出 { p2=(book *)malloc(sizeof(book)); scanf("%d %s %s %s",&p2->book_id,p2->book_name,p2->name,p2->press); //输入图书信息 if(p2->book_id==0) { printf("图书信息输入完成!\n"); break; } length++; //链表的长度 p1->next=p2; p2->next=NULL; p1=p1->next; } return ; } void display() { book *p=head->next; printf("链表中所有的图书信息如下:\n"); while(p!=NULL) { printf("%d %s %s %s\n",p->book_id,p->book_name,p->name,p->press); p=p->next; } return ; } void search() { int num,x,flag1=0,flag2=0; char name[20],press[20]; book *p=head->next; printf("1、根据图书编号进行查找\n"); printf("2、根据作者姓名进行查找\n"); printf("3、根据出版社进行查找\n"); printf("请选择功能:"); scanf("%d",&x); if(x==1) { printf("需要查找的图书编号为:"); scanf("%d",&num); while(p!=NULL) { if(p->book_id==num) { printf("图书编号为%d的图书的信息如下:\n",num); printf("%d %s %s %s\n",p->book_id,p->book_name,p->name,p->press); return; } p=p->next; } if(p==NULL) printf("无此记录!\n"); } else if(x==2) { printf("需要查找的作者姓名为:"); scanf("%s",name); while(p!=NULL) { if(strcmp(p->name,name)==0) { if(flag1==0) printf("作者%s编写的图书信息如下:\n",name); flag1=1; printf("%d %s %s %s\n",p->book_id,p->book_name,p->name,p->press); } p=p->next; } if(flag1==0) printf("图书馆没有作者%s编写的图书!\n",name); } else if(x==3) { printf("需要查找的出版社为:"); scanf("%s",press); while(p!=NULL) { if(strcmp(p->press,press)==0) { if(flag2==0) printf("出版社为%s编写的图书信息如下:\n",press); flag2=1; printf("%d %s %s %s\n",p->book_id,p->book_name,p->name,p->press); } p=p->next; } if(flag2==0) printf("图书馆没有出版社%s编写的图书!\n",press); } return ; } void Delete() { int num; book *p,*q; q=head,p=head->next; printf("请输入要删除的图书编号:\n"); scanf("%d",&num); while(p!=NULL) { if(p->book_id==num) { q->next=p->next; free(p); length--; printf("删除成功!\n"); return ; } p=p->next; q=q->next; } if(p==NULL) { printf("找不到要删除的图书编号!\n"); return ; } } void menu() { printf("________________________________________________________________\n"); printf("| 图书登记管理系统 |\n"); printf("| 0、 退出系统 |\n"); printf("| 1、 输入图书信息 |\n"); printf("| 2、 显示图书信息 |\n"); printf("| 3、 查询图书信息 |\n"); printf("| 4、 删除图书信息 |\n"); printf("________________________________________________________________\n"); return ; } int main(void) { int a; menu(); while(1) { printf("请选择相应的功能:"); scanf("%d",&a); switch(a) { case 0: return 0; case 1: create(); menu(); break; case 2: if(head) { display(); menu(); } else { printf("图书信息为空,请先输入图书信息!\n"); menu(); } break; case 3: if(head) { search(); menu(); } else { printf("图书信息为空,请先输入图书信息!\n"); menu(); } break; case 4: if(head) { Delete(); menu(); } else { printf("图书信息为空,请先输入图书信息!\n"); menu(); } break; default: break; } } system("pause"); return 0; }
阅读全文
0 0
- 课程设计---图书登记管理系统
- 课程设计---图书登记管理系统
- 图书登记管理系统
- 课程设计:图书管理系统
- 课程设计:图书管理系统
- 课程设计--图书管理系统
- 课程设计---图书登记管理系统(217行代码)【没看】
- 数据结构课程设计 图书管理系统
- 课程设计之图书管理系统
- 数据结构课程设计-图书管理系统
- 数据结构课程设计--图书管理系统
- 数据结构课程设计-图书管理系统
- 数据结构课程设计--图书管理系统
- 数据结构课程设计-图书管理系统
- 数据结构课程设计图书管理系统
- 数据结构课程设计(图书管理系统)
- C语言课程设计—图书管理系统
- (C语言课程设计)图书管理系统
- Android体系结构
- 近期海投笔试遇到的问题(3)
- MySQL5.7 四种日志文件
- ubuntu下ctags安装和使用
- require.js
- 课程设计---图书登记管理系统
- 百度富文本从下载使用到运行成功(运用在maven项目中,图片和视频上传到阿里云)
- hashmap冲突的解决方法以及原理分析
- 课堂练习3: 以Point类为基础,定义一个平面中的Circle类:
- 以Point类为基础,定义一个平面中的Circle类: 1、编写一个无参的构造函数; 2、编写一个有参的构造函数; 3、在主函数中调用无参的构造函数生成圆的实例c1,调用有参的构造函数生成圆的实例c2
- XML简易教程
- django定时任务
- Apache Curator入门实战
- HNU OJ题库 1008I约瑟夫问题