图书管理信息包括:图书编号、图书名称、单价、作者、数量、存在状态(可以设为整型,1为未借,0为已借)、借书人学号、姓名。
实现以下菜单显示的功能:
1、新进图书基本信息的录入,按书号从小到大的顺序将图书信息存入文件中。
2、办理借书手续。
提示:借书时,图书数量会减少,存在状态有修改
3、办理还书手续
提示:还书时,图书数量会增加,存在状态有修改
4、图书管理信息的查询,查询图书借阅情况。
按图书编号查询借阅情况
按借书人学号查询借阅情况
5、图书基本信息的删除。
6、浏览,从文件中读取每本图书的借阅信息并显示。
7、退出
要求:使用文件存储数据,系统以菜单方式工作。

C语言图书借阅管理系统。
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- CSDN专家-赖老师(软件之家) 2021-12-29 09:42关注
参考:
#include<stdio.h> //预处理 #include<string.h> #include<stdlib.h> #include<conio.h>//定义了通过控制台进行数据输入和数据输出的函数 //定义结构体 struct book { int id; char name[31]; //书名 char author[27]; //作者 char publish[31];//出版社 int store; //库存 int total; //总数 int user[10]; int days[10]; }books[100]; //显示整体标题标题函数 void page_title(char *menu_item) { printf("\t\t使用图书馆管理系统\n\n-%s-\n\n",menu_item); } //等待返回函数 void return_confirm() { printf("\n请按任意键返回……\n"); getch(); } book_add() { int i; system("cls"); //清屏 page_title("注册新书"); for(i=0;i<12;i++) { printf("序号:"); scanf("%d",&books[i].id); printf("书名:"); scanf("%s",&books[i].name); printf("作者:"); scanf("%s",&books[i].author); printf("出版社:"); scanf("%s",&books[i].publish); printf("数量:"); scanf("%d",&books[i].total); books[i].store=books[i].total; printf("\n"); } } book_show() { int i,flag=0; system("cls"); for(i=0;i<100;i++) { if(strlen(books[i].publish)!=0) { printf("编号:%d\t ",books[i].id); printf("书名:%s\t ",books[i].name); printf("作者:%s\t ",books[i].author); printf("出版社:%s\t ",books[i].publish); printf("库存:%d\t",books[i].store); printf("总数:%d\n\n",books[i].total); flag=1; } } if(flag==0) { printf("没有找到相关书籍\n"); } getch(); return i; } int book_search() { int n,i,flag=0; char nam[30]; system("cls"); printf("请输入书名:"); scanf("%s",&nam); for(i=0;i<100;i++) { if(strcmp(books[i].name,nam)==0) { printf("序号:%d\t ",books[i].id); printf("书名:%s\t ",books[i].name); printf("作者:%s\t ",books[i].author); printf("出版社:%s\t ",books[i].publish); printf("存数:%d\t",books[i].store); printf("总数:%d\n",books[i].total); n=i; flag=1; getch(); break; } } if(flag==0) { printf("\n没有找到相关书籍\n"); getch(); return -1; } return n; } book_edit() { int i,id_change; system("cls"); page_title("修改图书信息:"); printf("输入要修改的图书id:"); scanf("%d",&id_change); for(i=0;i<100;i++) { if(books[i].id==id_change) { printf("修改书名:"); scanf("%s",&books[i].name); printf("修改作者:"); scanf("%s",&books[i].author); printf("修改出版社:"); scanf("%s",&books[i].publish); printf("修改数量:"); scanf("%d",&books[i].total); printf("修改图书信息成功\n"); books[i].store=books[i].total; return i; } } printf("\n没有找到相关信息\n"); getch(); return -1; } int book_del() { int i,num,j; system("cls"); page_title("删除图书"); printf("输入所要删除的书的id:"); scanf("%d",&num); for(i=0;i<100;i++) { if(books[i].id==num) { for(j=i;j<100;j++) { books[j].id=books[j+1].id; strcpy(books[j].name,books[j+1].name); strcpy(books[j].publish,books[j+1].publish); printf("该书已经删除了!\n"); getch(); return i; } } } printf("未找到相关记录\n"); getch();//暂停程序运行,等待键盘IO输入 return -1; } //借书 book_out() { int n,s,i,d; system("cls"); page_title("借阅图书"); n=book_search(); if(n!=-1&&books[n].store>0) { //赋初值,全为零 for(i=0;i<10;i++) { books[n].user[i]=0; books[n].days[i]=0; } printf("借书证序号:"); scanf("%d",&s); printf("输入可借天数:"); scanf("%d",&d); books[n].user[0]=s; books[n].days[0]=d; books[n].store--; // 书上这有何意义 // for(i=0;i<10;i++) // { // if(books[n].user[i]==0) // { // books[n].user[i]=0; // books[n].days[i]=0; // break; // } // books[n].store--; // } } else if(n!=-1&&books[n].store==0) { printf("此书已经完全借完\n\n"); getch(); } else; return_confirm(); } //归还图书 void book_in() { int n,s,i; page_title("归还图书"); n=book_search(); printf("%d",n); if(n!=-1&&books[n].store<books[n].total) { printf("借阅图书证列表\n"); for(i=0;i<10;i++) { if(books[n].user!=0) { printf("[%d]--%d天\n",books[n].user[i],books[n].days[i]); } printf("输入借书证号:"); scanf("%d",&s); for(i=0;i<10;i++) { if(books[n].user[i]==s) { books[n].store++; } } } } if(n!=-1&&books[n].store==books[n].total) { printf("全部归还\n"); } else if(n!=-1&&books[n].store<books[n].total) { printf("归还成功\n"); } else ; return_confirm(); } main() { menu:page_title("操作选单"); printf("用数字选择操作\n\n"); printf("\t\t1注册新书\t\t2显示图书\n"); printf("\t\t3查询图书信息\t\t4修改图书信息\n"); printf("\t\t5删除图书\t\t6借阅图书\n"); printf("\t\t7归还图书\t\t8退出系统\n"); printf("请按数字键:\n"); switch(getchar()) { case'1': book_add();break; case'2': book_show();break; case'3': book_search();break; case'4': book_edit();break; case'5': book_del();break; case'6': book_out();break; case'7': book_in();break; case'8': exit(0); } goto menu;//goto跳转语句 }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 3无用