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

下載本文檔

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

文檔簡介

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

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

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

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

5、putin() /錄入新圖書void print() /打印圖書信息表void returned() /還書void books() /創(chuàng)建圖書文件void borrowed() /借書其中每一個函數(shù)都用到了兩個結(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)成果(對自己的最后的實(shí)驗(yàn)成果進(jìn)行概括)經(jīng)過長達(dá)9天的編寫,修改,運(yùn)行,最后完成時,預(yù)想的功能都能比較好的實(shí)現(xiàn)。下面是各個功能運(yùn)行的界面:進(jìn)入界面 :功能選擇界面 :錄入新圖書界面 :還有各個功能各種界面,這里就不一一列出了。五、 實(shí)訓(xùn)心得與體會此次系統(tǒng)編程,我感受很多,從開始編程時的迷茫,到修改時的煩躁,再到運(yùn)行時的無奈,最后是成功時無法表達(dá)的喜悅和興奮。每一步都是自己努力走過來的,雖然這個過程比較辛苦,但是現(xiàn)在回過頭

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

8、,充分感受到了它的魅力,同時也明白了自身在這方面工作的優(yōu)勢和不足。六、 附錄#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() /刪除圖書信息 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("要刪除幾本書:"); scanf("%d",&n); getchar(); for(i=0;i<n;i+) printf("輸入圖書編號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() /修改圖書信息 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("要修改幾本書:"); scanf("%d",&n); getchar(); for(i=0;i<n;i+) printf("輸入要修改的圖書編號2:"); gets(booknum); for(i=0;i<m;i+) if(strcmp(booknum,tui.bianhao2)=0) break; if(i<m) pri

14、ntf("輸入修改后的nn"); printf("輸入編號1:"); gets(tui.bianhao1);printf("n"); printf("編號2:"); gets(tui.bianhao2);printf("n"); printf("類型:"); gets(tui.leixing);printf("n"); printf("書名:"); 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() /錄入新圖書 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("要錄入幾本書:"); scanf("%d",&n); getchar(); for(i=0;i<

18、;n;i+) printf("n"); printf("輸入編號1:"); gets(shu.bianhao1); printf("n"); printf("編號2:"); gets(shu.bianhao2); printf("n"); printf("類型:"); gets(shu.leixing); printf("n"); printf("書名:"); 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() /打印圖書信息表 FILE *fp; if(fp=fopen("tushu.txt","r")=NULL) printf("can not open the tushu.txt.n"); exit(0); puts("_"); puts("-"); puts("| 編號1 | 編號2 | 類型 | 書名 | 作者 | 出版社 |

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() /還書 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("輸入要還的圖書編號2:"); gets(booknum); for(j=0;j<m;j+) if(strcmp(booknum,book1j.bianhao2)=0)flag=1; break; if(flag) flag=0; printf("輸入還書月份:"); scanf("%ld",&book1i.returnedmonth); printf("輸入還書日期:"); 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)建圖書文件 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("輸入編號1:"); gets(shu.bianhao1); printf("n"); printf("編號2:"); gets(shu.bianhao2); printf("n"); printf("類型:"); gets(shu.leixing); printf("n"); printf("書名:"); 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() /借書 struct tushu tu1000; struct book

28、s book11000; FILE *fp,*fq; char numchar50; int i=0,j,m1,m2,n,flag=0,x;printf("借幾本書:");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("輸入編號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("輸入編號1"); gets(book.bianhao1); printf("n"); printf("借書年份:"); gets(numchar); printf("n"); book.nian=atol(numchar); printf("借書月份:"

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

32、umchar); printf("n"); book.returnedday=atol(numchar); printf("期限:"); gets(numchar); printf("n"); book.limittime=atol(numchar); printf("學(xué)生學(xué)號:"); 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("輸入錯誤n"); i-; fclose(fq); fclose(fp);void main() int flag=1; char a20; puts(""); puts(" "); puts(" ");puts(" ");puts(" "); puts(" "); puts(" 歡迎使用圖書信息管理系統(tǒng) "); puts(" "); puts(" "); puts(" ");puts(" ");puts(" ");puts(" 田田 ");puts(" 田田 ");

溫馨提示

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

評論

0/150

提交評論