C語言圖書信息管理系統(tǒng)_第1頁
C語言圖書信息管理系統(tǒng)_第2頁
C語言圖書信息管理系統(tǒng)_第3頁
C語言圖書信息管理系統(tǒng)_第4頁
C語言圖書信息管理系統(tǒng)_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、圖書信息管理系統(tǒng)設(shè)計(jì)一、【要求】圖書信息包括:登錄號、書名、作者名、分類號、出版單位、出版時(shí)間、價(jià)格等。設(shè)計(jì)一圖書信息 管理系統(tǒng),使之能提供以下功能:(1) 系統(tǒng)以菜單方式工作(2) 圖書信息錄入功能(3) 圖書信息瀏覽功能(4) 圖書信息查詢功能(5) 圖書信息的刪除與修改功能二、【各功能模塊】1、菜單模塊建立menu()函數(shù)將主函數(shù)功能提取出來,主函數(shù) main調(diào)用menu()函數(shù)方便簡捷。void main()menu();void menu()int a;doprintf(" * 趙毅*n");printf("n");printf("*

2、 中國地質(zhì)大學(xué)*n");printf("n");printf("nnnnntttt 圖書信息管理系統(tǒng)ttttn");printf("tt*n");printf("ttt1 圖書信息錄入n")printf("ttt2 圖書信息瀏覽n")printf("ttt3 圖書信息查詢n")printf("ttt4 圖書信息刪除n")printf("ttt5 圖書信息修改n")printf("ttt6 圖書信息追加n")

3、printf("ttt0退出圖書信息系統(tǒng)n");printf("tt*n");printf("ttplease choose: ");scanf("%d",&a);switch(a)case 1:input();break;case 2:list();break;case 3:search();break;case 4:del();break;case 5:revise();break;case 6:append();break;case 0:exit(0);default:printf("n 序

4、號不對 n");while(a!=0);【定義圖書信息結(jié)構(gòu)體】#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>void menu();#define N 3typedef struct systemlong num;char name20;char writer10;char sort10;char publisher20;long time;float price;BOOK;注:定義的BOOK吉構(gòu)體N為限定的錄入圖書個(gè)數(shù)(可依據(jù)不同要求變化范圍

5、)long num為定義的登錄號(長整形變量)char name20為定義的書名的數(shù)組char writer10為定義的作者的數(shù)組char sort10定義的分類號數(shù)組char publisher20定義的出版單位數(shù)組long time 定義的出版時(shí)間長整形變量float price價(jià)格為浮點(diǎn)型變量。2、【數(shù)據(jù)存儲(chǔ)】整個(gè)程序沒有利用保存save函數(shù),而是利用txt.txt tab.txt兩個(gè)文件錄入存取數(shù)據(jù)信息,并通過文件的讀取、寫入進(jìn)行圖書信息的修改/刪除等功能。(fopen fwrite fread寫入及讀取數(shù)據(jù)進(jìn)行存儲(chǔ))。3【圖書信息錄入】開始把信息存入txt.txt文件關(guān)閉錄入信息的文

6、件結(jié)束圖書錄入流程圖【程序】void input() /* 定義錄入函數(shù)*/int i;BOOK a;FILE *fp;if(fp=fopen("txt.txt","w")=NULL)printf("error!n");exit(0);for(i=1;i<=N;i+)printf("t請輸入您所需書籍的登陸號:");scanf("%ld",&a.num);printf("t請輸入書名:");scanf("%s",);printf(

7、"t請輸入作者名:");scanf("%s",a.writer);printf("t請輸入分類號:");scanf("%s",a.sort);printf("t請輸入出版單位:");scanf("%s",a.publisher);printf("t請輸入出版時(shí)間:");scanf("%ld",&a.time);printf("t請輸入該書的價(jià)格:");scanf("%f",&a.p

8、rice);fwrite(&a,sizeof(BOOK),1,fp);fclose(fp);4【圖書信息瀏覽】該模塊的功能是顯示所有錄入的圖書信息,流程圖如下:圖書瀏覽流程void list() /*定義瀏覽函數(shù)*/BOOK a;FILE *fp;if(fp=fopen("txt.txt","r")=NULL) printf("error!n");exit(0);登陸號t書名t作者名t分類號t出版單位tprintf("nnnnnnnnn出版時(shí)間t價(jià)格nn");while(fread(&a,sizeo

9、f(BOOK),1,fp)!=0)printf("t%ldt%st%st%st%st%ldt%3.2fn"anum,,a.writer, a.sort,a.publisher,a.time,a.price);fclose(fp);printf("nt press any key to continue.");getch();«5»【圖書信息查詢】需求分析用戶需要查找的圖書,調(diào)用函數(shù):1、按書名查找 search_by_name2、按作者名查找 search_by_write ,兩種方式進(jìn)行查詢。輸入查詢方式,進(jìn)入功能選項(xiàng),

10、1、首先打開源文件txt.txt ,則按照輸入書名進(jìn)行 for循環(huán)查找,若查到則顯示圖書信息。若無, 則顯示“file open error! "。按任意鍵結(jié)束。2、與1、流程相同,按照作者名查詢。查詢功能流程圖【程序】void search。/*定義查詢函數(shù)*/int a;printf("皿 printf(",*n").開始查詢n");printf("ttt1 printf("ttt2 printf("ttt0exit'n");printf("tt*按書名查詢n");按作者名

11、查詢n");*n");printf("皿請選擇你想要的查詢方式:");scanf("%d",&a);switch(a)case 1:search_by_name();break;case 2:search_by_writer();break;case 0:return; void search_by_name() /* 定義按書名查詢 */ FILE *fp;int i;BOOK bN;char s220;fp=fopen("txt.txt","r");if(fp=NULL)printf

12、("file open error!n");exit(0);for(i=0;i<N&&fp!=NULL;i+)/shanchufread(&bi,sizeof(BOOK),1,fp);printf(" 請輸入要查詢的書名 : ");scanf("%s",s2);for(i=0;i<N;i+) if(strcmp(s2,)=0)printf(" 書號 書名 作者 種類 出版商 出版日期 價(jià)格 n");printf("t%ldt%st%st%st%st%ldt

13、%3.2fn",bi.num,, bi.writer,bi.sort,bi.publisher,bi.time,bi.price);fclose(fp);void search_by_writer() /* 定義按作者名查詢 */int i;FILE *fp;BOOK bN;char s320;fp=fopen("txt.txt","r");if(fp=NULL)printf("file open error!n");exit(0);for(i=0;i<N;i+)fread(&bi,sizeof(

14、BOOK),1,fp);printf(" 請輸入要查詢的書的作者 : ");scanf("%20s",s3);for(i=0;i<N;i+)if(strcmp(s3,bi.writer)=0)printf(" 書號書名作者種類出版商出版日期價(jià)格n");printf("t%ldt%st%st%st%st%ldt%3.2fn",&bi.num,, bi.writer,&bi.sort,bi.publisher,&bi.time,&bi.price);fclose(fp

15、);6【圖書信息刪除】需求分析該模塊功能是,先輸入需要?jiǎng)h除的圖登陸號,打開存儲(chǔ)文件for循環(huán)查找該圖書信息,然后利用bk=bk+1語句進(jìn)行刪除,即將要?jiǎng)h除的一列用后一列進(jìn)行替換完成刪除功能,最后將改后的 信息在寫入結(jié)構(gòu)體存入文件,關(guān)閉文件夾。圖書信息刪除流程【程序】void del() /* 定義刪除函數(shù)*/FILE *fp;long booknum; /*按登陸號查詢*/int i=0,k;BOOK bN;if(fp=fopen("txt.txt","r")=NULL)printf("error!n");getch();exit(0

16、);for(i=0;i<N;i+)fread(&bi,sizeof(BOOK),1,fp);fclose(fp);printf("n Please type in the number of the book you want to delete:");scanf("%ld",&booknum);for(i=0;i<N;i+)if(booknum=bi.num) break;if(i<N)for(k=i;k<(N-1);k+)bk=bk+1;else printf("n cannot found!n&qu

17、ot;);fp=fopen("txt.txt","w");if(fp=NULL) printf("n error!n");return; for(i=0;i<N-1;i+)fwrite(&bi,sizeof(BOOK),1,fp);fclose(fp);getch(); 7 【圖書信息修改】 需求分析 該模塊實(shí)現(xiàn)按照用戶需求, 將需要修改的圖書名輸入 , 進(jìn)行 for 循環(huán)查找是否有此書,若無,則顯示未找到,退出,若有,則顯示輸入新的圖書信息,開始輸入修改的信息,進(jìn)行for 循環(huán)開始錄入,替換原文件信息,結(jié)束顯示“修改成

18、功” ?!境绦颉縱oid revise() /* 定義修改函數(shù)*/int i,j,k;char s120;BOOK bN;FILE *fp,*fq;if(fq=fopen("tab.txt","w")=NULL)printf("error!"); exit(0);if(fp=fopen("txt.txt","r")=NULL)printf("error!"); exit(0);for(i=0;!feof(fp)&&i<N;i+)fread(&bi

19、,sizeof(BOOK),1,fp);fclose(fp);printf("tt 歡迎進(jìn)入修改界面n");printf("nnntt 請輸入所要修改的圖書名: n");scanf("%s",s1);for(j=0;j<i;j+)if(strcmp(,s1)=0) k=j;break;if (j>i|j=i)printf(" 未找到! ");getch(); exit(0);printf("tt 請輸入新登錄號 圖書名 作者 分類號 出版單位 出版時(shí)間 價(jià)格 n");s

20、canf("%ld%s%s%s%s%ld%f",&bk.num,,bk.writer,bk.sort,bk.publisher ,&bk.time,&bk.price);for(i=0;i<(j+1);i+)fwrite(&bi,sizeof(BOOK),1,fq);fclose(fq);printf(" 修改成功! ");if(fq=fopen("txt.txt","w")=NULL)printf("error!"); exit(0);for

21、(i=0;!feof(fq)&&i<N;i+)fwrite(&bi,sizeof(BOOK),1,fq);fclose(fq);getch();«8»【圖書信息追加】需求分析該模塊功能是用戶需要增加新的圖書信息,打開源存儲(chǔ)文件,按照需要追加的個(gè)數(shù) n,進(jìn)彳T for循環(huán),開始錄入追加的信息,流程如下:【程序】void append() /* 定義追加函數(shù)*/int i,n;BOOK a;FILE *fp;if(fp=fopen("txt.txt","a")尸NULL)printf("error!

22、n");exit(0);printf("nnt請輸入追加圖書的個(gè)數(shù):");scanf("%d",&n);for(i=0;i<n;i+)printf ("t請輸入追加圖書的登錄號:");scanf("%ld",&a.num);printf("t請輸入追加圖書的圖書名:");scanf("%20s",);printf("t請輸入追加圖書的作者名:");scanf("%10s",a.writer);

23、printf("t請輸入追加圖書的分類號:");scanf("%10s",a.sort);printf("t請輸入追加圖書的出版單位:");scanf("%20s",a.publisher);printf("t請輸入追加圖書的出版時(shí)間:");scanf("%d",&a.time);printf("t請輸入追加圖書的單價(jià):");scanf("%f",&a.price);fwrite(&a,sizeof(BOOK),

24、1,fp);fclose(fp);【上機(jī)操作】1、錄入函數(shù)2、編譯連接、運(yùn)行3、結(jié)果下面是各功能模塊的界面圖:(1) 主菜單MMMMM中國地質(zhì)大學(xué)QHWWW圖書信息管理系統(tǒng)一人覽詢除改加息 一薪查刪修遁信 -自心自心自j.息自心自心 一信信自信信信卻C 八 E【 口一 C E一 E-二 二 二二 二書書書書書書出R圖圖圖圖12 3 4 5 6 0二 二 二 二 二 X 二 二 二 二 二pleaise cJwose(2) 添加模塊【錄入模塊】加的心籍號 號 號 陸 陸 陸0 3 :3:3榔:3:3位間價(jià) ea需:1名口富時(shí)的需:2名口多時(shí)的需:3名口墓時(shí)的 您書3出出該您書*出出該您書E出出該 入A-入入入入入入入入入入A入入A-入入入入入 + r +- r +X- - 1r +_+X- - -+ r +4TI4-TT 4T4-hTI +/ r r-IP-TT-+Ur r + 4"T r +-¥T -+ i *+ r:1的:1:1篝:1:1位間價(jià)節(jié):2:2篝:2:2位間價(jià)書【瀏覽模塊】價(jià)格出版時(shí)間出版單位分類號作者名登陸號書名10.0020.0030.00to continue

溫馨提示

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

評論

0/150

提交評論