C語言圖書管理系統(tǒng)程序設計報告_第1頁
C語言圖書管理系統(tǒng)程序設計報告_第2頁
C語言圖書管理系統(tǒng)程序設計報告_第3頁
C語言圖書管理系統(tǒng)程序設計報告_第4頁
C語言圖書管理系統(tǒng)程序設計報告_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優(yōu)質文檔-傾情為你奉上目 錄33444556.1718222323 26一、設計任務書1.目的1)復習、鞏固C語言的基礎知識,進一步加深對C語言的理解和掌握。2)課程設計為學生提供了一個既動手又動腦,獨立實踐的機會,將課本上的理論知識和實際有機的結合起來,鍛煉學生的分析解決實際問題的能力。提高學生適應實際,實踐編程的能力。3)培養(yǎng)學生在項目開發(fā)中團隊合作精神、創(chuàng)新意識及能力。2.要求:1)對系統(tǒng)進行功能模塊分析、控制模塊分析正確,符合課題要求,實現相應功能;可以加以其他功能或修飾,使程序更加完善、合理。2)系統(tǒng)設計要實用,編程簡練,可用,功能全面。3)說明書、流程圖要清楚。4)記錄設計情況

2、(備查,也為編寫設計說明書作好準備)。5)要求采用模塊化程序設計方法,及鋸齒型書寫格式,要求上機調試通過和按設計報告格式。6)設計上交內容:設計報告一份(按格式書寫);源程序一份,能編譯成可執(zhí)行文件并能正常運行。二、本組課題及本人任務課題:圖書信息管理系統(tǒng)設計圖書信息包括:登錄號、書名、作者名、分類號、出版單位、出版時間、價格等。試設計一圖書信息管理系統(tǒng),使之能提供以下功能:1.系統(tǒng)以菜單方式工作。2.圖書信息錄入功能(圖書信息用文件保存)輸入。3.圖書信息瀏覽功能輸出。4.查詢和排序功能:(至少一種查詢方式)算法。a. 按書名查。b.按作者名查詢。本人任務:負責設計和編寫圖書信息管理系統(tǒng)的修

3、改圖書信息部分。三、程序功能簡介 本系統(tǒng)是以visual C+ 6.0 環(huán)境下用C語言開發(fā)的一個圖書管理系統(tǒng)。本系統(tǒng)具有圖書信息錄入、瀏覽、刪除、修改、查找(包括按書名、作者查找)功能。其中圖書信息包括登錄號、書名、作者名、分類號、出版單位、出版時間、價格,并且對信息以文件形式儲存。另外本系統(tǒng)具備實用性的同時代碼邏輯謹慎清晰易懂,且界面美觀。四、主體內容1設計分析本系統(tǒng)共分為一個主頁面模塊(主函數部分),五個功能模塊(功能函數)分別為圖書信息錄入、圖書信息瀏覽、圖書信息查詢、圖書信息刪除、圖書信息修改。設計時應該先寫好主函數、定義好全局變量和功能函數,再對五個功能函數進行設計。在每個功能函數和

4、主函數應中加入控制條件使用戶可以隨時退出系統(tǒng),并在用戶輸入指令錯誤的時候給予提醒和退出選項。小組中的五個人分別承擔一個功能模塊進行設計。并在每個人設計完成后通過主函數進行鏈接調試正確后方為完成。2程序結構(流程圖)系統(tǒng)運行選擇功能1.信息錄入鍵入信息2.信息瀏覽返回主菜單返回主菜單3.信息查詢按書名查找按作者查找返回主菜單輸入書名輸入作者信息存在?是否輸出信息返回主菜單4.信息刪除輸入刪出信息代號輸出刪除后的信息返回主菜單5.信息修改輸入修改信息代號修改信息存在?是信息修改否返回主菜單輸出修改后的信息6.退出系統(tǒng)3各模塊的功能及程序說明A、錄入模塊:本模塊主要執(zhí)行信息錄入功能。B、瀏覽模塊:本

5、模塊主要是執(zhí)行把已有信息輸出瀏覽功能。C、查詢模塊:本模塊主要是執(zhí)行按書名和按作者名查找圖書信息的功能。D、刪除模塊:本模塊主要執(zhí)行刪除圖書信息的功能。E、修改模塊(本人設計模塊):本模塊主要執(zhí)行圖書信息修改功能。在用戶選擇該功能后。首先,系統(tǒng)會彈出已存在信息列表并讓用戶選擇所要修改的信息項目。然后,當用戶選定要修改的信息后會彈出信息目錄,用戶需按順序依次修改信息內容。最好當所有信息項目都修改完成之后,按回車鍵會在窗口上輸出修改后的內容。4. 源程序#include<stdio.h>#include<string.h>#include<stdlib.h>#i

6、nclude<conio.h>#define MAX 100struct Studentint num;/*登錄號*/char name100;/*書名*/char author100;/*作者名*/char fn100;/*分類號*/char place100;/*出版單位*/char day100;/*出版時間*/float money;/*價格*/stuMAX;main()/*主函數*/void Input();/*輸入*/void Display();/*輸出*/void Find();/*查找*/void Modify();/*刪除*/void Change();/*修改

7、*/int n; for(;)printf("n"); printf("n"); printf(" n"); printf(" 歡迎來到圖書信息管理系統(tǒng) n"); printf(" n"); printf(" n");printf(" 主菜單 n");printf(" n"); printf(" 1.圖書信息錄入 n"); printf(" n");printf(" 2.圖書信息瀏覽 n

8、"); printf(" n");printf(" 3.圖書信息查詢 n"); printf(" n");printf(" 4.圖書信息刪除 n"); printf(" n");printf(" 5.圖書信息修改 n"); printf(" n");printf(" 6.退出系統(tǒng) n"); printf(" n"); printf("nn"); printf("請輸入選擇項(1

9、-6):"); scanf("%d",&n); printf("nnnn"); if(n>0&&n<7)switch(n) case 1:Input();break; case 2:Display();break; case 3:Find();break; case 4:Modify();break; case 5:Change();break; case 6:printf("n"); printf(" n"); printf(" 謝謝使用! n")

10、; printf(" 再見! n"); printf(" n"); printf("n"); exit(0); else printf("n"); printf(" n"); printf(" 輸入錯誤! n"); printf(" 請退出! n"); printf(" n"); printf("n"); break;void Find()/*查找*/ FILE *fp;int i;int choose,t;char

11、 ans100; doprintf("1.按書名查找n");printf("2.按作者名查找n");printf("返回主菜單(其他數字)n");scanf("%d",&choose);if(choose=1)printf("輸入所查書名:n");scanf("%s",ans);t=-1;if(choose=1)for(i=0;i<MAX;i+) if(strcmp(ans,)=0) t=i; fp=fopen("student&qu

12、ot;,"rb");for(i=0;fread(&stui,sizeof(struct Student),1,fp)=1;i+)printf("%d %s %s %s %s %s %fn",stut.num,,stut.author,stut.fn,stut.place,stut.day,stut.money);if(t=-1) printf("不存在該信息n");else if(choose=2)printf("輸入所查作者名:n");scanf("%s",ans);

13、t=-1;if(choose=2)for(i=0;i<MAX;i+)if(strcmp(ans,stui.author)=0) t=i; fp=fopen("student","rb");for(i=0;fread(&stui,sizeof(struct Student),1,fp)=1;i+) printf("%d %s %s %s %s %s %fn",stut.num,,stut.author,stut.fn,stut.place,stut.day,stut.money);if(t=-1) pri

14、ntf("不存在該信息n");else return;while(1);void Display()/*輸出*/FILE *fp; int i; fp=fopen("student","rb"); printf("n"); printf(" 圖書列表n"); printf("-n"); printf("登錄號 書名 作者名 分類號 出版單位 出版時間 價格n"); printf("-n"); for(i=0;fread(&stu

15、i,sizeof(struct Student),1,fp)=1;i+)printf("%6d %8s %8s %8s %8s %8s %8.2fn",stui.num,,stui.author,stui.fn,stui.place,stui.day,stui.money);fclose(fp);void Input()/*輸入*/FILE *fp;int n;fp=fopen("student","ab+"); for(n=0;n<MAX;n+)printf("n=%d 輸入序號n(當輸入n=-1時

16、,返回),n=",n+); scanf("%d",&n);if(n=-1) fclose(fp);return;elseprintf("請輸入登錄號 書名 作者名 分類號 出版單位 出版時間 價格n");scanf("%d%s%s%s%s%s%f",&stun.num,,stun.author,stun.fn,stun.place,stun.day,&stun.money); fwrite(&stun,sizeof(struct Student),1,fp);fclose(f

17、p);void Modify()/*刪除*/FILE *fp;int i,flag,n,s,j; fp=fopen("student","rb+"); rewind(fp); printf(" 圖書列表n"); printf("-n"); printf("登錄號 書名 作者名 分類號 出版單位 出版時間 價格n"); printf("-n"); for(i=0;fread(&stui,sizeof(struct Student),1,fp)=1;i+) printf(

18、"%6d %8s %8s %8s %8s %8s %8.2fn",stui.num,,stui.author,stui.fn,stui.place,stui.day,stui.money); printf("n"); n=i;printf("輸入待刪除圖書號:n");scanf("%d",&s);for(i=0,flag=1;flag&&i<n;i+)if(s=stui.num)for(j=i;j<n-1;j+)stuj.num=stuj+1.num; strc

19、py(,stuj+1.name); strcpy(stuj.author,stuj+1.author); strcpy(stuj.fn,stuj+1.fn); strcpy(stuj.place,stuj+1.place);strcpy(stuj.day,stuj+1.day);stuj.money=stuj+1.money;flag=0;if(!flag)n=n-1;else printf("沒有此號n");fp=fopen("student","wb");for(i=0;i<n;i+)fwrite(&

20、;stui,sizeof(struct Student),1,fp); fclose(fp);fp=fopen("student","r"); printf(" 圖書列表n"); printf("-n"); printf("登錄號 書名 作者名 分類號 出版單位 出版時間 價格n"); printf("-n"); for(i=0;i<n;i+) fread(&stui,sizeof(struct Student),1,fp); printf("%6d

21、%8s %8s %8s %8s %8s %8.2fn",stui.num,,stui.author,stui.fn,stui.place,stui.day,stui.money); printf("n"); fclose(fp);void Change()/*修改*/ FILE *fp; int i,num,n; int flag=0; fp=fopen("student","rb"); printf("n"); printf(" 圖書列表n"); printf(&q

22、uot;-n"); printf("登錄號 書名 作者名 分類號 出版單位 出版時間 價格n"); printf("-n"); for(i=0;fread(&stui,sizeof(struct Student),1,fp)=1;i+)printf("%6d %8s %8s %8s %8s %8s %8.2fn",stui.num,,stui.author,stui.fn,stui.place,stui.day,stui.money);fclose(fp); printf("請輸入要修改的

23、圖書號:"); scanf("%d",&num); for(i=0;i<=MAX;i+) if(stui.num=num) printf(" 圖書列表n"); printf("-n"); printf("登錄號 書名 作者名 分類號 出版單位 出版時間 價格n"); printf("-n"); printf("%6d %8s %8s %8s %8s %8s %8.2fn",stui.num,,stui.author,stui.fn,s

24、tui.place,stui.day,stui.money); printf("-nn"); n=i; flag=1; break; if(flag=0)printf("n"); printf(" 輸入錯誤!n"); printf(" 請返回!n"); printf("n"); return; printf("nnn"); fp=fopen("student","rb+"); fseek(fp,n*sizeof(struct Stude

25、nt),0); printf("登錄號 書名 作者名 分類號 出版單位 出版時間 價格n"); scanf("%d%s%s%s%s%s%f",&stun.num,,stun.author,stun.fn,stun.place,stun.day,&stun.money); fwrite(&stui,sizeof(struct Student),1,fp); fclose(fp); fp=fopen("student","rb"); printf(" 圖書列表n&qu

26、ot;); printf("-n"); printf("登錄號 書名 作者名 分類號 出版單位 出版時間 價格n"); printf("-n"); for(i=0;fread(&stui,sizeof(struct Student),1,fp)=1;i+) printf("%6d %8s %8s %8s %8s %8s %8.2fn",stui.num,,stui.author,stui.fn,stui.place,stui.day,stui.money); printf("-n

27、n"); fclose(fp);5操作方法(流程)第一步:雙擊打包好的.exe程序,打開程序。第二步:根據窗口提示內容作出選擇。第三步:根據彈出的二級菜單作出選擇。第四步:根據所選內容進行相應的操作。第五步:操作完畢,根據提示返回主菜單會直接退出該系統(tǒng)。6試驗結果A、圖書信息錄入:數據輸入:數據輸出:B、圖書信息瀏覽輸入數據:數據輸出:C、圖書信息查詢輸入數據:輸出數據:D、圖書信息刪除:輸入數據:輸出數據:E、圖書信息修改輸入數據:輸出數據:F、系統(tǒng)退出輸入數據:數據輸出:7設計體會。在這一周的程序設計實習當中并不是一帆風順的。剛開始到電腦面前聽完老師講了一大堆,我根本就不知道要做

28、什么,用什么做。 我并沒有被眼前的一點小困難所擊倒,我相信困難總是有辦法解決的。于是開始的兩天我就在網上找各種相關的文章、視頻。剛開始我就只是看著網上的東西照貓畫虎的做一些小程序,慢慢的通過這些模仿我也漸漸的懂了一些東西。通過兩天的原始知識積累后,我開始嘗試著按照自己的想法做了一些小系統(tǒng)。起初會出現很多問題,不是這兒少了就是那錯了。在這樣那樣的錯誤中我明白編程是一件很嚴謹的事,容不得半點錯誤,一步走錯,全盤皆輸!在出現錯誤時我通常是上網搜索相關的答案,聽聽大家的想法,往往一個問題的解決方法是多種多樣的,各自有其精妙之處。有的解決方法淺顯易懂,但是易出現漏洞;有的復雜難懂,但是邏輯緊密,無絲毫破

29、綻。編程是一門邏輯的游戲,一但了解其游戲規(guī)則,便發(fā)現樂趣無窮。有時候自己有很多的想法,但由于自己的水平有限不能很好地實現,每到那時候我就有一種強烈的愿望想要把問題解決,做出自己想的東西。一但解決了問題,那種快樂非親身經歷者不能感受! 說實話,在網上雖然信息很多,但是會讓人暈了頭腦,做起來也不是那么容易的。也許我的程序比起別人的來說可能會有些許不足,但是那個個代碼都是出自我手,每一寸屏幕都是我自己的想法,都是我自己的。我覺得不成功沒關系,重要的是要有自己努力成功的心,而要成功光是抄襲別人的是不行的,得拿出自己的東西,自己的創(chuàng)新,要敢于嘗試! 王杰 2013.7.9七、附錄1.流程圖主頁面:信息錄

30、入:信息瀏覽:信息查詢:信息刪除:信息修改:系統(tǒng)退出:2.主要過程列表A、程序開頭定義:#include<stdio.h>:#include是編譯預處理指令,就是在編譯前將stdio.h這個文件里的函數都添加到你寫的cpp文件中。#include<string.h>:在編譯前C語言里面關于字符數組的函數定義的頭文件,就是在編譯前將stdio.h這個文件里的函數都添加到你寫的cpp文件中。#include<stdlib.h>:在編譯前將stdlib.h這個文件里的函數都添加到你寫的cpp文件中。#include<conio.h>:在編譯前將coni

31、o.h這個文件里的函數都添加到你寫的cpp文件中。#define MAX 100:#define 就是在編譯器編譯之前對代碼進行字符串替換,即是把MAX換成100.B、struct Student:結構體,定義的結構體是整個程序的共用體,即是該結構體可在每個模塊中不從新定義就使用。C、main()主函數模塊主要變量、函數:void Input():自定義輸入函數。void Display():自定義輸出函數。void Find():自定義查找函數。void Modify():自定義刪除函數。void Change():自定義修改函數。for():循環(huán)函數。switch():選擇函數,判斷用戶輸入的數字進行功能選擇。exit():退出循環(huán)函數。D、void Input()輸入模塊主要變量、函數:FILE *fp:聲明fp是指針,用來指向FILE類型的對象。fopen(): fopen函數用來打開一個文件。printf():輸出函數,以程序員規(guī)定數據類型把數據輸出到窗口上。scanf():輸入函數,以程序員規(guī)定的的數據類型輸入數據。if()else:條件判斷函數。fclose():關閉文件的函數,功能為關閉打開的文件,以防止數據丟失。fwrite():向文件寫入一個數據塊。sizeof():以字節(jié)形式給出了其操作數的存儲大小。for():循環(huán)函數。E、voi

溫馨提示

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

評論

0/150

提交評論