




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、#include #include #include struct bookint num;char bname50; char wname20; char press50;char sort50; int time;float price; struct book *next;struct book *creatbook();struct book *addbook(struct book *head); int yanzheng(struct book *head,int m); void deletebook(struct book *head);void fprint(struct b
2、ook *head); struct book *load();void print_book(struct book *head); void chaxun(struct book *head);void num_chaxun(struct book *head); void wname_chaxun(struct book *head); void sort_chaxun(struct book *head); void time_chaxun(struct book *head); void bname_chaxun(struct book *head); void xiugai(str
3、uct book *head);void paixu(struct book *head); void num_paixu(struct book *head); void time_paixu(struct book *head); void price_paixu(struct book *head); void bname_paixu(struct book *head); void wname_paixu(struct book *head); int main()int choice,n,x,y=1,c,c1=1234560; char a,d,b20,b120=124567890;
4、 struct book *head=NULL;while(y)/創(chuàng)建鏈表/添加圖書/驗(yàn)證新添加的圖書編碼是否已存在/刪除圖書/將鏈表寫入文件/從文件中讀取信息并建成鏈表/將鏈表信息輸出/查詢圖書信息/按圖書編號(hào)查詢圖書/按作者名查詢圖書/按類別查詢圖書/按出版時(shí)間查詢圖書/按圖書名查詢圖書/修改圖書信息/對(duì)圖書進(jìn)行排序/按圖書編號(hào)排序/按圖書出版時(shí)間排序/按圖書價(jià)格排序/按圖書名排序/按作者名排序system(cls);printf(nnnnnnn); printf( printf(*歡迎光臨 *nn);圖書信息管理系統(tǒng)*nnn);printf(nn);printf(=1- 用戶登錄 =n)
5、;printf(=0- 退出系統(tǒng) =n);printf( 請(qǐng)輸入您的選擇 :);scanf(%d,&n);printf(n); getchar(); switch(n) case 0:y=0; break;case 1:printf( 請(qǐng)輸入您的用戶名 :); gets(b);printf(n);printf( 請(qǐng)輸入您的密碼 :); scanf(%d,&c);printf(n);if(strcmp(b,b1)!=0|c!=c1)printf( scanf(%c,&d); getchar();system(cls);elseprintf( scanf(%c,&d); getchar();x=1
6、;驗(yàn)證失敗 ,請(qǐng)重新輸入 !n);驗(yàn)證通過!請(qǐng)按Enter鍵進(jìn)入!n);while(x)system(cls);printf( printf( printf( printf(n);* 圖書信息管理系統(tǒng) *n);nn);*nn);printf(*nn);printf(| 1-添加圖書2-刪除圖書|nn);printf(| 3- 圖書列表4-圖書排序|nn);printf(| 5- 查詢圖書6-修改圖書|nn);printf(|7-錄入數(shù)據(jù)0-退出系統(tǒng)|nn);printf(*nn);printf(*nn);:);printf( 請(qǐng)輸入所選擇的序號(hào) scanf(%d,&choice); getch
7、ar();system(cls);switch(choice)case 0:x=0;break;case 1:head=load(); if(head=NULL) printf( 文件為空 ,請(qǐng)先錄入數(shù)據(jù) !n); getchar(); break;else head=addbook(head); printf( 添加成功 !n);printf( 是否將新信息保存到文件 ?(y/n)n); scanf(%c,&a);getchar(); switch(a) case n:break;case y: fprint(head); printf( 保存成功 !n); getchar(); break
8、;break;case 2: head=load(); if(head=NULL)printf( 文件為空 ,請(qǐng)先錄入數(shù)據(jù) !n); getchar();break;else deletebook(head); getchar(); break;break;case 3:head=load();if(head=NULL)printf( 文件為空 ,請(qǐng)先錄入數(shù)據(jù) !n); getchar();break;else print_book(head); getchar(); break;case 4:head=load();if(head=NULL)printf( 文件為空 ,請(qǐng)先錄入數(shù)據(jù) !n);
9、 getchar();break;else paixu(head); getchar();break;case 5: head=load(); if(head=NULL)printf( 文件為空 ,請(qǐng)先錄入數(shù)據(jù) !n); getchar();break; elsechaxun(head);getchar();break;case 6:head=load();if(head=NULL)printf( 文件為空 ,請(qǐng)先錄入數(shù)據(jù) !n); getchar();break;else xiugai(head); getchar(); break;break;case 7:printf( 注意:輸入圖書編
10、碼為 0時(shí)結(jié)束 !n); head=creatbook();printf( 是否將輸入的信息保存到文件以覆蓋文件中已存在的信息?(y/n)n);getchar();scanf(%c,&a);getchar();switch(a)case n: break;case y: fprint(head); printf( 保存成功 !n); getchar(); break;break;default:printf( 您的輸入有誤 ,請(qǐng)重新輸入 !n); getchar();break; break; default:printf(您的輸入有誤 ! 請(qǐng)重新輸入 !n);getchar();break;
11、/錄入數(shù)據(jù)并形成鏈表struct book *creatbook()struct book *head,*tail,*p;int num,time,n;char bname50,wname20,press50,sort50; float price;int size=sizeof(struct book); head=tail=NULL;printf( 請(qǐng)輸入圖書編號(hào) :); scanf(%d,&num);printf( 請(qǐng)輸入圖書名 :); scanf(%s,bname);getchar();printf( 請(qǐng)輸入作者名 :); scanf(%s,wname);getchar();print
12、f( 請(qǐng)輸入出版社 :);scanf(%s,press);getchar();printf( 請(qǐng)輸入類別 :);scanf(%s,sort);getchar();printf( 請(qǐng)輸入出版時(shí)間 :);scanf(%d,&time);getchar();printf( 請(qǐng)輸入價(jià)格 :);scanf(%f,&price);getchar();while(1) p=(struct book *)malloc(size); p-num=num; strcpy(p-bname,bname); strcpy(p-wname,wname); strcpy(p-press,press); strcpy(p-s
13、ort,sort); p-time=time; p-price=price;p-next=NULL;if(head=NULL) head=p;elsetail-next=p;tail=p;doprintf( 請(qǐng)輸入圖書編號(hào) :);scanf(%d,&num);n=yanzheng(head,num);if(n=0) break;elseprintf( 您輸入的編號(hào)已存在 ,請(qǐng)重新輸入 !n); while(1);if(num=0)break;elseprintf( 請(qǐng)輸入圖書名 :); scanf(%s,bname); getchar();printf( 請(qǐng)輸入作者名 :); scanf(%s
14、,wname); getchar();printf( 請(qǐng)輸入出版社 :);scanf(%s,press);getchar();printf( 請(qǐng)輸入類別 :);scanf(%s,sort);getchar();printf( 請(qǐng)輸入出版時(shí)間 :); scanf(%d,&time); getchar();printf( 請(qǐng)輸入價(jià)格 :);scanf(%f,&price); getchar();return head;/插入結(jié)點(diǎn),并且插入后仍按一定順序 struct book *addbook(struct book *head)struct book *ptr,*p1,*p2,*p;char b
15、name50,wname20,press50,sort50;int size=sizeof(struct book);int num,time,n=1;float price;do printf( 請(qǐng)輸入圖書編號(hào) :); scanf(%d,&num); n=yanzheng(head,num); if(n=0) break;elseprintf( 您輸入的編號(hào)已存在 ,請(qǐng)重新輸入 !n); while(1);printf( 請(qǐng)輸入圖書名 :); scanf(%s,bname);getchar();printf( 請(qǐng)輸入作者名 :); scanf(%s,wname);getchar();prin
16、tf( 請(qǐng)輸入出版社 :);scanf(%s,press);getchar();printf( 請(qǐng)輸入類別 :);scanf(%s,sort);getchar();printf( 請(qǐng)輸入出版時(shí)間 :);scanf(%d,&time);getchar();printf( 請(qǐng)輸入價(jià)格 :);scanf(%f,&price);getchar();p=(struct book *)malloc(size); p-num=num;strcpy(p-bname,bname); strcpy(p-wname,wname);strcpy(p-press,press); strcpy(p-sort,sort);
17、p-time=time;p-price=price;p2=head;ptr=p;while(ptr-nump2-num)&(p2-next!=NULL)p1=p2;p2=p2-next;if(ptr-numnum)if(head=p2)head=ptr;elsep1-next=ptr;p-next=p2;elsep2-next=ptr;p-next=NULL;return head;/驗(yàn)證添加的圖書編號(hào)是否已存在int yanzheng(struct book *head,int m)struct book *p;p=head;while(p!=NULL)if(p-num=m)break;p=
18、p-next;if(p=NULL)return 0;elsereturn 1;/將新鏈表寫入文件中void fprint(struct book *head)FILE *fp;char ch=1;struct book *p1;if(fp=fopen(f1.txt,w)=NULL)printf(File open error!n);exit(0);fputc(ch,fp);for(p1=head;p1;p1=p1-next)fprintf(fp,%d %s %s %s %s %d %fn,p1-num,p1-bname,p1-wname,p1-press,p1-sort ,p1-time,p1
19、-price);fclose(fp); /從文件中讀取圖書信息 struct book *load()FILE *fp;char ch;struct book *head,*tail,*p1;head=tail=NULL;if(fp=fopen(f1.txt,r)=NULL)printf(File open error!n);exit(0);ch=fgetc(fp);if(ch=1)while(!feof(fp) p1=(struct book *)malloc(sizeof(struct book);fscanf(fp,%d%s%s%s%s%d%fn,&p1-num,p1-bname,p1-
20、wname,p1-press,p1-sort,&p1- time,&p1-price);if(head=NULL) head=p1;else tail-next=p1;tail=p1;tail-next=NULL;fclose(fp);return head;elsereturn NULL; /將整個(gè)鏈表的信息輸出 void print_book(struct book *head)struct book *ptr; if(head=NULL)printf(n 沒有信息 !n);return;printf( 圖書信息列表如下 n); printf(n);printf( 編號(hào) 圖書名 作者名 出
21、版社 n);for(ptr=head;ptr;ptr=ptr-next)類別出版時(shí)間價(jià)格printf( %d %s %s%s%s%d%.2fn,ptr-num,ptr-bname,ptr-wname,ptr-press,ptr-sort,ptr-time,ptr-price); printf(=n);/刪除圖書信息void deletebook(struct book *head)int a;char b,ch=1;struct book *p1,*p2;FILE *fp;printf( 請(qǐng)輸入要?jiǎng)h除的圖書編號(hào) :);scanf(%d,&a);p1=head;if(p1-num=a&p1-ne
22、xt=NULL)/對(duì)于文件中只有一組數(shù)據(jù)printf( 是否清空文件 !(y/n)n);getchar(); scanf(%c,&b);getchar();switch(b)case n:break;case y:if(fp=fopen(f1.txt,w)=NULL) printf(File open error!n); exit(0);fclose(fp);printf( 文件已清空 !n); elsewhile(p1-num!=a&p1-next!=NULL)p2=p1; p1=p1-next;if(p1-next=NULL) if(p1-num=a)p2-next=NULL;printf
23、( 是否確定從文件中徹底刪除該圖書 ?(y/n)n); getchar();scanf(%c,&b);switch(b)case n: break;case y: fprint(head); printf( 刪除成功 !n); getchar(); break;elseprintf( 沒有找到要?jiǎng)h除的數(shù)據(jù) !n); getchar();else if(p1=head) head=p1-next; printf( 是否確定從文件中徹底刪除該圖書 ?(y/n)n); getchar();scanf(%c,&b);switch(b)case n: break;case y:fprint(head);
24、printf( 刪除成功 !n); getchar();break;elsep2-next=p1-next;printf( 是否確定從文件中徹底刪除該圖書 ?(y/n)n); getchar();scanf(%c,&b);switch(b)case n:break;case y:fprint(head);printf( 刪除成功 !n);getchar();break; /圖書查詢 void chaxun(struct book *head) int a;printf(=n);printf(* 1- 按圖書編號(hào)查詢2-按圖書名查詢*n);printf(* 3- 按圖書類別查詢4-按作者名查詢*
25、n);printf(* 5- 按出版時(shí)間查詢0-退出查詢*n);printf(n);printf( 請(qǐng)輸入所選擇的編號(hào) :);scanf(%d,&a);getchar();switch(a)case 0:break;case 1:num_chaxun(head); break;case 2:bname_chaxun(head);break;case 3:sort_chaxun(head); break;case 4:wname_chaxun(head); break;case 5: time_chaxun(head); break;default:printf( 您的輸入有誤 !n); bre
26、ak;/按編號(hào)查詢圖書信息void num_chaxun(struct book *head)int a;struct book *p;printf( 請(qǐng)選擇您要查詢的圖書編號(hào) :); scanf(%d,&a);getchar();p=head;while(p!=NULL)if(p-num=a)break;p=p-next;if(p=NULL)printf( 沒有找到該編號(hào)的圖書 elseprintf(printf(!n);你所查詢的圖書信息如下 n);printf( * 編號(hào)圖書名作者名出版社類別價(jià)格*n);printf(*%d %s%s%s%s%d*n,p-num,p-bname,p-wn
27、ame,p-press,p-sort,p-time,p-price);=n);printf(出版時(shí)間%.2f=n);/按圖書名查詢圖書信息void bname_chaxun(struct book *head)char a50;int flag=0;struct book *p;printf( 請(qǐng)選擇您要查詢的圖書名 :);gets(a);p=head;while(p!=NULL)if(strcmp(p-bname,a)=0)flag=1;break;p=p-next;if(flag=0)printf( 沒有找到該圖書名的圖書 !n);你所查詢的圖書信息如下 n); else printf(
28、printf(=n);printf( * 編號(hào) 圖書名 作者名 出版社 類別 出版時(shí)間 價(jià)格 *n);while(p!=NULL)if(strcmp(p-bname,a)=0)printf(* %d %s %s %s %s %d %.2f *n,p-num,p-bname,p-wname,p-press,p-sort,p-time,p-price);p=p-next;printf( =n);/按作者名查詢圖書信息void wname_chaxun(struct book *head)char a50;int flag=0;struct book *p;printf( 請(qǐng)選擇您要查詢的圖書作者名
29、 :);gets(a);p=head;while(p!=NULL) if(strcmp(p-wname,a)=0) flag=1; break;p=p-next;if(flag=0)printf( 沒有找到該圖書名的圖書 !n);你所查詢的圖書信息如下 n); else printf( printf(=n);printf( * 編號(hào) 圖書名 作者名 出版社 類別 出版時(shí)間 價(jià)格 *n);while(p!=NULL)if(strcmp(p-wname,a)=0)printf(* %d %s %s %s %s %d %.2f *n,p-num,p-bname,p-wname,p-press,p-s
30、ort,p-time,p-price);flag=1;p=p-next;printf( =n);/按圖書類別查詢圖書信息 void sort_chaxun(struct book *head)char a50;int flag=0;struct book *p;printf( 請(qǐng)選擇您要查詢的圖書類別 :);gets(a);p=head;while(p!=NULL)if(strcmp(p-sort,a)=0)flag=1;break;p=p-next;if(flag=0)printf( 沒有找到該圖書名的圖書 !n); elseprintf(printf(你所查詢的圖書信息如下 n);=n);
31、printf( * 編號(hào)圖書名作者名 出版社 類別 出版時(shí)間價(jià)格*n); while(p!=NULL) if(strcmp(p-sort,a)=0) printf(* %d %s %s %s %s %d %.2f *n,p-num,p-bname,p-wname,p-press,p-sort,p-time,p-price);flag=1;p=p-next;printf( =n);/按圖書出版時(shí)間查詢圖書信息 void time_chaxun(struct book *head) int a,flag=0;struct book *p;printf( 請(qǐng)選擇您要查詢的圖書出版時(shí)間 :); sca
32、nf(%d,&a);getchar();p=head;while(p!=NULL)if(p-time=a)flag=1;break;p=p-next;if(flag=0)printf( 沒有找到該圖書名的圖書 !n); elseprintf(printf(你所查詢的圖書信息如下 n);=n);printf( * 編號(hào)圖書名作者名 出版社 類別 出版時(shí)間價(jià)格*n); while(p!=NULL) if(p-time=a) printf(* %d %s %s %s %s %d %.2f *n,p-num,p-bname,p-wname,p-press,p-sort,p-time,p-price);
33、flag=1;p=p-next;printf( =n);/修改圖書信息void xiugai(struct book *head)int a,b; char c;struct book *p;printf( 請(qǐng)輸入要修改的圖書編號(hào) :);scanf(%d,&a);p=head;while(p!=NULL)if(p-num=a)break;p=p-next;if(p=NULL)printf( 沒有找到該編號(hào)的圖書 !n);getchar();elseprintf(printf(* 1-編號(hào)=n);2-圖書名3-作者名 *n);printf(* 4-出版社5-類別6-出版時(shí)間 *n);printf
34、(* 7-價(jià)格8-修改全部0-放棄修改 *n);printf(=n);printf( 請(qǐng)選擇你要修改的信息編號(hào) :); scanf(%d,&b);getchar();switch(b)case 1:printf( 請(qǐng)輸入新編號(hào) :); scanf(%d,&p-num); printf( 修改成功 !n); getchar();break;case 2:printf( 請(qǐng)輸入新圖書名 :); gets(p-bname);printf( 修改成功 !n);break;case 3:printf( 請(qǐng)輸入新作者名 :); gets(p-wname);printf( 修改成功 !n);break;ca
35、se 4:printf( 請(qǐng)輸入新出版社 :);gets(p-press);printf( 修改成功 !n); break;case 5:printf( 請(qǐng)輸入新類別 :); gets(p-sort);printf( 修改成功 !n);break;case 6:printf( 請(qǐng)輸入新出版時(shí)間 :); scanf(%d,&p-time);printf( 修改成功 !n); getchar();break;case 7:printf( 請(qǐng)輸入新價(jià)格 :); scanf(%f,&p-price); printf( 修改成功 !n); getchar();break;case 8:printf( 請(qǐng)
36、輸入新圖書編號(hào) :); scanf(%d,&p-num);printf( 請(qǐng)輸入新圖書名 :); scanf(%s,p-bname); getchar();printf( 請(qǐng)輸入新作者名 :); scanf(%s,p-wname); getchar();printf( 請(qǐng)輸入新出版社 :); scanf(%s,p-press); getchar();printf( 請(qǐng)輸入新類別 :); scanf(%s,p-sort); getchar();printf( 請(qǐng)輸入新出版時(shí)間 :); scanf(%d,&p-time); getchar();printf( 請(qǐng)輸入新價(jià)格 :); scanf(%f
37、,&p-price); getchar();printf( 修改成功 !n); getchar();break;case 0:break;default :printf( 您的輸入有誤 !n);break;printf( 是否將修改后的信息保存到文件中 ?(y/n)n); scanf(%c,&c);getchar();switch(c)case n: break;case y: fprint(head);printf( 保存成功 !n); getchar();break;/圖書排序 void paixu(struct book *head) int a;printf(n);printf( *n
38、);printf( *n);printf(* 1- 按圖書編號(hào)排序* 3- 按圖書價(jià)格排序* 5- 按作者名排序2-按出版時(shí)間排序4-按圖書名排序0-取消排序操作*n);printf(=n); printf( 請(qǐng)輸入您選擇的編號(hào) :);scanf(%d,&a);getchar();switch(a)case 0:break;case 1:num_paixu(head);break;case 2:time_paixu(head);break;case 3:price_paixu(head);break;case 4: bname_paixu(head); break;case 5: wname_
39、paixu(head); break;default:printf( 您的輸入有誤 !n); break;/按圖書編號(hào)排序void num_paixu(struct book *head)struct book *a1000,*p,*p1,*temp;int i,k,index,n=0;char b;p1=head;for(p=head;p;p=p-next)n+;for(i=0;inext;for(k=0;kn-1;k+)index=k;for(i=k+1;inumnum) index=i;temp=aindex;aindex=ak;ak=temp;printf( 排序成功 !n);prin
40、tf( 是否顯示排序結(jié)果 ?(y/n)n); scanf(%s,&b);getchar(); switch(b) case n:break; case y:printf(n);printf( * 編號(hào) 圖書名作者名出版社類別出版時(shí)間價(jià)格 *n);for(i=0;inum,ai-bname,ai-wname,ai-press,ai-sort,ai-time,ai-price);printf(=n); break;default:printf( 您的輸入有誤 !n);break;/按出版時(shí)間排序void time_paixu(struct book *head)struct book *a1000
41、,*p,*p1,*temp;int i,k,index,n=0;char b;p1=head;for(p=head;p;p=p-next)n+;for(i=0;inext;for(k=0;kn-1;k+)index=k;for(i=k+1;itimetime)index=i;temp=aindex;aindex=ak;ak=temp;printf( 排序成功 !n);printf( 是否顯示排序結(jié)果 ?(y/n)n); scanf(%s,&b);getchar(); switch(b) case n:break;case y:printf(n);printf(* 編號(hào) 圖書名作者名出版社類別出版時(shí)間價(jià)格 *n);for(i=0;inum,ai-bname,ai-wname,ai-press,ai-sort,ai-time,ai-price);printf(=n); break;default:printf( 您的輸入有誤 !n);break;/按圖書價(jià)格排序void price_paixu(struct book *head)struct book *a1000,*p,*p1,*temp;int i,k,index,n=0;c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廠房噴淋安裝合同范本
- 中鐵工程合同范本
- 金蟬養(yǎng)殖回收合同范本
- 裝修泥瓦工合同范本
- 土方船舶運(yùn)輸合同范本
- 浙江國(guó)企招聘2024金華義烏市屬國(guó)有企業(yè)招聘76人筆試參考題庫(kù)附帶答案詳解
- 2025至2030年中國(guó)戶外箱體數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)微波涂膜烘干固化設(shè)備數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 安全急救課件
- 【女性勞動(dòng)力就業(yè)歧視問題探究11000字(論文)】
- 2024年江蘇農(nóng)牧科技職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)含答案
- 大班益智區(qū)目標(biāo)及指導(dǎo)策略
- 小學(xué)二年級(jí)語文下冊(cè)《古詩(shī)二首》課件
- MOOC 信號(hào)與系統(tǒng)-北京交通大學(xué) 中國(guó)大學(xué)慕課答案
- 《研學(xué)旅行課程設(shè)計(jì)》課件-研學(xué)課程主題設(shè)計(jì)
- 《旅游概論》課件-旅游業(yè)的發(fā)展趨勢(shì)
- 2023年鐵路工務(wù)安全規(guī)則正文
- 大單元視角下小學(xué)語文單篇課文的教學(xué)
- 高低壓成套產(chǎn)品標(biāo)準(zhǔn)及檢測(cè)要求
- 當(dāng)前銀行系統(tǒng)反腐倡廉和案件情況及案件特點(diǎn)原因分析課件
評(píng)論
0/150
提交評(píng)論