C語言圖書管理系統(tǒng)源代碼_第1頁
C語言圖書管理系統(tǒng)源代碼_第2頁
C語言圖書管理系統(tǒng)源代碼_第3頁
C語言圖書管理系統(tǒng)源代碼_第4頁
C語言圖書管理系統(tǒng)源代碼_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選文檔/*需要在源代碼相同目錄下創(chuàng)建四個txt文件:tushu_list.txt,jieshu_list.txt,xuesheng_list.txt,guanliyuan.txt*/#include<stdio.h>#include<stdlib.h> #include<string.h>struct tushu /*圖書結構體*/char num11; /*編號*/char name31; /*書名*/char writer21; /*作者*/char press21; /*出版社*/char kind21; /*類別*/ double time; /*

2、時間*/double price; /*價格*/struct tushu *next;struct stu /*學生結構體*/int snum; /*學號*/char mima11; /*密碼*/ struct stu *next;struct jieshu /*借書信息結構體*/ int xuehao; /*學生學號*/ char num11; /*編號*/char name31; /*書名*/char writer21; /*作者*/char press21; /*出版社*/char kind21; /*類別*/ double time; /*時間*/double price; /*價格*

3、/struct jieshu *next; ;int denglu=-1;/*已登錄學生學號*/ FILE *fp; /*圖書文件*/FILE *fp1; /*管理員信息文件*/ FILE *fp2; /*學生信息文件*/FILE *fp3; /*借書信息文件*/ int main();/*主函數(shù)聲明*/ struct tushu * create(); /*從文件創(chuàng)建圖書鏈表(從文件中讀出圖書信息,建立單鏈表)*/struct stu * xcreate(); /*從文件創(chuàng)建學生信息(從文件讀出學生信息,建立學生鏈表)*/struct jieshu * jcreate();/從文件創(chuàng)建借書信

4、息鏈表struct jieshu * borrowcreate(struct tushu *k,struct jieshu *h);/直接創(chuàng)建借書信息鏈表 struct tushu * Input(); /*圖書添加(可進行圖書的添加)*/void menu(); /*管理員主菜單(管理員進入對圖書及學生信息進行管理操作)*/void xmenu(); /*學生主菜單(學生進入可對圖書,密碼進行操作)*/void gfind(); /*管理員查詢(管理員可按一定的方式查詢圖書)*/void xfind(); /*學生查詢(學生可按一定的方式查詢圖書)*/void secret(); /*管理員

5、權限(管理員登陸所用,輸入錯誤次數(shù)過多自動退出)*/void sort(struct tushu *head); /*排序(管理員可按一定的方式對圖書進行排序,排序完之后可選擇文件進行保存)*/void fprint(struct tushu *head); /*保存(可追加的保存,如添加可用)*/void jsprint(struct jieshu *h); /將借書信息添加到借書文件 void jfprint_(struct tushu *head); /*借書保存(借書成功之后自動從圖書館刪除)*/void fprint_(struct tushu *head); /*保存(可覆蓋保存如

6、修改,刪除,排序后用)*/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); /*按作者查找*/void Findofkind(struct tushu *head)

7、; /*按類別查找*/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); /*按價格排序*/void Sort_num(str

8、uct tushu * head); /*按編號排序*/void Delete(struct tushu * head,char m15);/*按編號刪除(管理員可按編號刪除圖書)*/void Revise(struct tushu *head); /*修改(管理員可對圖書進行修改,并選擇是否保存)*/void borrow(struct tushu *head); /*借書*/void huanshu(struct tushu *head); /*還書(學生借完書之后進行還書,若沒有圖書則不能借)*/void gxinxi(); /*管理員信息(有管理員的賬號及密碼,可進行修改)*/void

9、 xmima(struct stu *head1); /*學生密碼修改(學生可對自己的密碼進行修改)*/void xsecret(struct stu *head1); /*學生權限(學生登陸所用)*/void jsdelete(struct jieshu *h);/學生還書時刪除借書記錄 void putin(jieshu *h); /將還書信息加入圖書文件 /*-*/void menu()/*管理員主菜單(管理員進入對圖書及學生信息進行管理操作)*/int choice,n=0;struct tushu *head;struct stu *head1,*p;char m15;there:p

10、rintf(" n"); printf(" 圖書管理系統(tǒng) n");printf(" n");printf(" 0退出系統(tǒng) n"); printf(" n");printf(" 1返回主菜單 n");printf(" n");printf(" 2瀏覽圖書 n");printf(" n");printf(" 3統(tǒng)計圖書數(shù)目 n");printf(" n");printf("

11、; 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修改賬號及密碼 n");printf(" n");printf(

12、" 10學生信息 n");printf(" n");printf(" 請選擇:");fflush(stdin);head=create();scanf("%d",&choice);if(choice=1) system("cls");printf("nnntt您已退出登錄!nnnn");system("pause");main();else if(choice=2)system("cls");if(head=NULL)print

13、f("沒有圖書,請先添加圖書!n");system("pause");system("cls");menu();gBrowse(head);else if(choice=3)system("cls");count(head);else if(choice=4)system("cls");if(head=NULL)printf("沒有圖書,請先添加圖書!n");system("pause");system("cls");menu();gf

14、ind();else if(choice=5)Input();else if(choice=6)system("cls");if(head=NULL)printf("沒有圖書,請先添加圖書!n");system("pause");system("cls");menu();sort(head);else if(choice=7)system("cls");if(head=NULL)printf("沒有圖書,請先添加圖書!n");system("pause")

15、;system("cls");menu();Revise(head) ;else if(choice=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("c

16、ls");head1=xcreate();if(head1=NULL)printf("沒有學生信息,請到xuesheng_list.txt添加!n");system("pause");system("cls");menu();printf("學生學號 密碼n");for(p=head1;p!=NULL;p=p->next)printf("%-10d %-10sn",p->snum,p->mima);system("pause");system(&q

17、uot;cls");menu();else if(choice=0)system("cls");printf("nnnn");printf(" 感謝使用圖書管理系統(tǒng) nnnnn");exit(0);elsesystem("cls");printf("nnnn 輸入錯誤,請重新輸入! nnn ");system("pause");system("cls");n+;if(n=3)printf(" nnn 你錯誤次數(shù)太多,自動退出! nnn&

18、quot;);printf(" 感謝使用圖書管理系統(tǒng) nnn");system("pause");exit(0);goto there;/-void xmenu()/*學生主菜單(學生進入可對圖書,密碼進行操作)*/ struct tushu *head;struct stu *head1;int choice,n=0;there:printf(" n"); printf(" 圖書借閱系統(tǒng) n");printf(" n");printf(" 0退出系統(tǒng) n"); printf

19、(" 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")

20、;printf(" n");printf(" 請選擇:");fflush(stdin);head=create();scanf("%d",&choice);if(choice=1) denglu=-1; system("cls");printf("nnntt您已退出登錄!nnnn");system("pause");main();else if(choice=2)system("cls");if(head=NULL) printf("沒有

21、圖書!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)printf("沒有圖書!n");system("pause");system(&qu

22、ot;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");xmenu();xmima(head1); ;else if(choice=0)system("cls");printf("nnnn&q

23、uot;);printf(" 感謝使用圖書管理系統(tǒng) nnn");exit(0);elsesystem("cls");printf("nnnn 輸入錯誤,請重新輸入! nnn ");system("pause");system("cls");n+;if(n=3)printf(" nnn 你錯誤次數(shù)太多,自動退出! nnn");printf(" 感謝使用圖書管理系統(tǒng) nnn");system("pause");exit(0);goto th

24、ere;/-void gfind()/*管理員查詢(管理員可按一定的方式查詢圖書)*/int choice,n=0;struct tushu *head;there:system("cls");printf(" n");printf(" 圖書借閱系統(tǒng) n");printf(" n");printf(" 0返回 n");printf(" n");printf(" 1按書名查找 n");printf(" n");printf("

25、2按作者查找 n");printf(" n");printf(" 3按類別查找 n");printf(" 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

26、(choice=3)system("cls");Findofkind(head);else if(choice=0)system("cls");menu();elsesystem("cls");printf("nnnn 輸入錯誤,請重新輸入! nnn ");system("pause");system("cls");n+;if(n=3)printf(" nnn 你錯誤次數(shù)太多,自動退出! nnn");printf(" 感謝使用圖書管理系統(tǒng) nnn

27、");system("pause");exit(0);goto there;/-void xfind() /*學生查詢(學生可按一定的方式查詢圖書)*/struct tushu *head;int choice,n=0;there:system("cls");printf(" n"); printf(" 圖書借閱系統(tǒng) n");printf(" n");printf(" 0返回 n"); printf(" n");printf(" 1按書

28、名查找 n");printf(" n");printf(" 2按作者查找 n");printf(" n");printf(" 3按類別查找 n");printf(" n");printf(" 請選擇:");fflush(stdin);head=create();scanf("%d",&choice);if(choice=1)system("cls");xFindofname(head);else if(choice=2

29、)system("cls");xFindofwriter(head);else if(choice=3)system("cls");xFindofkind(head);else if(choice=0)system("cls");xmenu();elsesystem("cls");printf("nnnn 輸入錯誤,請重新輸入! nnn ");system("pause");system("cls");n+;if(n=3)printf(" nnn

30、 你錯誤次數(shù)太多,自動退出! nnn");printf(" 感謝使用圖書借閱系統(tǒng) nnn");system("pause");exit(0);goto there;/-void sort(struct tushu *head)struct tushu *head2;int choice,n=0;there:system("cls");printf(" n"); printf(" 圖書借閱系統(tǒng) n");printf(" n"); printf(" 0返回 n

31、"); printf(" n"); printf(" 1按時間排序 n"); printf(" n"); printf(" 2按價格排序 n"); printf(" n"); printf(" 3按編號排序 n"); printf(" n"); printf(" 請選擇:");fflush(stdin);head2=create();scanf("%d",&choice);if(choice=1)s

32、ystem("cls"); Sort_time(head2);else if(choice=2)system("cls");Sort_price(head2);else if(choice=3)system("cls");Sort_num(head2);else if(choice=0)system("cls");menu();elsesystem("cls");printf("nnnn 輸入錯誤,請重新輸入! nnn ");system("pause")

33、;system("cls");n+;if(n=3)printf(" nnn 你錯誤次數(shù)太多,自動退出! nnn");printf(" 感謝使用圖書借閱系統(tǒng) nnn"); system("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

34、 tushu); head=p1;p1->price=-1;while(i!=1)printf("請輸入編號。若要結束圖書信息錄入,請輸入'#'。n");scanf("%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->p

35、ress,p1->kind,&p1->time,&p1->price);p2=p1;p1=(struct tushu *)malloc(sizeof(struct tushu); p2->next=p1;break;if(p1->price!=-1)p2->next=NULL;elsehead=NULL;system("cls");printf("nnnttt圖書信息輸入結束!nnn");system("pause"); system("cls");printf(

36、"nnnttt是否保存圖書信息?(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) struct tushu *p1; if(fp=fopen("tushu_list.tx

37、t","a")=NULL) printf("File open error!n");system("pause"); exit(0); if(head=NULL)printf("沒有圖書保存!n");system("pause");system("cls");menu();for(p1=head;p1!=NULL;p1=p1->next) /*遍歷*/fprintf(fp,"%-10s %-30s %-20s %-20s %-20s %.0lf %.

38、2lfn", p1->num,p1->name,p1->writer,p1->press,p1->kind,p1->time,p1->price );/*將圖書信息寫入文件*/ fclose(fp);system("cls");printf("n 圖書信息已成功保存到文件tushu_list.txt 中!n"); system("pause"); system("cls"); getchar(); menu();/-void fprint_(struct tush

39、u *head) struct tushu *p1;char a31;printf("請輸入你保存的文件!n");scanf("%s",a);if(fp=fopen(a,"w")=NULL)printf("File open error!n");system("pause"); exit(0); if(head=NULL) system("cls"); printf("沒有圖書!n"); system("pause"); system(

40、"cls"); menu(); for(p1=head;p1!=NULL;p1=p1->next) fprintf(fp,"%-10s %-30s %-20s %-20s %-20s %.0lf %.2lfn", p1->num,p1->name,p1->writer,p1->press,p1->kind,p1->time,p1->price );/*將圖書信息寫入文件*/ fclose(fp); system("cls"); printf("n 圖書信息已成功保存到文件 %s

41、 中!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");system("pause"); exit(0); if(head=NULL)printf("沒有還書!n")

42、;xmenu();for(p1=head;p1!=NULL;p1=p1->next) /*遍歷*/fprintf(fp,"%-10s %-30s %-20s %-20s %-20s %.0lf %.2lfn", 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=

43、fopen("tushu_list.txt","w")=NULL)printf("File open error!n");system("pause"); exit(0);if(head=NULL)xmenu();for(p1=head;p1!=NULL;p1=p1->next)fprintf(fp,"%-10s %-30s %-20s %-20s %-20s %.0lf %.2lfn", p1->num,p1->name,p1->writer,p1->press,p1->kind,p1->time,p1->price );/*將圖書信息寫入文件*/fclose(fp);system("cls")

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論