圖書管理系統(tǒng)數(shù)據(jù)結構_第1頁
圖書管理系統(tǒng)數(shù)據(jù)結構_第2頁
圖書管理系統(tǒng)數(shù)據(jù)結構_第3頁
圖書管理系統(tǒng)數(shù)據(jù)結構_第4頁
圖書管理系統(tǒng)數(shù)據(jù)結構_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精品文檔12歡迎下載struct book /*圖書信息 */ int num; /* 書號 */char name10; /* 書名 */char where10; /*所在書庫 */char author15; /* 作者 */ char pub20; /* 出版社 */ in t co unt; /*數(shù)量 */struct book *n ext;/*輸出模塊*/ void prin t(struct book *p0) struct book *p;p=p0-n ext;prin tf(nnttAAAAAAAAAAAAAA圖書信息表AAAAAAAAAAAAAA);printf(nn圖書

2、編號-圖書名稱-所在書庫-作者-出版社-數(shù)量n);while(p!=NULL) prin tf(PT);p=p-n ext;getch();/*輸入模塊*/ struct book *creat()struct book *head,*p1,*p2;int i=0;head=p2=(struct book *)malloc(N);head- next=NULL;prin tf(nntt錄入圖書信息);printf(nt);while(1) p1= (struct book *)malloc(N);printf(n請輸入圖書編號(書號為0結束):);sca nf(%d,&p1- nu m);if

3、(p1- num!=O)printf(nn書名 所在書庫 作者 出版社 圖書數(shù)量n);sea nf(%s%s%s%s%d,p1- n ame,p1-where,p1-author,p1-pub,&p1-co un t); p2-n ext=p1;p2=p1;i+;elsebreak;p2- next=NULL;free(p1);printf(ntt);printf(ntt %d種書錄入完畢,i);getch();return head;/*查找模塊*/void fin d(struct book *p0)char n ame10;int flag=1;struct book *p;p=p0-n

4、 ext;printf(請輸入要查找的書名:n);sca nf(%s, name);for(p=p0;p;p=p-n ext)if(strcmp(p-n ame ,n ame)=0)printf(nn圖書編號-圖書名稱-所在書庫-作者-出版社-數(shù)量n);prin tf(PT);flag=0;break;if(flag) printf(n暫無此圖書信息 n);getch();/*刪除模塊*/void del(struct book *p0)char n ame10;int flag=1;struct book *p;p=p0;printf(請輸入要刪除的書名:n);sca nf(%s, name

5、);while(p!=NULL)if(strcmp(p-n ame ,n ame)=0)p0-next=p-next; /*后續(xù)節(jié)點連接到前驅節(jié)點之后*/free(p);printf(t該書資料已刪除.);flag=0;break;p0=p;p=p-n ext;if(flag) pri ntf(nt無此圖書信息。);getch();/*增加模塊*/void in sert(struct book *p0)struct book *p;p=(struct book *)malloc(N);while(1)printf(n請輸入要增加的圖書編號(書號為0退出):);sca nf(%d,&p- nu

6、 m);if(p-num!=0)if(p0-next!=NULL&p0-next-num=p-num) /*找到重號 */p=p-n ext;free(p);printf(t該書已存在);elseprintf(nn書名 所在書庫 作者 出版社 圖書數(shù)量n);sea nf(%s%s%s%s%d,p-n ame,p-where,p-author,p-pub,&p-co unt); p-n ext=p0-n ext;pO-n ext=p;printf(t已成功插入.);elsebreak;getch();/*修改模塊*/void modify(struct book *p0)char n ame10

7、;int flag=1;int choice;struct book *p;p=p0-n ext;printf(”請輸入要修改的書名:n);sca nf(%s, name);while(p!=NULL&flag=1)if(strcmp(p-n ame ,n ame)=0)prin tf(nt請選擇要修改的項:);printf(nt 1.修改圖書編號 n);printf(nt 2.修改圖書所在書庫n);printf(nt 3.修改圖書作者 n);printf(nt 4.修改圖書出版社n);printf(nt 5.修改圖書庫存量n);sea nf(%d,&choice);switch(choice

8、)case 1: printf(n請輸入新的圖書編號:);sca nf(%d,p-nu m); break;case 2: printf(n請輸入新的圖書書庫:);sca nf(%s,p-where); break;case 3: printf(n請輸入新的圖書作者:);sca nf(%s,p-author); break;case 4: printf(n請輸入新的圖書出版社:);sca nf(%s,p-pub); break;case 5: printf(n請輸入新的圖書庫存量:);sca nf(%d,p-co un t); break;prin tf(nt該項已成功修改。nt新的圖書信息:

9、);printf(nn圖書編號-圖書名稱-所在書庫-作者-出版社-數(shù)量n);prin tf(PT);flag=O;pO=p;p=pO-n ext;if(flag) pri ntf(nt暫無此圖書信息。);getch();/*讀文件*/struct book *read_file()int i=0;struct book *p,*p1,*head=NULL;FILE *fp;if(fp=fope n(library.txt,rb)=NULL)prin tf(nnnnn t*庫文件不存在,請創(chuàng)建!*);getch();return NULL;head=(struct book *)malloc(N

10、);p仁head;head- next=NULL;prin tf(n已有圖書信息:);printf(nn圖書編號-圖書名稱-所在書庫-作者-出版社-數(shù)量n);while(!feof(fp)p=(struct book *)malloc(N); /*開辟空間以存放的取得信息*/while(fsca nf(fp,%d%s%s%s%s%d,&p-nu m,p-n ame,p-where,p-author,p- pub,&p-cou nt)!=EOF)prin tf(PT);i+;p1- n ext=p;p1=p;p1- next=NULL;fclose(fp);printf(n共種%d圖書信息,i)

11、;prin tf(nnn文件中的信息以正確讀出。按任意鍵進入主菜單。);getch();return (head);/*保存文件*/void save(struct book *head)FILE *fp;struct book *p;fp=fopen(library.txt,wb); /*以只寫方式打開二進制文件 */if(fp=NULL) /* 打開文件失敗*/printf(n=打開文件失敗!n);getch();return ;elsefor(p=head-n ext;p!=NULL;p=p-n ext)fprin tf(fp,%d %s %s %s %s %dn,p-nu m,p-n

12、ame,p-where,p-author,p-pub,p-co un t);fclose(fp);printf(nt保存文件成功!n);void mai n()struct book *head=NULL;int choice=1;head=read_file();if(head=NULL)prin tf(ntt*);getch();head=creat();dosystem(cls) ;printf(ttWelcomen);printf(nnt歡迎您,圖書管理員.n);prin tf(nnnnn);printf(nt請選擇:);printf(nt 1.查詢圖書信息n);printf(nt 2.修改圖書信息n);printf(nt 3.增加圖書信息n);printf(nt 4.刪除圖書信息n);printf(nt 5.顯示所有圖書信息n);prin tf(nt 0.退出系統(tǒng) n);sea nf(%d,&choice); switch(choice)case 1: fin d(head); break;case 2: modify(head); break;case 3: in sert(head); break;case 4: d

溫馨提示

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

評論

0/150

提交評論