1、C语言图书管理系统源代码#include#include#includestruct tushu /*图书结构体*/ char num10; /*编号*/ char name20; /*书名*/ char writer20; /*作者*/ char press20; /*出版社*/ char kind20; /*类别*/ double time; /*时间*/ double price; /*价格*/ struct tushu *next;struct stu /*学生结构体*/ int snum; /*学号*/ char mima10; /*密码*/ struct stu *next;FIL
2、E *fp; /*图书文件*/FILE *fp1; /*管理员信息文件*/ FILE *fp2; /*学生信息文件*/void menu(); /*管理员主菜单(管理员进入对图书及学生信息进行管理操作)*/void xmenu(); /*学生主菜单(学生进入可对图书,密码进行操作)*/void gfind(); /*管理员查询(管理员可按一定的方式查询图书)*/void xfind(); /*学生查询(学生可按一定的方式查询图书)*/void secret(); /*管理员权限(管理员登陆所用,输入错误次数过多自动退出)*/void sort(); /*排序(管理员可按一定的方式对图书进行排序
3、,排序完之后可选择文件进行保存)*/void fprint(struct tushu *head); /*保存(可追加的保存,如添加可用)*/void fprint_(struct tushu *head); /*保存(可覆盖保存如修改,删除,排序后用)*/void hfprint(struct tushu *head); /*还书保存 (还书成功后自动保存到文件)*/void jfprint_(struct tushu *head); /*借书保存 (借书成功之后自动从图书馆删除)*/struct tushu * Input(); /*图书添加(可进行图书的添加)*/struct tushu
4、 * create(); /*从文件创建链表(从文件中读出信息,建立单链表)*/void gBrowse(struct tushu *head); /*管理员浏览(对图书进行遍历)*/void xBrowse(struct tushu *head); /*学生浏览(学生对图书进行遍历)*/void count(struct tushu *head); /*统计数量(管理员可对图书进行统计)*/void Findofname(struct tushu *head); /*按书名查找*/void Findofwriter(struct tushu *head); /*按作者查找*/void Fin
5、dofkind(struct tushu *head); /*按类别查找*/void xFindofname(struct tushu *head); /*学生按书名查找*/void xFindofwriter(struct tushu *head); /*学生按作者查找*/void xFindofkind(struct tushu *head); /*学生按类别查找*/void Sort_time(struct tushu * head); /*按时间排序(管理员按时间对图书进行排序,排序完之后可选择文件进行保存)*/void Sort_price(struct tushu * head);
6、 /*按价格排序*/void Sort_num(struct tushu * head); /*按编号排序*/void Delete(struct tushu * head,char m15);/*按编号删除(管理员可按编号删除图书)*/void Revise(struct tushu *head); /*修改 (管理员可对图书进行修改,并选择是否保存)*/void borrow(struct tushu *head); /*借书*/void huanshu(); /*还书(学生借完书之后进行还书,若没有图书则不能借)*/void gxinxi(); /*管理员信息(有管理员的账号及密码,可进
7、行修改)*/void xmima(struct stu *head1); /*学生密码修改(学生可对自己的密码进行修改)*/struct stu * xcreate(); /*从文件创建学生信息 (从文件读出学生信息,建立学生链表)*/void xsecret(struct stu *head1); /*学生权限(学生登陆所用)*/void menu() /*管理员主菜单(管理员进入对图书及学生信息进行管理操作)*/ int choice,n=0; struct tushu *head; struct stu *head1,*p; char m15;there: printf( n); pri
8、ntf( socat 图书管理系统 n); printf( n); printf( 0退出系统 n); printf( n); printf( 1帮助 n); printf( n); printf( 2浏览图书 n); printf( n); printf( 3统计图书数目 n); printf( n); printf( 4查询 n); printf( n); printf( 5添加 n); printf( n); printf( 6排序 n); printf( n); printf( 7修改 n); printf( n); printf( 8删除 n); printf( n); printf
9、( 9修改账号及密码 n); printf( n); printf( 10学生信息 n); printf( n); printf( 请选择:); fflush(stdin); head=create(); scanf(%d,&choice); if(choice=1) /2.否):); scanf(%d,&x); if(x=1) fprint(head); else system(cls); printf(nnnttt 文件没有被保存!nnnn); system(pause); system(cls); menu(); void fprint(struct tushu *head) struc
10、t tushu *p1; if(fp=fopen(,a)=NULL) printf(File open error!n); exit(0); if(head=NULL) printf(没有图书保存!n); system(pause); system(cls); menu(); for(p1=head;p1!=NULL;p1=p1-next) /*遍历*/ fprintf(fp,%st%st%st%st%st%.0lft%lfn, p1-num,p1-name,p1-writer,p1-press,p1-kind,p1-time,p1-price );/*将图书信息写入文件*/ fclose(f
11、p); system(cls); printf(n 图书信息已成功保存到文件 中!n); system(pause); system(cls); getchar(); menu();void fprint_(struct tushu *head) struct tushu *p1; char a20; printf(请输入你保存的文件!n); scanf(%s,a); if(fp=fopen(a,w)=NULL) printf(File open error!n); exit(0); if(head=NULL) system(cls); printf(没有图书!n); system(pause
12、); system(cls); menu(); for(p1=head;p1!=NULL;p1=p1-next) fprintf(fp,%st%st%st%st%st%.0lft%lfn, p1-num,p1-name,p1-writer,p1-press,p1-kind,p1-time,p1-price );/*将图书信息写入文件*/ fclose(fp); system(cls); printf(n 图书信息已成功保存到文件 %s 中!n,a); system(pause); system(cls); menu();void hfprint(struct tushu *head) stru
13、ct tushu *p1; if(fp=fopen(,a)=NULL) printf(File open error!n); exit(0); if(head=NULL) printf(没有还书!n); xmenu(); for(p1=head;p1!=NULL;p1=p1-next) /*遍历*/ fprintf(fp,%st%st%st%st%st%.0lft%lfn, p1-num,p1-name,p1-writer,p1-press,p1-kind,p1-time,p1-price );/*将图书信息写入文件*/ fclose(fp); xmenu();void jfprint_(st
14、ruct tushu *head) struct tushu *p1; if(fp=fopen(,w)=NULL) printf(File open error!n); exit(0); if(head=NULL) xmenu(); for(p1=head;p1!=NULL;p1=p1-next) fprintf(fp,%st%st%st%st%st%.0lft%lfn, p1-num,p1-name,p1-writer,p1-press,p1-kind,p1-time,p1-price );/*将图书信息写入文件*/ fclose(fp); system(cls); getchar(); x
15、menu();struct tushu * create() struct tushu *head=NULL, *p,*p1,*p2; if(fp=fopen(,r)=NULL)/*先安全打开目录文件*/ printf(File open error!n); exit(0); while(!feof(fp)/*读取并创建链表*/ p=(struct tushu *)malloc(sizeof(struct tushu); p-price=-1; fscanf(fp,%s%s%s%s%s%lf%lf, p-num,p-name,p-writer,p-press,p-kind,&p-time,&p
16、-price); if(p-price=-1) free(p); break; if(head=NULL) head=p; p1=p; p1-next=NULL; else p1-next=p; p2=p1; p1=p; p1-next=NULL; fclose(fp); return head; void gBrowse(struct tushu *head) struct tushu *p1; for(p1=head;p1!=NULL;p1=p1-next) printf(编号 书名 作者 出版社 类别 出版时间 价格n); printf( %st%st%st%st%st%.0lft%.2
17、lfn, p1-num,p1-name,p1-writer,p1-press,p1-kind,p1-time,p1-price); system(pause); system(cls); menu(); void xBrowse(struct tushu *head) struct tushu *p1; for(p1=head;p1!=NULL;p1=p1-next) printf(编号 书名 作者 出版社 类别 出版时间 价格n); printf( %st%st%st%st%st%.0lft%.2lfn, p1-num,p1-name,p1-writer,p1-press,p1-kind,p
18、1-time,p1-price); system(pause); system(cls); xmenu(); void count(struct tushu *head) /*统计图书数目*/ int n=0; struct tushu *p1; for(p1=head;p1!=NULL;p1=p1-next) n+; printf(n 此系统统计在内的图书共有 %d 册。n,n);/*计算并输 出图书数目*/ system(pause); system(cls); menu();void Findofname(struct tushu *head) /*按书名查询图书*/ int i=0,n
19、; char b20; struct tushu *p; p=head; printf(n 请输入要查询的图书名称:); scanf(%s,b); while(p!=NULL) if(strcmp(p-name,b)=0) printf(n 编号 书名 作者 出版社 类别 出版时间 价格n); printf(%st%st%st%st%st%.0lft%.2lf n, p-num,p-name,p-writer,p-press,p-kind,p-time,p-price); i+; p=p-next; if(i=0) system(cls); printf(n 对不起!没有找到名为%s的图书!n
20、,b); system(pause); printf(nnnttt是否继续查找图书信息(1.是/其他.返回):); scanf(%d,&n); if(n=1) gfind(); else system(cls); menu(); void Findofwriter(struct tushu *head) int i=0,n; char b20; struct tushu *p; p=head; printf(n 请输入要查询的图书作者姓名:); scanf(%s,b); while(p!=NULL) if(strcmp(p-writer,b)=0) printf(n 编号 书名 作者 出版社
21、类别 出版时间 价格n); printf(%st%st%st%st%st%.0lft%.2lf n, p-num,p-name,p-writer,p-press,p-kind,p-time,p-price); i+; p=p-next; if(i=0) system(cls); printf(n 对不起!没有找到 %s 所著的相关图书!n,b); system(pause); printf(nnnttt是否继续查找图书信息(1.是/其他.返回):); scanf(%d,&n); if(n=1) gfind(); else system(cls); menu(); void Findofkind
22、(struct tushu *head) int i=0,n; char b20; struct tushu *p; p=head; printf(n 请输入您要查询的图书类别:); scanf(%s,b); while(p!=NULL) if(strcmp(p-kind,b)=0) printf(n 编号 书名 作者 出版社 类别 出版时间 价格n); printf(%st%st%st%st%st%.0lft%.2lf n, p-num,p-name,p-writer,p-press,p-kind,p-time,p-price); i+; p=p-next; if(i=0) system(c
23、ls); printf(n 对不起!没有找到类别为 %s 的图书!n,b); system(pause); printf(nnnttt是否继续查找图书信息(1.是/其他.返回):); scanf(%d,&n); if(n=1) gfind(); else system(cls); menu(); void xFindofname(struct tushu *head) /*按书名查询图书*/ int i=0,n; char b20; struct tushu *p; p=head; printf(n 请输入要查询的图书名称:); scanf(%s,b); while(p!=NULL) if(s
24、trcmp(p-name,b)=0) printf(n 编号 书名 作者 出版社 类别 出版时间 价格n); printf(%st%st%st%st%st%.0lft%.2lf n, p-num,p-name,p-writer,p-press,p-kind,p-time,p-price); i+; p=p-next; if(i=0) system(cls); printf(n 对不起!没有找到名为%s的图书!n,b); system(pause); printf(nnnttt是否继续查找图书信息(1.是/其他.返回):); scanf(%d,&n); if(n=1) xfind(); else
25、 system(cls); xmenu(); void xFindofwriter(struct tushu *head) int i=0,n; char b20; struct tushu *p; p=head; printf(n 请输入要查询的图书作者姓名:); scanf(%s,b); while(p!=NULL) if(strcmp(p-writer,b)=0) printf(n 编号 书名 作者 出版社 类别 出版时间 价格n); printf(%st%st%st%st%st%.0lft%.2lf n, p-num,p-name,p-writer,p-press,p-kind,p-t
26、ime,p-price); i+; p=p-next; if(i=0) system(cls); printf(n 对不起!没有找到 %s 所著的相关图书!n,b); system(pause); printf(nnnttt是否继续查找图书信息(1.是/其他.返回):); scanf(%d,&n); if(n=1) xfind(); else system(cls); xmenu(); void xFindofkind(struct tushu *head) int i=0,n; char b20; struct tushu *p; p=head; printf(n 请输入您要查询的图书类别:); scanf(%s,b); while(p!=NULL) if(strcmp(p-kind,b)=0) prin
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1