圖書信息管理系統(tǒng)設(shè)計(jì)—C語(yǔ)言課程設(shè)計(jì)(共16頁(yè))_第1頁(yè)
圖書信息管理系統(tǒng)設(shè)計(jì)—C語(yǔ)言課程設(shè)計(jì)(共16頁(yè))_第2頁(yè)
圖書信息管理系統(tǒng)設(shè)計(jì)—C語(yǔ)言課程設(shè)計(jì)(共16頁(yè))_第3頁(yè)
圖書信息管理系統(tǒng)設(shè)計(jì)—C語(yǔ)言課程設(shè)計(jì)(共16頁(yè))_第4頁(yè)
圖書信息管理系統(tǒng)設(shè)計(jì)—C語(yǔ)言課程設(shè)計(jì)(共16頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上圖書信息管理系統(tǒng)設(shè)計(jì)一、【要求】圖書信息包括:登錄號(hào)、書名、作者名、分類號(hào)、出版單位、出版時(shí)間、價(jià)格等。設(shè)計(jì)一圖書信息管理系統(tǒng),使之能提供以下功能:(1) 系統(tǒng)以菜單方式工作(2) 圖書信息錄入功能(3) 圖書信息瀏覽功能(4) 圖書信息查詢功能(5) 圖書信息的刪除與修改功能二、【各功能模塊】1、菜單模塊開(kāi)始圖書信息錄入圖書信息瀏覽圖書信息查詢圖書信息刪除圖書信息修改圖書信息追加N輸入a,判斷是否是06?開(kāi)始Y根據(jù)a的值調(diào)用各功能模塊函數(shù)結(jié)束 主函數(shù)流程圖1、主函數(shù):建立menu( )函數(shù)將主函數(shù)功能提取出來(lái),主函數(shù)main調(diào)用menu( )函數(shù)方便簡(jiǎn)捷。void

2、main()menu();void menu() int a;doprintf(" *趙 毅*n");printf("n");printf("*中國(guó)地質(zhì)大學(xué)*n");printf("n");printf("nnnnntttt圖書信息管理系統(tǒng)ttttn");printf("tt*n");printf("ttt1 -圖書信息錄入n");printf("ttt2 -圖書信息瀏覽n");printf("ttt3 -圖書信息查詢n&qu

3、ot;);printf("ttt4 -圖書信息刪除n");printf("ttt5 -圖書信息修改n");printf("ttt6 -圖書信息追加n");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()

4、;break;case 4:del();break;case 5:revise();break;case 6:append();break;case 0:exit(0);default:printf("n序號(hào)不對(duì)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 system long num; char nam

5、e20;char writer10;char sort10;char publisher20;long time;float price;BOOK;注:定義的BOOK結(jié)構(gòu)體N為限定的錄入圖書個(gè)數(shù)(可依據(jù)不同要求變化范圍)long num為定義的登錄號(hào)(長(zhǎng)整形變量)char name20為定義的書名的數(shù)組char writer10為定義的作者的數(shù)組char sort10定義的分類號(hào)數(shù)組char publisher20定義的出版單位數(shù)組long time定義的出版時(shí)間長(zhǎng)整形變量float price價(jià)格為浮點(diǎn)型變量。2、【數(shù)據(jù)存儲(chǔ)】整個(gè)程序沒(méi)有利用保存save函數(shù),而是利用txt.txt tab.

6、txt 兩個(gè)文件錄入存取數(shù)據(jù)信息,并通過(guò)文件的讀取、寫入進(jìn)行圖書信息的修改/刪除等功能。(fopen fwrite fread寫入及讀取數(shù)據(jù)進(jìn)行存儲(chǔ))。3【圖書信息錄入】圖書信息錄入輸入書籍登錄號(hào)輸入書名輸入作者名輸入分類號(hào)輸入出版單位輸入出版時(shí)間輸入書的價(jià)格開(kāi)始輸入用戶要輸入的錄入的書的個(gè)數(shù)Ni從1到N調(diào)用輸入函數(shù)input(i)把信息存入txt.txt文件關(guān)閉錄入信息的文件結(jié)束 圖書錄入流程圖【程序】void input() /*定義錄入函數(shù)*/ int i;BOOK a;FILE *fp;if(fp=fopen("txt.txt","w")=NUL

7、L) printf("error!n");exit(0);for(i=1;i<=N;i+)printf("t請(qǐng)輸入您所需書籍的登陸號(hào):");scanf("%ld",&a.num);printf("t請(qǐng)輸入書名:");scanf("%s",);printf("t請(qǐng)輸入作者名:");scanf("%s",a.writer);printf("t請(qǐng)輸入分類號(hào):");scanf("%s",a.sort

8、);printf("t請(qǐng)輸入出版單位:");scanf("%s",a.publisher);printf("t請(qǐng)輸入出版時(shí)間:");scanf("%ld",&a.time);printf("t請(qǐng)輸入該書的價(jià)格:");scanf("%f",&a.price);fwrite(&a,sizeof(BOOK),1,fp);fclose(fp);4【圖書信息瀏覽】圖書信息瀏覽顯示書籍登錄號(hào)顯示書名顯示作者名顯示分類號(hào)顯示出版單位顯示出版時(shí)間顯示書的價(jià)格該模塊的功

9、能是顯示所有錄入的圖書信息,流程圖如下:顯示圖書相關(guān)信息打開(kāi)存入信息的txt.txt文件按任意鍵返回主菜單 圖書瀏覽流程【程序】void list() /*定義瀏覽函數(shù)*/ BOOK a;FILE *fp;if(fp=fopen("txt.txt","r")=NULL) printf("error!n");exit(0);printf("nnnnnnnnn登陸號(hào)t書名t作者名t分類號(hào)t出版單位t出版時(shí)間t價(jià)格nn");while(fread(&a,sizeof(BOOK),1,fp)!=0)printf(&

10、quot;t%ldt%st%st%st%st%ldt%3.2fn",a.num,,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),1、 首先打開(kāi)源文件txt.txt ,則按照輸入書名進(jìn)行for 循環(huán)查找

11、,若查到則顯示圖書信息。若無(wú),則顯示“file open error!”。按任意鍵結(jié)束。2、 與1、流程相同,按照作者名查詢。圖書信息查詢按書名查詢(1)按作者名查詢(2)EXIT(0)開(kāi)始輸入a,判斷a是否為12?a=1 ,則調(diào)用search_by_name按書名查詢a=2,則調(diào)用search_by_writer按作者名查詢輸入書名,若有此書則輸出此書信息,若沒(méi)有,則輸出file open error!輸入作者名,若有此書則輸出此書信息,若沒(méi)有,則輸出file open error!退出回到主菜單a=0查詢功能流程圖【程序】void search() /*定義查詢函數(shù)*/ int a;pri

12、ntf("tt*n");printf("開(kāi)始查詢n");printf("ttt1-按書名查詢n");printf("ttt2-按作者名查詢n");printf("ttt0-exitn");printf("tt*n") ;printf("tt請(qǐng)選擇你想要的查詢方式:");scanf("%d",&a);switch(a)case 1:search_by_name();break; case 2:search_by_writer();

13、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("file open error!n");exit(0);for(i=0;i<N&&fp!=NULL;i+)/shanchufread(&bi,sizeof(BOOK),1,fp);printf("請(qǐng)輸入要查詢的書名: ");sca

14、nf("%s",s2);for(i=0;i<N;i+)if(strcmp(s2,)=0) printf("書號(hào) 書名 作者 種類 出版商 出版日期 價(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);void search_by_writer() /*定義按作者名查詢*/ int i;FILE *fp;BOOK bN;char s3

15、20;fp=fopen("txt.txt","r");if(fp=NULL)printf("file open error!n");exit(0);for(i=0;i<N;i+)fread(&bi,sizeof(BOOK),1,fp);printf("請(qǐng)輸入要查詢的書的作者: ");scanf("%20s",s3);for(i=0;i<N;i+)if(strcmp(s3,bi.writer)=0) printf("書號(hào) 書名 作者 種類 出版商 出版日期 價(jià)格 n&

16、quot;); printf("t%ldt%st%st%st%st%ldt%3.2fn",&bi.num,,bi.writer,&bi.sort,bi.publisher,&bi.time,&bi.price);fclose(fp);6【圖書信息刪除】需求分析該模塊功能是,先輸入需要?jiǎng)h除的圖登陸號(hào),打開(kāi)存儲(chǔ)文件for循環(huán)查找該圖書信息,然后利用bk=bk+1語(yǔ)句進(jìn)行刪除,即將要?jiǎng)h除的一列用后一列進(jìn)行替換完成刪除功能,最后將改后的信息在寫入結(jié)構(gòu)體存入文件,關(guān)閉文件夾。刪除功能輸入登錄號(hào)刪除用bk=bk+1進(jìn)行替換完成刪除功能結(jié)束圖

17、書信息刪除流程【程序】void del() /*定義刪除函數(shù)*/ FILE *fp;long booknum; /*按登陸號(hào)查詢*/int i=0,k;BOOK bN;if(fp=fopen("txt.txt","r")=NULL) printf("error!n");getch();exit(0); 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

18、 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");fp=fopen("txt.txt","w");if(fp=NULL) printf("n error!n");return; for(i=0;i<N-1;i+)f

19、write(&bi,sizeof(BOOK),1,fp);fclose(fp); getch();7【圖書信息修改】需求分析該模塊實(shí)現(xiàn)按照用戶需求,將需要修改的圖書名輸入,進(jìn)行for循環(huán)查找是否有此書,若無(wú),則顯示未找到,退出,若有,則顯示輸入新的圖書信息,開(kāi)始輸入修改的信息,進(jìn)行for循環(huán)開(kāi)始錄入,替換原文件信息,結(jié)束顯示“修改成功”?!境绦颉縱oid revise() /*定義修改函數(shù)*/ int i,j,k;char s120;BOOK bN;FILE *fp,*fq;if(fq=fopen("tab.txt","w")=NULL) pri

20、ntf("error!"); exit(0);if(fp=fopen("txt.txt","r")=NULL) printf("error!"); exit(0);for(i=0;!feof(fp)&&i<N;i+)fread(&bi,sizeof(BOOK),1,fp);fclose(fp);printf("tt歡迎進(jìn)入修改界面n");printf("nnntt請(qǐng)輸入所要修改的圖書名:n");scanf("%s",s1);f

21、or(j=0;j<i;j+)if(strcmp(,s1)=0) k=j;break;if (j>i|j=i)printf("未找到!");getch(); exit(0);printf("tt請(qǐng)輸入新登錄號(hào) 圖書名 作者 分類號(hào) 出版單位 出版時(shí)間 價(jià)格n");scanf("%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+)

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論