版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、課 程 設 計 報 告課程名稱 C語言程序設計 課題名稱 圖書借閱管理系統(tǒng) 專 業(yè) 建筑環(huán)境與設備工程 班 級 1101班 學 號 201109010112 姓 名 黃斌 指導教師 唐北平 2012年 6 月 20 日湖南工程學院課 程 設 計 任 務 書課程名稱 C語言程序設計 課 題 圖書借閱管理系統(tǒng) 專業(yè)班級 建環(huán)1101班 學生姓名 黃斌 學 號 201109010112 指導老師 唐北平 審 批 任務書下達日期 2012 年 6 月20 日任務完成日期 2012 年 7 月 03 日一、設計內(nèi)容與設計要求1設計內(nèi)容:對一個有N本圖書的圖書館,通過該系統(tǒng)實現(xiàn)對該班級學生的基本信息進行錄
2、入、顯示、修改、刪除、保存等操作的管理。(1)、本系統(tǒng)采用一個包含N個數(shù)據(jù)的結(jié)構(gòu)體數(shù)組,每個數(shù)據(jù)的結(jié)構(gòu)應當包括:書號、書名、作者、出版社、出版日期、單價、是否借出等。(2)、本系統(tǒng)顯示這樣的菜單:a. 圖書基本信息錄入b. 圖書基本信息顯示c. 圖書基本信息刪除d. 圖書基本信息修改e. 圖書基本信息查詢(按書號查詢、書名等) g. 退出系統(tǒng)(3)、執(zhí)行一個具體的功能之后,程序?qū)⒅匦嘛@示菜單。2設計要求:掌握結(jié)構(gòu)化程序設計的主體思想,以自頂向下逐步求精的方法編制程序解決一些實際的問題,為將來編寫軟件積累一些典型的案例處理經(jīng)驗。1. 設計正確,方案合理。2. 界面友好,使用方便。3. 程序精煉,
3、結(jié)構(gòu)清晰。4. 設計報告5000字以上,含程序設計說明,用戶使用說明,源程序清單及程序框圖。5. 上機演示。6. 按學號順序選課題號,并在規(guī)定的時間內(nèi)獨自完成相關課題的C源程序編寫、調(diào)整和運行。源程序及編譯生成各文件均保存在軟盤中;7. 按本任務書的要求,按附錄的要求編寫課程設計報告(Word文檔格式)。并用A4的復印紙打印并裝訂; 二、進度安排第 十九 周 星期1 8時00分11時30分星期2 14時00分18時15分 星期4 14時00分18時15分 星期6 8時00分12時15分 37 / 37文檔可自由編輯目錄1、 課程設計報告.22、 功能模塊的劃分.63、 主要功能的實現(xiàn).124、
4、 程序代碼清單.135、 程序調(diào)試詳情.196、 總結(jié).247、 附件.25八、評分表.25三、課程設計報告1.程序設計準備做系統(tǒng)前,首先,自己詳細看了C程序設計(教科書),基本自學會了文件的相關內(nèi)容,理解了相關函數(shù)的用法和作用;另,上網(wǎng)查詢了很多相關資料,還有找了很多相關的系統(tǒng),都詳細的看了一遍,加深了對C的理解以及對文件的相關內(nèi)容進一步理解。學習了C語言的內(nèi)容,圖書信息管理系統(tǒng)有助于C語言學習的進一步鞏固,在本系統(tǒng)可以增強對指針、文件、函數(shù)、結(jié)構(gòu)體變量等基本知識的進一步理解。另外圖書信息管理系統(tǒng)也是學校常用的基本系統(tǒng)之一,它有助于學校對圖書館書籍的基本管理。2.程序設計說明根據(jù)題目要求,應
5、當把圖書信息用結(jié)構(gòu)體形式輸入,再定義一個全局變量和文件指針進行整個程序的運行,然后把圖書信息送到文件中去,所以應該提供下個結(jié)構(gòu)體和文件的輸入等操作:在程序中需要實現(xiàn)圖書信息錄入,瀏覽,查詢,刪除和修改等功能的操作,所以需要建立相應的模塊來實現(xiàn):另外還需提供選擇菜單實現(xiàn)功能,在運行時達到所要求的目的。3.程序的主要功能 圖書管理在生活中運用非常廣泛,因此需要用許多的程序來對它們進行管理。圖書借閱管理系統(tǒng)是對圖書信息的基本管理,它包括:圖書信息的錄入、圖書信息的顯示、圖書信息的刪除、圖書信息的修改、圖書信息的查詢。通過編譯一個C語言函數(shù),其中包含一個主函數(shù),多個子函數(shù),主函數(shù)調(diào)用其余的子函數(shù)實現(xiàn)人
6、們能夠簡易、快捷的了解并找到自己所學要的信息的功能。1、圖書基本信息錄入:對新到圖書館的圖書的信息(編號、書名、出版社、作者、價格)進行錄入。2、圖書基本信息顯示:顯示已被錄入圖書的所有信息。3、圖書基本信息刪除:通過輸入書名,判斷此圖書是否存在,若存在, 則刪除該圖書所有信息,若不存在則提示用戶重新輸入圖書書名。4、圖書基本信息修改:通過輸入書名,判斷此圖書是否存在,若不存在則提示用戶重新輸入圖書書名,若存在,則可對圖書各項信息進行修改。 5、圖書基本信息查詢:將所有圖書信息包括編號、書名、出版社、作者、價格等顯示在屏幕上。6、退出系統(tǒng):即退出圖書借閱管理系統(tǒng)。使用模塊化編程的方法每項功能有
7、一個或多個函數(shù)組合來完成,其中菜單選項模塊對應如下: 圖書基本信息錄入= void insert() 圖書基本信息顯示= void print()圖書基本信息刪除= void del() 圖書基本信息修改= void modify() 圖書基本信息查詢= void find()這份代碼中各個變量的定義如下: num 圖書編號 name 書名 author 作者 pub 出版社 where 出版日期 count 單價四.功能模塊的劃分1.主函數(shù)模塊根據(jù)圖書館信息管理系統(tǒng)的要求,可設計一個主函數(shù),及定義多個用戶自定義函數(shù)。在主函數(shù)中定義全局變量,即是在函數(shù)外部定義的變量,其不屬于某一個函數(shù),而屬于
8、一個源程序文件,在整個程序內(nèi)可以多次被引用。1.圖書基本信息錄入模塊首先輸入圖書錄入的編號(不為0)判斷是否有重復的編號,若有,則提示用戶該書已存在,若無則繼續(xù)錄入書名、作者、出版社、單價。 2.圖書基本信息顯示模塊 當用戶選擇圖書基本信息顯示時,程序會將所有圖書信息列出。3.圖書基本信息輸入模塊在程序開始運行,創(chuàng)建文件庫時,調(diào)動此模塊,提示用戶輸入新的圖書編號(編號為0時結(jié)束輸入),然后繼續(xù)輸入圖書書名,作者,出版社,出版日期,單價等信息。結(jié)束輸入時提示用戶圖書輸入完成 4.圖書基本信息刪除模塊用戶輸入所要刪除的圖書書名,先查找該圖書是否存在,若存在,則刪除該圖書所有信息,若不存在則提示無此
9、圖書信息。 5.圖書基本信息修改模塊用戶輸入要修改的書名,判斷該書是否存在,若不存在,則提示用戶無此圖書信息;若存在,則提示用戶選擇修改項目,然后提示用戶圖書信息修改完成。6.圖書基本信息查詢模塊用戶先選擇圖書查詢方式(按書名查找或按書號查找)輸入圖書書名或書號后,查找出該圖書是否存在,若存在,則顯示該圖書信息,若不存在則提示用戶無此圖書信息。7.讀文件模塊 在運行該程序時,程序會自動檢測是否存在圖書信息,若存在,則會顯示圖書信息,若不存在,則會提示用戶創(chuàng)建文件庫,錄入圖書信息。8.文件保存模塊 當用戶對圖書信息有錄入,修改,刪除等操作時,程序會自動保存操作和新的圖書信息。 五.主要功能的實現(xiàn)
10、 程序運行流程:但每個模塊運行完即會回到主函數(shù),然后選擇其他或退出。程序代碼清單如下:#include#include#includetypedef struct char number10;/書號char name20;/書名char author20;/作者char publish50;/出版社char time20;/出版時間float price;mbook;typedef struct int count;/書的本數(shù)mbook book100;/最大可有100本書mlibrary;mlibrary library;void save()/保存圖書信息。FILE *fp;if(fp=f
11、open(library.doc,w)=NULL)printf(n不能保存圖書信息n);return;fwrite(&library.count,sizeof(int),1,fp);fwrite(library.book,sizeof(library.book0),library.count,fp);void putin() /*定義錄入函數(shù)*/ int y=1;system(cls);while(y) printf(t請輸入您的書籍的書號:);scanf(%s,library.booklibrary.count.number);printf(t請輸入書名:);scanf(%s,library
12、.);printf(t請輸入作者名:);scanf(%s,library.booklibrary.count.author);printf(t請輸入出版社:);scanf(%s,library.booklibrary.count.publish);printf(t請輸入出版時間:);scanf(%s,library.booklibrary.count.time);printf(t請輸入該書的價格:);fflush(stdin);scanf(%f,&library.booklibrary.count.price);library.count+;prin
13、tf(n是否繼續(xù)錄入(1.繼續(xù);0,退出錄入):);fflush(stdin);scanf(%d,&y);if (y!=1)y=0;break; save();void print()system(cls);printf(圖書號t圖書名t作者名t出版社t出版日期t圖書價格n);for (int i=0;ilibrary.count;i+)printf(%st%st%st%st%st%6.2fn,library.booki.number,,library.booki.author,library.booki.publish,library.booki.time
14、,library.booki.price);fflush(stdin);getchar();void search_by_name() /*定義按書名查詢*/ char s220; int flag=1;printf(n請輸入要查詢的書名: );fflush(stdin);scanf(%s,s2);printf(圖書號t圖書名t作者名t出版社t出版日期t圖書價格n);for(int i=0;ilibrary.count;i+ )if(strcmp(s2,)=0) flag=0;printf(%st%st%st%st%st%6.2fn,library.book
15、i.number,,library.booki.author,library.booki.publish,library.booki.time,library.booki.price); if (flag)printf(cannot found!);fflush(stdin);getchar();void search_by_author() /*定義按作者名查詢*/ char s320;int flag=1;printf(請輸入要查詢的書的作者: );fflush(stdin);scanf(%s,s3);printf(圖書號t圖書名t作者名t出版社t出版日
16、期t圖書價格n);for(int i=0;ilibrary.count;i+ )if(strcmp(s3,library.booki.author)=0) flag=0;printf(%st%st%st%st%st%6.2fn,library.booki.number,,library.booki.author,library.booki.publish,library.booki.time,library.booki.price); if (flag)printf(cannot found!);fflush(stdin);getchar();void de
17、l () /*定義刪除函數(shù)*/ char number10;system(cls); /*清屏*/printf(n Please type in the number of the book you want to delete:);fflush(stdin);scanf(%s,number);int i;for (i=0;ilibrary.count;i+)if(strcmp(number,library.booki.number)=0)break;if (i!=library.count)for(;ilibrary.count-1;i+)strcpy(,
18、library.booki+1.name);strcpy(library.booki.number,library.booki+1.number);strcpy(library.booki.publish,library.booki+1.publish);strcpy(library.booki.author,library.booki+1.author);strcpy(library.booki.time,library.booki+1.time);library.booki.price=library.booki+1.price;library.count-;elseprintf(n ca
19、nnot found!n);save();fflush(stdin);getchar();void modify()/修改圖書信息char number10;system(cls); /*清屏*/printf(n Please type in the number of the book you want to delete:);fflush(stdin);scanf(%s,number);int i;for (i=0;ilibrary.count;i+) if(strcmp(number,library.booki.number)=0) printf(圖書號t圖書名t作者名t出版社t出版日期
20、t圖書價格n); printf(%st%st%st%st%st%6.2fn,library.booki.number,,library.booki.author,library.booki.publish,library.booki.time,library.booki.price); break; if (i!=library.count)mbook book;printf(ntt請輸入修改后此圖書的信息n);printf(t請輸入圖書號:);scanf(%s,book.number);printf(t請輸入圖書名:);scanf(%s,
21、);printf(t請輸入作者名:);scanf(%s,book.author);printf(t請輸入出版社:);scanf(%s,book.publish);printf(t請輸入出版時間:);scanf(%s,book.time);printf(t請輸入該書的價格:);fflush(stdin);scanf(%f,&book.price);strcpy(,);strcpy(library.booki.number,book.number);strcpy(library.booki.publish,book.publish);strcp
22、y(library.booki.author,book.author);strcpy(library.booki.time,book.time);library.booki.price=book.price;save();elseprintf(n cannot found!n);fflush(stdin);getchar();void main()FILE *fp;if(fp=fopen(library.doc,r)=NULL)printf(n不能打開圖書信息庫n);fp=fopen(library.doc,w+);printf(n初始化圖書信息庫,初始化之后要重啟程序n);library.c
23、ount=0;fwrite(&library.count,sizeof(int),1,fp);fclose(fp);return;fread(&library.count,sizeof(int),1,fp);fread(library.book,sizeof(library.book0),library.count,fp);fclose(fp);int a; do system(cls);printf(nnnnntttt圖書信息管理系統(tǒng)ttttn);printf(tt*n);printf(ttt1 -圖書信息錄入n);printf(ttt2 -圖書信息顯示n); printf(ttt3 -圖書
24、信息查詢n);printf(ttt4 -圖書信息刪除n);printf(ttt5 -圖書信息修改n);printf(ttt0 -退出圖書信息系統(tǒng)n);printf(tt*n);printf(ttPlease Enter Choose: );fflush(stdin);scanf(%d,&a);switch(a)case 1:putin();break;case 2:lookup();break;case 3:search();break;case 4:del();break;case 5:update();break;case 0:printf(nn退出nn);break;default:pr
25、intf(n序號不對n); while(a!=0); save();void find() /*定義查詢函數(shù)*/ int a;system(cls); /*進行清屏*/ printf(tt*n);printf(開始查詢n); printf(ttt1-search_by_namen); printf(ttt2-search_by_writern); printf(ttt0-exitn); printf(tt*n) ; printf(tt請選擇你想要的查詢方式:);fflush(stdin); scanf(%d,&a); switch(a) case 1:search_by_name();brea
26、k; case 2:search_by_author();break;case 0:return;六.程序調(diào)試1.第一次運行程序時,庫文件不存在圖書信息,于是錄入圖書信息。圖書編號書名作者出版社出版日期單價1英語張三人民教育出版社2011.06302.主界面。3. 在主界面選擇1,開始錄入新的圖書信息。圖書編號書名作者出版社出版日期單價2數(shù)學李四高等教育出版社2011.06284. 在主界面選擇2,查詢圖書信息,按1或2分別選擇按書名或書號查詢。(以英語為例)選擇2,按書號查找,輸入書號:1,即可查詢圖書英語所有信息。選擇1,按書名查找,輸入書名:英語,即可獲得圖書英語所有信息。5.在主界面選擇3,對圖書資料進行刪除(以數(shù)學為例),在后續(xù)圖書信息顯示時無數(shù)學圖書信息。6.在主界面選擇4,對圖書進行修改(以英語為例,修改圖書作者,將作者更換為王五),在后續(xù)圖書基本信息顯示時,作者不將是張三,而是王五。7.在主界面選擇5,圖書基本信息顯示,此時圖書信息經(jīng)過刪除和修改,和初始信息不同。七.總結(jié) C語言課程設計和現(xiàn)代計算機技術的實際應用相結(jié)合,是我們在本階
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 生活用品素描題庫及答案
- 2026年河南健康管理師題庫及答案
- 2026年西安交通大學附屬小學招聘備考題庫及參考答案詳解
- 2026年西藏自治區(qū)財政廳引進急需緊缺人才15人備考題庫及答案詳解(奪冠系列)
- 馬鞍山師范高等??茖W校2026年公開招聘編外聘用人員(殘疾人專設崗位)備考題庫及完整答案詳解1套
- 2026年四川工商學院招聘專任教師崗位5人備考題庫及完整答案詳解
- 湖北國土資源職業(yè)學院2026年非事業(yè)編輔導員公開招聘備考題庫完整答案詳解
- 2026年學前舞蹈考試試題題庫及答案
- 2026年蕪湖醫(yī)院筆試試卷及答案
- 2026年重慶大學微電子與通信工程學院科研團隊勞務派遣工作人員招聘備考題庫(含答案詳解)
- 道路橋梁全壽命周期管理技術研究與成本優(yōu)化研究畢業(yè)答辯匯報
- 2024司法考試卷一《法律職業(yè)道德》真題及答案
- 2026年江西冶金職業(yè)技術學院單招職業(yè)適應性測試題庫及參考答案詳解1套
- 智能生產(chǎn)線實訓系統(tǒng)
- 靜脈治療??谱o士理論考試題含答案
- 2026年及未來5年市場數(shù)據(jù)中國汽車車身電子控制行業(yè)全景評估及投資規(guī)劃建議報告
- 水平定向鉆施工組織設計方案(頂管組織設計)
- 房屋建筑和市政基礎設施工程見證取樣和送檢工作指引(2025版)
- 2025年事業(yè)單位醫(yī)療衛(wèi)生護理結(jié)構(gòu)化面試練習題及答案
- 2023年中央金融工作會議講稿
- 2026年質(zhì)量員繼續(xù)教育題庫500道帶答案(培優(yōu))
評論
0/150
提交評論