C語(yǔ)言程序設(shè)計(jì)圖書(shū)館信息管理系統(tǒng)_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)圖書(shū)館信息管理系統(tǒng)_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)圖書(shū)館信息管理系統(tǒng)_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)圖書(shū)館信息管理系統(tǒng)_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)圖書(shū)館信息管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩31頁(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、一、 問(wèn)題概述(對(duì)問(wèn)題背景及主要實(shí)現(xiàn)的功能進(jìn)行簡(jiǎn)要說(shuō)明。)隨著圖書(shū)館圖書(shū)的不斷增加,圖書(shū)管理的難度也隨之加大,一個(gè)好的圖書(shū)館圖書(shū)信息管理系統(tǒng),能夠使圖書(shū)管理工作簡(jiǎn)便,有條不紊。通過(guò)C語(yǔ)言學(xué)習(xí),我們已經(jīng)能夠完成基本的C語(yǔ)言編程,此次實(shí)訓(xùn),是將學(xué)習(xí)和實(shí)踐結(jié)合,充分感受C語(yǔ)言解決實(shí)踐問(wèn)題的魅力。此次編寫(xiě)的圖書(shū)館信息管理系統(tǒng),能夠?qū)崿F(xiàn)基本的圖書(shū)管理功能。它包括圖書(shū)庫(kù)的創(chuàng)建,打印圖書(shū)信息表,錄入新圖書(shū),修改圖書(shū)信息,刪除圖書(shū)信息,借書(shū),還書(shū)。圖書(shū)庫(kù)包含圖書(shū)的各方面信息,編號(hào),類(lèi)型,作者,出版社,總數(shù),剩余量等等,并且打印圖書(shū)信息表。錄入,修改,刪除這些功能都是對(duì)圖書(shū)庫(kù)的操作。借書(shū),還書(shū)這兩項(xiàng)最重要的功能

2、也都能很好的實(shí)現(xiàn)。把此系統(tǒng)應(yīng)用于圖書(shū)館的圖書(shū)管理,能使圖書(shū)館的各項(xiàng)工作便捷,可靠的完成。二、 系統(tǒng)目標(biāo) (主要是對(duì)系統(tǒng)技術(shù)目標(biāo)和要求)歡迎界面、主菜單、系統(tǒng)管理功能、圖書(shū)信息管理、借閱功能模塊、其中系統(tǒng)管理功能包括系統(tǒng)管理員添加、刪除、修改信息以及用管理員身份登錄系統(tǒng)等功能。圖書(shū)信息管理包括新增圖書(shū)、修改圖書(shū)、刪除圖書(shū)、等功能。借閱功能模塊包括借書(shū)功能、還書(shū)功能、查詢已借圖書(shū)、查詢過(guò)期未還圖書(shū),其中借書(shū)還書(shū)功能可以按圖書(shū)編號(hào)信息進(jìn)行操作。三、 設(shè)計(jì)的過(guò)程及步驟1、需求分析(描述系統(tǒng)需求,既詳細(xì)分析系統(tǒng)需求和功能)根據(jù)題目要求,應(yīng)當(dāng)把圖書(shū)信息用結(jié)構(gòu)體形式輸入,再定義一個(gè)全局變量和文件指針進(jìn)行整個(gè)

3、程序的運(yùn)行,然后把圖書(shū)信息送到文件中,所以應(yīng)該提供一個(gè)結(jié)構(gòu)體和文件的輸入輸出等操作;在程序中需實(shí)現(xiàn)圖書(shū)信息錄入,瀏覽,查詢,刪除和修改等功能的操作,所以需要建立相應(yīng)的模塊來(lái)實(shí)現(xiàn);另外還需提供鍵盤(pán)式選擇菜單實(shí)現(xiàn)功能,在運(yùn)行時(shí)達(dá)到所要目的。2、設(shè)計(jì)文件結(jié)構(gòu)(設(shè)計(jì)文件結(jié)構(gòu),并扼要說(shuō)明設(shè)計(jì)緣由)此系統(tǒng)根據(jù)所要實(shí)現(xiàn)的功能,使用的函數(shù)等綜合考慮,設(shè)計(jì)了兩個(gè),圖書(shū)信息文件(tushu.red),借還書(shū)文件(borrow.red),錄入新圖書(shū),修改,刪除圖書(shū)等一些操作時(shí)在圖書(shū)信息文件上運(yùn)行,借還書(shū)功能則在借還書(shū)文件上運(yùn)行,同時(shí)也要在圖書(shū)信息文件上運(yùn)行。兩個(gè)文件相互結(jié)合,使各個(gè)功能很好的實(shí)現(xiàn)了,運(yùn)用C語(yǔ)言的文件

4、功能,也是整個(gè)程序的主線。3、設(shè)計(jì)系統(tǒng)功能圖(根據(jù)需求分析結(jié)果和文件結(jié)構(gòu),應(yīng)用結(jié)構(gòu)化分析與設(shè)計(jì)技術(shù)設(shè)計(jì)功能結(jié)構(gòu)圖,如下圖所示)圖書(shū)管理信息系統(tǒng)創(chuàng)建文件信息基本信息管理圖書(shū)流通管理圖書(shū)統(tǒng)計(jì)借書(shū)管理還書(shū)管理本月借出統(tǒng)計(jì)超期未還統(tǒng)計(jì)統(tǒng)計(jì)按期歸還率按圖書(shū)類(lèi)別查詢按書(shū)名查詢按作者名查詢圖書(shū)查詢圖書(shū)管理信息系統(tǒng)圖書(shū)輸入與追加刪除圖書(shū)記錄修改圖書(shū)記錄顯示圖書(shū)信息借書(shū)統(tǒng)計(jì)報(bào)表 4、函數(shù)設(shè)計(jì)( 詳細(xì)分析每一個(gè)子模塊的子功能,定義主要的子函數(shù)原型,并對(duì)每一個(gè)函數(shù)的功能加以說(shuō)明)此系統(tǒng)主要有7個(gè)功能,也就有主要的7個(gè)函數(shù),他們分別是void shan() /刪除圖書(shū)信息void xiu() /修改圖書(shū)信息void

5、putin() /錄入新圖書(shū)void print() /打印圖書(shū)信息表void returned() /還書(shū)void books() /創(chuàng)建圖書(shū)文件void borrowed() /借書(shū)其中每一個(gè)函數(shù)都用到了兩個(gè)結(jié)構(gòu)體,它們分別是:struct tushu char bianhao110; char bianhao210; char leixing20; char shuming50; char chubanshe50; shu;struct books char bianhao110; char bianhao210; long nian; long borrowmonth; long bo

6、rrowday; long returnedmonth; long returnedday; long limittime; char student10; book;四、 實(shí)訓(xùn)成果(對(duì)自己的最后的實(shí)驗(yàn)成果進(jìn)行概括)經(jīng)過(guò)長(zhǎng)達(dá)9天的編寫(xiě),修改,運(yùn)行,最后完成時(shí),預(yù)想的功能都能比較好的實(shí)現(xiàn)。下面是各個(gè)功能運(yùn)行的界面:進(jìn)入界面 :功能選擇界面 :錄入新圖書(shū)界面 :還有各個(gè)功能各種界面,這里就不一一列出了。五、 實(shí)訓(xùn)心得與體會(huì)此次系統(tǒng)編程,我感受很多,從開(kāi)始編程時(shí)的迷茫,到修改時(shí)的煩躁,再到運(yùn)行時(shí)的無(wú)奈,最后是成功時(shí)無(wú)法表達(dá)的喜悅和興奮。每一步都是自己努力走過(guò)來(lái)的,雖然這個(gè)過(guò)程比較辛苦,但是現(xiàn)在回過(guò)頭

7、去想想,這幾天還是過(guò)得很有意義和價(jià)值的。大家都說(shuō)編程最需要的是耐心,我這次是深有體會(huì),程序剛開(kāi)始編,滿身都是信心和興趣,到修改的時(shí)候,檢查一遍又一遍,修改一次有一次還是無(wú)法成功運(yùn)行,這個(gè)時(shí)候只有耐心才能堅(jiān)持完成。同時(shí),編程時(shí),會(huì)發(fā)現(xiàn)許多以前學(xué)的概念都記錯(cuò)了,這時(shí)候要找出課本重新溫習(xí),所以這也是一個(gè)不斷學(xué)習(xí)的過(guò)程。還有,編程時(shí)不能太死板,要實(shí)現(xiàn)一個(gè)功能其實(shí)都會(huì)有很多種算法,我們應(yīng)邊做邊學(xué)習(xí)新的方法。對(duì)于我的不足之處,要實(shí)現(xiàn)一個(gè)功能時(shí),我總是第一遍編程實(shí)現(xiàn)后,就不愿意在深探究下去,這種惰性很不適合做編程工作??偠灾?,通過(guò)此次C語(yǔ)言實(shí)踐編程,使我對(duì)C語(yǔ)言的興趣更加濃厚,也對(duì)C語(yǔ)言的實(shí)踐應(yīng)用更加了解

8、,充分感受到了它的魅力,同時(shí)也明白了自身在這方面工作的優(yōu)勢(shì)和不足。六、 附錄#include<stdio.h>#include<stdlib.h>#include<string.h>struct tushu char bianhao110; char bianhao210; char leixing20; char shuming50; char chubanshe50; char writer20; long zongshu; long shengyu; shu;struct books char bianhao110; char bianhao210;

9、long nian; long borrowmonth; long borrowday; long returnedmonth; long returnedday; long limittime; char student10; book;void shan() /刪除圖書(shū)信息 FILE *fp; int i=0,j,n,m,l; char booknum20; struct tushu tu1000; if(fp=fopen("tushu.txt","r")=NULL) printf("can not open the tushu.txt.n

10、"); exit(0); while(fread(&tui,sizeof(shu),1,fp) i+; m=i; printf("要?jiǎng)h除幾本書(shū):"); scanf("%d",&n); getchar(); for(i=0;i<n;i+) printf("輸入圖書(shū)編號(hào)2:"); gets(booknum); for(j=0;j<m;j+) if(strcmp(booknum,tuj.bianhao2)=0) break; if(j<m)for(l=0;l<m;l+)if(strcmp(t

11、uj.bianhao1,tul.bianhao1)=0)tul.zongshu-; tul.shengyu-; for(j;j<m;j+) tuj=tuj+1; else printf("輸入有誤 重新輸入n"); i-; if(fp=fopen("tushu.txt","w")=NULL) printf("can not open the tushu.txt.n"); exit(0); for(i=0;i<m-n;i+) fwrite(&tui,sizeof(shu),1,fp);printf

12、("刪除成功!");void xiu() /修改圖書(shū)信息 FILE *fp; int i=0,m,n; char booknum20,numchar20; struct tushu tu1000; if(fp=fopen("tushu.txt","r")=NULL) printf("can not open the borrow.txt.n"); exit(0); while(fread(&tui,sizeof(shu),1,fp) i+; m=i; if(fp=fopen("tushu.txt&

13、quot;,"w")=NULL) printf("can not open the borrow.txt.n"); exit(0); printf("要修改幾本書(shū):"); scanf("%d",&n); getchar(); for(i=0;i<n;i+) printf("輸入要修改的圖書(shū)編號(hào)2:"); gets(booknum); for(i=0;i<m;i+) if(strcmp(booknum,tui.bianhao2)=0) break; if(i<m) pri

14、ntf("輸入修改后的nn"); printf("輸入編號(hào)1:"); gets(tui.bianhao1);printf("n"); printf("編號(hào)2:"); gets(tui.bianhao2);printf("n"); printf("類(lèi)型:"); gets(tui.leixing);printf("n"); printf("書(shū)名:"); gets(tui.shuming);printf("n"); pri

15、ntf("出版社:"); gets(tui.chubanshe);printf("n"); printf("作者:"); gets(tui.writer);printf("n"); printf("總數(shù):"); gets(numchar);printf("n"); tui.zongshu=atol(numchar); printf("剩余:"); gets(numchar);printf("n"); tui.shengyu=atol(n

16、umchar); else printf("輸入有誤n"); for(i=0;i<m;i+) fwrite(&tui,sizeof(shu),1,fp); fclose(fp);void putin() /錄入新圖書(shū) char numchar20; FILE *fp; int i=0,m,n; struct tushu tu1000; if(fp=fopen("tushu.txt","r")=NULL) printf("can not open the borrow.txt.n"); exit(0);

17、 while(fread(&tui,sizeof(shu),1,fp) i+; m=i; if(fp=fopen("tushu.txt","w")=NULL) printf("can not open the borrow.txt.n"); exit(0); for(i=0;i<m;i+) fwrite(&tui,sizeof(shu),1,fp); printf("要錄入幾本書(shū):"); scanf("%d",&n); getchar(); for(i=0;i<

18、;n;i+) printf("n"); printf("輸入編號(hào)1:"); gets(shu.bianhao1); printf("n"); printf("編號(hào)2:"); gets(shu.bianhao2); printf("n"); printf("類(lèi)型:"); gets(shu.leixing); printf("n"); printf("書(shū)名:"); gets(shu.shuming); printf("n"

19、;); printf("出版社:"); gets(shu.chubanshe); printf("n"); printf("作者:"); gets(shu.writer); printf("n"); printf("總數(shù):"); gets(numchar); printf("n"); shu.zongshu=atol(numchar); printf("剩余:"); gets(numchar); printf("n"); shu.she

20、ngyu=atol(numchar); fwrite(&shu,sizeof(shu),1,fp); fclose(fp);void print() /打印圖書(shū)信息表 FILE *fp; if(fp=fopen("tushu.txt","r")=NULL) printf("can not open the tushu.txt.n"); exit(0); puts("_"); puts("-"); puts("| 編號(hào)1 | 編號(hào)2 | 類(lèi)型 | 書(shū)名 | 作者 | 出版社 |

21、總數(shù) | 剩余 |"); fseek(fp,0L,SEEK_SET); while(fread(&shu,sizeof(shu),1,fp)=1) printf(" %-9s%-10s%-10s%-10s%-10s%-10s%-10ld%-10ldn",shu.bianhao1,shu.bianhao2,shu.leixing,shu.shuming,shu.writer,shu.chubanshe,shu.zongshu,shu.shengyu);void returned() /還書(shū) FILE *fp; int i=0,m,flag=0,j; char

22、 booknum20; struct books book11000; if(fp=fopen("borrow.txt","r")=NULL) printf("can not open the borrow.txt.n"); exit(0); while(fread(&book1i,sizeof(book),1,fp) i+; m=i; if(fp=fopen("borrow.txt","w")=NULL) printf("can not open the borrow.txt

23、.n"); exit(0); printf("輸入要還的圖書(shū)編號(hào)2:"); gets(booknum); for(j=0;j<m;j+) if(strcmp(booknum,book1j.bianhao2)=0)flag=1; break; if(flag) flag=0; printf("輸入還書(shū)月份:"); scanf("%ld",&book1i.returnedmonth); printf("輸入還書(shū)日期:"); scanf("%ld",&book1i.re

24、turnedday); getchar(); for(j=0;j<m;j+)fwrite(&book1i,sizeof(book),1,fp); elseprintf("輸入有誤n"); fclose(fp);void books() /創(chuàng)建圖書(shū)文件 FILE *fp; char numchar50,ch='y' if(fp=fopen("tushu.txt","wt")=NULL) printf("can not open the tushu.txt.n"); exit(0); wh

25、ile(ch='y'|ch='Y') printf("n"); printf("輸入編號(hào)1:"); gets(shu.bianhao1); printf("n"); printf("編號(hào)2:"); gets(shu.bianhao2); printf("n"); printf("類(lèi)型:"); gets(shu.leixing); printf("n"); printf("書(shū)名:"); gets(shu.s

26、huming); printf("n"); printf("出版社:"); gets(shu.chubanshe); printf("n"); printf("作者:"); gets(shu.writer); printf("n"); printf("總數(shù):"); gets(numchar); printf("n"); shu.zongshu=atol(numchar); printf("剩余:"); gets(numchar); pr

27、intf("n"); shu.shengyu=atol(numchar); fwrite(&shu,sizeof(shu),1,fp); do printf("have another book record(y/n)?:"); gets(numchar); ch=numchar0; while(!(ch='y'|ch='n'|ch='Y'|ch='N'); fclose(fp);void borrowed() /借書(shū) struct tushu tu1000; struct book

28、s book11000; FILE *fp,*fq; char numchar50; int i=0,j,m1,m2,n,flag=0,x;printf("借幾本書(shū):");scanf("%d",&x);getchar(); if(fq=fopen("tushu.txt","r")=NULL)printf("can not open the tushu.txt.n"); exit(0); while(fread(&tui,sizeof(shu),1,fq)i+; m1=i; if(

29、fp=fopen("borrow.txt","r")=NULL) printf("can not open the borrow.txt.n"); exit(0); while(fread(&book1i,sizeof(book),1,fp) i+; m2=i; for(i=0;i<x;i+)printf("n");printf("輸入編號(hào)2:"); gets(numchar); for(j=0;j<m1;j+)if(strcmp(numchar,tuj.bianhao2)=

30、0)n=j;flag=1; break; if(flag)printf("n");printf("輸入正確nn");flag=0;strcpy(book.bianhao2,numchar);printf("輸入編號(hào)1"); gets(book.bianhao1); printf("n"); printf("借書(shū)年份:"); gets(numchar); printf("n"); book.nian=atol(numchar); printf("借書(shū)月份:"

31、); gets(numchar); printf("n"); book.borrowmonth=atol(numchar); printf("借書(shū)日期:"); gets(numchar); printf("n"); book.borrowday=atol(numchar); printf("還書(shū)月份:"); gets(numchar); printf("n"); book.returnedmonth=atol(numchar); printf("還書(shū)日期:"); gets(n

32、umchar); printf("n"); book.returnedday=atol(numchar); printf("期限:"); gets(numchar); printf("n"); book.limittime=atol(numchar); printf("學(xué)生學(xué)號(hào):"); gets(book.student); printf("n"); if(fp=fopen("borrow.txt","w")=NULL)printf("can n

33、ot open the borrow.txt.n"); exit(0);fwrite(&book,sizeof(book),1,fp); for(j=0;j<m2;j+)fwrite(&book1j,sizeof(book),1,fp);for(j=0;j<m1;j+)if(strcmp(tun.bianhao1,tuj.bianhao1)=0)tuj.shengyu-; if(fq=fopen("tushu.txt","w")=NULL)printf("can not open the tushu.txt

34、.n"); exit(0);for(j=0;j<m1;j+)fwrite(&tuj,sizeof(shu),1,fq);elseprintf("輸入錯(cuò)誤n"); i-; fclose(fq); fclose(fp);void main() int flag=1; char a20; puts(""); puts(" "); puts(" ");puts(" ");puts(" "); puts(" "); puts(" 歡迎使用圖書(shū)信息管理系統(tǒng) "); puts(" "); puts(" "); puts(" ");puts(" ");puts(" ");puts(" 田田 ");puts(" 田田 ");

溫馨提示

  • 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)論