版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、HUBEIUNIVERSITY OF AUTOMOTIVE TECHNOLOGYC語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告課設(shè)題目: 設(shè)備管理系統(tǒng) 專(zhuān) 業(yè): 電氣工程與其自動(dòng)化 班 級(jí): T1223-08 姓 名:成 績(jī):完成日期:2013年6月18日2013年6月22日指導(dǎo)教師: 史旅華 目 錄1.課程設(shè)計(jì)目的22.需求分析22.1要求22.2任務(wù)描述22.3運(yùn)行環(huán)境32.4開(kāi)發(fā)工具33.總體設(shè)計(jì)33.1系統(tǒng)流設(shè)計(jì)33.2系統(tǒng)模塊設(shè)計(jì)44.詳細(xì)設(shè)計(jì)54.1數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)54.2模塊接口設(shè)計(jì)64.3 以下是幾個(gè)主要模塊的流程圖:75.運(yùn)行結(jié)果105.1主菜單界面:105.2信息錄入界面:105.3信息瀏覽界面:
2、115.4 信息查詢界面:115.5信息修改界面:126.程序調(diào)試與測(cè)試126.1程序調(diào)試126.2程序測(cè)試127.問(wèn)題與不足128.建議129.編程體會(huì)1210.程序源代碼:1211.參考文獻(xiàn)1312.用戶使用手冊(cè)131.課程設(shè)計(jì)目的1) 通過(guò)課程設(shè)計(jì),加深對(duì)結(jié)構(gòu)化程序設(shè)計(jì)思想的理解,能對(duì)系統(tǒng)功能進(jìn)行分析,并設(shè)計(jì)合理的模塊化結(jié)構(gòu)。2) 通過(guò)課程設(shè)計(jì),進(jìn)一步掌握C語(yǔ)言中重要的數(shù)據(jù)結(jié)構(gòu)。掌握并熟練運(yùn)用指針、鏈表、結(jié)構(gòu)體、文件等數(shù)據(jù)結(jié)構(gòu)。3) 通過(guò)課程設(shè)計(jì),提高程序開(kāi)發(fā)能力,能運(yùn)用合理的控制流編寫(xiě)清晰高效的程序。4) 通過(guò)課程設(shè)計(jì),培養(yǎng)C語(yǔ)言知識(shí)運(yùn)用和自學(xué)能力,真正的把課堂上獲得的知識(shí)運(yùn)用起來(lái),培
3、養(yǎng)自己對(duì)程序編寫(xiě)的興趣,并能獨(dú)立設(shè)計(jì)和實(shí)現(xiàn)一個(gè)小型系統(tǒng)。5) 通過(guò)課程設(shè)計(jì),加強(qiáng)了自己的程序分析能力。2.需求分析2.1要求1) 遵循軟件開(kāi)發(fā)過(guò)程的基本規(guī);能靈活應(yīng)用,初步具備運(yùn)用C程序解決實(shí)際問(wèn)題的能力。2) 運(yùn)用結(jié)構(gòu)化程序設(shè)計(jì)方法,按照課程設(shè)計(jì)題目要求,完成包括需求分析、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編寫(xiě)代碼、調(diào)試和測(cè)試C程序等過(guò)程。3) 學(xué)會(huì)利用數(shù)組、結(jié)構(gòu)體、鏈表進(jìn)行相關(guān)信息表示。4) 功能模塊劃分清晰,系統(tǒng)結(jié)構(gòu)圖符合功能操作要求,且有詳盡的功能描述5) 各主要功能模塊有詳盡的流程圖與描述,用函數(shù)的形式實(shí)現(xiàn),且調(diào)用入口、功能、出口等關(guān)系正確。6) 所設(shè)計(jì)的C程序較好的可讀性和可靠性;
4、程序書(shū)寫(xiě)風(fēng)格規(guī),注釋清晰。7) 界面友好(良好的人機(jī)互交),凡需要輸入信息時(shí),都有較詳盡的提示信息,并對(duì)輸入信息有較完善的值域分析。8) 程序經(jīng)上機(jī)調(diào)試通過(guò),不應(yīng)出現(xiàn)語(yǔ)法型、功能型錯(cuò)誤,并獲得滿意的結(jié)果。9) 學(xué)會(huì)通過(guò)各功能性測(cè)試用例測(cè)試程序的能力,盡可能避免原則性錯(cuò)誤的出現(xiàn)。10) 掌握編寫(xiě)、調(diào)試和測(cè)試C語(yǔ)言程序的基本技巧,充分理解結(jié)構(gòu)化程序設(shè)計(jì)的基本方法。11) C語(yǔ)言課程設(shè)計(jì)報(bào)告的容反應(yīng)實(shí)際設(shè)計(jì)過(guò)程,且符合格式要求,無(wú)抄襲現(xiàn)象。2.2任務(wù)描述此系統(tǒng)以設(shè)備、部門(mén)為背景,提供對(duì)設(shè)備、部門(mén)的購(gòu)買(mǎi)、報(bào)廢、查找、統(tǒng)計(jì)等功能。具體功能實(shí)現(xiàn)如下:1) 購(gòu)買(mǎi):輸入設(shè)備編號(hào)、部門(mén)編號(hào)(購(gòu)買(mǎi)),購(gòu)買(mǎi)日期、設(shè)
5、備數(shù)量,完成購(gòu)買(mǎi)的功能:需要判斷設(shè)備編號(hào)、部門(mén)編號(hào)是否存在,設(shè)備數(shù)量是否大于0,購(gòu)買(mǎi)日期格式是否合法(格式為:YYYY-MM-DD,如2009-01-02)購(gòu)買(mǎi)時(shí)間必須通過(guò)調(diào)用系統(tǒng)時(shí)間獲得。2) 報(bào)廢:輸入設(shè)備編號(hào)、部門(mén)編號(hào)(報(bào)廢),報(bào)廢日期、設(shè)備數(shù)量,完成報(bào)廢功能:需要判斷設(shè)備編號(hào)、部門(mén)編號(hào)是否存在,設(shè)備數(shù)量是否大于0小于該部門(mén)當(dāng)前正使用設(shè)備數(shù)量。報(bào)廢日期格式是否合法(格式為:YYYY-MM-DD,如2009-01-02)3) 查詢指定設(shè)備編號(hào)購(gòu)買(mǎi)歷史4) 指定部門(mén)報(bào)廢設(shè)備的歷史5) 統(tǒng)計(jì)指定日期公司各設(shè)備可以使用的數(shù)量6) 所有數(shù)據(jù)符合實(shí)際應(yīng)用要求2.3運(yùn)行環(huán)境1) WindowsXP/7
6、系統(tǒng)2) VC+6.0編譯環(huán)境2.4開(kāi)發(fā)工具C語(yǔ)言3.總體設(shè)計(jì)3.1系統(tǒng)流設(shè)計(jì)本系統(tǒng)的功能模塊如圖1所示,主要有以下模塊:課程名稱(chēng)界面程序歡迎界面主菜單界面查詢部門(mén)信息剩余使用次數(shù)購(gòu)買(mǎi)設(shè)備報(bào)廢設(shè)備設(shè)備的購(gòu)買(mǎi)歷史查詢?cè)O(shè)備的報(bào)廢歷史查詢退出系統(tǒng)通過(guò)設(shè)備編號(hào)查詢通過(guò)部門(mén)編號(hào)查詢通過(guò)設(shè)備編號(hào)查詢通過(guò)部門(mén)編號(hào)查詢查詢?cè)O(shè)備信息顯示全部信息設(shè)備信息列表顯示設(shè)備信息顯示部門(mén)信息顯示購(gòu)買(mǎi),報(bào)廢信息圖1系統(tǒng)功能模塊圖3.2系統(tǒng)模塊設(shè)計(jì)1) 主菜單界面:構(gòu)造函數(shù)int main_menu(),實(shí)現(xiàn)課程設(shè)計(jì)名稱(chēng)的顯示,實(shí)現(xiàn)歡迎使用設(shè)備管理系統(tǒng)的顯示,系統(tǒng)主菜單的顯示。2) 讀取顯示設(shè)備信息:構(gòu)造函數(shù) voidload
7、_equipment(),實(shí)現(xiàn)設(shè)備信息的讀取與顯示。3) 讀取顯示部門(mén)信息:構(gòu)造函數(shù)voidload_department(),實(shí)現(xiàn)部門(mén)信息的讀取與顯示。4) 記錄購(gòu)買(mǎi)設(shè)備的信息:構(gòu)造函數(shù)void save_buy(struct information *head),實(shí)現(xiàn)設(shè)備購(gòu)買(mǎi)的輸入與記錄。并通過(guò)設(shè)備編號(hào)查詢購(gòu)買(mǎi)信息函數(shù)void ID_buy(struct information *head )、部門(mén)編號(hào)查詢?cè)O(shè)備購(gòu)買(mǎi)信息函數(shù)void num_buy(struct information *head )的調(diào)用,實(shí)現(xiàn)相應(yīng)的購(gòu)買(mǎi)信息的查詢。5) 記錄報(bào)廢設(shè)備的信息:構(gòu)造函數(shù)void save_ru
8、in(struct information *head),實(shí)現(xiàn)設(shè)備報(bào)廢的輸入與記錄。并通過(guò)設(shè)備編號(hào)查詢報(bào)廢信息函數(shù)void ID_ruin(struct information *head )、部門(mén)編號(hào)查詢?cè)O(shè)備報(bào)廢信息函數(shù)void num_ruin(struct information *head )的調(diào)用,實(shí)現(xiàn)相應(yīng)的報(bào)廢信息的查詢。6) 顯示購(gòu)買(mǎi)報(bào)廢設(shè)備信息記錄:構(gòu)造函數(shù)void show_information(struct information *head),實(shí)現(xiàn)購(gòu)買(mǎi)報(bào)廢設(shè)備信息記錄的顯示。7) 顯示全部信息的界面:構(gòu)造函數(shù)void show_menu(struct informati
9、on *head ),實(shí)現(xiàn)全部信息的界面的顯示。4.詳細(xì)設(shè)計(jì)4.1數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)根據(jù)系統(tǒng)要求,系統(tǒng)中需要保存的數(shù)據(jù)信息,其結(jié)構(gòu)如下:數(shù)據(jù)項(xiàng)名稱(chēng)數(shù)據(jù)項(xiàng)系統(tǒng)表示數(shù)據(jù)類(lèi)型數(shù)據(jù)長(zhǎng)度備注設(shè)備編號(hào)IDint部門(mén)編號(hào)numint購(gòu)買(mǎi)日期data11char11設(shè)備狀態(tài)styleint設(shè)備數(shù)量numberint報(bào)廢數(shù)量number1int單價(jià)pricedouble總價(jià)sumdouble根據(jù)系統(tǒng)要求,系統(tǒng)中需要保存的類(lèi)別信息,其結(jié)構(gòu)如下:類(lèi)別代號(hào)IDnumnumbersum類(lèi)別名稱(chēng)設(shè)備編號(hào)部門(mén)編號(hào)設(shè)備數(shù)量總價(jià)為了能實(shí)現(xiàn)不受限制的增加設(shè)備信息,采用鏈表的結(jié)構(gòu)保存設(shè)備信息,在增加設(shè)備的基本信息時(shí),創(chuàng)建一個(gè)設(shè)備信息的節(jié)
10、點(diǎn),將其插入到鏈表中,示意圖如下。 設(shè)備信息1設(shè)備信息2通訊錄信息1221設(shè)備信息3設(shè)備信息4為此,先聲明一個(gè)類(lèi)型為struct student的結(jié)構(gòu)體,其成員為設(shè)備信息。然后通過(guò)對(duì)指針、鏈表、文件等數(shù)據(jù)結(jié)構(gòu)的操作,實(shí)現(xiàn)對(duì)設(shè)備信息的錄入,插入,存盤(pán),查詢,瀏覽,刪除,修改等一系列操作。其中,結(jié)構(gòu)體定義如下:struct information int ID;int num;char data11;chardata111; int style;doubleprice;int number;int number1;double sum;struct information *next; ;4.2模
11、塊接口設(shè)計(jì)1) 所有函數(shù)模塊聲明如下:void load(struct information *head); /*將信息存儲(chǔ)到文件*/int main_menu();/*主菜單*/void menu_select(int sel,struct information *head);/*進(jìn)行主菜單操作選擇*/void load_equipment();/*從文件中讀取設(shè)備信息*/ void load_department();/*從文件中讀取部門(mén)信息*/ void save_buy(struct informat
12、ion *head); /*對(duì)設(shè)備進(jìn)行購(gòu)買(mǎi)輸入*/void save_ruin(struct information *head); /*對(duì)設(shè)備進(jìn)行報(bào)廢輸入*/void ID_buy(struct information *head); /*通過(guò)設(shè)備編號(hào)查詢購(gòu)買(mǎi)信息*/void num_buy(struct information *head); /*通過(guò)部門(mén)編號(hào)查詢購(gòu)買(mǎi)信息*/void num_ruin(struct information *head); /*通過(guò)部門(mén)編號(hào)查詢報(bào)廢信息*/void ID_ruin(struct in
13、formation *head); /*通過(guò)設(shè)備編號(hào)查詢報(bào)廢信息*/void buy_menu(struct information *head); /*設(shè)備購(gòu)買(mǎi)查詢主菜單*/void ruin_menu(struct information *head); /*設(shè)備報(bào)廢查詢主菜單*/struct information *scanf_add(struct information *head); /*從TXT文件中導(dǎo)入上次存儲(chǔ)的設(shè)備處理信息*/void show_information();/*顯示購(gòu)買(mǎi)和報(bào)廢設(shè)備信息記錄*/void show_menu(st
14、ruct information *head); /*顯示全部信息主菜單*/ int judge_date(char date11); /*判斷日期輸入是否正確*/ void show_list(struct information *head);/*部門(mén)可使用設(shè)備報(bào)表制作*/ void printftime();/*調(diào)用系統(tǒng)時(shí)間*/void tongjishengyu();/*統(tǒng)計(jì)剩余使用次數(shù)*/2) 并定義兩個(gè)全局變量:int q; struct intformation *head;3) 主要模塊的實(shí)現(xiàn)系統(tǒng)以主函數(shù)main()為入口, 調(diào)
15、用int main_menu()函數(shù),顯示歡迎進(jìn)入課程設(shè)計(jì)名稱(chēng),直接進(jìn)入主菜單界面,然后系統(tǒng)接收用戶輸入的選擇,調(diào)用相應(yīng)的函數(shù),進(jìn)入到下一級(jí)菜單進(jìn)行相關(guān)工作。4.3 以下是幾個(gè)主要模塊的流程圖:1) 主菜單函數(shù):是否為0否打印主菜單接收用戶選項(xiàng)是否合法調(diào)用對(duì)應(yīng)選項(xiàng)函數(shù)進(jìn)入下一級(jí)菜單退出系統(tǒng)是否是圖1 主函數(shù)流程圖2) 購(gòu)買(mǎi)設(shè)備函數(shù):是打印購(gòu)買(mǎi)設(shè)備子菜單輸入設(shè)備編號(hào)選項(xiàng)否輸入部門(mén)編號(hào)選項(xiàng)是否合法是否合法輸入購(gòu)買(mǎi)數(shù)量輸入購(gòu)買(mǎi)單價(jià)結(jié)束否圖2 購(gòu)買(mǎi)設(shè)備流程圖3) 信息修改函數(shù):是打印購(gòu)買(mǎi)歷史子菜單輸入查詢方式選項(xiàng)否是否合法是否為0輸入編號(hào)選項(xiàng)是否返回主菜單退出函數(shù)圖3查詢流程圖5.運(yùn)行結(jié)果5.1主菜單
16、界面:圖5主菜單界面輸入功能選擇,系統(tǒng)自動(dòng)進(jìn)入相應(yīng)功能界面。5.2設(shè)備信息界面:圖6 設(shè)備信息界面5.3部門(mén)信息界面: 圖7 部門(mén)信息界面5.4 購(gòu)買(mǎi)歷史查詢信息界面: 從鍵盤(pán)中輸入選擇,可以按設(shè)備編號(hào)和部門(mén)編號(hào)進(jìn)行查詢,并顯示結(jié)果。 圖8 通過(guò)設(shè)備編號(hào)查詢的結(jié)果5.5報(bào)廢歷史查詢信息界面:從鍵盤(pán)中輸入選擇,可以按設(shè)備編號(hào)和部門(mén)編號(hào)進(jìn)行查詢,并顯示結(jié)果。圖9 通過(guò)設(shè)備編號(hào)查詢的結(jié)果5.6顯示全部信息界面:圖10 顯示全部信息界面5.7設(shè)備信息報(bào)表:6.程序調(diào)試與測(cè)試6.1程序調(diào)試1. 購(gòu)買(mǎi)設(shè)備從鍵盤(pán)輸入需要購(gòu)買(mǎi)的設(shè)備以與購(gòu)買(mǎi)設(shè)備的編號(hào)。2. 報(bào)廢設(shè)備從鍵盤(pán)輸入需要報(bào)廢的設(shè)備信息。6.2程序測(cè)試
17、1. 購(gòu)買(mǎi)信息從鍵盤(pán)輸入需要查詢的方式。2. 報(bào)廢信息從鍵盤(pán)輸入需要查詢的方式。7.問(wèn)題與不足(1) 需求分析中存在的問(wèn)題所有數(shù)據(jù)符合實(shí)際應(yīng)用要求這一項(xiàng)沒(méi)做好,導(dǎo)致所有數(shù)據(jù)都能隨意輸入,無(wú)論多大的數(shù)字都不會(huì)報(bào)錯(cuò)。(2) 概要設(shè)計(jì)中不存在什么問(wèn)題。(3) 詳細(xì)設(shè)計(jì)中存在的問(wèn)題有不少地方都缺少報(bào)錯(cuò),比如說(shuō)輸入設(shè)備數(shù)量時(shí)就算輸入了英文也沒(méi)有報(bào)錯(cuò),反而把那個(gè)英文直接當(dāng)做了1來(lái)處理。(4) 代碼編制中存在的問(wèn)題結(jié)構(gòu)不夠精煉,有些拖泥帶水,缺少實(shí)際經(jīng)驗(yàn)。(5) 調(diào)試和測(cè)試中不存在什么問(wèn)題。8.建議對(duì)于簽到,每次簽到都會(huì)有好多人代簽,這導(dǎo)致了簽到的無(wú)意義,我覺(jué)得取消簽到或者嚴(yán)格查簽到才能解決。9.編程體會(huì)通
18、過(guò)這次大規(guī)模的編程,我發(fā)現(xiàn)了自己的許多不足,我的各個(gè)重點(diǎn)都掌握的不牢固,導(dǎo)致我花費(fèi)了大量的時(shí)間去復(fù)習(xí),當(dāng)我復(fù)習(xí)完了再開(kāi)始編程已經(jīng)比別人慢了一大步,我發(fā)現(xiàn)程序的每一步都緊密相關(guān)著,然后我在老師與同學(xué)的幫助下,終于完成了本次編程。10.程序源代碼:#include <stdio.h>#include <malloc.h>#include <conio.h>#include <stdlib.h>#include <string.h>#include <time.h>int q;#define _TM_DEFINED#ifndef
19、 _TM_DEFINED/*定義時(shí)間結(jié)構(gòu)體*/struct tm int tm_year;int tm_mon;int tm_mday;/*定義設(shè)備結(jié)構(gòu)體*/#endifstruct equipment int ID;char name20;e10;/*定義部門(mén)結(jié)構(gòu)體*/struct departmentint num;char name20;d4;/*購(gòu)買(mǎi)和報(bào)廢信息結(jié)構(gòu)體*/struct information int ID; /*設(shè)備名稱(chēng)*/int num; /*部門(mén)編號(hào)*/char date11; /*購(gòu)買(mǎi)日期*/char date111; /*報(bào)廢日期*/int style; /*設(shè)備
20、類(lèi)型*/double price; /*單價(jià)*/int number; /*購(gòu)買(mǎi)數(shù)量*/int number1; /*報(bào)廢數(shù)量*/double sum; /*總價(jià)*/struct information *next;/*函數(shù)的聲明*/ void load(struct information *head); /*將信息存儲(chǔ)到文件*/ int main_menu(); /*主菜單*/ void menu_select(int sel,struct information *head); /*進(jìn)行主菜單操作選擇*/ void load_equipment(); /*從文件中讀取設(shè)備信息*/ voi
21、d load_department(); /*從文件中讀取部門(mén)信息*/ void save_buy(struct information *head); /*對(duì)設(shè)備進(jìn)行購(gòu)買(mǎi)輸入*/void save_ruin(struct information *head); /*對(duì)設(shè)備進(jìn)行報(bào)廢輸入*/void ID_buy(struct information *head); /*通過(guò)設(shè)備編號(hào)查詢購(gòu)買(mǎi)信息*/void num_buy(struct information *head); /*通過(guò)部門(mén)編號(hào)查詢購(gòu)買(mǎi)信息*/void num_ruin(struct information *head); /*通
22、過(guò)部門(mén)編號(hào)查詢報(bào)廢信息*/void ID_ruin(struct information *head); /*通過(guò)設(shè)備編號(hào)查詢報(bào)廢信息*/void buy_menu(struct information *head); /*設(shè)備購(gòu)買(mǎi)查詢主菜單*/void ruin_menu(struct information *head); /*設(shè)備報(bào)廢查詢主菜單*/struct information *scanf_add(struct information *head); /*從TXT文件中導(dǎo)入上次存儲(chǔ)的設(shè)備處理信息*/void show_information(); /*顯示購(gòu)買(mǎi)和報(bào)廢設(shè)備信息記錄*
23、/void show_menu(struct information *head); /*顯示全部信息主菜單*/ int judge_date(char date11); /*判斷日期輸入是否正確*/ void show_list(struct information *head); /*部門(mén)可使用設(shè)備報(bào)表制作*/ void printftime(); /*調(diào)用系統(tǒng)時(shí)間*/void tongjishengyu(); /*統(tǒng)計(jì)剩余使用次數(shù)*/*選擇菜單欄*/void menu_select(int s,struct information *head)switch (s) case 1:syst
24、em("cls"); load_equipment();break;case 2:system("cls"); load_department();break; case 3:system("cls"); save_buy(head);break;case 4:system("cls"); save_ruin(head);break;case 5:system("cls"); buy_menu(head);break;case 6:system("cls"); ruin_me
25、nu(head);break;case 7:system("cls"); tongjishengyu(head);break;case 8:system("cls"); show_menu(head);break;case 9:system("cls"); show_list(head);break;case 0:system("cls"); printf("* *n");printf("* 使 用 ! *n");printf("* T1223-08-08 *n&q
26、uot;);printf("* XXX *n"); exit(0); /*顯示主菜單界面*/int main_menu() int i;printf(" 1*歡迎使用設(shè)備管理系統(tǒng)*1n");printf(" 1* 1.查詢?cè)O(shè)備信息 *1n");printf(" 1* 2.查詢部門(mén)信息 *1n");printf(" 1* 3.購(gòu)買(mǎi)設(shè)備 *1n");printf(" 1* 4.報(bào)廢設(shè)備 *1n");printf(" 1* 5.設(shè)備的購(gòu)買(mǎi)歷史查詢 *1n");p
27、rintf(" 1* 6.設(shè)備的報(bào)廢歷史查詢 *1n");printf(" 1* 7.剩余使用次數(shù) *1n");printf(" 1* 8.顯示全部信息 *1n");printf(" 1* 9.設(shè)備信息報(bào)表 *1n"); printf(" 1* 0.退出菜單 *1n");printf(" 1*1n");while(1) printf ("請(qǐng)選擇你所需要的操作序號(hào)(09):");doscanf("%d",&i);if(i<0
28、|i>9)printf("輸入有誤,請(qǐng)重新輸入(09):");rewind(stdin);while(i<0|i>9);system("cls");break;return i;/*讀取顯示設(shè)備信息*/void load_equipment() FILE *fp;struct equipment *pt1=e;system("cls");if (fp=fopen("設(shè)備名稱(chēng).txt","r")=NULL)printf ("打開(kāi)錯(cuò)誤!n");exit (0);
29、printf ("*設(shè)備信息界面*");printf ("nt 設(shè)備編號(hào)(110) 設(shè)備名n");while (!feof(fp)fscanf (fp,"%d%s",&pt1->ID,&pt1->name);printf ("ntt %dtt%s",pt1->ID,pt1->name);pt1+;if (fclose(fp)printf ("不能關(guān)閉文件!n");exit(0);printf ("nn*導(dǎo)入成功*n");printf(&
30、quot;n按Enter鍵返回");getchar();system("cls");/*讀取顯示部門(mén)信息*/void load_department() FILE *fp;struct department *pt1=d;system("cls");if (fp=fopen("部門(mén)名稱(chēng).txt","r")=NULL)printf("打開(kāi)錯(cuò)誤!n");exit (0);printf ("*部門(mén)信息界面*");printf ("ntt 部門(mén)編號(hào)(14) 部門(mén)名
31、稱(chēng)n");while (!feof(fp)fscanf (fp,"%d%s",&pt1->num,&pt1->name);printf ("ntt %dtt %s",pt1->num,pt1->name);pt1+; if (fclose(fp)printf ("不能關(guān)閉文件!n");exit(0);printf ("nn*導(dǎo)入成功*n");printf("n按Enter鍵返回");getchar();system("cls"
32、); /*記錄購(gòu)買(mǎi)設(shè)備的信息*/void save_buy(struct information *head) struct information *temp,*p=head;system("cls"); temp=(struct information *)malloc(sizeof(struct information); /*開(kāi)辟一個(gè)新單元*/while (p->next!=NULL)p=p->next; printf ("n設(shè)備編號(hào) 部門(mén)編號(hào) 購(gòu)買(mǎi)日期 設(shè)備狀態(tài)(1買(mǎi)-1廢) 設(shè)備數(shù)量 報(bào)廢數(shù)量 單價(jià) 總價(jià)n");printf(&q
33、uot;請(qǐng)輸入設(shè)備編號(hào)(110):");doscanf ("%d",&temp->ID);if(temp->ID<=0|temp->ID>10)printf ("輸入的設(shè)備編號(hào)有誤,請(qǐng)重新輸入(110):");rewind(stdin);while(temp->ID<=0|temp->ID>10);printf("請(qǐng)輸入部門(mén)編號(hào)(14):");doscanf ("%d",&temp->num);if(temp->num<
34、;=0|temp->num>4)printf ("輸入的部門(mén)編號(hào)有誤,請(qǐng)重新輸入(14):");rewind(stdin);while(temp->num<=0|temp->num>4);time_t tval;struct tm *data;tval = time(NULL);data = localtime(&tval); printftime(p->date);printf("n當(dāng)前時(shí)間(從系統(tǒng)調(diào)用)為:%s n",p->date);temp->date0=(data->tm_ye
35、ar+1900)/1000+'0'temp->date1=(data->tm_year+1900)/100%10+'0'temp->date2=(data->tm_year+1900)/10%100+'0'temp->date3=(data->tm_year+1900)%10+'0'temp->date4='-'temp->date5=(data->tm_mon+1)/10+'0'temp->date6=(data->tm_mon+1
36、)%10+'0'temp->date7='-'temp->date8=(data->tm_mday)/10+'0'temp->date9=(data->tm_mday)%10+'0'temp->date10='0' /*將日期裝換為字符型存入*/temp->style=1;printf("請(qǐng)輸入購(gòu)買(mǎi)設(shè)備數(shù)量(整數(shù)):");doscanf ("%d",&temp->number);if(temp->number<
37、;=0)printf("輸入的購(gòu)買(mǎi)設(shè)備數(shù)量有誤,請(qǐng)重新輸入購(gòu)買(mǎi)設(shè)備數(shù)量(整數(shù)):");rewind(stdin);while(temp->number<=0);temp->number1=0;temp->price=1*temp->ID;printf("請(qǐng)輸入設(shè)備單價(jià):");doscanf ("%lf",&temp->price);if(temp->price<=0)printf("輸入的設(shè)備單價(jià)有誤,請(qǐng)重新輸入設(shè)備單價(jià):");rewind(stdin);wh
38、ile(temp->price<=0);temp->sum=(temp->number)*(temp->price);printf("設(shè)備需要總價(jià):%.2lfnn",temp->sum);p->next=temp;temp->next=NULL;getchar();load(head); printf("*輸入完成,按 ENTER 返回!*");getchar();system("cls"); /*記錄報(bào)廢設(shè)備的信息*/void save_ruin(struct information
39、*head) char date210;FILE *fp;int m,n,s=0,o=0,g=0;struct information *temp,*p=head,*w;system("cls");temp=(struct information *)malloc(sizeof(struct information);w=temp;while (p->next!=NULL)p=p->next; printf ("n設(shè)備編號(hào) 部門(mén)編號(hào) 購(gòu)買(mǎi)日期 設(shè)備狀態(tài)(1買(mǎi)-1廢) 設(shè)備數(shù)量 報(bào)廢數(shù)量 單價(jià) 總價(jià)n");printf("請(qǐng)輸入設(shè)備編
40、號(hào)(110):");doscanf ("%d",&m);if(m<=0|m>10)printf ("輸入的設(shè)備編號(hào)有誤,請(qǐng)重新輸入(110):");rewind(stdin);while(m<=0|m>10);printf("請(qǐng)輸入部門(mén)編號(hào)(14):");doscanf ("%d",&n);if(n<=0|n>4)printf ("輸入的部門(mén)編號(hào)有誤,請(qǐng)重新輸入(14):");rewind(stdin);while(n<=0|n
41、>4);printf("n請(qǐng)輸入報(bào)廢日期,格式為(YYYY-MM-DD):");doaddress:scanf("%s",date2);if(judge_date(date2)=0)printf("n您輸入的日期格式不正確,請(qǐng)重新輸入(YYYY-MM-DD):");while(judge_date(date2)=0);if(strcmp(p->date,date2)>=0)printf("n>>>>>>>>提示:輸入時(shí)間不能小于購(gòu)買(mǎi)時(shí)間!請(qǐng)重新輸入:"
42、;);date20='0'goto address;strcpy(p->date1,date2);if (fp=fopen("購(gòu)買(mǎi)報(bào)廢記錄.txt","r+")=NULL)printf ("打開(kāi)錯(cuò)誤!n");exit(0);while (!feof(fp)fscanf (fp,"%d%d%s%d%d%d%lf%lfn",&w->ID,&w->num,w->date,&w->style,&w->number,&w->nu
43、mber1,&w->price,&w->sum);if(w->ID=m&&w->num=n)s=s+w->number;o=o+w->number1;g=s-o; printf("剩余使用數(shù)量:%d",g);q=g;temp->ID=m;temp->num=n;time_t tval;struct tm *data;tval = time(NULL);data = localtime(&tval); printftime(p->date);printf("n當(dāng)前時(shí)間(從系
44、統(tǒng)調(diào)用)為:%sn",p->date);temp->date0=(data->tm_year+1900)/1000+'0'temp->date1=(data->tm_year+1900)/100%10+'0'temp->date2=(data->tm_year+1900)/10%100+'0'temp->date3=(data->tm_year+1900)%10+'0'temp->date4='-'temp->date5=(data->
45、;tm_mon+1)/10+'0'temp->date6=(data->tm_mon+1)%10+'0'temp->date7='-'temp->date8=(data->tm_mday)/10+'0'temp->date9=(data->tm_mday)%10+'0'temp->date10='0'/*將日期裝換為字符型存入*/temp->style=-1;temp->number=0;printf("請(qǐng)輸入報(bào)廢設(shè)備數(shù)量(整數(shù))
46、1%d:",g);doscanf ("%d",&temp->number1);if(temp->number1<0|temp->number1>q)printf("輸入的報(bào)廢設(shè)備數(shù)量有誤,請(qǐng)重新輸入報(bào)廢設(shè)備數(shù)量(整數(shù)):");rewind(stdin);while(temp->number1<0|temp->number1>q);temp->price=1*temp->ID;printf("請(qǐng)輸入設(shè)備單價(jià):");temp->sum=(temp-&
47、gt;number1)*(temp->price);doscanf ("%lf",&temp->price);if(temp->price<=0)printf("輸入的設(shè)備單價(jià)有誤,請(qǐng)重新輸入設(shè)備單價(jià):");rewind(stdin);while(temp->price<=0);temp->sum=(temp->number1)*(temp->price);printf("設(shè)備需要總價(jià):%.2lfn",temp->sum);p->next=temp;temp-&
48、gt;next=NULL;getchar();load(head); printf("*輸入完成,按 ENTER 返回!*");getchar();system("cls"); /*通過(guò)設(shè)備編號(hào)查詢購(gòu)買(mǎi)信息*/void ID_buy(struct information *head )struct information *p=head;int ID1;printf("請(qǐng)輸入設(shè)備編號(hào)(110)");doscanf("%d",&ID1);if(ID1<=0|ID1>10)printf ("
49、;輸入的設(shè)備編號(hào)有誤,請(qǐng)重新輸入(110)");rewind(stdin);while(ID1<=0|ID1>10);if (p->next=NULL)printf ("購(gòu)買(mǎi)信息為空。n");getchar();getchar();system("cls"); return; printf ("n設(shè)備編號(hào) 部門(mén)編號(hào) 購(gòu)買(mǎi)日期 設(shè)備狀態(tài) 設(shè)備數(shù)量 報(bào)廢數(shù)量 單價(jià) 總價(jià)n");printf (" (1買(mǎi)-1廢) ");while (p!=NULL)if (ID1=p->ID&&
50、amp;p->style=1)printf ("n%d t %d t%s t%d t%d t%d t%.2f t%.2f",p->ID,p->num,p->date,p->style,p->number,p->number1,p->price,p->sum);p=p->next; printf("n*查詢完成,按 ENTER 返回!*");getchar();system("cls"); /*通過(guò)部門(mén)編號(hào)查詢?cè)O(shè)備購(gòu)買(mǎi)信息*/void num_buy(struct information *h
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司借款財(cái)務(wù)制度
- 名醫(yī)工作室財(cái)務(wù)制度
- 裝修公司項(xiàng)目部財(cái)務(wù)制度
- 宗教場(chǎng)所財(cái)務(wù)制度管理
- 養(yǎng)老院老人緊急救援預(yù)案制度
- 養(yǎng)老院老人健康飲食營(yíng)養(yǎng)師晉升制度
- 養(yǎng)老院老人安全管理制度
- 校園文化建設(shè)管理制度
- 敬老院財(cái)務(wù)管理制度
- 罕見(jiàn)血液病患者的疼痛管理策略-1
- 海內(nèi)外云廠商發(fā)展與現(xiàn)狀(三):資本開(kāi)支壓力與海外云廠需求情況拆解-國(guó)信證券
- 基于小動(dòng)物影像學(xué)探究電針百會(huì)、神庭穴改善缺血再灌注大鼠學(xué)習(xí)記憶的機(jī)制研究
- 2025年航運(yùn)行業(yè)航運(yùn)業(yè)數(shù)字化轉(zhuǎn)型與智能航運(yùn)發(fā)展研究報(bào)告及未來(lái)發(fā)展趨勢(shì)預(yù)測(cè)
- 安全生產(chǎn)責(zé)任保險(xiǎn)技術(shù)服務(wù)方案
- 溴化鋰清洗施工方案
- 2025年中國(guó)N-甲基嗎啉氧化物行業(yè)市場(chǎng)分析及投資價(jià)值評(píng)估前景預(yù)測(cè)報(bào)告
- 地質(zhì)鉆機(jī)安全培訓(xùn)課件
- 隧道爐安全操作培訓(xùn)課件
- 拆除爆破施工方案
- 2025年接觸網(wǎng)覆冰舞動(dòng)處置預(yù)案
- 剪映電腦剪輯課件
評(píng)論
0/150
提交評(píng)論