ImageVerifierCode 换一换
格式:DOCX , 页数:37 ,大小:20.08KB ,
资源ID:9559623      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9559623.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(图书管理系统源代码.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

图书管理系统源代码.docx

1、图书管理系统源代码#includestdio.h#includestdlib.h#includestring.h#define MENU_ADMIN_COUNT 2#define MENU_SEARCH_BOOK_COUNT 6#define MENU_USER_COUNT 7#define BOOK_FILE books.dat#define USER_FILE user.dat#define MAX_BOOK_NAME 20#define MAX_PUBLISHER 20#define MAX_DATE 10#define MAX_AUTHOR 20#define MAX_ISBN 20t

2、ypedef struct _book_info char book_nameMAX_BOOK_NAME; char authorMAX_AUTHOR; char publisherMAX_PUBLISHER; char pub_dateMAX_DATE; char ISBNMAX_ISBN; int pages;book_info;typedef struct _book book_info bi; struct _book* next;book;#define MAX_USERNAME 10#define MAX_PASSWORD 10typedef enum _USER_TYPE ADM

3、IN=0, USERUSER_TYPE;typedef struct _user_infochar usernameMAX_USERNAME; char passwordMAX_PASSWORD; USER_TYPE user_type;user_info;typedef struct _user user_info ui; struct _user* next;user;void init_user();void load_users();USER_TYPE login();void add_user();void search_user();void save_users();void c

4、lear_users();void save_users_to_file();user* get_last_user();user* get_previous_user(user* p);user* find_user(char* name);void show_user(user_info* info);void input_user(user_info* info);void delete_user(user* p);void update_user(user* p);void init_book();void load_books();void add_book();void view_

5、book();void delete_book();void save_books();void clear_books();void search_book_by_name();void search_book_by_author();void search_book_by_publisher();void search_book_by_pubdate();void search_book_by_isbn();int findstr(char *source,char *str);void save_books_to_file();book* get_last_book();book* ge

6、t_previous_book(book* p);void input_book(book_info* info);void show_book(book_info* info);void show_admin_menu();void show_search_book_menu();void show_user_menu();void admin_exit();void user_exit();book *first_book=NULL;user* first_user=NULL;char menu_title=n| 图书管理系统 |n+-+n;char menu_admin=| |n| (1

7、)图书管理 |n| (2)用户管理 |n| (3)退出系统 |n+-+n;char admin_menu1=-n| 图书管理 |n-|n| 新增图书 |n| 浏览图书 |n| 查找图书 |n| 删除图书 |n| 保存图书 |n| 返回主菜单 |n-n;char admin_menu2=-n 用户管理 |n-|n| 新增用户 |n| 查找用户 |n| 保存用户 |n| 返回主菜单 |n|-|n;void(*menu1_fun)()=add_book,view_book,show_search_book_menu,delete_book,save_books,;void(*menu2_func)(

8、)=add_user,search_user, save_users,;char menu_admin_search_book=| 查找图书: |n| 按书名查找 |n| 按作者查找 |n| 按出版社查找 |n| 按出版日期查找 |n| 按国际标准书号(ISBN)查找 |n| 返回主菜单 |n+-+n;void (*admin_search_book_func)()= search_book_by_name, search_book_by_author, search_book_by_publisher, search_book_by_pubdate, search_book_by_isbn,

9、;char menu_user=| 浏览图书 |n| 按书名查找图书 |n| 按作者查找图书 |n| 按出版社查找图书 |n| 按出版日期查找图书 |n| 按国际标准书号(ISBN)查找图书 |n| 退出系统 |n+-+n;void (*user_func)()= view_book, search_book_by_name, search_book_by_author, search_book_by_publisher, search_book_by_pubdate, search_book_by_isbn, user_exit;void add_book() char try_again=

10、Y; book *p=NULL; book *new_book=NULL; while(try_again=Y | try_again=y) new_book=(book*)malloc(sizeof(book); memset(new_book,0,sizeof(book); new_book-next=NULL; printf(新增图书.n); input_book(&(new_book-bi); p=get_last_book(); if(p=NULL) first_book=new_book; else p-next=new_book; printf(继续添加图书吗?(y or n):

11、); getchar(); try_again=getchar(); void view_book() book *p=NULL; char input=Y; int count=0; while(input=y | input=Y) count=0; p=first_book; printf(+-+n); printf(| 书名 | 作者 |n); printf(+-+n); while(p!=NULL) printf(|%20s|%20s|n,p-bi.book_name,p-bi.author); printf(+-+n); count+; if(count=5) count=0; pr

12、intf(显示下一页吗?(y or n):); getchar(); input=getchar(); if(input!=y & input!=Y) break; p=p-next; printf(再次浏览图书吗?(y or n):); getchar(); input=getchar(); void search_book_by_name() book *p=NULL; char sMAX_BOOK_NAME=0; char input=Y; int count=0; int i=0; printf(查找图书.n); while(input=Y | input=y) count=0; p=

13、first_book; memset(s,0,MAX_BOOK_NAME); printf(请输入书名(最大长度为%d):,MAX_BOOK_NAME); scanf(%s,s); while(p!=NULL) if(findstr(p-bi.book_name,s)!=-1) show_book(&(p-bi); count+; p=p-next; if(count=0) printf(没有找到图书%s。继续查找吗?(y or n):,s); getchar(); input=getchar(); continue; printf(共找到%d本图书.n,count); printf(继续查找

14、吗?(y or n):); getchar(); input=getchar(); void search_book_by_author() book *p=NULL; char sMAX_AUTHOR=0; char input=Y; int count=0; int i=0; printf(查找图书.n); while(input=Y | input=y) count=0; p=first_book; memset(s,0,MAX_AUTHOR); printf(请输入作者(最大长度为%d):,MAX_AUTHOR); scanf(%s,s); while(p!=NULL) if(find

15、str(p-bi.author,s)!=-1) show_book(&(p-bi); count+; p=p-next; if(count=0) printf(没有找到作者为%s的图书。继续查找吗?(y or n):,s); getchar(); input=getchar(); continue; printf(共找到%d本图书.n,count); printf(继续查找吗?(y or n):); getchar(); input=getchar(); void search_book_by_publisher() book *p=NULL; char sMAX_PUBLISHER=0; c

16、har input=Y; int count=0; printf(查找图书.n); while(input=Y | input=y) count=0; p=first_book; memset(s,0,MAX_AUTHOR); printf(请输入出版社(最大长度为%d):,MAX_PUBLISHER); scanf(%s,s); while(p!=NULL) if(findstr(p-bi.publisher,s)!=-1) show_book(&(p-bi); count+; p=p-next; if(count=0) printf(没有找到出版社为%s的图书。继续查找吗?(y or n)

17、:,s); getchar(); input=getchar(); continue; printf(共找到%d本图书.n,count); printf(继续查找吗?(y or n):); getchar(); input=getchar(); void search_book_by_pubdate() book *p=NULL; char sMAX_DATE=0; char input=Y; int count=0; int i=0; printf(查找图书.n); while(input=Y | input=y) count=0; p=first_book; memset(s,0,MAX_

18、DATE); printf(请输入出版日期(最大长度为%d):,MAX_DATE); scanf(%s,s); while(p!=NULL) if(findstr(p-bi.pub_date,s)!=-1) show_book(&(p-bi); count+; p=p-next; if(count=0) printf(没有找到出版日期为%s的图书。继续查找吗?(y or n):,s); getchar(); input=getchar(); continue; printf(共找到%d本图书.n,count); printf(继续查找吗?(y or n):); getchar(); input

19、=getchar();void search_book_by_isbn() char input=Y; char isbnMAX_ISBN=0; book *p=NULL; book *result=NULL; while(input=Y | input=y) printf(查找图书.n); printf(请输入ISBN(最大长度为%d):,MAX_ISBN); scanf(%s,isbn); p=first_book; result=NULL; while(p!=NULL) if(strcmp(p-bi.ISBN,isbn)=0) result=p; break; p=p-next; if(

20、result!=NULL) printf(查找到图书.n); show_book(&(result-bi); else printf(没有找到ISBN为%s的图书。n,isbn); printf(继续查找吗?(y or n)); getchar(); input=getchar(); void delete_book() char input=Y; char isbnMAX_ISBN=0; book *p=NULL; book *result=NULL; while(input=Y | input=y) printf(删除图书.n); printf(请输入ISBN(最大长度为%d):,MAX_

21、ISBN); scanf(%s,isbn); p=first_book; result=NULL; while(p!=NULL) if(strcmp(p-bi.ISBN,isbn)=0) result=p; break; p=p-next; if(result!=NULL) show_book(&(result-bi); printf(确认删除吗?(y or n)); getchar(); input=getchar(); if(input=y | input=Y) if(p=NULL) get_previous_book(p)-next=p-next; free(p); else get_p

22、revious_book(p)-next=p-next; else printf(没有找到ISBN为%s的图书。n,isbn); printf(继续删除其他图书吗?(y or n)); getchar(); input=getchar(); void save_books() save_books_to_file(); printf(保存成功!按任意键返回.); getchar(); getchar();void save_books_to_file() FILE *fp=fopen(BOOK_FILE,wb); book *p=first_book; while(p!=NULL) fwrit

23、e(&(p-bi),sizeof(book_info),1,fp); fseek(fp,0,SEEK_END); p=p-next; fclose(fp);void init_book() FILE *fp=NULL; fp=fopen(BOOK_FILE,r); if(fp=NULL) fp=fopen(BOOK_FILE,w); if(fp=NULL) printf(不能创建文件,按任意键退出.); getchar(); exit(0); fclose(fp);void load_books() book *b=NULL; book *last=NULL; FILE *fp=NULL; i

24、nt count=0; b=(book*)malloc(sizeof(book); memset(b,0,sizeof(book); b-next=NULL; fp=fopen(BOOK_FILE,rb); while(fread(&(b-bi),sizeof(book_info),1,fp)=1) if(first_book=NULL) first_book=b; else last=get_last_book(); last-next=b; count+; fseek(fp,count * sizeof(book_info),SEEK_SET); b=(book*)malloc(sizeo

25、f(book); memset(b,0,sizeof(book); b-next=NULL; free(b); b=NULL; fclose(fp);void clear_books() book *p=NULL; while(first_book!=NULL) if(first_book-next!=NULL) p=first_book; first_book=first_book-next; free(p); p=NULL; else free(first_book); first_book=NULL; int findstr(char *source,char *str) int pos=-1; int i=0; int j=0; int m=strlen(source); int n=strlen(str); if(m=0 | n=0 | mn) return pos; if(m=n) if(strcmp

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1