




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
HUBEIUNIVERSITYOFAUTOMOTIVETECHNOLOGYC語(yǔ)言 程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告課設(shè)題目:汽車(chē)零部件采購(gòu)管理專(zhuān)業(yè):電子信息工程(汽車(chē)電子)班級(jí):T1323-15姓名:徐倩成績(jī):完成日期:2014年19周指導(dǎo)教師:吳年志目錄C語(yǔ)言程序設(shè)計(jì)---------------------------------------------------------------------------------------------------0課程設(shè)計(jì)報(bào)告------------------------------------------------------------------------------------------------------01、課程設(shè)計(jì)目得----------------------------------------------------------------12、需求分析--------------------------------------------------------------------------------------------------------22、1要求----------------------------------------------------------------------------------------------------22、2任務(wù)描述-----------------------------------------------------------------------------------------------22、3運(yùn)行環(huán)境-----------------------------------------------------------------------------------------------32、4開(kāi)發(fā)工具-----------------------------------------------------------------------------------------------33、總體設(shè)計(jì)--------------------------------------------------------------------------------------------------------43、1系統(tǒng)流設(shè)計(jì) --------------------------------------------------------------------------------------------43、2系統(tǒng)模塊設(shè)計(jì) -----------------------------------------------------------------------------------------54、詳細(xì)設(shè)計(jì)--------------------------------------------------------------------------------------------------------64、1數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì) -----------------------------------------------------------------------------------------64、2模塊接口設(shè)計(jì) ----------------------------------------------------------------------------------------71)所有函數(shù)聲明 -------------------------------------------------------------------------------------72)全局變量 -------------------------------------------------------------------------------------------83)主要模塊得實(shí)現(xiàn) ----------------------------------------------------------------------------------94、3主要功能模塊得流程圖 ----------------------------------------------------------------------------95、運(yùn)行結(jié)果------------------------------------------------------------------------------------------------------- 125、1歡迎界面 --------------------------------------------------------------------------------------------- 125、2 主菜單頁(yè)面----------------------------------------------------------135、3信息查詢頁(yè)面 --------------------------------------------------------------------------------------- 135、4統(tǒng)計(jì)菜單頁(yè)面 --------------------------------------------------------------------------------------- 135、5顯示信息頁(yè)面 --------------------------------------------------------------------------------------- 145、6退出頁(yè)面 --------------------------------------------------------------------------------------------- 146、程序調(diào)試與測(cè)試 --------------------------------------------------------------------------------------------- 146、1主菜單選擇測(cè)試 ------------------------------------------------------------------------------------ 156、2采購(gòu)信息未從文件讀入 --------------------------------------------------------------------------- 166 、3采購(gòu)信息輸入調(diào)試 -----------------------------------------------------187、問(wèn)題與不足 --------------------------------------------------------------------------------------------------- 198、建議------------------------------------------------------------------------------------------------------------- 209、編程體會(huì)------------------------------------------------------------------------------------------------------- 2010、程序源代碼 -------------------------------------------------------------------------------------------------- 201、課程設(shè)計(jì)目得通過(guò)課程設(shè)計(jì),加深對(duì)結(jié)構(gòu)化程序設(shè)計(jì)思想得理解,能對(duì)系統(tǒng)功能進(jìn)行分析,并設(shè)計(jì)合理得模塊化結(jié)構(gòu)。通過(guò)課程設(shè)計(jì),進(jìn)一步掌握C語(yǔ)言中重要得數(shù)據(jù)結(jié)構(gòu)。掌握并熟練運(yùn)用指針、鏈表、結(jié)構(gòu)體、文件等數(shù)據(jù)結(jié)構(gòu)。通過(guò)課程設(shè)計(jì),提高程序開(kāi)發(fā)能力,能運(yùn)用合理得控制流編寫(xiě)清晰高效得程序。通過(guò)課程設(shè)計(jì),培養(yǎng)C語(yǔ)言知識(shí)運(yùn)用與自學(xué)能力,真正得把課堂上獲得得知識(shí)運(yùn)用起來(lái),培養(yǎng)自己對(duì)程序編寫(xiě)得興趣,并能獨(dú)立設(shè)計(jì)與實(shí)現(xiàn)一個(gè)小型系統(tǒng)。通過(guò)課程設(shè)計(jì),加強(qiáng)了自己得程序分析能力。2、需求分析2、1要求遵循軟件開(kāi)發(fā)過(guò)程得基本規(guī)范;能靈活應(yīng)用,初步具備運(yùn)用C程序解決實(shí)際問(wèn)題得能力。運(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ò)程。學(xué)會(huì)利用數(shù)組、結(jié)構(gòu)體、鏈表進(jìn)行相關(guān)信息表示。功能模塊劃分清晰,系統(tǒng)結(jié)構(gòu)圖符合功能操作要求,且有詳盡得功能描述各主要功能模塊有詳盡得流程圖及描述,用函數(shù)得形式實(shí)現(xiàn),且調(diào)用入口、功能、出口等關(guān)系正確。所設(shè)計(jì)得C程序較好得可讀性與可靠性;程序書(shū)寫(xiě)風(fēng)格規(guī)范,注釋清晰。界面友好(良好得人機(jī)互交),凡需要輸入信息時(shí),都有較詳盡得提示信息,并對(duì)輸入信息有較完善得值域分析。程序經(jīng)上機(jī)調(diào)試通過(guò),不應(yīng)出現(xiàn)語(yǔ)法型、功能型錯(cuò)誤,并獲得滿意得結(jié)果。學(xué)會(huì)通過(guò)各功能性測(cè)試用例測(cè)試程序得能力,盡可能避免原則性錯(cuò)誤得出現(xiàn)。掌握編寫(xiě)、調(diào)試與測(cè)試C語(yǔ)言程序得基本技巧,充分理解結(jié)構(gòu)化程序設(shè)計(jì)得基本方法。C語(yǔ)言課程設(shè)計(jì)報(bào)告得內(nèi)容反應(yīng)實(shí)際設(shè)計(jì)過(guò)程,且符合格式要求,無(wú)抄襲現(xiàn)象。2、2任務(wù)描述已知在汽車(chē)生產(chǎn)時(shí),需要向零部件生產(chǎn)廠商采購(gòu)零部件,設(shè)計(jì)一個(gè)汽車(chē)零部件采購(gòu)管理程序,以方便采購(gòu)管理部門(mén)對(duì)采購(gòu)零部件得管理。該單位每次采購(gòu)都有一個(gè)采購(gòu)編號(hào),每次采購(gòu)一種零部件。該程序應(yīng)該具有如下功能1) 添加并保存采購(gòu)信息:輸入采購(gòu)編號(hào),零部件名稱(chēng),采購(gòu)員名字,采購(gòu)日期,采購(gòu)價(jià)格,采購(gòu)數(shù)量,供貨單位,需要判斷采購(gòu)價(jià)格與數(shù)量就是否大于零,采購(gòu)編號(hào)就是否已存在,采購(gòu)日期就是否合法(形如****-**-**,例如2013-09-08)。2) 根據(jù)采購(gòu)編號(hào)查詢零部件采購(gòu)信息3) 根據(jù)零部件名稱(chēng)查詢其采購(gòu)信息4) 根據(jù)采購(gòu)編號(hào)修改已有采購(gòu)信息: 需要判斷修改后得采購(gòu)編號(hào)得唯一性,采購(gòu)日期得合法性(形如****-**-** ,例如2013-09-08)。5) 根據(jù)采購(gòu)編號(hào)刪除此條采購(gòu)信息6) 統(tǒng)計(jì)功能2、3運(yùn)行環(huán)境VC++6、0編譯環(huán)境2、4開(kāi)發(fā)工具語(yǔ)言3、總體設(shè)計(jì)3、1系統(tǒng)流設(shè)計(jì)程序整體功能結(jié)構(gòu)如圖一所示:開(kāi)始顯示課程以及學(xué)生信息顯示主菜單,輸入選擇讀 添取 加文 并件 保中 存得 采采 購(gòu)購(gòu) 信信 息息
由采購(gòu)編號(hào)查找零部件采購(gòu)信息
修改并保存采購(gòu)信息
由 刪零 除部 并件 保名 存稱(chēng) 余查 下找 采其 購(gòu)采 信購(gòu) 息信息
統(tǒng)計(jì)采購(gòu)信息
顯示所有采購(gòu)信息根據(jù)零部件名稱(chēng)統(tǒng)計(jì)其總 根據(jù)采購(gòu)員名字統(tǒng)計(jì)數(shù)量 其采購(gòu)次數(shù)3、2系統(tǒng)模塊設(shè)計(jì)1)封面模塊 函數(shù)voidhuanying() 與函數(shù)voidbyebye()構(gòu)成封面模塊,構(gòu)造與諧人機(jī)環(huán)境。2)菜單模塊
函數(shù)
void
menu()與函數(shù)
void
choise()
構(gòu)成選擇菜單,二級(jí)菜單
voidtongji()
構(gòu)成統(tǒng)計(jì)功能菜單。3)查詢模塊 函數(shù)voidnumshow()與函數(shù) voidnameshow()分別實(shí)現(xiàn)根據(jù)采購(gòu)編號(hào)與零部件名稱(chēng)查詢采購(gòu)信息得功能,
其中會(huì)有其她函數(shù)輔助。4)信息處理模塊
函數(shù)
voidchange()
實(shí)現(xiàn)信息修改功能,函數(shù)
voiddisapperr()
實(shí)現(xiàn)信息刪除功能,
voidinput()
實(shí)現(xiàn)信息添加功能,
void
save()
實(shí)現(xiàn)信息保存功能,
void
listCG()實(shí)現(xiàn)信息顯示功能,其中會(huì)有其她函數(shù)輔助。5)統(tǒng)計(jì)模塊 函數(shù) intnumber() 實(shí)現(xiàn)根據(jù)零部件名稱(chēng)統(tǒng)計(jì)其總數(shù)量功能,int times()實(shí)現(xiàn)根據(jù)采購(gòu)員名字顯示其采購(gòu)次數(shù)得功能,其中會(huì)有其她函數(shù)輔助。6)日期審查模塊 函數(shù)voidcheckdate() 使用標(biāo)志位方法實(shí)現(xiàn)對(duì)時(shí)間得審查。4、詳細(xì)設(shè)計(jì)4、1數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)根據(jù)系統(tǒng)要求,采購(gòu)信息包括:數(shù)據(jù)項(xiàng)名稱(chēng)數(shù)據(jù)項(xiàng)系統(tǒng)表數(shù)據(jù)類(lèi)型數(shù)據(jù)長(zhǎng)度備注示采購(gòu)編號(hào)P1->buynum字符串10零部件名稱(chēng)P1->itemname字符串10采購(gòu)日期P1->day字符串30采購(gòu)員名字P1->buyername字符串10采購(gòu)數(shù)量P1->count整型4采購(gòu)價(jià)格P1->price單精度8供貨單位P1->source字符串10為了能實(shí)現(xiàn)系統(tǒng)得優(yōu)越性與 c語(yǔ)言得精華采用鏈表得建立采購(gòu) 信 息 記 錄 表 , 示 意 圖 如 下 :采購(gòu)信息1 采購(gòu)信息2 采購(gòu)信息34、2模塊接口設(shè)計(jì)1)所有函數(shù)聲明viodhuanying();/*******封面函數(shù),顯示課程題目,學(xué)生信息******/voidmenu();/*****主菜單函數(shù),顯示各項(xiàng)功能*****/voidchoise();/*****根據(jù)主菜單選擇并執(zhí)行功能*****/voidreadinto();/**********讀取文件內(nèi)得采購(gòu)信息***********/voidinput();/*****從鍵盤(pán)添加采購(gòu)信息并保存到文件中******/voidlistCG();/**********顯示所有采購(gòu)信息**********/voidnumshow();/****根據(jù)采購(gòu)編號(hào)查詢對(duì)應(yīng)采購(gòu)信息并顯示****/voidnameshow();/****根據(jù)零部件名稱(chēng)查詢其采購(gòu)信息并顯示****/voidchange();/****根據(jù)采購(gòu)編號(hào)修改并顯示采購(gòu)信息****/voiddisapper();/****根據(jù)采購(gòu)編號(hào)刪除并顯示余下采購(gòu)信息****/voidtongji();/******統(tǒng)計(jì)功能菜單,顯示兩項(xiàng)統(tǒng)計(jì)功能*****/intnumber();/***根據(jù)零部件名稱(chēng)統(tǒng)計(jì)其購(gòu)買(mǎi)總數(shù)量****/inttimes();/****根據(jù)采購(gòu)員名字統(tǒng)計(jì)其采購(gòu)次數(shù)****/intchecktime(intyear,intmonth,intday);/*************審查日期輸入就是否符合要求**************/voidbyebye();/*************告別界面************/voidsave();/*********保存采購(gòu)信息********/2)全局變量1,用于存儲(chǔ)采購(gòu)信息得結(jié)構(gòu)體 structbuy;2,判斷文件就是否正確讀入得標(biāo)志位變量intflag;3,用于存儲(chǔ)采購(gòu)信息得結(jié)構(gòu)體指針:structbuy*head=NULL,*p,*p1,*p2,*p3 、3)主要模塊得實(shí)現(xiàn)系統(tǒng)以int main()為入口,首先調(diào)用 void huanying()顯示課程名稱(chēng)與學(xué)生信息,調(diào)用voidmenu()與voidchoise()實(shí)現(xiàn)功能顯示與功能選擇。接著,按照用戶得要求,調(diào)用voidnumshow()或voidnameshow()實(shí)現(xiàn)查詢功能,或調(diào)用voidchange(),voiddisapper()實(shí)現(xiàn)修改與刪除功能、、、、、、不管就是刪除還就是修改還就是添加都要調(diào)用voidsave()實(shí)現(xiàn)信息保存功能。添加與修改時(shí)還要調(diào)用
int
checktime(intyear,intmonth,intday)
函數(shù)對(duì)時(shí)間審查。當(dāng)不需要再執(zhí)行各項(xiàng)功能時(shí),調(diào)用
voidbyebye()
退出管理器。4、3主要功能模塊得流程圖1)封面模塊(以歡迎界面為例,退出界面與此類(lèi)似)顯示題目與學(xué)生信息進(jìn)入系統(tǒng)菜單模塊顯示主菜單接受用戶輸入選項(xiàng)否就是否合法?就就就是否為0?否否就是否為7?就就就是否合否法?退出管理系統(tǒng) 執(zhí)行用戶所選功能3)查詢模塊(以根據(jù)采購(gòu)編號(hào)查詢采購(gòu)信息為例 )輸入所查詢采購(gòu)編號(hào)4)信息處理模塊( 以添加采購(gòu)信息為例)編號(hào)主就是菜否單存在顯示編號(hào)對(duì)應(yīng)采購(gòu)信息 返回主菜單頁(yè)面輸入采購(gòu)編號(hào)統(tǒng)計(jì)模塊(以根據(jù)零部件名稱(chēng)統(tǒng)計(jì)采購(gòu)總數(shù)量為例)就就是否已存輸入零部件名稱(chēng),s=0在6)日期審查模塊否否就就是否存輸入采購(gòu)時(shí)間輸入采購(gòu)時(shí)間,并將其表示成y,m,d否就是否合s加上其數(shù)量返回主菜單調(diào)用voidchecktime()函數(shù)格?就就否就是否合輸入其她信息返回1顯示添加信息返回05、運(yùn)行結(jié)果5、1歡迎界面5、2主菜單5、3信息查詢頁(yè)面5、4統(tǒng)計(jì)菜單頁(yè)面5、5顯示信息頁(yè)面5、6退出頁(yè)面6、程序調(diào)試與測(cè)試測(cè)試數(shù)據(jù):采購(gòu)編號(hào)001001001002001003001004零部件名活塞輪胎后視鏡方向盤(pán)稱(chēng)采購(gòu)日期2013-09-22013-04-22013-09-082013-09-0737采購(gòu)員名劉堯徐倩衛(wèi)添翼李林琳字采購(gòu)數(shù)量90679089采購(gòu)價(jià)格90、00000078、00000078、00000067、000000供貨單位汽院十堰黃岡河南6、1主菜單選擇測(cè)試若用戶輸入錯(cuò)誤選項(xiàng),則如圖顯示 :6、2采購(gòu)信息未從文件讀入6、3采購(gòu)信息得輸入測(cè)試1) 若 添 加 得 采 購(gòu) 編 號(hào) 已 存 在 , 則 如 圖 顯示 :2)若添加得采購(gòu)信息日期格式輸入錯(cuò)誤,則如圖顯示3)若查詢得采購(gòu)編號(hào)輸入錯(cuò)誤,則如圖顯示4)若查詢得零部件名稱(chēng)輸入錯(cuò)誤,則如圖顯示5)若輸入價(jià)格為負(fù)數(shù)時(shí),如圖顯示6)若輸入得數(shù)量為負(fù)值時(shí),如圖顯示7、問(wèn)題與不足1、需求分析中存在得問(wèn)題每次只能從鍵盤(pán)中添加一條采購(gòu)信息, 當(dāng)遇到需要添加多條信息時(shí),比較麻煩。統(tǒng)計(jì)功能太少,如果要求幾個(gè)零部件得總價(jià),無(wú)法實(shí)現(xiàn)。2、程序中存在得缺陷每次運(yùn)行其她功能前都要先從文件中讀入,比較耗時(shí)。有些功能輸入錯(cuò)誤時(shí)無(wú)法重新輸入,而就是直接跳到主菜單。緩存較多 。8、建議題目應(yīng)更加貼近生活,這樣可以讓同學(xué)們瞧到 c語(yǔ)言得有用之處,激發(fā)同學(xué)們得學(xué)習(xí)熱情。課程設(shè)計(jì)得題目涉及范圍應(yīng)該更廣。程序設(shè)計(jì)得功能應(yīng)相對(duì)更加復(fù)雜一點(diǎn),這樣有利培養(yǎng)同學(xué)們得分析問(wèn)題,解決問(wèn)題得能力,同時(shí)也能提高同學(xué)們對(duì)代碼得掌握能力。再者,就就是驗(yàn)收時(shí)應(yīng)該要學(xué)生畫(huà)出鏈表結(jié)構(gòu)圖,幫助她們更加深刻得掌握知識(shí)。9、編程體會(huì)經(jīng)歷了編c語(yǔ)言課程設(shè)計(jì)后,我對(duì)這一學(xué)期c語(yǔ)言所學(xué)內(nèi)容有了更加深刻得了解與掌握,特別就是一直不懂得鏈表與指針, 現(xiàn)在發(fā)現(xiàn)自己都能運(yùn)用了,很開(kāi)心自己得進(jìn)步。所以,雖然寫(xiě)程序得過(guò)程中,遇到各種問(wèn)題,調(diào)試得時(shí)候也就是遇到各種令人頭大得問(wèn)題, 但能借助課程設(shè)計(jì)提高自己對(duì)指針與鏈表得熟練度, 提高自己對(duì)c語(yǔ)言編程得熟練度,也希望學(xué)??梢远嚅_(kāi)設(shè)一些這樣得課程, 既就是讓我們對(duì)自己所學(xué)知識(shí)得一個(gè)綜合理解與使用, 也可以提高我們得動(dòng)手實(shí)踐能力、對(duì)知識(shí)得運(yùn)用能力,更就是一個(gè)讓我們學(xué)會(huì)獨(dú)立思考得好機(jī)會(huì)。10、程序源代碼#include<stdio 、h>#include<stdlib 、h>#include<malloc 、h>#include<process 、h>#include<string 、h>#include<conio 、h>#defineLENsizeof(structbuy) // 申請(qǐng)結(jié)構(gòu)體空間#defineN100/***********申明程序中運(yùn)用得函數(shù)**************/voidhuanying();//封面函數(shù)voidreadinto();//讀取文件voidinput();//添加采購(gòu)信息voidlistCG();//顯示采購(gòu)信息voidnumshow();//根據(jù)采購(gòu)編號(hào)顯示采購(gòu)信息voidnameshow();//根據(jù)零部件名稱(chēng)顯示采購(gòu)信息voidchange();//修改采購(gòu)信息voiddisapper();//刪除采購(gòu)信息voidmenu();//顯示主菜單voidchoise();//選擇所需功能voidtongji();//統(tǒng)計(jì)功能菜單intnumber();//根據(jù)零部件名稱(chēng)統(tǒng)計(jì)采購(gòu)得零部件總數(shù)量inttimes();//根據(jù)采購(gòu)員名字統(tǒng)計(jì)采購(gòu)得零部件總數(shù)量intcheckdate(intyear,intmonth,intday);//檢測(cè)時(shí)間voidbyebye();//告別界面voidsave();//保存文件/*************定義全局變量*************/structbuy//定義結(jié)構(gòu)體{charbuynum[10];charitemname[10];charday[30];charbuyername[10];intcount;floatprice;charsource[10];structbuy*next;};intflag=0;/******flag 為文件就是否以正確讀入得標(biāo)志位 *******/structbuy*head=NULL,*p,*p1,*p2,*p3;/**** 定義結(jié)構(gòu)體指針****//****************** 主函數(shù)*******************/intmain(){huanying();getch();while(1){menu();
/******
顯示主菜單
*****/choise();
/******
顯示選擇功能
*****/}return0;}/***********************************************************
封面函數(shù)*********************************************************/voidhuanying(){printf("\n\n\n\t\t*****************************************************\n");printf("\t\t**\n");printf("\t\t*
c 語(yǔ)言課程設(shè)計(jì)*\n");printf("\t\t**\n");printf("\t\t*
學(xué)生姓名:徐倩*\n");printf("\t\t*
指導(dǎo)老師:吳年志*\n");printf("\t\t*
班級(jí):
T1323-15*\n");printf("\t\t*
學(xué)號(hào):
20130231538*\n");printf("\t\t*
聯(lián)系方式:(69180)
*\n");printf("\t\t**\n");printf("\t\t*
課程題目:汽車(chē)零部件采購(gòu)管理程序*\n");printf("\t\t**\n");printf("\t\t*****************************************************\n");fflush(stdin);printf(" 請(qǐng)按回車(chē)鍵繼續(xù)······ ");}/********************************************************* 告別界面********************************************************/voidbyebye(){printf("\n\n\n\t\t*****************************************************\n");printf("\t\t**\n");printf("\t\t*printf("\t\t*
@@
@ @
@@
@
@@@
*\n");@
@*\n");printf("\t\t*
@
@
@
@
@*\n");printf("\t\t*printf("\t\t*
@@@@@
@@@@@
@@@@@*\n");
*\n");printf("\t\t*
@
@
@
@*\n");printf("\t\t*
@
@
@
@*\n");printf("\t\t*
@@@@
@ @@@@
*\n");printf("\t\t**\n");printf("\t\t*
歡 迎 下 次
使用······
*
\n");printf("\t\t*****************************************************\n");}/******************************************************* 主菜單函數(shù)**********************************************/voidmenu(){system("cls");printf("\n\n\n\t\t***************歡迎使用汽車(chē)零部件管理系統(tǒng)*************\n");printf("\t\t|\t\t\t\t|\n");printf("\t\t|\t\t1,讀取采購(gòu)信息\t\t\t|\n");printf("\t\t|\t\t\t\t|\n");printf("\t\t|\t\t2,從鍵盤(pán)添加并保存采購(gòu)信息\t|\n");printf("\t\t|\t\t\t\t|\n");printf("\t\t|\t\t3,根據(jù)采購(gòu)編號(hào)查找零件信息\t|\n");printf("\t\t|\t\t\t\t|\n");printf("\t\t|\t\t4,根據(jù)零部件名稱(chēng)查找采購(gòu)信息\t|\n");printf("\t\t|\t\t\t\t|\n");printf("\t\t|\t\t5,修改并保存采購(gòu)信息\t\t|\n");printf("\t\t|\t\t\t\t|\n");printf("\t\t|\t\t6,刪除并保存余下采購(gòu)信息\t|\n");printf("\t\t|\t\t\t\t|\n");printf("\t\t|\t\t7,統(tǒng)計(jì)采購(gòu)信息\t\t\t|\n");printf("\t\t|\t\t\t\t|\n");printf("\t\t|\t\t8,顯示采購(gòu)信息\t\t\t|\n");printf("\t\t|\t\t\t\t|\n");printf("\t\t|\t\t0,退出管理系統(tǒng)\t\t\t|\n");printf("\t\t***************************************************\n");}/******************************************************** 讀入文件函數(shù)*************************************************/voidreadinto(){FILE*fp;
/****
文件指針***/intn=0;if((fp=fopen("lingjian
、txt","r"))==NULL)/****
打開(kāi)文件時(shí)無(wú)此文件****/{printf(" 文件打開(kāi)錯(cuò)誤:\n");exit(0);}p1=(structbuy*)malloc(LEN);head=p1;p1->next=NULL;while(!feof(fp))
/*****
讀取文件內(nèi)得信息
*****/{fscanf(fp,"%s%s%s%s%d%f%s",p1->buynum,p1->itemname,p1->day,p1->buyername,&p1->count,&p1->price,p1->source);p2=(structbuy*)malloc(LEN); /*********p2 指向新申請(qǐng)得節(jié)點(diǎn)**********/p1->next=p2;p3=p1;p1=p2;p1->next=NULL;}free(p2);p3->next=NULL;fclose(fp); /****** 關(guān)閉文件*****/flag=1;printf(" 文件讀取成功!\n");listCG();}/********************************************************選擇所需功能函數(shù)*********************************************/voidchoise(){intn;printf("------ 請(qǐng)從鍵盤(pán)輸入您得選擇( 0-8內(nèi)得整數(shù)):");scanf("%d",&n);while(n<0||n>8){printf(" 輸入不合法,請(qǐng)?jiān)佥斎胍淮危?");scanf("%d",&n);}switch(n){case1:system("cls"); /****** 清屏*****/readinto();break;case2:system("cls");input();break;case3:system("cls");numshow();break;case4:system("cls");nameshow();break;case5:system("cls");change();break;case6:system("cls");disapper();break;case7:system("cls");tongji();break;case8:system("cls");listCG();break;case0:system("cls");byebye();exit(0);}}/****************************************************從鍵盤(pán)添加并保存采購(gòu)信息函數(shù)********************************************/voidinput(){intn=0,i=0,k;charch;longy,m,d;if(flag==0){printf(" 未建立,采購(gòu)信息數(shù)據(jù)庫(kù)為空 \n");printf(" 按任意鍵返回");getch();return;}printf(" 請(qǐng)輸入將要添加得采購(gòu)編號(hào)(形如 001002,以回車(chē)鍵結(jié)束)\n");fflush(stdin);scanf("%s",p2->buynum);p1=head;while(p1!=NULL){if(strcmp(p2->buynum,p1->buynum)==0) /***** 找到數(shù)據(jù)庫(kù)信息中與輸入相同得采購(gòu)編號(hào) *******/{printf("printf("printf("printf("printf("printf("printf("printf("printf("
您輸入得采購(gòu)編號(hào)已存在!?。?);對(duì)應(yīng)零部件信息如下: ");采購(gòu)編號(hào):%s\n",p1->buynum);零部件名稱(chēng):%s\n",p1->itemname);采購(gòu)日期:%s\n",p1->day);采購(gòu)員名字:%s\n",p1->buyername);采購(gòu)數(shù)量:%d\n",p1->count);采購(gòu)價(jià)格:%f\n",p1->price);供貨單位:%s\n",p1->source);n=1;
/****
標(biāo)志位*****/printf("
請(qǐng)按任意鍵返回!
\n");getch();system("cls");break;}p1=p1->next;}if(n!=1){system("cls");p1=head;while(p1->next!=NULL)p1=p1->next;printf(" 請(qǐng)輸入");p2=(structbuy*)malloc(LEN); // 開(kāi)辟一個(gè)新單元fflush(stdin);for(i=0;i<7;i++){if(i==0){fflush(stdin);printf(" 采購(gòu)編號(hào)(數(shù)字字符串型):");scanf("%s",p2->buynum);}if(i==1){fflush(stdin);printf(" 零部件名稱(chēng)(文字或英文字符串型):");scanf("%s",p2->itemname);}if(i==2){do{printf(" 采購(gòu)日期(形如****-**-**
,以回車(chē)鍵結(jié)束
):");fflush(stdin);scanf("%s",p2->day);if(p2->day[4]=='-'&&p2->day[7]=='-'&&strlen(p2->day)==10){y=(p2->day[0]-48)*1000+(p2->day[1]-48)*100+(p2->day[2]-48)*10+(p2->day[3]-48);m=(p2->day[5]-48)*10+(p2->day[6]-48);d=(p2->day[8]-48)*10+(p2->day[9]-48);k=checkdate(y,m,d);/****根據(jù)函數(shù)返回值判斷就是否要重新輸入****/if(k==1)break;}}while(1);}if(i==3){fflush(stdin);printf(" 采購(gòu)員名字(文字或英文字符串型,以回車(chē)鍵結(jié)束):");scanf("%s",p2->buyername);}if(i==4){fflush(stdin);printf(" 采購(gòu)數(shù)量(文字或英文字符串型,以回車(chē)鍵結(jié)束):");scanf("%d",&p2->count);while(p2->count<0){printf(" 數(shù)量不能為負(fù)數(shù),請(qǐng)重新輸入! \n");scanf("%f",&p2->count);}}if(i==5){fflush(stdin);printf("采購(gòu)價(jià)格(數(shù)字型,以回車(chē)鍵結(jié)束):");scanf("%f",&p2->price);while(p2->price<0){printf(" 價(jià)格不能為負(fù)數(shù),請(qǐng)重新輸入! \n");scanf("%f",&p2->price);}}if(i==6){fflush(stdin);printf(" 供貨單位(文字或英文字符串型,以回車(chē)鍵結(jié)束):");scanf("%s",p2->source);}}p2->next=NULL;p1->next=p2;p1=head;system("cls");printf(" 所有信息如下,請(qǐng)核實(shí)----");while(p1!=NULL){printf(" 采購(gòu)編號(hào):%s\n",p1->buynum);printf(" 零部件名稱(chēng):%s\n",p1->itemname);printf(" 采購(gòu)日期:%s\n",p1->day);printf(" 采購(gòu)員名字:%s\n",p1->buyername);printf(" 采購(gòu)數(shù)量:%d\n",p1->count);printf(" 采購(gòu)價(jià)格:%f\n",p1->price);printf(" 供貨單位:%s\n",p1->source);printf("\n\n\n");p1=p1->next;}}save();printf(" 按任意鍵返回");fflush(stdin);scanf("%c",&ch);}/****************************************************根據(jù)采購(gòu)編號(hào)查找采購(gòu)信息函數(shù)**********************************************/voidnumshow(){charanum[10],ch;p1=head;if(p1==NULL){printf(" 采購(gòu)信息數(shù)據(jù)庫(kù)為空\(chéng)n");printf(" 按任意鍵返回");getch();system("cls");exit(0);}printf("請(qǐng)輸入所查零件編號(hào)(形如000001,以回車(chē)鍵結(jié)束):\n");getchar();scanf("%s",anum);while(p1!=NULL){if(strcmp(anum,p1->buynum)==0) /***找到與信息數(shù)據(jù)庫(kù)中與輸入相同得采購(gòu)編號(hào) ***/{printf(" 采購(gòu)編號(hào):%s\n",p1->buynum);printf(" 零部件名稱(chēng):%s\n",p1->itemname);printf(" 采購(gòu)日期:%d\n",p1->day);printf(" 采購(gòu)員名字:%s\n",p1->buyername);printf(" 采購(gòu)數(shù)量:%d\n",p1->count);printf(" 采購(gòu)單價(jià):%f\n",p1->price);printf(" 供貨單位:%s\n",p1->source);break;}elsep1=p1->next;}if(p1==NULL) /********p1==NULL 表示到最后都沒(méi)有找到與信息數(shù)據(jù)庫(kù)中與輸入相同得零部件名稱(chēng) ****/{printf("文件中沒(méi)有您所查找得采購(gòu)信息,請(qǐng)核對(duì)您得采購(gòu)編號(hào)就是否輸入正確!\n");printf(" 請(qǐng)按任意鍵返回返回!");fflush(stdin);scanf("%c",&ch);}printf(" 按任意鍵返回");fflush(stdin);scanf("%c",&ch);}/*****************************************************根據(jù)采購(gòu)零部件名稱(chēng)查找采購(gòu)信息****************************************/voidnameshow(){charaname[10],ch;intn=0;p1=head;if(p1==NULL){printf(" 采購(gòu)信息數(shù)據(jù)庫(kù)為空\(chéng)n");printf(" 按任意鍵返回");getch();system("cls");exit(0);}printf("請(qǐng)輸入所查零件名稱(chēng)(以回車(chē)鍵結(jié)束):\n");fflush(stdin);scanf("%s",aname);while(p1!=NULL){if(strcmp(p1->itemname,aname)==0){printf(" 采購(gòu)編號(hào):%s\n",p1->buynum);printf(" 零部件名稱(chēng):%s\n",p1->itemname);printf(" 采購(gòu)日期:%d\n",p1->day);printf(" 采購(gòu)員名字:%s\n",p1->buyername);printf(" 采購(gòu)數(shù)量:%d\n",p1->count);printf(" 采購(gòu)單價(jià):%f\n",p1->price);printf(" 供貨單位:%s\n",p1->source);n=1;}elsep1=p1->next;}if(n!=1){printf("文件中沒(méi)有您所查找得采購(gòu)信息,請(qǐng)核對(duì)您得零部件名稱(chēng)就是否輸入正確!\n");printf(" 請(qǐng)按任意鍵返回返回!");fflush(stdin);scanf("%c",&ch);}printf(" 按任意鍵返回");fflush(stdin);scanf("%c",&ch);}/***************************************************刪除并保存余下采購(gòu)信息函數(shù)*******************************************************/voiddisapper(){charanum[10],ch;if(flag==0) /******flag==0 表示未建立文件,標(biāo)志位法*******/{printf(" 未建立,采購(gòu)信息數(shù)據(jù)庫(kù)為空 \n");printf(" 按任意鍵返回");getch();return;}if(head==NULL){printf("\n 采購(gòu)信息數(shù)據(jù)庫(kù)為空,無(wú)法刪除 ,請(qǐng)按任意鍵返回:\n");getch();system("cls");return;}p1=head; /********p1 指向頭結(jié)點(diǎn)*******/printf(" 請(qǐng)輸入要?jiǎng)h除得采購(gòu)信息編號(hào) :\n");fflush(stdin);scanf("%s",anum);while(strcmp(anum,p1->buynum)!=0&&p1->next!=NULL)/**********找到要?jiǎng)h除得學(xué)號(hào)********/{p2=p1;p1=p1->next;}if(strcmp(anum,p1->buynum)==0){if(head->next==NULL)
/***********
只有一個(gè)節(jié)點(diǎn)得情況*********/{free(head);head=NULL;}else{if(head==p1)
/*********
要?jiǎng)h除得編號(hào)在第一個(gè)節(jié)點(diǎn)中*******/{head=p1->next;free(p1);}else{p2->next=p1->next;free(p1);}}printf(" 已刪除!\n");listCG();save();}else{printf("找不到此采購(gòu)編號(hào)對(duì)應(yīng)得采購(gòu)信息,請(qǐng)核您輸入得采購(gòu)編號(hào)就是否正確!");printf(" 按任意鍵返回:\n");fflush(stdin);}printf(" 按任意鍵返回");fflush(stdin);scanf("%c",&ch);}/*******************************************************修改并保存采購(gòu)信息函數(shù)****************************************************/voidchange(){charanum[10],ch;intt,k;longy,m,d;if(flag==0){printf(" 未建立,采購(gòu)信息數(shù)據(jù)庫(kù)為空 \n");printf(" 按任意鍵返回");getch();return;}if(head==NULL){printf("\n 采購(gòu)信息數(shù)據(jù)庫(kù)為空,無(wú)法修改 ,請(qǐng)按任意鍵返回:\n");getch();system("cls");return;}p1=head;printf(" 請(qǐng)輸入要修改采購(gòu)信息得采購(gòu)編號(hào)(形如 001002,以空格鍵結(jié)束):\n");fflush(stdin);scanf("%s",anum);while(strcmp(anum,p1->buynum)!=0&&p1->next!=NULL)p1=p1->next;if(strcmp(anum,p1->buynum)==0){printf("就是否修改采購(gòu)編號(hào)?就是(1)否(0))");/***********判斷各項(xiàng)就是否需要修改********/scanf("%d",&t);if(t==1){printf(" 請(qǐng)輸入修改后得采購(gòu)編號(hào) :\n");fflush(stdin);scanf("%s",p1->buynum);}printf(" 就是否修改零部件名稱(chēng)?就是( 1)否(0))");scanf("%d",&t);if(t==1){printf(" 請(qǐng)輸入修改后得零部件名稱(chēng) :\n");fflush(stdin);scanf("%s",p1->itemname);}printf("就是否修改采購(gòu)日期?就是(1)否(0))");scanf("%d",&t);if(t==1){do{printf(" 請(qǐng)輸入修改后得采購(gòu)日期 (形如****-**-** ,以回車(chē)鍵結(jié)束):");fflush(stdin);scanf("%s",p2->day);if(p2->day[4]=='-'&&p2->day[7]=='-'&&strlen(p2->day)==10){y=(p2->day[0]-48)*1000+(p2->day[1]-48)*100+(p2->day[2]-48)*10+(p2->day[3]-48);m=(p2->day[5]-48)*10+(p2->day[6]-48);d=(p2->day[8]-48)*10+(p2->day[9]-48);就是否要重新輸入
k=checkdate(y,m,d); /********/if(k==1)break;elsep
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 河南省平頂山市衛(wèi)東區(qū)2024-2025學(xué)年三下數(shù)學(xué)期末監(jiān)測(cè)試題含解析
- 南通市重點(diǎn)中學(xué)2024-2025學(xué)年初三下學(xué)期第一次高中畢業(yè)生復(fù)習(xí)統(tǒng)一測(cè)試物理試題試卷含解析
- 閩西職業(yè)技術(shù)學(xué)院《數(shù)控車(chē)床實(shí)訓(xùn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 幼兒閱讀教學(xué)方法培訓(xùn)
- 心理健康教育參賽
- 初中化學(xué)實(shí)驗(yàn)操作訓(xùn)練
- 我愛(ài)說(shuō)真話課件
- 人力資源管理招聘渠道
- 2025屆江蘇省蘇北三市高三二診模擬考試化學(xué)試卷含解析
- 中醫(yī)護(hù)理操作耳穴壓豆
- 高中生留學(xué)日本的方案
- 醫(yī)院培訓(xùn)課件:《ERAS在胃腸外科的應(yīng)用》
- 《立體圖形的直觀圖》教學(xué)設(shè)計(jì)、導(dǎo)學(xué)案、同步練習(xí)
- 小紅書(shū)食用農(nóng)產(chǎn)品承諾書(shū)示例
- 父親角色對(duì)幼兒社會(huì)性發(fā)展的影響的研究
- 鋰電池 應(yīng)急預(yù)案
- 數(shù)據(jù)挖掘(第2版)全套教學(xué)課件
- 華為供應(yīng)鏈管理(6版)
- 政務(wù)微信公眾平臺(tái)建設(shè)運(yùn)營(yíng)方案培訓(xùn)課件
- 勞務(wù)派遣勞務(wù)外包服務(wù)方案(技術(shù)方案)
- 全國(guó)小學(xué)英語(yǔ)賽課一等獎(jiǎng)繪本課《Big Cat Babies》
評(píng)論
0/150
提交評(píng)論