图书馆管理系统C代码
- 格式:doc
- 大小:39.50 KB
- 文档页数:13
原创C语言图书馆管理系统源代码介绍图书馆作为一个重要的知识储备和学习场所,必须进行有效的管理和组织。
使用C语言编写的图书馆管理系统可以帮助图书馆实现自动化的借阅、归还和管理功能。
本文将介绍一个原创的C语言图书馆管理系统的源代码。
功能概述这个图书馆管理系统具有以下核心功能: - 图书管理:包括添加图书、删除图书、查询图书等操作。
- 借阅管理:可以进行借阅操作,记录借阅者和借阅时间。
- 归还管理:可以进行归还操作,并更新图书的可借状态。
- 用户管理:管理借阅者的信息,包括添加用户、删除用户、查询用户等操作。
数据结构设计该图书馆管理系统使用了以下几种数据结构: 1. 图书(Book)结构体:包含图书的ID、书名、作者、可借状态等字段。
2. 用户(User)结构体:包含用户的ID、姓名、地址等字段。
3. 借阅记录(BorrowRecord)结构体:包含借阅者ID、图书ID、借阅时间等字段。
系统流程整个系统的流程可以分为以下几个步骤: 1. 用户打开系统,进入主菜单。
2. 用户选择不同的功能选项(如图书管理、借阅管理、用户管理等)。
3. 根据用户选择的功能,进入相应的功能界面。
4. 用户可以根据提示,输入相应的信息进行图书管理、借阅管理或用户管理操作。
5. 用户完成操作后,可以选择返回主菜单或退出系统。
代码实现以下是一个简化版的C语言图书馆管理系统的源代码:```c #include <stdio.h>// 定义结构体 struct Book { int id; char name[50]; char author[50]; int isAvailable; };struct User { int id; char name[50]; char address[100]; };struct BorrowRecord { int userId; int bookId; char borrowDate[20]; };// 函数声明 void addBook(); void deleteBook(); void searchBook(); void borrowBook(); void returnBook(); void addUser(); void deleteUser(); void searchUser();int main() { int choice;do {// 显示主菜单printf(\。
#include<stdio.h>#include<windows.h> #include<string.h> #include<conio.h> #define M 100 struct books{char tsmc[12];int tsbh;float dj;char zz[12];char czzt[12];char xm[12]; char xb[12];int xh; }s[M];int N;bool flag;intmain (){int sele;flag=0;sele=1;void sr();void cx();void sc();void js();void hs();void tc();void jsh();//system ("tsgl");printf("\n\n");printf(" ************************\n");printf(" 1:输入2:查询3:删除\n");printf(" 4:借书5:还书0:退出\n");printf(" ************************\n"); while(1){printf("\n\n请输入功能序号:");scanf ("%d",&sele);if(sele>=0 && sele<=5){switch(sele){ case 1:sr();break;case 2:cx();break;case 3:sc();break;case 4:js();break;case 5:hs();break;case 0:jsh();break;}if(flag)break;printf("\n\n");printf(" ************************\n");printf(" 1:输入2:查询3:删除\n");printf(" 4:借书5:还书0:退出\n");printf(" ************************\n");}else{printf("输入错误请再次输入|\n\n");printf("\n\n");printf(" ************************\n");printf(" 1:输入2:查询3:删除\n");printf(" 4:借书5:还书0:退出\n");printf(" ************************\n");}printf("\n\n让任意键继续\n");} //wr_file();} /******主函数***//*********输入*********/void sr(){int n,i;N=0;printf("可输入的书本数:");scanf("%d",&n);N=n+N;printf("请输入相关信息:\n");for(i=1;i<=n;i++){printf("图书名称:");scanf("%s",s[N-n-1+i].tsmc);printf("图书编号:");scanf("%d",&s[N-n-1+i].tsbh);printf("单价:");scanf("%f",&s[N-n-1+i].dj);printf("作者:");scanf("%s",&s[N-n-1+i].zz);strcpy(s[N-n-1+i].czzt,"未借出");strcpy(s[N-n-1+i].xm,"无"); } }/********查询**********/void cx(){int i,j[100]={-1},d,k,t=0;char m[20];printf("查询:");printf("1:图书名称2:图书编号");printf("\n\n请输入查询选项:");scanf("%d",&k);if(k==1){printf("请输入图书名称:");scanf("%s",m);for(i=0;i<N;i++)if(strcmp(m,s[i].tsmc)==0){j[t]=i;t=t+1;}}else if(k==2){printf("请输入图书编号:");scanf("%d",&d);for(i=0;i<N;i++)if(d==s[i].tsbh){j[t]=i;t++;}}if(j[0]==-1&&t==0)printf("没有找到!\n");if(j[0]!=-1 && t!=0){printf("\t图书名称\t图书编号\t单价\t作者\t存在状态\t借书人姓名\t性别\t学号\n");for(i=0;i<t;i++)printf("\t%s \t%d \t%f \t%s \t%s \t%s \t%s\t%d ", s[j[i]].tsmc,s[j[i]].tsbh,s[j[i]].dj,s[j[i]].zz,s[j[i]].czzt,s[j[i]].xm,s[j[i]].xb,s[j[i]].xh);}}/********删除模块*********/void sc(){int i,d,k,t=0;char ms[20];int ja=-1;printf("查询:");printf("1:图书名称2:图书编号");printf("\n\n请输入查询选项:");scanf("%d",&k);if(k==1){printf("请输入图书名称:");scanf("%s",ms);for(i=0;i<N;i++)if(strcmp(ms,s[i].tsmc)==0){ja=i; break;}}else if(k==2){printf("请输入图书编号:");scanf("%d",&d);for(i=0;i<N;i++)if(d==s[i].tsbh){ja=i;break;}}printf("确定删除该图书吗?1表示Yes,其他No");int p;scanf("%d",&p);if(p==1)printf("Congratulations,删除成功||\n");if(ja!=-1 && p){N=N-1;for(i=ja;i<N;i++){strcpy(s[i].tsmc,s[i+1].tsmc);s[i].tsbh=s[i+1].tsbh;s[i].dj=s[i+1].dj;strcpy(s[i].zz,s[i+1].zz);strcpy(s[i].czzt,s[i+1].czzt);strcpy(s[i].xm,s[i+1].xm);strcpy(s[i].xb,s[i+1].xb);s[i].xh=s[i+1].xh;}}else if(ja==-1)printf ("没有找到!\n"); }/**********借书模块***********/void js(){int i,j[100]={-1},d,k,t=0;char m[20];printf("查询:");printf("1:图书名称2:图书编号");printf("\n\n请输入查询选项:");scanf("%d",&k); if(k==1){printf("请输入图书名称:");scanf("%s",&m);for(i=0;i<N;i++)if(strcmp(m,s[i].tsmc)==0){j[t]=i;t=t+1;}}else if(k==2){printf("请输入图书编号:");scanf("%d",&d);for(i=0;i<N;i++)if(d==s[i].tsbh){j[t]=i;t++;}}if(j[0]==-1&&t==0)printf("没有找到!\n");strcpy(s[j[i]].czzt,"已借出");printf("此书已借出\n");if(j[0]!=-1&&t!=0&&s[j[i]].czzt==" 未借出"){printf("%s %d %f %s %s %s %s %d ", s[j[i]].tsmc,s[j[i]].tsbh,s[j[i]].dj,s[j[i]].zz,s[j[i]].czzt,s[j[i]].xm,s[j[i]].xb,s[j[i]].xh); } printf("1:确定借阅2:退出\n");scanf("%d",&k);switch(k){case 1:printf("请输入学号:\n");scanf("%d",&s[j[i]].xh);printf("请输入姓名:\n");scanf("%s",&s[j[i]].xm);printf("请输入性别:\n");scanf("%s",&s[j[i]].xb);strcpy(s[j[i]].czzt,"已借出");printf("已借出,按任意键继续\n");//getch();case 2:break;}}/*************还书模块***************/void hs(){int i,j[100]={-1},d,k,t=0;char m[20];printf("查询:");printf("1:图书名称2:图书编号");printf("\n\n请输入查询选项:");scanf("%d",&k);if(k==1){printf("请输入图书名称:");scanf("%s",&m);for(i=0;i<N;i++)if(strcmp(m,s[i].tsmc)==0){j[t]=i;t++;break;}}else if(k==2){printf("请输入图书编号:");scanf("%d",&d);for(i=0;i<N;i++)if(d==s[i].tsbh){j[t]=i;t++;break;}}if(t==0)printf("没有找到!\n");else{printf("%s %f %s %s %s %s %d \n",s[j[i]].tsmc,s[j[i]].dj,s[j[i]].zz,s[j[i]].czzt,s[j[i]].xm,s[j[i]].xb,s[j[i]].xh);printf("1:确定归还2:退出\n");int p;scanf("%d",&p);if(p==1){strcpy(s[j[i]].czzt,"未借出");strcpy(s[j[i]].xm,"无");s[j[i]].xh=0;printf("已归还,按任意键继续\n");}//getch();}}/*************结束模块***************/ void jsh(){flag=1;}。
C语言程序设计大作业设计报告一.设计方案本程序旨在用一个C语言程序实现简单的图书馆图书管理系统,程序包含平时的借书,还书,新书录入,查询功能,用简单明了的人机交互界面快速实现图书管理的目的。
二.模块说明及代码分析1.主函数:源代码:void main(){int a;printf("\n");printf("\n");printf(" ( ^_^ ) WELCOME!\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\t〉〉-------------BJTU图书管理系统--------------〈〈");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");do {printf("1.借书 2.还书 3.新书录入4.查询 0.退出");printf("\n");printf("\n");printf("\n");printf("\n");printf("请选择序号:");scanf("%d",&a);switch(a){case 1:jieshu();break;case 2:huanshu();break;case 3:xinshu();break;case 4:chaxun();break;case 0:break;default:printf("请选择正确的序号!\n");printf("\n");}}while(a!=0);printf("谢谢使用图书管理系统!\n");}主函数提供人机交互界面,让操作者选择所需的操作项目,并有退出选项。
//本电信学渣的大一小学期作业做的不好请见谅/*一、图书管理系统1.新书入库:图书信息包括书名,书号,库存量,现存量(库存量减去借走的图书)共4项.首先输入3本书的信息,并将其存数组book中.当有新书入库时,先判断数组中是否有此书(即比较书名或书号),若有则修改库存量,现存量的信息;若无此书,则将该书的信息添加到数组中,并将其库存量设为-1,将其标专为下次要购入的图书。
2.图书查询:(1)输入一个书号,在文件中查找此书,若找到则输出此书的全部信息;若找不到则输出查找失败的信息。
(2)查询所有要购入的图书的书名和书号。
3.借阅管理(1)每个读者的信息包括姓名,编号,借阅图书1,借阅图书2,借阅图书3,输入3个读者的信息并存入数组reader中.(2)借书登记:输入读者的姓名及所借图书的书号,先判断姓名是否在读者数组中,若有则将书号存入reader数组中,同时修改book数组中此书的现存量.若reader数组中无此姓名,则应提示错误。
(3)还书管理:输入读者的姓名,所还图书的书号,修改reader数组和book数组中相应的项。
4.输出全部图书信息和全部读者信息。
5.退出系统。
*/#include <stdio.h>#include <string.h>void zzdz();//读者注册void shuru();//新书注册void shuchu();//图书总数统计void shanchu();//删除书籍void find(); //书籍查找void borrow();//借书管理void repay(); //还书管理void scdzxx(); //读者统计//定义结构体类型struct s{char no[10];char name[10];};//定义结构体数组struct s book[50];struct i{char js[3][10],js1[10],js2[10],js3[10];char name[10],no[10];};//定义结构体数组struct i reader[50];int bzongshu=0,bxianshu=0,rzongshu=0;int n=0,m=0;int main(){int chioce=-1,xxx; //一级选项,二级选项printf("***************图书馆管理系统******************\n");while(chioce!=0){ //一级选项循环printf("请选择:\n图书管理请按1\n读者管理请按2\n退出请按0(否则将留在本层)\n请输入"); //输入提示scanf("%d",&chioce); //输入选项图书读者xxx=-1; //重置二级选项if(chioce==1){ //1为图书printf("您选择了图书管理\n");while(xxx!=0){ //二级选项循环printf("\n\n继续选择:\n"); //选printf("增加书目请按1\n"); //项printf("删除书目请按2\n"); //提printf("查询书目请按3\n"); //示printf("统计书目请按4\n"); //printf("返回上层请按0(否则将留在本层)\n");scanf("%d",&xxx);switch(xxx){case 1:shuru(); break; //新书注册case 2:shanchu(); break;//删除书籍case 3:find();break; //书籍查找case 4:shuchu();break; //图书总数统计case 0:printf("返回上层\n");break;//返回一级选项default:printf("输入错误");break;//报错}}}else{if(chioce==2){printf("\n\n您选择了读者管理\n");while(xxx!=0){printf("\n\n继续选择:\n");printf("注册读者请按1\n");printf("借阅系统2\n");printf("还书系统3\n");printf("读者统计4\n");printf("返回上层请按0(否则将留在本层)\n");printf("本馆共有读者%d人\n",rzongshu);scanf("%d",&xxx);switch(xxx){case 1:zzdz();break; //读者注册case 2:borrow();break;//借阅管理case 3:repay();break;//还书管理case 4:scdzxx();break;//读者统计case 0:printf("返回上层\n");break;default:printf("输入错误");break;//报错}}}else{if(chioce==0){printf("\n\n");break;}printf("\n\n选择错误,请重新选择\n");scanf("%d",&chioce);}}}printf("\n\n***************已退出,谢谢使用****************\n"); return 0;}//增加函数void shuru(){int j,i,geshu;printf("\n\n输入需要增加书目的个数:");scanf("%d",&geshu);for(i=bzongshu;i<(bzongshu+geshu);i++){printf("输入书号");scanf("%s",book[i].no);printf("输入书名");scanf("%s",book[i].name);}printf("结束输入;");n=n+geshu;bzongshu=bzongshu+geshu;bxianshu=bxianshu+geshu;}//输出数据void shuchu(){int i;for(i=0;i<n;i++){printf("书号:%s ",book[i].no);printf("书名:%s\n",book[i].name);}printf("共有%d本书\n现有%d本书\n",bzongshu,bxianshu); }//删除数据void shanchu(){int i,j,r=0,chxxx;char a[10];printf("删除选项:\n1:通过书号进行删除\n2:通过书名进行\n");scanf("%d",&chxxx);if(chxxx==1){printf("输入需要查询的书号:");scanf("%s",a);for(i=0;i<n;i++){if((strcmp(a,book[i].no))==0){for(;i<n;i++){strcpy(book[i].no,book[i+1].no);strcpy(book[i].name,book[i+1].name);i++;}n--;(bzongshu)--;(bxianshu)--;}}}else{if(chxxx==2){printf("输入需要查询的书名:");scanf("%s",a);for(i=0;i<n;i++){if((strcmp(a,book[i].name))==0){printf("书号:%s\n",book[i].no);printf("书名:%s\n",book[i].name);r++;}}}else{printf("输入错误");}}if(r==0) printf("无此书\n");return;}//查询数据void find() //strcmp{int i,j,r=0,chxxx;char a[10];printf("查询选项:\n1:书号查询\n2:书名查询\n");scanf("%d",&chxxx);if(chxxx==1){printf("输入需要查询的书号:");scanf("%s",a);for(i=0;i<n;i++){if((strcmp(a,book[i].no))==0){printf("书号:%s\n",book[i].no);printf("书名:%s\n",book[i].name);r++;}}}else{if(chxxx==2){printf("输入需要查询的书名:");scanf("%s",a);for(i=0;i<n;i++){if((strcmp(a,book[i].name))==0){printf("书号:%s\n",book[i].no);printf("书名:%s\n",book[i].name);r++;}}}else{printf("输入错误");}}if(r==0) printf("无此书\n");return;}//输入读者信息void zzdz(){int i,geshu;printf("输入需要注册的个数:");scanf("%d",&geshu);for(i=rzongshu;i<(rzongshu+geshu);i++){printf("输入读者号");scanf("%s",reader[i].no);printf("输入读者名");scanf("%s",reader[i].name);}m=m+geshu;rzongshu=m;printf("共有%d个读者\n",rzongshu);}//借阅管理void borrow(){int i,j,k,zdz=0,zs=0,z;char a[10],b[10],q[10];printf("您已进入借阅管理\n");printf("输入要求借书的读者姓名:\n");scanf("%s",a);for(i=0;i<rzongshu;i++){if((strcmp(a,reader[i].name))==0){printf("该读者存在,请输入要借阅图书的书号(3本)\n");for(j=1;j<=3;j++){zdz++;printf("输入要借的书号");scanf("%s",b);for(k=0;k<bzongshu;k++){if((strcmp(b,book[k].no))==0){printf("该书存在,借阅成功\n");bxianshu--;*(reader[i].js[j])=*(book[k].no);zs=1;}}if(zs==0){printf("无此书,将返回上层菜单\n");break;}}}}if(zdz==0){printf("该读者不存在,将返回上层选择菜单");}return;}//还书管理void repay(){int i,j,k,zdz=0,zs=0;char a[10],b[10];printf("您已进入还书管理\n");printf("输入要求还书的读者姓名:\n");scanf("%s",a);for(i=0;i<rzongshu;i++){if((strcmp(a,reader[i].name))==0){printf("该读者存在,请输入要归还图书的书号(3本)\n");for(j=1;j<=3;j++){zdz++;printf("输入要还的书号");scanf("%s",b);for(k=0;k<bzongshu;k++){if((strcmp(b,reader[i].js[j]))==0){printf("该书存在,还书成功\n");bxianshu++;*(reader[i].js[j])=' ';zs=1;}}if(zs==0){printf("无此书,将返回上层菜单\n");return;}}}}if(zdz==0){printf("该读者不存在,将返回上层选择菜单");}return;}//输出读者信息void scdzxx(){int i;for(i=0;i<rzongshu;i++){printf("读者号:%s\n",reader[i].no);printf("读者姓名:%s\n",reader[i].name);printf("借书1的书号:%s\n",reader[i].js[1]);printf("借书2的书号:%s\n",reader[i].js[2]);printf("借书3的书号:%S\n\n\n",reader[i].js[3]);}return;}。
/********这是第十组的程序,这个程序包括管理员的部分和读者的部分,管理员有删除书本、增加书本、修改密码、查询书本;读者的有借书、还书*****************************/ /*********************************以及查询图书馆中的所有图书的信息、你借阅的书本;管理员的初始密码是1234,读者的初始密码是3456;****************************************//****************************************************************************** ******************************************************/#include<stdio.h>#include<conio.h>#include<stdlib.h>#include<string.h>#include<time.h>/******************************************定义************************************/#define topborrow 2#define SIZE 10struct book /*定义书的类型*/{char bookname[40]; /*书本的名字*/char author[40]; /*书本的作者*/long int booknum; /*书本的索引号*/char type[50]; /*书本的类型*/char address[40]; /*书本的位置*/int price; /*书本的价格*/int tag; /*是否借出*/};/******************************函数的声明************************//****************************读者*******************************/void readerwelcome(); /*读者欢迎界面*/void readerpw(); /*读者的密码*/void reader(); /*读者的界面*/void search_books(); /*查询书本*/void modify_password();/*修改读者的密码*/void write_time(); /*记录借书的时间*/void write1_time(); /*还书时候判断是否超期*/void return_books(); /*还书*/void borrow_books(); /*借书*/void search_borbooks();/*****查询你借阅书本***********/void search_allbooks();/****查询图书馆中所有书本*****/void findauthor();/*通过作者来查询*/void findname(); /*通过书名来查询*/void findnum(); /*通过索引号查询*//************************管理员**************************/void read_allbook(); /*查询图书馆中的所有书本************/void managerpw(); /*管理员的密码*/void welcome_manger() ;/*进入管理员的界面*/void modify_pw(); /*修改密码*/void addbook(); /*增加书本*/void delbook(); /*删除书本*/void manager(); /*管理员的界面*//***********************进入的程序**********************/void menu(); /*菜单*/void welcome(); /*欢迎的界面*/void choice(); /*选择的菜单*/void stop();/******************************主函数*************************************/ /*************************************************************************/ void main(){int choice;char goon='y';welcome();while(goon=='y'){flushall();scanf("%d",&choice);switch(choice){case 1 :managerpw();/*读者的界面*/break;case 2 :readerpw();/*调用读者的界面*/break;case 3 :stop();/*退出*/break;}printf("\nWould you like to continue or exit ? <y/n>");goon=getch();putch(goon);if(goon=='y') /*是否继续循环*/welcome();}getch();return;}/***************************欢迎的界面***************************************/ void welcome(){system("cls"); /*清屏*/printf("\n*********************************************************************** ****\n");printf("\n**\n");printf("\n* Welcome to Putian University library *\n");printf("\n**\n");printf("\n*********************************************************************** ****\n");menu();return;}/*************************菜单栏********************************************/void menu(){printf("\n*********************************************************************** *****\n");printf("\n* 1.Manager *\n");printf("\n* 2.Reader *\n");printf("\n* 3.Exit *\n");printf("\n* Which menu would you want to choice?*\n");printf("\n* Please input number <1/2/3> : *\n");printf("\n*********************************************************************** *****\n");return;}/*******************************不想进入图书馆系统,退出************************/void stop(){system("cls"); /*clean screen*/printf("\n\t\t************************************************\n");printf("\n\t\t* Thank you for use! *\n");printf("\n\t\t* Welcome to use next time! *\n");printf("\n\t\t************************************************\n");getch();exit(0);return;}/*************************管理员*********************************************/ /**************************模块**********************************************//***************************管理员的界面************************************/void welcome_manger(){system("cls");printf("\n*********************************************************************** *********");printf("\n\t Welcome to use the manager systme! ");printf("\n*********************************************************************** *******\n");return;}void manager(){int choice;char answer='y';while(answer=='y'||answer=='Y'){system("cls"); /*清空屏幕*/printf("\n\t\t************************************************\n");printf("\n\t\t* 1.delete books. *\n");printf("\n\t\t* 2.add books. *\n");printf("\n\t\t* 3.modify password. *\n");printf("\n\t\t* 4.search all book. *\n");printf("\n\t\t* 5.back. *\n");printf("\n\t\t************************************************\n");printf("\n\t\tWhich menu would you want choice<1-4>");choice=getch();switch(choice){case '1' :delbook();break;case '2' :addbook();break;case '3':modify_pw();break;case '4':read_allbook();break;case '5' :welcome();break;}printf("\nWould you want to go to manager?<y/n>");answer=getch();putch(answer);if(answer=='y'||answer=='Y')continue;elsebreak;}return;}/*************************管理员输入密码*****************************************/void managerpw(){FILE *fp;int i;char pw[4],pw1[4];welcome_manger();while (1){printf("\n\t\t\tPlease input you four password:");for(i=0;i<4;i++){pw[i]=getch();putch('*');}fp=fopen("manager_pw.txt","r");for(i=0;i<4;i++)fscanf(fp,"%c ",&pw1[i]);fclose(fp);if(pw[0]==pw1[0]&&pw[1]==pw1[1]&&pw[2]==pw1[2]&&pw[3]==pw1[3])break;elseprintf("\n\t\t\tYour password is wrong!Please input again!\n");}manager();return;}/****************************修改管理员的密码*****************************************/void modify_pw(){FILE *fp;char pw[4],pw1[4],answer='y';int i;system("cls"); /*清空屏幕*/printf("************************************************************************* ******\n");printf(" Welcome to use modify password system! \n");printf("*************************************************************************while(1){printf("\n\t\tPlease input you want to change password: ");for(i=0;i<4;i++){pw[i]=getch();putch('*');}printf("\n\t\tPlease input you want to change password again: ");for(i=0;i<4;i++){pw1[i]=getch();putch('*');}if(pw[0]==pw1[0]&&pw[1]==pw1[1]&&pw[2]==pw1[2]&&pw[3]==pw1[3]){fp=fopen("manager_pw.txt","w");for(i=0;i<4;i++)fprintf(fp,"%c ",pw[i]);fclose(fp);printf("\n\t\tYou modify successful modify password!");getch();break;}else{printf("\n\t\tYou input two time password different\n\t\tWould you want to try again<y/n>");answer=getch();putch(answer);if(answer=='y'||answer=='Y')continue;elsebreak;}}return;}/************************************查看所有的书本****************************/void read_allbook(){int i;struct book bookinf[SIZE];fp=fopen("book_list.txt","rb");for(i=0;i<SIZE;i++)fread(&bookinf[i],sizeof(struct book),1,fp);fclose(fp);for(i=0;i<SIZE;i++){if(bookinf[i].price==0)break;else{printf("\nbook name:%s\nbook author:%s\nbook type:%s\nBook num:%ld\nbook price:%d\nbook address:%s",bookinf[i].bookname,bookinf[i].author,bookinf[i].type,bookinf[i].booknum,bookinf[i].price,booki nf[i].address);if(bookinf[i].tag==1)printf("\n\tThe book have been borrow.");if(i%4==0)getch();}}return;}/**************************************增加书本*********************************/void addbook(){FILE *fp1,*fp2;int i=0,j;char answer='y';long int booknum;struct book bookinf[SIZE];do{printf("\nBook Name:");gets(bookinf[i].bookname); /*书本的名字*/printf("\nBook Author:");gets(bookinf[i].author); /*书本的作者*/fflush(stdin); /*清空键盘缓存*/printf("\nBooknum:");scanf("%ld",&bookinf[i].booknum); /*书本的索引号*/fflush(stdin);printf("\nBook Type:");gets(bookinf[i].type); /*书本的类型*/printf("\nBook Price:"); /*书本的价格*/scanf("%d",&bookinf[i].price);fflush(stdin);printf("\nBook Address:");gets(bookinf[i].address); /*书本的位置*/printf("\nBooktag:");scanf("%ld",&bookinf[i].tag);fflush(stdin);printf("\nWould you want to add more:<y/n>");answer=getch();putch(answer);if(i>=10) /*书本只能放20本书*/{printf("\n\tIt is more than our library storage.");break;}i++;}while(answer=='y'||answer=='Y');if((fp2=fopen("book_list.txt","ab"))!= NULL ){for(j=0;j<i;j++)fwrite(&bookinf[j],sizeof(struct book),1,fp2);fclose(fp2);}else{printf("The file can be written.\n");}return;}/****************************************删除课本*******************************/void delbook(){FILE *fp,*fp1;int i,j;long int num;struct book bookinf[SIZE];system("cls"); /*清空屏幕*/fp=fopen("book_list.txt","rb");if((fp=fopen("book_list.txt","rb"))==NULL){printf("Can't open this file!!!");exit(0);}for(i=0;i<SIZE;i++){fread(&bookinf[i],sizeof(struct book),1,fp);if(bookinf[i].booknum==0)break;elseprintf("\nBook num:%ld\nBook author:%s\nBook name:%s ",bookinf[i].booknum,bookinf[i].author,bookinf[i].bookname);}fclose(fp);printf("\nWhich book number you want to delete :");scanf("%ld",&num);for(i=0;i<SIZE;i++){if(num==bookinf[i].booknum){if(bookinf[i].tag==1)printf("\nThe book have been borrow,Please when it return and delete.");else{for(j=i;j<SIZE;j++)/******************************/{ /*****将后面的书本往前面覆盖***/bookinf[j].booknum=bookinf[j+1].booknum;bookinf[j].tag=0;/******************************/bookinf[j].price=bookinf[j+1].price;strcpy(bookinf[j].bookname,bookinf[j+1].bookname);strcpy(bookinf[j].author,bookinf[j+1].author);strcpy(bookinf[j].type,bookinf[j+1].type);strcpy(bookinf[j].address,bookinf[j+1].address);}fp1=fopen("book_list.txt","wb");for(i=0;i<SIZE;i++)fwrite(&bookinf[i],sizeof(struct book),1,fp1);fclose(fp1);printf("\nYou delete successful!!!");}}}if(num!=bookinf[i].booknum){printf("\nOur library doesn't have this book.");}return;}/**********************************************读者*********************************************//**********************************************模块*********************************************//************************************读者进入的密码,密码是3456**********************************/void readerwelcome(){system("cls"); /*清空屏幕*/printf("\n*********************************************************************** *********");printf("\n\t Welcome to use the reader systme! ");printf("\n*********************************************************************** *******\n");return;}void readerpw(){FILE *fp;char pw[4],pw1[4];int i;readerwelcome();while (1){printf("\n\t\t\tPlease input you four password:");for(i=0;i<4;i++){pw[i]=getch();putch('*');}fp=fopen("reader_pw.txt","r");for(i=0;i<4;i++)fscanf(fp,"%c ",&pw1[i]);fclose(fp);if(pw[0]==pw1[0]&&pw[1]==pw1[1]&&pw[2]==pw1[2]&&pw[3]==pw1[3]) break;else{printf("\n\t\t\tYour password is wrong!Please input again!\n");continue;}}reader();return;}void reader(){int choice;char answer='y';while(1){system("cls"); /*清空屏幕*/printf("\n\t\t************************************************\n");printf("\n\t\t* 1.borrow books. *\n");printf("\n\t\t* 2.return books. *\n");printf("\n\t\t* 3.search all books. *\n");printf("\n\t\t* 4.search you have borrow. *\n");printf("\n\t\t* 5.modify password. *\n");printf("\n\t\t* 6.back. *\n");printf("\n\t\t* 7.exit. *\n");printf("\n\t\t************************************************\n");printf("\n\t\tWhich menu would you want choice<1-4>");scanf("%d",&choice);switch(choice){case 1 :borrow_books();break;case 2 :return_books();break;case 3:search_allbooks() ;break;case 4:search_borbooks();break;case 5:modify_password();break;case 6 :welcome();break;case 7:exit(0);break;}printf("\nWould you want to back to reader ?<y/n>");answer=getch();putch(answer);if(answer=='y'||answer=='Y')continue;elsebreak;}return;}/******************************************借书******************************************//****************************************************************************** **********/void borrow_books(){FILE *fp,*fp1,*fp2;int i,count=0,j;long int num;int year, month, day,hour,minute,second;struct book bookinf[SIZE];fp=fopen("book_list.txt","rb");for(i=0;i<SIZE;i++)fread(&bookinf[i],sizeof(struct book),1,fp);fclose(fp);for(i=0;i<SIZE;i++){if(bookinf[i].tag==1){count++;}}if(count<topborrow){readerwelcome();printf("Please choice which book you want to borrow number :");scanf("%ld",&num);flushall();for(i=0;i<SIZE;i++){if((num==bookinf[i].booknum)&&(bookinf[i].tag==1)){printf("This book have been borrow!!!");break;}if(num==bookinf[i].booknum){printf("\nbook name:%s\nbook author:%s\nbook type:%s\nBook num:%ld\nbook price:%d\nbook address:%s",bookinf[i].bookname,bookinf[i].author,bookinf[i].type,bookinf[i].booknum,bookinf[i].price,booki nf[i].address);bookinf[i].tag=1;printf("\nYou borrow successful !!!!");write_time();printf("\nYou should return in:");fp2=fopen("time.txt","r");fscanf(fp2,"%d %d %d %d %d %d",&year,&month,&day,&hour,&minute,&second);fprintf(stdout,"%d %d %d %d %d %d",year,month,(day+1),hour,minute,second); /*如果借书时间超过1天划款*/fclose(fp2);fp1=fopen("book_list.txt","wb");for(i=0;i<SIZE;i++)fwrite(&bookinf[i],sizeof(struct book),1,fp1);fclose(fp1);break;}}if(num!=bookinf[i].booknum&&i==SIZE-1)printf("\nOur library doesn't have this book.");}elseprintf("\nYou have borrow two books.If you want to borrow please return some books.");return;}/*********************************************记录借书本的时间********************/void write_time(){FILE *fp;time_t nowtime;int year, month, day,hour,min,sec;struct tm *timeinfo;time( &nowtime );timeinfo = localtime( &nowtime );year = timeinfo->tm_year + 1900;month = timeinfo->tm_mon + 1;day = timeinfo->tm_mday;hour=timeinfo->tm_hour;min=timeinfo->tm_min;sec=timeinfo->tm_sec;fp=fopen("time.txt","w");fprintf(fp,"%d %d %d %d %d %d",year,month,day,hour,min,sec);fclose(fp);return;}/****************************************还书************************************//****************************************************************************** **/void return_books(){FILE *fp,*fp1,*fp2,*fp3;int i,sum,j;long int num;int year, month, day,hour,minute,second;int year1, month1, day1,hour1,minute1,second1;struct book bookinf[SIZE];readerwelcome();printf("\nPlease choice which book you want to return number :");scanf("%ld",&num);flushall();fp=fopen("book_list.txt","rb");if((fp=fopen("book_list.txt","rb"))==NULL){printf("Can't open this file.");exit(0);}for(i=0;i<SIZE;++i)fread(&bookinf[i],sizeof(struct book),1,fp);fclose(fp);for(j=0;j<SIZE;j++){if((num==bookinf[j].booknum)&&(bookinf[j].tag==1)){bookinf[j].tag=0;printf("\nbook name:%s\nbook author:%s\nbook type:%s\nBook num:%ld\nbook price:%d\nbook address:%s",bookinf[j].bookname,bookinf[j].author,bookinf[j].type,bookinf[j].booknum,bookinf[j].price,booki nf[j].address);printf("\nYou borrow in:");fp1=fopen("time.txt","r");if((fp1=fopen("time.txt","r"))==NULL){printf("\nCan't open this file.");exit(0);}fscanf(fp1,"%d %d %d %d %d %d",&year,&month,&day,&hour,&minute,&second);fprintf(stdout,"%d %d %d %d %d %d",year,month,day,hour,minute,second);fclose(fp1);write1_time();if((fp2=fopen("time1.txt","r"))==NULL){printf("\nCan't open this file.");exit(0);}fscanf(fp2,"%d %d %d %d %d %d",&year1,&month1,&day1,&hour1,&minute1,&second1);fclose(fp2);if(((month1-month)==0)&&((day1-day)<1)){fp3=fopen("book_list.txt","wb");for(i=0;i<SIZE;i++)fwrite(&bookinf[i],sizeof(struct book),1,fp3);fclose(fp3);printf("\nYou successful return this book!!!");break;}else{sum=(hour1-hour)/24;printf("\n You should spend %d monney and go on.",sum);break;}}if((num==bookinf[j].booknum)&&(bookinf[j].tag==0)){printf("\nSorry! You doesn't borrow this book!!!");break;}}if(num!=bookinf[j].booknum)printf("\nSorry! Our library doesn't have this book");return;}/********************记录还书的时候的时间用来判断是否超期**********************/void write1_time(){FILE *fp;time_t nowtime;int year, month, day,hour,min,sec;struct tm *timeinfo;time( &nowtime );timeinfo = localtime( &nowtime );year = timeinfo->tm_year + 1900;month = timeinfo->tm_mon + 1;day = timeinfo->tm_mday;hour=timeinfo->tm_hour;min=timeinfo->tm_min;sec=timeinfo->tm_sec;fp=fopen("time1.txt","w");fprintf(fp,"%d %d %d %d %d %d",year,month,day,hour,min,sec);fclose(fp);return;}/*************************************查询书本***********************************//***************************************查询*************************************//***********************************查询你借的书本*******************************/void search_borbooks(){FILE *fp;int i;struct book bookinf[SIZE];fp=fopen("book_list.txt","rb");for(i=0;i<SIZE;i++)fread(&bookinf[i],sizeof(struct book),1,fp);fclose(fp);for(i=0;i<SIZE;i++){if(bookinf[i].tag==1)printf("\nbook name:%s\nbook author:%s\nbook type:%s\nBook num:%ld\nbook price:%d\nbook address:%s",bookinf[i].bookname,bookinf[i].author,bookinf[i].type,bookinf[i].booknum,bookinf[i].price,booki nf[i].address);}if(bookinf[i].tag!=1)printf("\n You doesn't borrow any book.");getch();return;}/********************************查询图书管中的所有图书*************************//****************************************************************************** */void search_allbooks(){int way;char answer='y';while(1){system("cls"); /*清空屏幕*/printf("---------------Welcome to research system--------------\n");printf(" \t1: Search by book name.\n");printf(" \t2: Search by book author.\n");printf(" \t3: Search by book num.\n");printf(" \t0: back\n");printf("\n\n********************************************************************** *******");printf("\n Please choice which way would you want to?<0-3>,other wrong input! ");printf("\n please select which one you want to operate: ");printf("\n*********************************************************************** ******\n");scanf("%d",&way);fflush(stdin); /*清空键盘缓存*/switch(way){case 1:findname();break;case 2:findauthor();break;case 3:findnum();break;case 0:exit(0);/*关闭屏幕*/}printf("\nWould you want to search anther book ?<y/n>");answer=getch();putch(answer);if(answer=='y'||answer=='Y')continue;elsebreak;}return;}/**********************************通过书名来查询********************************/void findname(){FILE *fp;char BookName[40];struct book bookinf[SIZE];int i;system("cls"); /*清空屏幕*/printf("************************************************************************* ******\n");printf(" Welcome to use the name reseach system! \n");printf("************************************************************************* ******\n");printf("\n\t\t\tPlease input book name!");gets(BookName);fp=fopen("book_list.txt","rb");for(i=0;i<SIZE;i++)fread(&bookinf[i],sizeof(struct book),1,fp);fclose(fp);for(i=0;i<SIZE;i++){if(strcmp(BookName,bookinf[i].bookname)==0) /*判断所输入的和储存的一致*/{printf("\nbook name:%s\nbook author:%s\nbook type:%s\nBook num:%ld\nbook price:%d\nbook address:%s",bookinf[i].bookname,bookinf[i].author,bookinf[i].type,bookinf[i].booknum,bookinf[i].price,booki nf[i].address);if(bookinf[i].tag==1)printf("\n\tThe book have been borrow");}}if(strcmp(BookName,bookinf[SIZE].bookname)!=0)printf("\nOur library doesn't have this book.");return;}/*************************通过作者查询****************************************/ void findauthor(){FILE *fp;char Bookauthor[40];int i;struct book bookinf[SIZE];system("cls"); /*清空屏幕*/printf("************************************************************************* ******\n");printf(" Welcome to use the author reseach system! \n");printf("************************************************************************* ******\n");printf("\n\t\t\tPlease input book author!");gets(Bookauthor);fp=fopen("book_list.txt","rb");for(i=0;i<SIZE;i++)fread(&bookinf[i],sizeof(struct book),1,fp);fclose(fp);for(i=0;i<SIZE;i++){if(strcmp(Bookauthor,bookinf[i].author)==0) /*判断所输入的和储存的有没有一致*/{printf("\nbook name:%s\nbook author:%s\nbook type:%s\nBook num:%ld\nbook price:%d\nbook address:%s",bookinf[i].bookname,bookinf[i].author,bookinf[i].type,bookinf[i].booknum,bookinf[i].price,booki nf[i].address);if(bookinf[i].tag==1)printf("\n\tThe book have been borrow");}}if(strcmp(Bookauthor,bookinf[SIZE].author)!=0)printf("\nOur library haven't this book.");fclose(fp);return;}/**************************按图书馆的索引号查询**********************************/void findnum(){FILE *fp;long int num;int i;struct book bookinf[SIZE];system("cls"); /*清空屏幕*/printf("************************************************************************* ******\n");printf(" Welcome to use the num reseach system! \n");printf("************************************************************************* ******\n");fp=fopen("book_list.txt","rb");for(i=0;i<SIZE;i++)fread(&bookinf[i],sizeof(struct book),1,fp);fclose(fp);for(i=0;i<SIZE;i++){if(bookinf[i].booknum==0)break;elseprintf("\nBook num: %ld ",bookinf[i].booknum);}printf("\nPlease input book num!");scanf("%ld",&num);fflush(stdin); /*清空键盘缓存*/for(i=0;i<SIZE;i++){if(num==bookinf[i].booknum) /*判断所输入的和储存的有没有一致*/{printf("\nbook name:%s\nbook author:%s\nbook type:%s\nBook num:%ld\nbook price:%d\nbook address:%s",bookinf[i].bookname,bookinf[i].author,bookinf[i].type,bookinf[i].booknum,bookinf[i].price,booki nf[i].address);if(bookinf[i].tag==1)printf("\n\tThe book have been borrow");break;}}if(num!=bookinf[SIZE].booknum)printf("\nOur library haven't this book.");return;}/****************************************修改密码****************************************/void modify_password() /*修改读者的密码*/{FILE *fp;char pw[4],pw1[4];int i;system("cls"); /*清空屏幕*/printf("************************************************************************* ******\n");printf(" Welcome to use modify password system! \n");printf("************************************************************************* ******\n");while(1){printf("\n\t\tPlease input you want to change password: ");for(i=0;i<4;i++){pw[i]=getch();putch('*');}printf("\n\t\tPlease input you want to change password again: ");for(i=0;i<4;i++){pw1[i]=getch();putch('*');}if(pw[0]==pw1[0]&&pw[1]==pw1[1]&&pw[2]==pw1[2]&&pw[3]==pw1[3]){printf("\n\t\tYou modify successful modify password!");fp=fopen("reader_pw.txt","w");for(i=0;i<4;i++)fprintf(fp,"%c ",pw[i]);fclose(fp);getch();break;}elseprintf("\n\t\tYou input two time password different\n\t\tPlease input again!!!");}return;}。
图书管理系统/*图书数据由编号、书名、出版社、单价和图书状态(库存用0表示或借出用读者编号表示),读者数据由编号、姓名和电话号码构成。
实现功能包括:(1)添加图书的记录(2)图书管理(借书和还书)(3)对图书数据排序(按单价的降序)(4)删除图书记录(5)修改图书记录(6)添加读者记录(7)输出图书信息表和读者信息表*#include <stdio.h>#include <string.h>#include <stdlib.h>#include <windows.h>/*函数的声明*/void bookname();void writername();void booknumber();void press();void bookdate();void Bfind(); //查询主菜单void Bdevise(); //修改函数void Badd(); //添加函数void Bdelete(); //删除函数void Bdisplay(); //显示所以已保存的图书信息函数void Bclean(); //清除所有图书信息函数void lendbook(); // 借书函数void returnbook(); //还书函数void lendorreturnbook();//借书或还书主菜单函数void appealkey();//用户密码申诉函数void devisepeoplekey();//修改用户密码函数void accountapply(); //用户申请账户函数void addpeopleaccount(); //管理员之添加用户帐号函数void addmanageaccount(); //管理员之添加管理员账号函数void addaccount(); //管理员之账户添加主菜单函数void devisepeopleaccount();//管理员之修改用户账号函数void devisemanageaccount();//管理员之修改管理员帐号函数void deviseaccount();//管理员之修改账号主菜单函数void deletepeopleaccount();//管理员之删除用户账号函数void deletemanageaccount();//管理员之删除管理员账号函数void deleteaccount();//管理员之删除账号主菜单函数void displayallpeopleaccounts();//显示所有用户信息函数void displayallmanageaccounts();//显示所有管理员信息函数void displayallaccountsmessage();//显示所有账号信息主菜单函数void highaddpeopleaccount(); //高级管理员添加用户账户函数void highaddmanageaccount(); //高级管理员添加管理员账户函数void highaddaccount(); //高级管理员之添加账户主菜单函数void booksmanage();//图书操作主菜单函数void accountsmanage();//管理员账号操作主菜单函数void highaccountsmanage();//高级管理员账号操作主菜单函数void menu1(); //用户之查询主菜单void menu2(); //管理员之查询主菜单void menu3(); //高级管理员之查询主菜单/*定义书的类型*/struct book{int bookstock; //库存量char bookname[20]; //书名char bookwriter[20]; //作者char booknumber[20]; //书号char press[20]; //出版社char bookdate[20]; //出版日期char price[20]; //出版价格int turefalse; //判断图书是否被借阅}books[20];/*定义用户类型*/struct peopleaccount{char pname[20];char pkey[20];}peopleaccounts[20];/*定义管理员类型*/struct manageaccount{char mname[20];char mkey[20];}manageaccounts[20];/*定义借书卡类型*/struct card{char cardnumber[20]; //借书卡号和用户信息一起写入yonghu.txt文件中的}cards[20];/*定义文件指针变量*/FILE *fp1; //fp1打开用户信息文件FILE *fp2; //fp2打开管理员信息文件FILE *fp3; //fp3打开图书信息文件FILE *fp4; //打开借还书记录的文件FILE *fpa; //fpa是临时文件指针/*改变输出的字体颜色*/void color(const unsigned short color1){if(color1>=0&&color1<=15)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color1);/*仅限改变0-15的颜色;如果在0-15那么实现他的颜色因为如果超过15后面的改变的是文本背景色。
C#代码清单共1个项目,包含5个类。
项目: librarysystem类:主类代码:namespace librarysystem{ PublicationISBN = PublicationISBN;= PublicationName;= PublicationAuthor;= PublicationType;= PublicationStatus;}}}读者类代码:namespace librarysystem{ 询图书");("2.借书服务");("3.还书服务");("4.新出版物入库");("5.录入新读者");("6.查询读者的借阅信息");("7.退出管理系统");("-------------------------------------------------------------------");bool flag;do{flag = false;("请选择:");string key = ();switch (key){case"1":("请输入需要查询图书的书名:");ShowPubInfo();break;case"2":("请输入您的姓名:");();ShowBorrowInfo();("请输入您的姓名:");();ShowReturnInfo();break;case"4":("请按照提示逐步输入需要入库出版物的信息……");ShowAddPublications();break;case"5":("请按照提示逐步输入新注册读者的信息……");ShowAddReaders();break;case"6":("请输入您的姓名: ");();ShowRedPubInfo;break;case"7":flag = false;break;default:("无此业务,是否重新选择(y/n)");string answer = ();if (answer != "y"){flag = false;}else{flag = true;}break;}} while (flag);}/*显示查询到的出版物信息*/public void ShowPubInfo(){if ()){("您要查询的出版物信息:");("-------------------------------------------------------------------"); ("编号: " + ("出版物名字: " + ("出版物作者: " + ("出版物类型: " + if {("出版物状态:在架,可借");else{("出版物状态:未在架,不可借");}("-------------------------------------------------------------------"); ("");("");("是否办理其他业务(y/n)");string answer = ();if (answer == "y"){ShowMainMenu();();}else{("结束");}}else{("抱歉,未找到该图书!");("是否办理其他业务(y/n)");string answer = ();if (answer == "y"){ShowMainMenu();();();}else{("结束");}}}/*显示借阅操作结果*/public void ShowBorrowInfo(){if{("恭喜,借阅成功!");ShowRedPubInfo;}{("抱歉,借阅失败!");("是否办理其他业务(y/n)");string answer = ();if (answer == "y"){ShowMainMenu();}else{("结束");}}}/*显示归还操作结果*/public void ShowReturnInfo(){if{("恭喜,归还成功!");ShowRedPubInfo;}else{("抱歉,归还失败!");("是否办理其他业务(y/n)");string answer = ();if (answer == "y"){ShowMainMenu();}else{("结束");}}}public void ShowRedPubInfo(Readers red){("当前你的借阅信息如下:");("--------------------------------------------------------------------"); ("编号: " + ;("姓名: " + ;("性别: " + ;("主修专业: " + ;("已借图书: ");for (int{if [i] != ""){(" "+[i]);}}("");("--------------------------------------------------------------------"); ("");("是否办理其他业务(y/n)");string answer = ();if (answer == "y"){ShowMainMenu();}else{("结束");}}/*显示新出版物入库的信息*/public void ShowAddPublications(){pub = new Publications();("请输入出版物的编号: ");=();("请输入出版物的名称: ");= ();("请输入出版物的编者: ");= ();("请输入出版物的类型: ");= ();= true;(pub);("新出版物入库成功!");("是否办理其他业务(y/n)");string answer = ();if (answer == "y"){ShowMainMenu();();}else{("结束");}}/*显示新读者注册的信息*/public void ShowAddReaders(){red = new Readers();("请输入新注册读者的编号: "); = ();("请输入新注册读者的姓名: "); = ();("请输入新注册读者的性别: "); = ();("请输入新注册读者的院系: "); = ();("请输入新注册读者的专业: "); = ();for(int i=0;i<10;i++){[i]="";}(red);("新读者注册成功!");("是否办理其他业务(y/n) ");string answer = ();if (answer == "y"){ShowMainMenu();();();}else{("结束");}}}}。
亲试c语言图书馆管理系统,(需自行添加书目信息)#include<stdio.h>#include<malloc.h>#define FORMAT "%-10ld%-20s%-15s%-20s%-5.2f\n"#define SIZE 50#define LEN sizeof(struct send)struct book /*图书结构体*/{long book_num;char name[13];char author[10];char press[15];float price;}book[SIZE];struct send /*借阅信息结构体*/{char book_num[20];char std_num[10];}send;int n=5,l=0;void preword() /*菜单*/{printf("\n\n\t\t=============欢迎图书馆模拟系统============\n");printf("\t\t\t1、浏览所有图书信息\n");printf("\t\t\t2、浏览单个图书信息\n");printf("\t\t\t3、添加图书信息\n");printf("\t\t\t4、删除图书信息\n");printf("\t\t\t5、修改图书信息\n");printf("\t\t\t6、借书\n");printf("\t\t\t7、退出\n");printf("\t\t==============================================\n");printf("\t\t\t\t请选择(1-7):");}void load() /*加载磁盘文件图书信息*/{FILE *fp = fopen("BookInfo.txt","r");int i;if(!fp){printf("文件打开错误!\n");return;}while(!feof(fp)){for(i=0;i<n;i++)fscanf(fp,"%ld%s%s%s%f",&book[i].book_num,book[i].name,book[i].author,book[i].press, &book[i].price);}fclose(fp);}void print(struct book a) /*输出图书信息*/{if(l==0) /*开关变量l,控制表单*/{printf("\n%-10s%-20s%-15s%-20s%-5s\n\n","图书编号","书名","作者","出版社","价钱");printf(FORMA T,a.book_num,,a.author,a.press,a.price);l=1;}elseprintf(FORMA T,a.book_num,,a.author,a.press,a.price);}void view_all() /*浏览所有图书*/{int i;printf("\n所有图书信息为:\n");for(i=0;i<n;i++)print(book[i]);l=0;void view_one() /*浏览单个图书*/{long num;int i,k=0;find:printf("\n请出入图书编号:");scanf("%ld",&num);for(i=0;i<n;i++)if(num==book[i].book_num){printf("\n%ld 信息:\n",num);print(book[i]);k=1; /*开关变量k,反应是否找到该书*/}if(k==0){printf("\n没有对应图书,请输入正确编号!\n");goto find;}l=0;}void add() /*添加图书*/{printf("\n请输入添加图书信息:\n\t");scanf("%ld%s%s%s%f",&book[n].book_num,book[n].name,book[n].author,book[n].press,& book[n].price);printf("图书添加成功! (浏览请选择1)\n");n++;}void delet() /*删除图书*/{long num;int i,j,k=0;del:printf("\n请输入图书编号:");scanf("%ld",&num);for(i=0;i<n;i++)if(num==book[i].book_num){for(j=i;j<n-1;j++)book[j]=book[j+1];k=1;n--;printf("图书删除成功!\n");}if(k==0) /*开关变量k,反应是否找到该书*/{printf("\n没有对应图书,请输入正确编号!\n");goto del;}}void modify() /*修改图书信息*/{long num;int i,k=0;mod:printf("\n请输入图书编号:");scanf("%ld",&num);for(i=0;i<n;i++)if(num==book[i].book_num){printf("请输入新信息:\n\t");scanf("%ld%s%s%s%f",&book[i].book_num,book[i].name,book[i].author,book[i].press,&bo ok[i].price);printf("图书修改成功!\n");k=1;}if(k==0) /*开关变量k,反应是否找到该书*/{printf("\n没有对应图书,请输入正确编号!\n");goto mod;}}void select() /*借书*/{long num;char std_n[10];int i,k=0;FILE *fp = fopen("SendInfo.txt","w+");sel:printf("\n请输入图书编号:");scanf("%ld",&num);for(i=0;i<n;i++)if(num==book[i].book_num){printf("请输入学号:");scanf("%s",std_n);k=1;printf("借书成功!\n");}if(k==0) /*开关变量k,反应是否找到该书*/ {printf("\n没有对应图书,请输入正确编号!\n");goto sel;}fprintf(fp,"%-10s%-8ld\n",std_n,num);printf("\n借书信息:\n");printf("%-10s%-8ld\n",std_n,num);fclose(fp);}void main() /*主函数*/{int chois;load();loop: preword();scanf("%d",&chois);switch(chois) /*选择菜单*/{case 1: view_all(); goto loop;case 2: view_one(); goto loop;case 3: add(); goto loop;case 4: delet(); goto loop;case 5: modify(); goto loop;case 6: select(); goto loop;case 7: goto end;default: printf("请输入正确数字!\n"); goto loop;}end:printf("\n\n系统结束!\n\n");}。