1、精品文档就在这里-各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-图书管管理系统源代码经过三周小学期教学,终于把任务完成了,先把成果贴在这,希望同志们提出不足之处.也希望同志们遇见这个问题后可以借鉴以下.一定要先建立一个密码文件.程序源代码:#include#include#include#include#includestruct readers_listchar readernum20; /*读者学号*/char readername20; /*读者姓名*/ char readerage10; /*读者年龄*/char sex10; /*读者性别*/char rea
2、der120; /*读者职业*/char reader220;/*读者单位*/char readertel20;/*读者电话*/struct readers_list * next; /*链表的指针域*/;struct books_listchar author20; /*作者名*/char bookname20; /*书名*/ char publisher20; /*出版单位*/char pbtime15; /*出版时间*/char booknum20; /*图书编号*/float price; /*价格*/char classfy20; /*分类号*/int num;/*图书数量*/str
3、uct books_list * next; /*链表的指针域*/;struct borrow_lend_listchar readernum20; /*读者学号*/char booknum20; /*图书编号*/ char borrowtime15; /*借书时间*/char backtime115; /*应归还时间*/char backtime215; /*实际归还时间*/char other20;/*备注*/struct borrow_lend_list * next; /*链表的指针域*/;struct readers_list *head1;struct books_list *he
4、ad2;struct borrow_lend_list *head3;void save1(struct readers_list *tp);/*保存数据至读者文件*/void save2(struct books_list *tp);/*保存数据至图书文件*/void save3(struct borrow_lend_list *tp);void borrow_book( );void borrow_reader( );struct readers_list *CreateDoc1( ); /*新建读者链表*/struct books_list *CreateDoc2( ); /*新建图书链
5、表*/struct borrow_lend_list *CreateDoc3( );void InsertDoc1( ); /*读者插入*/void InsertDoc2( ); /*图书插入*/void InsertDoc3( );struct readers_list * head1DeleteDoc1(struct readers_list * head1);/*读者信息删除*/struct books_list * head2DeleteDoc2(struct books_list * head2 );/*图书信息删除*/struct borrow_lend_list *DeleteD
6、oc3(struct borrow_lend_list * head3);void search_reader(char read20); /*读者查询*/void search_book(char book20); /*图书查询*/void info_change1(struct readers_list * head1);/*读者修改*/void info_change2(struct books_list * head2);/*图书修改*/void info_change3(struct borrow_lend_list * head3);/*图书修改*/int password( );
7、void changepassword( );/*/*保存读者数据至文件*/*void save1(struct readers_list *tp)struct readers_list *p;FILE *fp;p=tp;fp=fopen(readerdata.txt,wb+); /*以写方式新建并打开 data.txt文件*/while(p != NULL)fwrite(p,sizeof(struct readers_list),1,fp);p=p-next;fclose(fp);printf(n 已将读者数据保存到 readerdata.txt 文件n);/*保存图书数据至文件*/void
8、 save2(struct books_list *tp)struct books_list *p;FILE *fp;p=tp;fp=fopen(bookdata.txt,wb+); /*以写方式新建并打开 data.txt文件*/while(p != NULL)fwrite(p,sizeof(struct books_list),1,fp);p=p-next;fclose(fp);printf(n已将图书数据保存到 bookdata.txt 文件n);/*保存借/还书数据至文件*/void save3(struct borrow_lend_list *tp)struct borrow_len
9、d_list *p;FILE *fp;p=tp;fp=fopen(borrow_lenddata.txt,wb+); /*以写方式新建并打开 data.txt文件*/while(p != NULL)fwrite(p,sizeof(struct borrow_lend_list),1,fp);p=p-next; fclose(fp);printf(n 已将借/换书数据保存到 borrow_lenddata.txt 文件n);/*/*/*录入读者信息*/struct readers_list *CreateDoc1( )/*定义结构体指针变量 s指向开辟的新结点首地址 p为中间变量*/struct
10、 readers_list *s, *p ,*head;char flag=Y; /*定义flag,方便用户选择重复输入*/int u=0;p=NULL; head=p;while(flag=Y|flag=y)s=(struct readers_list *)malloc(sizeof(struct readers_list);if(s=NULL) printf(malloc error.n); break; printf(n 请输入读者学号:);fflush(stdin);scanf(%s,s-readernum);printf(n 请输入读者姓名:);fflush(stdin);scanf
11、(%s,s-readername);printf(n 请输入读者年龄:);fflush(stdin);scanf(%s,s-readerage);printf(n 请输入读者性别:);fflush(stdin);scanf(%s,s-sex);printf(n 请输入读者职业:);fflush(stdin);scanf(%s,s-reader1);printf(n 请输入读者单位:);fflush(stdin);scanf(%s,s-reader2);printf(n 请输入读者电话:);fflush(stdin);scanf(%s,s-readertel);printf(n);s-next=
12、NULL;if(head= NULL) head=p=s;else p-next=s;p=s;printf( 添加成功!);printf(n 继续添加?(Y/N):);fflush(stdin);scanf(%c,&flag);printf(n);if(flag=N|flag=n) break;else if(flag=Y|flag=y) continue;else while(1)u=0; printf(请重新选择,是否继续添加?(Y/N):); fflush(stdin); scanf(%c,&flag); printf(n); if(flag=N|flag=n) break; else
13、if(flag=Y|flag=y) u=1; break; else continue; if(u=1) u=0;continue;else break;save1(head); /*保存数据至文件*/return(head);/*录入图书信息*/struct books_list *CreateDoc2( )/*定义结构体指针变量 s指向开辟的新结点首地址 p为中间变量*/struct books_list *s, *p ,*head;char flag=Y; /*定义flag,方便用户选择重复输入*/int u=0;p=NULL; head=p;while(flag=Y|flag=y)s=
14、(struct books_list *)malloc(sizeof(struct books_list);if(s=NULL) printf(malloc error.n); break; printf(n 请输入图书书号:);fflush(stdin);scanf(%s,s-booknum);printf(n 请输入图书书名:);fflush(stdin);scanf(%s,s-bookname);printf(n 请输入图书作者名:);fflush(stdin);scanf(%s,s-author);printf(n 请输入图书出版社:);fflush(stdin);scanf(%s,s
15、-publisher);printf(n 请输入图书出版时间:);fflush(stdin);scanf(%s,s-pbtime);printf(n 请输入图书分类号:);fflush(stdin);scanf(%s,s-classfy);printf(n 请输入图书价格:);fflush(stdin);scanf(%f,&s-price);printf(n请输入图书数量:);fflush(stdin);scanf(%d,&s-num);printf(n);s-next=NULL;if(head= NULL) head=p=s;else p-next=s;p=s;printf( 添加成功!);
16、printf(n 继续添加?(Y/N):);fflush(stdin);scanf(%c,&flag);printf(n);if(flag=N|flag=n) break;else if(flag=Y|flag=y) continue;else while(1) u=0; printf(请重新选择,是否继续添加?(Y/N):); fflush(stdin); scanf(%c,&flag); printf(n); if(flag=N|flag=n) break; else if(flag=Y|flag=y) u=1; break; else continue; if(u=1) u=0;cont
17、inue;else break;save2(head); /*保存数据至文件*/return(head);/*录入借书信息*/struct borrow_lend_list *CreateDoc31( )/*定义结构体指针变量 s指向开辟的新结点首地址 p为中间变量*/struct borrow_lend_list *s, *p ,*head;struct books_list *p2;char flag=Y; /*定义flag,方便用户选择重复输入*/int u=0;p=NULL; head=p;while(flag=Y|flag=y)s=(struct borrow_lend_list *
18、)malloc(sizeof(struct borrow_lend_list);if(s=NULL) printf(malloc error.n); break; printf(n 请输入读者学号:);fflush(stdin);scanf(%s,s-readernum);printf(n 请输入图书编号:);fflush(stdin);scanf(%s,s-booknum);printf(n 请输入借书时间:);fflush(stdin);scanf(%s,s-borrowtime);printf(n 请输入应归还时间:);fflush(stdin);scanf(%s,s-backtime1
19、);strcpy(s-backtime2 ,-);strcpy(s-other ,-);printf(n 请输入备注:);fflush(stdin);gets(s-other);printf(n);s-next=NULL;if(head= NULL) head=p=s;else p-next=s;p=s;p2=head2;while(p2!=NULL)if(strcmp(p2-booknum,s-booknum)=0) p2-num-=1; break;else p2=p2-next;save2(head2);printf( 添加成功!);printf(n 继续添加?(Y/N):);fflus
20、h(stdin);scanf(%c,&flag);printf(n);if(flag=N|flag=n) break;else if(flag=Y|flag=y) continue;else while(1) u=0; printf(请重新选择,是否继续添加?(Y/N):); fflush(stdin); scanf(%c,&flag); printf(n); if(flag=N|flag=n) break; else if(flag=Y|flag=y) u=1; break; else continue; if(u=1) u=0;continue;else break;save3(head)
21、; /*保存数据至文件*/return(head);/*录入还书信息*/struct borrow_lend_list *CreateDoc32( )/*定义结构体指针变量 s指向开辟的新结点首地址 p为中间变量*/struct borrow_lend_list *s, *p ;struct books_list *p2;char flag=Y; /*定义flag,方便用户选择重复输入*/int u=0;while(flag=Y|flag=y) s=(struct borrow_lend_list *)malloc(sizeof(struct borrow_lend_list); printf
22、(n 请输入读者学号:); fflush(stdin); scanf(%s,s-readernum); printf(n 请输入图书编号:); fflush(stdin); scanf(%s,s-booknum); printf(n 请输入实际归还时间:); fflush(stdin); gets(s-backtime2); printf(n 请输入备注:); fflush(stdin); gets(s-other); printf(n); p2=head2; while(p2!=NULL) if(strcmp(p2-booknum,s-booknum)=0) p2-num+=1; break
23、; else p2=p2-next; save2(head2); p=head3; while(p!=NULL) if(strcmp(p-booknum,s-booknum)=0&strcmp(p-booknum,s-booknum)=0) strcpy(p-backtime2,s-backtime2); strcpy(p-other,s-other); break; else p=p-next; save3(head3); printf( 添加成功!); printf(n 继续添加?(Y/N):); fflush(stdin); scanf(%c,&flag); printf(n); if(
24、flag=N|flag=n) break; else if(flag=Y|flag=y) continue; else while(1) u=0; printf(请重新选择,是否继续添加?(Y/N):); fflush(stdin); scanf(%c,&flag); printf(n); if(flag=N|flag=n) break; else if(flag=Y|flag=y) u=1; break; else continue; if(u=1) u=0; continue; else break;save3(head3); /*保存数据至文件*/return(head3);/*/*/*
25、插入读者信息*/void InsertDoc1( )struct readers_list *s, *p, *u,*p1;char flag=Y;int w,h,t=0,k=0; while(flag=Y|flag=y)h=0;s=(struct readers_list *)malloc(sizeof(struct readers_list);printf(n 请输入读者学号:);fflush(stdin);scanf(%s,s-readernum);p1=head1;while(p1!=NULL)if(strcmp(p1-readernum,s-readernum)=0) h=1; pri
26、ntf(n 已有本读者信息!); if(t!=0) save1(head1); /*保存数据至文件*/ break;p1=p1-next;if(h=1) break;printf(n 请输入读者姓名:);fflush(stdin);scanf(%s,s-readername);printf(n 请输入读者年龄:);fflush(stdin);scanf(%s,s-readerage);printf(n 请输入读者性别:);fflush(stdin);scanf(%s,s-sex);printf(n 请输入读者职业:);fflush(stdin);scanf(%s,s-reader1);prin
27、tf(n 请输入读者单位:);fflush(stdin);scanf(%s,s-reader2);printf(n 请输入读者电话:);fflush(stdin);scanf(%s,s-readertel);printf(n);s-next=NULL;p=head1;w=0;while(p-next != NULL)u=p-next;if(strcmp(s-readernum,p-readernum)0&strcmp(s-readernum,u-readernum)next=s; s-next=u; break;else p=p-next;if(w=0&strcmp(s-readernum,p
28、-readernum)0)p-next=s;else if(w=0&strcmp(s-readernum,head1-readernum)next=head1; head1=s;t+;printf( 插入成功!);printf(n 继续添加?(Y/N):);fflush(stdin);scanf(%c,&flag);printf(n);if(flag=N|flag=n)save1(head1); /*保存数据至文件*/ break;else if(flag=Y|flag=y) continue;else while(1) k=0; printf(请重新选择,是否继续添加?(Y/N):); ff
29、lush(stdin); scanf(%c,&flag); printf(n); if(flag=N|flag=n) break; else if(flag=Y|flag=y) k=1; break; else continue; if(k=1) k=0;continue;else break;save1(head1);return;/*插入图书信息*/void InsertDoc2( )struct books_list *s, *p, *u,*p2;char flag=Y; int w,h,t=0,k=0; while(flag=Y|flag=y)h=0;s=(struct books_l
30、ist *)malloc(sizeof(struct books_list);printf(n 请输入图书书号:);fflush(stdin);scanf(%s,s-booknum);p2=head2;while(p2 !=NULL)if(strcmp(p2-booknum,s-booknum)=0) h=1; printf(n 已有本图书的信息!); if(t!=0) save2(head2); /*保存数据至文件*/ break;p2=p2-next;if(h=1) break;printf(n 请输入图书书名:);fflush(stdin);scanf(%s,s-bookname);pr
31、intf(n 请输入图书作者名:);fflush(stdin);scanf(%s,s-author);printf(n 请输入图书出版社:);fflush(stdin);scanf(%s,s-publisher);printf(n 请输入图书出版时间:);fflush(stdin);scanf(%s,s-pbtime);printf(n 请输入图书分类号:);fflush(stdin);scanf(%s,s-classfy);printf(n 请输入图书价格:);fflush(stdin);scanf(%f,&s-price);printf(n请输入图书数量:);fflush(stdin);s
32、canf(%d,&s-num);printf(n);s-next=NULL;p=head2;w=0;while(p-next != NULL)u=p-next;if(strcmp(s-booknum,p-booknum)0&strcmp(s-booknum,u-booknum)next=s; s-next=u; break;else p=p-next;if(w=0&strcmp(s-booknum,p-booknum)0)p-next=s;else if(w=0&strcmp(s-booknum,head2-booknum)next=head2; head2=s;t+;printf( 插入成功
33、!);printf(n 继续添加?(Y/N):);fflush(stdin);scanf(%c,&flag);printf(n);if(flag=N|flag=n)save2(head2); /*保存数据至文件*/ break;else if(flag=Y|flag=y) continue;else while(1) k=0; printf(请重新选择,是否继续添加?(Y/N):); fflush(stdin); scanf(%c,&flag); printf(n); if(flag=N|flag=n) break; else if(flag=Y|flag=y) k=1; break; els
34、e continue; if(k=1) k=0;continue;else break;save2(head2);return;/*插入借/还书信息*/void InsertDoc3( )struct borrow_lend_list *s, *p, *u;char flag=Y; int w,h,k=0; while(flag=Y|flag=y)h=0;s=(struct borrow_lend_list *)malloc(sizeof(struct borrow_lend_list);printf(n 请输入读者学号:);fflush(stdin);scanf(%s,s-readernum
35、);printf(n 请输入图书编号:);fflush(stdin);scanf(%s,s-booknum);printf(n 请输入借书时间:);fflush(stdin);scanf(%s,s-borrowtime);printf(n 请输入应归还时间:);fflush(stdin);scanf(%s,s-backtime1);strcpy(s-backtime2,-);printf(n 请输入实际归还时间:);fflush(stdin);gets(s-backtime2);strcpy(s-other,-);printf(n 请输入备注:);fflush(stdin);gets(s-other);printf(n);s-next=NULL;p=head3;w=0;while(p-next != NULL)u=p-next;if(strcmp(s-borrowtime,p-borrowtime)0&strcmp(s-borrowtime,u-borrowtime)next=s; s-next=u; break;else p=p-next;if(w=0&strcmp(s-borrowtime,p-borrowtime)0)p-ne
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100