C語(yǔ)言程序設(shè)計(jì)方案圖書(shū)信息管理系統(tǒng)_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)方案圖書(shū)信息管理系統(tǒng)_第2頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、封面 作者:PanHon glia ng 僅供個(gè)人學(xué)習(xí) 電氣與信息工程學(xué)院 2013 2013 20142014 學(xué)年第 一 學(xué)期課程名稱(chēng) C C 語(yǔ)言課程設(shè)計(jì) 設(shè)計(jì)題目實(shí)驗(yàn)設(shè)備管理系統(tǒng) 姓名李海峰 學(xué)號(hào) 1211323412113234 專(zhuān)業(yè)班級(jí)電子信息工程 指導(dǎo)教師蔣 蓮 20132013 年 9 9 月 1、 設(shè)計(jì)任務(wù)書(shū) 4 1.1 課程設(shè)計(jì)題目:實(shí)驗(yàn)設(shè)備管理系統(tǒng) 4 1.2 課程設(shè)計(jì)要求:4 1.3 課程設(shè)計(jì)目的:4 1.4 課程設(shè)計(jì)原理:5 1.5 課程程序涉及的知識(shí)點(diǎn) 5 2、 C 語(yǔ)言程序需求分析 6 2.1 技術(shù)可行性 6 2.2 經(jīng)濟(jì)可行性 6 2.3 需求分析 7 2.4

2、內(nèi)容摘要 8 3、 功能設(shè)計(jì) 8 3.1 應(yīng)用程序功能詳細(xì)說(shuō)明 8 3.1.1 添加記錄 8 3.1.2 修改記錄 9 3.1.3 顯示記錄 10 3.1.4 統(tǒng)計(jì)分類(lèi) 10 3.1.5 查詢(xún)記錄 10 3.2 總體設(shè)計(jì)與模塊的劃分 11 3.3 建立實(shí)驗(yàn)設(shè)備信息結(jié)構(gòu)體 12 3.4 系統(tǒng)功能模塊與設(shè)計(jì) 12 4、 程序代碼設(shè)計(jì) 12 4.1 設(shè)計(jì)目標(biāo) 12 4.2 設(shè)計(jì)思想 12 4.3 系統(tǒng)完成功能及功能框圖 13 4.4 程序運(yùn)行主界面 13 4.5 核心算法:13 4.5.1 輸入設(shè)備記錄 13 4.5.2 查看所有設(shè)備信息 14 4.5.3 編輯設(shè)備報(bào)廢與破損記錄 14 4.5.4

3、按編號(hào)查詢(xún) 14 4.5.5 設(shè)備分類(lèi)統(tǒng)計(jì) 15 5、 C 程序設(shè)計(jì)結(jié)論:錯(cuò)誤!未定義書(shū)簽。 5.1 存在問(wèn)題: 15 5.2 特點(diǎn)的體現(xiàn): 15 5.3 學(xué)習(xí)總結(jié): 15 6、 后記 16 7、參考文獻(xiàn) 16 8、附錄錯(cuò)誤!未定義書(shū)簽。 8.1 系統(tǒng)公共數(shù)據(jù)結(jié)構(gòu)如下: 16 8.2 源程序: 17 1、設(shè)計(jì)任務(wù)書(shū) 1.1 課程設(shè)計(jì)題目: 實(shí)驗(yàn)設(shè)備管理系統(tǒng) 1.2 課程設(shè)計(jì)要求: 實(shí)驗(yàn)設(shè)備信息包括:設(shè)備編號(hào),設(shè)備種類(lèi) (如:微機(jī)、打印 機(jī)、掃描儀等等 ),設(shè)備名稱(chēng),設(shè)備價(jià)格,設(shè)備購(gòu)入日期,是否報(bào) 廢,報(bào)廢日期等。 主要功能: 1、 能夠完成對(duì)設(shè)備的錄入和修改 2、 對(duì)設(shè)備進(jìn)行分類(lèi)統(tǒng)計(jì) 3、 設(shè)

4、備的破損耗費(fèi)和遺損處理 4、 設(shè)備的查詢(xún) 要求:使用二進(jìn)制文件方式存儲(chǔ)數(shù)據(jù),系統(tǒng)以菜單方式工作 1.3 課程設(shè)計(jì)目的: 學(xué)校的規(guī)模不斷擴(kuò)大,實(shí)驗(yàn)室設(shè)備數(shù)量急劇增加,有關(guān)實(shí)驗(yàn) 室設(shè)備的各個(gè)信息也成倍增加。面對(duì)龐大的信息量,需要有專(zhuān)門(mén) 的實(shí)驗(yàn)室設(shè)備管理系統(tǒng)來(lái)提高工作的效率。本系統(tǒng)為實(shí)驗(yàn)室設(shè)備 管理信息系統(tǒng),通過(guò)這樣的系統(tǒng),可以做到信息的規(guī)范管理,快 速查詢(xún)實(shí)驗(yàn)室設(shè)備的就業(yè)信息。其開(kāi)發(fā)主要包括數(shù)據(jù)庫(kù)的建立和 維護(hù)以及前端應(yīng)用程序的開(kāi)發(fā)兩個(gè)方面。 其次通過(guò)設(shè)計(jì)主要使學(xué)生有一個(gè)獨(dú)立編寫(xiě)程序的過(guò)程,對(duì)理 論學(xué)習(xí)及動(dòng)手能力都有一個(gè)很大的提高 ,進(jìn)一步培養(yǎng)學(xué)生熱愛(ài)專(zhuān)業(yè) 的思想,同時(shí)對(duì)本專(zhuān)業(yè)綜合素質(zhì)的提高起一個(gè)

5、積極的推動(dòng)作用。 1.4 課程設(shè)計(jì)原理: 總體設(shè)計(jì)的基本目的就是回答“系統(tǒng)應(yīng)該如何實(shí)現(xiàn)?”這個(gè) 問(wèn)題。因此總體設(shè)計(jì)又稱(chēng)為概要設(shè)計(jì)或初步設(shè)計(jì)。通過(guò)這個(gè)階段 的工作將劃分出組成系統(tǒng)的物理元素 程序、文件、數(shù)據(jù)庫(kù)、人 工過(guò)程和文檔等等,但是每個(gè)物理元素仍然處于黑盒子級(jí),這些 黑盒子里的具體內(nèi)容將在以后仔細(xì)設(shè)計(jì)??傮w設(shè)計(jì)階段的另一項(xiàng) 重要任務(wù)是設(shè)計(jì)軟件的結(jié)構(gòu),也就是要確定系統(tǒng)中每個(gè)程序是由 哪些模塊組成的,以及這些模塊相互之間的關(guān)系。 總體設(shè)計(jì)工程通常有兩個(gè)主意階段組成:系統(tǒng)設(shè)計(jì),確定系 統(tǒng)的具體實(shí)現(xiàn)方案;結(jié)構(gòu)設(shè)計(jì)確實(shí)軟件結(jié)構(gòu),也就是要確定系統(tǒng) 中每個(gè)程序擁有哪些模塊組成的,以及這些模塊之間的關(guān)系。

6、在 詳細(xì)設(shè)計(jì)之前進(jìn)行總體設(shè)計(jì)可以站在全局的高度上,花較少的成 本,從中選出最佳方案和最合理的軟件結(jié)構(gòu),從而用較低的成本 開(kāi)發(fā)出高質(zhì)量的軟件系統(tǒng)。 1.5 課程程序涉及的知識(shí)點(diǎn): 1、函數(shù)的調(diào)用 2、結(jié)構(gòu)體類(lèi)型 3、 For循環(huán)語(yǔ)句 4、 數(shù)組的熟練運(yùn)用 5、 結(jié)構(gòu)體的靈活運(yùn)用 6、 文件的打開(kāi)和關(guān)閉 7、 字符串的比較和復(fù)制 2、C語(yǔ)言程序需求分析 2.1 技術(shù)可行性 一個(gè)完備的實(shí)驗(yàn)室設(shè)備管理信息系統(tǒng)具有以下優(yōu)越性: 方便校領(lǐng)導(dǎo)查詢(xún)實(shí)驗(yàn)室設(shè)備的使用情況,節(jié)省時(shí)間,可以提高 系統(tǒng)的工作效率和準(zhǔn)確率。為了適應(yīng)新形勢(shì)的發(fā)展,我進(jìn)行了這一 系統(tǒng)的初步設(shè)計(jì)工作,也可以說(shuō)是做一個(gè)初步的探索,希望它能夠 在

7、查詢(xún)實(shí)驗(yàn)室設(shè)備信息時(shí)發(fā)揮高效、便捷的作用,把系統(tǒng)管理員從 繁重的工作中解脫出來(lái)! 該實(shí)驗(yàn)室設(shè)備管理信息系統(tǒng)是以 ACCESS數(shù)據(jù)庫(kù)為后臺(tái)核心應(yīng) 用、以服務(wù)為目的信息平臺(tái),對(duì)資源進(jìn)行科學(xué)的加工整序和管理維 護(hù),為實(shí)驗(yàn)室設(shè)備信息提供管理。 2.2 經(jīng)濟(jì)可行性 經(jīng)濟(jì)可行性主要依據(jù)是成本 / 效益分析,該系統(tǒng)的目標(biāo)是以最低 的成本,在最短的期限內(nèi)開(kāi)發(fā)出實(shí)驗(yàn)室設(shè)備管理信息系統(tǒng)。系統(tǒng)能 減少很多不必要的資源,不用象以前那樣用冗余的紙張式的管理。 大大節(jié)省了學(xué)校能源。并且還提高了實(shí)驗(yàn)室設(shè)備信息管理的精確 度。 方便快速的操作,可減少實(shí)驗(yàn)室設(shè)備信息管理的漏洞,又減少 因工作的冗余出現(xiàn)的錯(cuò)誤,并且操作非常簡(jiǎn)單,

8、可減少許多不很必 要的人員,這無(wú)論從物質(zhì)上海是工作人員的工資上都為學(xué)校節(jié)約了 開(kāi)支。為學(xué)校增加了財(cái)富。 目標(biāo)系統(tǒng)開(kāi)發(fā)需求比較低,加上具有成熟的軟硬件環(huán)境,所以 在軟硬件的支出上比較低,在為使用者帶來(lái)便利的同時(shí),也問(wèn)哦系 統(tǒng)的進(jìn)一步推廣創(chuàng)造了條件。這帶來(lái)的經(jīng)濟(jì)回報(bào)將遠(yuǎn)超過(guò)支出,并 且最重要的是該軟件的開(kāi)發(fā)可以使我們對(duì)系統(tǒng)的開(kāi)發(fā)有全面的認(rèn) 識(shí)。從經(jīng)濟(jì)角度考慮,此實(shí)驗(yàn)室設(shè)備管理信息系統(tǒng)開(kāi)發(fā)可行。 2.3 需求分析 管理員可以對(duì)實(shí)驗(yàn)室設(shè)備信息進(jìn)行查詢(xún)及相關(guān)實(shí)驗(yàn)室設(shè)備的使 用情況查看。管理員可以根據(jù)本人用戶(hù)名和密碼登錄系統(tǒng)。在信息 系統(tǒng)中,后臺(tái)數(shù)據(jù)庫(kù)存儲(chǔ)的地位相當(dāng)重要,數(shù)據(jù)庫(kù)的設(shè)計(jì)不但對(duì)數(shù) 據(jù)的操作速度

9、有影響,還直接關(guān)系到軟件系統(tǒng)的質(zhì)量和生存周期。 本系統(tǒng)采用了 SQL 數(shù)據(jù)庫(kù) book,book 庫(kù)中包括教師信息表、借用設(shè) 備表、儀器表、用戶(hù)登陸表。系統(tǒng)首先必須維護(hù)實(shí)驗(yàn)室中詳細(xì)資料 的數(shù)據(jù)表,程序能對(duì)該表進(jìn)行寫(xiě)入和讀出數(shù)據(jù)的操作,相應(yīng)的,該 表還有記錄讀者的借用情況,系統(tǒng)通過(guò)該表判斷讀者是否滿(mǎn)意借用 條件。系統(tǒng)還要管理員信息表,記錄管理員的資料,檢驗(yàn)管理員的 登陸,管理員的權(quán)限等。 實(shí)驗(yàn)室設(shè)備信息用文件存儲(chǔ),提供文件的輸入輸出操作;要能 夠完成設(shè)備的錄入和修改,需要提供設(shè)備添加和修改操作;實(shí)現(xiàn)對(duì) 設(shè)備進(jìn)行分類(lèi)統(tǒng)計(jì),需要提供排序操作;實(shí)現(xiàn)對(duì)設(shè)備查詢(xún)需要提供 查找操作,設(shè)備的查詢(xún)可根據(jù)設(shè)備編號(hào)

10、 設(shè)備種類(lèi) 設(shè)備購(gòu)入日期 正 常設(shè)備(未報(bào)廢的)等多種方式查詢(xún);另外還要根據(jù)鍵盤(pán)式選擇菜 單以實(shí)現(xiàn)功能選擇。 2.4 內(nèi)容摘要: 實(shí)驗(yàn)室設(shè)備管理系統(tǒng)是典型的設(shè)備信息管理系統(tǒng) , 要求能為學(xué)校 實(shí)驗(yàn)室管理提供信息化動(dòng)態(tài)化的管理,方便實(shí)驗(yàn)室設(shè)備管理工作, 提高設(shè)備管理質(zhì)量和使用效率。而且系統(tǒng)應(yīng)符合設(shè)備管理的有關(guān)規(guī) 定,包括新設(shè)備的申請(qǐng)、購(gòu)買(mǎi)確認(rèn)、新設(shè)備信息錄入、舊設(shè)備維修 和報(bào)廢及用戶(hù)管理等。能滿(mǎn)足日常工作的基本需要,并達(dá)到操作過(guò) 程中的直觀、方便、實(shí)用、安全等有關(guān)要求。 實(shí)驗(yàn)室設(shè)備管理系統(tǒng)是一個(gè)典型的信息管理系統(tǒng), 采用面向?qū)?象的分析方法 ,給出系統(tǒng)的基本結(jié)構(gòu) ?設(shè)計(jì)特色 ?設(shè)計(jì)模型及實(shí)現(xiàn)途徑

11、 并且對(duì)系統(tǒng)的開(kāi)發(fā)技術(shù)進(jìn)行研究 ?本系統(tǒng)是一個(gè)為適應(yīng)對(duì)學(xué)校實(shí)驗(yàn)室 設(shè)備管理的迫切需求而設(shè)計(jì)開(kāi)發(fā)的軟件系統(tǒng)。 3 3、功能設(shè)計(jì) 3.1 應(yīng)用程序功能詳細(xì)說(shuō)明 程序運(yùn)行后進(jìn)入管理系統(tǒng),顯示目錄:添加記錄、修改記錄、 顯示記錄、分類(lèi)統(tǒng)計(jì)、查詢(xún)記錄。 3.1.1 添加記錄 系統(tǒng)提示用戶(hù)在原有的基礎(chǔ)上錄入新的設(shè)備信 息。流程圖如下: 3.1.2 修改記錄 系統(tǒng)要求用戶(hù)輸入要修改的設(shè)備ID號(hào),這時(shí)系統(tǒng) 會(huì)顯示設(shè)備的具體信息,用戶(hù)只需該設(shè)備新的信息按要求輸入即可 對(duì)信息進(jìn)行修改。流程圖如下: 開(kāi)始 判斷是否有資料可以統(tǒng)計(jì)分 類(lèi) 沒(méi)有資料可以統(tǒng)計(jì)跳出 輸入要統(tǒng)計(jì)的分類(lèi)序號(hào) 按輸入序號(hào)調(diào)用各功能模塊 函數(shù) 結(jié)束

12、 3.1.3 顯示記錄 無(wú)記錄退出,有記錄者按要求輸出。流程圖如 下: 3.1.4 統(tǒng)計(jì)分類(lèi)若有資料可以統(tǒng)計(jì),則按要求分類(lèi)統(tǒng)計(jì)輸出。流 程圖如下: - - 沒(méi)有記錄可以顯示,跳出 開(kāi)始 * I . 有記錄者按要求輸出 判斷是否有資料可以統(tǒng)計(jì) I 分類(lèi) - 沒(méi)有資料可以統(tǒng)計(jì)跳出 結(jié)束 _ _ 輸入要統(tǒng)計(jì)的分類(lèi)序號(hào) 按輸入序號(hào)調(diào)用各功能模 塊函數(shù) 結(jié)束 3.1.5 查詢(xún)記錄 若信息為空,貝 S 不能查詢(xún)。流程圖如下: 3.2 總體設(shè)計(jì)與模塊的劃分整個(gè)系統(tǒng)可設(shè)計(jì)為實(shí)驗(yàn)設(shè)備信息輸入模塊實(shí) 驗(yàn)設(shè)備信息添加模塊實(shí)驗(yàn)設(shè)備信息修改模塊實(shí)驗(yàn)設(shè)備分類(lèi)統(tǒng)計(jì)模塊 和實(shí)驗(yàn)設(shè)備查詢(xún)模塊。 結(jié)束 3.3 建立實(shí)驗(yàn)設(shè)備信息結(jié)

13、構(gòu)體 結(jié)構(gòu)體成員包括設(shè)備編號(hào)設(shè)備種類(lèi)設(shè)備名稱(chēng)設(shè)備價(jià)格設(shè)備購(gòu)入 日期是否報(bào)廢報(bào)廢日期。 3.4 系統(tǒng)功能模塊與設(shè)計(jì) 模塊化就是把程序劃分成獨(dú)立命名且可獨(dú)立訪問(wèn)的模塊,每個(gè) 模塊完成一個(gè)子功能,把這些模塊集成起來(lái)構(gòu)成一個(gè)整體,可以完 成指定的功能滿(mǎn)足用戶(hù)的需求。 采用模塊化原理可以使軟件結(jié)構(gòu)清晰,不僅容易設(shè)計(jì)也容易閱 讀和理解。因?yàn)槌绦蝈e(cuò)誤常局限在有關(guān)的模塊及它們之間的接口 中,所以模塊化使軟件容易測(cè)試和調(diào)試,因而有助于提高軟件的可 靠性。一個(gè)好的電子系統(tǒng)要有一些必要的模塊組成,若缺少了某些 模塊那么這個(gè)系統(tǒng)就會(huì)有缺陷。 4 4、程序代碼設(shè)計(jì) 4.1 設(shè)計(jì)目標(biāo) 通過(guò)設(shè)計(jì)主要使學(xué)生有一個(gè)獨(dú)立編寫(xiě)程序

14、的過(guò)程,對(duì)理論學(xué)習(xí) 及動(dòng)手能力都有一個(gè)很大的提高,進(jìn)一步培養(yǎng)學(xué)生熱愛(ài)專(zhuān)業(yè)的思想, 同時(shí)對(duì)本專(zhuān)業(yè)綜合素質(zhì)的提高起一個(gè)積極的推動(dòng)作用。 4.2 設(shè)計(jì)思想 第一,應(yīng)該具有自動(dòng)初始化的功能。實(shí)際網(wǎng)絡(luò)中被管設(shè)備數(shù)量 巨大,通常能達(dá)到百位量級(jí),如果初始化時(shí)需要管理員手動(dòng)輸入所 有被管設(shè)備的基本信息,這是一個(gè)相當(dāng)枯燥漫長(zhǎng)的過(guò)程,會(huì)大大降 低系統(tǒng)的實(shí)用性。第二,在長(zhǎng)時(shí)間的運(yùn)行過(guò)程中,系統(tǒng)數(shù)據(jù)要與實(shí)際設(shè)備配置保 持一致。實(shí)際網(wǎng)絡(luò)中變化是經(jīng)常發(fā)生的,包括網(wǎng)絡(luò)的拓?fù)洹⒃O(shè)備的 配置等都會(huì)為了運(yùn)行的需求而經(jīng)常變化。那么,最好能讓系統(tǒng)中的 數(shù)據(jù)能自動(dòng)更新,而不需要每次改變實(shí)際網(wǎng)絡(luò)配置后,還需要管理 員手動(dòng)更新。 第三,操

15、作簡(jiǎn)單直觀,不依賴(lài)于太多的專(zhuān)業(yè)知識(shí)。無(wú)論是信息 的展示,還是可以進(jìn)行的操作,希望都能以簡(jiǎn)單的頁(yè)面元素來(lái)表 達(dá),管理員通過(guò)簡(jiǎn)單的點(diǎn)擊、選擇等操作就能完成大部分管理任 務(wù)。 4.3 系統(tǒng)完成功能及功能框圖 為彌補(bǔ)手工管理設(shè)備信息造成的資源共享困難、管理手續(xù)繁瑣 等問(wèn)題,設(shè)備管理系統(tǒng)應(yīng)能夠滿(mǎn)足設(shè)備信息共享的需求,方便快捷 的得到所需要的信息,對(duì)實(shí)驗(yàn)室的幫助很大。系統(tǒng)功能如圖所示, 其主要功能包括:設(shè)備的錄入和修改、對(duì)設(shè)備進(jìn)行分類(lèi)統(tǒng)計(jì)、設(shè)備 的破損耗費(fèi)和遺損處理、設(shè)備的查詢(xún)。 4.4 程序運(yùn)行主界面 4.5 核心算法: 4.5.1輸入設(shè)備記錄 void add_data() struct shebei

16、 st。 int b 。 int i,j,k 。 while(1) j=0。 printf(nn 繼續(xù)添加設(shè)備信息 1-yes 0-no:) 。 scanf(%d,&b) 。 if(b=0) break 。 save_data()。 4.5.2 查看所有設(shè)備信息 void view_data() int i 。 printf(”編號(hào)t 種類(lèi)t 名稱(chēng)t 價(jià)格t 購(gòu)入日期t 報(bào)廢狀態(tài)(0-報(bào)廢,1-未報(bào)廢)t 破損狀態(tài)(0- 破損, 1-未破損) )。 printf(n - n) 。 for(i=0。idd.count。i+) printf(%st%st%st%.2ft%st%dt%dn,

17、dd.shei.no,dd.shei.kind,,dd.s hei.price,dd.shei.time,dd.shei.bao,dd.shei.po) 。 if(dd.shei.bao=0)printf( 該設(shè)備報(bào)廢日期: %st,dd.shei.time1) 。 if(dd.shei.po=0)printf( 該設(shè)備破損花費(fèi): %.2ft,dd.shei.price1) 。 if(dd.shei.bao=0|dd.shei.po=0)printf( 該設(shè)備處理方式為: %sn,dd.shei.way) 。 4.5.3 編輯設(shè)備報(bào)廢與破損記錄 void edit_da

18、ta() printf(n 名 稱(chēng) : %s, 編 號(hào) : %s, 種 類(lèi) :%s, 價(jià) 格 : %.2f, 購(gòu) 入 日 期: %s,,dd.shek.no,dd.shek.kind,dd.shek.price,dd.shek.time) 。 printf(n 破損耗費(fèi): ) 。 scanf(%f,&price1) 。 dd.shek.price1=price1 。 4.5.4 按編號(hào)查詢(xún) void query_data_no() int i,k 。 char no5 。 printf(n 請(qǐng)輸入要查詢(xún)?cè)O(shè)備的編號(hào) :)。 scanf(%s,no) 。 k=-1

19、。 printf(nn 沒(méi)有找到該設(shè)備 ( 編號(hào) -%s)!,no) 。 4.5.5 設(shè)備分類(lèi)統(tǒng)計(jì) void count_data() char kind10 。 int i,s=0 。 printf( 請(qǐng)輸入要查詢(xún)的設(shè)備種類(lèi): ) 。 scanf(%s,kind) 。 for(i=0 。 idd.count 。 i+) if(strcmp(dd.shei.kind,kind)=0) s+。 printf(統(tǒng)計(jì)結(jié)果:s 種類(lèi)的設(shè)備有d 件。,kind,s)。 5、C程序設(shè)計(jì)結(jié)論: 5.1 存在問(wèn)題: 本程序的功能不是很完善,只能完成最基礎(chǔ)的設(shè)備的錄入和修 改,不能輸入過(guò)多設(shè)備的存儲(chǔ)和查詢(xún),只能

20、分類(lèi)統(tǒng)計(jì)出相應(yīng)類(lèi)型的 數(shù)量,不能詳細(xì)分類(lèi)統(tǒng)計(jì)。 5.2 特點(diǎn)的體現(xiàn): 本C語(yǔ)言程序主要使用二進(jìn)制文件方式存儲(chǔ)數(shù)據(jù),系統(tǒng)以菜單 方式工作,再結(jié)合函數(shù)、數(shù)組等基本程序設(shè)計(jì)編寫(xiě)而成。 可以完成最基礎(chǔ)的設(shè)備的錄入和修改,對(duì)設(shè)備進(jìn)行分類(lèi)統(tǒng)計(jì), 設(shè)備的破損耗費(fèi)和遺損處理,以及按照設(shè)備類(lèi)型和設(shè)備編號(hào)的查 詢(xún)。能夠基本滿(mǎn)足管理設(shè)備工作人員的需求。 5.3 學(xué)習(xí)總結(jié): 此程序設(shè)計(jì)讓我很好的掌握了 C語(yǔ)言的一些知識(shí),但也反映了 一些不足之處,而且本程序的功能不是很完善,隨著以后的學(xué)習(xí), 我會(huì)更好的去探究更完美的更實(shí)用的管理系統(tǒng)。 6、后記 通過(guò) “實(shí)驗(yàn)設(shè)備管理系統(tǒng) ”設(shè)計(jì),增加了我學(xué)習(xí)軟件技術(shù)的興 趣,雖然還不明

21、確軟件技術(shù)包含的具體內(nèi)容,但從 C語(yǔ)言這門(mén)課程開(kāi) 始,已發(fā)現(xiàn)程序設(shè) 計(jì)的樂(lè)趣,在學(xué)習(xí) C語(yǔ)言的過(guò)程中也學(xué)到了許多計(jì) 算機(jī)應(yīng)用基礎(chǔ)知識(shí),對(duì)計(jì)算機(jī)的機(jī)體也有了一個(gè)大體的了解。 在具體操作中對(duì)這學(xué)期所學(xué)的 C語(yǔ)言的理論知識(shí)得到鞏固,在 實(shí)際操作中也發(fā)現(xiàn)了自己的不足之處,在以后的上機(jī)中應(yīng)特別注 意,同時(shí)也體會(huì)到了 C語(yǔ)言具有的語(yǔ)句簡(jiǎn)潔,使用靈活,執(zhí)行效率高 等的特點(diǎn)。通過(guò)實(shí)際操作,學(xué)會(huì) C語(yǔ)言程序編程的基本步驟、基本 方法,開(kāi)發(fā)了自己的邏輯思維能力,培養(yǎng)了分析問(wèn)題、解決問(wèn)題的 能力。 7、參考文獻(xiàn) 【1】.C程序設(shè)計(jì)(第四版),譚浩強(qiáng)著 【2】.C程序設(shè)計(jì)(第四版)學(xué)習(xí)輔導(dǎo)譚浩強(qiáng)編著 8、附錄 8.1

22、 系統(tǒng)公共數(shù)據(jù)結(jié)構(gòu)如下: 表示可錄入設(shè)備的最大數(shù)量 定義一個(gè)名為 shebei 的結(jié)構(gòu)體,這個(gè)結(jié)構(gòu)體定 義了設(shè)備的基本信息 設(shè)備的編號(hào) 設(shè)備的名稱(chēng) 設(shè)備的種類(lèi) char time 購(gòu)買(mǎi)日期 char time1 報(bào)廢日期 char way 處理方式 float price 設(shè)備的價(jià)格 破損花費(fèi) int bao 是否報(bào)廢 是否破損 8.2 源程序: #include stdio.h #include string.h #define MAX 20 struct shebei char no10 。 / 編號(hào) char kind10 。 / 設(shè)備種類(lèi) char name10 。 / 設(shè)備名稱(chēng) fl

23、oat price 。 / 價(jià)格 char time10 。 / 日期 int bao。 / 是否報(bào)廢 char time110 。 / 報(bào)廢日期 int po。 / 是否破損 float price1 。 / 破損花費(fèi) char way10 。 / 處理方式 she。 struct data int count 。 / 當(dāng)前設(shè)備數(shù)組中設(shè)備的個(gè)數(shù) struct shebei sheMAX 。 / 設(shè)備數(shù)組 dd 。 void save_data() FILE *fp 。 int i 。 if(fp=fopen(d:dada.dat,wb)=NULL) printf(ncannot open f

24、ilen) 。 return。 for(i=0 。 idd.count 。 i+) if(fwrite(&dd.shei,sizeof(struct shebei),1,fp)!=1) printf(file write errorn) 。 fclose(fp) 。 void read_data() FILE *fp 。 int i,k 。 struct shebei st。 k=0。 if(access(d:dada.dat,0)=-1) / 如果文件不存在 fp=fopen(d:dada.dat,wb) 。 fwrite(&k,sizeof(int),1,fp) 。 fcl

25、ose(fp) 。 fp=fopen(d:dada.dat,rb) 。 fread(&k,sizeof(int),1,fp) 。 dd.count=k 。 for(i=0。ik。i+) fread(&st,sizeof(struct shebei),1,fp) 。 strcpy(,) 。 strcpy(dd.shei.no,st.no) 。 strcpy(dd.shei.kind,st.kind) 。 dd.shei.price=st.price 。 strcpy(dd.shei.time,st.time) 。 dd.shei.bao=st

26、.bao 。 dd.shei.po=st.po 。 strcpy(dd.shei.time1,st.time1) 。 strcpy(dd.shei.way,st.way) 。 dd.shei.price1=st.price1 。 fclose(fp) 。 void view_data() int i 。 printf(”編號(hào)t 種類(lèi)t 名稱(chēng)t 價(jià)格t 購(gòu)入日期t 報(bào)廢狀態(tài)(0-報(bào)廢,1-未報(bào)廢) (0-破損, 1 -未破損) )。 printf(n - n) 。 for(i=0 。 idd.count 。 i+) t 破損狀態(tài) printf(%st%st%st%.2ft%st%dt%dn,dd

27、.shei.no,dd.shei.kind,,dd.s hei.price,dd.shei.time,dd.shei.bao,dd.shei.po) 。 if(dd.shei.bao=0)printf( 該設(shè)備報(bào)廢日期: %st,dd.shei.time1) 。 if(dd.shei.po=0)printf( 該設(shè)備破損花費(fèi): %.2ft,dd.shei.price1) 。 if(dd.shei.bao=0|dd.shei.po=0)printf( 該設(shè)備處理方式為: %sn,dd.shei.way) 。 void add_data() struct shebei st

28、。 int b 。 int i,j,k 。 while(1) j=0。 printf(n 請(qǐng)輸入設(shè)備信息 :n) 。 printf( 編號(hào) t 種類(lèi) t 名稱(chēng) t 價(jià)格 t 購(gòu)入日期 t) 。 printf(n - n) 。 scanf(%s%s%s%f%s,st.no,st.kind,,&st.price,st.time) 。 for(i=0 。 idd.count 。 i+) if(strcmp(dd.shei.no,st.no)=0) j=1 。 printf( 輸入的設(shè)備編號(hào)有重復(fù),請(qǐng)重新輸入 !) 。 break。 if(j=1)continue 。 if(j=

29、0) k = dd.count 。 strcpy(,) 。 strcpy(dd.shek.no,st.no) 。 strcpy(dd.shek.kind,st.kind) 。 dd.shek.price=st.price 。 strcpy(dd.shek.time,st.time) 。 dd.shek.bao=1 。 dd.shek.po=1 。 dd.count+ 。 printf(nn 繼續(xù)添加設(shè)備信息 1-yes 0-no:) 。 scanf(%d,&b) 。 if(b=0) break 。 save_data()。 void edit_da

30、ta() int i,k 。 char no10,time110,way10 。 int bao,po。 float price1 。 printf(n 請(qǐng)輸入要編輯設(shè)備的編號(hào) :) 。 scanf(%s,no) 。 k=-1。 for(i=0 。 idd.count 。 i+) if(strcmp(dd.shei.no,no)=0) k=i 。 break。 if(k=-1) printf(nn 沒(méi)有找到該設(shè)備 (編號(hào) -%s)!,no) 。 else printf(n 名 稱(chēng) : %s, 編 號(hào) : %s, 種 類(lèi) :%s, 價(jià) 格 : %.2f, 購(gòu) 入 日 期: %s,dd.shek.

31、name,dd.shek.no,dd.shek.kind,dd.shek.price,dd.shek.time) 。 printf(n 設(shè)備報(bào)廢與否記錄 :) 。 printf(n 設(shè)備狀態(tài)( 0-報(bào)廢, 1-未報(bào)廢): ) 。 scanf(%d,&bao) 。 dd.shek.bao=bao 。 if(bao=0) printf(n 報(bào)廢日期: ) 。 scanf(%s,time1) 。 strcpy(dd.shek.time1,time1) 。 if(bao=1) printf(n 設(shè)備破損狀態(tài):( 0-破損, 1-未破損) ) 。 scanf(%d,&po) 。 dd.s

32、hek.po=po 。 if(po=0) printf(n 破損耗費(fèi): ) 。 scanf(%f,&price1) 。 dd.shek.price1=price1 。 if(bao=0|po=0) printf(n 處理方式: ) 。 scanf(%s,way) 。 strcpy(dd.shek.way,way) 。 save_data()。 printf(nn編輯設(shè)備記錄(編號(hào)-%s)成功!,no)。 void query_data_no() int i,k 。 char no5 。 printf(n 請(qǐng)輸入要查詢(xún)?cè)O(shè)備的編號(hào) :) 。 scanf(%s,no) 。 k=-1。 for

33、(i=0 。 idd.count 。 i+) if(strcmp(dd.shei.no,no)=0) k=i 。 printf(”編號(hào)t 種類(lèi)t 名稱(chēng)t 價(jià)格t 購(gòu)入日期t 報(bào)廢狀態(tài)(0-報(bào)廢,1-未報(bào)廢)t 破 損狀態(tài)( 0-破損, 1-未破損) )。 printf(n - n) 。 printf(%st%st%st%.2ft%st%dt%dn,dd.shei.no,dd.shei.kind,,dd.s hei.price,dd.shei.time,dd.shei.bao,dd.shei.po) 。 if(dd.shei.bao=0)printf( 該設(shè)備報(bào)廢日期:

34、%st,dd.shei.time1) 。 if(dd.shei.po=0)printf( 該設(shè)備破損花費(fèi): %.2ft,dd.shei.price1) 。 if(dd.shei.bao=0|dd.shei.po=0)printf( 該設(shè)備處理方式為: %sn,dd.shei.way) 。 if(k=-1) printf(nn 沒(méi)有找到該設(shè)備 (編號(hào) -%s)!,no) 。 void count_data() char kind10 。 int i,s=O。 printf(”請(qǐng)輸入要查詢(xún)的設(shè)備種類(lèi): ”)。 scanf(%s,kind)。 for(i=0。 idd.count。i+) if(st

35、rcmp(dd.shei.k in d,k in d)=0) s+。 printf(統(tǒng)計(jì)結(jié)果:%s 種類(lèi)的設(shè)備有 %d 件。,kind,s)。 int mai n() int i。 int count=0。 do printf(n)。 printf(1-錄入(add_data)n)。 printf(2_-查看(view_data)n)。 printf(3-編輯報(bào)損(edit_data)n)。 printf(4-查詢(xún)(query_data_no)n)。 printf(5-分類(lèi)統(tǒng)計(jì)(count_data)n)。 printf(6-退出(Exit)n)。 scanf(%d,&i)。 switch(i) case 1:add_data()。 con ti nue。 case 2:view_data()。 con ti nue。 case 3:edit_data()。 con ti nue。 case 4:query_data_ no()。 con ti nue。 case 5:co un t_data()。 con ti nue。 case 6:break。 default:printf(錯(cuò)誤選擇!請(qǐng)重選)。continue。 while(i!=6)。 return 0。 版權(quán)申明 本文部分內(nèi)容,包括文字、圖片、以及設(shè)計(jì)等在網(wǎng)上搜集整 理。

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論