版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
學(xué)號
課設(shè)計(jì)題學(xué)專班姓
目院業(yè)級名
庫存模型維護(hù)管理學(xué)院信息管理與信息系統(tǒng)03黃勇彪指教
王慶國2010
07
12
課程設(shè)計(jì)任務(wù)學(xué)姓:
黃彪
專班:
信管03指教:
王慶國
工單:
管學(xué)題
目
庫存模型維護(hù)初條:以鏈?zhǔn)浇Y(jié)構(gòu)的有序表表示某商廈家電部的庫存模型。當(dāng)有提貨或進(jìn)貨的業(yè)務(wù)要求時(shí),需要對該有序表及時(shí)進(jìn)行維護(hù)。每個(gè)工作日結(jié)束之后,將鏈?zhǔn)浇Y(jié)構(gòu)的有序表中的數(shù)據(jù)以文件的形式保存;每天營業(yè)之初需要將文件形式的數(shù)據(jù)恢復(fù)成鏈?zhǔn)浇Y(jié)構(gòu)的有序表。要完的要?jiǎng)?wù)
(包括課程設(shè)計(jì)工作量及其技術(shù)要求、說明書撰寫等具體要求)鏈?zhǔn)浇Y(jié)構(gòu)的有序表的結(jié)點(diǎn)結(jié)構(gòu)的數(shù)據(jù)域應(yīng)包括家電名稱品牌號單價(jià)及數(shù)量,以結(jié)點(diǎn)中單價(jià)值的非減序列體現(xiàn)著有序性。日常的維護(hù)操作應(yīng)包括初始化、創(chuàng)建表、插入、刪除、更新數(shù)據(jù)、打印、查詢以及鏈?zhǔn)浇Y(jié)構(gòu)的有序表與文件之間的數(shù)據(jù)轉(zhuǎn)換。時(shí)安:序號
設(shè)計(jì)內(nèi)問題分析和任務(wù)定義數(shù)據(jù)類型和系統(tǒng)設(shè)計(jì)編碼實(shí)現(xiàn)和靜態(tài)檢查上機(jī)準(zhǔn)備和上機(jī)調(diào)試總結(jié)和整理設(shè)計(jì)報(bào)告合計(jì)
所用時(shí)0.5天0.5天3天2天1天7天指教簽:2010年07月系任或任師簽:20100702日1.需分析1.1背景分析在商場中,各種商品的庫存量在每天的銷售與進(jìn)貨過程中會發(fā)生不斷的變化,而由于商場是零售經(jīng)營,所以每天涉及庫存的維護(hù)是一個(gè)比較麻煩的問題,另一方面,由于受市場和物價(jià),居民消費(fèi)水品的影響,商品的價(jià)格在不同的時(shí)間內(nèi)會發(fā)生一定的變化,部分商品也會由于科技的發(fā)展,或者消費(fèi)者的價(jià)值取向,審美觀等方面的影響,會淘汰掉,這既涉及到庫存價(jià)格的變化以及商品的變化,作為一個(gè)大型商場,沒有好的庫存管理方案,將會是一場災(zāi)難,所以,庫存管理系統(tǒng)是必需的。為此,我用所學(xué)的C語設(shè)計(jì)了這樣一個(gè)實(shí)現(xiàn)庫存模型維護(hù)的程序,從而實(shí)現(xiàn)商場家電部門的庫存維護(hù),其中包括商品的初始化,商品的錄入,淘汰商品的刪除,以及商品信息的更新,商品信息的打印,以及庫存商品文件與程序中表的轉(zhuǎn)換。1.2功能分析商品信息的輸入形式:以手動(dòng)輸入或者從文件中讀取。商品結(jié)構(gòu)體中(商品號,商品名,商品品牌,商品單價(jià),商品數(shù)量)是要求輸入的,其中商品號和商品數(shù)量的數(shù)據(jù)類型是整型,商品和商品品牌的數(shù)據(jù)類型是字符串型,商品單價(jià)是浮點(diǎn)型。輸出的形式包括以單行為一商品信息的屏幕輸出和輸出到文件。包括按商品號的順序輸出和按商品價(jià)格高低輸出兩種。商品的初始化,商品的錄入,按商品號的排序,按商品號排序輸出,按商品價(jià)格排序,按商品價(jià)格排序輸出,指定商品的查詢,淘汰商品的刪除,以及商品信息的更新,商品信息的打印,及庫存商品文件與程序中表的轉(zhuǎn)換。測試數(shù)據(jù),如下截圖:當(dāng)庫存文件記錄為空時(shí),輸出庫存文件,結(jié)果如下:當(dāng)庫存文件記錄為空時(shí),刪除記錄,結(jié)果如下:當(dāng)庫存文件記錄為空時(shí),排序輸出記錄,結(jié)果如下:當(dāng)庫存文件記錄為空時(shí),出貨操作時(shí),結(jié)果如下:當(dāng)庫存文件記錄為空時(shí),查詢操作時(shí),結(jié)果如下:當(dāng)庫存文件記錄為空時(shí),修改操作時(shí),結(jié)果如下:2.概設(shè)計(jì)2.1商品結(jié)構(gòu)體數(shù)據(jù)類型如下node{//定義結(jié)構(gòu)體intno;產(chǎn)品號//品名kind[10];//品種類float//產(chǎn)品單價(jià)int//產(chǎn)品庫數(shù)量int//產(chǎn)品號指針int產(chǎn)品庫存數(shù)量指針int//品價(jià)格指針}EmpType;2.2主函數(shù)的流程圖如下3.詳設(shè)計(jì)3.1函數(shù)天用關(guān)系#include<math.h>MaxSize100node{//定義結(jié)構(gòu)體intno;//品號//品名kind[10];//品種類floatprice;//品單價(jià)intnum;//品庫存數(shù)量intpno;//品號指針intpnum;//品庫存數(shù)量指針intpprice;//品價(jià)格指針}EmpType;ReadFile(EmpTypeemp[],int&n)//對庫存文件讀取的函數(shù)Clearup(EmpTypeemp[],int//空庫存文件中的記錄的函數(shù)emp[],int&n)//將商品記錄保存到商品庫庫文件的函數(shù)emp[],int//入新的記錄函數(shù)OutputFile(EmpTypeemp[],int//出庫存文件中所有記錄的函數(shù)emp[],int//貨記錄些如山品庫存文件的函數(shù)emp[],int//貨記錄保存到商品文件的函數(shù)emp[],intn)//商品號排序輸出庫存文件的函數(shù)Dispprice(EmpTypeemp[],int//商品價(jià)格排序輸出的函數(shù)Inquiry(EmpTypeemp[],int//詢商品記錄的函數(shù)Modify(EmpTypeemp[],int//改商品記錄的函數(shù)Delete(EmpTypeemp[],int&n)//除文件中商品記錄的函數(shù)intComparison(chara[],charb[])字符串比較main(){doubledummy;EmpTypeintk,a[10]="hyb\0";printf("printf("
歡迎登陸黃勇彪的庫存維護(hù)系統(tǒng)?。?!=======\n");輸入您的登錄名");scanf("%s",b);t=Comparison(a,b);if(t!=0)不起,登錄名錯(cuò)誤?。?);{輸入您的密碼:");scanf("%s",d);if(h!=0)對不起,密碼錯(cuò)誤??!");{printf("printf("
歡迎使用黃勇彪的庫存維護(hù)系統(tǒng)\n");=======\n");do{printf("1:入新產(chǎn)品記錄printf("清空庫存記錄printf("5:按產(chǎn)品號排序輸出
2:出庫存信息");4:除記錄n");6:價(jià)格排序輸出\n");printf("7:貨登記printf("9:詢記錄printf("0:儲退出\n");請選擇操作--10:");scanf("%d",&k);switch(k)
8:貨登記n");10:改記錄n");{break;2:OutputFile(emp,n);break;3:Clearup(emp,n);break;4:Delete(emp,n);break;break;6:Dispprice(emp,n);break;break;break;9:Inquiry(emp,n);break;break;break;}}while(k!=0);}}}3.2函數(shù)調(diào)用關(guān)系結(jié)構(gòu)圖4.調(diào)分析4.1遇到的問題調(diào)試的過程中遇到了居多問題首先是單價(jià)作為浮點(diǎn)數(shù)的輸出問題輸出過程中,一直未能正常輸出,最后想到了以前也遇到類似問題,查閱資料,發(fā)現(xiàn)在函數(shù)開始添加庫頭函數(shù)#序中加入double即解決該問題次文件和順序表的轉(zhuǎn)換問題即件的讀和寫,當(dāng)這些在課本上都是能夠找到的出格式問題這也花了相當(dāng)?shù)臅r(shí)間由缺乏經(jīng)驗(yàn),在控制輸格式時(shí),再三調(diào)試才是文件中的記錄合理輸出各函數(shù)的制問題雖然說起來都是很簡單的句話是在實(shí)際操作過程中卻需要大量的時(shí)間去解決這些細(xì)碎問題。,在設(shè)計(jì)系統(tǒng)登陸,涉及字符數(shù)組的比較,其中用字符數(shù)組常量存儲用戶名,而登錄時(shí)輸入的戶名存儲在另一字符數(shù)組中后調(diào)用設(shè)計(jì)的字符比較函數(shù)進(jìn)行比較輸?shù)挠脩裘c字符常量數(shù)組存儲的字符串是否一致一進(jìn)行第二步的密碼校驗(yàn)然碼校驗(yàn)和用戶名校驗(yàn)類似這中,關(guān)于字符常量數(shù)組應(yīng)該是什么,一直存在著偏差,例如:開始我以為應(yīng)該設(shè)a[10]="hyb"但是在調(diào)試過程中,一直未能正確,后翻看以前教材,查看關(guān)于字符數(shù)組的知識,才知道,鍵盤輸入的字符數(shù)組是以“\0結(jié)尾的,后通過調(diào)試,完成了這一功能,雖然這是自己額外添加的功能,但是還是收獲不少,其次是感覺自己的知識不夠牢固,有一種“知識用時(shí)方恨少”的感覺。,在涉及到C語編程時(shí),關(guān)于使用的環(huán)境問題是大家問我問的最多的問題,其實(shí)我個(gè)人也到了同樣的麻煩因以前C言的程序設(shè)計(jì)動(dòng)用的是TC總的感覺是TC編時(shí)函數(shù)內(nèi)部調(diào)試比較好使,但是涉及多個(gè)文件鏈接時(shí)的工程文件時(shí),就顯得有些繁瑣,沒有像VC和VS那清晰的件結(jié)構(gòu),除此之外TC的界面單調(diào),但是總的來說的關(guān)鍵字顯示對于編程人員來說,有很好的提作用,而且他也可以結(jié)合文本文件編程,而VS則于大型工程編輯的,其界面,支持中文等方面就是其強(qiáng)勢的一面以一直沒怎么使用VS是這次了提高系統(tǒng)的可閱讀性良好的人機(jī)界面用了,從TC到,還是存在一些代碼的區(qū)別,當(dāng)然修改后的效果是顯著的,界面支持中文,是庫存管理一目了然。,算法的分析,在時(shí)間復(fù)雜度和空間復(fù)雜度上,我的程序可能存在一些問題,因?yàn)槲矣玫氖琼槺斫Y(jié)合指針,我個(gè)人認(rèn)為,同樣的問題,用簡單的方式解決是最高效的,況且我們課程設(shè)計(jì)的時(shí)間限,順序表比鏈表掌握的基礎(chǔ)好一些以我選擇了最適合我的方式導(dǎo)致了在進(jìn)行產(chǎn)品信息刪除時(shí)間復(fù)雜度稍高,但是這并不存在很大的問題。在時(shí)間和空間復(fù)雜度上,基本上也得到了很好的控制4.2經(jīng)驗(yàn)和體會編程過程中必須要有明確的思路,只有有明確的思路,才會少走彎路,所謂“磨刀不誤砍柴工有了明確的路線,你的工作便會事半功倍!其是編程過程中,要有恒心,要敢于創(chuàng)新,當(dāng)然,遇到麻煩時(shí),不要忘了查閱工具書,好比喻語言函數(shù)速查手冊,這樣同樣會讓你事半功倍。最后是學(xué)習(xí)的工程中要勇于動(dòng)手實(shí)踐,沒有實(shí)踐,再好的理論基礎(chǔ)也是空談,在我們班的很多同學(xué)便這樣,考試成績相當(dāng)牛,動(dòng)起手來確實(shí)四處碰壁。這也證實(shí)了強(qiáng)大的思想并不能支撐一個(gè)完美的現(xiàn)實(shí)5.用使用說5.1登陸提示登陸名為:hyb登錄密碼為:hx123登陸界面如下:5.2成功登陸后操作第一步,選擇你要進(jìn)行的操作(程序會提示你二步,按照你選擇的操作,進(jìn)行輸入等步驟可(程序會提示單一目了然的操作提示,使整個(gè)程序更加和諧化!附加說明:關(guān)于生成的文件,貌似需要安裝VS具體的還未驗(yàn)證。6.測結(jié)果6.1運(yùn)行測試庫存維護(hù)系統(tǒng)登陸界面:初始操作界面,如下:插入一組新的商品記錄,如下新產(chǎn)品產(chǎn)品的信息)輸出庫存文件中的商品記錄,如下:將庫文件中的商品按商品號排序并輸出,如下:將庫存文件中的商品按單價(jià)排序并輸出,如下:進(jìn)貨操作,如下:(1號商品進(jìn)貨5件)出貨操作,如下:(1號商品出貨15件)按商品號查詢某一商品的操作,如下:(查詢號商品的信息)更新商品信息的操作,如下:(修改商品5編號,價(jià)格,數(shù)量)刪除商品信息的操作,如下:(刪除2號產(chǎn)品)6.2庫存信息文件保存商品信息到庫存文件good.dat,如下:7.附代碼如下:"stdafx.h"#include"math.h"MaxSize100node{intno;kind[10];floatprice;intnum;intpno;intpnum;intpprice;}EmpType;ReadFile(EmpTypeemp[],int&n){FILE*fp;length;inti;n=0;}fseek(fp,0,2);length=ftell(fp);
//義商品記錄結(jié)構(gòu)體//向下一產(chǎn)品的產(chǎn)品號//向下一產(chǎn)品的數(shù)量//向下一產(chǎn)品的單價(jià)//取庫存文件并存入emp組//義文件指針//斷文件是否可讀//件指針移到文件尾//length求出文件長度//件位置指針指向文件首//n=0,初始化指針fread(&emp[i],sizeof(EmpType),1,fp);//文件的數(shù)據(jù)讀到e中fclose(fp);}Clearup(EmpTypeemp[],int//空庫存文件的全部商品記錄{FILE*fp;文件不能打開\n");}n=0;fclose(fp);printf("=======\n");}emp[],int&n)//mp組存入庫存文件{inti;FILE*fp;文件不能打開\n");}fwrite(&emp[i],sizeof(EmpType),1,fp);fclose(fp);printf("=======\n");}emp[],int//加一項(xiàng)新的商品記錄{inti;printf(">>輸入產(chǎn)品號,產(chǎn)品名,品牌,價(jià)格,數(shù)量:\n");n++;scanf("%d%s%s%f%d",&emp[n].no,&emp[n].name,&emp[n].kind,&emp[n].price,&emp[n]{if(emp[i].no==emp[n].no){emp[i].num=emp[i].num+emp[n].num;}}printf("=======\n");}OutputFile(EmpTypeemp[],int//出庫存文件的所有記錄{inti;{沒任何記錄\n");}printf(">>%3d%10s%10s%d\n",emp[i].no,emp[i].name,emp[i].kind,emp[i]printf("=======\n");}emp[],int//存已有商品的進(jìn)貨{intintflag=0;請輸入進(jìn)貨產(chǎn)品的產(chǎn)品號,數(shù)量\n");{if(emp[i].no==no){flag=flag+1;}}if(flag==0)該產(chǎn)品是第一次入庫,請選擇操作,進(jìn)行產(chǎn)品詳細(xì)登記??!\n");//果輸入的是新產(chǎn)品,提示應(yīng)該進(jìn)行新品登記操作printf("=======\n");}emp[],int//存已有商品出貨{intintflag=0;{沒任何記錄,無法出貨!!\n");}請輸入出貨產(chǎn)品的產(chǎn)品號,數(shù)量\n");{if(emp[i].no==no){flag=flag+1;}}if(flag==0)printf("\n");printf("=======\n");}emp[],intn)//商品號排序輸出庫存商品記錄{intintk=emp[0].pno;{沒有產(chǎn)品記錄,不能按產(chǎn)品號排序?。n");}while(i<=n){j=0;while(emp[j].pno!=-1&&i++;}while(k!=-1){printf(">>%3d%10s%10s%d\n",emp[k].no,emp[k].name,emp[k].kind,emp[}printf("=======\n");}Dispprice(EmpTypeemp[],int//價(jià)格排序輸出庫存商品記錄{intint{沒有產(chǎn)品記錄,不能按價(jià)格排序!!\n");}while(i<=n){j=0;while(emp[j].pprice!=-1&&j=emp[j].pprice;emp[j].pprice=i;i++;}while(k!=-1){printf(">>%3d%10s%10s%d\n",emp[k].no,emp[k].name,emp[k].kind,emp[}printf("=======\n");}Inquiry(EmpTypeemp[],int//詢庫存中某一商品記錄{intno,i;{沒任何記錄,不能查詢??!\n");}請輸入你要查詢的產(chǎn)品號:\n");{if(emp[i].no==no)printf(">>%3d%10s%10s%d\n",emp[i].no,emp[i].name,emp[i].kind,emp[i]}printf("=======\n");}Modify(EmpTypeemp[],int//改商品記錄{intkind[10];floatprice;intflag=0;{沒任何記錄,無法修改!!\n");}請輸入你要修改的產(chǎn)品的產(chǎn)品號:\n");scanf("%d",&NO);{if(emp[j].no==NO)flag=flag+1;}if(flag==0)存中沒有該產(chǎn)品?。?);{輸入你修改后的信息產(chǎn)品號,價(jià)格,數(shù)量:\n");scanf("%d%f%d",&no,&price,&num);{if(emp[i].no==NO){emp[i].no=no;emp[i].price=price;emp[i].num=num;}}}printf("=======\n");}Delete(EmpTypeemp[],int&n)//除某一商品記錄{intNO,i,j;{沒任何記錄,不用刪除?。n");}請輸入你要?jiǎng)h除的產(chǎn)品號:\n");scanf("%d",&NO);{if(emp[i].no==NO){emp[j]=emp[j+1];}}printf("=======\n");}intComparison(chara[],charb[]){//符串比較函數(shù)inti;for(i=0;a[i]!='\0'||b[i]!='\0';i++){if(a[i]>b[i])1;if(a[i]<b[i])-1;}0;if(a[i]=='\0')-1;1;}main(){doubledummy;EmpTypeintk,a[10]="hyb\0";printf("printf("
歡迎登陸黃勇彪的庫存維護(hù)系統(tǒng)?。。?======\n");請輸入您的登錄名:");scanf("%s",b);t=
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 營銷策劃合同
- 能源行業(yè)新能源技術(shù)研發(fā)與應(yīng)用推廣方案
- 企業(yè)管理咨詢協(xié)議書
- 網(wǎng)絡(luò)視頻會議系統(tǒng)安全防護(hù)與性能優(yōu)化策略
- 軟件實(shí)施工程師聘用合同
- 工廠買賣合同書
- 農(nóng)業(yè)生產(chǎn)技術(shù)培訓(xùn)與教育方案
- 游戲角色設(shè)計(jì)作業(yè)指導(dǎo)書
- 房屋土地買賣合同書
- 計(jì)算機(jī)與辦公設(shè)備行業(yè)作業(yè)指導(dǎo)書
- 中央2025年公安部部分直屬事業(yè)單位招聘84人筆試歷年參考題庫附帶答案詳解
- 人教版(2025新版)七年級下冊數(shù)學(xué)第七章 相交線與平行線 單元測試卷(含答案)
- 春節(jié)節(jié)后復(fù)工全員安全意識提升及安全知識培訓(xùn)
- 道路運(yùn)輸企業(yè)主要負(fù)責(zé)人和安全生產(chǎn)管理人員安全考核試題庫(含參考答案)
- 貴州省貴陽市2023-2024學(xué)年高一上學(xué)期期末考試 物理 含解析
- 小學(xué)六年級數(shù)學(xué)計(jì)算題100道(含答案)
- 青島版五四制五下數(shù)學(xué)課程綱要
- 失去爆破和不完全爆破
- 稻盛和夫的哲學(xué)與阿米巴
- 冷庫驗(yàn)證方案
- 行政事業(yè)單位會計(jì)實(shí)操
評論
0/150
提交評論