第一篇:倉(cāng)庫庫存管理系統(tǒng)源程序
演講稿 工作總結(jié) 調(diào)研報(bào)告 講話稿 事跡材料 心得體會(huì) 策劃方案
倉(cāng)庫庫存管理系統(tǒng)源程序
#include
char name[20];//物品名稱
int num;
//商品數(shù)量
int level;//物品等級(jí)
}item;typedef struct node { struct item data;struct node * next;}Node,*Link;//定義為鏈表 void menu()//頁面顯示函數(shù) {
精心收集
精心編輯
精致閱讀 如需請(qǐng)下載!
演講稿 工作總結(jié) 調(diào)研報(bào)告 講話稿 事跡材料 心得體會(huì) 策劃方案
system(“cls”);//清屏函數(shù)
printf(“***********************************《物品庫存管理》*****************************n”);printf(“
n”);
printf(“n
<1> 物品入庫管理ntn
<2> 物品出庫管理n”);printf(“n
<3> 瀏覽庫內(nèi)物品信息ntn
<4> 修改物品信息n”);printf(“n
<5> 保存物品信息ntn
<0> 退出庫存管理n”);printf(“
n”);cout<<“********************************************************************************”< void printstart(){ printf(“-----------n”);printf(“n 請(qǐng)選擇操作:”); 精心收集 精心編輯 精致閱讀 如需請(qǐng)下載! 演講稿 工作總結(jié) 調(diào)研報(bào)告 講話稿 事跡材料 心得體會(huì) 策劃方案 } void Wrong()//錯(cuò)誤處理函數(shù) { printf(“輸入錯(cuò)誤!n”);getchar();getchar();menu(); return;} void Nofind(){ printf(“沒有找到該物品!n”);} void printc()//本函數(shù)用于輸出中文 { printf(“ 物品編碼 物品名稱 物品數(shù)量 n”);} void printe(Node *p)//輸出物品信息函數(shù) { cout< ”< data.code<<“ ”< data.name<<“ ”< data.num<<“ 精心收集 精心編輯 精致閱讀 如需請(qǐng)下載!物品等級(jí) 演講稿 工作總結(jié) 調(diào)研報(bào)告 講話稿 事跡材料 心得體會(huì) 策劃方案 ”< data.level;} Node *Locate(Link l,char findmess[],char nameorcode[])//用于定位連接中,符合要求的結(jié)點(diǎn),并返回該指針 { Node *r;if(strcmp(nameorcode,“code”)==0)// { } else if(strcmp(nameorcode,“name”)==0)//按名稱查詢 { r=l->next;while(r!=NULL){ r=l->next;while(r!=NULL){ } if(strcmp(r->data.code,findmess)==0)return r;r=r->next; 精心收集 精心編輯 精致閱讀 如需請(qǐng)下載! 演講稿 工作總結(jié) 調(diào)研報(bào)告 講話稿 事跡材料 心得體會(huì) 策劃方案 } } } if(strcmp(r->data.name,findmess)==0)return r;r=r->next;return 0;void Add(Link l)//增加物品函數(shù) { Node *p,*r,*s;char code[10];r=l;s=l->next;while(r->next!=NULL)r=r->next;while(l){ system(“cls”);//清屏函數(shù) cout<<“請(qǐng)輸入商品編碼(輸入'0'返回上一級(jí)菜單):”< 精心收集 精心編輯 精致閱讀 如需請(qǐng)下載! 演講稿 工作總結(jié) 調(diào)研報(bào)告 講話稿 事跡材料 心得體會(huì) 策劃方案 while(s){ if(strcmp(s->data.code,code)==0){ printf(“物品編碼為'%s'的物品已經(jīng)存在,如果要修改請(qǐng)選擇'4 修改'!n”,code); printstart(); printc(); printe(s); printstart(); printf(“n”); return; } s=s->next; } p=(Node *)malloc(sizeof(Node)); strcpy(p->data.code,code); printf(“請(qǐng)輸入物品名稱:”); scanf(“%s”,p->data.name);getchar(); 精心收集 精心編輯 精致閱讀 如需請(qǐng)下載! 演講稿 工作總結(jié) 調(diào)研報(bào)告 講話稿 事跡材料 心得體會(huì) 策劃方案 printf(“請(qǐng)輸入物品數(shù)量:”); scanf(“%d”,&p->data.num); printf(“請(qǐng)輸入物品等級(jí):”); scanf(“%d”,&p->data.level); p->next=NULL; r->next=p; r=p; shoudsave=1;} menu();} void Qur(Link l)//查詢物品信息函數(shù) { int sel;char findmess[20];Node *p;if(!l->next){ printf(“n沒有信息可查詢!n”); getchar(); getchar();menu(); 精心收集 精心編輯 精致閱讀 如需請(qǐng)下載! 演講稿 工作總結(jié) 調(diào)研報(bào)告 講話稿 事跡材料 心得體會(huì) 策劃方案 return; } system(“cls”);//清屏函數(shù) printf(“n 1按物品編碼查詢n 2按物品名稱查詢n”);scanf(“%d”,&sel);if(sel==1)// { printf(“請(qǐng)輸入要查詢的編碼:n”);scanf(“%s”,findmess);p=Locate(l,findmess,“code”);if(p){ printf(“tttt查詢結(jié)果n”); printstart(); cout< printc(); cout< printe(p); cout< printstart(); getchar();getchar(); 精心收集 精心編輯 精致閱讀 如需請(qǐng)下載! 演講稿 工作總結(jié) 調(diào)研報(bào)告 講話稿 事跡材料 心得體會(huì) 策劃方案 } } menu();return;else Nofind();else if(sel==2)// { printf(“請(qǐng)輸入要查找的物品名稱:”);scanf(“%s”,findmess);p=Locate(l,findmess,“name”);if(p){ printf(“ttt查詢結(jié)果n”); printstart();cout< printc();cout< printe(p);cout< printstart(); 精心收集 精心編輯 精致閱讀 如需請(qǐng)下載! 演講稿 工作總結(jié) 調(diào)研報(bào)告 講話稿 事跡材料 心得體會(huì) 策劃方案 getchar(); getchar(); menu(); return; } else Nofind(); } else Wrong();getchar(); system(“cls”);//清屏函數(shù) menu();} void Del(Link l)//刪除 { int sel;Node *p,*r;char findmess[20];if(!l->next){ system(“cls”);//清屏函數(shù) 精心收集 精心編輯 精致閱讀 如需請(qǐng)下載! 演講稿 工作總結(jié) 調(diào)研報(bào)告 講話稿 事跡材料 心得體會(huì) 策劃方案 } printf(“n您的倉(cāng)庫為空!n”);getchar();getchar();menu();return;system(“cls”);//清屏函數(shù) printf(“n 1按物品編碼出倉(cāng)n 2按物品名稱出倉(cāng)n”);scanf(“%d”,&sel);if(sel==1){ printf(“請(qǐng)輸入要出倉(cāng)的物品編碼:”);scanf(“%s”,findmess);p=Locate(l,findmess,“code”);if(p){ r=l;while(r->next!=p)r=r->next;r->next=p->next;free(p);printf(“n該物品已經(jīng)成功出倉(cāng)n”); 精心收集 精心編輯 精致閱讀 如需請(qǐng)下載! 演講稿 工作總結(jié) 調(diào)研報(bào)告 講話稿 事跡材料 心得體會(huì) 策劃方案 } } shoudsave=1;getchar();getchar();menu();return;else Nofind();else if(sel==2){ system(“cls”);//清屏函數(shù) printf(“請(qǐng)輸入要出倉(cāng)的物品名:”);scanf(“%s”,findmess);p=Locate(l,findmess,“name”);if(p){ r=l;while(r->next!=p)r=r->next;r->next=p->next; 精心收集 精心編輯 精致閱讀 如需請(qǐng)下載! 演講稿 工作總結(jié) 調(diào)研報(bào)告 講話稿 事跡材料 心得體會(huì) 策劃方案 } } } free(p);printf(“n該物品已經(jīng)成功出倉(cāng)!n”);shoudsave=1;getchar();getchar();menu();return;else Nofind();else Wrong();void Modify(Link l)//物品信息修改 { Node *p;char findmess[20];if(!l->next){ system(“cls”);//清屏函數(shù) printf(“n您的庫存為空,無需修改!n”); 精心收集 精心編輯 精致閱讀 如需請(qǐng)下載! 演講稿 工作總結(jié) 調(diào)研報(bào)告 講話稿 事跡材料 心得體會(huì) 策劃方案 } getchar();getchar();menu();return;printf(“請(qǐng)輸入要修改的物品編碼:”);scanf(“%s”,findmess);p=Locate(l,findmess,“code”);if(p){ system(“cls”);//清屏函數(shù) printf(“請(qǐng)輸入新編碼(原來的是%s):”,p->data.code);scanf(“%s”,p->data.code);printf(“請(qǐng)輸入新名稱(原來的是%s):”,p->data.name);scanf(“%s”,p->data.name);getchar();printf(“請(qǐng)輸入新的物品數(shù)量(原來的是%d):”,p->data.num);scanf(“%d”,&p->data.num);getchar();printf(“請(qǐng)輸入新的物品等級(jí)(原來的是%d):”,p->data.level);scanf(“%d”,&p->data.level); 精心收集 精心編輯 精致閱讀 如需請(qǐng)下載! 演講稿 工作總結(jié) 調(diào)研報(bào)告 講話稿 事跡材料 心得體會(huì) 策劃方案 getchar(); printf(“n修改資料成功!n”); shoudsave=1; getchar();menu(); return;} else Nofind();getchar();menu();} void Disp(Link l){ int count=0;Node *p;p=l->next;if(!p){ printf(“n 沒有資料可以顯示!n”); getchar();getchar(); 精心收集 精心編輯 精致閱讀 如需請(qǐng)下載! 演講稿 工作總結(jié) 調(diào)研報(bào)告 講話稿 事跡材料 心得體會(huì) 策劃方案 menu(); return;} printf(“tttt顯示結(jié)果n”);printstart();printc();printf(“n”);while(p){ printe(p); p=p->next;} printstart();printf(“n”);} void Save(Link l)//物品信息保存 { FILE *fp;Node *p;int flag=1,count=0;fp=fopen(“c:student”,“wb”); 精心收集 精心編輯 精致閱讀 如需請(qǐng)下載! 演講稿 工作總結(jié) 調(diào)研報(bào)告 講話稿 事跡材料 心得體會(huì) 策劃方案 if(fp==NULL){ printf(“n重新打開文件時(shí)錯(cuò)誤!n”);exit(1);} p=l->next;while(p){ if(fwrite(p,sizeof(Node),1,fp)==1){ p=p->next; count++;} else { flag=0; break;} } if(flag){ system(“cls”);//清屏函數(shù) 精心收集 精心編輯 精致閱讀 如需請(qǐng)下載! 演講稿 工作總結(jié) 調(diào)研報(bào)告 講話稿 事跡材料 心得體會(huì) 策劃方案 printf(“n 文件保存成功.(有%d條記錄保存成功.)n”,count); shoudsave=0; getchar(); getchar(); menu();} fclose(fp);} void main()//主函數(shù) { menu();Link l;//鏈表 Node *r;int sel;char ch;int count=0;l=(Node *)malloc(sizeof(Node));l->next=NULL;r=l;while(l){ scanf(“%d”,&sel); 精心收集 精心編輯 精致閱讀 如需請(qǐng)下載! 演講稿 工作總結(jié) 調(diào)研報(bào)告 講話稿 事跡材料 心得體會(huì) 策劃方案 if(sel==0){ if(shoudsave==1){ getchar();printf(“n 資料已改動(dòng),是否將改動(dòng)的文件保存到文件中(y or n)?n”); } switch(sel){ case 1:Add(l);break;//物品進(jìn)庫 case 2:Del(l);break;//物品出庫 case 3:Qur(l);break;//查詢物品 case 4:Modify(l);break;//修改物品信息 case 5:Save(l);break;//保存物品信息 } printf(“n 已退出系統(tǒng)!n”);break;scanf(“%c”,&ch);if(ch=='y' || ch=='Y')Save(l); 精心收集 精心編輯 精致閱讀 如需請(qǐng)下載! 演講稿 工作總結(jié) 調(diào)研報(bào)告 講話稿 事跡材料 心得體會(huì) 策劃方案 default:Wrong();getchar();break;} 精心收集 精心編輯 精致閱讀 如需請(qǐng)下載! } } 庫存管理系統(tǒng)課程設(shè)計(jì) 一、需求分析...................................................................................................................................2 1.1 編寫目的:.......................................................................................................................2 1.2 項(xiàng)目背景:.......................................................................................................................2 1.3系統(tǒng)使用對(duì)象:................................................................................................................3 1.4 功能需求:.......................................................................................................................3 1.4.1 業(yè)務(wù)流程圖:.......................................................................................................3 1.4.2 功能模塊圖:.......................................................................................................4 1.4.3 功能介紹:...........................................................................................................4 1.4.4問題域描述:........................................................................................................5 1.5 性能要求:.......................................................................................................................5 1.6 運(yùn)行環(huán)境:.......................................................................................................................6 二、系統(tǒng)詳細(xì)設(shè)計(jì)...........................................................................................................................6 2.1系統(tǒng)總體設(shè)計(jì)....................................................................................................................6 2.1.1 運(yùn)行環(huán)境...............................................................................................................6 2.1.2 系統(tǒng)流程...............................................................................................................6 2.1.3 系統(tǒng)結(jié)構(gòu)...............................................................................................................7 2.2系統(tǒng)接口的概要設(shè)計(jì)........................................................................................................8 2.2.1 用戶接口...............................................................................................................8 2.3 數(shù)據(jù)庫概要設(shè)計(jì)...............................................................................................................9 2.3.1 物理結(jié)構(gòu)設(shè)計(jì).......................................................................................................9 三、系統(tǒng)實(shí)現(xiàn).................................................................................................................................10 3.1 系統(tǒng)開發(fā)環(huán)境.................................................................................................................10 3.2 系統(tǒng)實(shí)現(xiàn).........................................................................................................................11 3.2.1 客戶端系統(tǒng)實(shí)現(xiàn).................................................................................................11 一、需求分析 1.1 編寫目的: 庫存管理工作如由人工完成,主要依靠個(gè)人經(jīng)驗(yàn)和厚重的資料簿,查詢工作繁瑣而且質(zhì)量不高,容易出錯(cuò)。如果利用計(jì)算機(jī)的高速計(jì)算能力和廣泛的普及應(yīng)用,則能利用判斷條件,更快地找出所要查詢的庫存產(chǎn)品。庫存管理系統(tǒng)是一套對(duì)貨品入庫、出庫、庫存進(jìn)行全面管理的系統(tǒng)。 1.2 項(xiàng)目背景: 由于市場(chǎng)競(jìng)爭(zhēng)的需要,如何吸引和留住人才,激發(fā)員工的創(chuàng)造行、工作責(zé)任感和工作熱情已經(jīng)成為關(guān)系企業(yè)興衰的重要因素,人才已成為企業(yè)最重要的資產(chǎn)之一?!肮?、公平、合理”的企業(yè)管理理念和企業(yè)管理水平的提高,是社會(huì)對(duì)庫存管理系統(tǒng)有了更高的需求;同時(shí)由于個(gè)人電腦的普及,數(shù)據(jù)庫技術(shù)、客戶/服務(wù)器技術(shù),特別是Internet/Intranet技術(shù)的發(fā)展,使的三代庫存管理系統(tǒng)的出現(xiàn)才成為必然。庫存管理系統(tǒng)的特點(diǎn)是從物品管理的角度出發(fā),用集中的數(shù)據(jù)庫將幾乎所有與物品相關(guān)的數(shù)據(jù)統(tǒng)一管理起來,形成了集成的信息源。有好的用戶界面,強(qiáng)有力的報(bào)表生成工具、分析工具和信息的共享使得物品管理人員得以擺脫繁重的日常工作,集中精力從戰(zhàn)略的角度來考慮企業(yè)物品規(guī)劃和政策。 企業(yè)的庫存物資管理往往是很復(fù)雜、很繁瑣的。由于所掌握的物資種類眾多,訂貨、管理、發(fā)放的渠道各有差異,各個(gè)企業(yè)之間的管理體制不盡相同,各類統(tǒng)計(jì)報(bào)表繁多,因此倉(cāng)庫的庫存管理必須編制一套庫存管理信息系統(tǒng),實(shí)現(xiàn)計(jì)算機(jī)化操作,而且必須根據(jù)企業(yè)的具體情況制定相應(yīng)的方案。 1.3系統(tǒng)使用對(duì)象: 本軟件提供了完備的銷售業(yè)務(wù)管理功能,包括銷售管理(銷售訂單、銷售出貨、銷售退貨、收款登記)、基本信息(公司基本資料、客戶資料、貨品資料、員工檔案、其他基礎(chǔ)設(shè)置)、單據(jù)查詢(訂貨單查詢、收貨單查詢、付款單查詢)、系統(tǒng)維護(hù)(操作權(quán)限、數(shù)據(jù)備份及恢復(fù)、數(shù)據(jù)壓縮、數(shù)據(jù)清理)等功能。 1.4 功能需求: 1.4.1 業(yè)務(wù)流程圖: 1.4.2 功能模塊圖: 1.4.3 功能介紹: 庫存管理:包括貨品信息管理、貨品庫存管理、短線貨品管理、超儲(chǔ)貨品管理。 入庫管理:包括入庫登記管理、貨品入庫期間統(tǒng)計(jì)、供貨單位期間供貨統(tǒng)計(jì)和供貨單位期間供貨金額統(tǒng)計(jì)。 出庫管理:包括出庫登記管理、貨品期間出庫統(tǒng)計(jì)、收貨單位期間收貨統(tǒng)計(jì)和收貨單位期間收貨金額統(tǒng)計(jì)。 盤存管理:包括盤存數(shù)據(jù)錄入和盤存表。綜合管理:包括貨品出入庫期間匯總等。 附項(xiàng)分類:包括經(jīng)辦人員管理、供貨單位管理、倉(cāng)庫信息管理及數(shù)據(jù)處理記錄。 歷史數(shù)據(jù)管理:包括歷史庫存管理、歷史入庫管理和歷史出庫管理等。1.4.4問題域描述: 貨物是否能被管理員找到,貨物必要有唯一的貨號(hào);倉(cāng)庫對(duì)應(yīng)唯一管理員,管理員必要有唯一工號(hào),性別,姓名等屬性;每個(gè)入庫貨物對(duì)應(yīng)一張入庫單,入庫單號(hào)碼必須與貨號(hào)唯一對(duì)應(yīng);每個(gè)出庫貨物對(duì)應(yīng)一張出庫單,出庫單號(hào)碼必須與貨號(hào)唯一對(duì)應(yīng);管理人員存放貨物根據(jù)存放規(guī)則在倉(cāng)庫內(nèi)存放貨物;管理人員根據(jù)提貨規(guī)則從倉(cāng)庫內(nèi)提取貨物。 1.5 性能要求: 全局特征: 系統(tǒng)可用性是:全天候可用、可靠性:除了不可計(jì)錯(cuò)誤,一般不會(huì)崩潰。安全性和保密性:只有專業(yè)的工作人員才能運(yùn)行,可以設(shè)置權(quán)限。 1.6 運(yùn)行環(huán)境: 硬件環(huán)境:PentiumⅡ 或同檔次以上微機(jī); 32MB以上內(nèi)存或更高;4.2G以上硬盤;1.44M 光驅(qū);24速以上光驅(qū); 針打或激光打印機(jī)一臺(tái) 軟件環(huán)境:中文 WINDOWS95 / 二、系統(tǒng)詳細(xì)設(shè)計(jì) 2.1系統(tǒng)總體設(shè)計(jì) 2.1.1 運(yùn)行環(huán)境 操作系統(tǒng):Windows All 安裝MySQL Tomcat MyEclipse 2.1.2 系統(tǒng)流程 本課題的系統(tǒng)流程圖如下 /WE/ 2000操作系統(tǒng)。 2.1.3 系統(tǒng)結(jié)構(gòu) 本課題的功能模塊設(shè)計(jì)圖如下 2.2系統(tǒng)接口的概要設(shè)計(jì) 2.2.1 用戶接口 首頁(用戶登錄界面) 用戶操作界面(如圖)頭部和其他部位的內(nèi)容一樣 左側(cè)部分為當(dāng)用戶登錄成功后將顯示用戶操作的功能菜單 右側(cè)部分則根據(jù)用戶選擇的操作顯示相應(yīng)內(nèi)容 2.3 數(shù)據(jù)庫概要設(shè)計(jì) 2.3.1 物理結(jié)構(gòu)設(shè)計(jì) 本課題目前為數(shù)據(jù)庫建立了9 個(gè)表 Category:id,name,description; Goods:id,name,description,inprice,outprice,category_id,supplier;Instock:id,quantity,intime,price,description,goods_id,uear_id;Outstock:id,quantity,outtime,description,price,user_id,goods_id;Privilege:id,name,description Stock:goods_id,quantity,outprice,inprice Supplier:id,name,linkman,cellphone,description User:id,username,password User_privilege:user_id,privilege_id 三、系統(tǒng)實(shí)現(xiàn) 3.1 系統(tǒng)開發(fā)環(huán)境 系統(tǒng):Microsoft Windows 7 編程環(huán)境:MyEclipse 開發(fā)語言:Java 數(shù)據(jù)庫:MySQL 3.2 系統(tǒng)實(shí)現(xiàn) 3.2.1 客戶端系統(tǒng)實(shí)現(xiàn) 登錄界面(如下圖) 庫存管理成果信息頁面(如圖) 用戶管理 權(quán)限管理 供應(yīng)商管理 類別管理 商品管理 入庫管理 庫存管理 出庫管理 UML課程設(shè)計(jì) 報(bào)告 設(shè)計(jì)名稱: 庫存管理系統(tǒng) 專業(yè)班級(jí): 姓 名: 學(xué) 號(hào): 起止時(shí)間: 成 績(jī) 評(píng) 定 考核 設(shè)計(jì) 設(shè)計(jì) 綜合評(píng) 答辯 內(nèi)容 表現(xiàn) 報(bào)告 定成績(jī) 成 績(jī) 計(jì)算機(jī)科學(xué)與工程系 一、系統(tǒng)需求說明 20世紀(jì)90年代以來隨著科學(xué)技術(shù)和生產(chǎn)力的迅速發(fā)展以及經(jīng)濟(jì)全球環(huán)境的深刻變化,企業(yè)面臨著一個(gè)嶄新而又激烈的競(jìng)爭(zhēng)環(huán)境,體現(xiàn)在全球化的信息網(wǎng)絡(luò)和全球化市場(chǎng)形成所帶來的信息爆炸技術(shù)變革的加速市場(chǎng)和勞務(wù)競(jìng)爭(zhēng)的全球化,圍繞新產(chǎn)品的市場(chǎng)競(jìng)爭(zhēng)日趨激烈,用戶的需求越來越苛刻,同時(shí)產(chǎn)品的生命周期不斷縮短,企業(yè)又面臨著縮短交貨期、提供產(chǎn)品質(zhì)量、降低成本和改進(jìn)服務(wù)的壓力,在這種情況下全面提高和改善自身水平成為企業(yè)最關(guān)心的問題之一。企業(yè)實(shí)施信息化建設(shè)已成為企業(yè)的發(fā)展趨勢(shì)和提高企業(yè)的管理水平的有效手段。信息化建設(shè)不在是企業(yè)的效益工程而是企業(yè)的生存工程,20世紀(jì)90年代美國(guó)著名的IT分析公司Grant Group Inc,提出了ERP企業(yè)資源計(jì)劃的概念,迎合了信息時(shí)代企業(yè)管理的發(fā)展要求。隨著ERP相關(guān)理論,以及ERP系統(tǒng)開發(fā)的逐漸成熟,企業(yè)界掀起了實(shí)施ERP管理信息系統(tǒng)的浪潮。中國(guó)作為制造大國(guó),在制造業(yè)迅速發(fā)展的今天,庫存國(guó)民投資額在整個(gè)國(guó)民生產(chǎn)總值占有相當(dāng)大的比重達(dá)到了20%——30%,庫存管理的適當(dāng)與否對(duì)企業(yè)經(jīng)營(yíng)利潤(rùn)有很大影響,因此新環(huán)境下非常值得人們對(duì)ERP環(huán)境下的庫存管理進(jìn)行深入研究和探討。本文結(jié)合ERP環(huán)境下的庫存管理系統(tǒng),重點(diǎn)研究如何利用UML建模語言對(duì)庫存管理系統(tǒng)進(jìn)行建模,給出了ERP環(huán)境下庫存管理系統(tǒng)的需求模型和對(duì)象模型,在建模過程中利用了用例圖、類圖、包圖、順序圖等圖形。最后,結(jié)合系統(tǒng)模型的研究,實(shí)現(xiàn)了庫存管理系統(tǒng)。 二、系統(tǒng)分析 (一)庫存管理業(yè)務(wù)流程分析 企業(yè)的庫存管理工作主要由企業(yè)物資部門或倉(cāng)庫部門完成,其主要業(yè)務(wù)就是對(duì)企業(yè)物料收獲、存貨、發(fā)貨,以及分析提供庫存管理所需的各種數(shù)據(jù)報(bào)表等管理工作。庫存管理業(yè)務(wù)流程圖,如圖所示: 采購(gòu)部門采購(gòu)訂單 供應(yīng)商發(fā)票 財(cái)務(wù)部門發(fā)貨 檢驗(yàn)接受庫存盤點(diǎn)發(fā)銷售出入庫票貨款憑證求購(gòu)處理入庫領(lǐng)料通知單生產(chǎn)發(fā)料發(fā)料 生產(chǎn)部門倉(cāng)庫部門客戶入庫 庫存訂單工票產(chǎn)品入庫分析提貨單決策部門銷售部門 2 (二)Uml表示法 1.1 用例圖 根據(jù)業(yè)務(wù)流程圖確定系統(tǒng)邊界,確定用例(Use Case)。用例可從另一個(gè)方面對(duì)企業(yè)的業(yè)務(wù)流程建模,從中可以提取對(duì)我們開發(fā)系統(tǒng)有用的信息,可以確定系統(tǒng)功能。如圖2所示庫存管理系統(tǒng)的用例圖 inter manageout manageadministratorinventory manage information search 該圖展示了一張倉(cāng)庫管理系統(tǒng)的用例圖,從系統(tǒng)的外部執(zhí)行者的角度來看,普通倉(cāng)庫管理員可以進(jìn)行出庫管理、入庫管理、盤點(diǎn)管理和信息查詢等操作。(2)順序圖 : administrator1: load 2: back3: data name and position4: copy data5: copy success 3 (3)活動(dòng)圖 produce inventory bills inventory on the spot inventory manage 三、系統(tǒng)設(shè)計(jì)報(bào)告(一)庫存管理系統(tǒng)需求模型的建立 1、用例圖 在庫存管理系統(tǒng)中,由于牽扯到大量的執(zhí)行者和用例,為了便于組織,按與系統(tǒng)交互的對(duì)象的不同將系統(tǒng)劃分為三個(gè)包,如圖所示: 用例模型包圖 其它系統(tǒng)與倉(cāng)庫高層決策人員和系統(tǒng)倉(cāng)庫管理員管理系統(tǒng)的交互 管理員與系統(tǒng)的交互 與交互系統(tǒng) 倉(cāng)庫管理員與系統(tǒng)交互包主要描述倉(cāng)庫管理員要使用系統(tǒng)的那些功能,向系統(tǒng)輸入哪些信息,從系統(tǒng)獲取哪些信息,以及需要系統(tǒng)提供哪些功能支持倉(cāng)庫管理員的日常工作。高層決策人員及系統(tǒng)管理員與系統(tǒng)交互包描述高層決策人員需要從系統(tǒng)獲取什么信息,做出什么分析與決策支持系統(tǒng)更好的運(yùn)轉(zhuǎn);系統(tǒng)管理員則需要維護(hù),管理系統(tǒng),使其正常化工作。由于庫存管理系統(tǒng)并不是一個(gè)孤立系統(tǒng),他需要其他系統(tǒng)進(jìn)行交互,其他系統(tǒng)與庫存管理系統(tǒng)的交互包則反映交互信息的流向。下面對(duì)每個(gè)系統(tǒng)包進(jìn)行詳細(xì)的描述。4 (1)倉(cāng)庫管理員與交互的用例模型 high-inventory alarm identity testexpand useinventory place appointaccount updateinter manageuseexpandadministratorout managelow-inventory alarminventory manageinformation searchform produce 在這個(gè)用例模型中有一個(gè)執(zhí)行者:庫存管理員。十一個(gè)用例:身份驗(yàn)證,入庫管理員,最高庫存警報(bào),出庫管理,最低庫存管理,指定庫位,更新賬目,庫存信息查詢,盤點(diǎn)管理及報(bào)表生成。當(dāng)有物資需要進(jìn)行出入庫時(shí),倉(cāng)庫管理員就要進(jìn)行出入庫的管理:核實(shí)賬單,清點(diǎn)物資,錄入單據(jù),然后由系統(tǒng)自動(dòng)為該批物資分配貨架,同時(shí)更新賬目。在入庫時(shí),如果系統(tǒng)檢測(cè)該類物資庫存量超過限定的最高存量,也將發(fā)出警報(bào)。在入庫管理用例與最高庫存警報(bào)用例,出庫管理用例與最低庫存警報(bào)用例之間采用了擴(kuò)展關(guān)系。入庫管理,出庫管理與指定庫位之間,指定庫位與更新賬目之間采用了使用關(guān)系。擴(kuò)展時(shí)一種基本需求的特殊情況。而當(dāng)在兩個(gè)或更多的用例中出現(xiàn)重復(fù)描述而又想避免這種重復(fù)時(shí),采用使用。出入庫單據(jù)錄入后,倉(cāng)庫管理員還需要定期對(duì)單據(jù)進(jìn)行核對(duì),即進(jìn)行庫存信息的查詢,主要包括:賬目信息,出入庫信息,以及庫位信息,存量信息等。當(dāng)所有信息核對(duì)完成后,倉(cāng)庫管理員還需要定期打印出各種報(bào)表,以供其他系統(tǒng)做出一些決策。盤點(diǎn)也是庫管員一項(xiàng)很重要的工作,保持經(jīng)常有效的盤點(diǎn),可以更加全面準(zhǔn)確的掌握庫存信息。當(dāng)庫管員進(jìn)行盤點(diǎn)時(shí),首先要鎖定盤點(diǎn)的庫位或物料信息,即盤點(diǎn)時(shí)刻不允許出入庫;盤點(diǎn)完畢后,要填寫盤點(diǎn)記錄,對(duì)于盤點(diǎn)數(shù)量與賬目數(shù)量不同的物料需求要給出原因。5 (2)高層決策人員與系統(tǒng)管理員的交互用例模型 inventory originallimits manage inventory controlidentity testadministratorhigh-adminform produceanalyze reportdata copy and resume 在這個(gè)用例模型中共有兩個(gè)執(zhí)行者:高層決策人員,系統(tǒng)管理員。七個(gè)用例:基本信息維護(hù)、數(shù)據(jù)的備份與恢復(fù)、身份驗(yàn)證、倉(cāng)庫信息初始化、庫存控制、分析評(píng)價(jià)及庫存信息查詢。其中身份驗(yàn)證和庫存信息查詢用例和庫管員和系統(tǒng)的交互的用例是同一用例。對(duì)于高層決策人員來講倉(cāng)庫一些基本信息的初始化,主要是賬目和庫位信息初始化。當(dāng)系統(tǒng)開始使用,高層決策人員還是要進(jìn)行一些庫存控制,即為了滿足用戶及生產(chǎn)需求,確定最低庫存量,決定訂貨時(shí)間及訂貨量。當(dāng)然為了及時(shí)動(dòng)態(tài)了解庫存情況,還需要一些庫存信息進(jìn)行分析評(píng)價(jià),例如:資金占用情況,積壓失效情況,倉(cāng)庫使用情況等。不論是做決定還是分析,都需要庫存基本信息支持。對(duì)于系統(tǒng)管理員來講,主要的工作室進(jìn)行基本信息的維護(hù),包括權(quán)限的管理和數(shù)據(jù)的備份與恢復(fù)。(3)其它系統(tǒng)與庫存系統(tǒng)的交互 out manageform produceproduce sys information searchsupply syscost manage project data syssell sysinter manage 由于庫存管理系統(tǒng)并不是一個(gè)獨(dú)立的系統(tǒng),他需要和其他系統(tǒng)進(jìn)行信息的集成,以保證數(shù)據(jù)的完整和準(zhǔn)確。再生產(chǎn)計(jì)劃出入庫時(shí),需要根據(jù)計(jì)劃來限制出入庫的物資品種及數(shù)量。6 當(dāng)然,計(jì)劃的制定還需要準(zhǔn)確的庫存信息。采購(gòu)供應(yīng)管理系統(tǒng)需要根據(jù)庫存信息來制定采購(gòu)計(jì)劃,外購(gòu)物資則需要根據(jù)采購(gòu)計(jì)劃進(jìn)行入庫。庫存管理系統(tǒng)需要用工程數(shù)據(jù)管理系統(tǒng)中的一些基本信息,包括:物料信息,人員信息,以支持系統(tǒng)準(zhǔn)確的進(jìn)行。銷售和成本核算管理系統(tǒng)的梳理進(jìn)行同樣需要庫存數(shù)據(jù)的支持。2.業(yè)務(wù)活動(dòng)圖(1)物資入庫活動(dòng) inter form receive identity test inter manage inventory inventory inventory place checkcheckstate check alarm transmit inventory place appoint account update 物資的出入庫是庫存管理中主要的業(yè)務(wù),合理的出入庫流程不僅能加快出入庫的效率,7 而且能夠?qū)齑嫘畔⒆龅叫闹杏袛?shù)。當(dāng)一批物資需要進(jìn)行出入庫時(shí),首先庫管員需要核對(duì)入庫單,清點(diǎn)入庫物資,當(dāng)入庫單據(jù)與入庫物資相符時(shí),才能入庫。接著庫管員登錄系統(tǒng),通過身份驗(yàn)證,進(jìn)入入庫管理主界面。輸入要入庫物資的基本信息后,系統(tǒng)自動(dòng)進(jìn)行一些信息查詢:存量信息,庫位狀態(tài),盤點(diǎn)狀態(tài)。當(dāng)該類物資存量超出最高庫存量,系統(tǒng)發(fā)出報(bào)警,此時(shí)可以退出系統(tǒng),即此類物資不在進(jìn)行入庫,也可以強(qiáng)行入庫。在檢查庫位信息時(shí),如果發(fā)現(xiàn)沒有空余庫位,同樣系統(tǒng)會(huì)發(fā)出警報(bào),但允許入庫,只是需要人工指定庫位。完成上述步驟,系統(tǒng)會(huì)主動(dòng)為物資安排庫位,更新賬目,到此時(shí)也就完成入庫過程。(2)主要業(yè)務(wù)活動(dòng)圖 inventory inter out check account place checkcheckcheck produce inter and inventory formoutmanage analyze and inventory NewStatevaluatecontrole 8 庫存管理的業(yè)務(wù)都是以出入庫信息,賬目信息和庫位信息為依托進(jìn)行的。所以首先需要將出入庫信息,賬目信息,庫位信息進(jìn)行核對(duì),只有這些信息準(zhǔn)確無誤才可以進(jìn)行下一步的工作。核對(duì)基本信息后,為了確定倉(cāng)庫內(nèi)物資,可以進(jìn)行盤點(diǎn);為了進(jìn)行分析評(píng)價(jià),庫存控制,可以生成報(bào)表;對(duì)一些信息篩選后,可以進(jìn)行數(shù)據(jù)的備份或恢復(fù)。 (二)庫存管理系統(tǒng)對(duì)象模型的建立 1. 類圖 基本信息中的類圖 入庫類別與出庫類別的屬性為出入庫別編碼及名稱,在進(jìn)行出入庫時(shí),以其為依據(jù)判別出入庫類型,例如確定一批貨物是一般收料還是委托加工等等。不論是倉(cāng)庫管理員還是系統(tǒng)管理員還是高層決策人員在登錄時(shí),都需要進(jìn)行身份驗(yàn)證,以確定其權(quán)限,如果是倉(cāng)庫管理員則需要細(xì)化倉(cāng)庫一級(jí)權(quán)限。下圖為主要類圖及沒類圖的具體屬性及操作,如圖所示: 9 2.順序圖與協(xié)作圖(1)物資入庫順序圖 inter windowaccountshelves state inter shelves info1: ready to assign shelve 2: shelve not null3: shelve on inventory4: shelve available5: work normal and update6: back 物資入庫順序圖 在完成入庫單與入庫項(xiàng)的填寫后,進(jìn)入胃物資指定庫位的操作中,首先系統(tǒng)要自動(dòng)檢查庫位的狀態(tài),當(dāng)沒有多余庫位或者庫位正在進(jìn)行盤點(diǎn)時(shí),則系統(tǒng)提示不能進(jìn)入下一步的操作,如果有多余庫位則系統(tǒng)自動(dòng)為物資安排庫位,進(jìn)行物資的入庫,同時(shí)修改庫存信息,此時(shí)完成了物資的入庫的所有操作。(2)物資入庫協(xié)作圖 5: error4: error 6: change or check of goods incoming of 3: incoming of change the form(right)formitem2: incoming of form7: checkquit9: surpass of max reserve window of account of incomingreserve8: less than max resevelogon 1: incoming of administrgoodsator 11 物資入庫協(xié)作圖 上圖為物資入庫的合作圖。在一批物資要入庫時(shí),首先倉(cāng)庫管理員登陸系統(tǒng)進(jìn)入入庫窗體,然后進(jìn)行入庫單錄入,只有在入庫單填寫正確的情況下才能轉(zhuǎn)入入庫項(xiàng)填寫,如果入庫項(xiàng)填寫錯(cuò)誤時(shí),同樣不能進(jìn)行下一步操作;并且如果在填寫入庫項(xiàng)時(shí)發(fā)現(xiàn)倉(cāng)庫內(nèi)此類物資正在盤點(diǎn),則此批貨物此時(shí)不能進(jìn)行入庫的,需要退出或等待。當(dāng)所有條件都符合時(shí),系統(tǒng)自動(dòng)檢查物資的庫存量,但超出倉(cāng)庫最大庫存時(shí),退出所有操作;反之進(jìn)入為此貨物指定庫位的操作。(3)狀態(tài)圖 系統(tǒng)人機(jī)交互狀態(tài)圖 fail logonstartlogonlogon successoperateentry/ inputdo/ check namefinishreturncancel password and logoncancelcancelfinishexit/ quit entry/ prompt do/ checkexit/ quit or returnoutcome 人機(jī)系統(tǒng)交互狀態(tài)圖 四、系統(tǒng)的配置與實(shí)現(xiàn) (一)系統(tǒng)的組件圖 < The user The Server The rocessinterfacedatebase 系統(tǒng)組件圖 12 (二)系統(tǒng)配置圖 clientdatab...program 系統(tǒng)配置圖 五、設(shè)計(jì)心得體會(huì) 項(xiàng)目實(shí)訓(xùn)開始的時(shí)候,要求每?jī)蓚€(gè)人選擇一個(gè)題目,本以為這會(huì)很簡(jiǎn)單,可坐下來之后才發(fā)現(xiàn),事實(shí)并非如此。從需求分析到最后的課題的終結(jié),中間實(shí)現(xiàn)的過程都需要應(yīng)用很多的理論知識(shí),而時(shí)間的推移讓自己發(fā)現(xiàn)所學(xué)知識(shí)的膚淺性,只是模糊的停留在知識(shí)的表面,沒有對(duì)其深刻的認(rèn)識(shí)與掌握,同時(shí),這也是對(duì)信心,和耐心的一次考驗(yàn)。通過這次課程設(shè)計(jì),小組成員分工合作,我們兩個(gè)都學(xué)到了很多東西。以前不熟悉的地方都得到了很好的解決。我們通過自我學(xué)習(xí)掌握一些基本應(yīng)用,并通過項(xiàng)目來加強(qiáng)對(duì)其的理解,我們完成了這一系列的設(shè)計(jì)。過程是艱苦的,但是通過這次實(shí)訓(xùn)我們學(xué)到了很多,結(jié)果是美好的。這次課程設(shè)計(jì)也讓我明白了,作為一個(gè)軟件技術(shù)的學(xué)習(xí)者,多動(dòng)手顯得尤為重要,另外,多看看經(jīng)典的例題,多與同學(xué)之間交流,對(duì)于知識(shí)和能力的提高也有很大的幫助。由于我們能力有限,加上時(shí)間倉(cāng)促,本系統(tǒng)難免會(huì)出現(xiàn)一些不足之處,對(duì)于出現(xiàn)的問題,在此深表歉意,如果還有其他問題希望老師批評(píng)指正。13 · 用Visual C++設(shè)計(jì)的倉(cāng)庫管理系統(tǒng) 摘要 本文主要介紹了采用Visual Studio 2005的一個(gè)倉(cāng)庫管理系統(tǒng)。該系統(tǒng)基于MFC集成開發(fā)環(huán)境,利用ADO控件實(shí)現(xiàn)基本信息管理、商品信息管理、庫存操作管理、庫存警示管理的功能。詳細(xì)介紹了開發(fā)本系統(tǒng)的步驟:系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)。在系統(tǒng)分析中采用系統(tǒng)的功能結(jié)構(gòu)圖分析了系統(tǒng)所需的各種數(shù)據(jù)。在系統(tǒng)的設(shè)計(jì)中,詳細(xì)的展現(xiàn)了系統(tǒng)的各個(gè)功能模塊、所需的數(shù)據(jù)庫表、菜單的設(shè)計(jì)等。在系統(tǒng)的實(shí)現(xiàn)中,給出了相應(yīng)模塊功能控件的事件及代碼。 關(guān)鍵字:倉(cāng)庫管理 管理系統(tǒng) ADO控件 面向?qū)ο?/p> 第一章 緒論 1.1系統(tǒng)的開發(fā)背景……………….…………………………………4 1.2當(dāng)前倉(cāng)庫管理現(xiàn)狀分析及設(shè)計(jì)倉(cāng)庫管理系統(tǒng)的意義………….4 1.2系統(tǒng)開發(fā)工具選擇及介紹………………………….……………5 1.3 ADO數(shù)據(jù)訪問技術(shù)………………………………………………7 第二章 系統(tǒng)設(shè)計(jì) 2.1系統(tǒng)需求分析?????????????????????9 2.2系統(tǒng)開發(fā)目標(biāo)……………………………………………… ………10 2.3系統(tǒng)功能分析 2.31系統(tǒng)功能描述…………………………………………………..10 2.32 系統(tǒng)功能模塊的劃分………………………………………… 11 2.33系統(tǒng)流程分析…………………………………………………..11 第三章 數(shù)據(jù)庫設(shè)計(jì) 3.1數(shù)據(jù)庫需求分析 ……………………………………………….12 3.2 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì) ………………………………………….13 3.3 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)及實(shí)現(xiàn) ………………………………….15 第四章 系統(tǒng)各主要功能模塊的實(shí)現(xiàn) 4.1主界面的設(shè)置…………………………………………………..18 4.2主要各功能模塊所涉及的類的添加……………………… ……19 4.3登陸模塊設(shè)計(jì) …………………………………………………..19 4.4客戶管理模塊設(shè)計(jì) 4.41 設(shè)計(jì)客戶信息管理對(duì)話框 ………………………………..21 4.42 設(shè)計(jì)客戶信息編輯對(duì)話框 ……………………………..24 4.5倉(cāng)庫管理模塊設(shè)計(jì) 4.51設(shè)計(jì)倉(cāng)庫信息管理對(duì)話框 …………………………………25 4.6用戶管理模塊設(shè)計(jì) 4.61設(shè)計(jì)用戶信息管理對(duì)話框…………………………………...27 4.62 設(shè)計(jì)用戶信息編輯對(duì)話框…………………………………..28 4.63設(shè)計(jì)修改用戶密碼的對(duì)話框…………………………………29 4.7商品管理模塊設(shè)計(jì) 4.71設(shè)計(jì)商品類別管理對(duì)話框……………………………………30 4.72 設(shè)計(jì)商品類別編輯對(duì)話框…………………………………...31 4.73 設(shè)計(jì)商品信息管理對(duì)話框…………………………………...32 4.8 庫存操作管理模塊設(shè)計(jì) 4.81 設(shè)計(jì)入庫操作管理對(duì)話框…………………………………34 4.82 設(shè)計(jì)入庫單編輯對(duì)話框……………………………………..35 4.83 設(shè)計(jì)出庫操作管理對(duì)話框…………………………………..37 4.84 設(shè)計(jì)出庫操作編輯對(duì)話框 ………………………………..37 4.85 設(shè)計(jì)庫存盤點(diǎn)管理對(duì)話框…………………………………39 4.86 設(shè)計(jì)庫存盤點(diǎn)編輯對(duì)話框 …………………………………40 4.9 庫存警示管理模塊設(shè)計(jì) 4.91 設(shè)計(jì)商品數(shù)量報(bào)警管理模塊………………………………...41 4.92 設(shè)計(jì)商品失效報(bào)警管理模塊 ……………………………….42 第五章 結(jié)束語 5.1開發(fā)中的問題和解決辦法………………………………………….44 5.2系統(tǒng)不足之處………………………………………………………44 第六章 致謝 …………………………………………………………..45 第七章 參考文獻(xiàn) ……………………………………………………..45 1.1系統(tǒng)開發(fā)的背景 20世紀(jì),隨著全球經(jīng)濟(jì)的蓬勃發(fā)展,眾多經(jīng)濟(jì)學(xué)家紛紛提出了新的管理理論。20世紀(jì)50年代,西蒙提出管理依賴于信息和決策的思想。同時(shí)期的維納發(fā)表了控制論,他認(rèn)為管理是一個(gè)控制過程。1958年,蓋爾寫到:“管理將以較低的成本得到及時(shí)準(zhǔn)確的信息,做到較好的控制。”這個(gè)時(shí)期,計(jì)算機(jī)開始用于會(huì)計(jì)工作,出現(xiàn)數(shù)據(jù)處理一詞。 1970年,Walter T.Kennevan給剛剛出現(xiàn)的管理信息系統(tǒng)一詞下了一個(gè)定義:“以口頭或書面的形式,在合適的時(shí)間向經(jīng)理、職員以及外界人員提供過去的、現(xiàn)在的、預(yù)測(cè)未來的有關(guān)企業(yè)內(nèi)部及其環(huán)境的信息,以幫助他們進(jìn)行決策?!痹谶@個(gè)定義里強(qiáng)調(diào)了用信息支持決策,但并沒有強(qiáng)調(diào)應(yīng)用模型,沒有提到計(jì)算機(jī)的應(yīng)用。 1985年,管理信息系統(tǒng)的創(chuàng)始人,明尼蘇達(dá)大學(xué)的管理學(xué)教授Gordon B.Davis給了管理信息系統(tǒng)一個(gè)較完整的定義,即“管理信息系統(tǒng)是一個(gè)利用計(jì)算機(jī)軟硬件資源,手工作業(yè),分析、計(jì)劃、控制和決策模型以及數(shù)據(jù)庫的人-機(jī)系統(tǒng)。它能提供信息支持企業(yè)或組織的運(yùn)行、管理和決策功能?!边@個(gè)定義全面地說明了管理信息系統(tǒng)的目標(biāo)、功能和組成,而且反映了管理信息系統(tǒng)在當(dāng)時(shí)達(dá)到的水平。1.2當(dāng)前倉(cāng)庫管理現(xiàn)狀分析及設(shè)計(jì)倉(cāng)庫管理系統(tǒng)的意義 一直以來人們使用傳統(tǒng)的人工方式管理庫存。這種管理方式存在著許多缺點(diǎn),諸如效率低,保密性差等,而且時(shí)間一長(zhǎng),將產(chǎn)生大量的文件和數(shù)據(jù),這對(duì)于查找、更新和維護(hù)都帶來了不少的困難。對(duì)于企業(yè)來說為了管理好倉(cāng)庫,將付出大量的人力和物力。因此設(shè)計(jì)一款倉(cāng)庫管理系統(tǒng)是非常重要的。它帶來的優(yōu)點(diǎn)是:它可以全面的管理倉(cāng)庫中儲(chǔ)存的商品和貨物,縮短了庫存信息流轉(zhuǎn)時(shí)間,使企業(yè)的物料管理層次分明、井然有序,為采購(gòu)、營(yíng)銷和生產(chǎn)提供了依據(jù),從而提高企業(yè)的經(jīng)營(yíng)效率。因此,庫存管理系統(tǒng)能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄巍?/p> 隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)不斷發(fā)展,其強(qiáng)大的功能已經(jīng)被人們深刻認(rèn)識(shí),它已經(jīng)進(jìn)入了人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來越重要的作用.1.3系統(tǒng)開發(fā)工具的選擇及介紹 ? 系統(tǒng)開發(fā)環(huán)境 操作系統(tǒng):Windows XP Professional 簡(jiǎn)體中文版 開發(fā)平臺(tái): Visual Studio 2005簡(jiǎn)體中文版 ? 系統(tǒng)開發(fā)工具的選擇 實(shí)現(xiàn)該系統(tǒng)的方法有很多,之所以選擇Visual C++作為開發(fā)工具,不僅僅因?yàn)樵?jīng)有過使用它的經(jīng)驗(yàn),看中的更是它的功能強(qiáng)大和使用方便。它本身不僅具有極其強(qiáng)大的編程能力,它允許選擇和管理外接程序,并內(nèi)含多種實(shí)用控件,這些對(duì)Visual C++的擴(kuò)充又進(jìn)一步增強(qiáng)了它的開發(fā)環(huán)境的能力。? 開發(fā)平臺(tái)介紹 Visual Studio 可以用來創(chuàng)建 Windows平臺(tái)下的 Windows 應(yīng)用程序和網(wǎng)絡(luò)應(yīng)用程序,也可以用來創(chuàng)建網(wǎng)絡(luò)服務(wù)、智能設(shè)備應(yīng)用程序和 Office 插件。 1998 年,微軟公司發(fā)布了 Visual Studio 6.0。所有開發(fā)語言的開發(fā)環(huán)境版本均升至 6.0。這也是 Visual Basic 最后一次發(fā)布,從下一個(gè)版本(7.0)開始,Microsoft Basic 進(jìn)化成了一種新的面向?qū)ο蟮恼Z言:Microsoft Basic.NET。由于微軟公司對(duì)于 Sun 公司 Java 語言擴(kuò)充導(dǎo)致與 Java 虛擬機(jī)不兼容而 Sun 被告上法庭,微軟在后續(xù)的 Visual Studio 中不再包括面向 Java 虛擬機(jī)的開發(fā)環(huán)境。 2002 年,隨著.NET 口號(hào)的提出與 Windows XP / Office XP 的發(fā)布,微軟發(fā)布了 Visual Studio.NET(內(nèi)部版本號(hào)為 7.0)。在這個(gè)版本的 Visual Studio 中,微軟剝離了 Visual FoxPro 作為一個(gè)單獨(dú)的開發(fā)環(huán)境以 Visual FoxPro 7.0 單獨(dú)銷售,同時(shí)取消了 Visual InterDev。.NET 的通用語言框架機(jī)制(Common Language Runtime, CLR),其目的是在同一個(gè)項(xiàng)目中支持不同的語言所開發(fā)的組件。所有 CLR 支持的代碼都會(huì)被解釋成為 CLR 可執(zhí)行的機(jī)器代碼然后運(yùn)行。 Visual Basic、Visual C++ 都被擴(kuò)展為支持托管代碼機(jī)制的開發(fā)環(huán)境,且 Visual Basic.NET更是從 Visual Basic 脫胎換骨,徹底支持面向?qū)ο蟮木幊虣C(jī)制。而 Visual J++ 也變?yōu)?Visual J#。后者僅語法同 Java 相同,但是面向的不是 Java 虛擬機(jī),而是.NET Framework。 2003 年,微軟對(duì) Visual Studio 2002 進(jìn)行了部分修訂,以 Visual Studio 2003 的名義發(fā)布(內(nèi)部版本號(hào)為 7.1)。Visio 作為使用統(tǒng)一建模語言(UML)架構(gòu)應(yīng)用程序框架的程序被引入,同時(shí)被引入的還包括移動(dòng)設(shè)備支持和企業(yè)模版。.NET 框架也升級(jí)到了 1.1。 2005 年,微軟發(fā)布了 Visual Studio 2005。.NET 字眼從各種語言的名字中被抹去,但是這個(gè)版本的 Visual Studio 仍然還是面向.NET 框架的(版本2.0)。它同時(shí)也能開發(fā)跨平臺(tái)的應(yīng)用程序,如開發(fā)使用微軟操作系統(tǒng)的手機(jī)的程序等??傮w來說是一個(gè)非常龐大的軟件,甚至包含代碼測(cè)試功能。 這個(gè)版本的 Visual Studio 包含有眾多版本,分別面向不同的開發(fā)角色。 Microsoft為單獨(dú)工作或在小型團(tuán)隊(duì)中的專業(yè)開發(fā)人員提供了兩種選擇,Visual Studio 2005 Professional Edition和用于Microsoft Office系統(tǒng)的Visual Studio 2005工具。每種版本都在標(biāo)準(zhǔn)版的特性上進(jìn)行了擴(kuò)展,包括用于遠(yuǎn)程服務(wù)程序開發(fā)和調(diào)試、SQL Server2005開發(fā)的工具,以及完整的、沒有限制的開發(fā)環(huán)境。 1.4 ADO數(shù)據(jù)訪問技術(shù) ADO(ActiveX Data Objects,ActiveX數(shù)據(jù)對(duì)象)是Microsoft提出的應(yīng)用程序接口(API)用以實(shí)現(xiàn)訪問關(guān)系或非關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)。象Microsoft的其它系統(tǒng)接口一樣,ADO是面向?qū)ο蟮?。它是Microsoft全局?jǐn)?shù)據(jù)訪問(UDA)的一部分,Microsoft認(rèn)為與其自己創(chuàng)建一個(gè)數(shù)據(jù),不如利用UDA訪問已有的數(shù)據(jù)庫。為達(dá)到這一目的,Microsoft和其它數(shù)據(jù)庫公司在它們的數(shù)據(jù)庫和Microsoft的OLE數(shù)據(jù)庫之間提供了一個(gè)“橋”程序,OLE數(shù)據(jù)庫已經(jīng)在使用ADO技術(shù)。ADO的一個(gè)特征(稱為遠(yuǎn)程數(shù)據(jù)服務(wù))支持網(wǎng)頁中的數(shù)據(jù)相關(guān)的ActiveX控件和有效的客戶端緩沖。作為ActiveX的一部分,ADO也是Microsoft的組件對(duì)象模式(COM)的一部分,它的面向組件的框架用以將程序組裝在一起。ADO從原來的Microsoft數(shù)據(jù)接口遠(yuǎn)程數(shù)據(jù)對(duì)象(RDO)而來。RDO與ODBC一起工作訪問關(guān)系數(shù)據(jù)庫,但不能訪問如ISAM和VSAM的非關(guān)系數(shù)據(jù)庫。 ADO 是對(duì)當(dāng)前微軟所支持的數(shù)據(jù)庫進(jìn)行操作的最有效和最簡(jiǎn)單直接的方法,它是一種功能強(qiáng)大的數(shù)據(jù)訪問編程模式,從而使得大部分?jǐn)?shù)據(jù)源可編程的屬性得以直接擴(kuò)展到你的Active Server 頁面上。可以使用ADO 去編寫緊湊簡(jiǎn)明的腳本以便連接到 Open Database Connectivity(ODBC)兼容的數(shù)據(jù)庫和 OLE DB 兼容的數(shù)據(jù)源,這樣 ASP 程序員就可以訪問任何與 ODBC 兼容的數(shù)據(jù)庫,包括 MS SQL SERVER、Access、Oracle 等等。 ADO是一種面向?qū)ο蟮木幊探涌?,微軟介紹說,與其同IBM和Oracle提倡的那樣,創(chuàng)建一個(gè)統(tǒng)一數(shù)據(jù)庫,不如提供一個(gè)能夠訪問不同數(shù)據(jù)庫的統(tǒng)一接口,這樣會(huì)更加實(shí)用一些。為實(shí)現(xiàn)這一目標(biāo),微軟在數(shù)據(jù)庫和微軟的OLE DB中提供了一種“橋”程序,這種程序能夠提供對(duì)數(shù)據(jù)庫的連接。 開發(fā)人員在使用ADO時(shí),其實(shí)就是在使用OLE DB,不過OLE DB更加接近底層。ADO的一項(xiàng)屬性??遠(yuǎn)程數(shù)據(jù)服務(wù),支持“數(shù)據(jù)倉(cāng)庫”ActiveX 組件以及高效的客戶端緩存。作為ActiveX的一部分,ADO也是COM組件的一部分。ADO是由早期的微軟數(shù)據(jù)接口?遠(yuǎn)程數(shù)據(jù)對(duì)象RDO演化而來的。RDO同微軟的ODBC一同連接關(guān)系數(shù)據(jù)庫,不過不能連接非關(guān)系數(shù)據(jù)庫。 ADO向我們提供了一個(gè)熟悉的,高層的對(duì)OLE DB的Automation封裝接口。對(duì)那些熟悉RDO的程序員來說,你可以把OLE DB比作是ODBC驅(qū)動(dòng)程序。如同RDO對(duì)象是ODBC驅(qū)動(dòng)程序接口一樣,ADO對(duì)象是OLE DB的接口;如同不同的數(shù)據(jù)庫系統(tǒng)需要它們自己的ODBC驅(qū)動(dòng)程序一樣,不同的數(shù)據(jù)源要求它們自己的OLE DB提供者(OLE DB provider)。目前,雖然OLE DB提供者比較少,但微軟正積極推廣該技術(shù),并打算用OLE DB取代ODBC。 ADO向程序員提供了很多好處。包括易于使用,熟悉的界面,高速度以及較低的內(nèi)存占用(已實(shí)現(xiàn)ADO2.0的Msado15.dll需要占用342K內(nèi)存,比RDO的Msrdo20.dll的368K略小,大約是DAO3.5 的Dao350.dll所占內(nèi)存的60%)。同傳統(tǒng)的數(shù)據(jù)對(duì)象層次(DAO和RDO)不同,ADO可以獨(dú)立創(chuàng)建。因此你可以只創(chuàng)建一個(gè) “Connection”對(duì)象,但是可以有多個(gè),獨(dú)立的“Recordset”對(duì)象來使用它。ADO針對(duì)客戶/服務(wù)器以及WEB應(yīng)用程序作了優(yōu)化。第二章 系統(tǒng)設(shè)計(jì) 2.1系統(tǒng)需求分析 隨著科學(xué)技術(shù)的發(fā)展,越來越多的企業(yè)開始用計(jì)算機(jī)管理倉(cāng)庫。而現(xiàn)在的倉(cāng)庫管理系統(tǒng)多種多樣,而倉(cāng)庫管理的特點(diǎn)是信息處理量比較大。所以管理的物資設(shè)備種類繁多,而且由于入庫單,出庫單,需求單等單據(jù)發(fā)生量特別大,關(guān)聯(lián)信息多,查詢和統(tǒng)計(jì)的方式各不相同。因此在管理上實(shí)現(xiàn)起來有一定的困難。在管理的過程中經(jīng)常會(huì)出現(xiàn)信息的重復(fù)傳遞,單據(jù),報(bào)表種類繁多,各個(gè)部門管理規(guī)格不統(tǒng)一等問題。 在本系統(tǒng)的設(shè)計(jì)過程中,為了克服以上困難,滿足計(jì)算機(jī)管理的需要,我們采取了下面的一些原則。 ●統(tǒng)一各種原始的單據(jù)的格式,統(tǒng)一帳目和報(bào)表的格式?!駝h除不必要的管理冗余,實(shí)現(xiàn)管理規(guī)范化、科學(xué)化。 ●程序代碼標(biāo)準(zhǔn)化,軟件統(tǒng)一化,確認(rèn)軟件的可維護(hù)行和實(shí)用性。●界面盡量簡(jiǎn)單化,做到實(shí)用、方便,盡量滿足企業(yè)中不同層次員工的需要。2.2系統(tǒng)開發(fā)目標(biāo) 系統(tǒng)開發(fā)的總體任務(wù)是實(shí)現(xiàn)企業(yè)物資設(shè)備管理的系統(tǒng)化,規(guī)范化和自動(dòng)化,從而達(dá)到提高企業(yè)物資管理的效率的目的。2.3系統(tǒng)功能分析 2.31系統(tǒng)功能描述(1)基本信息管理 基本信息管理包括對(duì)客戶信息、倉(cāng)庫信息和用戶信息信息的管理。(2)商品信息管理 對(duì)于商品各種信息的管理。(3)庫存操作管理 庫存操作管理可以實(shí)現(xiàn)入庫管理、出庫管理和庫存盤點(diǎn)等功能。(4)庫存警示管理 庫存警示是指對(duì)庫存中接近或超過臨界值的商品進(jìn)行報(bào)警。在商品信息中,包含商品的合理數(shù)量范圍和有效期限。商品數(shù)量小于合理數(shù)量下限稱為短線;商品數(shù)量大于合理數(shù)量的上限成為超儲(chǔ)。商品出現(xiàn)短線、超儲(chǔ)、接近或超過有效期限時(shí)都需要報(bào)警。(5)統(tǒng)計(jì)查詢管理功能 統(tǒng)計(jì)查詢管理可以對(duì)庫存商品進(jìn)行各種類型的統(tǒng)計(jì)和查詢。從而使用戶能夠全面的了解庫存狀況。2.32 系統(tǒng)功能模塊的劃分 基于對(duì)系統(tǒng)的分析,可以得到如圖所示的系統(tǒng)功能模塊圖: 本系統(tǒng)將用戶劃分為兩種類型,即系統(tǒng)管理員用戶和普通用戶。系統(tǒng)管理員用戶可以管理其他用戶信息,而在其他方面與所有用戶的權(quán)限相同。 2.33系統(tǒng)流程分析 所謂系統(tǒng)流程就是用戶在使用系統(tǒng)時(shí)的工作過程。對(duì)于多類型用戶的管理系統(tǒng)來說,每一類用戶的工作流程都是不相同的。多用戶系統(tǒng)的工作流程都是從用戶登陸模塊開始,對(duì)用戶的身份進(jìn)行認(rèn)證。身份認(rèn)證可以分為以下兩個(gè)過程: (1)確認(rèn)用戶是否是有效的系統(tǒng)用戶。(2)確定用戶的類型。 第一個(gè)過程決定用戶能否進(jìn)入系統(tǒng)。第二個(gè)過程根據(jù)用戶的類型決定用戶的操作權(quán)限,從而決定用戶的工作界面。因此得到它的系統(tǒng)流程分析圖如下: 第三章 數(shù)據(jù)庫設(shè)計(jì) 3.1數(shù)據(jù)庫需求分析 在本設(shè)計(jì)中,通過對(duì)企業(yè)倉(cāng)庫管理的內(nèi)容和系統(tǒng)流程分析,設(shè)計(jì)的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)如下: (1)客戶信息。包括的數(shù)據(jù)項(xiàng)有客戶編號(hào)、名稱、類型等。(2)倉(cāng)庫信息。包括倉(cāng)庫編號(hào)、名稱和說明等。(3)用戶信息。包括用戶名、密碼、員工姓名等信息。(4)商品管理信息。包括商品類別,商品編號(hào)等信息。 (5)庫存操作管理信息。包括入庫和出庫操作需要記錄的商品信息、倉(cāng)庫信息、經(jīng)辦人、涉及金額和入庫時(shí)間等信息。有了上面的數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)項(xiàng),就能進(jìn)行下面的數(shù)據(jù)庫設(shè)計(jì)。3.2 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì) 這一設(shè)計(jì)階段是在需求分析的基礎(chǔ)上,設(shè)計(jì)出能夠滿足用戶需求的各種實(shí)體,以及它們之間的關(guān)系,為后面的邏輯結(jié)構(gòu)設(shè)計(jì)打下基礎(chǔ)。本設(shè)計(jì)根據(jù)上面的設(shè)計(jì)規(guī)劃出的實(shí)體有客戶實(shí)體、倉(cāng)庫實(shí)體、用戶實(shí)體、商品類別實(shí)體、商品實(shí)體、入庫實(shí)體、出庫實(shí)體、庫存實(shí)體。各個(gè)實(shí)體的E-R圖描述如下: 客戶實(shí)體的E-R圖 倉(cāng)庫實(shí)體E-R圖 用戶實(shí)體E-R圖 商品類別E-R圖 商品類別E-R圖 入庫實(shí)體E-R圖 出庫實(shí)體E-R圖 庫存實(shí)體 E-R圖 3.3 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)及實(shí)現(xiàn) 倉(cāng)庫管理系統(tǒng)數(shù)據(jù)庫中的各個(gè)表格的設(shè)計(jì)結(jié)果如下面的幾個(gè)表格所示。每個(gè)表格表示在數(shù)據(jù)庫中的一個(gè)表。數(shù)據(jù)庫的實(shí)現(xiàn)采用SQL Sever 2005。 (1)客戶信息表(Client) 說明:Cid為客戶編號(hào)、Cname為客戶名稱、Ctype為客戶類型其中包括(1、供應(yīng)商 2、供貨商)、Ctype為聯(lián)系人、Address為通信地址、Postcode為郵政編碼、Phone為聯(lián)系電話、Fax為傳真電話、Memo為備注信息。 (2)倉(cāng)庫信息表(Storehouse) 說明:Sid為倉(cāng)庫編號(hào)、Sname為倉(cāng)庫名稱、Memo為倉(cāng)庫說明。(3)用戶信息表(Users) 說明:UserName為用戶名、Pwd為密碼、User_type為用戶類型(1、系統(tǒng)管理員用戶,2、普通用戶)(4)商品類別表(ProType) 說明:TypeId為商品類別編號(hào)、TypeName為商品類別名稱、UpperId為上級(jí)商品類別 (5)商品信息表(Product) 說明:Pid為商品編號(hào)、Pname 為商品名稱、TypeId為商品類型編號(hào)、Pstyle商品規(guī)格、Punit為計(jì)量單位、Pprice為參考價(jià)格、Plow為商品數(shù)量下限、Phigh為商品數(shù)量上限、Valid為有效期、AlarmDay為在到達(dá)有效期前幾天發(fā)出警告。(6)入庫操作信息表(Storeln) 說明:SiType為入庫操作類型,包括銷售出庫、退貨出庫、用料出庫等。Pid為入庫商品編號(hào)、MakeDate為生產(chǎn)日期、Pprice為入庫商品單價(jià)、Pnum為入庫商品數(shù)量、Cid為客戶編號(hào)、Sid為倉(cāng)庫編號(hào)、EmpName為經(jīng)辦人、OptDate為入庫日期(7)出庫操作信息表(TakeOut) 說明:Ttype為入庫操作類型,包括銷售出庫、退貨出庫、用料出庫等。Pid為入庫商品編號(hào)、MakeDate為生產(chǎn)日期、Pprice為入庫商品單價(jià)、Pnum為入庫商品數(shù)量、Cid為客戶編號(hào)、Sid為倉(cāng)庫編號(hào)、EmpName為經(jīng)辦人、OptDate為入庫日期(8)庫存商品信息表(ProlnStore) 說明: SpId為商品存儲(chǔ)編號(hào)、Pid為商品編號(hào)、Pprice為商品入庫單價(jià)、Pnum為商品數(shù)量、MakeDate為生產(chǎn)日期、Sid為倉(cāng)庫編號(hào) 第四章 系統(tǒng)各主要功能模塊的實(shí)現(xiàn) 4.1主界面的設(shè)置 根據(jù)對(duì)系統(tǒng)功能分析,主界面的菜單項(xiàng)包括基本信息管理、商品信息管理、庫操作管理和庫存警示管理。如圖所示: 當(dāng)用戶單擊基本信息管理時(shí),顯示客戶信息管理、倉(cāng)庫信息管理、用戶信息管理、修改用戶密碼、退出系統(tǒng)菜單項(xiàng)。添加這些菜單項(xiàng)如圖所示: 當(dāng)用戶單擊商品信息管理時(shí),顯示商品類別管理、商品信息管理。添加這些菜單項(xiàng)如圖所示: 當(dāng)用戶單擊庫存操作管理時(shí),顯示入庫操作、出庫操作、庫存盤點(diǎn)。添加這些菜單項(xiàng)如圖所示: 當(dāng)用戶單擊庫存警示管理時(shí),顯示數(shù)量報(bào)警和實(shí)效報(bào)警。添加這些菜單項(xiàng)如圖所示: 4.2主要各功能模塊所涉及的類的添加 根據(jù)數(shù)據(jù)庫邏輯設(shè)計(jì),我們可以為這些表添加相應(yīng)的類。 1、CClient類用來管理客戶表的數(shù)據(jù)庫操作。 2、CStorehouse類用來管理表Storehouse的數(shù)據(jù)庫操作。 3、CUsers類用來管理表Users的數(shù)據(jù)庫操作。 4、CProType類用來管理表ProType的數(shù)據(jù)庫的操作。 5、CProductl類用來管理表Product的數(shù)據(jù)庫操作。 6、CStoreln類用來管理表Storeln的數(shù)據(jù)庫操作。 7、CTakeOut類用來管理表TakeOut的數(shù)據(jù)庫操作。 8、CProInStore類用來管理表ProInStore的數(shù)據(jù)庫操作。4.3登陸模塊設(shè)計(jì) 登陸對(duì)話框布局如圖: 其ID值設(shè)為IDD_USERNAME_DIALOG。 用戶要使用系統(tǒng),首先必須通過系統(tǒng)的身份認(rèn)證,這個(gè)過程叫做登陸。此模塊的功能就是要進(jìn)行身份認(rèn)證。 在登陸對(duì)話框用戶首先輸入用戶名,然后輸入密碼。輸入完畢時(shí),點(diǎn)擊確定將發(fā)送BN_CLICKED消息。在確認(rèn)按鈕處添加此消息響應(yīng)函數(shù)CLoginDlg :OnOK()。此函數(shù)的主要功能是檢查用戶輸入數(shù)據(jù)的有效性,如果輸入的信息不符合要求會(huì)自動(dòng)退出程序。主要代碼如下: CLoginDlg::OnOK(){ …… //檢查數(shù)據(jù)有效性 if(m_UserName == “"){MessageBox(”請(qǐng)輸入用戶名“); return;} if(m_Pwd == ”“){ MessageBox(”請(qǐng)輸入密碼“); return;} CUsers user;//定義CUsers對(duì)象 user.GetData(m_UserName);//用于從表Users中讀取數(shù)據(jù) //如果讀取的數(shù)據(jù)與用戶輸入數(shù)據(jù)不同,則返回 if(user.GetPwd()!= m_Pwd){ MessageBox(”用戶信息不正確,無法登錄!“); return;} } 當(dāng)用戶單擊取消時(shí),添加CLoginDlg::OnBnClickedCancel()函數(shù)來響應(yīng)此消息。此函數(shù)的功能是退出程序。主要代碼如下: void CLoginDlg::OnBnClickedCancel(){ OnCancel();} 4.4客戶管理模塊設(shè)計(jì) 客戶管理模塊可以實(shí)現(xiàn)以下功能: 1、添加客戶。 2、修改客戶信息。 3、刪除客戶。 4、查看客戶信息。4.41 設(shè)計(jì)客戶信息管理對(duì)話框 對(duì)話框布局如圖: 其ID值設(shè)為IDD_CLENTMAN_DIALOG。對(duì)話框?qū)?yīng)的類為CClientManDlg。它繼承CDialog類。添加控件包括四個(gè)按鈕控件,一個(gè)組合框、ADO Data和DataGrid控件。 該對(duì)話框的主要函數(shù)為Refresh_Data()、OnAddButtom()、OnModiButton()、OnDelButton()。1.Refresh_Data()函數(shù) 它的功能是為ADO Data控件設(shè)置數(shù)據(jù)源,從而決定在DataGrid控件中顯示的數(shù)據(jù)內(nèi)容。主要代碼如下: Refresh_Data(){ CString cSource; //設(shè)置SELECT語句,按客戶單位排序 …… m_adodc.SetRecordSource(cSource);m_adodc.Refresh();//設(shè)置表格列寬度 } 2.OnAddButtom()函數(shù) 當(dāng)用戶單擊“添加”按鈕時(shí),執(zhí)行此函數(shù)。其功能是打開編輯對(duì)話框。主要代碼如下: OnAddButton(){ …… //打開編輯對(duì)話框 CClientEditDlg dlg;…… if(dlg.DoModal()== IDOK)…… } 3.OnModiButton()函數(shù) 當(dāng)用戶單擊“修改”按鈕時(shí),執(zhí)行此函數(shù)。其功能是彈出編輯對(duì)話框進(jìn)行修改記錄操作。主要代碼如下: OnModiButton(){ …… CClientEditDlg dlg;dlg.cCid = m_datagrid.GetItem(0);//記錄編號(hào) …… if(dlg.DoModal()== IDOK) Refresh_Data();} 4.OnDelButton()函數(shù) 當(dāng)用戶單擊“刪除”按鈕時(shí),執(zhí)行此函數(shù),其功能是刪除所選擇的記錄。主要代碼如下: OnDelButton(){ …… CClient clt; clt.sql_delete(m_datagrid.GetItem(0));刪除記錄 Refresh_Data(); } 4.42 設(shè)計(jì)客戶信息編輯對(duì)話框 編輯客戶信息的對(duì)話框可以用來添加和修改客戶信息,對(duì)話框名稱為IDD_CLIENTEDIT_DIALOG。對(duì)話框的布局如圖: 為對(duì)話框創(chuàng)建CClientEditDlg類并繼承與CDialog類。 當(dāng)用戶單擊“確定”按鈕,添加OnOK()函數(shù),其功能是將輸入的信息保存到數(shù)據(jù)庫中。主要代碼如下: OnOK(){ …..CClient clt;clt.SetCname(m_Cname);//客戶單位 …… clt.sql_insert();插入進(jìn)數(shù)據(jù)庫 …… clt.sql_update(cCid);} 4.5 倉(cāng)庫管理模塊設(shè)計(jì) 倉(cāng)庫管理模塊可以實(shí)現(xiàn)以下功能: 1、添加倉(cāng)庫信息 2、修改倉(cāng)庫信息 3、刪除倉(cāng)庫信息 4、查看倉(cāng)庫信息 4.51 設(shè)計(jì)倉(cāng)庫信息管理對(duì)話框 對(duì)話框布局如圖: 對(duì)話框ID為IDD_STOREHOUSEMAN_DIALOG.對(duì)話框?qū)?yīng)的類為CStoreHouseManDlg。該對(duì)話框的主要函數(shù)為Refresh_Data()、OnAddButtom()、OnModiButton()、OnDelButton()。其功能與客戶信息管理對(duì)話框函數(shù)的功能一樣。函數(shù)實(shí)現(xiàn)過程也非常類似。在此不再詳細(xì)說明。 4.52 設(shè)計(jì)倉(cāng)庫信息編輯對(duì)話框 編輯倉(cāng)庫信息的對(duì)話框可以用來添加和修改倉(cāng)庫信息,其ID為IDD_STOREHOUSEEDIT_DIALOG。對(duì)話框的布局如圖: 對(duì)話框?qū)?yīng)的類為CStoreHouseEditDlg。當(dāng)用戶單擊“確定”時(shí),執(zhí)行OnOK()函數(shù)用來把在對(duì)話框輸入的信息添加或修改到數(shù)據(jù)庫中。主要代碼如下: CStoreHouseEditDlg::OnOK(){ …… CStorehouse sh;sh.SetSname(m_Sname);//倉(cāng)庫名稱 sh.SetMemo(m_Memo);//倉(cāng)庫說明 …… //表示插入新記錄 sh.sql_insert(); …… } 4.6用戶管理模塊設(shè)計(jì) 根據(jù)用戶類型的不同,用戶管理模塊的功能也不相同。可以包含以下情形: 1、Admin用戶可以創(chuàng)建系統(tǒng)管理員或普通用戶、復(fù)位用戶密碼、刪除系統(tǒng)管理員或普通用戶,也可以修改自身的密碼。 2、系統(tǒng)管理員用戶可以創(chuàng)建普通用戶、對(duì)普通用戶的密碼進(jìn)行復(fù)位、刪除普通用戶,也可以修改自身密碼。 3、普通用戶只能修改自身密碼。4.61設(shè)計(jì)用戶信息管理對(duì)話框 用戶信息管理對(duì)話框ID為IDD_USERMAN_DIALOG,對(duì)話框的布局如圖: 對(duì)話框?qū)?yīng)的類為CUserManDlg。對(duì)話框中使用DataList控件顯示用戶列表,使用ADO Data控件為其提供數(shù)據(jù)源。當(dāng)用戶單擊“添加”按鈕時(shí),執(zhí)行OnAddButtom()函數(shù),其功能是顯示用戶信息編輯對(duì)話框。主要代碼為: OnAddButton(){ CUserEditDlg dlg;dlg.iUserType = 2;if(dlg.DoModal()== IDOK) m_adodc.Refresh();} 當(dāng)用戶單擊“密碼復(fù)位”按鈕時(shí),執(zhí)行OnModiButton()函數(shù),功能是對(duì)用戶密碼進(jìn)行復(fù)位,復(fù)位密碼默認(rèn)值為888888。主要代碼如下:OnModiButton(){ …… CUsers usr; usr.SetPwd(”888888“);//設(shè)置默認(rèn)密碼 usr.sql_updatePwd(m_datalist.GetText()); MessageBox(”密碼已經(jīng)復(fù)位“);} 當(dāng)用戶單擊“刪除”時(shí),執(zhí)行OnDelButton()函數(shù),其功能刪除用戶。主要代碼如下: OnDelButton(){ …… CUsers usr; usr.sql_delete(m_datalist.GetText()); m_adodc.Refresh();} 4.62 設(shè)計(jì)用戶信息編輯對(duì)話框 用戶信息編輯對(duì)話框的ID為IDD_USEREDIT_DIALOG,對(duì)話框布局如圖: 對(duì)話框?qū)?yīng)的類為CUserEditDlg。當(dāng)用戶單擊“確定”按鈕時(shí),執(zhí)行OnOK()函數(shù),其功能是創(chuàng)建一個(gè)新用戶,并將其加入到數(shù)據(jù)庫中。主要代碼如下: OnOK(){CUsers usr;…… //插入用戶記錄 usr.sql_insert();} 4.63設(shè)計(jì)修改用戶密碼的對(duì)話框 修改用戶密碼對(duì)話框的ID為IDD_CHANGEPWD_DIALOG,對(duì)話框的布局如圖: 對(duì)話框?qū)?yīng)的類為CChangePwdDlg。當(dāng)用戶單擊“確定”按鈕時(shí),執(zhí)行OnOK()函數(shù),其功能是對(duì)用戶密碼進(jìn)行修改。主要代碼如下: CChangePwdDlg::OnOK(){ …… user.SetPwd(m_NewPwd1);user.sql_updatePwd(m_UserName);//更新當(dāng)前用戶密碼 …… } 4.7商品管理模塊設(shè)計(jì) 商品管理模塊可以實(shí)現(xiàn)以下功能: 1、商品類別的添加、修改、刪除。 2、商品信息的添加、修改、刪除。4.71設(shè)計(jì)商品類別管理對(duì)話框 商品類別管理對(duì)話框的ID為IDD_PROTYPEMAN_DIALOG,對(duì)話框布局入圖: 對(duì)話框?qū)?yīng)的類為CProtypeManDlg。當(dāng)用戶單擊一級(jí)商品類別列表框時(shí),執(zhí)行OnClickDatalist()函數(shù),其功能是選擇一級(jí)商品列表的內(nèi)容時(shí),決定二級(jí)商品類別列表框顯示的內(nèi)容。主要代碼如下:CProTypeManDlg::OnClickDatalist1(){ CString cUpper;cUpper = m_datalist1.GetBoundText();//讀取選擇類別的編號(hào) //設(shè)置二級(jí)類別的記錄源 m_adodc2.SetRecordSource(”SELECT * FROM ProType WHERE UpperId=“ + cUpper);m_adodc2.Refresh();} 當(dāng)用戶單擊左側(cè)的“添加”按鈕時(shí),執(zhí)行OnAdd1Buttom()函數(shù),其功能是顯示商品類別編輯對(duì)話框。主要代碼如下:CProTypeManDlg::OnAdd1Button(){ CProTypeEditDlg dlg;dlg.cTypeId = ”“;//表示添加記錄 dlg.cTypeName = ”“;dlg.iUpperId = 0;//表示一級(jí)類別 //打開編輯對(duì)話框 if(dlg.DoModal()== IDOK) m_adodc1.Refresh();} 當(dāng)用戶單擊左側(cè)“修改”按鈕時(shí),執(zhí)行OnModilButton()函數(shù),其功能與“添加”按鈕功能類似。 當(dāng)用戶單擊左側(cè)的“刪除”按鈕時(shí),執(zhí)行OnDel1Button()函數(shù),其功能刪除商品類別。主要代碼如下: CProTypeManDlg::OnDel1Button(){ pt.sql_delete(Tid);//刪除 m_adodc1.Refresh();//刷新 } 剩下右側(cè)的按鈕與左側(cè)的按鈕功能類似,只不過刪除的商品類別不一樣。參照左側(cè)功能函數(shù)即可。4.72 設(shè)計(jì)商品類別編輯對(duì)話框 編輯商品類別信息的對(duì)話框可以用來添加和修改商品類別信息。對(duì)話框ID為IDD_PROTYPEEDIT_DIALOG。其布局如圖: 對(duì)話框?qū)?yīng)的類為CProTypeEditDlg。當(dāng)用戶單擊“確定”按鈕時(shí),執(zhí)行OnOK()函數(shù),其功能是添加商品類別到數(shù)據(jù)庫中。主要代碼如下: CProTypeEditDlg::OnOK(){ …… CProType pt;pt.SetTypeName(m_TypeName);//類別名稱 …… if(cTypeId == ”“)//表示插入數(shù)據(jù) pt.sql_insert(); …… else pt.sql_update(cTypeId); …… } 4.73 設(shè)計(jì)商品信息管理對(duì)話框 商品信息管理對(duì)話框可以按照商品類別查詢商品信息,也可以對(duì)商品信息進(jìn)行添加,修改和刪除等操作。對(duì)話框ID為IDD_PROMAN_DIALOG。對(duì)話框的布局如圖: 為對(duì)話框添加CProManDlg類。在對(duì)話框中有3個(gè)ADO Data控件,它們分別為一級(jí)商品類別、二級(jí)商品類別和商品表格提供數(shù)據(jù)源。添加、修改、刪除操作函數(shù)的功能與其他對(duì)話框功能類似在此不再詳述。此對(duì)話框用的主要函數(shù)是當(dāng)用戶單擊一級(jí)商品類別時(shí),執(zhí)行OnClickDatacombol()函數(shù),其功能是根據(jù)用戶選擇的一級(jí)類別來設(shè)置要顯示的二級(jí)商品類別。主要代碼如下: CProManDlg::OnClickDatacombo1(short Area){ …… cUpper = m_datacombo1.GetBoundText();//讀取選擇類別的編號(hào) //設(shè)置二級(jí)類別的記錄源 m_adodc2.SetRecordSource(”SELECT * FROM ProType WHERE UpperId=“ + cUpper);m_adodc2.Refresh();} 4.74 設(shè)計(jì)商品信息編輯對(duì)話框 編輯商品信息的對(duì)話框 當(dāng)用戶單擊“確定”按鈕時(shí),執(zhí)行OnOK()函數(shù),功能將輸入的數(shù)據(jù)保存到數(shù)據(jù)庫中。其代碼如下: CProEditDlg::OnOK(){ CProduct pr;…… pr.sql_insert();//插入數(shù)據(jù)庫 pr.sql_update(cPid);CDialog::OnOK();} 4.8 庫存操作管理模塊設(shè)計(jì) 庫存操作管理模塊可以實(shí)現(xiàn)以下功能: 1、入庫操作的添加、修改、刪除、2、出庫操作的添加、修改和刪除。 3、庫存盤點(diǎn)的添加、修改、刪除。4.81 設(shè)計(jì)入庫操作管理對(duì)話框 入庫單管理對(duì)話框的ID為IDD_STOREINMAN_DIALOG。對(duì)話框的布局如圖:對(duì)話框所對(duì)應(yīng)的類為CStoreInManDlg。調(diào)用的主要函數(shù)是 Refresh_Data()、OnAddButton()函數(shù)。Refresh_Data()的功能是設(shè)置ADO Data控件的記錄源與其他對(duì)話框的ADO控件的功能類似,OnAddButton()函數(shù)與其他對(duì)話框的添加函數(shù)類似。代碼不再詳細(xì)描述。 4.82 設(shè)計(jì)入庫單編輯對(duì)話框 入庫單編輯對(duì)話框的ID為IDD_STOREINDIT_DIALOG。對(duì)話框的布局如圖: 對(duì)話框?qū)?yīng)的類為CStoreInEditDlg。在此對(duì)話框中使用了5個(gè)ADO Data控件,功能與其他對(duì)話框的ADO Data控件相同。此對(duì)話框主要函數(shù)是OnSelchangeClttypeCombo()和OnChangePpriceEdit()函數(shù)。 1、OnSelchangeClttypeCombo()函數(shù)功能是當(dāng)用戶在客戶類別組合框中選擇不同類別時(shí),根據(jù)用戶所選擇的客戶類別設(shè)置查詢條件。主要代碼如下: OnSelchangeClttypeCombo(){ //設(shè)置查詢客戶的SELECT語句 CString cSource;cSource = ”SELECT * FROM Client“;//根據(jù)客戶類別設(shè)置查詢條件 if(m_CltType.GetCurSel()== 0) cSource += ” WHERE Ctype = 1“;else cSource += ” WHERE Ctype = 2“;m_Client.SetText(”“);//清除客戶組合框的顯示內(nèi)容 m_adodc1.SetRecordSource(cSource);//設(shè)置數(shù)據(jù)源,重新客戶列表 m_adodc1.Refresh();} 2、OnChangePpriceEdit()函數(shù)功能是當(dāng)用戶改變商品單價(jià)數(shù)據(jù)時(shí),總價(jià)格也隨著變化而變化。主要代碼如下: CStoreInEditDlg::OnChangePpriceEdit(){ UpdateData(TRUE);//讀取輸入數(shù)據(jù)到成員變量 m_Price.Format(”%.2f“, m_Pprice * m_Pnum);//計(jì)算總價(jià)格 UpdateData(FALSE); //顯示成員變量值 } 當(dāng)用戶單擊“確定“按鈕時(shí)執(zhí)行OnOK()函數(shù),將輸入的信息插入到數(shù)據(jù)庫中。 4.83 設(shè)計(jì)出庫操作管理對(duì)話框 出庫操作管理對(duì)話框的ID為IDD_TAKEOUTMAN_DIALOG.對(duì)話框布局如圖: 對(duì)話框所對(duì)應(yīng)的類為CTakeOutManDlg。主要函數(shù)Refresh_Data()、OnAddButton()。功能與入庫管理對(duì)話框相似。不再詳述。4.84 設(shè)計(jì)出庫操作編輯對(duì)話框 出庫操作編輯對(duì)話框的ID為IDD_TAKEOUTEDIT_DIALOG。對(duì)應(yīng)的類為CTakeOutEditDlg。布局如圖: 對(duì)話框中的DataGrid控件用于根據(jù)用戶選擇的商品和倉(cāng)庫信息顯示相關(guān)的庫存商品,用戶可以從其中選擇需要出庫的商品,然后輸入出庫數(shù)量。在顯示庫存商品時(shí),需要查詢默認(rèn)商品的價(jià)格數(shù)量,并顯示在表格下方。因此,需要調(diào)用OnClickDatagrid2()函數(shù)。程序?qū)腄ataGrid控件中讀取商品價(jià)格和庫存數(shù)量等信息,并顯示在對(duì)話框的相關(guān)位置。主要代碼如下:OnClickDatagrid2(){ …… m_Pprice = m_datagrid.GetItem(1);//從表格中讀取產(chǎn)品價(jià)格 m_Pnum1 = m_datagrid.GetItem(2);//從表格中讀取產(chǎn)品庫存數(shù)量 UpdateData(FALSE);…… } 當(dāng)用戶點(diǎn)擊“確定“按鈕時(shí),執(zhí)行OnOK()函數(shù),將編輯的倉(cāng)庫出庫單保存到數(shù)據(jù)庫中。主要代碼如下: { …… CProInStore pi;CTakeOut to;CString cType;//插入出庫數(shù)量 to.sql_insert();//@@@@@ 保存庫存產(chǎn)品信息 @@@@@ …… pi.sql_insert();} 4.85 設(shè)計(jì)庫存盤點(diǎn)管理對(duì)話框 庫存盤點(diǎn)管理對(duì)話框的ID為IDD_CHECKMAN_DIALOG。對(duì)話框的布局如圖:對(duì)話框?qū)?yīng)的類為CCheckManDlg。對(duì)話框主要函數(shù)是 Refresh_Data()。功能是設(shè)置數(shù)據(jù)源,查詢相關(guān)庫存盤點(diǎn)信息。主要代碼如下:Refresh_Data(){CString cPid;//保存當(dāng)前選擇的產(chǎn)品編號(hào) …… CString cSid;//保存當(dāng)前選擇的倉(cāng)庫編號(hào) …..//設(shè)置SELECT語句 CString cSource;cSource = ”SELECT SpId, Pprice As 產(chǎn)品入庫單價(jià), Pnum As 庫存數(shù)量, MakeDate As 生產(chǎn)日期“;cSource += ” FROM ProInStore WHERE Pid=“ + cPid + ” AND Sid=" + cSid;//設(shè)置記錄源 m_adodc6.SetRecordSource(cSource);m_adodc6.Refresh();……} 4.86 設(shè)計(jì)庫存盤點(diǎn)編輯對(duì)話框 庫存盤點(diǎn)編輯對(duì)話框用于編輯指定商品的庫存數(shù)量,從而糾正庫存數(shù)量可能存在的錯(cuò)誤。對(duì)話框的ID為IDD_CHECKEDIT_DIALOG。對(duì)話框的布局如圖: 對(duì)話框類為CCheckEditDlg。當(dāng)用戶單擊“確定”按鈕時(shí),執(zhí)行OnOK()函數(shù)。其功能是更新庫存數(shù)量。代碼如下: OnOK(){ UpdateData(TRUE);//將用戶輸入數(shù)據(jù)讀取到成員變量中 //更新庫存數(shù)量 CProInStore obj;obj.SetPnum(m_NewNum);obj.sql_updatePnum(cSpId);} 4.9 庫存警示管理模塊設(shè)計(jì) 庫存警示管理模塊可以實(shí)現(xiàn)以下功能: 1、實(shí)現(xiàn)數(shù)量報(bào)警管理。即當(dāng)庫存商品的數(shù)量低于下線或超過上線時(shí)報(bào)警。 2、實(shí)現(xiàn)失效報(bào)警管理,即當(dāng)庫存商品即將達(dá)到有效期時(shí)報(bào)警。4.91 設(shè)計(jì)商品數(shù)量報(bào)警管理模塊 商品數(shù)量報(bào)警信息管理對(duì)話框用來顯示所有需要進(jìn)行數(shù)量報(bào)警的商品信息。為了更方便的統(tǒng)計(jì)商品數(shù)量報(bào)警信息,需要?jiǎng)?chuàng)建一個(gè)視圖Total_Num,它的作用是統(tǒng)計(jì)每種庫存商品數(shù)量。主要代碼如下: USE [Stock] GO ALTER VIEW [dbo].[Total_Num] AS SELECT dbo.ProInStore.Pid, SUM(dbo.ProInStore.Pnum)AS Total FROM dbo.ProInStore INNER JOIN dbo.Product ON dbo.ProInStore.Pid = dbo.Product.Pid GROUP BY dbo.ProInStore.Pid GO 商品數(shù)量報(bào)警信息管理對(duì)話框的ID為IDD_NUMALARM_DIALOG。對(duì)話框布局如圖:對(duì)話框?qū)?yīng)的類為CNumAlarmDlg。主要函數(shù)是Refresh_Data()。功能與其他對(duì)話框的Refresh_Data()類似。在此不再詳述。 警告類型分為短線和超儲(chǔ)兩種情況,程序?qū)⒏鶕?jù)用戶選擇的類型進(jìn)行統(tǒng)計(jì)。 4.92 設(shè)計(jì)商品失效報(bào)警管理模塊 商品失效報(bào)警信息管理對(duì)話框用來顯示所有需要進(jìn)行失效報(bào)警的商品信息。為了更好方便的統(tǒng)計(jì)商品失效報(bào)警信息,需要?jiǎng)?chuàng)建一個(gè)視圖Vaild,它的功能是統(tǒng)計(jì)庫存商品價(jià)格、數(shù)量、生產(chǎn)日期、倉(cāng)庫名稱和距離失效期的天數(shù)等信息。主要代碼如下: USE [Stock] GO ALTER VIEW [dbo].[Valid] AS SELECT dbo.ProInStore.SpId AS 庫存記錄編號(hào), dbo.Product.Pname AS 商品名稱,dbo.ProInStore.Pprice AS 商品價(jià)格, dbo.ProInStore.Pnum AS 商品數(shù)量,dbo.ProInStore.MakeDate AS 生產(chǎn)日期, dbo.Storehouse.Sname AS 倉(cāng)庫名稱,ROUND(DATEDIFF(day, DATEADD(day,dbo.Product.Valid, dbo.ProInStore.MakeDate),GETDATE()), 0)AS 距離失效期的天數(shù) FROM dbo.ProInStore INNER JOIN dbo.Product ON dbo.ProInStore.Pid = dbo.Product.Pid AND DATEDIFF(day,GETDATE(), dbo.ProInStore.MakeDate) >= dbo.Product.Valid-dbo.Product.AlarmDays INNER JOIN dbo.Storehouse ON dbo.ProInStore.Sid = dbo.Storehouse.Sid GO 在SELECT語句中,使用了如下的SQL Server函數(shù): 1、DATEADD 在向指定日期加上一段時(shí)間的基礎(chǔ)上,返回新的datatime值。 2、DATEDIFF 返回兩個(gè)指定日期的時(shí)間差。 3、ROUND 根據(jù)指定的長(zhǎng)度和精度對(duì)數(shù)字表達(dá)式進(jìn)行四舍五入。 4、GETDATE 按datetime值的SQL Server標(biāo)準(zhǔn)內(nèi)部格式返回當(dāng)前系統(tǒng)日期和時(shí)間。 商品失效報(bào)警信息管理對(duì)話框ID為IDD_VALID_DIALOG。對(duì)應(yīng)的類為CValidDlg。對(duì)話框的布局與商品數(shù)量報(bào)警信息管理對(duì)話框類似。因?yàn)楣δ芤呀?jīng)在視圖里實(shí)現(xiàn)了所以此對(duì)話框不用添加額外的函數(shù)。第五章 結(jié)束語 5.0 開發(fā)中的問題和解決辦法 如何高效的在VC++中添加類與對(duì)話框及消息響應(yīng)函數(shù)。為了解決這些問題,本設(shè)計(jì)中的所設(shè)計(jì)的類與對(duì)話框采用利用VC++向?qū)?,然后在自?dòng)生成的基礎(chǔ)上修改,節(jié)省了相當(dāng)一部分繁瑣的時(shí)間加快了程序開發(fā)的速度,節(jié)省了開發(fā)的時(shí)間。 在設(shè)計(jì)中使用了大量的數(shù)據(jù),設(shè)計(jì)了大量的表格。為了便于實(shí)現(xiàn)數(shù)據(jù)與表的連接、表與類的連接,采用了數(shù)據(jù)庫軟件。這樣只要調(diào)用數(shù)據(jù)庫本身的查詢、插入、修改等語句就以輕松的操作這些數(shù)據(jù)。使理論上的知識(shí)很好的與實(shí)際問題相結(jié)合。5.1 系統(tǒng)不足之處 在本設(shè)計(jì)中,還有很多不足之處:界面的美觀還可以進(jìn)行更進(jìn)一步的改善,還可以再增加一些功能,比如在狀態(tài)欄增加時(shí)間顯示,可以讓使用人員很方便的看到當(dāng)前時(shí)間。也可以增加實(shí)時(shí)的通訊功能,可以讓管理員與普通用戶之間進(jìn)行實(shí)時(shí)通訊。本系統(tǒng)在處理大量的數(shù)據(jù)時(shí)能力還很欠缺,應(yīng)該再設(shè)計(jì)時(shí)采用一些適當(dāng)?shù)乃惴▽?duì)本系統(tǒng)進(jìn)行優(yōu)化。第六章 致謝 在論文完成之際,我要特別感謝我的指導(dǎo)老師呂知辛老師的熱情關(guān)懷和悉心指導(dǎo)。在我撰寫論文的過程中,呂知辛老師傾注了大量的心血和汗水,無論是在論文的選題、構(gòu)思和資料的收集方面,還是在論文的研究方法以及成文定稿方面,我都得到了呂知辛老師悉心細(xì)致的教誨和無私的幫助,特別是他廣博的學(xué)識(shí)、深厚的學(xué)術(shù)素養(yǎng)、嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神和一絲不茍的工作作風(fēng)使我終生受益,在此表示真誠(chéng)地感謝和深深的謝意。 在論文的寫作過程中,也得到了許多同學(xué)的寶貴建議,在此一并致以誠(chéng)摯的謝意。感謝所有關(guān)心、支持、幫助過我的良師益友。 參考文獻(xiàn) 【1】孫鑫.VC++深入詳解.北京:電子工業(yè)出版社.2006 【2】屈磊 李媛媛.VisualC++開發(fā)入門與編程實(shí)踐.北京:電子工業(yè)出版社2007 【3】(美)Sartaj Sahni.數(shù)據(jù)結(jié)構(gòu)、算法與應(yīng)用——C++語言描述.北京:機(jī)械工業(yè)出版社.2001 【4】王立副 麻志毅 張世琨.軟件工程.北京:北京大學(xué)出版社.1999.【5】苗雪蘭 劉瑞新 宋會(huì)群.數(shù)據(jù)庫技術(shù)及應(yīng)用.北京:機(jī)械工業(yè)出版社.2005 【6】李濤 劉凱奎 王永晈.數(shù)據(jù)庫開發(fā)與實(shí)例.北京:清華大學(xué)出版社.2006 【7】啟明工作室.SQL Server 2005 數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā).北京:人民郵電出版社.2007 【8】(美)Timothy A.Budd.面向?qū)ο缶幊虒?dǎo)論.北京:機(jī)械工業(yè)出版社.2003 【9】鄭阿奇.Visual C++教程[M].北京:機(jī)械工業(yè)出版社,2004 【10】東方人華等.Visual C++ 6.0范例入門與提高[M].北京:清華大學(xué)出版社.2003 【11】:劉誠(chéng)方,曾昭榮.BorlandC++Windows初級(jí)程序設(shè)計(jì).天津:天津科學(xué)技術(shù)出版社.1997.1 【12】陳慧南.數(shù)據(jù)結(jié)構(gòu):使用C++描述.南京:東南大學(xué)出版社.2001 倉(cāng)庫庫存管理制度 倉(cāng)庫庫存管理制度 第一條 目的為求倉(cāng)庫存貨及財(cái)產(chǎn)保管的正確性和安全性以及庫存數(shù)字的準(zhǔn)確性。倉(cāng)庫管理事務(wù)處理有所遵循,并加強(qiáng)管理人員的責(zé)任,以達(dá)到財(cái)產(chǎn)管理的目的,特制定本制度。 第二條 管理范圍 (一)原材料:包括脂料類、化工類、纖維類、泥料類、砂石類、木材類、塑料類、鋼材類、埋件類、辦公類、包裝類、勞保類、后勤類、油漆類、膠水類、油類、工具類、槍類、砂紙類、毛刷類、螺絲類、接頭類、鉆頭類、開關(guān)類、燈線管類、切割片類、釘類、皮帶類、輪子類、軸承類、水龍頭類、其它類等不同類別。 (二)產(chǎn)成品:按不同客戶、不同類別、不同質(zhì)量分類。 (三)模具:按不同類別分類。 第三條 貨物入庫、存放及領(lǐng)料 1、存貨的堆置,應(yīng)力求整齊、集中、分類,設(shè)置存貨卡。 2、按貨物類別特性與庫存條件確定存放地點(diǎn)。 3、各項(xiàng)財(cái)產(chǎn)卡依編號(hào)順序,事先準(zhǔn)備妥當(dāng),以備盤點(diǎn)。 4、按照入庫的品名、規(guī)格、型號(hào)驗(yàn)收實(shí)際重量,會(huì)同質(zhì)檢部門驗(yàn)收貨物質(zhì)量。 5、對(duì)不合格的貨物停止入庫并向上級(jí)報(bào)告,等候上級(jí)指令處理。 6、按照領(lǐng)料單的品名、規(guī)格、型號(hào)、數(shù)量準(zhǔn)確發(fā)放貨物。 7、各項(xiàng)財(cái)務(wù)賬冊(cè)應(yīng)于當(dāng)日下班前登記完畢,如因特殊原因,無法完成時(shí),將尚未入賬的有關(guān)單據(jù)如繳庫單、領(lǐng)料單、退料單、交運(yùn)單、收料單等于次日上午上班前登記完成。 第四條 報(bào)告制度 每月向上級(jí)部門報(bào)告原料、成品、模具進(jìn)、出、庫存情況,包括月度入庫匯總表、月度出庫匯總表、月度結(jié)存庫存表,入庫匯總表、出庫匯總表。并于安全庫存量以下時(shí)及時(shí)將庫存量通知生產(chǎn)部門、項(xiàng)目部及財(cái)務(wù)部,以便及時(shí)實(shí)施采購(gòu)。 第五條 盤點(diǎn)制度 存貨的盤點(diǎn),以當(dāng)月最末一日實(shí)施為原則。 (一)按月盤點(diǎn):由倉(cāng)庫管理員在倉(cāng)庫主管的監(jiān)督下進(jìn)行。 (二)年中、年終盤點(diǎn) 1、存貨:由資材部門或經(jīng)管部門會(huì)同財(cái)務(wù)部門于年(中)終時(shí),實(shí)施全面總清點(diǎn)一次。 2、物資:由物管部門會(huì)同財(cái)務(wù)部門于年(中)終時(shí),實(shí)施全面總清點(diǎn)一次。 (三)檢查 由財(cái)務(wù)部門照會(huì)其倉(cāng)庫主管后,做存貨隨機(jī)抽樣盤點(diǎn)。 (四)特定的不定期抽點(diǎn)的盤點(diǎn)工作,亦設(shè)置盤點(diǎn)人、會(huì)點(diǎn)人、抽點(diǎn)人,其職責(zé)與年中(終)盤點(diǎn)同。 第六條 崗位責(zé)任 (一)倉(cāng)庫主管崗位職責(zé) 1、倉(cāng)庫主管隸屬物管科,是公司重要的崗位。主要負(fù)責(zé)對(duì)公司的材料倉(cāng)、成品倉(cāng)進(jìn)行組織管理,并對(duì)包裝物、模具、工具、勞保用品、物料、廢料進(jìn)行組織管理。 2、輔導(dǎo)、組織、授權(quán)倉(cāng)管員開展工作。按照公司的政策和規(guī)章制度嚴(yán)格要求倉(cāng)管員,并對(duì)倉(cāng)管員進(jìn)行考核,督導(dǎo)各倉(cāng)庫財(cái)產(chǎn)物資的安全流動(dòng)。 3、管理倉(cāng)管員的內(nèi)容必須包括:按要求檢驗(yàn)入庫材料或產(chǎn)品,按各種計(jì)量標(biāo)準(zhǔn)計(jì)量并記錄,如單位為條、米、箱或桶都必須有重量記錄如公斤,發(fā)現(xiàn)有問題的材料或產(chǎn)品入庫應(yīng)要求入庫人改正并及時(shí)向上級(jí)報(bào)告。 4、監(jiān)督和檢查倉(cāng)庫物品的收、發(fā)、存記錄,要求材料倉(cāng)和成品倉(cāng)賬本、貨物卡、實(shí)物必須相符,在工作流程上輔導(dǎo)和培訓(xùn)倉(cāng)管員。 5、檢查倉(cāng)庫5S工作的情況。 6、對(duì)倉(cāng)庫作業(yè)流程、崗位責(zé)任、規(guī)則制度的編制提出意見。 7、組織按月定期的盤點(diǎn)工作,及時(shí)向相關(guān)部門提交盤點(diǎn)結(jié)果。 8、對(duì)倉(cāng)庫物料存量實(shí)行ABC分類法,設(shè)定庫存量的高低限制,定期檢查實(shí)物存量與高低限的差距情況。 (二)原料倉(cāng)倉(cāng)管員崗位職責(zé) 1、在倉(cāng)庫主管的領(lǐng)導(dǎo)下開展工作。遵守公司的各項(xiàng)制度,按照倉(cāng)庫領(lǐng)料制度執(zhí)行領(lǐng)料手續(xù)。 2、監(jiān)督搬運(yùn)工工作,制止野蠻裝卸。 3、負(fù)責(zé)原料倉(cāng)安全保管。有責(zé)任制止違反倉(cāng)庫防火安全的行為。 4、負(fù)責(zé)本倉(cāng)庫物品的收、發(fā)貨,核對(duì)品種、數(shù)量,填寫有關(guān)入庫、出庫單,登記賬本,做到賬、卡、物相符。 5、倉(cāng)庫按照5S要求進(jìn)行管理,報(bào)表管理、文件數(shù)據(jù)管理。 6、原料倉(cāng)領(lǐng)料規(guī)程、管理制度的編制或提出修訂意見。 7、檢查入庫的原料品名、規(guī)格、型號(hào)、數(shù)量、外包裝是否符合要求、有沒有缺斤少兩,有沒有貨不對(duì)辦,有沒有劣質(zhì)材料、并及時(shí)通知質(zhì)檢員檢驗(yàn)質(zhì)量,對(duì)不要求的材料要求退貨或說明原因不予入庫,并及時(shí)向倉(cāng)庫主管反映情況。 8、做好原料的狀態(tài)標(biāo)識(shí)。能辨別及熟記各種原料的代號(hào)并掌握庫存物品的特性,合理安排擺放區(qū)域。 9、發(fā)貨執(zhí)行“先入先出、按單發(fā)放”的原則。加強(qiáng)與車間的溝通。 10、及時(shí)整理庫存物品,保持倉(cāng)庫清潔衛(wèi)生、堆放整齊有序,搞好防火、防潮、防霉、防揮發(fā)、防蛀工作,發(fā)現(xiàn)問題及時(shí)解決。隨時(shí)留意物品質(zhì)量、有效期限,如有問題及時(shí)向倉(cāng)庫主管反映。 11、監(jiān)控物品庫存數(shù)量,負(fù)責(zé)向上級(jí)遞交需要補(bǔ)貨的原料,做到及時(shí)、準(zhǔn)確。 12、在非當(dāng)班時(shí)間,有需要時(shí),須回廠收、發(fā)貨。 13、每月定期盤點(diǎn),按時(shí)上報(bào)相關(guān)表冊(cè)。 14、服從工作安排,完成上級(jí)交給的各項(xiàng)臨時(shí)任務(wù)。 (三)成品倉(cāng)倉(cāng)管員崗位職責(zé) 1、在倉(cāng)庫主管領(lǐng)導(dǎo)下開展工作。嚴(yán)格遵守、認(rèn)真貫徹落實(shí)公司的方 針政策和各項(xiàng)規(guī)章制度。嚴(yán)格遵守倉(cāng)庫安全制度,認(rèn)真執(zhí)行倉(cāng)庫管理辦法。 2、督導(dǎo)搬運(yùn)工工作,制止野蠻裝卸。 3、負(fù)責(zé)本倉(cāng)庫安全生產(chǎn),有責(zé)任制止違反倉(cāng)庫防火安全的行為。 4、負(fù)責(zé)本倉(cāng)庫保密管理、5S推行、資產(chǎn)管理、文件數(shù)據(jù)管理。 5、負(fù)責(zé)本倉(cāng)庫物品的收、發(fā)貨,核對(duì)品種、數(shù)量,填寫有關(guān)單據(jù)、賬卡,保證賬物相符。 6、每天早上將庫存數(shù)上報(bào)倉(cāng)庫主管。 7、對(duì)進(jìn)出倉(cāng)產(chǎn)品的數(shù)量負(fù)總責(zé)。 8、成品進(jìn)倉(cāng)時(shí),檢查產(chǎn)品的完好性。對(duì)污漬、破損的產(chǎn)品停止入庫、并及時(shí)向倉(cāng)庫主管反映。 9、加強(qiáng)與各有關(guān)部門的溝通,保證收發(fā)貨的及時(shí)。 10、及時(shí)整理庫存物品,保證倉(cāng)庫物品擺放整齊,保持倉(cāng)庫的環(huán)境衛(wèi)生。 11、成品庫存數(shù)量異常應(yīng)及時(shí)通知專案部門。 12、在非當(dāng)班時(shí)間,有需要時(shí),須回廠發(fā)貨。 13、每日做好出入庫的記帳工作。每月定期盤點(diǎn)。 14、負(fù)責(zé)協(xié)調(diào)本倉(cāng)庫與包裝發(fā)貨組之間的工作,出現(xiàn)問題及時(shí)上報(bào)。 15、服從工作安排,完成上級(jí)交給的各項(xiàng)臨時(shí)任務(wù)。 第七條 賬載錯(cuò)誤處理 (一)賬載數(shù)量如因漏賬、記錯(cuò)、算錯(cuò)、未結(jié)賬或賬面記載不清者,記賬人員應(yīng)視情節(jié)輕重予以申誡以上處分,情況嚴(yán)重者,應(yīng)層呈財(cái)務(wù)經(jīng) 理議處。 (二)賬載數(shù)字如有涂改未蓋章、簽章、簽證等憑證可查,憑證未整理難以查核或有虛構(gòu)數(shù)字者一律由直接主管簽報(bào)財(cái)務(wù)經(jīng)理議處。 第八條 賠償處理 財(cái)、物料管理人員、保管人有下列情況者,應(yīng)送總經(jīng)理議處或賠償相同的金額: (一)對(duì)所保管的財(cái)物有盜賣、掉換或化公為私等營(yíng)私舞弊者: (二)對(duì)所保管的財(cái)物未經(jīng)報(bào)準(zhǔn)而擅自移轉(zhuǎn)、撥借或損壞不報(bào)告者: (三)未盡保管責(zé)任或由于過失致使財(cái)物遭受被竊、損失或盤虧者。 第九條 本辦法制定后,報(bào)財(cái)務(wù)經(jīng)理核準(zhǔn)后實(shí)施,修改時(shí)亦同。第二篇:庫存管理系統(tǒng)課程設(shè)計(jì)
第三篇:UML庫存管理系統(tǒng)
第四篇:倉(cāng)庫管理系統(tǒng)
第五篇:倉(cāng)庫庫存管理制度