c語言最全的圖書管理系統(tǒng)程序_第1頁
c語言最全的圖書管理系統(tǒng)程序_第2頁
c語言最全的圖書管理系統(tǒng)程序_第3頁
c語言最全的圖書管理系統(tǒng)程序_第4頁
c語言最全的圖書管理系統(tǒng)程序_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、題目名稱: 圖書管理系統(tǒng) 算法分析:1用結構體標出信息系統(tǒng)的成員:圖書書號,書名,作者姓名,出版社,價格2 利用c語言的文件知識將系統(tǒng)的信息存放在c盤下的“project choose.txt”的文件夾下3 定義各個子函數(1)定義輸入信息函數,將圖書信息按一定格式用scanf函數輸入(統(tǒng)計m本的信息);(2)定義輸出函數,每3個表一頁直到最后一個;(3)定義信息查詢函數。a,定義按書號查詢函數,如果輸入的數字等于圖書編號則輸出要查詢的信息;b,定義按姓名查詢函數,如果輸入的姓名字符串等于其中一個作者姓名字符串則輸出信息;c,定義按出版社名稱查找函數,如果輸入的字符串等于其中出版社名稱,則輸出

2、該信息; e,定義查找總函數,輸入一個數選擇查找方式,1-4分別對應調用abc四個函數。(4)定義刪除信息函數。輸入的數字作為要刪除的圖書編號,輸出要刪除的圖書信息后選擇是否刪除,刪除后將第g+1個的信息賦給第g個,輸出刪除后的信息表。(5)定義信息修改函數。輸入的數字等于要修改的圖書編號,輸出要修改的圖書信息后選擇是否修改,用switch,case語句選擇要修改的項目,輸入n,y決定是否繼續(xù)直到不繼續(xù)修改,輸出圖書信息。(6)定義信息統(tǒng)計函數。輸入一個字符串作為出版社,比較m本書的出版社字符串是否等于輸入的字符串,統(tǒng)計相等的個數n輸出。(7)定義圖書編號排序函數。用冒泡排序法將m本的書的圖書

3、編號按從大到小的順序排列后輸出。4 定義主函數。調用讀取文件函數,輸入數字1-5分別對應調用修改圖書信息函數,刪除圖書信息函數,查找圖書信息函數,統(tǒng)計圖書信息函數,圖書排行信息函數,0表示退出系統(tǒng)。最后調用保存文件函數。結束程序。流程設計:圖書管理系統(tǒng)利用結構體說明成員定義文件保存,讀取函數定義各子函數統(tǒng)計圖書信息函數圖書排行信息函數查找圖書信息函數刪除圖書信息函數定義修改圖書信息函數定義主函數用switch case 選擇要調用的子函數,后退出系統(tǒng),結束程序。代碼設計:#include#include#include#define m 2#define page 3 /*圖書結構體類型*/

4、typedef struct int num; /*圖書號*/ char name20; /*書名*/ char zuozhe20; /*作者姓名*/ char chubanshe20; /*出版社*/ int price; /*價格*/ books;int read_file(books books) file *fp; int i=0; if(fp=fopen(project choose.txt,rt)=null) printf(nn*庫存文件不存在!請創(chuàng)建); return 0; while(feof(fp)!=1) fread(&booksi,sizeof(books),1,fp);

5、 if(booksi.num=0) break; else i+; fclose(fp); return i; void save_file(books books,int sum) file *fp; int i; if(fp=fopen(project choose.txt,wb)=null) printf(讀文件錯誤!n); return; for(i=0;isum;i+) if(fwrite(&booksi,sizeof(books),1,fp)!=1) printf(寫文件錯誤!n); fclose(fp); /*輸入模塊*/ int input(books books) int i

6、=0; printf(nn 錄入圖書信息 (最多%d種)n,m); printf(-n); do printf(n 第%d本圖書,i+1); printf(n 圖書編號:); scanf(%d,&booksi.num); if(booksi.num=0) break; printf(n 圖書名稱:); scanf(%s,); printf(n 作者:); scanf(%s,booksi.zuozhe); printf(n 出版社:); scanf(%s,&booksi.chubanshe); printf(n 圖書價格:); scanf(%d,&booksi.price)

7、; i+; while(im); printf(n -%d種圖書信息輸入完畢!-n,i); printf(n 按任意鍵返回主菜單!); getchar(); return i; /*輸出模塊*/ void output(books books) int i=0,j=0,page=1; printf(nn -圖書信息表- 第%d頁nn,page); printf(圖書編號-圖書名稱-作者- 出版社-圖書價格n); printf(-n); do if(booksi.num!=0) j+; if(j%page!=0) printf(%4d %10s %10s %10s %8d n,booksi.nu

8、m,, booksi.zuozhe, booksi.chubanshe,booksi.price); printf(-n); else printf(按任意鍵繼續(xù)!); getchar(); printf(nn -圖書信息表- 第%d頁nn,+page); printf(圖書編號-圖書名稱-作者- 出版社-圖書價格n); printf(-n); printf(%4d %10s %10s %10s %8d n,booksi.num,, booksi.zuozhe, booksi.chubanshe,booksi.price); printf(-n);

9、i+; while(booksi.num!=0); printf(按任意鍵返回主菜單!); getchar( ); /*給定編號,作者,出版社查找信息模塊*/ void find_by_num(books books,int sum) int i,find_num; printf(n 請輸入要查找的圖書編號:); scanf(%d,&find_num); for(i=0;isum;i+) if(booksi.num=find_num) printf(這是您所查找到的圖書:n); printf(圖書編號-圖書名稱-作者- 出版社-圖書價格n); printf(-n); printf(%4d %1

10、0s %10s %10s %8d n,booksi.num,, booksi.zuozhe, booksi.chubanshe,booksi.price); printf(-n); break; else printf(n 未找到要查找的圖書信息,按任意鍵返回!); getchar(); void find_by_zuozhe(books books,int sum) int i; char find_zuozhe20; printf(n 請輸入要查找的作者姓名:); scanf(%s,find_zuozhe); for(i=0;isum-1;i+) if(strcmp(

11、booksi.zuozhe,find_zuozhe)=0) printf(這是您所查找到屬于該作者的圖書:); printf(圖書編號-圖書名稱-作者- 出版社-圖書價格n); printf(-n); printf(%8d %10s %10s %10s %8d n,booksi.num,, booksi.zuozhe, booksi.chubanshe,booksi.price); printf(-n); else printf(n 未找到要查找的圖書信息,按任意鍵返回!); void find_by_chubanshe(books books,int sum) int

12、i; char find_chubanshe20; printf(n 請輸入要查找的出版社名稱:); scanf(%s,find_chubanshe); for(i=0;isum;i+) if(strcmp(booksi.chubanshe,find_chubanshe)=0) printf(這是您所查找到屬于該出版社的圖書:); printf(圖書編號-圖書名稱-作者- 出版社-圖書價格n); printf(-n); printf(%8d %10s %10s %10s %8d n,booksi.num,, booksi.zuozhe, booksi.chubanshe,

13、booksi.price); printf(-n); else printf(n 未找到要查找的圖書信息,按任意鍵返回!); getchar(); void find(books books,int sum) int choice; printf(n 您要按照哪種方式查找? n); printf(n 1.按圖書編號查找 n); printf(n 2.按圖書作者查找 n); printf(n 3.按出版社查找 n); printf(n 0. 退出n); printf(n 請選擇(0-3): n); scanf(%d,&choice); switch(choice) case 1: find_by

14、_num(books,sum); break; case 2: find_by_zuozhe(books,sum); break; case 3: find_by_chubanshe(books,sum); break; case 0: break; /*刪除信息模塊*/ void del(books books) int i,sum; int del_num; printf(n 請輸入要刪除的圖書編號:); scanf(%d,&del_num); for(i=0;isum;i+) if(booksi.num=del_num) printf(這是您所要刪除圖書信息:n); printf(圖書編

15、號-圖書名稱-作者- 出版社-圖書價格n); printf(-n); printf(%8d %10s %10s %10s %8d n,booksi.num,, booksi.zuozhe, booksi.chubanshe,booksi.price); printf(-n); printf(您確認要刪除嗎?); printf(按任意鍵繼續(xù)!); getchar(); printf(已成功刪除圖書信息!); /*信息修改模塊*/ void modify(books books,int sum) int i=0,choice,modify_num,flag; do print

16、f(請輸入要修改的圖書編號:); scanf(%d,&modify_num); for(i=0;isum;i+) if(booksi.num=modify_num) printf(nn -圖書信息- nn); printf(圖書編號-圖書名稱-作者- 出版社-圖書價格n); printf(-n); printf(%8d %10s %10s %10s %8d n,booksi.num,, booksi.zuozhe, booksi.chubanshe,booksi.price); printf(-n); printf(n 您要修改哪一項?n); printf(n 1.圖書名

17、稱n); printf(n 2.作者n); printf(n 3.出版社n); printf(n 4.圖書價格n); printf(n 請選擇(1-4):n); scanf(%d,&choice); switch(choice) case 1: printf(n 請輸入修改后的圖書名稱:); scanf(%s,); break; case 2: printf(n 請輸入修改后的作者姓名:); scanf(%s,booksi.zuozhe); break; case 3: printf(n 請輸入修改后的出版社名稱:); scanf(%s,booksi.chubanshe)

18、; break; case 4: printf(n 請輸入修改后的圖書價格:); scanf(%d,&booksi.price); break; printf(nn -圖書信息- nn); printf(圖書編號-圖書名稱-作者- 出版社-圖書價格n); printf(-n); printf(%8d %10s %10s %10s %8d n,booksi.num,, booksi.zuozhe, booksi.chubanshe,booksi.price); printf(-n); break; else printf(n 該書不存在!); getchar(); prin

19、tf(n 修改成功!n); printf(您要繼續(xù)修改嗎?(y/n); if (choice=y|choice=y) flag=1; printf(n 繼續(xù)!n); else flag=0; while( flag=1); printf(n 按任意鍵返回主菜單!); getchar(); /*圖書信息統(tǒng)計模塊*/void count(books books,int sum) /*統(tǒng)計某個出版社的圖書數*/ int i; char count_chubanshe20; int n=0; printf(請輸入一個出版社名稱:n); scanf(%s,count_chubanshe); for(i=

20、0;isum;i+) if( strcmp(booksi.chubanshe,count_chubanshe)=0) n+; break; printf(統(tǒng)計出屬于該出版社一共有%d本書n,n); /*排序模塊*/ void sort(books books,int sum) /*按圖書編號排序模塊*/ books t; int i,j; printf(n -圖書信息- n); printf(n 排名 圖書編號 圖書名稱 作者 出版社 圖書價格n); for(i=1;isum-1;i+) for(j=i+1;jbooksi.num) t=booksj; booksj=booksi; booksi=t; fo

溫馨提示

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

評論

0/150

提交評論