C圖借閱管理研究_第1頁
C圖借閱管理研究_第2頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、沈陽工程學(xué)院課程設(shè)計設(shè)計題目:圖書借閱管理系統(tǒng)院系信息學(xué)院班級 軟本 132學(xué)生姓名學(xué)號指導(dǎo)教師姜柳、呂海華職稱副教授、講師起止日期:2014 年 7 月 7 日起至 2014 年 7 月 11 日止沈陽工程學(xué)院課程設(shè)計任務(wù)書課程設(shè)計題目:圖書借閱管理系統(tǒng)院系信息學(xué)院班級軟本 132學(xué)生姓名學(xué)號指導(dǎo)教師姜柳、呂海華職稱講師、講師課程設(shè)計進(jìn)行地點:實訓(xùn) F 座任務(wù)下達(dá)時間: 2014 年 7 月 2 日起止日期:2014 年 7 月 7 日起至 2014 年 7 月 11 日止教研室主任張欣 2014 年 7 月 3 日批準(zhǔn)18一、課程設(shè)計的原始資料及依據(jù)在數(shù)字化、網(wǎng)絡(luò)化的今天,社會信息量與日俱

2、增,圖書作為信息存儲的主要媒體之一, 數(shù)量,規(guī)模比以往任何時候都大的多, 不論個人還是圖書管理部門都需要使用方便而有效的 方式來管理自己的書籍。在計算機日益普及的今天,對個人而言若采用一套行之有效的圖書 借閱管理系統(tǒng)來管理自己的書籍,會方便很多,這也充分應(yīng)用硬件資源;對圖書管理部門而 言,以前單一的手工檢索已不能滿足人們的需求,為了便于圖書資料的管理更為需要有效的 圖書管理軟件。查閱有關(guān)程序設(shè)計的案例資料,進(jìn)一步理解程序設(shè)計模塊化的思想,并利用此思想,根 據(jù)對程序設(shè)計學(xué)習(xí)編寫一個簡單的圖書借閱管理系統(tǒng)。通過本設(shè)計可以加深理解利用程序設(shè) 計思想開發(fā)一個系統(tǒng)的整個流程,提高分析問題、解決問題和實際

3、動手的能力。二、課程設(shè)計主要內(nèi)容及要求1認(rèn)真閱讀資料,掌握程序設(shè)計模塊化的思想。2要求在設(shè)計的過程中,建立清晰的層次結(jié)構(gòu)。3畫出主要的功能結(jié)構(gòu)圖和主要模塊的流程圖。4新進(jìn)圖書基本信息的輸入。5圖書基本信息的查詢。6對撤消圖書信息的刪除。7為借書人辦理注冊。8辦理借書手續(xù)(非注冊會員不能借書)。9辦理還書手續(xù)10要求操作簡單,用戶界面友好。11運行程序,檢查結(jié)果是否和理論值一致。12環(huán)境使用Turbo C環(huán)境。三、對課程設(shè)計說明書撰寫內(nèi)容、格式、字?jǐn)?shù)的要求1課程設(shè)計說明書是體現(xiàn)和總結(jié)課程設(shè)計成果的載體,主要內(nèi)容包括:設(shè)計題目、設(shè) 計目的、設(shè)備器材、設(shè)計原理及內(nèi)容、設(shè)計步驟、遇到的問題及解決方法、

4、設(shè)計總結(jié)、設(shè)計 小組評語、參考文獻(xiàn)等。一般不應(yīng)少于3000字。2在適當(dāng)位置配合相應(yīng)的實驗原理圖、數(shù)據(jù)通路圖、微程序流程圖、實驗接線圖、微 指令代碼表等圖表進(jìn)行說明。應(yīng)做到文理通順,內(nèi)容正確完整,書寫工整,裝訂整齊。3設(shè)計總結(jié)部分主要寫本人完成工作簡介以及自己的設(shè)計體會,包括通過課程設(shè)計學(xué) 到了什么,哪里遇到了困難,解決的辦法以及今后的目標(biāo)。設(shè)計小組評語處注明設(shè)計組編 號、設(shè)計組組長、設(shè)計組成員,并由設(shè)計組組長給出評語。4課程設(shè)計說明書手寫或打印均可。手寫要用學(xué)校統(tǒng)一的課程設(shè)計用紙,用黑或藍(lán)黑墨水工整書寫;打印時采用A4紙,頁邊距均為20mm正文采用宋體小四號字,行間距 磅。文中大標(biāo)題采用黑體小

5、三號字,一級節(jié)標(biāo)題采用黑體四號字,二級節(jié)標(biāo)題采用黑體小四 號字,表題與圖題采用宋體五號字。5課程設(shè)計說明書裝訂順序為:封面、任務(wù)書、成績評定表、目錄、正文、參考文 獻(xiàn)。四、設(shè)計完成后應(yīng)提交成果的種類、數(shù)量、質(zhì)量等方面的要求1.完成“任務(wù)書”中指定的操作功能,運行穩(wěn)定。2課程設(shè)計說明書。五、時間進(jìn)度安排順序階段日期計劃完成內(nèi)容備注1第1天閱讀資料2第2天系統(tǒng)分析設(shè)計3第3天程序編制、調(diào)試及運行4第4天成績評定5第5天撰寫課程設(shè)計說明書六、主要參考資料(文獻(xiàn))1郭翠英.C語言課程設(shè)計案例精編北京:中國水利水電出版社.2004.32譚浩強.C語言程序設(shè)計.北京:清華大學(xué)出版社.1999.123張翔.

6、C語言函數(shù)大全.北京:清華大學(xué)出版社.2002.44浦濱.C游戲編程從入門到精通.北京:北京希望電子出版社.2002.55陳天洲.C語言高級程序設(shè)計.北京:人民郵電出版社.2002楊旭.C語言程序設(shè)計案例教程.北京:人民郵電出版社.20057王為青.C語言高級編程及實例剖析.北京:人民郵電出版社.2008.028徐慧.C語言實例解讀精粹.北京:人民郵電出版社.2006.049姚大鵬欒好利 張翼英 等編著.C語言程序設(shè)計教程習(xí)題與上機實訓(xùn)指導(dǎo).中國水 利水電出版社.200510王為青.C語言實例解讀.北京:人民郵電出版社.2008.02沈陽工程學(xué)院程序設(shè)計基礎(chǔ)課程設(shè)計成績評定表院(系): 信息學(xué)

7、院班級:軟本132學(xué)生姓名:指導(dǎo)教師評審意見評價內(nèi)容M體要權(quán)重加權(quán)分調(diào)研 論證能獨立查閱文獻(xiàn),收集資料;能制定課程設(shè)計方 案和日程安排。0.15432工作能力 態(tài)度工作態(tài)度認(rèn)真,遵守紀(jì)律,出勤情況是否良 好,能夠獨立完成設(shè)計工作,0.25432工作量按期圓滿完成規(guī)定的設(shè)計任務(wù),工作量飽滿, 難度適宜。0.25432說明書的 質(zhì)量說明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理, 文字通順,技術(shù)用語準(zhǔn)確,符號統(tǒng)一,編號齊 全,圖表完備,書寫工整規(guī)范。0.55432指導(dǎo)教師評審成績 (加權(quán)分合計乘以8)分加權(quán)分合計指導(dǎo)教師簽名:年 月日評閱教師評審意見評價內(nèi)容具體要求權(quán)重評分加權(quán)分查閱 文獻(xiàn)查閱文獻(xiàn)有一定廣

8、泛性;有綜合歸納資料的能 力0.25432工作量工作量飽滿,難度適中。0.55432說明書的 質(zhì)量說明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理, 文字通順,技術(shù)用語準(zhǔn)確,符號統(tǒng)一,編號齊 全,圖表完備,書寫工整規(guī)范。0.35432評閱教師評審成績 (加權(quán)分合計乘以4)分加權(quán)分合計評閱教師簽名:年 月日答辯小組評審意見評價內(nèi)容具體要求權(quán)重評分加權(quán)分學(xué)生匯報匯報準(zhǔn)備充分,思路清晰;語言表達(dá)準(zhǔn)確,概 念清楚,論點正確,有層次,有重點,基本上 反映了所完成任務(wù)的全部內(nèi)容;時間符合要 求。0.55432答辯思路清晰;回答問題有理論依據(jù),基本概念清 楚;主要問題回答準(zhǔn)確,深入,有說服力。0.55432答辯小組評

9、審成績 (加權(quán)分合計乘以8)分加權(quán)分合計答辯小組教師簽名:年 月日沈陽工程學(xué)院課程設(shè)計總評成績分沈陽工程學(xué)院程序設(shè)計基礎(chǔ)課程設(shè)計成績評定表院(系): 信息學(xué)院班級:軟本132學(xué)生姓名:指導(dǎo)教師評審意見評價內(nèi)容M體要權(quán)重加權(quán)分調(diào)研 論證能獨立查閱文獻(xiàn),收集資料;能制定課程設(shè)計方 案和日程安排。0.15432工作能力 態(tài)度工作態(tài)度認(rèn)真,遵守紀(jì)律,出勤情況是否良 好,能夠獨立完成設(shè)計工作,0.25432工作量按期圓滿完成規(guī)定的設(shè)計任務(wù),工作量飽滿, 難度適宜。0.25432說明書的 質(zhì)量說明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理, 文字通順,技術(shù)用語準(zhǔn)確,符號統(tǒng)一,編號齊 全,圖表完備,書寫工整規(guī)范。0

10、.55432指導(dǎo)教師評審成績 (加權(quán)分合計乘以8)分加權(quán)分合計指導(dǎo)教師簽名:年 月日評閱教師評審意見評價內(nèi)容具體要求權(quán)重評分加權(quán)分查閱 文獻(xiàn)查閱文獻(xiàn)有一定廣泛性;有綜合歸納資料的能 力0.25432工作量工作量飽滿,難度適中。0.55432說明書的 質(zhì)量說明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理, 文字通順,技術(shù)用語準(zhǔn)確,符號統(tǒng)一,編號齊 全,圖表完備,書寫工整規(guī)范。0.35432評閱教師評審成績 (加權(quán)分合計乘以4)分加權(quán)分合計評閱教師簽名:年 月日答辯小組評審意見評價內(nèi)容具體要求權(quán)重評分加權(quán)分學(xué)生匯報匯報準(zhǔn)備充分,思路清晰;語言表達(dá)準(zhǔn)確,概 念清楚,論點正確,有層次,有重點,基本上 反映了所完

11、成任務(wù)的全部內(nèi)容;時間符合要 求。0.55432答辯思路清晰;回答問題有理論依據(jù),基本概念清 楚;主要問題回答準(zhǔn)確,深入,有說服力。0.55432答辯小組評審成績 (加權(quán)分合計乘以8)分加權(quán)分合計答辯小組教師簽名:年 月日沈陽工程學(xué)院課程設(shè)計總評成績分沈陽工程學(xué)院程序設(shè)計基礎(chǔ)課程設(shè)計成績評定表院(系): 信息學(xué)院班級:軟本132學(xué)生姓名:指導(dǎo)教師評審意見評價內(nèi)容M體要權(quán)重加權(quán)分調(diào)研 論證能獨立查閱文獻(xiàn),收集資料;能制定課程設(shè)計方 案和日程安排。0.15432工作能力 態(tài)度工作態(tài)度認(rèn)真,遵守紀(jì)律,出勤情況是否良 好,能夠獨立完成設(shè)計工作,0.25432工作量按期圓滿完成規(guī)定的設(shè)計任務(wù),工作量飽滿

12、, 難度適宜。0.25432說明書的 質(zhì)量說明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理, 文字通順,技術(shù)用語準(zhǔn)確,符號統(tǒng)一,編號齊 全,圖表完備,書寫工整規(guī)范。0.55432指導(dǎo)教師評審成績 (加權(quán)分合計乘以8)分加權(quán)分合計指導(dǎo)教師簽名:年 月日評閱教師評審意見評價內(nèi)容具體要求權(quán)重評分加權(quán)分查閱 文獻(xiàn)查閱文獻(xiàn)有一定廣泛性;有綜合歸納資料的能 力0.25432工作量工作量飽滿,難度適中。0.55432說明書的 質(zhì)量說明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理, 文字通順,技術(shù)用語準(zhǔn)確,符號統(tǒng)一,編號齊 全,圖表完備,書寫工整規(guī)范。0.35432評閱教師評審成績 (加權(quán)分合計乘以4)分加權(quán)分合計評閱教師簽名:

13、年 月日答辯小組評審意見評價內(nèi)容具體要求權(quán)重評分加權(quán)分學(xué)生匯報匯報準(zhǔn)備充分,思路清晰;語言表達(dá)準(zhǔn)確,概 念清楚,論點正確,有層次,有重點,基本上 反映了所完成任務(wù)的全部內(nèi)容;時間符合要 求。0.55432答辯思路清晰;回答問題有理論依據(jù),基本概念清 楚;主要問題回答準(zhǔn)確,深入,有說服力。0.55432答辯小組評審成績 (加權(quán)分合計乘以8)分加權(quán)分合計答辯小組教師簽名:年 月日沈陽工程學(xué)院課程設(shè)計總評成績分沈陽工程學(xué)院程序設(shè)計基礎(chǔ)課程設(shè)計成績評定表院(系): 信息學(xué)院班級:軟本132學(xué)生姓名:指導(dǎo)教師評審意見評價內(nèi)容M體要權(quán)重加權(quán)分調(diào)研 論證能獨立查閱文獻(xiàn),收集資料;能制定課程設(shè)計方 案和日程安

14、排。0.15432工作能力 態(tài)度工作態(tài)度認(rèn)真,遵守紀(jì)律,出勤情況是否良 好,能夠獨立完成設(shè)計工作,0.25432工作量按期圓滿完成規(guī)定的設(shè)計任務(wù),工作量飽滿, 難度適宜。0.25432說明書的 質(zhì)量說明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理, 文字通順,技術(shù)用語準(zhǔn)確,符號統(tǒng)一,編號齊 全,圖表完備,書寫工整規(guī)范。0.55432指導(dǎo)教師評審成績 (加權(quán)分合計乘以8)分加權(quán)分合計指導(dǎo)教師簽名:年 月日評閱教師評審意見評價內(nèi)容具體要求權(quán)重評分加權(quán)分查閱 文獻(xiàn)查閱文獻(xiàn)有一定廣泛性;有綜合歸納資料的能 力0.25432工作量工作量飽滿,難度適中。0.55432說明書的 質(zhì)量說明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)

15、合理, 文字通順,技術(shù)用語準(zhǔn)確,符號統(tǒng)一,編號齊 全,圖表完備,書寫工整規(guī)范。0.35432評閱教師評審成績 (加權(quán)分合計乘以4)分加權(quán)分合計評閱教師簽名:年 月日答辯小組評審意見評價內(nèi)容具體要求權(quán)重評分加權(quán)分學(xué)生匯報匯報準(zhǔn)備充分,思路清晰;語言表達(dá)準(zhǔn)確,概 念清楚,論點正確,有層次,有重點,基本上 反映了所完成任務(wù)的全部內(nèi)容;時間符合要 求。0.55432答辯思路清晰;回答問題有理論依據(jù),基本概念清 楚;主要問題回答準(zhǔn)確,深入,有說服力。0.55432答辯小組評審成績 (加權(quán)分合計乘以8)分加權(quán)分合計答辯小組教師簽名:年 月日沈陽工程學(xué)院課程設(shè)計總評成績分摘要近年來,當(dāng)今社會的高速發(fā)展,各個

16、領(lǐng)域的突飛猛進(jìn),計算機也有它卓越的進(jìn) 步。C語言不僅為計算機專業(yè)工作者所使用,而且為廣大計算機應(yīng)用人員所喜愛和使 用。許多高等學(xué)校,不僅在計算機專業(yè)開設(shè)C語言課程,而且在非計算機專業(yè)也開設(shè) 了C語言課程。學(xué)習(xí)C語言已經(jīng)成為廣大計算機應(yīng)用人員和廣大青年學(xué)生的迫切要 求。圖書借閱管理系統(tǒng)是為了方便為了便于圖書資料的管理而產(chǎn)生的有效的圖書管理 軟件。在計算機日益普及的今天,對個人而言若采用一套行之有效的圖書借閱管理系 統(tǒng)來管理自己的書籍,會方便很多,這也充分應(yīng)用硬件資源;對圖書管理部門而言, 以前單一的手工檢索已不能滿足人們的需求,為了便于圖書資料的管理更為需要有效 的圖書管理軟件。由于計算機的普及

17、,完善的圖書借閱管理程序是很有必要的,它在 管理的過程中,對一些數(shù)據(jù)的存儲和計算是相當(dāng)方便,當(dāng)然它的準(zhǔn)確性很高幾乎為無 誤。 圖書借閱管理系統(tǒng)的操作也是相當(dāng)方便和快捷的, 并且可以大量的節(jié)省人員?;?于以上的原因,我們小組決定編寫一個圖書借閱管理系統(tǒng)的程序。程序主要分為一下 七個方面:創(chuàng)建圖書和會員信息、查詢圖書和會員信息、添加圖書和會員、刪除圖書 和會員、借書還書管理、便利圖書和會員。在此程序中,應(yīng)用了結(jié)構(gòu)體、結(jié)構(gòu)體數(shù) 組、文件、指向文件的指針、基本的指針運用、基本的循環(huán)語句、函數(shù)的調(diào)用、switch語句、運用字符串比較函數(shù)、動態(tài)分配存儲函數(shù)、輸入輸出函數(shù)等庫函數(shù)等C語言基 礎(chǔ)知識。圖書借閱

18、管理系統(tǒng)的主要功能是首先創(chuàng)建圖書和會員的基本信息,以便日后進(jìn)行 查找,這樣就建立起基本信息了。建立基本信息后利用系統(tǒng)提供的查詢、添加、刪 除、借閱等功能就可以實現(xiàn)設(shè)計目的了。在編寫此程序中,我們應(yīng)用了課本上所學(xué)過 的主要知識,而且也減少的不少的存儲空間。函數(shù)的合成、調(diào)試用到是數(shù)組程序和指 針函數(shù),而且也添加了結(jié)構(gòu)體,這在操作中也比較靈活運用。數(shù)組是有序數(shù)組的集 合,數(shù)組中的每一個元素都屬于同一個數(shù)據(jù)類型,用一個統(tǒng)一的數(shù)組名和下標(biāo)來唯一 地確定數(shù)組中的元素,將數(shù)組與循環(huán)結(jié)合起來,可以有效地處理大批量的數(shù)據(jù),大大提高了工作效率,十分方便。此系統(tǒng)中應(yīng)用了結(jié)構(gòu)體,數(shù)組,鏈表,基本的指針運 用,基本的循

19、環(huán)語句,函數(shù)的調(diào)用等。關(guān)鍵詞 指針,結(jié)構(gòu)體,鏈表目錄第一章引言11.1題目背景11.2設(shè)計目的11.3解決問題1第二章C語言的運行環(huán)境及其特點32.1 C語言的起源及特點32.2 C語言的運行步驟3第三章系統(tǒng)分析與設(shè)計53.1系統(tǒng)功能53.2功能設(shè)計53.2.1需求分析53.2.2概要設(shè)計63.2.3詳細(xì)設(shè)計8第四章系統(tǒng)功能實現(xiàn)74.1主函數(shù)94.1.1庫函數(shù)的調(diào)用174.1.2初始數(shù)據(jù)的定義174.1.3全局變量的定義144. 2借書還書功能設(shè)計 錯誤!未定義書簽4.3添加圖書及會員功能設(shè)計23 4.4刪除圖書及會員功能設(shè)計26 4.5遍歷圖書及會員功能設(shè)計169結(jié)論 錯誤!未定義書簽。2致

20、謝33參考文獻(xiàn)34第一章 引言1.1 題目背景隨著計算機技術(shù)的飛速發(fā)展,它不僅改變了世界,同時也改變了人類的生 活。作為新世紀(jì)的大學(xué)生,應(yīng)當(dāng)站在時代發(fā)展的前列,掌握現(xiàn)代科學(xué)技術(shù)知 識,調(diào)整自己的知識結(jié)構(gòu)和能力結(jié)構(gòu),以適應(yīng)社會發(fā)展的要求。C語言成了在國內(nèi)外使用的一種計算機語言。C語言功能豐富、表達(dá)能力強、使用靈活方便、應(yīng)用面廣、目標(biāo)程序效率高、可移植性好、既具有高級語 言的優(yōu)點,又具有低級語言的許多特點,因此特別適合于編寫系統(tǒng)軟件。現(xiàn)在 大多數(shù)的高校都把C語言作為第一門計算機語言進(jìn)行教案,這是可行的,學(xué)生 是能夠?qū)W習(xí)好的。學(xué)習(xí)C語言已經(jīng)成為廣大計算機應(yīng)用人員和廣大青年學(xué)生的 迫切要求。在信息時代

21、,采用傳統(tǒng)的圖書檢索系統(tǒng)已經(jīng)顯得十分的落后,而且效率低 下,尤其在會員管理與圖書借閱方面,效率低且誤差大。為了適應(yīng)現(xiàn)代化的環(huán) 境,許多的管理事務(wù)都由電腦來管理,從而提高了管理的速率和效率。1.2 設(shè)計目的圖書借閱管理系統(tǒng)是進(jìn)行圖書及會員信息的創(chuàng)建、查詢、添加、刪除以及 圖書借閱管理的系統(tǒng)。它是隨著管理科學(xué)和技術(shù)科學(xué)的發(fā)展而形成的。圖書借 閱管理系統(tǒng)對一個個人及圖書館都有很大用途的軟件,對于個人可實現(xiàn)輕松管 理自己的私人書籍,對于圖書館而言更是不可或缺的,其可實現(xiàn)圖書及會員的 計算機化管理。開發(fā)一個圖書借閱管理系統(tǒng),采用計算機對圖書與會員管理, 進(jìn)一步提高了傳統(tǒng)手工檢索的可靠性和安全性。此外,圖

22、書借閱管理系統(tǒng)支持 的對記錄隨意的進(jìn)行輸入、添加、查詢、刪除及修改的操作可以減輕圖書管理 人員的工作量,提高工作效率。1.3 解決問題圖書借閱管理系統(tǒng)的設(shè)計主要運用程序設(shè)計模塊化的思想,綜合運用平時 所學(xué)知識并查找了大量的資料編寫一個可實現(xiàn)創(chuàng)建圖書和會員信息、查詢圖書 和會員信息、添加圖書和會員、刪除圖書和會員、借書還書管理、遍歷圖書和 會員的管理戲系統(tǒng)。其間遇到過許多的困難,但經(jīng)過團(tuán)隊的一起努力,都一一 克服,其中主要難點如下:1.創(chuàng)建圖書和會員信息模塊的設(shè)計:需考慮創(chuàng)建基本信息的功能是否放在主菜單里實現(xiàn),經(jīng)過小組研究:此功能應(yīng)在登錄頁面就實現(xiàn),放在主菜單之、八前。2.添加圖書和會員模塊的設(shè)

23、計:添加圖書和會員功能是使用動態(tài)鏈表實現(xiàn) 的,需要綜合運用指針和鏈表的相關(guān)知識,創(chuàng)建對應(yīng)的動態(tài)鏈表。3.借書還書管理模塊的設(shè)計:本系統(tǒng)可實現(xiàn)對非注冊會員不能借書的限制, 經(jīng)過老師指導(dǎo),此功能用含指針的for循環(huán)實現(xiàn),其中需選擇相應(yīng)的指針作循環(huán)變量初 值,循環(huán)條件和循環(huán)變量增值,實現(xiàn)只借書給有注冊會員號的會員。4.遍歷圖書和會員模塊的設(shè)計:此功能實現(xiàn)只輸出當(dāng)前圖書庫和會員庫中所包 含的基本信息,要輸出新增加的信息而不輸出已刪除的信息,即用指針的 指向?qū)崿F(xiàn),每運行其他模塊一次之后讓指針重新指向最開始的地址,即可 實現(xiàn)本功能第二章 C 語言的運行環(huán)境及其特點2.1 C 語言的起源及特點早期的操作系統(tǒng)

24、等系統(tǒng)軟件主要是用匯編語言編寫的(包括UNIX操作系 統(tǒng)在內(nèi))。由于匯編語言依賴于計算機硬件,程序的可讀性和可移植性都比較 差。為了提高可讀性和可移植性,最好改用高級語言,但一般的高級語言難以 實現(xiàn)匯編語言的某些功能,人們設(shè)想能否找到一種既具有一般高級語言特性, 又具有低級語言特性的語言,集它們的優(yōu)點于一身。于是,C語言就在這種情 況下應(yīng)運而生了。C語言是在B語言的基礎(chǔ)上發(fā)展起來的,它的根源可以追溯到ALGOL 60。 后來C語言多次做了改進(jìn),但主要還是在貝爾實驗室內(nèi)部使用直到1975年UNIX第6版發(fā)布后,C語言突出的優(yōu)點才引起人們的普遍注意。Brian W.Kernighan和Dennis

25、.M.Ritchie(合成K&B以1978年發(fā)布的UNIX第7版 中的C語言編譯程序為基礎(chǔ),合著了影響深遠(yuǎn)的名著The CProgramming Language,這本書中介紹的C語言成為后來廣泛使用的C語言版本的基礎(chǔ)。C語言特點如下:語言簡潔、緊湊、使用方便、靈活。C語言程序比其他許多高級語言簡練,源程序短、因此輸入程序時工作量少。運算符豐富。C語言的運算符包含的范圍很廣,共有34種運算符。靈活 使用各種運算符可以實現(xiàn)在其他高級語言種難以實現(xiàn)的運算。數(shù)據(jù)類型豐富。C語言提供的數(shù)據(jù)類型有:整形、浮點型、字符型、數(shù) 組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等。尤其是指針類型數(shù)據(jù),使用 十

26、分靈活和多樣化。具有結(jié)構(gòu)化的控制語句(如ifelse語句、while語句、dowhile語 句、switch語句、for語句)。語法限制不太嚴(yán)格,程序設(shè)計自由度大。C語言允許直接訪問物理地址。生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。用C語言編寫的程序可移植性好(與匯編語言比)2.2 C 語言的運行步驟1.新建一個C+文件,如圖2-1所示:圖2-1新建文件2.在此環(huán)境下編寫個人記賬管理系統(tǒng)的程序,如圖2-2所示:圖2-2在VC環(huán)境下編寫程序3.調(diào)試個人記賬管理系統(tǒng)程序,如圖2-3所示圖2-3第三章系統(tǒng)分析與設(shè)計3.1 系統(tǒng)功能具體圖書借閱管理功能,如圖3-1所示圖3-1圖書借閱管理系統(tǒng)功能1.創(chuàng)建圖

27、書和會員信息1)創(chuàng)建圖書信息即完成圖書信息的輸入,包括圖書名稱、圖書編號、單價、 作者名字;2)創(chuàng)建會員信息即完成會員信息的輸入,包括會員名字、會員性別、會員學(xué) 號。2.查詢圖書和會員信息1)查詢圖書信息的三種方式:按編號查詢、按名稱查詢、按價格區(qū)間查詢;2)查詢會員信息的兩種方式:按學(xué)號查詢、按姓名查詢。3.添加圖書和會員1)添加圖書需輸入新添加的圖書信息:圖書名稱、圖書編號、單價、作者名 字;2)添加會員需輸入新添加的會員信息:會員名字、會員性別、會員學(xué)號。4.刪除圖書和會員1)只需輸入所要刪除的圖書編號即可實現(xiàn)刪除圖書;2)只需輸入所要刪除的會員學(xué)號即可實現(xiàn)刪除會員。5.借書還書管理1)

28、借書:輸入所借圖書編號和借書人學(xué)號,本系統(tǒng)通過查詢圖書和會員信息 的功能,在確認(rèn)所借圖書存在且借書人為注冊會員之后,可成功借閱!否 則,不滿足以上兩個條件之一者,系統(tǒng)會自動提示:暫無次圖書或您還未 注冊會員!2)還書:輸入所還圖書編號和還書人學(xué)號,即可成功歸還圖書,并顯示圖書信息。6.遍歷圖書和會員1)遍歷圖書:按圖書編號、圖書名稱、圖書單價、圖書作者的順序?qū)D書信息輸出;2)遍歷會員:按會員姓名、會員性別、會員學(xué)號的順序?qū)T信息輸出。3.2 功能設(shè)計3.2.1需求分析經(jīng)過大一上下兩個學(xué)期的理論學(xué)習(xí),本學(xué)期開設(shè)了C程序設(shè)計課程設(shè)計。課 程設(shè)計要求我們對已經(jīng)學(xué)習(xí)的基礎(chǔ)知識進(jìn)行整合與銜接處理,并

29、最終形成一個 系統(tǒng)性質(zhì)的規(guī)模較大的程序。本次課程設(shè)計要求我們達(dá)到能獨立完成一個圖書借閱管理系統(tǒng),完成后要求實 現(xiàn)的功能圖書和會員基本信息的創(chuàng)建(即輸入)、查詢、修改、刪除、遍歷 (即輸出)以及借書還書的管理(非注冊會員不能借書)。當(dāng)然,我們也根據(jù) 自己的能力對系統(tǒng)進(jìn)行了完善性的拓展,例如提供多種查詢圖書和會員信息的 方式。通過整個程序的開發(fā)過程,最終使我們掌握利用計算機解決實際問題的基本方 法,熟悉C語言開發(fā)的全過程,提高綜合應(yīng)用C語言的能力,為學(xué)習(xí)軟獎工程 專業(yè)的后續(xù)功課打好基礎(chǔ)。3.2.2概要設(shè)計1.圖書和會員信息及數(shù)據(jù)格式圖書信息:圖書名稱、圖書編號、單價、作者名字 ;會員信息:會員名字

30、、會員性別、會員學(xué)號;數(shù)據(jù)格式:本系統(tǒng)采用單向鏈表來對圖書和會員信息進(jìn)行各項操作。其中圖書 的編號和會員編號為整型數(shù)據(jù),單價為雙精度浮點型,其余的圖書名稱、作者、存在狀態(tài)、會員姓名、會員性別、會換借書數(shù)量均由字符數(shù)組定義。struct bookchar book_name30。int bianhao。double price。char author20。char state20。char name20。char sex10。int xuehao。struct book *book_next。struct clubchar name20。char sex10。int xuehao。char bo

31、rrow30。struct club *club_next。結(jié)點的示意圖如下圖所示:book namebianhaopriceauthorstaten amesexxuehaon amesexxuehaoborrow2.程序的整體框架4)struct book *Search_Book_bia nhao(i nt bia nhao,struct book *head_book)1)Prin t_Book(struct book*head_book)。2)Prin t_Club(struct club *head_club)。3)struct book *Create_New_Book()。為0

32、時結(jié)束)遍歷(瀏覽)所有圖書的函數(shù)遍歷(瀏覽)所有會員的函數(shù) 創(chuàng)建新的圖書庫的函數(shù)(圖書編號輸入5)按編號查詢圖書的函數(shù)6)struct book *Search_Book_name(char *b_name,struct book *head_book。)按書名查詢圖書的函數(shù)7)struct book *Search_Book_price(double price_h,double price_l,struct book *head_book)。按價格區(qū)間查詢圖書的函數(shù)8)struct book *Insert_Book(struct book *head_book,struct book

33、*stud_book)。 逐個添加圖書的函數(shù)9)struct book *Delete_Book(struct book *head_book,int bianhao)。刪除圖書的函 數(shù)10)struct club *Create_New_Club()。 創(chuàng)建新的會員庫的函數(shù)(會員編號輸入為0時結(jié)束)11)struct club *Search_Club_xuehao(int xuehao,struct club *head_club。)按會員編號查詢會員的函數(shù)12)struct club *Search_Club_name(char *c_name,struct club *head_clu

34、b。)按會員姓名查詢會員的考試13)struct club *Insert_Club(struct club *head_club,struct club *stud_club)。 逐個添加會員的函數(shù)14)struct club *Delete_Club(struct club *head_club,int xuehao)。 刪除會員的函數(shù)15)struct book *Lent_Book(int bianhao,int xuehao,struct book *head_book,struct club*head_club)。 借書辦理的函數(shù)16)struct book *back(int b

35、ianhao,int xuehao,struct book *head_book,struct club *head_club)。還書辦理的函數(shù)注:(3)-(16)的函數(shù)類型為返回指針值的函數(shù)3.2.3詳細(xì)設(shè)計程序的主題設(shè)計思想是根據(jù)結(jié)構(gòu)化程序設(shè)計思想分模塊進(jìn)行設(shè)計,由一個主函 數(shù)和多個自定義函數(shù)構(gòu)成。1.主函數(shù) 主函數(shù)定義本程序中需要使用的全局變量以及用多分支語句(switch語句)實 現(xiàn)用戶功能的選擇,并在每個case語句中實現(xiàn)函數(shù)的調(diào)用,以實現(xiàn)用戶所選擇 的功能。2.自定義函數(shù) 本系統(tǒng)要實現(xiàn)創(chuàng)建、查詢、修改、刪除、借閱、遍歷(輸出)的功能,即6個 功能模塊。程序中用相應(yīng)的返回指針值的函數(shù)

36、的實現(xiàn)每個模塊功能。第四章 系統(tǒng)功能實現(xiàn)4.1 主函數(shù)主函數(shù)實現(xiàn)用戶功能的選擇,使用C語言中的多分支語句(switch語句),并 在每個case語句中實現(xiàn)函數(shù)的調(diào)用,以實現(xiàn)用戶所選擇的功能。主要的程序代 碼如下:int main()struct book *head_book,*p_book。char book_name30,name20,author20,sex10。int bianhao。double price,price_h,price_。int size_book=sizeof(struct book)。int m=1,n=1,f。char *b_name,*c_name。struc

37、t club *head_club,*p_club。int xuehao。int size_club=sizeof(struct club)。int choice。printf(n歡迎您第一次進(jìn)入圖書管理系統(tǒng)!nn)。printf(向?qū)?新建圖書庫nn)。printf(注意:當(dāng)輸入圖書編號為0時,進(jìn)入下一步.nn)。head_book=Create_New_Book(。)system(cls)。printf(n歡迎您第一次進(jìn)入圖書管理系統(tǒng)!nn)。printf(- 向?qū)?新建會員庫nn)。printf(注意:當(dāng)輸入會員學(xué)號為0時,進(jìn)入主菜單.nn)。head_club=Create_New_C

38、lub(。)system(cls)。doprintf(nttt圖書管理系統(tǒng)nn)。printf(n)。printf(ttt1:借書辦理t)。printf( 6:還書辦理n)。printf(ttt2:查詢圖書t)。printf( 7:查詢會員n)。printf(ttt3:添加圖書t)。printf( 8:添加會員n)。printf(ttt4:刪 除 圖 書t)。printf( 9:刪 除 會 員n)。printf(ttt5:遍歷圖書t)。printf(10:遍歷會員nn)。printf(ttt/n/n)。printf(ttt0:退出nn)。printf(請選擇:)。scanf(%d,&c

39、hoice)。switch(choice) case 1:printf(nttt圖書管理系統(tǒng)nn)。printf(輸入所借圖書編號:n)。scanf(%d,&bianhao)。printf(輸入借書人的學(xué)號:n)。scanf(%d,&xuehao)。head_book=Le nt_Book(bia nhao,xuehao,head_book,head_club) system(cls)。printf(n借閱成功!nn)。printf(相關(guān)信息如下:nn)。head_book=Search_Book_bia nhao(bia nhao,head_boo。)break。case 2

40、:system(cls)。printf(nttt圖書管理系統(tǒng)nn)。printf(1.按編號查詢nn)。printf(2.按名稱查詢nn)。printf(3.按價格區(qū)間查詢nn)。printf(0.返回主菜單nn)。printf(請選擇:)。scanf(%d,&f)。if(f=1)printf(請輸入查詢圖書編號:)。scanf(%d,&bianhao)。printf ( 相 關(guān) 信 息 如 下:nn )。head_book=Search_Book_bia nhao ( bianhao,head_boQk) break。else if(f=2) b_name=book_name

41、。getchar(。) printf(請輸入查詢圖書名稱:)。gets(b_name。) printf(相關(guān)信息如下:nn)。head_book=Search_Book_ name(b_ name,head_book) break。else if(f=3)printf(請輸入最高價格:)。scanf(%lf,&price_h)。printf(請輸入最低價格:)。scanf (%lf,&price_l)。printf (相關(guān)信息如下:nn)。head_book=Search_Book_price(price_h,price_l,head_book) break。else if(f

42、=0)break。break。case 6:printf(nttt圖書管理系統(tǒng)nn)。printf(輸入所還圖書編號:n)。scanf(%d,&bianhao)。printf(輸入還書人的學(xué)號:n)。scanf(%d,&xuehao)。head_book=back(bia nhao,xuehao,head_book,head_club) system(cls)。printf(/n歸還成功!nn)。printf(相關(guān)信息如下:nn)。head_book=Search_Book_bia nhao(bia nhao,head_boo。)break。case 3:system(cls)

43、。printf(nttt圖書管理系統(tǒng)nn)。printf(請輸入圖書名稱:)。scanf(%s,book_name)。printf(請輸入圖書編號:)。scanf(%d,&bianhao)。printf(請輸入單價:)。scanf(%lf,&price)。printf(請輸入作者名字:)。scanf(%s,author)。printf(n)。struct book *ptr_b。for(ptr_b=head_book。ptr_b。ptr_b=ptr_b-book_next)if(ptr_b-bianhao=bianhao)printf(此 編 號 圖 書 已 存 在m=0。br

44、eak。if(m)p_book=(struct book *)malloc(size_book)。strcpy(p_book-book_name,book_name。)p_book-bianhao=bianhao。p_book-price=price。p_book-xuehao=0。n)strcpy(p_book-author,author。)strcpy(p_book-state,存在)。strcpy(p_book-sex,待定)。strcpy(p_book-name,特定)。head_book=Insert_Book(head_book,p_book。)printf(/n添加圖書成功!/n

45、/n)。break。case 4:system(cls)。printf(nttt圖書管理系統(tǒng)nn)printf(輸入刪除圖書編號:n)。scanf(%d,&bianhao)。head_book=Delete_Book(head_book,bianhao。) printf(n刪除圖書成功!nn)。break。case 5:system(cls)。printf(nttt圖書管理系統(tǒng)nn) Print_Book(head_book)。break。case 7:system(cls)。printf(nttt圖書管理系統(tǒng)nn) printf(1.按學(xué)號查詢nn)。printf(2.按姓名查詢nn

46、)。printf(0.返回主菜單nn)。printf(請選擇:)。scanf(%d,&f)。if(f=1)printf(請輸入查詢會員學(xué)號:)。scanf(%d,&xuehao)。printf (相 關(guān) 信 息 如 下head_club=Search_Club_xuehao (xuehao,head_club)break。else if(f=2)c_name=name。getchar(。)printf(請輸入查詢會員姓名:)。gets(c_name。)printf (相關(guān)信息如下:nn)。head_club=Search_Club_ name (c_ name,head_clU

47、b)break。else if(f=0)break。:/n/n)break。printf(請輸入查詢會員學(xué)號:n)。scanf(%d,&xuehao)。printf(相關(guān)信息如下:nn)。break。case 8:system(cls)。printf(nttt圖書管理系統(tǒng)nn) printf(請輸入會員名字:)。scanf(%s,name)。printf(請輸入會員性別:)。scanf(%s,sex)。printf(請輸入會員學(xué)號:)。scanf(%d,&xuehao)。printf(n)。struct club *ptr_c。for(ptr_c=head_club。ptr_c

48、。ptr_c=ptr_c-club_next)if(ptr_c-xuehao=xuehao)printf(此學(xué)號會員已存在/n)。n=0。break。if(n)p_club=(struct club *)malloc(sizeof(structstrcpy(p_club-name,name。)strcpy(p_club-sex,sex。) p_club-xuehao=xuehao。strcpy(p_club-borrow,暫無)。head_club=Insert_Club(head_club,p_club。) printf(/n添加會員成功!/n/n)。break。case 9:system(

49、cls)。printf(nttt圖書管理系統(tǒng)nn) printf(輸入要刪除會員學(xué)號:n)。scanf(%d,&xuehao)。club)head_club=Delete_Club(head_club,xuehao。) printf(n刪除會員成功!nn)。break。case 10:system(cls)。printf(nttt圖書管理系統(tǒng)nn)Print_Club(head_club)。break。case 0:system(cls)。printf(nttt圖書管理系統(tǒng)nn) printf(n謝謝您的使用!nn)。break。 while(choice!=0)。return 0。圖

50、4-1主界面在圖4-1中,主函數(shù)不僅包括創(chuàng)建圖書信息(創(chuàng)建新的圖書庫)和會員信息 (創(chuàng)建新的會員庫)的操作,并且在多分支語句(switch語句)下的每個 語句中實現(xiàn)函數(shù)的調(diào)用,以實現(xiàn)用戶所選擇的功能,最后輸出供選擇的功能主 菜單。4.1.1庫函數(shù)的調(diào)用1.輸入輸出函數(shù):scanf輸入函數(shù)printf輸出函數(shù)2.字符函數(shù)和字符串函數(shù):strcmp字符串比較函數(shù)strcmp統(tǒng)計字符長度函數(shù)strcpy字符串復(fù)制函數(shù)3.動態(tài)存儲分配函數(shù)malloc分配size字節(jié)的存儲區(qū)4.1.2初始數(shù)據(jù)的定義 本系統(tǒng)采用單向鏈表來對圖書和會員信息進(jìn)行各項操作。其中圖書的編號和會員編號為整型數(shù)據(jù),單價為雙精度浮點型

51、,其余的圖書名稱、作者、存在狀 態(tài)、會員姓名、會員性別、會換借書數(shù)量均由字符數(shù)組定義。4.1.3全局變量的定義 定義結(jié)構(gòu)體類型變量struct bookchar book_name30。int bianhao。運行上述程序,主界面如圖4-1所 示casedouble price。char author20。char state20。char name20。char sex10。int xuehao。struct book *book_next。struct clubchar name20。char sex10。int xuehao。char borrow30。struct club *club

52、_next。4.2 借書還書功能設(shè)計1.程序:借書:struct book *Lent_Book(int bianhao,int xuehao,struct book *head_book,struct club *head_club)struct book *ptr_book。struct club *ptr_club。int flag=0。for(ptr_book=head_book。ptr_book。ptr_book=ptr_book-book_next) for(ptr_club=head_club。ptr_club。ptr_club=ptr_club-club_next) if(pt

53、r_book-bianhao=bianhao)&(ptr_club-xuehao=xuehao)strcpy(ptr_book-name,ptr_club-name)。/*字符串的復(fù)制,把右邊的內(nèi)容復(fù)制到左邊*/strcpy(ptr_book-sex,ptr_club-sex)。ptr_book-xuehao=ptr_club-xuehao。strcpy(ptr_book-state,暫無)。strcpy(ptr_club-borrow,ptr_book-book_name)。flag+。if(flag=0)printf(暫無此圖書或您還未注冊為會員!/n/n)。return head

54、_book。還書:struct book *back(int bianhao,int xuehao,struct book *head_book,struct club *head_club)struct book *ptr_book。struct club *ptr_club。int flag=0。for(ptr_book=head_book。ptr_book。ptr_book=ptr_book-book_next) for(ptr_club=head_club。ptr_club。ptr_club=ptr_club-club_next) if(ptr_book-bianhao=bianhao

55、) & (ptr_club-xuehao=xuehao) strcpy(ptr_book-name,暫無)。strcpy(ptr_book-sex,待定)。ptr_book-xuehao=0。strcpy(ptr_book-state,暫無)。strcpy(ptr_club-borrow,暫無)。flag+。 if(flag=0) printf(輸入有誤,請重試/n/n)。return head_book。2.運行結(jié)果 運行以上程序,借書功能模塊如圖4-2所示,還書功能模塊如圖4-3所示。圖4-2借書功能模塊圖4-3還書功能模塊3.程序流程圖借書功能流程圖:4.3 添加圖書及會員功能設(shè)

56、計1.程序struct book *ln sert_Book(struct book *head_book,struct book *stud_book)struct book *ptr_b,*ptr1_b,*ptr2_b。ptr2_b=head_bookptr_b=stud_book。if(head_book=NULL)head_book=ptr_b head_book-book_ next=NULL。elsewhile(ptr_b-bia nhao ptr2_b-bia nhao) &(ptr2_b-book_next!=NULL) ptr1_b=ptr2_b。ptr2_b=ptr

57、2_b-book_ next。一一 一if(ptr_b-bianhao bianhao)if(head_book=ptr2_b) head_book=ptr_belse ptr1_b-book_ next=ptr_bptr_b-book_ next=ptr2_belseptr2_b-book_next=ptr_b ptr_b-book_next=NULL。retur n head_book _struct club *ln sert_Club(struct club *head_club,struct club *stud_club)輸入所還圖書編號struct club *ptr_c,*pt

58、r1_c,*ptr2_c。ptr2_c=head_clubptr_c=stud_club。if(head_club=NULL)head_club=ptr_c。head_club-club_ next=NULL。一 一elsewhile(ptr_c-xuehao ptr2_c-xuehao) & (ptr2_c-club_next!=NULL) ptr1_c=ptr2_c。ptr2_c=ptr2_c-club_ nextif(ptr_c-xuehao xuehao)if(head_club=ptr2_c) head_club=ptr_celse ptr1_c-club_ next=ptr

59、_cptr_c-club_ next=ptr2_co 一elseptr2_c-club_ next=ptr_coptr_c-club_next=NULL。一 一return head_cl ub _void Prin t_Club(struct club *head_club)struct club *ptr_c。if(head_club=NULL)printf(n無記錄nn)。return。printf(n會員姓名t會員性別t會員學(xué)號nn)。for(ptr_c=head_club。ptr_c。ptr_c=ptr_c-club_next)prin tf(%stt%stt%dn,ptr_c- n

60、 ame,ptr_c-sex,ptr_c-xuehao)。 2運行結(jié)果3程序流程圖添加圖書流程圖:添加會員流程圖:開始1程序刪除圖書:struct book *Delete_Book(struct book *head_book,i nt bia nhao)struct book *ptr1_book,*ptr2_book。while(head_book!=NULL&head_book-bianhao=bianhao)ptr2_book=head_book。head_book=head_book-book_next。free(ptr2_book)。if(head_book=NULL)return NULL。ptr1_book=head_book。ptr2_book=head_book-book_next。while(ptr2_book!=NULL)if(p

溫馨提示

  • 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

提交評論