版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
-.z......資料....HUBEIUNIVERSITYOFAUTOMOTIVETECHNOLOGYC語言程序設(shè)計課程設(shè)計報告課設(shè)題目:銷售系統(tǒng)專業(yè):電氣工程及其自動化班級:T1123-6姓名:成績:完成日期:2012年6月18日-2012年6月22日指導(dǎo)教師:胡寧亞目錄TOC\o"1-2"\h\z\u1.課程設(shè)計目的22.需求分析22.1要求22.2任務(wù)描述22.3運(yùn)行環(huán)境32.4開發(fā)工具33.總體設(shè)計33.1系統(tǒng)流設(shè)計33.2系統(tǒng)模塊設(shè)計44.詳細(xì)設(shè)計54.1數(shù)據(jù)結(jié)構(gòu)設(shè)計54.2模塊接口設(shè)計64.3以下是幾個主要模塊的流程圖:75.運(yùn)行結(jié)果105.1主菜單界面:105.2銷售員信息錄入界面:105.3銷售產(chǎn)品信息錄入界面:115.4銷售信息錄入界面:115.5銷售信息查尋界面:115.6銷售信息保存界面:115.7題目顯示界面:115.8信息刪除界面:125.9銷售報表顯示界面:126.程序調(diào)試與測試126.1程序調(diào)試126.2程序測試127.問題與不足128.建議129.編程體會1210.程序源代碼:1211.參考文獻(xiàn)1312.用戶使用手冊131.課程設(shè)計目的通過課程設(shè)計,加深對結(jié)構(gòu)化程序設(shè)計思想的理解,能對系統(tǒng)功能進(jìn)行分析,并設(shè)計合理的模塊化結(jié)構(gòu)。通過課程設(shè)計,進(jìn)一步掌握C語言中重要的數(shù)據(jù)結(jié)構(gòu)。掌握并熟練運(yùn)用指針、鏈表、結(jié)構(gòu)體、文件等數(shù)據(jù)結(jié)構(gòu)。通過課程設(shè)計,提高程序開發(fā)能力,能運(yùn)用合理的控制流編寫清晰高效的程序。通過課程設(shè)計,培養(yǎng)C語言知識運(yùn)用和自學(xué)能力,真正的把課堂上獲得的知識運(yùn)用起來,培養(yǎng)自己對程序編寫的興趣,并能獨(dú)立設(shè)計和實(shí)現(xiàn)一個小型系統(tǒng)。通過課程設(shè)計,加強(qiáng)了自己的程序分析能力。2.需求分析2.1要求遵循軟件開發(fā)過程的基本規(guī);能靈活應(yīng)用,初步具備運(yùn)用C程序解決實(shí)際問題的能力。運(yùn)用結(jié)構(gòu)化程序設(shè)計方法,按照課程設(shè)計題目要求,完成包括需求分析、數(shù)據(jù)結(jié)構(gòu)設(shè)計、概要設(shè)計、詳細(xì)設(shè)計、編寫代碼、調(diào)試和測試C程序等過程。學(xué)會利用數(shù)組、結(jié)構(gòu)體、鏈表進(jìn)行相關(guān)信息表示。功能模塊劃分清晰,系統(tǒng)結(jié)構(gòu)圖符合功能操作要求,且有詳盡的功能描述各主要功能模塊有詳盡的流程圖及描述,用函數(shù)的形式實(shí)現(xiàn),且調(diào)用入口、功能、出口等關(guān)系正確。所設(shè)計的C程序較好的可讀性和可靠性;程序書寫風(fēng)格規(guī),注釋清晰。界面友好(良好的人機(jī)互交),凡需要輸入信息時,都有較詳盡的提示信息,并對輸入信息有較完善的值域分析。程序經(jīng)上機(jī)調(diào)試通過,不應(yīng)出現(xiàn)語法型、功能型錯誤,并獲得滿意的結(jié)果。學(xué)會通過各功能性測試用例測試程序的能力,盡可能避免原則性錯誤的出現(xiàn)。掌握編寫、調(diào)試和測試C語言程序的基本技巧,充分理解結(jié)構(gòu)化程序設(shè)計的基本方法。C語言課程設(shè)計報告的容反應(yīng)實(shí)際設(shè)計過程,且符合格式要求,無抄襲現(xiàn)象。2.2任務(wù)描述問題根據(jù)需求,該系統(tǒng)所應(yīng)包含的信息有以下一些:銷售管理的基本信息:銷售員編號,產(chǎn)品編號,銷售日期,銷售數(shù)量根據(jù)需求,該系統(tǒng)所應(yīng)實(shí)現(xiàn)的功能有以下一些:各種基本數(shù)據(jù)的錄入。如:銷售信息的錄入各種基本數(shù)據(jù)的修改。即:允許對已錄入的基本信息進(jìn)行編輯、修改。例:對銷售員編號的修改各種基本數(shù)據(jù)的刪除。如:指定銷售員、產(chǎn)品、銷售日期的記錄刪除基于各種數(shù)據(jù)的查詢。例:根據(jù)銷售員編號查詢銷售歷史系統(tǒng)以菜單方式工作,界面清晰,易于操作。2.3運(yùn)行環(huán)境Windows*P/7系統(tǒng)VC++6.0編譯環(huán)境2.4開發(fā)工具C語言3.總體設(shè)計3.1系統(tǒng)流程設(shè)計菜單顯示用戶輸入操作判斷用戶選擇的操作菜單顯示用戶輸入操作判斷用戶選擇的操作執(zhí)行相應(yīng)的操作退出退出圖1系統(tǒng)功能流程圖3.2系統(tǒng)模塊設(shè)計從文件導(dǎo)入銷售員信息退出系統(tǒng)從文件導(dǎo)入銷售員信息退出系統(tǒng)主菜單界面創(chuàng)建銷售員信息顯示銷售報表創(chuàng)建產(chǎn)品資料輸入銷售信息查詢銷售信息顯示題目刪除銷售信息保存銷售信息屏幕顯示銷售信息按銷售員編號查詢信息按銷售日期刪除信息按產(chǎn)品編號刪除信息按銷售員標(biāo)號刪除信息從鍵盤輸入銷售信息從文件導(dǎo)入銷售信息從文件導(dǎo)入產(chǎn)品信息從文件導(dǎo)入產(chǎn)品信息從鍵盤輸入銷售員信息圖2系統(tǒng)功能模塊圖模塊設(shè)計1.主菜單界面:構(gòu)造函數(shù)intmenu_show(),實(shí)現(xiàn)完成系統(tǒng)菜單的顯示。2.創(chuàng)建銷售員信息界面:構(gòu)造函數(shù)voidCreate_clerk(),實(shí)現(xiàn)銷售員信息創(chuàng)建系統(tǒng)的顯示。3.從文件導(dǎo)入銷售員信息界面:構(gòu)造函數(shù)函數(shù)voidscanf_clerk()實(shí)現(xiàn)從文件導(dǎo)入銷售員信息。4從鍵盤輸入銷售員信息界面:構(gòu)造函數(shù)voidclerk(),實(shí)現(xiàn)從鍵盤輸入銷售員信息。5.創(chuàng)建產(chǎn)品信息界面:構(gòu)造函數(shù)voidCreate_product(),實(shí)現(xiàn)產(chǎn)品信息創(chuàng)建系統(tǒng)的顯示。6.從文件導(dǎo)入銷售員信息界面:構(gòu)造函數(shù)voidscanf_product()實(shí)現(xiàn)從文件導(dǎo)入產(chǎn)品信息的界。7從鍵盤輸入銷售員信息界面:構(gòu)造函數(shù)voidproduct(),實(shí)現(xiàn)從鍵盤輸入產(chǎn)品信息。8.創(chuàng)建銷售信息界面以及從文件導(dǎo)入銷售信息界面:構(gòu)造函數(shù)voidadd(structinformation*head),實(shí)現(xiàn)銷售信息創(chuàng)建系統(tǒng)的顯示和通過構(gòu)造函數(shù)voidimport(char*filename,structinformation*p_root)從文件導(dǎo)入銷售信息。9.從鍵盤輸入銷售員信息界面:構(gòu)造函數(shù)voidinformation(structinformation*head),實(shí)現(xiàn)從鍵盤輸入銷售信息。10.保存銷售信息界面:構(gòu)造函數(shù)voide*port(char*filename,structinformation*p_root),實(shí)現(xiàn)銷售信息的保存。11查詢銷售信息界面:構(gòu)造函數(shù)voidsearch(structinformation*head),實(shí)現(xiàn)對銷售信息的查詢。12.顯示銷售報表:構(gòu)造函數(shù)voidprint(structinformation*head)實(shí)現(xiàn)對查詢界面的顯示并通過創(chuàng)建調(diào)用函數(shù)voidpri_*in(structinformation*head)實(shí)現(xiàn)對銷售報表的指定時間段的查詢。13.顯示題目界面:構(gòu)造函數(shù)voidshowoo()實(shí)現(xiàn)對題目的顯示。14.刪除銷售信息界面:構(gòu)造函數(shù)voidDelete(structinformation*head)實(shí)現(xiàn)對刪除銷售信息的界面顯示并通過調(diào)用構(gòu)造的函數(shù)voiddclerk(structinformation*head),voiddpro(structinformation*head),voiddclerk(structinformation*head)分別實(shí)現(xiàn)對指定銷售員編號,產(chǎn)品編號,銷售時間的銷售信息的刪除。15.退出系統(tǒng):用系統(tǒng)函數(shù)e*it(0);實(shí)現(xiàn)退出系統(tǒng)。4.詳細(xì)設(shè)計4.1數(shù)據(jù)結(jié)構(gòu)設(shè)計根據(jù)系統(tǒng)要求,系統(tǒng)中需要保存的數(shù)據(jù)信息,其結(jié)構(gòu)如下:數(shù)據(jù)項(xiàng)名稱數(shù)據(jù)項(xiàng)系統(tǒng)表示數(shù)據(jù)類型數(shù)據(jù)長度備注銷售員編號num,znum整數(shù),整數(shù)4,4銷售員name字符串30銷售員性別se*字符串3產(chǎn)品代號mark,zmark整數(shù),整數(shù)4產(chǎn)品名稱cp**字符串30產(chǎn)品價格price長整形8銷售時間date字符串11銷售數(shù)量amount整數(shù)4根據(jù)系統(tǒng)要求,系統(tǒng)中需要保存的類別信息,其結(jié)構(gòu)如下:類別代號類別名稱為了能實(shí)現(xiàn)不受限制的增加銷售信息,采用鏈表的結(jié)構(gòu)保存銷售信息,在增加銷售基本信息時,創(chuàng)建一個銷售信息的節(jié)點(diǎn),將其插入到鏈表中,示意圖如下。銷售銷售信息1銷售信息2通訊錄信息1221銷售信息3銷售信息4為此,先聲明一個類型為structinformation的結(jié)構(gòu)體,其成員為銷售信息。然后通過對指針、鏈表、文件等數(shù)據(jù)結(jié)構(gòu)的操作,實(shí)現(xiàn)對銷售信息的錄入,插入,存盤,查詢,瀏覽,刪除等一系列操作。其中,結(jié)構(gòu)體定義如下:structinformation{ intznum;/*銷售員編號*/ intzmark;/*產(chǎn)品代號*/ chardate[11];/*銷售日期*/ intamount;/*銷售數(shù)量*/ structinformation*ne*t;};4.2模塊接口設(shè)計所有函數(shù)模塊聲明如下:voidCreate_clerk();/*錄入銷售員資料函數(shù)*/voidCreate_product();/*錄入產(chǎn)品資料函數(shù)*/voidadd(structinformation*head);/*定義輸入銷售信息函數(shù)*/voidsearch(structinformation*head);/*定義查詢信息函數(shù)*/voidDelete(structinformation*head);/*定義刪除函數(shù)*/voiddclerk(structinformation*head);/*定義刪除指定銷售員的記錄函數(shù)*/voiddpro(structinformation*head);/*定義刪除指定產(chǎn)品的記錄函數(shù)*/voiddinf(structinformation*head);/*定義刪除指定日期的記錄函數(shù)*/voidprint(structinformation*head);/*定義顯示報表函數(shù)*/intmenu_show();/*主菜單函數(shù)*/voidmenu_select(intsel,structinformation*head);/*功能函數(shù)*/intjudge_date();/*判斷日期函數(shù)*/voidscanf_clerk();/*導(dǎo)入銷售員資料函數(shù)*/voidscanf_product();/*導(dǎo)入產(chǎn)品資料函數(shù)*/voidimport(structinformation*head);/*導(dǎo)入銷售信息函數(shù)*/voide*port(char*filename,structinformation*p_root)/*保存函數(shù)*/intchange_date();/*定義把時間格式轉(zhuǎn)換成整形*/主要模塊的實(shí)現(xiàn)系統(tǒng)以主函數(shù)voidmain()為入口,首先通過voidmenu_select(intsel,structinformation*head)以及intmenu_show()的嵌套使用進(jìn)入主菜單界面。voidmenu_select(intsel,structinformation*head)接收intmenu_show()的返回值讓系統(tǒng)接收用戶輸入的選擇,調(diào)用相應(yīng)的函數(shù),進(jìn)入到下一級菜單進(jìn)行相關(guān)工作。4.3以下是幾個主要模塊的流程圖:主菜單函數(shù):否否打印主菜單接收用戶選項(xiàng)是否合法調(diào)用對應(yīng)選項(xiàng)函數(shù)進(jìn)入下一級菜單退出系統(tǒng)是否是是否為0圖3主函數(shù)流程圖銷售信息輸入函數(shù):打印信息輸入子菜單打印信息輸入子菜單接收用戶選項(xiàng)是否合法是否為0否是是否是否為1從文件導(dǎo)入銷售信息從鍵盤輸入銷售信息是否回主菜單圖4銷售信息輸入圖4銷售信息輸入流程圖銷售信息刪除函數(shù):打印信息輸入子菜單打印信息輸入子菜單回主菜單選擇刪除方式回主菜單選擇刪除方式按銷售員編號刪除按產(chǎn)品編號刪除按銷售日前刪除按銷售員編號刪除按產(chǎn)品編號刪除按銷售日前刪除否否是否存在是否存在是是刪除界面刪除界面實(shí)現(xiàn)修改實(shí)現(xiàn)修改圖5銷售信息刪除流程圖圖5銷售信息刪除流程圖5.運(yùn)行結(jié)果5.1主菜單界面:圖6主菜單界面輸入功能選擇,系統(tǒng)自動進(jìn)入相應(yīng)功能界面。5.2銷售員信息錄入界面:圖7信息錄入界面1圖8信息錄入界面2圖9信息錄入界面35.3產(chǎn)品信息錄入界面圖10信息錄入界面4圖11信息錄入界面6圖12信息錄入界面75.4銷售信息錄入界面圖13信息錄入界面8圖14信息錄入界面9圖15信息錄入界面10:5.5銷售信息查詢界面:圖16銷售信息查尋界面115.6銷售信息保存界面圖17銷售信息保存界面5.7課題顯示界面圖18課題顯示界面5.8銷售信息刪除界面圖18銷售信息刪除界面5.9銷售報表瀏覽界面圖19銷售報表瀏覽界面1圖19銷售報表瀏覽界面26.程序調(diào)試與測試6.1程序調(diào)試調(diào)試過程及結(jié)果見板塊五各界面圖,分別對本程序輸入,保存,瀏覽,刪除以及顯示界面的美觀進(jìn)行了詳細(xì)的調(diào)試展示。6.2程序測試一.輸入模塊的測試數(shù)字輸入正確輸入為1~8的整數(shù),測試用例abc;測試結(jié)果日期輸入測試正確輸入格式為YYYY-MM—DD(日期界限為2001~2012年);測試用例1999-01-01,2013-01-01和20111-13-32;測試結(jié)果漢字輸入測試正確格式為漢字輸入如:魯迅,男;測試用例“abc”和“hao”測試結(jié)果測試問題分析1,測試中可能出現(xiàn)第一次輸入錯誤后輸入正確信息也顯示錯誤分析原因:輸入緩存未及時清除處理辦法:調(diào)用系統(tǒng)函數(shù)rewind(stdin)或fflush(stdin)清除緩存;2,對整數(shù)及特定格式的輸入無法很好的控制分析原因:僅采用單一的char或者int型控制;解決辦法:本程序大量采用字符型數(shù)組進(jìn)行控制,必要時用系統(tǒng)函數(shù)atoi轉(zhuǎn)換為int型。7.問題與不足需求分析中存在的問題和分析程序中缺少對銷售數(shù)量的排序以及對各個銷售數(shù)量段的統(tǒng)計,對于銷售管理系統(tǒng)而言,不便于對銷售員進(jìn)行獎罰管理。概要設(shè)計中存在的問題和分析本程序再設(shè)計中模塊過余冗雜,且分劃時相互嵌套,不利于管理。詳細(xì)設(shè)計中存在的問題和分析本程序在設(shè)計時文件和指針采用的是分開單獨(dú)編寫,因此在銜接過程中可能存在銜接問題。代碼編制中存在的問題和分析因?yàn)榭紤]到各個模塊的獨(dú)立性以便后續(xù)的其他功能的添加,本程序未使用全局變量,因此在程序的全面控制方面有缺陷。調(diào)試和測試中存在的問題和分析雖然程序指針走向在程序未運(yùn)行時每一步都基本了解,但程序函數(shù)相互調(diào)用時指針的走向不是很明確,需要不斷的調(diào)試才能確定程序的正確性。8.建議我本次的課設(shè)題目是銷售管理系統(tǒng),對這個題目,我建議加入銷售信息中銷售數(shù)量的排序功能,包括對每一天各銷售員銷售數(shù)量的排序和銷售員自己銷售數(shù)量的排序,這有利于銷售管理中對于銷售員的銷售業(yè)績的統(tǒng)計,方便管理另外我的題目中要求手動輸入銷售日期并判斷日期格式,我認(rèn)為可以改為調(diào)用系統(tǒng)時間,對時間的要求可以更精確。9.編程體會先吐吐苦水,這次課程設(shè)計熬了大概二十多天的夜,中途還夾著各種考試,很累啊。但是真的很不錯,充實(shí)!通過這次的課程設(shè)計對C語音的認(rèn)識和了解都有加深,在編寫過程中遇到很多的問題,看書,查資料,問老師,請教學(xué)長,每一各問題的解決都伴隨著輕松與沉重,因?yàn)閱栴}只會越來越少但是也會越來越困難。具體的我掌握了很多以前不知道或者不熟悉不會用的函數(shù),對C語音文件和指針的實(shí)用和認(rèn)識也更加熟悉,更重要的是了解到在程序編寫之前建立程序的主體框架圖是非常重要的,對于程序后續(xù)的編寫也具有指導(dǎo)作用。最后對在我的程序編寫過程中給我提供幫助和指導(dǎo)的老師、學(xué)長、同學(xué)表示感,你們!10.程序源代碼:/*銷售管理系統(tǒng) 制作者:春恒*/*include<stdio.h>*include<stdlib.h>*include<string.h>/*銷售員信息結(jié)構(gòu)體*/structclerk{ intnum;/*編號*/ charname[30];/**/ charse*[3];/*性別*/}cle[4];/*產(chǎn)品信息結(jié)構(gòu)體*/structproduct{ intmark;/*產(chǎn)品代號*/ charcp**[30];/*產(chǎn)品名稱*/ doubleprice;/*銷售價格*/}prod[5];/*銷售信息結(jié)構(gòu)體*/structinformation{ intznum;/*銷售員編號*/ intzmark;/*產(chǎn)品代號*/ chardate[11];/*銷售日期*/ intamount;/*銷售數(shù)量*/ structinformation*ne*t;};//intwriteinfo_flag=0;//structinformation*head=NULL,*temp;voidCreate_clerk();/*錄入銷售員資料函數(shù)*/voidCreate_product();/*錄入產(chǎn)品資料函數(shù)*/voidadd(structinformation*head);/*定義輸入銷售信息函數(shù)*/voidsearch(structinformation*head);/*定義查詢信息函數(shù)*/voidDelete(structinformation*head);/*定義刪除函數(shù)*/voiddclerk(structinformation*head);/*定義刪除指定銷售員的記錄函數(shù)*/voiddpro(structinformation*head);/*定義刪除指定產(chǎn)品的記錄函數(shù)*/voiddinf(structinformation*head);/*定義刪除指定日期的記錄函數(shù)*/voidprint(structinformation*head);/*定義顯示報表函數(shù)*//*文件保存*/voide*port(char*filename,structinformation*p_root){ FILE*fp=fopen(filename,"w+"); structinformation*p_current=p_root; inti=0; if(fp==NULL||p_current==NULL) return; while((p_current=p_current->ne*t)!=NULL) { fprintf(fp,"%d%d%s%d\n",p_current->znum,p_current->zmark,p_current->date,p_current->amount); } fclose(fp); printf("\n\n\n\n\n文件已保存!!!請按任意鍵繼續(xù)"); getchar();getchar();}/*從文件導(dǎo)入*/voidimport(char*filename,structinformation*p_root){ FILE*fp=fopen(filename,"r+"); structinformation*p_current=p_root,*p_new; inti=0,rtn; if(fp==NULL) return;do { p_new=(structinformation*)malloc(sizeof(structinformation)); if(p_new==NULL) return; rtn=fscanf(fp,"%d%d%s%d",&p_new->znum,&p_new->zmark,p_new->date,&p_new->amount); if(rtn!=EOF) { p_current->ne*t=p_new; p_current=p_new; } } while(rtn!=EOF); p_current->ne*t=NULL; free(p_new); fclose(fp); printf("\n\n\n\n\n文件已導(dǎo)入!!!請按任意鍵繼續(xù)"); getchar();getchar();}/**顯示函數(shù)*/intmenu_show();/*主菜單函數(shù)*/voidmenu_select(intsel,structinformation*head);/*功能函數(shù)*/intjudge_date();/*判斷日期函數(shù)*/voidscanf_clerk();/*導(dǎo)入銷售員資料函數(shù)*/voidscanf_product();/*導(dǎo)入產(chǎn)品資料函數(shù)*/voidscanf_add(structinformation*head);/*導(dǎo)入銷售信息函數(shù)*/intchange_date();/*定義把時間格式轉(zhuǎn)換成整形*//*根據(jù)參數(shù)選擇相應(yīng)的功能函數(shù)sel功能選擇代碼head鏈表頭節(jié)點(diǎn)*/voidmenu_select(intsel,structinformation*head) { voidshowoo();// voidwriteInfo(); switch(sel) { case0:Create_clerk();break; case1:Create_product();break; case2:add(head);break; case3:system("cls");e*port(".\\*.t*t",head);break; case4:search(head);break; case5:print(head);break; case6:system("cls"); case7:showoo();break; case8:Delete(head);break; printf("\n\n*****************************使用***************************************\n\n\n"); e*it(0); }}voidshowoo(){ system("cls"); printf("\n\n\n***********************************題目****************************************\n\n"); printf("問題描述:\n\n已知一公司*公司有4個銷售員(編號、、性別)\n"); printf("負(fù)責(zé)銷售5種產(chǎn)品(產(chǎn)品代號、產(chǎn)品名稱,銷售價格)。設(shè)計一程序,完成以下功能:"); printf("\n從鍵盤輸入銷售信息:銷售員編號、產(chǎn)品編號、銷售日期、銷售數(shù)量"); printf("\n輸入時需要判斷銷售員編號是否存在、產(chǎn)品編號是否存在、銷售數(shù)量是否大于0,\n銷售日期日期格式是否合法(格式為:YYYY-MM-DD(年限2001-2012),如2009-01-02)))"); printf("\n能輸出指定時間段的銷售統(tǒng)計報表"); printf("\n根據(jù)銷售員編號查詢銷售歷史情況"); printf("\n能刪除指定銷售員、產(chǎn)品、銷售日期的記錄"); printf("\n所有數(shù)據(jù)符合實(shí)際應(yīng)用要求"); printf("\n\n請按任意鍵繼續(xù)、、、、、、"); printf("\n********************************************************************************"); getchar();}/*菜單函數(shù),函數(shù)返回值為整數(shù),代表所選的菜單項(xiàng)*/intmenu_show(){ chars[80]; inti; printf("\n\t********************銷售管理系統(tǒng)***********************\n"); printf("\n\t\t0.創(chuàng)建銷售員個人資料\n"); printf("\n\t\t1.創(chuàng)建產(chǎn)品資料\n"); printf("\n\t\t2.輸入銷售信息\n"); printf("\n\t\t3.保存銷售信息\n"); printf("\n\t\t4.查詢銷售信息\n"); printf("\n\t\t5.顯示銷售信息報表\n"); printf("\n\t\t6.退出(任何情況下按Ctrl+C退出程序)\n"); printf("\n\t\t7.顯示題目\n"); printf("\n\t\t8.刪除銷售信息\n"); printf("\n\t*******************************************************\n"); printf("\n請輸入0-8之間的數(shù)選擇需要的操作:");/*提示輸入選項(xiàng)*/gets(s);while(1){ if(strlen(s)!=1||s[0]<'0'||s[0]>'8') {printf("\n輸入錯誤請輸入0-8之間的數(shù):"); fflush(stdin); gets(s);} elsebreak;}/*i=(int)s[0]-48;*/i=atoi(s); returni;/*返回選擇項(xiàng),主程序根據(jù)該數(shù)調(diào)用相應(yīng)的函數(shù)*/ }/******主函數(shù)開始*******/main(){ structinformation*head;/*定義鏈表的頭節(jié)點(diǎn)*/ intsize=sizeof(structinformation); head=(structinformation*)malloc(size); head->ne*t=NULL; for(;;)/*無限循環(huán)*/ { system("cls");/*清屏*/ menu_select(menu_show(),head); }}/*定義鍵盤輸入銷售員函數(shù)*/voidclerk(){ structclerk*pt1; inti,j=0; chars[100]; system("cls");/*清屏*/ printf("**********************************輸入界面**************************************\n"); printf("\n銷售員的編號性別(男or女)\n");printf("\n"); for(i=0;i<4;i++){ pt1=cle+i;printf("\n第%d個人資料(請輸入回車鍵開始):",i+1);getchar();printf("\n請輸入銷售員的編號%d:",i+1);gets(s);while(1){ if(strlen(s)!=1||atoi(s)!=i+1) {printf("\n輸入錯誤請輸入銷售員的編號%d:",i+1); fflush(stdin); gets(s);} elsebreak;}/*pt1->num=(int)s[0]-48;*/pt1->num=atoi(s);printf("\n請輸入(漢字):");scanf("%s",pt1->name);while(pt1->name[j]!=0){if(pt1->name[j]<0)j++;else{printf("\n輸入錯誤請再輸入(漢字):");fflush(stdin);scanf("%s",pt1->name);}}printf("\n請輸入性別(男或女):");scanf("%s",pt1->se*);while(!((strcmp(pt1->se*,"男")==0)||(strcmp(pt1->se*,"女")==0))){ printf("\n性別輸入有誤請重新輸入(男或女):");fflush(stdin); scanf("%s",pt1->se*);}}printf("\n輸入完畢??!\n\n");}/*定義文件導(dǎo)入銷售員函數(shù)*/voidscanf_clerk(){ structclerk*pt1=cle; FILE*fp; system("cls");/*清屏*/ if((fp=fopen("*iaoshoury.t*t","r"))==NULL){ printf("Fileopenerror!\n"); e*it(0); } printf("\n*********************************輸入界面**************************************\n"); printf("\n銷售員的編號(1-4)性別(男或女)\n"); while(!feof(fp)) { fscanf(fp,"%d%s%s",&pt1->num,pt1->name,pt1->se*); printf("\n%-12d%-15s%-15s\n",pt1->num,pt1->name,pt1->se*); pt1++; } if(fclose(fp)){ printf("不能關(guān)閉文件!!\n"); e*it(0); } printf("\n\n導(dǎo)入成功,按任意鍵返回!\n\n"); getchar();}/*定義創(chuàng)建銷售員資料函數(shù)*/voidCreate_clerk(){ intcel; chars[90];system("cls");/*清屏*/ printf("\n\n\n\n\t\t*******************輸入資料界面***************\n\n"); printf("\n\t\t1.通過文件導(dǎo)入銷售員資料\n"); printf("\n\t\t2.通過鍵盤輸入銷售員資料\n"); printf("\n\t\t0.返回\n\n"); printf("\n\t\t***********************************************\n"); printf("\n請輸入0-2之間的數(shù)選擇需要的操作:");gets(s);while(1){ if(strlen(s)!=1||s[0]<'0'||s[0]>'2') { printf("\n輸入錯誤請輸入0-2之間的數(shù):"); fflush(stdin); gets(s);} elsebreak;}/*i=(int)s[0]-48;*/cel=atoi(s); switch(cel) { case1:scanf_clerk();break; case2:clerk();break; case0:break; }/*getchar();讀入任意字符卡住屏幕信息*/}/*鍵盤輸入*/voidproduct(){ structproduct*pt2; inti=0,j; chars[81]; system("cls");/*清屏*/ printf("**********************************輸入界面**************************************\n"); printf("\n產(chǎn)品代號(1-5)名稱價格:"); printf("\n"); for(j=0;j<5;j++) { pt2=prod+j; printf("\n第%d個產(chǎn)品資料(請輸入回車鍵開始):",j+1); getchar();printf("\n請輸入產(chǎn)品代號數(shù)字%d:",j+1);gets(s);while(1)/*(pt2->mark!=j+1)*/{if(strlen(s)!=1||atoi(s)!=j+1) {printf("\n輸入錯誤請輸入產(chǎn)品編號%d:",j+1); fflush(stdin); gets(s);} elsebreak;}pt2->mark=atoi(s);printf("\n請輸入產(chǎn)品名稱(請輸入漢字):");scanf("%s",pt2->cp**);while(pt2->cp**[i]!=0){if(pt2->cp**[i]<0)i++;else{printf("\n輸入錯誤請再輸入產(chǎn)品名稱(請輸入漢字):");fflush(stdin);scanf("%s",pt2->cp**);}}fflush(stdin);printf("\n請輸入產(chǎn)品價格(數(shù)字):");scanf("%d",&(pt2->price));} printf("\n輸入完畢,按任意鍵返回!"); /*getchar();*/}/*定義文件導(dǎo)入產(chǎn)品資料*/voidscanf_product(){ structproduct*pt1=prod; FILE*fp; system("cls");/*清屏*/ if((fp=fopen("chanpin.t*t","r"))==NULL) { printf("Fileopenerror!\n"); e*it(0); } printf("************************************輸入界面************************************\n"); printf("\n產(chǎn)品代號(1-5)產(chǎn)品名稱價格\n"); while(!feof(fp)) { fscanf(fp,"%d%s%lf",&pt1->mark,pt1->cp**,&pt1->price); printf("\n%10d%19s%16.lf\n",pt1->mark,pt1->cp**,pt1->price); pt1++; } if(fclose(fp)){ printf("不能關(guān)閉文件?。n"); e*it(0); } printf("\n\n導(dǎo)入成功,按任意鍵返回!"); getchar();}/*新建產(chǎn)品資料*/voidCreate_product(){ intcel; chars[82]; system("cls");/*清屏*/ printf("\n\n\n\n\n\n\t\t**********************輸入資料界面**********************\n"); printf("\n\t\t1.通過文件導(dǎo)入產(chǎn)品資料\n"); printf("\n\t\t2.通過鍵盤輸入產(chǎn)品資料\n"); printf("\n\t\t0.返回\n"); printf("\n\t\t********************************************************\n"); printf("\n請輸入0-2之間的數(shù)選擇需要的操作:");gets(s);while(1){ if(strlen(s)!=1||s[0]<'0'||s[0]>'2') {printf("\n輸入錯誤請輸入0-2之間的數(shù):"); fflush(stdin); gets(s);} elsebreak;}cel=atoi(s);/*i=(int)s[0]-48;*/ switch(cel) { case1:scanf_product();break; case2:product();break; case0:break; }/*getchar();讀入任意字符卡住屏幕信息*/}/*定義判斷時間格式是否正確*/intjudge_date(chardate[11]){ inti,y,m,d,s1; s1=0; for(i=0;i<10;i++){ if(date[i]=='\0'){ s1=0; break; } } if(date[4]=='-'&&date[7]=='-'){ y=1000*(date[0]-48)+100*(date[1]-48)+10*(date[2]-48)+date[3]-48; m=10*(date[5]-48)+date[6]-48; d=10*(date[8]-48)+date[9]-48; } if(i==10&&y<2013&&y>2000){ if(y%4==0&&m==2&&d>0&&d<=29)s1=1; elseif(y%4!=0&&m==2&&d>0&&d<=28)s1=1; elseif((m==1||m==3||m==5||m==7||m==8||m==10||m==12)&&d>0&&d<=31)s1=1; elseif((m==4||m==6||m==9||m==11)&&d>0&&d<31)s1=1; }if(s1==0)printf("日期輸入錯誤??!"); returns1;}/*定義把時間格式轉(zhuǎn)換成整形*/intchange_date(chardate[11]){ inty; y=(int)10000000*(date[0]-48)+1000000*(date[1]-48)+100000*(date[2]-48)+10000*(date[3]-48)+1000*(date[5]-48)+100*(date[6]-48)+10*(date[8]-48)+date[9]-48;return(y);}/*定義鍵盤輸入銷售信息函數(shù)*/voidinformation(structinformation*head){ structinformation*temp,*p; chars[89]; inti=0; intsize=sizeof(structinformation); p=head; temp=(structinformation*)malloc(size);temp->ne*t=NULL; while(p->ne*t!=NULL) { p=p->ne*t; } system("cls"); printf("*********************************請輸入銷售信息********************************\n\n"); printf("銷售員編號(1~4)產(chǎn)品代號(1~5)日期(YYYY-MM-DD(年限2001-2012))銷售數(shù)量\n"); printf("\n"); printf("\n請輸入銷售員編號(1~4):"); gets(s);while(1){if(strlen(s)!=1||s[0]<'1'||s[0]>'4') {printf("\n輸入錯誤請輸入銷售員的編號(1~4):"); fflush(stdin); gets(s);} elsebreak;} temp->znum=atoi(s); printf("\n請輸入產(chǎn)品代號(1~5):"); gets(s);while(1){if(strlen(s)!=1||s[0]<'1'||s[0]>'5') {printf("\n輸入錯誤請輸入產(chǎn)品編號(1~5):"); fflush(stdin); gets(s);} elsebreak;} temp->zmark=atoi(s); printf("\n請輸入日期(YYYY-MM-DD(年限2001-2012)):"); scanf("%s",temp->date); while(judge_date(temp->date)==0) { printf("\n輸入錯誤請輸入日期(YYYY-MM-DD(年限2001-2012)):"); fflush(stdin); scanf("%s",temp->date); }fflush(stdin); printf("\n請輸入銷售數(shù)量(數(shù)字):"); scanf("%d",&temp->amount); p->ne*t=temp; printf("\n\n輸入完畢,按任意鍵返回!"); getchar();getchar();}/*定義文件導(dǎo)入銷售信息函數(shù)*/voidscanf_add(structinformation*head){ structinformation*pt1=head; structinformation*temp; intsize=sizeof(structinformation); FILE*fp; system("cls");/*清屏*/ if((fp=fopen("*in.t*t","r"))==NULL){ printf("Fileopenerror!\n"); e*it(0); } printf("\t**********************輸入銷售信息界面***************************\n"); printf("銷售員編號(1~4)產(chǎn)品代號(1~5)日期(YYYY-MM-DD(年限2001-2012))銷售數(shù)量(數(shù)字)\n"); while(!feof(fp)) { while(pt1->ne*t!=NULL) { pt1=pt1->ne*t; } temp=(structinformation*)malloc(size);/*申請新的地址*/ temp->ne*t=NULL; fscanf(fp,"%d%d%s%d",&temp->znum,&temp->zmark,temp->date,&temp->amount); printf("\n%8d%14d%26s%15d",temp->znum,temp->zmark,temp->date,temp->amount); pt1->ne*t=temp; pt1=temp; } if(fclose(fp)){ printf("不能關(guān)閉文件!!\n"); e*it(0); } printf("\n\n導(dǎo)入成功,按任意鍵返回!\n"); getchar();}/*定義輸入銷售信息函數(shù)*/voidadd(structinformation*head){ intcel; chars[84]; system("cls");/*清屏*/ printf("\n\n\n\n\n\n\t\t*********************輸入銷售信息界面***************\n"); printf("\n\t\t1.通過文件導(dǎo)入銷售信息記錄\n"); printf("\n\t\t2.通過鍵盤輸入銷售信息記錄\n"); printf("\n\t\t0.返回\n"); printf("\n\t\t*****************************************************\n"); printf("\n請輸入0-2之間的數(shù)選擇需要的操作:");gets(s);while(1){ if(strlen(s)!=1||s[0]<'0'||s[0]>'2') {printf("\n輸入錯誤請輸入0-2之間的數(shù):"); fflush(stdin); gets(s);} elsebreak;}cel=atoi(s); switch(cel) { case1:import(".\\*.t*t",head);break; case2:information(head);break; case0:break; }/*getchar();讀入任意字符卡住屏幕信息*/}/*定義刪除函數(shù)**/voidDelete(structinformation*head){ intcel; chars[85]; system("cls");/*清屏*/ printf("\n\t\t******************刪除記錄系統(tǒng)*****************\n\n"); printf("\n\t\t1.刪除指定銷售員的銷售信息記錄\n"); printf("\n\t\t2.刪除指定產(chǎn)品的銷售信息記錄\n"); printf("\n\t\t3.刪除指定銷售日期的銷售信息記錄\n"); printf("\n\t\t0.返回\n"); printf("\n\t\t***********************************************\n"); printf("\n請輸入0-3之間的數(shù)選擇需要的操作:");gets(s);while(1){ if(strlen(s)!=1||s[0]<'0'||s[0]>'3') {printf("\n輸入錯誤請輸入0-3之間的數(shù):"); fflush(stdin); gets(s);} elsebreak;}/*i=(int)s[0]-48;*/cel=atoi(s); switch(cel) { case1:dclerk(head);break; case2:dpro(head);break; case3:dinf(head);break; case0:break; } return;}voiddinf(structinformation*head){ chartemp[11]; inti=0;//;,qp; structinformation*p,*ptr1,*ptr2; p=head->ne*t; if(p==NULL) {/*未建銷售信息*/ printf("\n***銷售信息記錄為空!***\n***請先輸入銷售信息!***\n\n"); printf("按任意鍵返回!"); getchar();getchar(); return; } printf("\n請輸入要刪除記錄的銷售日期(YYYY-MM-DD(年限2001-2012)):"); scanf("%s",temp); while(judge_date(temp)==0) { printf("\n輸入錯誤請輸入日期(YYYY-MM-DD(年限2001-2012)):"); fflush(stdin); scanf("%s",temp); } //qp=atoi(temp); while(p!=NULL&&p->date==temp){/*要刪除結(jié)點(diǎn)為表頭結(jié)點(diǎn)*/ ptr2=p; p=p->ne*t; free(ptr2); } if(p==NULL){ printf("\n刪除成功!銷售信息已為空!\n"); printf("按任意鍵返回!");// writeinfo_flag=1; return; } /*要刪除結(jié)點(diǎn)為非表頭結(jié)點(diǎn)*/ ptr1=p; ptr2=p->ne*t; while(ptr2!=NULL){ if(strcmp(temp,ptr2->date)==0){ ptr1->ne*t=ptr2->ne*t; free(ptr2); i++; } else ptr1=ptr2; ptr2=ptr1->ne*t; } if(i!=0) printf("\n***刪除成功!***\n\n"); else printf("\n***沒有該日期的銷售信息****\n\n"); printf("按任意鍵返回!"); getchar();}/*定義刪除指定產(chǎn)品的記錄函數(shù)*/voiddpro(structinformation*head){ inta,i=0; chars[92]; structinformation*p,*ptr1,*ptr2; p=head->ne*t; if(p==NULL) {/*未建銷售信息*/ printf("\n***銷售信息記錄為空!***\n***請先輸入銷售信息!***\n"); printf("按任意鍵返回!"); getchar(); getchar(); return; } printf("\n請輸入要刪除記錄的產(chǎn)品編號(1~5):");gets(s);while(1){if(strlen(s)!=1||s[0]<'1'||s[0]>'5') {printf("\n輸入錯誤請輸入銷售員的編號(1~5):"); fflush(stdin); gets(s);} elsebreak;} a=atoi(s); /*scanf("%d",&a);*/ while(p!=NULL&&p->zmark==a){/*要刪除結(jié)點(diǎn)為表頭結(jié)點(diǎn)*/ ptr2=p; p=p->ne*t; free(ptr2); } if(p==NULL){ printf("\n刪除成功!銷售信息已為空!\n"); printf("按任意鍵返回!"); getchar(); getchar();// writeinfo_flag=1; return; } /*要刪除結(jié)點(diǎn)為非表頭結(jié)點(diǎn)*/ ptr1=p; ptr2=p->ne*t; while(ptr2!=NULL){ if(ptr2->zmark==a){ ptr1->ne*t=ptr2->ne*t; free(ptr2); i++; } else ptr1=ptr2; ptr2=ptr1->ne*t; } if(i!=0) printf("\n***刪除成功!****\n\n"); else printf("\n***沒有該產(chǎn)品的銷售信息****\n"); printf("按任意鍵返回!"); getchar(); getchar();}/*定義刪除指定銷售員的記錄函數(shù)*/voiddclerk(structinformation*head){ structinformation*p,*ptr1,*ptr2; chars[91]; inttemp,i=0; p=head->ne*t; if(p==NULL){/*未建銷售信息*/ printf("\n***銷售信息記錄為空!***\n***請先輸入銷售信息!***\n\n"); printf("按任意鍵返回!"); getchar();getchar(); return; } printf("\n請輸入要刪除記錄的銷售員編號(1~4):");gets(s);while(1){if(strlen(s)!=1||s[0]<'1'||s[0]>'4') {printf("\n輸入錯誤請輸入銷售員的編號(1~4):"); gets(s);} elsebreak;} temp=atoi(s); /* scanf("%d",&temp);*/ while(p!=NULL&&p->znum==temp){/*要刪除結(jié)點(diǎn)為表頭結(jié)點(diǎn)*/ ptr2=p; p=p->ne*t; free(ptr2); } if(p==NULL){ printf("\n刪除成功!銷售信息已為空!\n\n"); printf("按任意鍵返回!"); getchar();getchar(); return; } /*要刪除結(jié)點(diǎn)為非表頭結(jié)點(diǎn)*/ ptr1=p; ptr2=p->ne*t; while(ptr2!=NULL){ if(ptr2->znum==temp){ ptr1->ne*t=ptr2->ne*t; free(ptr2); i++; } else ptr1=ptr2;/*ptr1后移一個結(jié)點(diǎn)*/ ptr2=ptr1->ne*t;/*ptr2指向ptr1的后一個結(jié)點(diǎn)*/ } if(i!=0) printf("\n***刪除成功!***\n\n\n"); else printf("\n***沒有該銷售員的銷售信息****\n\n"); printf("按任意鍵返回!"); getchar(); getchar();}voidsearch(structinformation*head){ intinum,i=0; chars[95]; structinformation*ptr=head->ne*t; system("cls");/*清屏*/ printf("\n************************************查詢界面************************************\n\n"); if(ptr==NULL){ printf("\n\n\n\n*****銷售信息記錄為空!按任意鍵返回!*****"); getchar(); getchar(); return; } printf("\n請輸入要查詢的銷售員的編號(1~4):");gets(s);while(1){if(strlen(s)!=1||s[0]<'1'||s[0]>'4') {printf("\n輸入錯誤請輸入銷售員的編號(1~4):"); fflush(stdin); gets(s);} elsebreak;} inum=atoi(s); /*scanf("%d",&inum);*/ for(;ptr;ptr=ptr->ne*t) { if(ptr->znum==inum) { printf("\n銷售員編號:%d產(chǎn)品代號:%d銷售日期:%s銷售數(shù)量:%d\n",inum,ptr->zmark,ptr->date,ptr->amount); i++; } } if(i==0) printf("\n***沒有該銷售員的銷售信息!***\n\n"); printf("\n顯示完畢,按任意鍵返回!"); getchar(); getchar();}/*定義導(dǎo)出銷售信息報表函數(shù)*/voidfpint(structinformation*head){ inti,j; chars1[11],s2[11]; intreport[5][6]; inta,b; FILE*fp; structinformation*ptr=head->ne*t; system("cls");/*清屏*/ printf("\n請輸入銷售信息起始日期<YYYY-MM-DD(年限2001-2012)>:"); gets(s1);while(judge_date(s1)==0) { printf("\n輸入錯誤請輸入起始日期(YYYY-MM-DD(年限2001-2012)):"); gets(s1); } printf("\n請輸入銷售信息截止日期<YYYY-MM-DD(年限2001-2012)>:"); gets(s2); while(judge_date(s2)==0||change_date(s2)<change_date(s1)) { printf("\n輸入錯誤請輸入截止日期(YYYY-MM-DD(年限2001-2012)):"); fflush(stdin); gets(s2); } for(i=0;i<5;i++) for(j=0;j<6;j++) report[i][j]=0; if((fp=fopen("baobiao.t*t","w"))==NULL) { printf("不能打開文件!"); e*it(0); } fprintf(fp,"\n*********************************銷售信息統(tǒng)計報表*******************************\n"); fprintf(fp,"產(chǎn)品代號銷售之和\n"); fprintf(fp,"銷售員代號12345\n"); for(i=0;i<4;i++) { fprintf(fp,"%10d",i+1); for(j=0;j<5;j++) { for(ptr=head->ne*t;ptr;ptr=ptr->ne*t){ a=strcmp(s2,ptr->date); b=strcmp(ptr->date,s1); if(((ptr->zmark)==(j+1))&&((ptr->znum)==(i+1))&&(a>=0)&&(b>=0)) report[i][j]+=(ptr->amount); }/*累加指定銷售員,產(chǎn)品代號的銷售數(shù)量*/ fprintf(fp,"%11d",report[i][j]);/*打印指定銷售員,產(chǎn)品代號的銷售數(shù)量*/ report[i][5]+=report[i][j]; } fprintf(fp,"%10d\n",report[i][5]); } fprintf(fp,"每種產(chǎn)品之和"); for(j=0;j<6;j++){ for(i=0;i<4;i++) report[4][j]+=report[i][j]; fprintf(fp,"%9d",report[4][j]); } fprintf(fp,"\n\n"); if(fclose(fp)) { printf("文件無法關(guān)閉"); e*it(0); } printf("\n 報表導(dǎo)出成功!!!"); printf("\n按任意鍵返回!");getchar();}/*定義顯示報表函數(shù)*/voidpri_*in(structinformation*head){ inti,j;
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度報刊亭智能化升級改造加工安裝服務(wù)合同3篇
- 二零二五年度水庫承包及水利工程運(yùn)營管理合同3篇
- 二零二五版二手車買賣車輛運(yùn)輸保險合同3篇
- 二零二五年度企業(yè)財務(wù)培訓(xùn)及咨詢服務(wù)合同3篇
- 2025年度零擔(dān)運(yùn)輸保險代理服務(wù)合同4篇
- 2基于ARVR技術(shù)的遠(yuǎn)程醫(yī)療咨詢合同
- 2025版煤炭運(yùn)輸合同環(huán)保條款細(xì)則4篇
- 二零二五年度城市公園綠化提升改造合同4篇
- 二零二五年度煤礦廢棄物煤泥資源化處理合同4篇
- 二零二五年度章瀾離婚法律咨詢服務(wù)合同2篇
- 春節(jié)文化常識單選題100道及答案
- 2024年杭州師范大學(xué)附屬醫(yī)院招聘高層次緊缺專業(yè)人才筆試真題
- 制造業(yè)BCM業(yè)務(wù)連續(xù)性管理培訓(xùn)
- 24年追覓在線測評28題及答案
- TGDNAS 043-2024 成人靜脈中等長度導(dǎo)管置管技術(shù)
- 《陸上風(fēng)電場工程概算定額》NBT 31010-2019
- 工程建設(shè)項(xiàng)目內(nèi)外關(guān)系協(xié)調(diào)措施
- 招投標(biāo)法考試試題及答案
- 皮帶輸送機(jī)工程施工電氣安裝措施要點(diǎn)
- 藥房(冰柜)溫濕度表
- QJ903.9A-1995航天產(chǎn)品工藝文件管理制度管理用工藝文件編制規(guī)則
評論
0/150
提交評論