C語言圖書管理系統(tǒng)源代碼
《C語言圖書管理系統(tǒng)源代碼》由會員分享,可在線閱讀,更多相關《C語言圖書管理系統(tǒng)源代碼(82頁珍藏版)》請在裝配圖網上搜索。
1、#include
2、 tushu *next; }; struct stu /*學生結構體*/ { int snum; /*學號*/ char mima[10]; /*密碼*/ struct stu *next; }; FILE *fp; /*圖書文件*/ FILE *fp1; /*管理員信息文件*/ FILE *fp2; /*學生信息文件*/ void menu(); /*管理員主菜單(管理員進入對圖書及學生信息進行管理操作)*/ void xmenu(); /*學生主
3、菜單(學生進入可對圖書,密碼進行操作)*/ void gfind(); /*管理員查詢(管理員可按一定的方式查詢圖書)*/ void xfind(); /*學生查詢(學生可按一定的方式查詢圖書)*/ void secret(); /*管理員權限(管理員登陸所用,輸入錯誤次數(shù)過多自動退出)*/ void sort(); /*排序(管理員可按一定的方式對圖書進行排序,排序完之后可選擇文件進行保存)*/ void fprint(struct tushu *head); /*保存(可追加的保存,如添加可用)*/ void fprint_(struct
4、 tushu *head); /*保存(可覆蓋保存如修改,刪除,排序后用)*/ void hfprint(struct tushu *head); /*還書保存 (還書成功后自動保存到文件)*/ void jfprint_(struct tushu *head); /*借書保存 (借書成功之后自動從圖書館刪除)*/ struct tushu * Input(); /*圖書添加(可進行圖書的添加)*/ struct tushu * create(); /*從文件創(chuàng)建鏈表(從文件中讀出
5、信息,建立單鏈表)*/ void gBrowse(struct tushu *head); /*管理員瀏覽(對圖書進行遍歷)*/ void xBrowse(struct tushu *head); /*學生瀏覽(學生對圖書進行遍歷)*/ void count(struct tushu *head); /*統(tǒng)計數(shù)量(管理員可對圖書進行統(tǒng)計)*/ void Findofname(struct tushu *head); /*按書名查找*/ void Findofwriter(struct tushu *head); /*按作者查找
6、*/ void Findofkind(struct tushu *head); /*按類別查找*/ void xFindofname(struct tushu *head); /*學生按書名查找*/ void xFindofwriter(struct tushu *head); /*學生按作者查找*/ void xFindofkind(struct tushu *head); /*學生按類別查找*/ void Sort_time(struct tushu * head); /*按時間排序(管理員按時間對圖書進行排序,排序完之后可選擇文件進行保存)*/
7、void Sort_price(struct tushu * head); /*按價格排序*/ void Sort_num(struct tushu * head); /*按編號排序*/ void Delete(struct tushu * head,char m[15]);/*按編號刪除(管理員可按編號刪除圖書)*/ void Revise(struct tushu *head); /*修改 (管理員可對圖書進行修改,并選擇是否保存)*/ void borrow(struct tushu *head); /*借書*/ void hua
8、nshu(); /*還書(學生借完書之后進行還書,若沒有圖書則不能借)*/ void gxinxi(); /*管理員信息(有管理員的賬號及密碼,可進行修改)*/ void xmima(struct stu *head1); /*學生密碼修改(學生可對自己的密碼進行修改)*/ struct stu * xcreate(); /*從文件創(chuàng)建學生信息 (從文件讀出學生信息,建立學生鏈表)*/ void xsecret(struct stu
9、 *head1); /*學生權限(學生登陸所用)*/ void menu() /*管理員主菜單(管理員進入對圖書及學生信息進行管理操作)*/ { int choice,n=0; struct tushu *head; struct stu *head1,*p; char m[15]; there: printf(" ┏━┓━━━━━━━━━━━━━━━━━━━┏━┓\n"); printf(" ┃ ┃ socat 圖書管理系統(tǒng) ┃ ┃\n"); pr
10、intf(" ┃ ┗━━━━━━━━━━━━━━━━━━━┛ ┃\n"); printf(" ┃ ●[0]退出系統(tǒng) ┃\n"); printf(" ┃ ┃\n"); printf(" ┃ ●[1]幫助 ┃\n"); printf(" ┃
11、 ┃\n"); printf(" ┃ ●[2]瀏覽圖書 ┃\n"); printf(" ┃ ┃\n"); printf(" ┃ ●[3]統(tǒng)計圖書數(shù)目 ┃\n"); printf(" ┃
12、 ┃\n"); printf(" ┃ ●[4]查詢 ┃\n"); printf(" ┃ ┃\n"); printf(" ┃ ●[5]添加 ┃\n"); printf(" ┃
13、 ┃\n"); printf(" ┃ ●[6]排序 ┃\n"); printf(" ┃ ┃\n"); printf(" ┃ ●[7]修改 ┃\n"); printf(" ┃
14、 ┃\n"); printf(" ┃ ●[8]刪除 ┃\n"); printf(" ┃ ┃\n"); printf(" ┃ ●[9]修改賬號及密碼 ┃\n"); printf(" ┃
15、 ┃\n"); printf(" ┃ ●[10]學生信息 ┃\n"); printf(" ┗━━━━━━━━━━━━━━━━━━━━━━━┛\n"); printf(" 請選擇:"); fflush(stdin); head=create(); scanf("%d",&choice); if(choice==1)
16、{ //help(); printf("沒有內容!\n"); system("pause"); system("cls"); menu(); } else if(choice==2) { system("cls"); if(head==NULL) { printf("沒有圖書,請先添加圖書!\n"); system("pause"); system("cls"); menu(); } gBrowse(head); } else if(choice==3) { system
17、("cls"); count(head); } else if(choice==4) { system("cls"); if(head==NULL) { printf("沒有圖書,請先添加圖書!\n"); system("pause"); system("cls"); menu(); } gfind(); } else if(choice==5) { Input(); } else if(choice==6) { system("cls"); if(head==NULL)
18、 { printf("沒有圖書,請先添加圖書!\n"); system("pause"); system("cls"); menu(); } sort(head); } else if(choice==7) { system("cls"); if(head==NULL) { printf("沒有圖書,請先添加圖書!\n"); system("pause"); system("cls"); menu(); } Revise(head) ; } else if(choi
19、ce==8) { if(head==NULL) { printf("沒有圖書,請先添加圖書!\n"); system("pause"); system("cls"); menu(); } printf(" 請輸入想要刪除的圖書編號:"); scanf("%s",m); Delete(head,m); } else if(choice==9) { gxinxi(); } else if(choice==10) { system("cls"); head1=xcreate();
20、 if(head1==NULL) { printf("沒有學生信息,請到xuesheng_list.txt添加!\n"); system("pause"); system("cls"); menu(); } for(p=head1;p!=NULL;p=p->next) { printf("學生學號 密碼\n"); printf("%d %s\n",p->snum,p->mima); } system("pause"); system("cls"); menu(); } els
21、e if(choice==0) { system("cls"); printf("\n\n\n\n"); printf(" ━━━━━━━━ 感謝使用圖書管理系統(tǒng) ━━━━━━━━\n\n\n"); exit(0); } else { system("cls"); printf("\n\n\n\n ━━━━ 輸入錯誤,請重新輸入!━━━━ \n\n\n "); system("pause"); system("cls"); n++; if(n==3) {
22、 printf(" \n\n\n ━━━━━━━━ 你錯誤次數(shù)太多,自動退出! ━━━━━━━━\n\n\n"); printf(" ━━━━━━━━ 感謝使用圖書管理系統(tǒng) ━━━━━━━━\n\n\n"); system("pause"); exit(0); } goto there; } } void xmenu()/*學生主菜單(學生進入可對圖書,密碼進行操作)*/ { struct tushu *head; struct stu *head1; int choice,n=0;
23、 there: printf(" ┏━┓━━━━━━━━━━━━━━━━━━━┏━┓\n"); printf(" ┃ ┃ socat 圖書借閱系統(tǒng) ┃ ┃\n"); printf(" ┃ ┗━━━━━━━━━━━━━━━━━━━┛ ┃\n"); printf(" ┃ ●[0]退出系統(tǒng) ┃\n"); printf(" ┃
24、 ┃\n"); printf(" ┃ ●[1]幫助 ┃\n"); printf(" ┃ ┃\n"); printf(" ┃ ●[2]瀏覽圖書 ┃\n"); printf(" ┃
25、 ┃\n"); printf(" ┃ ●[3]查詢 ┃\n"); printf(" ┃ ┃\n"); printf(" ┃ ●[4]借書 ┃\n"); printf(" ┃
26、 ┃\n"); printf(" ┃ ●[5]還書 ┃\n"); printf(" ┃ ┃\n"); printf(" ┃ ●[6]修改密碼 ┃\n"); printf(" ┗━━━━━━━━━━━
27、━━━━━━━━━━━━┛\n"); printf(" 請選擇:"); fflush(stdin); head=create(); scanf("%d",&choice); if(choice==1) { //xhelp(); printf("沒有內容!\n"); system("pause"); system("cls"); xmenu(); } else if(choice==2) { system("cls"); if(head==NULL) {
28、 printf("沒有圖書!\n"); system("pause"); system("cls"); xmenu(); } xBrowse(head); } else if(choice==3) { if(head==NULL) { printf("沒有圖書!\n"); system("pause"); system("cls"); xmenu(); } xfind(); } else if(choice==4) { if(head==NULL) { pr
29、intf("沒有圖書!\n"); system("pause"); system("cls"); xmenu(); } borrow(head); } else if(choice==5) { huanshu(head); } else if(choice==6) { system("cls"); head1=xcreate(); if(head1==NULL) { printf("學生信息被清空!!\n"); system("pause"); system("cls"); xme
30、nu(); } xmima(head1); ; } else if(choice==0) { system("cls"); printf("\n\n\n\n"); printf(" ━━━━━━━━ 感謝使用圖書管理系統(tǒng) ━━━━━━━━\n\n\n"); exit(0); } else { system("cls"); printf("\n\n\n\n ━━━━ 輸入錯誤,請重新輸入!━━━━ \n\n\n "); system("pause"); s
31、ystem("cls"); n++; if(n==3) { printf(" \n\n\n ━━━━━━━━ 你錯誤次數(shù)太多,自動退出! ━━━━━━━━\n\n\n"); printf(" ━━━━━━━━ 感謝使用圖書管理系統(tǒng) ━━━━━━━━\n\n\n"); system("pause"); exit(0); } goto there; } } void gfind()/*管理員查詢(管理員可按一定的方式查詢圖書)*/ { int choice,n=0; stru
32、ct tushu *head; there: system("cls"); printf(" ┏━┓━━━━━━━━━━━━━━━━━━━┏━┓\n"); printf(" ┃ ┃ socat 圖書借閱系統(tǒng) ┃ ┃\n"); printf(" ┃ ┗━━━━━━━━━━━━━━━━━━━┛ ┃\n"); printf(" ┃ ●[0]返回 ┃\n"); prin
33、tf(" ┃ ┃\n"); printf(" ┃ ●[1]按書名查找 ┃\n"); printf(" ┃ ┃\n"); printf(" ┃ ●[2]按作者查找 ┃\n"); printf("
34、 ┃ ┃\n"); printf(" ┃ ●[3]按類別查找 ┃\n"); printf(" ┃ ┃\n"); printf(" ┃ ● ┃\n"); printf(
35、" ┗━━━━━━━━━━━━━━━━━━━━━━━┛\n"); printf(" 請選擇:"); fflush(stdin); head=create(); scanf("%d",&choice); if(choice==1) { system("cls"); Findofname(head); } else if(choice==2) { system("cls"); Findofwriter(head); } else if(choice
36、==3) { system("cls"); Findofkind(head); } else if(choice==0) { system("cls"); menu(); } else { system("cls"); printf("\n\n\n\n ━━━━ 輸入錯誤,請重新輸入!━━━━ \n\n\n "); system("pause"); system("cls"); n++; if(n==3) { printf(" \n\n\n
37、━━━━━━━━ 你錯誤次數(shù)太多,自動退出! ━━━━━━━━\n\n\n"); printf(" ━━━━━━━━ 感謝使用圖書管理系統(tǒng) ━━━━━━━━\n\n\n"); system("pause"); exit(0); } goto there; } } void xfind() /*學生查詢(學生可按一定的方式查詢圖書)*/ { struct tushu *head; int choice,n=0; there: system("cls"); printf(" ┏━┓━━
38、━━━━━━━━━━━━━━━━━┏━┓\n"); printf(" ┃ ┃ socat 圖書借閱系統(tǒng) ┃ ┃\n"); printf(" ┃ ┗━━━━━━━━━━━━━━━━━━━┛ ┃\n"); printf(" ┃ ●[0]返回 ┃\n"); printf(" ┃ ┃\
39、n"); printf(" ┃ ●[1]按書名查找 ┃\n"); printf(" ┃ ┃\n"); printf(" ┃ ●[2]按作者查找 ┃\n"); printf(" ┃ ┃\n");
40、 printf(" ┃ ●[3]按類別查找 ┃\n"); printf(" ┃ ┃\n"); printf(" ┃ ● ┃\n"); printf(" ┗━━━━━━━━━━━━━━━━━━━━━━━┛\n"); printf("
41、 請選擇:"); fflush(stdin); head=create(); scanf("%d",&choice); if(choice==1) { system("cls"); xFindofname(head); } else if(choice==2) { system("cls"); xFindofwriter(head); } else if(choice==3) { system("cls"); xFindofkind(head); } else if(c
42、hoice==0) { system("cls"); xmenu(); } else { system("cls"); printf("\n\n\n\n ━━━━ 輸入錯誤,請重新輸入!━━━━ \n\n\n "); system("pause"); system("cls"); n++; if(n==3) { printf(" \n\n\n ━━━━━━━━ 你錯誤次數(shù)太多,自動退出! ━━━━━━━━\n\n\n"); printf("
43、 ━━━━━━━━ 感謝使用圖書借閱系統(tǒng) ━━━━━━━━\n\n\n"); system("pause"); exit(0); } goto there; } } void sort() { struct tushu *head; int choice,n=0; there: system("cls"); printf(" ┏━┓━━━━━━━━━━━━━━━━━━━┏━┓\n"); printf(" ┃ ┃ socat 圖書借閱系統(tǒng)
44、 ┃ ┃\n"); printf(" ┃ ┗━━━━━━━━━━━━━━━━━━━┛ ┃\n"); printf(" ┃ ●[0]返回 ┃\n"); printf(" ┃ ┃\n"); printf(" ┃ ●[1]按時間排序 ┃\n");
45、 printf(" ┃ ┃\n"); printf(" ┃ ●[2]按價格排序 ┃\n"); printf(" ┃ ┃\n"); printf(" ┃ ●[3]按編號排序
46、┃\n"); printf(" ┃ ┃\n"); printf(" ┃ ● ┃\n"); printf(" ┗━━━━━━━━━━━━━━━━━━━━━━━┛\n"); printf(" 請選擇:"); fflush(stdin); head=c
47、reate(); scanf("%d",&choice); if(choice==1) { system("cls"); Sort_time(head); } else if(choice==2) { system("cls"); Sort_price(head); } else if(choice==3) { system("cls"); Sort_num(head); } else if(choice==0) { system("cls"); menu(); } else {
48、 system("cls"); printf("\n\n\n\n ━━━━ 輸入錯誤,請重新輸入!━━━━ \n\n\n "); system("pause"); system("cls"); n++; if(n==3) { printf(" \n\n\n ━━━━━━━━ 你錯誤次數(shù)太多,自動退出! ━━━━━━━━\n\n\n"); printf(" ━━━━━━━━ 感謝使用圖書借閱系統(tǒng) ━━━━━━━━\n\n\n"); syste
49、m("pause"); exit(0); } goto there; } } struct tushu *Input() { struct tushu *p1,*p2,*head,*ptr; char num; int x,i=0; system("cls"); p1=(struct tushu *)malloc(sizeof(struct tushu)); head=p1; p1->price=-1; while(i!=1) { printf("請輸入編號,以#結束\n"); scanf("%
50、s",p1->num); if(strcmp(p1->num,"#")==0) i=1; while(i!=1) { printf("請依次輸入書名 作者 出版社 類別 出版時間 價格\n"); scanf("%s%s%s%s%lf%lf", p1->name,p1->writer,p1->press,p1->kind,&p1->time,&p1->price); p2=p1; p1=(struct tushu *)malloc(sizeof(struct tushu)); p2->next=p1; break;
51、 } } if(p1->price!=-1) p2->next=NULL; else head=NULL; system("cls"); printf("\n\n\n\t\t\t圖書信息輸入結束!\n\n\n"); system("pause"); system("cls"); printf("\n\n\n\t\t\t是否保存圖書信息?(1.是/2.否):"); scanf("%d",&x); if(x==1) fprint(head); else { system("cls"); printf("\n
52、\n\n\t\t\t 文件沒有被保存!\n\n\n\n"); system("pause"); system("cls"); menu(); } } void fprint(struct tushu *head) { struct tushu *p1; if((fp=fopen("tushu_list.txt","a"))==NULL) { printf("File open error!\n"); exit(0); } if(head==NULL) { printf("沒有圖書保存!\n"); syste
53、m("pause"); system("cls"); menu(); } for(p1=head;p1!=NULL;p1=p1->next) /*遍歷*/ fprintf(fp,"%s\t%s\t%s\t%s\t%s\t%.0lf\t%lf\n", p1->num,p1->name,p1->writer,p1->press,p1->kind,p1->time,p1->price );/*將圖書信息寫入文件*/ fclose(fp); system("cls"); printf("\n 圖書信息已成功保存到文件tushu_list.txt 中!\n");
54、 system("pause"); system("cls"); getchar(); menu(); } void fprint_(struct tushu *head) { struct tushu *p1; char a[20]; printf("請輸入你保存的文件!\n"); scanf("%s",a); if((fp=fopen(a,"w"))==NULL) { printf("File open error!\n"); exit(0); } if(head==NULL) { sy
55、stem("cls"); printf("沒有圖書!\n"); system("pause"); system("cls"); menu(); } for(p1=head;p1!=NULL;p1=p1->next) fprintf(fp,"%s\t%s\t%s\t%s\t%s\t%.0lf\t%lf\n", p1->num,p1->name,p1->writer,p1->press,p1->kind,p1->time,p1->price );/*將圖書信息寫入文件*/ fclose(fp); system("cls"); printf("\n
56、 圖書信息已成功保存到文件 %s 中!\n",a); system("pause"); system("cls"); menu(); } void hfprint(struct tushu *head) { struct tushu *p1; if((fp=fopen("tushu_list.txt","a"))==NULL) { printf("File open error!\n"); exit(0); } if(head==NULL) { printf("沒有還書!\n"); xmenu(); } f
57、or(p1=head;p1!=NULL;p1=p1->next) /*遍歷*/ fprintf(fp,"%s\t%s\t%s\t%s\t%s\t%.0lf\t%lf\n", p1->num,p1->name,p1->writer,p1->press,p1->kind,p1->time,p1->price );/*將圖書信息寫入文件*/ fclose(fp); xmenu(); } void jfprint_(struct tushu *head) { struct tushu *p1; if((fp=fopen("tushu_list.txt","w"))==
58、NULL) { printf("File open error!\n"); exit(0); } if(head==NULL) { xmenu(); } for(p1=head;p1!=NULL;p1=p1->next) { fprintf(fp,"%s\t%s\t%s\t%s\t%s\t%.0lf\t%lf\n", p1->num,p1->name,p1->writer,p1->press,p1->kind,p1->time,p1->price );/*將圖書信息寫入文件*/ } fclose(fp); system("cls
59、"); getchar(); xmenu(); } struct tushu * create() { struct tushu *head=NULL, *p,*p1,*p2; if((fp=fopen("tushu_list.txt","r"))==NULL)/*先安全打開目錄文件*/ { printf("File open error!\n"); exit(0); } while(!feof(fp))/*讀取并創(chuàng)建鏈表*/ { p=(struct tushu *)malloc(sizeof(struct tushu));
60、 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->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=
61、NULL; } } fclose(fp); return head; } void gBrowse(struct tushu *head) { struct tushu *p1; for(p1=head;p1!=NULL;p1=p1->next) { printf("編號 書名 作者 出版社 類別 出版時間 價格\n"); printf(" %s\t%s\t%s\t%s\t%s\t%.0lf\t%.2lf\n", p1->num,p1->name,p1->writer,p1->press,p1->ki
62、nd,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(" %s\t%s\t%s\t%s\t%s\t%.0lf\t%.2lf\n", p1->n
63、um,p1->name,p1->writer,p1->press,p1->kind,p1->time,p1->price); } system("pause"); system("cls"); xmenu(); } void count(struct tushu *head) /*統(tǒng)計圖書數(shù)目*/ { int n=0; struct tushu *p1; for(p1=head;p1!=NULL;p1=p1->next) n++; printf("\n 此系統(tǒng)統(tǒng)計在內的圖書共有 %d 冊。\n",n);/*計算并輸 出圖書數(shù)
64、目*/ system("pause"); system("cls"); menu(); } void Findofname(struct tushu *head) /*按書名查詢圖書*/ { int i=0,n; char b[20]; struct tushu *p; p=head; printf("\n 請輸入要查詢的圖書名稱:"); scanf("%s",b); while(p!=NULL) { if(strcmp(p->name,b)==0) { printf("\n 編號 書名 作者 出版社 類別 出
65、版時間 價格\n"); printf("%s\t%s\t%s\t%s\t%s\t%.0lf\t%.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("\n\n\n\t\t\t是否繼續(xù)查找圖書信息?(1.是/其他.返回
66、):"); scanf("%d",&n); if(n==1) gfind(); else { system("cls"); menu(); } } void Findofwriter(struct tushu *head) { int i=0,n; char b[20]; struct tushu *p; p=head; printf("\n 請輸入要查詢的圖書作者姓名:"); scanf("%s",b); while(p!=NULL) { if(strcmp(p->writer,b)==0) { printf("\n 編號 書名 作者 出版社 類別 出版時間 價格\n"); printf("%s\t%s\t%s\t%s\t%s\t%.0lf\t%.2lf \n", p->num,p->name,p->writer,p->press,p->kind,p->time,p->price); i++; } p=p->next
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。