系統(tǒng)概要設(shè)計(jì)與系統(tǒng)詳細(xì)設(shè)計(jì)_第1頁(yè)
系統(tǒng)概要設(shè)計(jì)與系統(tǒng)詳細(xì)設(shè)計(jì)_第2頁(yè)
系統(tǒng)概要設(shè)計(jì)與系統(tǒng)詳細(xì)設(shè)計(jì)_第3頁(yè)
系統(tǒng)概要設(shè)計(jì)與系統(tǒng)詳細(xì)設(shè)計(jì)_第4頁(yè)
系統(tǒng)概要設(shè)計(jì)與系統(tǒng)詳細(xì)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩46頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 HYPERLINK 目錄系統(tǒng)開(kāi)發(fā)的必要要性及介紹系統(tǒng)概要設(shè)計(jì)系統(tǒng)詳細(xì)設(shè)計(jì)系統(tǒng)源代碼調(diào)試分析和測(cè)試試結(jié)果系統(tǒng)使用說(shuō)明書(shū)書(shū)心得體會(huì)參考文獻(xiàn)課程設(shè)計(jì)題目:倉(cāng)庫(kù)貨品信息管理系統(tǒng)統(tǒng)一、系統(tǒng)開(kāi)發(fā)的的必要性及介紹1.必要性倉(cāng)庫(kù)管理是現(xiàn)代代物流管理的的一個(gè)重要組組成部分,倉(cāng)倉(cāng)庫(kù)貨物管理理信息系統(tǒng)的的設(shè)計(jì),可以以實(shí)現(xiàn)對(duì)存儲(chǔ)儲(chǔ)貨物信息及及統(tǒng)計(jì)單據(jù)的的計(jì)算機(jī)管理理,簡(jiǎn)化作業(yè)業(yè)程序,提高高作業(yè)效率,為為企業(yè)創(chuàng)造更更高的利潤(rùn)。2.主要功能介介紹本系統(tǒng)有對(duì)庫(kù)存存貨品信息的的輸入、插入入、刪除、查查找等功能,并并能將建立和和更新的庫(kù)存存信息保存于于文件供輸出出或打印。對(duì)對(duì)于查找、刪刪除等功能要要求能按貨品品名、貨品號(hào)號(hào)分

2、別進(jìn)行。每每個(gè)貨品的相相關(guān)信息包括括:貨品號(hào)、貨貨品名、貨品品庫(kù)存量、進(jìn)進(jìn)貨日期、貨貨品生產(chǎn)廠家家及供應(yīng)商等等。二、系統(tǒng)概要設(shè)設(shè)計(jì)1.系統(tǒng)設(shè)計(jì)任任務(wù)要求系統(tǒng)能實(shí)現(xiàn)現(xiàn)庫(kù)存貨品信信息的輸入、插插入、刪除、查查找等功能,并并能將建立和更新新的庫(kù)存信息息保存于文件件供輸出或打打印。對(duì)于查查找、刪除等等功能能夠按按貨品名、貨貨品號(hào)分別進(jìn)進(jìn)行。每個(gè)貨貨品的相關(guān)信信息包括:貨貨品號(hào)、貨品品名、貨品庫(kù)庫(kù)存量、進(jìn)貨貨日期、貨品品生產(chǎn)廠家及及供應(yīng)商等。2.方案確定庫(kù)存貨品信息管管理系統(tǒng)要求求實(shí)現(xiàn)許多功功能,可遵循循結(jié)構(gòu)化程序序設(shè)計(jì)思想來(lái)來(lái)進(jìn)行本系統(tǒng)統(tǒng)的設(shè)計(jì)自頂向下,逐逐步細(xì)化,也也就是將軟件件設(shè)計(jì)任務(wù)劃劃分成許多

3、容容易解決的小小的子任務(wù),即即分解出許多多子功能模塊塊進(jìn)行設(shè)計(jì)。本本程序經(jīng)過(guò)分分析可劃分出出6個(gè)子任務(wù)務(wù):輸入、輸輸出、插入、刪刪除、查找和和保存。3.模塊劃分 (1)程序設(shè)設(shè)計(jì)模塊連接接圖庫(kù)存貨品信息管管理系統(tǒng)的模模塊連接結(jié)構(gòu)構(gòu)如下圖:倉(cāng)庫(kù)貨品信息管理系統(tǒng)倉(cāng)庫(kù)貨品信息管理系統(tǒng) 主程序模塊 主程序模塊 載入模塊保存模塊 查找模塊刪除模塊插入模塊 輸出模塊輸入模塊 載入模塊保存模塊 查找模塊刪除模塊插入模塊 輸出模塊輸入模塊4.環(huán)境要求硬件:PC機(jī)軟件:電腦安裝裝有TC集成成環(huán)境三、系統(tǒng)詳細(xì)設(shè)設(shè)計(jì)1數(shù)據(jù)結(jié)構(gòu)設(shè)設(shè)計(jì)(1)數(shù)據(jù)結(jié)構(gòu)構(gòu)的選擇選取動(dòng)態(tài)數(shù)據(jù)結(jié)結(jié)構(gòu),本系統(tǒng)統(tǒng)是通過(guò)雙向向鏈表來(lái)完成成的。動(dòng)態(tài)存

4、儲(chǔ)分配與與釋放:申請(qǐng)存儲(chǔ)空間函函數(shù)mallloc( )函數(shù)首部原型為為void * mallooc(unssignedd int size)釋放存儲(chǔ)空間函函數(shù)freee( )函數(shù)首部原型為為void frree(void*p)動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu)雙向鏈表 (2) 數(shù)據(jù)據(jù)類(lèi)型的選擇擇struct commoodity /*定定義雙向鏈表表結(jié)構(gòu)體*/int nuumber; /*貨物編號(hào)*/ char nnamemmax; /*貨物名稱稱*/ int coounterr; /*貨物數(shù)量量*/ structt commmodityy *pirror, *next; /*定義兩指指針,分別指指向其前驅(qū)和和后繼

5、*/;(3)變量函數(shù)數(shù)說(shuō)明:COM *innput( )操作結(jié)果:輸入入貨品信息COM *innsert_perf( )操作結(jié)果:插入入某貨品COM *deel_perrf( )操作結(jié)果:刪除除某貨品serch( )操作結(jié)果:查找找某貨品print_pperf( )操作結(jié)果:輸出出某貨品save(COOM*heaad)操作結(jié)果:保存存COM *oppenfille( )操作結(jié)果:載入入2.流程框圖查找模塊和載入入模塊的算法法框圖在此略略。開(kāi)始(1)輸入模塊塊開(kāi)始申請(qǐng)一個(gè)結(jié)點(diǎn)空間,使ptr1指向它申請(qǐng)一個(gè)結(jié)點(diǎn)空間,使ptr1指向它將ptr1指向結(jié)點(diǎn)輸入貨品的信息將ptr1指向結(jié)點(diǎn)輸入貨品的信息p

6、tr1-num!=0 Nptr1-num!=0NULL=ptr1NULL=ptr1Y ptr1!=NULLptr1!=NULL N是否為第一個(gè)數(shù)據(jù)(n=0) Y 是否為第一個(gè)數(shù)據(jù)(n=0) NPtr1=ptr2-next;ptr2=ptr1-prior YPtr1=ptr2-next;ptr2=ptr1-priorptr1=head Yptr1=headn+1=n, ptr1=ptr2n+1=n, ptr1=ptr2NULL=ptr2-nextNULL=ptr2-next 返回head 返回head結(jié)束結(jié)束(2)插入模塊塊 開(kāi)始 開(kāi)始調(diào)入載入模塊調(diào)入載入模塊Head=NULLHead=NULL

7、申請(qǐng)一個(gè)結(jié)點(diǎn)空間,使ptr3指向它申請(qǐng)一個(gè)結(jié)點(diǎn)空間,使ptr3指向它給ptr3指向結(jié)點(diǎn)輸入預(yù)插入貨品的信息給ptr3指向結(jié)點(diǎn)輸入預(yù)插入貨品的信息 Head=ptr1 Head=ptr1ptr1!=NULL Nptr1!=NULL Y返回NULLptr1=ptr2;ptr1-next=ptr1返回NULLptr1=ptr2;ptr1-next=ptr1ptr2=ptr1-priorptr3=ptr2-next;ptr2=ptr3-priorptr3=ptr2-next;ptr2=ptr3-priorNULL=ptr3-next“yes”or “no” “yes”or “no”Y 返回head返回

8、head結(jié)束結(jié)束開(kāi)始開(kāi)始(3)保存模塊塊輸入預(yù)保存文件的文件名輸入預(yù)保存文件的文件名創(chuàng)建文件成功創(chuàng)建文件成功 NN YHHead=ptr1Ptr1!=NULLPtr1!=NULL N YY將ptr1指向結(jié)點(diǎn)的數(shù)據(jù)寫(xiě)入文件將ptr1指向結(jié)點(diǎn)的數(shù)據(jù)寫(xiě)入文件PPtr1-next=ptr1結(jié)束結(jié)束開(kāi)始 開(kāi)始2030(4)輸出模塊塊2030 調(diào)用載入模塊調(diào)用載入模塊Head= =NULL Head= =NULLYHHead=ptr1輸出ptr1指向結(jié)點(diǎn)的貨品信息輸出ptr1指向結(jié)點(diǎn)的貨品信息 Ptr1-next=ptr1 Ptr1-next=ptr1PPtr1!=NULL YY N結(jié)束結(jié)束對(duì)以上各模塊的

9、的文字解釋說(shuō)說(shuō)明:(1)輸入模塊塊:其實(shí)就是是一個(gè)建立鏈鏈表的操作模模塊。建立鏈鏈表的具體操操作就是逐一一輸入各結(jié)點(diǎn)點(diǎn)數(shù)據(jù),并建建立其前后相相鏈的關(guān)系。首首先設(shè)三個(gè)指指針變量:hhead,pptr1,pptr2。它它們都是指向向結(jié)構(gòu)體類(lèi)型型數(shù)據(jù)的。先先使headd的值為NUULL,這是是鏈表為空的的情況。用mmallocc函數(shù)開(kāi)辟一一個(gè)結(jié)點(diǎn),并并使ptr11,ptr22都指向它,之之后從鍵盤(pán)讀讀入一個(gè)貨品品的數(shù)據(jù)給pptr1所指指向的結(jié)點(diǎn)。當(dāng)當(dāng)輸入的ptrr1-nuum不為0時(shí)時(shí),令heaadptrr1;ptrr2=ptrr1,即把pptr1的值值賦給heaad,使pttr2,pttr1,he

10、ead都指向向這一新開(kāi)辟辟的結(jié)點(diǎn),此此結(jié)點(diǎn)就成為為鏈表中的第第一個(gè)結(jié)點(diǎn)。再再開(kāi)辟一個(gè)新新結(jié)點(diǎn)并使pptr1指向向它,讀入該該結(jié)點(diǎn)的數(shù)據(jù)據(jù),如果輸入入的ptr11-numm不為0,則則應(yīng)鏈入這第第二個(gè)結(jié)點(diǎn),這這時(shí)和上一個(gè)個(gè)結(jié)點(diǎn)的處理理不同,是將將ptr1的的值賦給pttr2-nnext,也也就是使第一一個(gè)結(jié)點(diǎn)的nnext成員員指向第二個(gè)個(gè)結(jié)點(diǎn),接著著將ptr22也指向結(jié)點(diǎn)點(diǎn)2。再開(kāi)辟辟一個(gè)新結(jié)點(diǎn)點(diǎn)并使ptrr1指向它,讀讀入該結(jié)點(diǎn)的的數(shù)據(jù),同樣樣將ptr11的值賦給pptr2-next,也也就是使第三三個(gè)結(jié)點(diǎn)鏈接接到第二個(gè)結(jié)結(jié)點(diǎn)之后,并并接著將pttr1的值賦賦給ptr22,使ptrr2指向結(jié)點(diǎn)

11、點(diǎn)3。再開(kāi)辟辟一個(gè)新結(jié)點(diǎn)點(diǎn),并使pttr1指向它它,輸入該結(jié)結(jié)點(diǎn)的數(shù)據(jù),如如果輸入pttr1-nnum為0,則是輸入結(jié)結(jié)束標(biāo)志,此此結(jié)點(diǎn)不被鏈鏈接到鏈表中中,就將NUULL賦給pptr2-next。建建立鏈表過(guò)程程至此結(jié)束,pptr1最后后所指結(jié)點(diǎn)并并未鏈入鏈表表中。(2)插入模塊塊:要完成的的是鏈表的插插入操作,即即將一個(gè)新結(jié)結(jié)點(diǎn)插入到一一個(gè)已有的鏈鏈表中,對(duì)剛剛剛建立的鏈鏈表,首先新新設(shè)一個(gè)指針針變量ptrr0,并開(kāi)辟辟一個(gè)結(jié)點(diǎn)使使ptr3指指向它,輸入入該結(jié)點(diǎn)的數(shù)數(shù)據(jù),即新貨貨的有關(guān)數(shù)據(jù)據(jù),接下來(lái)查查找要插入位位置結(jié)點(diǎn),找找到后只需修修改此結(jié)點(diǎn)和和ptr0指指向結(jié)點(diǎn)指針針域的值即可可,鏈

12、表中所所有元素位置置均不需移動(dòng)動(dòng),這就體現(xiàn)現(xiàn)了鏈表的優(yōu)優(yōu)點(diǎn)。(3)刪除模塊塊:要完成的的是鏈表的刪刪除操作,只只需修改鏈表表中要?jiǎng)h除結(jié)結(jié)點(diǎn)的前一個(gè)個(gè)結(jié)點(diǎn)的鏈指指針。使之指指向被刪除結(jié)結(jié)點(diǎn)的后面一一個(gè)結(jié)點(diǎn)即可可。(4)保存模塊塊:將最終想想要保留的數(shù)數(shù)據(jù)信息保存存于文件中。(5)輸出模塊塊:要完成的的是依次輸出出鏈表中各結(jié)結(jié)點(diǎn)的數(shù)據(jù)的的操作。首先先找到鏈表頭頭結(jié)點(diǎn)的地址址,也就是hhead的值值,然后設(shè)一一個(gè)指針變量量ptr1,先先指向第一個(gè)個(gè)結(jié)點(diǎn),輸出ptrr1所指的結(jié)結(jié)點(diǎn),然后使使ptr1后后移一個(gè)結(jié)點(diǎn)點(diǎn),再輸入直直至鏈表的尾尾結(jié)點(diǎn)結(jié)束。四、系統(tǒng)源代碼碼#includde /*標(biāo)準(zhǔn)輸入/輸出

13、頭文件件*/#includde /*包含繪制圖圖形函數(shù)等頭頭文件*/#includde /*包含字符串串處理函數(shù)頭頭文件*/#includde /*包含動(dòng)態(tài)存存儲(chǔ)與釋放函函數(shù)頭文件*/#includde#definee LEN sizeoof(COMM)#definee PRINNT % -15ldd% -155s% -115dn,ptr11-numm,ptr11-namme,ptrr1-coount#definee CHECCK_COUUNT pttr1-ccountcounttnum);flusshall(); if(ptr1-num=0) pprintff(Pleease ppress

14、any kkey too backk to llast MMenu:); ggetch( ); ffree(pptr1); rreturnn(0); prinntf(PPleasee inpuut thee No.%d gooods%ss:n,n,strring2);scannf(%ss,&pttr1-nname); flusshall( ); /*刷新緩緩沖區(qū)函數(shù)*/ prinntf(PPleasee inpuut thee No.%d gooods%ss:n,n,strring3);scannf(%dd,&pttr1-ccount); flusshall( ); if(CCHECK_COU

15、NTT) prinntf(PPleasee inpuut thee righht gooodscouunt!nn); whiile(CHHECK_CCOUNT); whilee(ptr11-numm!=NULLL) if(n=1) heaad=ptrr1; elsee ptr22-nexxt=ptrr1; ptr1-prioor=ptrr2; n=n+1; ptr22=ptr11; if(ptr1=(COM* )mallloc(LLEN)=NULLL) printtf(Noo enouugh meemory,fail to crreat llinkliist!); geetch( ); do

16、prrintf(Pleaase innput tthe Noo.%d ggoods%s:nn,n,sstringg1); sccanf(%ld,&ptr11-numm); fllushalll( ); iff(ptr11-numm=0) ptr11-numm=NULLL; breaak; prrintf(Pleaase innput tthe Noo.%d ggoods%s:nn,n,sstringg2);sccanf(%s,&ptr1-namee); fllushalll( ); prrintf(Pleaase innput tthe Noo.%d ggoods%s:nn,n,sstring

17、g3);sccanf(%d,&ptr1-counnt); fllushalll( ); iff(CHECCK_COUUNT) prrintf(Pleaase innput tthe riight ggoodsccount!n); whhile(CCHECK_COUNTT); ptr2-nextt=NULLL; gotoxxy(1,224); printtf(Fiinish the iinputtting oof gooodsmeessagee,presss anyy key to baack too lastt Menuu,pleaase saave:); getchh(); returrn(

18、heaad);/*插入模塊*/COM * iinsertt( ) COM * ptr33; char strinng1 =gooodsnuumber; char strinng2 =gooodsnaame; char strinng3 =gooodscoount; char judgee10; clrsccr( ); gotoxxy(18,10); printtf(Pllease inputt inseerted goodssflieename:); head=openffile( ); if(heead=NNULL) returrn(NULLL); else do cclrscrr( );

19、pprintff(Pleease iinput inserrted ggoodsgoodssmessaage:nn); iif(pttr3=(CCOM*)mmallocc(LEN)=NUULL) printtf(Noo enouugh meemory,fail to crreat nnode!); getchh(); do prrintf(Pleaase innput ggoods%s(00):n,striing1);scanff(%ldd,&pttr3-nnum); fllushalll( ); iff(ptr33-nummnaame);fflushaall( ); priintf(Plea

20、sse inpput gooods%s:n,striing3);scanff(%d,&(pttr3-ccount); fllushalll( ); if(CHECKK_COUNNT2) priintf(Pleasse inpput thhe rigght gooodscoount(0)!nn); whiile(CHHECK_CCOUNT22); ptrr1=heaad; whiile(pttr1!=NNULL) pttr2=pttr1; pttr1=pttr1-nnext; pttr1-pprior=ptr2; ptr2-nnext=pptr3;ptr3-pprior=ptr2; ptrr3-

21、neext=NUULL; priintf(nInssertinng succcess!Cotinnue too inseert?(yyes orr no):); scaanf(%s,juudge); clrrscr( ); whille(! sstrcmpp(judgge,yees); gotoxyy(20,110); printff(Inssertinng succcess!n); gotoxyy(18,111); printff(Preess anny keyy to bback tto lasst Mennun); gotoxyy(16,112); printff(Andd makee

22、suree to SSave(66) theem or you wwill llose tthem!n); getch( ); returnn(headd);/*刪除模塊*/COM *deelet( ) charr namee10; charr judgge10; int sel; int del_nnum; clrsscr( ); gotooxy(200,10); prinntf(PPleasee inpuut dellectedd gooddsfliienamee:); headd=opennfile( ); clrsscr( ); if(hhead=NULL) reeturn(NULL)

23、; elsee do ddo clrsscr( ); gotooxy(3,4); prinntf(PPleasee inpuut dellectedd gooddsmesssage:); gotooxy(1,9); prinntf( *11.Del depennd on goodssnumbeern); gotooxy(1,10); prinntf( *22.Del depennd on goodssnamen); gotooxy(100,22); prinntf(ppleasee chooose a numbeer bettween 1 andd 2:); scannf(%dd,&seel)

24、; swittch(seel) caase 1:clrsccr( ); gotoxxy(6,66); printtf(Pllease inputt gooddsnumbber:); scanff(%d,&dell_num); breakk; caase 2:clrsccr( ); gotoxxy(6,66); printtf(Pllease inputt gooddsnamee:); scanff(%s,&namme); breakk; whille(sell!=1&sel!=2); pttr1=heead; if(pttr1-nnum=ddel_nuum|(sstrcmpp(ptr11-na

25、mme,namme)=00) hhead=pptr1-next; printtf(Suuccesss to ddelectt gooddsmesssage!n); elsee /*判判斷是否是目目標(biāo)結(jié)點(diǎn)*/ whhile(pptr1!=NULL&ptr11-numm!=dell_num&strccmp(pttr1-nname,nname)!=0) pptr2=pptr1; pptr1=pptr1-next;ptr1-pprior=ptr2; if(ptr1-num=del_num|(strccmp(pttr1-nname,nname)=0) ptr2-nextt=ptr11-nexxt; pt

26、r1-nextt-priior=pttr1-pprior; ffree(pptr1); printtf(nnSucceess too deleect gooodsmeessagee!nnn); elsee prinntf(nCant finnd thiis gooodsmesssage!nn); printtf(Cootinuee to ddelectt?(yess or nno):); scanff(%s,judgge); whille(!sttrcmp(judgee,yess); clrsccr( ); gotoxxy(20,10); printtf(Deelectiing suucces

27、ss!n); gotoxxy(18,11); printtf(Prress aany keey to back to laast Meenun); gotoxxy(16,12); printtf(Annd makke surre to Save(6) thhem orr you will lose them!n); getchh( ); returrn(heaad); /*查找模塊塊*/void seearch( )char nname110; char jjudge10; int seel; long iint seel_numm; clrscrr( ); gotoxyy(18,110);

28、printff(Pleease ppress searcched ggoodsflienname:); head=oopenfiile( ); if(heaad=NUULL) returrn; else do doo cclrscrr( ); ggotoxyy(5,4); pprintff(Pleease cchoosee the way tto seaarch:); ggotoxyy(1,9); pprintff( *1.SSearchh depeend onn gooddsnumbbern); pprintff( *1.SSearchh depeend onn gooddsnameen);

29、 ggotoxyy(10,222); pprintff(pleease cchoosee a nuumber betweeen 1 and 22:); sscanf(%d,&sel); sswitchh(sel) caase 1:clrsccr( ); printtf(Pllease inputt gooddsnumbber:); scanff(%ldd,&seel_numm); breakk; caase 2:clrsccr( ); prrintf(Pleaase innput ggoodsnname:); scanff(%s,namee); breakk; wwhile(sel!=1&se

30、el!=2); ptrr1=heaad; whiile(pttr1!=NNULL&ptr1-num!=sel_num&strcmmp(ptrr1-naame,naame)!=0) ptrr1=ptrr1-neext; if (ptrr1-nuum=seel_numm)|(sstrcmpp(ptr11-namme,namme)=00) prinntf(n Succcess tto seaarch ggoodsmmessagge!n); prinntf(ggoodsnnumberr goodssname gooodscoountnnn); prinntf(PRRINT); elsse pprint

31、ff(nCCant find this goodssmessaage!nnn); pprintff(Cottinue to seearch?(yes or noo):); sscanf(%s,judgee); whhile(!strcmmp(juddge,yyes); gottoxy(110,24); priintf(Pleasse preess anny keyy to bback tto lasst Mennu:); gettch( ); /*輸出模塊*/void prrint( ) int ii=1; clrsccr( ); gotoxxy(18,10); printtf(Pllease

32、 inputt prinnted ggoods:); head=openffile( ); if(heead=NNULL) reeturn; else cllrscr( ); prrintf( TThe prrintedd resuult ass folllows:n); prrintf(gooddsnumbber gooodsnamme goodsscounttnn); pttr1=heead; doo prinntf(PRRINT); ptr11=ptr11-nexxt; if(ii/10=1) /*超過(guò)十行行換頁(yè)*/ i=0; prrintf(Presss anyy key to chh

33、ange page:); geetch( ); cllrscr( ); gootoxy(0,6); prrintf(gooddsnumbber gooodsnaame gooodscoountnnn); i=i+11; wwhile(ptr1!=NULLL); gottoxy(110,24); priintf(Pleasse preess anny keyy to bback tto lasst Mennu:); gettch( ); /*保存模塊*/void saave(COOM *heead) clrsccr(); gotoxxy(8,113); printtf(Pllease input

34、t saveed gooods(llimit to leetter or nuumber):); scanff(%s,); if(ffp=foppen(sttrcat(),wbb)=NULL) /*以二進(jìn)制制只寫(xiě)方式打打開(kāi)一個(gè)流*/ priintf(Fail to crreat FFILE!); gettch( ); retturn; ptr1=ptr2=head; whilee(ptr11!=NULLL) if(ffwritee(ptr11,sizeeof(COOM),1,fp)!=1) prrintf(Faill to pprint messaage too FILEE!); geetch

35、( ); reeturn; ptr1=ptr1-nextt; fclosse(fp); gotoxxy(10,24); printtf(Saaving succeess!Prress aany keey to back to laast Meenu:); getchh();/*載入模塊*/COM * oopenfiile( )int n=1; scanf(%s,); if(fpp=fopeen(strrcat(),rb)=NNULL) gotoxxy(15,13); printtf(Thhis iisnt existt,pleaase chheck iif exiist.nnpresss an

36、y key bback tto Mennu); getchh( ); returrn(NULLL); if(pttr1=pttr2=(CCOM*)mmallocc(LEN)=NUULL) printtf(Noo enouugh meemory,fail to crreat llinkliist!nnPleasse preess anny keyy backk to MMenunn); getch( ); returnn(NULLL); if(freead(pttr1,siizeof(COM),1,fp)!=1) /*從ffp指向的流流中讀取1個(gè)個(gè)字段,每個(gè)個(gè)字段為COOM的字符長(zhǎng)長(zhǎng),并把它們們

37、放到ptrr1指向的字字符數(shù)組中,文文件的位置指指示器隨著所所讀取的字符符數(shù)而下移*/ prinntf(FFail tto priint meessagee fromm FILEE!nPllease presss any key bback tto Mennun); getcch( ); retuurn(NUULL); if(ptrr1-neext=NNULL) head=ptr1; else do if(nn=1) headd=ptr11; else ptr2-nextt=ptr11; n=n+11; ptr2=ptr1; if(pptr1=(COM*)mallooc(LENN)=NNULL

38、) priintf(No ennough memorry,faiil to creatt linkklist!nPleease ppress any kkey too backk to MMenunn); getcch( );returrn(NULLL); if(frread(pptr1,ssizeoff(COM),1,fpp)!=1) prinntf(FFail tto priint meessagee fromm FILEE!nPllease presss any key tto bacck to Menun); getchh( );rreturnn(NULLL); whille(ptrr

39、1-neext!=NNULL); ptr22-nexxt=ptrr1; return(head);fclose(fp); /*關(guān)關(guān)閉文件函數(shù)數(shù)*/void maain( )char mmessagge = *TThe innstrucction of GOOODS SSYSTEMM* nnn Youu can inputt manyy kindds of messaages,aand yoou cann use nn goodnname aas n Thiis SYSSTEM ccan doo operrationn likee inseert orr deleect too the n go

40、oddsmesssage tthat hhave ssaved,then savedd agaiin.whiile yoou nn cann searrch meessagee depeend onn the goodssnub oor gooodsnamme. nnnn *Welccome tto entter thhe GOOODS SYYSTEM!* nn ;Char meenu=*MENU* nnnn *1.IInput n *2.OOutputt n *3.IInsertt n *4.Dellete n *5.SSearchh n *6.SSave n *0.EExit n;int

41、sell;delay(110);textbacckgrouund(LIIGHTGRRAY);textcollor(BLLUE); /*背景為為銀灰色,字字為藍(lán)色*/clrscr( );gotoxy(4,8);printf(%s,messaage);gotoxy(10,222);printf( PPleasee presss anyy key into the MMenu!);getch( );doclrscrr( );gotoxy(1,7);printf(%s,menu);gotoxy(10,200);printf(pleaase chhoose a nummber ffrom 00 to 6

42、6:);scanf(%d,&sel);switch(sel)case 11:headd=inpuut( ); /*輸輸入模塊*/ breaak; case 22:prinnt( ); /*輸輸出模塊*/ breaak; case 33:headd=inseert( ); /*插插入模塊*/ breaak; case 44:headd=deleet( ); /*刪除除模塊*/ breaak; case 55:searrch( ); /*查查找模塊*/ breaak; case 66:savee(headd); /*保存存模塊*/ breaak; case 00:breaak;while(sel!

43、=0);五、調(diào)試分析和和測(cè)試結(jié)果各模塊功能測(cè)試試:1.COM *inputt( )輸入入模塊功能測(cè)測(cè)試用戶逐一輸入的的數(shù)據(jù)不斷添添加就形成了了一個(gè)列表。前前面已經(jīng)表明明本系統(tǒng)的數(shù)數(shù)據(jù)結(jié)構(gòu)選取取動(dòng)態(tài)數(shù)據(jù)結(jié)結(jié)構(gòu)雙向鏈表,因因此此列表在在內(nèi)存中是以以鏈表的形式式存儲(chǔ)的。那那么輸入模塊塊實(shí)際上就是是一個(gè)建立鏈鏈表的操作模模塊。通過(guò)模模塊savee( )將內(nèi)內(nèi)存中的已輸輸入的數(shù)據(jù)存存入到指定路路徑的某*.dat文件件中去.特別指出: * 為用戶自自己規(guī)定的貨貨品名。輸入條件: ggoodsnnumb ld型,且且0. 當(dāng)=0時(shí)退出 ggoodsnname s 型 ggoodsccount d型,且且0.

44、 當(dāng)0時(shí)顯示輸輸入錯(cuò)誤,重重輸字樣。 調(diào)調(diào)用savee( )時(shí) goos:d:ppllfuu輸出結(jié)果: 貨貨品保存在用用戶指定路徑徑的 *.ddat文件中中以免丟失。2Printt( )輸出模模塊可將指定文件中中的內(nèi)容顯示示在屏幕上。輸出條件:調(diào)用用載入模塊時(shí)時(shí),gooss:d:ppllfuu輸出結(jié)果:如輸輸出條件正確確,則可在屏屏幕上顯示如如下:goodsnuumb gooodsnaame gooodscouunt0001 aa 11250002 b 2300003 c 1803. inseert( )插入模塊插入模塊要完成成的是鏈表的的插入操作,即即將一個(gè)新結(jié)結(jié)點(diǎn)插入一個(gè)個(gè)已有的鏈表表中。輸入條件:調(diào)用用載入模塊。goos:d:pllfu按貨品名的nuumber, naame, ccount 分別輸入,如如輸錯(cuò)則有信信息提示。輸出結(jié)果:輸入入正確后,則則顯示插入成成功,返回菜菜單后,存盤(pán)盤(pán)。4.Delett( )刪除模模塊刪除模塊要完成成的是鏈表的的刪除操作,即即將一個(gè)結(jié)點(diǎn)點(diǎn)從已有的鏈鏈表中刪除。輸入條件:調(diào)用用載入模塊。goos:d:pllfu有兩種刪除方式式按號(hào)和名刪刪除,如輸錯(cuò)錯(cuò)則有信息提提示。輸出結(jié)果:輸入入正確后,則則顯示刪除成成功,返回菜菜單后,存盤(pán)盤(pán)。5.searcch( )查查找模塊鏈表的查找操作作是指

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論