版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
C語言課程設(shè)計圖書管理系統(tǒng)BooksManagementSystem學(xué)生姓名張朝柱學(xué)院名稱徐州工程學(xué)院學(xué)號20230566140班級13計轉(zhuǎn)本專業(yè)名稱計算機科學(xué)與技術(shù)指導(dǎo)教師李子龍2023年5月10日一、需求分析為了滿足圖書管理的要求,通過計算機技術(shù)給圖書管理人員和讀者借、還書帶來便利。使用c語言編寫了圖書管理系統(tǒng)。本系統(tǒng)主要實現(xiàn)圖書信息管理的功能,通過此系統(tǒng)可對圖書館庫存圖書信息進行管理和維護操作。實現(xiàn)了圖書館內(nèi)管理的一般功能,包括查詢、借書、還書、添加、刪除、修改圖書信息等。所設(shè)計的系統(tǒng)以菜單方式工作,為用戶提供清晰的使用提示,依據(jù)用戶的選擇來進行各種處理,并且在此過程中能夠盡可能的兼容用戶使用過程中可能出現(xiàn)的異常情況。圖書信息包括編號、書名、作者、數(shù)量、在庫狀態(tài)等。圖書信息的錄入和顯示要求有一定的標(biāo)準(zhǔn)格式,錄入的圖書信息用文件形式保存,并可以對其進行瀏覽、查詢、借閱、還書等根本操作。整個程序?qū)崿F(xiàn)順序表操作,對圖書信息的操作逐個地進行,一個圖書信息的更改不應(yīng)影響其他的圖書記錄。二、算法設(shè)計:1.設(shè)計思想:整個系統(tǒng)制造的而過程中,涉及了較多C語言知識點,對于不同的數(shù)據(jù)類型、程序控制結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)作以分析和總結(jié),并結(jié)合這個課題進行綜合的應(yīng)用,在一定程度上做到了對所學(xué)知識融會貫穿。進一步加深、穩(wěn)固了所學(xué)的專業(yè)的根本理論知識,培養(yǎng)了綜合分析問題、解決問題的能力。在設(shè)計程序時,實現(xiàn)了程序的模塊化、結(jié)構(gòu)化。在主函數(shù)中調(diào)用各種子函數(shù),操作界面簡單,易操作。2,設(shè)計表示:(1)、整個系統(tǒng)除了主函數(shù)外,另外還有各種功能子函數(shù),利用無限次循環(huán)語句while()和選擇語句swithch()實現(xiàn)各個子函數(shù)的調(diào)用,系統(tǒng)根據(jù)輸入的數(shù)字選項來調(diào)用相應(yīng)的函數(shù),以實現(xiàn)相應(yīng)的功能。主要實現(xiàn)了圖書的錄入、存儲、查詢、借書、還書、顯示庫存等功能。(2)、voidBook_Entering(structSqList&SL);這是一個錄入圖書信息的函數(shù),它主要實現(xiàn)了順序表的創(chuàng)立,并且在創(chuàng)立過程中從文件讀取信息到順序表中,以用于后面其他函數(shù)的操作。它引用了一個順序表SL。其他函數(shù)調(diào)用時只需傳入順序表頭即可。(3)、intmain(void);這五個函數(shù)時整個圖書管理系統(tǒng)的全部菜單函數(shù),Book_Entering();為系統(tǒng)主界面,進入時可選擇進入程序和退出程序。menu1();為進入程序時顯示的功能菜單,在此菜單可以選擇錄入、保存圖書信息,也可選擇進入其他子系統(tǒng)。Book_Inquire();此菜單為進入圖書管理系統(tǒng)的菜單,在此可以選擇添加、刪除、修改圖書等操作。cxmenu();為查詢系統(tǒng)的菜單,在此可以選擇按書名、編號、作者等方式進行查詢圖書。jhmenu();為借書還書的子菜單,在此可以選擇借書還書操作。操作完成后按提示信息進行文件的保存操作。(4)、voidBook_Inquire(structSqList&SL);這個函數(shù)為順序表的輸出函數(shù),把順序表的頭傳給函數(shù)后,可輸出整個順序表的所有信息。、(5)、voidBook_Borrow(structSqList&SL);這個函數(shù)為保存信息到文件的函數(shù),使用時將順序表的頭傳給函數(shù),函數(shù)可將整個順序表的所有信息存入到磁盤文件中。并覆蓋掉源文件,以便以后調(diào)用。(9)、voidBook_Borrow(structSqList&SL)、voidBook_Return(structSqList&SL);這兩個函數(shù)是借書還書的函數(shù),在借還后系統(tǒng)會修改圖書的在庫信息。調(diào)用時將順序表參數(shù)帶回到主函數(shù)。并會出提示信息讓用戶返回菜單保存信息。3.實現(xiàn)注釋:這個實用的小型圖書管理程序程序以順序表操作完成,并實現(xiàn)文件信息的錄入和保存等功能,所有信息以磁盤文件方式保存,方便用戶使用。實現(xiàn)了圖書管理的根本功能,包括了圖書的錄入、存儲、查詢、添加、刪除、修改、借書、還書等功能。查詢時可按書名、編號、作者等方式查詢,找到后輸出這本書的所有信息。在添加圖書信息后,還增加了順序表排序操作,并輸出整個順序表,方便用戶檢查信息??刹樵儓D書的在庫狀態(tài),方便用戶進行借書、還書操作。在借書還書成功后圖書的在庫狀態(tài)改變,并有提示信息讓用戶保存信息。系統(tǒng)中主要的數(shù)據(jù)結(jié)構(gòu)就是圖書的信息,包含編號、書名、作者、出版社、出版時間、價格、在庫狀態(tài)等,在處理過程中各項可以作為一本圖書的不同屬性來進行處理。4.結(jié)構(gòu)體系設(shè)計:圖書管理系統(tǒng)主界面流程圖錄入所有書籍信息錄入所有書籍信息進入圖書管理系統(tǒng)顯示菜單進入圖書查詢系統(tǒng)進入圖書借還系統(tǒng)保存所有圖書信息返回上級菜單圖書管系統(tǒng)主界面開始圖書管理系統(tǒng)流程圖顯示所有圖書信息顯示所有圖書信息按編號查詢圖書按書名查詢圖書按作者查詢圖書保存所查詢圖書的信息返回上級菜單圖書查詢系統(tǒng)主界面圖書查詢系統(tǒng)主界面流程圖圖書借還系統(tǒng)主界面流程圖借書借書還書返回上級菜單圖書借還系統(tǒng)5.設(shè)計過程中的想法與程序中的缺乏:作為學(xué)期末的一項課程,主要靠編出來的系統(tǒng)來考察我們所掌握的根本理論知識及實際解決問題的能力,通過這次c語言課程設(shè)計,很大程度上鍛煉了我們寫程序的動手能力和自主思考能力。利用所學(xué)知識,開發(fā)小型實用的應(yīng)用系統(tǒng),掌握運用C語言編寫調(diào)試應(yīng)用系統(tǒng)程序,對于我們獨立開發(fā)應(yīng)用系統(tǒng)并進行數(shù)據(jù)處理的綜合能力是一個很大的提高。總的來說這個程序大致實現(xiàn)了題目的要求,但是這套程序仍然存在著很多的問題與缺乏。比方,沒有對界面進行操作,只是實現(xiàn)了簡單的功能,程序?qū)懙挠悬c繁瑣,不是那么井然有序,條理清晰,程序注釋也不是很完善,對信息處理功能還有些缺乏之處,提示信息不明確,對于數(shù)據(jù)的錯誤輸入處理不是很完善等等。這個系統(tǒng)主要是我自己編寫的,同時也得到了老師和同學(xué)的一些幫助。我在做系統(tǒng)的過程中也遇到了很多問題,有的是知識缺乏,有的是考慮不夠周全,。事實證明,只靠自己的知識面還是很窄,獨立處理問題能力不是很強,以后還要加強對c語言的學(xué)習(xí)。我認(rèn)為對于C語言編寫的程序來說,使用方法大致都是一樣的,所以如果要改良的話,就是要改良一些算法,盡量把界面編寫清楚,提示信息全面,方便易用。三、用戶手冊:下面,我大致介紹一下我的系統(tǒng)的主要功能和考前須知:當(dāng)運行此程序時,首先進入系統(tǒng)主界面,然后可以選擇1.進入系統(tǒng),2.退出系統(tǒng)。選擇1后進入系統(tǒng),然后顯示功能菜單按數(shù)字鍵選擇所需效勞。功能菜單中,1錄入所有書籍信息,2進入圖書管理系統(tǒng),3進入圖書查詢系統(tǒng),4進入圖書借還系統(tǒng),5保存所有圖書信息,6顯示菜單,7返回上級菜單。當(dāng)出現(xiàn)"請選擇"時,需要輸入選項前的數(shù)字,輸完之后按回車〔下同〕。首次運行系統(tǒng)需要先選擇1錄入庫存書籍信息,然后再選擇其他操作。中選擇2時會進入圖書管理系統(tǒng),在這里可以選擇添加、修改信息等操作,需要注意的是每次執(zhí)行完添加、修改等操作后需要手動選擇保存圖書信息的操作,不然磁盤文件信息不會改變〔下同〕。返回上級菜單進入圖書查詢系統(tǒng)、圖書借還系統(tǒng)的操作和管理系統(tǒng)的差不多,用戶可自己嘗試使用,所有信息最后均以磁盤文件方式保存,而且格式固定,在輸入和輸出均按這種格式,用戶在使用時必須要按這種格式輸入,否那么會出現(xiàn)文件信息錯誤。四、調(diào)試與測試:上機操作〔截圖〕系統(tǒng)主界面〔選擇數(shù)字進入相應(yīng)的選項〕選擇1進入系統(tǒng),然后出現(xiàn)圖書初始化菜單;選擇4進入查詢系統(tǒng),然后出現(xiàn)查詢庫存信息;選擇2輸入圖書編號,借書功能并且顯示庫存;選擇3輸入圖書編號,還書功能并且顯示庫存;選擇4進入查詢系統(tǒng),然后出現(xiàn)查詢庫存信息;五、小節(jié):在這一個星期的實踐中,通過編寫這個圖書管理系統(tǒng),我體會到了c語言學(xué)習(xí)的實用性。將理論和實踐結(jié)合在一起,用先進的計算機工具方便人們的生活。C語言程序的編寫首先要從大局考慮,把自己編寫整個程序的思想都寫在草稿上,這樣有助于自己編寫程序,在編寫時要完善注釋,方便其他人理解程序。編寫的程序從理論上來說并沒有錯,但以上機就問題不斷。甚至有些課本上的知識照搬不變,也不能得到正確的結(jié)果。有時一個程序改了一遍又一遍,但就是不能成功,編程顯得枯燥乏味,看似簡單的程序題,在調(diào)試時卻屢屢出錯。經(jīng)反復(fù)的修改后,結(jié)果正確了,這時所有的乏味都顯得那么無力,一切都是值得的。我認(rèn)為,開發(fā)一套系統(tǒng),最重要的是細(xì)心,并且思考要全面,結(jié)合實際,充分考慮到客戶的需求和現(xiàn)實意義。不管什么系統(tǒng),只用運用到實際應(yīng)用中,才具有先現(xiàn)實意義。所以c語言程序的實用性很強,我們以后還要更加努力認(rèn)真地學(xué)習(xí)編程語言。參考文獻:[1]黃明等編著《C語言課程設(shè)計》北京:電子工業(yè)出版社[2]郭翠英編著《C語言課程設(shè)計案例精編》北京:中國水利水電出版社[3]寧正元《數(shù)據(jù)結(jié)構(gòu)〔c語言〕》南京:東南大學(xué)出版社。2000年6月第1版[4]嚴(yán)蔚敏等《數(shù)據(jù)結(jié)構(gòu)〔c語言版〕》北京:清華大學(xué)出版社,1997年4月第1版[5]譚浩強編著《C程序設(shè)計題解與上機指導(dǎo)(第3版)》北京:清華大學(xué)出版社[6]譚浩強編著《C程序設(shè)計(第3版)》北京:清華大學(xué)出版社附錄:源程序代碼/***任務(wù):C語言課程設(shè)計*班級:13計轉(zhuǎn)本*學(xué)號:20230566140*姓名:張朝柱*實驗時間:2023-3-22*本程序的功能是:圖書管理系統(tǒng)*/#include<stdio.h>#include<iostream.h>#include<malloc.h>#defineBOOKNUMBER5#defineLIST_SIZE10//順序表的初始大小#defineADD_SIZE10//順序表的增量structSqList{ structBOOK_SYSTEM*elem;//這種類型的起始地址 intlength;//順序表中元素的個數(shù) intlistsize;//順序表的分配的空間大小};//采用結(jié)構(gòu)體定義每本圖書的編號,書的名稱,書的作者,書的數(shù)量等信息。structBOOK_SYSTEM{ intbook_id;//編號 charbook_name[50];//名字 charbook_author[20];//作者 intbook_number;//數(shù)量};voidGUI_human_computer(void)//人機交互界面{ cout<<"/**********************************************************************/"<<endl; cout<<"/**********************************************************************/"<<endl; cout<<"\t\t\t圖書管理系統(tǒng)"<<endl; cout<<endl; cout<<"\t\t輸入數(shù)字1:\t初始化5本書的信息并保存到書庫中\(zhòng)t"<<endl; cout<<"\t\t輸入數(shù)字2:\t借閱圖書;并且顯示圖書庫存的信息\t"<<endl; cout<<"\t\t輸入數(shù)字3:\t返還圖書;并且顯示還書后庫存的信息\t"<<endl; cout<<"\t\t輸入數(shù)字4:\t查閱圖書庫存信息\t"<<endl; cout<<"/*********************************************************************************/"<<endl; cout<<"/*********************************************************************************/"<<endl;}voidBook_Entering(structSqList&SL)//SL.elem->book_nameSL是順序表的變量名;SL.elem是圖書結(jié)構(gòu)的順序表頭變量名{ //intnumber; inti=0; cout<<"錄入5本圖書信息"<<endl; for(i=0;i<BOOKNUMBER;i++) { cout<<"請錄入第"<<i+1<<"本書的信息(格式:編號書名作者數(shù)量):";//因為數(shù)組的下標(biāo)是從0開始 cin>>SL.elem[i].book_id;//cin>>SL.elem->book_id;//這樣出現(xiàn)的錯誤是因為一直給第一個elem元素復(fù)制 cin>>SL.elem[i].book_name; cin>>SL.elem[i].book_author; cin>>SL.elem[i].book_number; SL.length++;//書庫中有幾種書 } cout<<"五本圖書信心錄入完畢!"<<endl;}voidBook_Borrow(structSqList&SL)//借書我個人認(rèn)為就算借完,即庫存為空的時候,這個書的編號還是應(yīng)該存在的{ inti=0,ID=0; cout<<"請輸入你所借書的編號:"; cin>>ID; for(i=0;i<SL.length;i++) { if((SL.elem[i].book_id==ID)&&(SL.elem[i].book_number>=1))//如果找到了所借書的編號 { cout<<"成功提示:找到圖書!"<<endl; cout<<"圖書信息為:"; cout<<SL.elem[i].book_id<<""<<SL.elem[i].book_name<<""<<SL.elem[i].book_author <<""<<SL.elem[i].book_number<<endl; SL.elem[i].book_number--; cout<<"成功提示:借書成功!"<<endl; cout<<"圖書信息為:"; cout<<SL.elem[i].book_id<<""<<SL.elem[i].book_name<<""<<SL.elem[i].book_author <<""<<SL.elem[i].book_number<<endl; return; } } cout<<"錯誤提示:沒有你所要借的圖書!"<<endl;}voidBook_Return(structSqList&SL){ inti=0,ID=0; cout<<"請輸入你所還書的編號:"; cin>>ID; for(i=0;i<SL.length;i++) { if(SL.elem[i].book_id==ID)//如果是該書庫的圖書 { cout<<"成功提示:是本書庫的書籍!"<<endl; cout<<"圖書信息為:"; cout<<SL.elem[i].book_id<<""<<SL.elem[i].book_name<<""<<SL.elem[i].book_author <<""<<SL.elem[i].book_number<<endl; SL.elem[i].book_number++; cout<<"成功提示:還書成功!"<<endl; cout<<"圖書信息為:"; cout<<SL.elem[i].book_id<<""<<SL.elem[i].book_name<<""<<SL.elem[i].book_author <<""<<SL.elem[i].book_number<<endl; return; } } cout<<"錯誤提示:你所還書籍不在本書庫中!"<<endl;}voidBook_Inquire(structSqList&SL){ inti,ID; cout<<"請輸入你要查詢圖書的庫存(圖書的編號):"; cin>>ID; for(i=0;i<SL.length;i++) { if(SL.elem[i].book_id==ID)//如果是該書庫的圖書 { cout<<"成功提示:是本書庫的書籍!"<<endl; //cout<<"圖書信息為:"; //cout<<SL.elem[i].book_id<<""<<SL.elem[i].book_name<<""<<SL.elem[i].book_author // <<""<<SL.elem[i].book_number<<endl; cout<<"該書的庫存為
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 護工和病人協(xié)議合同書(2篇)
- 2025年孝感b2貨運資格證多少道題
- 2024年物業(yè)電梯緊急救援協(xié)議3篇
- 2025年臨沂貨運資格證考試題庫
- 2024年度精準(zhǔn)崗位聘任合同范本2篇
- 2025年延邊下載貨運從業(yè)資格證模擬考試
- 2025年西寧貨運從業(yè)資格證網(wǎng)上考試
- 2025年運城貨運從業(yè)資格證網(wǎng)上考試答案
- 2025年深圳貨運從業(yè)資格證考試模擬
- 《輪胎生產(chǎn)流程》課件
- 競爭對手分析管理方案了解競爭對手動態(tài)的手段
- 中職《在實踐中學(xué)禮儀外研社第二版》課件 項目一 任務(wù)一
- 東北抗聯(lián)精神 (第二稿)
- 刺梨產(chǎn)品計劃書
- 2024《HSK標(biāo)準(zhǔn)教程3》第3課 桌子上放著很多飲料 教案
- 【《廣東省服裝業(yè)出口貿(mào)易探究》9900字(論文)】
- 理解生活滿意度的標(biāo)準(zhǔn)和評估方法
- 中醫(yī)五則診斷法在臨床中的應(yīng)用與誤區(qū)
- 《初中語文教學(xué)中的跨學(xué)科融合與創(chuàng)新實踐》
- 《金子美玲兒童詩》課件
- 《立體主義》課件
評論
0/150
提交評論