C語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)報(bào)告圖書管_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)報(bào)告圖書管_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)報(bào)告圖書管_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)報(bào)告圖書管_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)報(bào)告圖書管_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、防災(zāi)科技學(xué)院實(shí)訓(xùn)報(bào)告書專 業(yè) 網(wǎng)絡(luò)工程 系 別 災(zāi)害信息工程系 課 程 C語(yǔ)言程序設(shè)計(jì) 報(bào)告題目 基于文件的小型圖書管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 報(bào)告人 劉亞茹 班級(jí)及學(xué)號(hào) 指導(dǎo)教師 劉 穎 帶隊(duì)教師 劉 穎 實(shí)訓(xùn)時(shí)間 8.22-8.26 實(shí)訓(xùn)單位 4#301 教務(wù)處監(jiān)制說 明報(bào)告要有實(shí)訓(xùn)目的、要求、原理簡(jiǎn)述、方法、步驟、實(shí)訓(xùn)體會(huì)等,具體內(nèi)容按各系及實(shí)訓(xùn)教師要求。以下模板內(nèi)容,如果你的程序里沒有體現(xiàn),就不用寫。目 錄1 前言42 系統(tǒng)需求分析42.1 問題定義42.2 需求分析52.3 項(xiàng)目開發(fā)計(jì)劃63 系統(tǒng)設(shè)計(jì)83.1 系統(tǒng)功能框架83.2 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)93.3功能模塊設(shè)計(jì)114 系統(tǒng)實(shí)現(xiàn)124.1

2、 系統(tǒng)硬件環(huán)境124.2 系統(tǒng)軟件環(huán)境124.3 開發(fā)工具124.4 系統(tǒng)功能模塊設(shè)計(jì)與實(shí)現(xiàn)124.4.1 圖書管理界面125 系統(tǒng)測(cè)試285.1 測(cè)試用例設(shè)計(jì)285.2 測(cè)試結(jié)果分析28實(shí)訓(xùn)體會(huì)281 前言圖書管理系統(tǒng)對(duì)于現(xiàn)代圖書館而言,是能否發(fā)揮其教學(xué)科研的作用的至關(guān)重要技術(shù)平臺(tái)。隨著當(dāng)今社會(huì)發(fā)展,信息化水平逐步提高,對(duì)圖書管理有了新的要求,因此,編寫一個(gè)信息管理系統(tǒng)是十分有必要的。2 系統(tǒng)需求分析2.1 問題定義該軟件主要是實(shí)現(xiàn)對(duì)圖書信息進(jìn)行系統(tǒng)化的管理,本系統(tǒng)要求實(shí)現(xiàn)以下的幾個(gè)基本功能:(1) 要求把所有錄入的數(shù)據(jù)以文件的形式,保存在硬盤上。(2) 實(shí)現(xiàn)簡(jiǎn)易的提示菜單界面,用所學(xué)的知識(shí)

3、盡量實(shí)現(xiàn)良好的、美觀的“人機(jī)界面”,便于軟件的操作使用。(3) 管理員登錄時(shí),需要驗(yàn)證密碼,密碼輸入超過三次,自動(dòng)退出系統(tǒng)。(4) 圖書管理功能:包括圖書添加功能、圖書修改功能、圖書刪除功能和圖書查詢功能;(5) 讀者管理功能:包括讀者添加功能、讀者修改功能、讀者刪除功能和讀者查詢功能;(6)借閱管理功能:借書功能,還書功能,續(xù)借功能。2.2 需求分析(1) 要求把所有錄入的數(shù)據(jù)以文件的形式,保存在硬盤上。實(shí)現(xiàn)簡(jiǎn)易的提示菜單界面,用所學(xué)的知識(shí)盡量實(shí)現(xiàn)良好的、美觀的“人機(jī)界面”,便于軟件的操作使用管理員登錄時(shí),需要驗(yàn)證密碼,密碼輸入超過三次,自動(dòng)退出系統(tǒng)。(2) 圖書管理功能:包括圖書添加功能、

4、圖書修改功能、圖書刪除功能和圖書查詢功能;a) 圖書添加功能:新書入庫(kù)。圖書購(gòu)入后由圖書管理人員將書籍編碼并將其 具體信息進(jìn)行錄入。b) 圖書查詢功能:提供按照?qǐng)D書名、作者和出版社三種方式來查詢圖書,只考慮精確查詢;c) 圖書修改功能:如果有錄入錯(cuò)誤,可以實(shí)現(xiàn)管理員對(duì)圖書信息進(jìn)行修改;d) 圖書刪除功能:如果有圖書丟失或損壞等情況,把圖書注銷掉。(3) 讀者管理功能:包括讀者添加功能、讀者修改功能、讀者刪除功能和讀者查詢功能;e) 讀者添加功能:為新的讀者辦卡功能;f) 讀者查詢功能:按照讀者姓名或者讀者編號(hào)進(jìn)行精確查詢;g) 讀者刪除:注銷讀者操作。(4) 借閱管理功能h) 借書管理:根據(jù)借

5、閱卡編號(hào)和圖書編號(hào),進(jìn)行借書登記。在借閱信息中插入一條借書記錄,該記錄包括讀者編號(hào)、圖書編號(hào)、借出日期、借閱編號(hào)信息,更新該記錄的相應(yīng)數(shù)據(jù)。把超期圖書以列表的形式顯示出來,并以電子郵件。i) 還書管理:根據(jù)借閱卡編號(hào)、圖書ID等,在借閱信息表中找到相應(yīng)的記錄,將借書記錄刪除,更新該記錄的相應(yīng)數(shù)據(jù)(圖書信息表)。根據(jù)違反規(guī)定情況計(jì)算和登記罰款記錄。j) 丟書管理:每本書賠償書價(jià)的3倍;k) 過期管理:借書日期時(shí)間為30天,沒按照預(yù)期還書的,超過還書日期一天賠償5毛錢;2.3 項(xiàng)目開發(fā)計(jì)劃序號(hào)實(shí)習(xí)項(xiàng)目任務(wù)主要內(nèi)容學(xué)時(shí)1需求分析根據(jù)項(xiàng)目需求,描述模型12系統(tǒng)分析分析系統(tǒng),建立模型。23系統(tǒng)設(shè)計(jì)系統(tǒng)架

6、構(gòu)1結(jié)構(gòu)設(shè)計(jì)1功能設(shè)計(jì)14系統(tǒng)實(shí)現(xiàn)硬件環(huán)境實(shí)現(xiàn)5軟件環(huán)境實(shí)現(xiàn)7功能實(shí)現(xiàn)75系統(tǒng)測(cè)試單元測(cè)試設(shè)計(jì)測(cè)試用例,對(duì)單個(gè)類及類的方法進(jìn)行測(cè)試。3功能測(cè)試設(shè)計(jì)測(cè)試用例,對(duì)系統(tǒng)關(guān)鍵功能進(jìn)行測(cè)試。2性能測(cè)試使用測(cè)試工具,對(duì)系統(tǒng)進(jìn)行性能測(cè)試。36系統(tǒng)部署描述具體部署過程37整理項(xiàng)目文檔根據(jù)自己完成的情況,整理項(xiàng)目文檔43 系統(tǒng)設(shè)計(jì)3.1 系統(tǒng)功能框架3.2 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)圖書(圖書編號(hào),書名,ISBN,價(jià)格,作者,出版社,總數(shù)量,剩余數(shù)量)具體如下:struct book_typelong booknum; /*圖書編號(hào)*/char booknam20 ;/*圖書名字*/char ISBN20; /*圖書ISBN

7、*/;float price; /*圖書價(jià)格*/char writer20; /*圖書名字*/char pubhouse20; /*圖書出版社*/ long leftcount; /*圖書剩余量*/bookbookcount;讀者(讀者編號(hào),姓名,借書數(shù)量,電子郵件)具體如下圖:struct reader_typelong readernum; /*讀者編號(hào)*/char readernam20; /*讀者姓名*/int borcount; /*借閱數(shù)量*/readerreadercount;借閱信息(讀者編號(hào),圖書編號(hào),借閱編號(hào),借書日期),具體如圖:struct lend_typelong

8、booknum; /*圖書編碼*/ long readernum; /*讀者編號(hào)*/ char bordate15;/*借書日期*/ char redate15;/*還書日期*/lendlendcount;3.3功能模塊設(shè)計(jì)case 4case 3case 2case 1結(jié)束P!=1調(diào)用addbook()P=1printf(-歡迎進(jìn)入圖書查詢管理系統(tǒng)-n);do ()判斷n0?p=1printf(請(qǐng)選擇所需要的功能n);輸入選擇p調(diào)用upbook()調(diào)用delbook()調(diào)用finbook()p進(jìn)入圖書查詢系統(tǒng)返回主界面或退出4 系統(tǒng)實(shí)現(xiàn)4.1 系統(tǒng)硬件環(huán)境顯示器、主機(jī)、鍵盤、鼠標(biāo)、512M內(nèi)

9、存4.2 系統(tǒng)軟件環(huán)境Windows Xp4.3 開發(fā)工具Vc6.04.4 系統(tǒng)功能模塊設(shè)計(jì)與實(shí)現(xiàn) 4.4.1 圖書管理界面由主界面進(jìn)入圖書管理系統(tǒng),由提示進(jìn)入各個(gè)功能模塊的界面。而圖書管理系統(tǒng)主要有添加、刪除、更新、查詢四部分組成,而查詢功能又包括按照?qǐng)D書名、作者和出版社三種方式來查詢圖書。因此在實(shí)現(xiàn)時(shí)一定要注意這方面的問題。主界面選擇1進(jìn)入圖書管理系統(tǒng),2進(jìn)入讀者管理系統(tǒng),3進(jìn)入借閱管理系統(tǒng)。圖書管理系統(tǒng),下分圖書的添加、刪除、統(tǒng)計(jì)和修改四個(gè)選項(xiàng),可以通過選擇選項(xiàng),進(jìn)入所需要的服務(wù):/*實(shí)現(xiàn)圖書管理功能:包括添加圖書信息,修改圖書信息,刪除圖書信息,圖書信息查詢*/# include# i

10、nclude#include# define bookcount 1000struct book_typelong booknum;char booknam20;char ISBN20;float price;char writer20;char pubhouse20;long totalcount; long leftcount;bookbookcount;void addbook()/實(shí)現(xiàn)添加圖書信息功能 int i,j,n,k;FILE *fp;printf(是否添加圖書信息?請(qǐng)選擇服務(wù)項(xiàng)目:n1: 是n2: 返回上一菜單n3: 退出n請(qǐng)輸入服務(wù)項(xiàng)目代碼n);scanf(%d,&i);

11、printf(n); switch (i) case 1: printf(請(qǐng)輸入一次性最多添加的圖書數(shù)量n); scanf(%d,&n); printf(n); k=n; printf(請(qǐng)依次輸入圖書編號(hào),書名,ISBN,價(jià)格,作者,出版社,總數(shù)量,剩余數(shù)量n); for(j=0;jk;j+) scanf(%ld %s %s %f %s %ld %ld ,bookj.booknum,bookj.booknam,bookj.ISBN,bookj.price,bookj.writer,bookj.pubhouse,bookj.totalcount,bookj.leftcount); if(fp=f

12、open(book_list,a)=NULL) printf(cannot open filen); return; for (n=0;nk;n+) if(fwrite(&booki,sizeof(struct book_type),1,fp)!=1) printf(file write errorn); fclose(fp);break; case 2: addbook();break; case 3: exit(0);void upbook()/實(shí)現(xiàn)修改圖書的功能,假設(shè)圖書編號(hào)無誤int m=0,i,choice;long booknum1;FILE *fp,*fp1;fp=fopen(b

13、ook_list.txt,r);fp1=fopen(book_list 1.txt,w);printf(請(qǐng)輸入需要修改的圖書的編號(hào):n);scanf(%s, booknum1); printf(n);for(i=0;fread(&booki,sizeof(struct book_type),1,fp)!=0;i+)if(booki.booknum!= booknum1)fwrite(&booki,sizeof(struct book_type ),1,fp1);else printf(您所需要修改的信息為:n 編號(hào):%ldn書名:%snISBN:%sn價(jià)格:%fn作者:%sn出版社:%sn總數(shù)

14、量:%dn剩余數(shù)量:%dn, booki.booknum,booki.booknam,booki.ISBN,booki.price,booki.writer,booki.pubhouse,booki.totalcount,booki.leftcount);printf(請(qǐng)輸入修改后的信息:n);scanf(%ld%s%s%f%s%ld%ld ,&booki.booknum,&booki.booknam,&booki.ISBN,&booki.price,&booki.writer,&booki.pubhouse,&booki.totalcount,&booki.leftcount); fwrit

15、e(&booki,sizeof(struct book_type),1,fp1);m=1;fclose(fp);fclose(fp1);fp=fopen(book_list.txt,w); fp1=fopen(book_list 1.txt,r);for(i=0;fread(&booki,sizeof(struct book_type),1,fp1)!=0;i+)fwrite(&booki,sizeof(struct book_type),1,fp);fclose(fp);fclose(fp1);if(m=1)printf(修改成功n);else printf(此讀者信息不存在n);print

16、f(是否返回? 1.是 2.否n);scanf(%d,&choice);switch (choice) case 1:upbook();break; case 2:printf(程序退出n);break; default : printf(程序退出n);void delbook()/*函數(shù)名稱:delreader() 函數(shù)功能:按圖書編號(hào)進(jìn)行刪除*/ FILE *fp,*fp1; int i; int booknum1; int choice; fp=fopen(book_list.txt,r); fp1=fopen(book_list1.txt,w); printf(請(qǐng)輸入要?jiǎng)h除的圖書編號(hào):

17、n); printf(如果你輸入的圖書編號(hào)存在,系統(tǒng)自動(dòng)刪除該信息!如果不存在,系統(tǒng)不做任何改動(dòng)n); scanf(%d,&booknum1); printf(n); for(i=0;fread(&booki,sizeof(struct book_type),1,fp)!=0;i+) if(booki.booknum!=booknum1)fwrite(&booki,sizeof(struct book_type),1,fp1); fclose(fp); fclose(fp1); printf(是否真的要?jiǎng)h除該書籍?刪除后該書籍的所有信息將無法恢復(fù),則:1是,0:否); scanf(%d,&ch

18、oice); printf(n); if(choice = 1) fp=fopen(book_list.txt,w); fp1=fopen(book_list1.txt,r); for(i=0;fread(&booki,sizeof(struct book_type),1,fp1)!=0;i+) fwrite(&booki,sizeof(struct book_type),1,fp); printf(已經(jīng)刪除成功,按任意鍵退出n); getchar(); else printf(沒有刪除,按任意鍵退出n); getchar(); fclose(fp); fclose(fp1); void fi

19、nbooknam()/實(shí)現(xiàn)圖書信息查詢功能,按書名查詢 int i, k; char booknam120;FILE *fp;fp=fopen(book_list,r);printf(請(qǐng)輸入您需要查詢的圖書的名字:n);scanf(%s,booknam1); printf(n);for(i=0;fread(&booki,sizeof(struct book_type),1,fp)!=0;i+) if(strcmp(booki.booknam,booknam1) printf(您所查詢的圖書為:n編號(hào):%ldn書名:%snISBN:%sn價(jià)格:%dn作者:%sn出版社:%sn總數(shù)量:%dn剩余數(shù)

20、量:%dn, booki.booknum,booki.booknam,booki.ISBN,booki.price,booki.writer,booki.pubhouse,booki.totalcount,booki.leftcount); printf(是否返回上一級(jí)菜單?n1:是n0:否(退出該系統(tǒng))n請(qǐng)輸入選項(xiàng)代碼n); scanf(%d,&k); printf(n); switch (k) case 1: finbooknam ();break; case 0:exit(0);break; default :printf(erronn); fclose(fp); else printf

21、(沒有你所查詢的書籍n); printf(是否返回上一級(jí)菜單?n1:是n0:否(退出該系統(tǒng))n請(qǐng)輸入選項(xiàng)代碼n); scanf(%d,&k); printf(n); switch (k) case 1: finbooknam ();break; case 0:exit(0);break; default :printf(erronn); fclose (fp);void finbooknum()/按圖書編號(hào)查詢 int i,k; long booknum1;FILE*fp;fp=fopen(book_list,r);printf(請(qǐng)輸入您需要查詢的圖書的編號(hào):n);scanf(%d,bookn

22、um1); printf(n);for(i=0;fread(&booki,sizeof(struct book_type),1,fp)!=0;i+) if(booknum1=booki.booknum) printf(您所查詢的圖書為:n編號(hào):%ldn書名:%snISBN:%sn價(jià)格:%fn作者:%sn出版社:%sn總數(shù)量:%dn剩余數(shù)量:%dn, booki.booknum,booki.booknam,booki.ISBN,booki.price,booki.writer,booki.pubhouse,booki.totalcount,booki.leftcount); printf(是否返

23、回上一級(jí)菜單?n1:是n0:否(退出該系統(tǒng))n請(qǐng)輸入選項(xiàng)代碼n); scanf(%d,&k); printf(n); switch (k) case 1: finbooknam ();break; case 0:exit(0);break; default :printf(erronn); fclose(fp); else printf(沒有你所查詢的書籍n); printf(是否返回上一級(jí)菜單?n1:是n0:否(退出該系統(tǒng))n請(qǐng)輸入選項(xiàng)代碼n); scanf(%d,&k); switch (k) case 1: finbooknam ();break; case 0:exit(0);brea

24、k; default :printf(erronn); fclose (fp);void finbookpub()/按出版社查詢 int i, m=0,k; char pubhouse120;FILE*fp;fp=fopen(book_list,r);printf(請(qǐng)輸入您需要查詢的圖書出版社的名字:n);scanf(%s,pubhouse1); printf(n);for(i=0;fread(&booki,sizeof(struct book_type),1,fp)!=0;i+) if(strcmp(pubhuose1,booki.pubhouse)=0) printf(您所查詢的圖書為:n

25、編號(hào):%ldn書名:%snISBN:%sn價(jià)格:%dn作者:%sn出版社:%sn總數(shù)量:%dn剩余數(shù)量:%dn, booki.booknum,booki.booknam,booki.ISBN,booki.price,booki.writer,booki.pubhouse,booki.totalcount,booki.leftcount); m=1; printf(是否返回上一級(jí)菜單?n1:是n0:否(退出該系統(tǒng))n請(qǐng)輸入選項(xiàng)代碼n); scanf(%d,&k); printf(n); switch (k) case 1: finbooknam ();break; case 0:exit(0);

26、break; default :printf(erronn); fclose(fp); else printf(沒有你所查詢的書籍n); printf(是否返回上一級(jí)菜單?n1:是n0:否(退出該系統(tǒng))n請(qǐng)輸入選項(xiàng)代碼n); scanf(%d,&k); printf(n); switch (k) case 1: finbooknam ();break; case 0:exit(0);break; default :printf(erronn); fclose (fp);# include# includevoid finbook()/實(shí)現(xiàn)圖書查詢功能:按書名查詢,圖書編號(hào)查詢,出版社查詢 int i; printf(歡迎使用圖書查詢管理系統(tǒng),請(qǐng)選擇查詢方式:n1:圖書名n2:圖書作者n3:圖書出版社n4:返回上一級(jí)菜單n5:退出該系統(tǒng)n請(qǐng)輸入查詢方式代碼n); scanf(%d,&i);printf(n); switch(i) case 1:finbooknam();break; case 2:finbooknum();break; case 3:finbookpub();break; case 4:finbook();bre

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論