第一篇:C語(yǔ)言課程設(shè)計(jì) 倉(cāng)庫(kù)管理系統(tǒng)
C語(yǔ)言課程設(shè)計(jì) 倉(cāng)庫(kù)管理系統(tǒng)
#include
struct cangku {
int num;
char name[20];
char introdution[50];
float square;
};typedef struct cangku Cangku;
int Input(Cangku t[]);void List(Cangku t[],int n);void SearchOnName(Cangku t[],int n);int DeleteRecord(Cangku t[],int n);int AlterRecord(Cangku t[],int n);int AddRecord(Cangku t[],int n);void SortOnName(Cangku t[],int n);void SortOnSquare(Cangku t[],int n);void SaveRecord(Cangku t[],int n);int LoadRecord(Cangku t[]);int LoadRecord1(Cangku t[]);void Save(Cangku t[],int n);void Load(Cangku t[],int n);void Load1(Cangku t[]);int Menu_select();
void main(){
Cangku ck[50];int i,l,length,w=1;int q[4]={5,2,1,0};
system(“cls”);printf(“請(qǐng)輸入第1個(gè)密碼:n”);for(i=0;i<4;i++)
{
scanf(“%d”,&l);
system(“cls”);
if(l==q[i])
printf(“正確,繼續(xù)輸入第%d個(gè)密碼:.n”,i+2);
else
{
w=0;
printf(“輸入錯(cuò)誤!n”);
break;
} }
while(w)
{
switch(Menu_select())
{
case 1:
length=Input(ck);
SaveRecord(ck,length);
break;
case 2:
length=LoadRecord(ck);
SearchOnName(ck,length);
break;
case 3:
length=LoadRecord(ck);
length=DeleteRecord(ck,length);
SaveRecord(ck,length);
break;
case 4:
length=LoadRecord(ck);
length=AlterRecord(ck,length);
SaveRecord(ck,length);
break;
case 5:
length=LoadRecord(ck);
length=AddRecord(ck,length);
SaveRecord(ck,length);
break;
case 6:
length=LoadRecord(ck);
system(“cls”);
List(ck,length);
break;
case 7:
length=LoadRecord(ck);
system(“cls”);
SortOnName(ck,length);
SaveRecord(ck,length);
break;
case 8:
length=LoadRecord(ck);
system(“cls”);
SortOnSquare(ck,length);
SaveRecord(ck,length);
break;
case 9:
length=LoadRecord(ck);
system(“cls”);
Save(ck,length);
break;
case 0:
length=LoadRecord1(ck);
Load1(ck);
system(“cls”);
Load(ck,length);
break;
case 10: exit(0);
}
} }
int Menu_select(){ int c;
printf(“按任意鍵進(jìn)入倉(cāng)庫(kù)管理菜單n”);
getchar();
system(“cls”);
system(“color F0”);printf(“
******************************倉(cāng)庫(kù)管理*******************************n”);
printf(“
*
1.錄入倉(cāng)庫(kù)初始記錄
*n”);
printf(“
*
2.按倉(cāng)庫(kù)名稱查找記錄
*n”);
printf(“
*
3.刪除倉(cāng)庫(kù)記錄
*n”);
printf(“
*
4.修改倉(cāng)庫(kù)記錄
*n”);printf(“
*
5.增加倉(cāng)庫(kù)信息
*n”);
printf(“
*
6.顯示全部記錄
*n”);
printf(“
*
7.按倉(cāng)庫(kù)名稱排序
*n”);
printf(“
*
8.按倉(cāng)庫(kù)面積排序
*n”);
printf(“
*
9.備份
*n”);printf(“
*
0.恢復(fù)
*n”);printf(“
*
10.退出
*n”);
printf(“
*********************************************************************n”);do {
printf(“n輸入您想要進(jìn)行的操作選項(xiàng)鍵(0-10):”);
if(scanf(“%d”,&c)!=1)
{
while(getchar()!='n')
continue;
} }
while(c<0||c>10);return c;}
int Input(Cangku t[]){ int i,n;
system(“cls”);
printf(“n請(qǐng)輸入要輸入的倉(cāng)庫(kù)數(shù)目:n”);
scanf(“%d”,&n);
printf(“開(kāi)始輸入倉(cāng)庫(kù)信息:n”);
for(i=0;i { system(“cls”); printf(“n第%d個(gè)倉(cāng)庫(kù)的編號(hào):”,i+1); scanf(“%d”,&t[i].num); printf(“第%d個(gè)倉(cāng)庫(kù)的名稱:”,i+1); scanf(“%s”,t[i].name); printf(“第%d個(gè)倉(cāng)庫(kù)的面積:”,i+1); scanf(“%f”,&t[i].square); printf(“第%d個(gè)倉(cāng)庫(kù)的說(shuō)明:”,i+1); scanf(“%s”,t[i].introdution);} return(n);} void List(Cangku t[],int n){ int i; printf(“ *********************************************************************n”); printf(“ ** 編號(hào) 名稱 面積 說(shuō)明n”); printf(“ -------n”);for(i=0;i printf(“%17d%13s%20f%14sn”,t[i].num,t[i].name,t[i].square,t[i].introdution);} printf(“ *********************************************************************n”); printf(“n”);getchar();} void SearchOnName(Cangku t[],int n){ char s[20]; int i,flag=0; system(“cls”); printf(“請(qǐng)輸入要查找的倉(cāng)庫(kù)名稱:n”); scanf(“%s”,s); for(i=0;i { if(strcmp(s,t[i].name)==0) { flag=1; system(“cls”); printf(“nn要查找的倉(cāng)庫(kù)信息如下:n”); printf(“n”); printf(“ *********************************************************************n”); printf(“ ** 編號(hào) 名稱 面積 說(shuō)明n”); printf(“ -------n”);{ printf(“%17d%13s%20f%14sn”,t[i].num,t[i].name,t[i].square,t[i].introdution);} printf(“ *********************************************************************n”); printf(“n”); } } if(flag==0) printf(“要查找的倉(cāng)庫(kù)不存在!n”);getchar();} int DeleteRecord(Cangku t[],int n){ char s[20]; char ch; int i,j,flag=0; system(“cls”); printf(“請(qǐng)輸入要?jiǎng)h除的倉(cāng)庫(kù)名稱n”); scanf(“%s”,s); for(i=0;i if(strcmp(s,t[i].name)==0) { flag=1; system(“cls”); printf(“nn要?jiǎng)h除的倉(cāng)庫(kù)信息如下:n”); printf(“n”); printf(“ *********************************************************************n”); printf(“ ** 編號(hào) 名稱 面積 說(shuō)明n”); printf(“ -------n”);{ printf(“%17d%13s%20f%14sn”,t[i].num,t[i].name,t[i].square,t[i].introdution);} printf(“ *********************************************************************n”); printf(“n”); printf(“確定刪除倉(cāng)庫(kù)信息嗎?(Y/N)n”); ch=getchar(); ch=getchar(); if(ch=='Y'||ch=='y') { for(j=i;j t[j]=t[j+1]; n--; i--; printf(“刪除成功.n”); } } } if(flag==0) printf(“要?jiǎng)h除的倉(cāng)庫(kù)不存在!n”); getchar(); return n;} int AlterRecord(Cangku t[],int n){ int i,flag=0; char s[20],ch; system(“cls”); printf(“請(qǐng)輸入要修改的倉(cāng)庫(kù)名稱n”); scanf(“%s”,s); for(i=0;i { if(strcmp(s,t[i].name)==0) { flag=1; system(“cls”); printf(“nn要修改的倉(cāng)庫(kù)信息如下:n”); printf(“n”); printf(“ *********************************************************************n”); printf(“ ** 編號(hào) 名稱 面積 說(shuō)明n”); printf(“ -------n”); { printf(“%17d%13s%20f%14sn”,t[i].num,t[i].name,t[i].square,t[i].introdution); } printf(“ *********************************************************************n”); printf(“n”); printf(“確定修改倉(cāng)庫(kù)信息嗎?(Y/N)n”); ch=getchar(); ch=getchar(); if(ch=='y'||ch=='Y') { system(“cls”); printf(“請(qǐng)輸入修改后的信息:n”); printf(“請(qǐng)輸入倉(cāng)庫(kù)新的名稱:”); scanf(“%s”,t[i].name); printf(“請(qǐng)輸入%s倉(cāng)庫(kù)新的編號(hào):”,t[i].name); scanf(“%d”,&t[i].num); printf(“請(qǐng)輸入%s倉(cāng)庫(kù)新的面積:”,t[i].name); scanf(“%f”,&t[i].square); printf(“請(qǐng)輸入%s倉(cāng)庫(kù)新的說(shuō)明:”,t[i].name); scanf(“%s”,t[i].introdution); } } } if(flag==0) printf(“要修改的倉(cāng)庫(kù)不存在!n”); getchar(); return n;} int AddRecord(Cangku t[],int n){ int i,m; system(“cls”); printf(“n請(qǐng)輸入再增加的記錄數(shù):n”); scanf(“%d”,&m); printf(“開(kāi)始追加記錄n”); for(i=n;i { system(“cls”); printf(“n第%d個(gè)倉(cāng)庫(kù)的編號(hào):”,i+1); scanf(“%d”,&t[i].num); printf(“第%d個(gè)倉(cāng)庫(kù)的名稱:”,i+1); scanf(“%s”,t[i].name); printf(“第%d個(gè)倉(cāng)庫(kù)的面積:”,i+1); scanf(“%f”,&t[i].square); printf(“第%d個(gè)倉(cāng)庫(kù)的說(shuō)明:”,i+1); scanf(“%s”,t[i].introdution); } return(n+m);} void SortOnName(Cangku t[],int n){ int i,j; struct cangku temp; for(j=1;j for(i=0;i if((strcmp(t[i].name,t[i+1].name))>0) { temp=t[i]; t[i]=t[i+1]; t[i+1]=temp; } printf(“排序成功!!n”); printf(“排序后倉(cāng)庫(kù)信息列表如下:n”); List(t,n);} void SortOnSquare(Cangku t[],int n){ int i,j; struct cangku temp; for(j=1;j for(i=0;i if(t[i].square { temp=t[i]; t[i]=t[i+1]; t[i+1]=temp; } printf(“排序成功!!n”); printf(“排序后倉(cāng)庫(kù)信息列表如下:n”); List(t,n);} void SaveRecord(Cangku t[],int n){ int i; FILE *fp; if((fp=fopen(“record.txt”,“w”))==NULL) { printf(“不能打開(kāi)文件!n”); exit(1);} for(i=0;i { fwrite(&t[i],sizeof(struct cangku),1,fp); } fclose(fp);} int LoadRecord(Cangku t[]){ int n=0; FILE *fp; if((fp=fopen(“record.txt”,“a+”))==NULL) { printf(“不能打開(kāi)文件!n”); exit(1);} while(fread(&t[n],sizeof(struct cangku),1,fp))n++; fclose(fp); printf(“從文件中成功讀出記錄!!n”); return n;} int LoadRecord1(Cangku t[]){ int n=0; FILE *fp; if((fp=fopen(“bkrecord.txt”,“a+”))==NULL) { printf(“不能打開(kāi)文件!n”); exit(1);} while(fread(&t[n],sizeof(struct cangku),1,fp))n++; fclose(fp); printf(“從文件中成功讀出記錄!!n”); return n;} void Save(Cangku t[],int n){ int i; FILE *fp; if((fp=fopen(“bkrecord.txt”,“w”))==NULL) { printf(“不能打開(kāi)文件!n”); exit(1);} for(i=0;i { fwrite(&t[i],sizeof(struct cangku),1,fp); } fclose(fp); printf(“備份成功.n”); getchar();} void Load1(Cangku t[]){ int n=0; FILE *fp; if((fp=fopen(“bkrecord.txt”,“a+”))==NULL) { printf(“不能打開(kāi)文件!n”); exit(1); } while (fread(&t[n],sizeof(struct cangku),1,fp))n++; fclose(fp); getchar();} void Load(Cangku t[],int n){ int i; FILE *fp; if((fp=fopen(“record.txt”,“w”))==NULL) { printf(“不能打開(kāi)文件!n”); exit(1);} for(i=0;i { fwrite(&t[i],sizeof(struct cangku),1,fp); } fclose(fp); printf(“恢復(fù)成功.n”);}1 倉(cāng)庫(kù)管理系統(tǒng)課程設(shè)計(jì)報(bào)告 一、概述 項(xiàng)目背景: 倉(cāng)庫(kù)管理在企業(yè)的整個(gè)供應(yīng)鏈中起著至關(guān)重要的作用,如果不能保證正確的進(jìn)貨和庫(kù)存控制及發(fā)貨,將會(huì)導(dǎo)致管理費(fèi)用的增加,服務(wù)質(zhì)量難以得到保證,從而影響企業(yè)的競(jìng)爭(zhēng)力。傳統(tǒng)簡(jiǎn)單、靜態(tài)的倉(cāng)庫(kù)管理已無(wú)法保證企業(yè)各種資源的高效利用。如今的倉(cāng)庫(kù)作業(yè)和庫(kù)存控制作業(yè)已十分復(fù)雜化多樣化,僅靠人工記憶和手工錄入,不但費(fèi)時(shí)費(fèi)力,而且容易出錯(cuò),給企業(yè)帶來(lái)巨大損失。使用倉(cāng)庫(kù)管理系統(tǒng) , 對(duì)倉(cāng)庫(kù)各環(huán)節(jié)實(shí)施全過(guò)程控制管理,并可對(duì)貨物進(jìn)行貨位、批次、保質(zhì)期、配送等實(shí)現(xiàn)系統(tǒng)列號(hào)管理,對(duì)整個(gè)收貨、發(fā)貨、補(bǔ)貨、集貨、送貨等各個(gè)環(huán)節(jié)的規(guī)范化作業(yè) , 還可以根據(jù)客戶的需求制作多種合理的統(tǒng)計(jì)報(bào)表。倉(cāng)庫(kù)管理系統(tǒng)能幫助企業(yè)合理有效地利用倉(cāng)庫(kù)空間,以快速、準(zhǔn)確、低成本的方式為客戶提供最好的服務(wù)。 系統(tǒng)特點(diǎn): 本系統(tǒng)是采用面向?qū)ο蟮脑O(shè)計(jì)思想進(jìn)行編制,整個(gè)系統(tǒng)由若干個(gè)表單、報(bào)表及一個(gè)主菜單組成,由項(xiàng)目管理器統(tǒng)一管理全部程序的編寫(xiě)和調(diào)試.用戶在操作中可以通過(guò)主菜單調(diào)用系統(tǒng)的各個(gè)功能.在表單設(shè)計(jì)方面盡量考慮方便用戶,簡(jiǎn)化操作,絕大部分操作只需點(diǎn)擊鼠標(biāo)即可完成,力求突出系統(tǒng)的便利性、實(shí)用性.設(shè)計(jì)環(huán)境與工具: 在現(xiàn)有的DBMS(Visual FoxPro)支持下進(jìn)行。 二、需求分析 問(wèn)題陳述: 需完成的功能: 產(chǎn)品入庫(kù)管理,可以填寫(xiě)入庫(kù)單,確認(rèn)產(chǎn)品入庫(kù); 產(chǎn)品出庫(kù)管理,可以填寫(xiě)出庫(kù)單,確認(rèn)出庫(kù); 借出管理,憑借條借出,然后能夠還庫(kù); 初始庫(kù)存設(shè)置,設(shè)置庫(kù)存的初始值,庫(kù)存的上下警戒限; 可以進(jìn)行盤庫(kù),反映每月、年的庫(kù)存情況; 可以查詢產(chǎn)品入庫(kù)情況、出庫(kù)情況、當(dāng)前庫(kù)存情況,可以按出庫(kù)單、入庫(kù)單,產(chǎn)品、時(shí)間進(jìn)行查詢; 三、系統(tǒng)結(jié)構(gòu)設(shè)計(jì) (1)系統(tǒng)功能結(jié)構(gòu)設(shè)計(jì)(包括主要功能模塊及功能模塊的細(xì)化。) 本系統(tǒng)應(yīng)能夠方便的實(shí)現(xiàn)倉(cāng)庫(kù)貨物存儲(chǔ)信息的錄入、修改、編輯和瀏覽等功能,高效地完成企業(yè)的各種產(chǎn)品信息的統(tǒng)計(jì)功能,打印出各種產(chǎn)品入庫(kù)出庫(kù)和盤庫(kù)查詢的信息表格,系統(tǒng)的各主要功能的要求如下: 信息錄入功能: 倉(cāng)庫(kù)產(chǎn)品基本信息、產(chǎn)品入庫(kù)信息、產(chǎn)品出庫(kù)信息、產(chǎn)品清單資料等.瀏覽功能: 瀏覽倉(cāng)庫(kù)產(chǎn)品基本信息,瀏覽產(chǎn)品入庫(kù)情況、出庫(kù)情況、當(dāng)前庫(kù)存情況.查詢功能: 產(chǎn)品標(biāo)號(hào),或者按驗(yàn)收時(shí)間查詢庫(kù)存設(shè)置等.報(bào)表打印功能: 打印倉(cāng)庫(kù)產(chǎn)品貨單表,空白產(chǎn)品登記表和各種統(tǒng)計(jì)表.(2)數(shù)據(jù)庫(kù)設(shè)計(jì) 一個(gè)數(shù)據(jù)庫(kù)中包含許多表,表之間又有關(guān)聯(lián),所以設(shè)計(jì)數(shù)據(jù)庫(kù)的步驟為:第一步,確定所需要的表;第二步,確定每個(gè)表所需要的字段;第三,確定各個(gè)表之間的關(guān)聯(lián)關(guān)系;最后形成表的結(jié)構(gòu).定義表(包括表中的字段)、視圖、索引、主關(guān)鍵字、確定表間的聯(lián)系。 數(shù)據(jù)庫(kù)要求:在數(shù)據(jù)庫(kù)中至少應(yīng)該包含下列數(shù)據(jù)表: 出庫(kù)單表(chjy): 記錄產(chǎn)品出庫(kù)狀況。 入庫(kù)單表(cgdd):記錄產(chǎn)品入庫(kù)狀況。 產(chǎn)品供應(yīng)商表(gys):記錄產(chǎn)品提供者。 公司雇員表(gy):記錄來(lái)倉(cāng)庫(kù)存取產(chǎn)品的人員名單。產(chǎn)品表(cp):記錄倉(cāng)庫(kù)現(xiàn)存狀況。 庫(kù)存情況表;出庫(kù)臺(tái)帳; 入庫(kù)臺(tái)帳; 借條信息表(反映借出人,借出時(shí)間,借出產(chǎn)品,借出數(shù)量,還庫(kù)時(shí)間等)。 (3)系統(tǒng)流程結(jié)構(gòu)圖 數(shù)據(jù)流圖的基本目的是利用它作為交流信息的工具,利用它將對(duì)現(xiàn)有系統(tǒng)的認(rèn)識(shí)或?qū)δ繕?biāo)系統(tǒng)的設(shè)想用數(shù)據(jù)流圖描繪出來(lái),供有關(guān)人員審查確認(rèn): 數(shù)據(jù)流圖的另一個(gè)主要用途是作為分析和設(shè)計(jì)的工具,幫助分析員實(shí)現(xiàn)總結(jié)現(xiàn)有系統(tǒng)的目標(biāo),對(duì)更詳細(xì)的設(shè)計(jì)步驟提供幫助.數(shù)據(jù)流圖是描繪系統(tǒng)的邏輯模型,以圖形的形式表示出來(lái),以下是倉(cāng)庫(kù)管理系統(tǒng)的數(shù)據(jù)流圖.四、系統(tǒng)詳細(xì)設(shè)計(jì) (1)描述每一個(gè)功能所完成的任務(wù),指明實(shí)現(xiàn)該功能的表單、菜單、報(bào)表等。 系統(tǒng)的功能模塊設(shè)計(jì) 圖1-1 系統(tǒng)功能模塊 (2)說(shuō)明主要功能的設(shè)計(jì)思想和方法(包括涉及到的數(shù)據(jù)源、關(guān)鍵的屬性和代碼等。) 設(shè)計(jì)思想分析: 將管理系統(tǒng)分為進(jìn)庫(kù)操作、出庫(kù)操作、損耗操作、查詢操作、報(bào)表操作、維護(hù)操作六部分。 1、入庫(kù)時(shí)根據(jù)商品的具體情況進(jìn)行處理,如果庫(kù)中已存在此商品,就在原來(lái)的數(shù)量基礎(chǔ)上加上進(jìn)貨數(shù)量,如果沒(méi)有則自動(dòng)新增此產(chǎn)品,并提醒管理員在最新報(bào)價(jià)表中加上此商品的最新報(bào)價(jià)(為了出庫(kù)的正確性,某商品的最新報(bào)價(jià)的存在是其出庫(kù)的前提)。如果商品已以入庫(kù),則自動(dòng)在商品進(jìn)出表中加上相關(guān)記錄,以便于以后的核對(duì)。 2、為了達(dá)到出庫(kù)價(jià)格的正確性,出庫(kù)時(shí)系統(tǒng)自動(dòng)將此商品的售價(jià)和最新報(bào)價(jià)里的價(jià)格進(jìn)行比較,如果不相等則出現(xiàn)提示信息。另外,程序還有其他服務(wù)功能,比如如果商品數(shù)量不足或沒(méi)有相關(guān)商品則出現(xiàn)提示信息。 3、商品的查詢專門提供給廣大客戶使用,客戶可以按商品編號(hào)和商品名稱、數(shù)量、單價(jià)、進(jìn)庫(kù)出庫(kù)信息、對(duì)庫(kù)中的具體商品進(jìn)行查詢,查詢有商品代號(hào)和商品名稱兩種方法,這樣,客戶可以輕松掌握倉(cāng)庫(kù)的庫(kù)存情況,便于交易。 4、核對(duì)措施也是此系統(tǒng)中必備的,為了便于以后核對(duì),出庫(kù)的記錄也將存儲(chǔ)起來(lái)。出庫(kù)單打印默認(rèn)為2份,其一用交給交易對(duì)方,另一份管理員自己保存。便于核對(duì)。同樣,本系統(tǒng)還會(huì)自動(dòng)對(duì)入庫(kù)情況進(jìn)行記錄,這樣,用戶能輕松掌握倉(cāng)庫(kù)的變化,可以隨時(shí)對(duì)庫(kù)存進(jìn)行分析核對(duì)。 5、保密性是作為一個(gè)企業(yè)或者機(jī)構(gòu)所十分重視的,給用戶一個(gè)安全的環(huán)境是優(yōu)秀的管理軟件所必須做到做好的,本軟件也做到了安全性,就是說(shuō)登錄時(shí)要有正確的密碼,這樣一來(lái),只有系統(tǒng)管理員才有權(quán)更改系統(tǒng)里面的數(shù)據(jù)了。 6、本系統(tǒng)還帶有自動(dòng)清除測(cè)試記錄功能(課本是本系統(tǒng)的測(cè)試數(shù)據(jù)),如果用戶要正式使用倉(cāng)庫(kù),只要選擇操作菜單下的正式使用命令。這樣就不需要用記一條條去刪記錄了。 (3)界面設(shè)計(jì)要合理、簡(jiǎn)明。 五、實(shí)施及測(cè)試 指出已實(shí)現(xiàn)的每個(gè)功能,附上運(yùn)行、測(cè)試結(jié)果。 六、結(jié)束語(yǔ) 心得體會(huì): 經(jīng)過(guò)了這次倉(cāng)庫(kù)管理系統(tǒng)的課程設(shè)計(jì)我從中學(xué)到了很多,同時(shí)明白了做一個(gè)小型軟件的步驟和流程.如何讓自己設(shè)計(jì)的軟件運(yùn)用到具體的實(shí)際工作中,這是一個(gè)關(guān)鍵的環(huán)節(jié).還有就是程序設(shè)計(jì)和運(yùn)行測(cè)試中遇到的問(wèn)題該如何解決,從解決問(wèn)題中我也學(xué)到了許多平時(shí)課本上所沒(méi)有的知識(shí).當(dāng)然,能夠完成這個(gè)倉(cāng)庫(kù)管理系統(tǒng)我自己也感覺(jué)很有成就感.運(yùn)用到的開(kāi)發(fā)工具和軟件技術(shù): 此系統(tǒng)結(jié)合貨物倉(cāng)庫(kù)管理的要求,對(duì)Visual FoxPro(VFP)數(shù)據(jù)庫(kù)管理系統(tǒng)、SQL語(yǔ)言的學(xué)習(xí)和應(yīng)用,主要完成貨物倉(cāng)庫(kù)管理系統(tǒng)的需求分析,系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)和實(shí)現(xiàn),系統(tǒng)的表單設(shè)計(jì),主控程序設(shè)計(jì),并由此設(shè)計(jì)了數(shù)據(jù)庫(kù)結(jié)構(gòu)和應(yīng)用程序。系統(tǒng)運(yùn)行結(jié)果證明,本人設(shè)計(jì)的貨物倉(cāng)庫(kù)管理系統(tǒng)可以滿足倉(cāng)庫(kù)管理者完成倉(cāng)庫(kù)管理的日常工作,包括材料的入庫(kù),出庫(kù)以及庫(kù)存材料信息的管理維護(hù)等 軟件還需要哪些改進(jìn): 在編寫(xiě)源程序代碼的過(guò)程中對(duì)語(yǔ)言的運(yùn)用還需要提高,應(yīng)使寫(xiě)出來(lái)的程序更加簡(jiǎn)潔,易讀懂,更加滿足實(shí)際工作的需要.要想使做出來(lái)的程序更好的利用還需根據(jù)實(shí)際需要在今后的運(yùn)用中不斷的改進(jìn)和完善.七、參考資料 1.Visual FoxPro 程序設(shè)計(jì)及其應(yīng)用系統(tǒng)開(kāi)發(fā) 李作緯 等 中國(guó)水利水電出版社 2.數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開(kāi)發(fā)技術(shù) 劉軍 等 機(jī)械工業(yè)出版社 3.其它資料若干 《軟件工程》課程設(shè)計(jì)報(bào)告 倉(cāng)庫(kù)信息管理系統(tǒng) 專業(yè)班級(jí): 學(xué)生學(xué)號(hào): 學(xué)生姓名: 指導(dǎo)教師姓名: 2016年月 目錄 一、系統(tǒng)可行性研究.......................................2 二、系統(tǒng)的需求分析.......................................5 三、系統(tǒng)概要設(shè)計(jì)........................................14 四、系統(tǒng)的詳細(xì)設(shè)計(jì)......................................17 五、系統(tǒng)的實(shí)現(xiàn)和測(cè)試....................................20 六、實(shí)驗(yàn)總結(jié)............................................26 倉(cāng)庫(kù)信息管理系統(tǒng)一、系統(tǒng)可行性研究 1.1引言 1.1.1編寫(xiě)目的 為了以最小的代價(jià)在最短的時(shí)間內(nèi)確定倉(cāng)庫(kù)管理系統(tǒng)項(xiàng)目是否值得去開(kāi)發(fā),其中的關(guān)鍵和技術(shù)難點(diǎn)是什么,問(wèn)題能否得到解決,怎樣達(dá)到目的?我們編寫(xiě)了可行性報(bào)告以對(duì)這些問(wèn)題進(jìn)行分析。 除此之外,經(jīng)過(guò)對(duì)此項(xiàng)目進(jìn)行詳細(xì)調(diào)查研究,我們初步擬定了系統(tǒng)實(shí)現(xiàn)報(bào)告,對(duì)軟件開(kāi)發(fā)中將要面臨的問(wèn)題及其解決方案進(jìn)行初步設(shè)計(jì)及合理安排。明確開(kāi)發(fā)風(fēng)險(xiǎn)及其所帶來(lái)的經(jīng)濟(jì)效益。以便于中小規(guī)模工廠的倉(cāng)庫(kù)管理人員閱讀及理解整個(gè)項(xiàng)目。1.1.2項(xiàng)目背景 開(kāi)發(fā)的軟件系統(tǒng)的名稱:倉(cāng)庫(kù)信息管理系統(tǒng) 項(xiàng)目提出者: 項(xiàng)目開(kāi)發(fā)者: 項(xiàng)目使用者:倉(cāng)庫(kù)管理人員 1.2可行性研究的前提 1.2.1要求 A.功能:極大提高倉(cāng)庫(kù)工作人員的工作效率,大大減少以往入貨、出庫(kù)流程繁瑣,雜亂,周期長(zhǎng)的弊端;基于倉(cāng)庫(kù)管理的全面自動(dòng)化,減少入庫(kù)管理、出庫(kù)管理及庫(kù)存管理中的漏洞,節(jié)約不少管理開(kāi)支,增加企業(yè)收入;實(shí)現(xiàn)倉(cāng)庫(kù)的管理操作自動(dòng)化和信息的電子化,全面提高倉(cāng)庫(kù)的管理水平。 B.性能:系統(tǒng)的存貨信息必須保持更新?tīng)顟B(tài),客戶的產(chǎn)品出入庫(kù)信息必須無(wú)差錯(cuò),及時(shí)的 保存到倉(cāng)庫(kù)管理系統(tǒng)的服務(wù)器上,對(duì)服務(wù)器上的數(shù)據(jù)必須定時(shí)的檢查并與倉(cāng)庫(kù)中存放的貨物進(jìn)行核對(duì)。 C.本系統(tǒng)要求輸出的數(shù)據(jù)有:數(shù)據(jù)完整,詳實(shí),及時(shí)。 在此方面,若此項(xiàng)目投入使用,將給企業(yè)帶來(lái)豐厚的經(jīng)濟(jì)效益社會(huì)效益。并且,此項(xiàng)目開(kāi)發(fā)成本低,占用資源少,在經(jīng)濟(jì)方面可行。1.5操作可行性分析 本系統(tǒng)設(shè)計(jì)思路清晰,操作簡(jiǎn)捷,具有良好的用戶界面,和較為完善的異常處理機(jī)制及信息處理機(jī)制,一般倉(cāng)庫(kù)管理者稍加培訓(xùn)即可使用。在操作方面可行。 二、系統(tǒng)的需求分析 2.1功能描述 本軟件主要有以下幾方面的功能: (1)信息管理:可對(duì)商品進(jìn)行查詢,刪除,修改操作,完成對(duì)商品信息管理的功能; (2)庫(kù)存管理:對(duì)商品入庫(kù),出庫(kù)的管理。2.2數(shù)據(jù)流圖 2.2.1數(shù)據(jù)流分析 數(shù)據(jù)流圖是組織中信息運(yùn)動(dòng)的抽象,是管理信息系統(tǒng)邏輯模型的主要形式。它可以綜合的反映出信息在系統(tǒng)中的流動(dòng)、處理和存儲(chǔ)情況,具有良好的抽象性 商品入庫(kù)請(qǐng)求商品入庫(kù)管理入庫(kù)商品信息更新商品信息出庫(kù)商品信息商品出庫(kù)請(qǐng)求商品出庫(kù)管理庫(kù)存商品信息更新后的商品信息修改商品請(qǐng)求刪除商品請(qǐng)求商品信息管理商品信息庫(kù)存商品信息表商品清單查詢商品請(qǐng)求圖2-2 二層數(shù)據(jù)流圖 對(duì)每一個(gè)功能模塊的分解圖 (1)對(duì)第一個(gè)模塊“商品入庫(kù)管理”的細(xì)分圖 商品入庫(kù)管理子系統(tǒng)包含兩個(gè)功能模塊:“商品入庫(kù)”、“處理商品”; 一個(gè)文件存儲(chǔ):“入庫(kù)商品信息表” 入庫(kù)請(qǐng)求1商品入庫(kù)商品編號(hào)1.11.21.31.4商品名稱商品數(shù)量商品價(jià)格輸入商品編輸入商品名輸入商品數(shù)輸入商品價(jià)號(hào)稱量格商品信息入庫(kù)商品信息表入庫(kù)商品信息 圖2-3 “商品入庫(kù)管理”分解圖 (2)對(duì)“商品出庫(kù)管理”的細(xì)分圖 商品出庫(kù)管理子系統(tǒng)包含兩個(gè)功能模塊:“商品出庫(kù)”、“處理商品”; 一個(gè)文件存儲(chǔ):“出庫(kù)商品信息表” 入庫(kù)請(qǐng)求1商品入庫(kù)商品編號(hào)1.1輸入商品編號(hào)商品名稱商品價(jià)格1.21.31.4商品數(shù)量輸入商品名輸入商品數(shù)輸入商品價(jià)稱量格商品信息商品商品出庫(kù)信息出庫(kù)商品信息表入庫(kù)商品信息表出庫(kù)商品信息出庫(kù)請(qǐng)求2商品出庫(kù)商品名稱2.1輸入商品名稱商品數(shù)量2.2輸入出庫(kù)數(shù)量入庫(kù)商品信息6更新商品信息3刪除商品輸入商品編號(hào)3.1輸入商品編號(hào)輸入商品名稱3.2輸入商品名稱商更新后的商品品信息信息輸入編號(hào)4.1.1輸入商品編號(hào)輸入名稱4.1.2輸入商品名稱商品信息庫(kù)存商品信息刪除商品請(qǐng)求管理員查詢商品信息請(qǐng)求44.1請(qǐng)求分類查詢商品信按條件查詢息商品信息請(qǐng)求分類4.2查詢所有商品信息庫(kù)存商品信息表查詢所有商品信息請(qǐng)求庫(kù)存商品信息5.2輸入新的編號(hào)修改后的商品信息輸出信息修改商品信息請(qǐng)求修改編號(hào)商品名稱5修改商品信息5.1輸入商品名稱管理員修改數(shù)量修改后的商品信息5.3輸入新的數(shù)量 圖2-6 底層數(shù)據(jù)流圖 2.3 數(shù)據(jù)字典 數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它是進(jìn)行詳細(xì)的數(shù)據(jù)收集和數(shù)據(jù)分析后所獲得的主要成果。該系統(tǒng)的數(shù)據(jù)字典如下: 2.3.1 數(shù)據(jù)流 數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它是進(jìn)行詳細(xì)的數(shù)據(jù)收集和數(shù)據(jù)分析后所獲得的主要成果。該系統(tǒng)的數(shù)據(jù)字典如下: 1.數(shù)據(jù)源點(diǎn)和終點(diǎn)描述(1)名稱:商品 加工編號(hào):1.4 輸入數(shù)據(jù)流:商品數(shù)量 輸出數(shù)據(jù)流:商品信息 加工邏輯:輸入商品價(jià)格,輸出商品信息(6)加工名:商品出庫(kù) 加工編號(hào):2 輸入數(shù)據(jù)流:出庫(kù)請(qǐng)求 輸出數(shù)據(jù)流:商品名稱 加工邏輯:接收出庫(kù)請(qǐng)求(7)加工名:輸入商品名稱 加工編號(hào):1.2 輸入數(shù)據(jù)流:商品名稱 輸出數(shù)據(jù)流:商品數(shù)量 加工邏輯:輸入商品名稱(8)加工名:輸入出庫(kù)數(shù)量 加工編號(hào):2.2 輸入數(shù)據(jù)流:商品數(shù)量 輸出數(shù)據(jù)流:商品出庫(kù)信息 加工邏輯:輸入出庫(kù)數(shù)量(9)加工名:更新商品信息 加工編號(hào):6 輸入數(shù)據(jù)流:出庫(kù)商品信息,入庫(kù)商品信息,庫(kù)存商品信息 輸出數(shù)據(jù)流:更新后的商品信息 加工邏輯:接收修改的商品信息進(jìn)行修改(10)加工名:刪除商品 加工編號(hào):3 輸入數(shù)據(jù)流:刪除商品請(qǐng)求 輸出數(shù)據(jù)流:輸入商品編號(hào) 加工邏輯:接收刪除請(qǐng)求 0 加工邏輯:修改商品信息 3.文件存儲(chǔ) (1)文件名稱:入庫(kù)商品信息表 簡(jiǎn)述:存放入庫(kù)的商品信息 輸入數(shù)據(jù):商品信息 輸出數(shù)據(jù):入庫(kù)商品信息 文件組成:商品的編號(hào)、名稱、數(shù)量、價(jià)格(2)文件名稱:出庫(kù)商品信息表 簡(jiǎn)述:存放出庫(kù)的商品信息 輸入數(shù)據(jù):商品的出庫(kù)信息 輸出數(shù)據(jù):出庫(kù)商品信息 文件組成:出庫(kù)商品數(shù)量(3)文件名稱:庫(kù)存商品信息表 簡(jiǎn)述:存放所有商品信息 輸入數(shù)據(jù):更新后的商品信息,修改后的商品信息,刪除后的商品信息 輸出數(shù)據(jù):庫(kù)存商品信息 文件組成:商品的編號(hào)、名稱、數(shù)量、價(jià)格 4.數(shù)據(jù)流 (1)數(shù)據(jù)流名字:入庫(kù)請(qǐng)求 描述:對(duì)商品進(jìn)行入庫(kù) 組成:入庫(kù)命令 (2)數(shù)據(jù)流名字:入庫(kù)商品信息 描述:對(duì)入庫(kù)商品信息處理 組成:入庫(kù)商品信息=商品編號(hào)+名稱+數(shù)量+價(jià)格(3)數(shù)據(jù)流名字:商品編號(hào) 描述:輸入商品編號(hào) 組成:商品編號(hào) 三、系統(tǒng)概要設(shè)計(jì) 3.1總體結(jié)構(gòu)和模塊設(shè)計(jì) 3.1.1總體結(jié)構(gòu)設(shè)計(jì) 模塊是軟件結(jié)構(gòu)的基礎(chǔ),軟件結(jié)構(gòu)的好壞完全由模塊的屬性體現(xiàn)出來(lái),把軟件模塊化的目的是為了降低軟件復(fù)雜性,使軟件設(shè)計(jì),測(cè)試,調(diào)試,維護(hù)等工作變得簡(jiǎn)易,但隨著模塊數(shù)目的增加,通過(guò)接口連接這些模塊的工作量也隨之增加。1.總體結(jié)構(gòu)框圖 倉(cāng)庫(kù)信息管理系統(tǒng)庫(kù)存管理信息管理商品入庫(kù)商品出庫(kù)刪除商品修改商品查詢商品信息按條件查詢商品信息查詢所有商品信息 圖3-1系統(tǒng)總體結(jié)構(gòu)圖 2.模塊說(shuō)明 信息管理系統(tǒng)刪除請(qǐng)求修改請(qǐng)求輸入名稱輸入商品名稱輸入標(biāo)號(hào)輸入新編號(hào)商品信息查詢請(qǐng)求刪除商品信息刪除商品信息接收信息查詢商品信息反饋信息請(qǐng)求分類請(qǐng)求分類修改商品信息輸入編號(hào)反饋輸入名稱反饋接收信息按條件查詢商查詢所有商品品信息接商收品信信息息輸入商品編號(hào)及名稱輸入商品編號(hào)輸入商品名稱反饋輸入數(shù)量反饋輸入新數(shù)量 圖3-3信息管理子系統(tǒng)結(jié)構(gòu)圖 (3)庫(kù)存管理子系統(tǒng)結(jié)構(gòu)圖如圖3-4所示 庫(kù)存管理系統(tǒng)入庫(kù)請(qǐng)求出庫(kù)請(qǐng)求入庫(kù)商品信息商品入庫(kù)出庫(kù)商品信息商品出庫(kù)輸入編號(hào)反饋輸入名稱輸入反數(shù)饋量反饋反饋輸入價(jià)格輸入商品價(jià)格輸入名稱反饋信息輸入商品名稱輸入數(shù)量反饋信息輸入商品編號(hào)輸入商品名稱輸入商品數(shù)量輸入商品數(shù)量 圖3-4 庫(kù)存管理子系統(tǒng)結(jié)構(gòu)圖 四、系統(tǒng)的詳細(xì)設(shè)計(jì) 4.1總體結(jié)構(gòu)和模塊設(shè)計(jì) 6儲(chǔ)在入庫(kù)商品信息表中。 商品出庫(kù)模塊模塊:輸入出庫(kù)商品的編號(hào)以及出庫(kù)的數(shù)量,把出庫(kù)后的商品信息保存在出庫(kù)商品信息表中。 刪除商品模塊:先輸入商品的編號(hào)及名稱,再刪除該商品在庫(kù)存商品信息表中的信息。 修改商品信息模塊:先輸入商品的編號(hào)及名稱,在庫(kù)存商品信息表中查詢到該商品信息,再修改其對(duì)應(yīng)信息。 查詢商品信息模塊:輸入編號(hào)查詢商品在庫(kù)存商品信息表中的信息或查詢庫(kù)存商品信息表中的所有商品的信息。4.1.2各個(gè)模塊設(shè)計(jì) (1)根據(jù)數(shù)據(jù)畫(huà)出的結(jié)構(gòu)圖如圖3-2所示 倉(cāng)庫(kù)信息管理系統(tǒng)商品信息商品信息請(qǐng)求處理庫(kù)存管理系統(tǒng)請(qǐng)求處理信息管理系統(tǒng) 圖4-2 倉(cāng)庫(kù)信息管理系統(tǒng)結(jié)構(gòu)圖 (2)信息管理子系統(tǒng)結(jié)構(gòu)圖如圖3-3所示 8商品入庫(kù)操作 商品出庫(kù)操作 出庫(kù)后的商品信息 出庫(kù)數(shù)量多余商品數(shù)量時(shí) 0 當(dāng)刪除的商品不存在是 修改商品操作 修改商品界面 商品信息查詢界面 所有商品信息 六、實(shí)驗(yàn)總結(jié) 包括實(shí)驗(yàn)問(wèn)題中遇到問(wèn)題,解決過(guò)程的分析;實(shí)驗(yàn)心得體會(huì)等,不得抄襲! 無(wú)錫職業(yè)技術(shù)學(xué)院實(shí)踐環(huán)節(jié)材料撰寫(xiě)用紙 二、倉(cāng)庫(kù)信息管理系統(tǒng)分析與設(shè)計(jì) (一)《倉(cāng)庫(kù)信息管理系統(tǒng)》的需求建模 1、需求分析 倉(cāng)庫(kù)信息管理系統(tǒng)要能完成以下功能: 倉(cāng)庫(kù)存放的貨物品種繁多,堆存方式以及處理方式也非常復(fù)雜,隨著業(yè)務(wù)量的增加,倉(cāng)庫(kù)管理者需要處理的信息量會(huì)大幅上升,因此往往很難及時(shí)準(zhǔn)確的掌握整個(gè)倉(cāng)庫(kù)的運(yùn)作狀態(tài)。針對(duì)這一情況,為了減輕倉(cāng)庫(kù)管理員和操作員的工作負(fù)擔(dān),此系統(tǒng)在滿足倉(cāng)庫(kù)的基本管理功能基礎(chǔ)上發(fā)揮信息系統(tǒng)的智能化。 根據(jù)要求可將系統(tǒng)分為四個(gè)模塊(1)用戶登錄模塊 普通操作員和管理人員登錄此系統(tǒng),執(zhí)行倉(cāng)庫(kù)管理的一些操作,但是普通操作員和管理人員所能執(zhí)行的功能不一樣。(2)倉(cāng)庫(kù)管理模塊 管理員工作需要登陸系統(tǒng),才能夠進(jìn)行操作,系統(tǒng)中的各項(xiàng)數(shù)據(jù)都不允許外人隨便查看和更改,所以設(shè)置登陸模塊是必須的。可以執(zhí)行倉(cāng)庫(kù)進(jìn)貨,退貨,領(lǐng)料,退料;商品調(diào)撥,倉(cāng)庫(kù)盤點(diǎn)等功能。(3)業(yè)務(wù)查詢模塊 在用戶登錄系統(tǒng)后,可以執(zhí)行庫(kù)存查詢,銷售查詢,倉(cāng)庫(kù)歷史記錄查詢。 (4)系統(tǒng)設(shè)置模塊 顯示當(dāng)前倉(cāng)庫(kù)系統(tǒng)中的信息,在系統(tǒng)中可以執(zhí)行供應(yīng)商設(shè)置,倉(cāng)庫(kù)設(shè)置。 2、功能模塊分析(1)登錄模塊 ? 普通操作員:顯示當(dāng)天倉(cāng)庫(kù)中的所有庫(kù)存的信息。? 管理員:修改倉(cāng)庫(kù)中的庫(kù)存信息。 ? 用戶注銷:在用戶執(zhí)行完倉(cāng)庫(kù)功能時(shí),注銷。? 用戶退出。(2)管理模塊 ? 倉(cāng)庫(kù)庫(kù)存的進(jìn)貨與退貨; ? 倉(cāng)庫(kù)中的庫(kù)存需要領(lǐng)料和退料功能; ? 倉(cāng)庫(kù)也可以完成不同地區(qū)的商品在此倉(cāng)庫(kù)的商品調(diào)撥任務(wù); ? 用戶人員也可以在當(dāng)天之后對(duì)倉(cāng)庫(kù)中的庫(kù)存進(jìn)行盤點(diǎn)。(3)查詢模塊 ? 顯示當(dāng)前倉(cāng)庫(kù)商品信息,并執(zhí)行庫(kù)存查詢; ? 顯示倉(cāng)庫(kù)信息,對(duì)商品的銷售量進(jìn)行查詢; ? 此系統(tǒng)還可以對(duì)倉(cāng)庫(kù)歷史記錄進(jìn)行查詢。(4)設(shè)置模塊 ? 供應(yīng)商設(shè)置 ? 倉(cāng)庫(kù)設(shè)置 3、工作內(nèi)容及要求 ? 進(jìn)一步細(xì)化需求分析的內(nèi)容,識(shí)別出系統(tǒng)的參與者,并完成用例圖; 無(wú)錫職業(yè)技術(shù)學(xué)院實(shí)踐環(huán)節(jié)材料撰寫(xiě)用紙 將用例圖中的每個(gè)用例都寫(xiě)成相應(yīng)的事件流文檔; 進(jìn)一步使用活動(dòng)圖來(lái)描述每個(gè)用例,為后續(xù)的系統(tǒng)設(shè)計(jì)做好準(zhǔn)備; 按照系統(tǒng)的功能分析,從用例的描述中提取出系統(tǒng)的對(duì)象類和界面類,建立類圖; 分析類圖中的實(shí)體類和實(shí)體類之間的關(guān)系,畫(huà)出數(shù)據(jù)庫(kù)的邏輯模型圖(只包含實(shí)體類,且注明角色和階元)。 ? 對(duì)數(shù)據(jù)庫(kù)的邏輯模型進(jìn)行優(yōu)化,取消多對(duì)多的聯(lián)系,完成最終的邏輯模型設(shè)計(jì); ? 使用交互作用圖或狀態(tài)機(jī)圖完成系統(tǒng)動(dòng)態(tài)行為的建模。(建議使用順序圖按功能分別描述) 4、創(chuàng)建SRS文檔: ? 引言 ? 倉(cāng)庫(kù)管理系統(tǒng)將24小時(shí)為用戶服務(wù)。? 用途 ? SRS文檔將作為SDLC設(shè)計(jì)和編碼階段的輸入。? 作用域 ? 管理員直接對(duì)系統(tǒng)進(jìn)行管理。? 功能性需求 ? 操作員需要取得管理員的認(rèn)可才可以登錄此系統(tǒng)。? 操作員可以查詢庫(kù)存的信息。 ? 系統(tǒng)管理員可以管理登錄系統(tǒng)以后對(duì)倉(cāng)庫(kù)進(jìn)行管理 ? 因?yàn)椴皇敲總€(gè)人都可以隨便修改系統(tǒng)的,所以系統(tǒng)管理員可以登錄進(jìn)系統(tǒng)以后對(duì)用戶的權(quán)限信息進(jìn)行管理。 ? 界面需求 ? 界面應(yīng)該清晰易懂。? 運(yùn)行環(huán)境 ? 此系統(tǒng)可以在網(wǎng)絡(luò)上進(jìn)行運(yùn)行。? ? ? ? 無(wú)錫職業(yè)技術(shù)學(xué)院實(shí)踐環(huán)節(jié)材料撰寫(xiě)用紙 用例圖如下: 分析:操作員在進(jìn)行驗(yàn)證后登陸系統(tǒng),可以執(zhí)行商品的進(jìn)退貨的記錄信息的查詢與管理等操作。 用戶登錄**倉(cāng)庫(kù)領(lǐng)料倉(cāng)庫(kù)進(jìn)貨**退出系統(tǒng)****商品調(diào)撥**操作員****用戶注銷*倉(cāng)庫(kù)退料*倉(cāng)庫(kù)退貨c 圖1 操作員用例圖 分析:此用戶是管理員,可以對(duì)倉(cāng)庫(kù)信息進(jìn)行維護(hù),倉(cāng)庫(kù)商品進(jìn)行盤點(diǎn),業(yè)務(wù)分析,歷史記錄查詢,供應(yīng)商信息維護(hù)和倉(cāng)庫(kù)查詢操作。 無(wú)錫職業(yè)技術(shù)學(xué)院實(shí)踐環(huán)節(jié)材料撰寫(xiě)用紙 倉(cāng)庫(kù)信息維護(hù)用戶登錄****用戶注銷******管理員***退出系統(tǒng)倉(cāng)庫(kù)盤點(diǎn)*倉(cāng)庫(kù)查詢**供應(yīng)商信息維護(hù)*業(yè)務(wù)分析歷史記錄查詢* 圖2 管理員用例圖 分析:該用戶為供應(yīng)商,可以對(duì)執(zhí)行倉(cāng)庫(kù)進(jìn)貨和退貨的查詢與管理操作。 倉(cāng)庫(kù)進(jìn)貨***商品供應(yīng)商*倉(cāng)庫(kù)退貨 圖3 供應(yīng)商用例圖 (二)《倉(cāng)庫(kù)管理系統(tǒng)》的靜態(tài)建模 靜態(tài)建模用于描述軟件的靜態(tài)成分,又叫結(jié)構(gòu)建模。它包含類關(guān)系圖和對(duì)象關(guān)系圖。用于描述軟件系統(tǒng)的成分之間的關(guān)系和依賴性。1)類的分析與設(shè)計(jì) ? 確定初始類圖 ? 提取類的屬性 ? 提取類的操作 無(wú)錫職業(yè)技術(shù)學(xué)院實(shí)踐環(huán)節(jié)材料撰寫(xiě)用紙 ? 類之間的關(guān)系 去除不必要的類和不正確的類: 1.冗余類:若兩個(gè)類表述同一信息,保留最具有描述能力的類; 2.不相干的類:去掉與問(wèn)題沒(méi)有多少關(guān)系和根本不相關(guān)的類; 3.模糊類:類必須是確定的,有些臨時(shí)類邊界定義不對(duì),或范圍太廣,應(yīng)排除; 4.屬性:如果有些名詞是用來(lái)描述某個(gè)類的,那么它一定是這個(gè)類的屬性。5.操作:如果所描述的操作并不適用于對(duì)象并且被自身所操作,那么這一定不是類。這樣可以得到相關(guān)的三種類關(guān)系: ? 人員信息包類圖 ? 接口信息包類圖 ? 系統(tǒng)事務(wù)信息包類圖 2)確定類之間的關(guān)系 兩個(gè)類之間的相互依賴就是關(guān)聯(lián),關(guān)聯(lián)常用描述性動(dòng)詞或動(dòng)詞組來(lái)表示,其中有物理位置的表示、傳導(dǎo)的動(dòng)作、通信、所有者關(guān)系及條件的滿足等等。通過(guò)以上方法可以確定類圖: ① 人員信息包類圖里包含:操作員類、管理員類、供應(yīng)商類、商品進(jìn)貨模塊類、商品退換模塊類、商品打印模塊類、庫(kù)存查詢模塊類、商品盤點(diǎn)模塊類、歷史信息查詢模塊類和商品調(diào)撥模塊類。 無(wú)錫職業(yè)技術(shù)學(xué)院實(shí)踐環(huán)節(jié)材料撰寫(xiě)用紙 **操作員-姓名-id號(hào)-權(quán)限+倉(cāng)庫(kù)進(jìn)貨()*+倉(cāng)庫(kù)退貨()+倉(cāng)庫(kù)領(lǐng)料()+倉(cāng)庫(kù)退料()+商品調(diào)撥()*+用戶登錄()+用戶注銷()+退出系統(tǒng)()+盤點(diǎn)信息打印報(bào)表()+進(jìn)貨商品打印報(bào)表()*+退換商品打印報(bào)表()+商品庫(kù)存信息()**商品進(jìn)貨模塊+商品清單()+退貨清單()+查詢信息()庫(kù)存查詢模塊**商品打印模塊* 圖4 人員信息包類圖 供應(yīng)商-供應(yīng)商姓名-供應(yīng)商id號(hào)-聯(lián)系方法+進(jìn)貨()+退貨()*1管理員-姓名-id號(hào)-權(quán)限+供應(yīng)商信息維護(hù)()+倉(cāng)庫(kù)信息維護(hù)()+盤點(diǎn)信息()+倉(cāng)庫(kù)查詢()+業(yè)務(wù)分析()+用戶注銷()+退出系統(tǒng)()+歷史記錄查詢()+用戶登錄()+查詢結(jié)果()*歷史信息查詢模塊*+查詢條件()+進(jìn)貨記錄()+商品調(diào)撥記錄()+商品盤點(diǎn)信息()*********商品退換模塊*商品盤點(diǎn)模塊*+審核后盤點(diǎn)信息()+查詢信息()**商品調(diào)撥模塊+查詢信息()+查詢條件()*+盤點(diǎn)信息列表()8 無(wú)錫職業(yè)技術(shù)學(xué)院實(shí)踐環(huán)節(jié)材料撰寫(xiě)用紙 ② 接口信息包類圖里包含:用戶登錄類、倉(cāng)庫(kù)管理類、系統(tǒng)管理類和業(yè)務(wù)查詢類。 倉(cāng)庫(kù)管理+倉(cāng)庫(kù)進(jìn)貨()+倉(cāng)庫(kù)退貨()+倉(cāng)庫(kù)領(lǐng)料()+倉(cāng)庫(kù)退料()+倉(cāng)庫(kù)調(diào)撥()+倉(cāng)庫(kù)盤點(diǎn)()用戶登錄+用戶登錄()+用戶注銷()+退出系統(tǒng)()系統(tǒng)設(shè)置-供應(yīng)商設(shè)置-倉(cāng)庫(kù)信息維護(hù)業(yè)務(wù)查詢+庫(kù)存查詢()+業(yè)務(wù)分析()+歷史記錄查詢() 圖5 接口信息包類圖 ③系統(tǒng)事務(wù)信息包類圖包含:用戶登錄類、供應(yīng)商管理類、業(yè)務(wù)分析類、查詢歷史信息類、倉(cāng)庫(kù)信息維護(hù)類、領(lǐng)料類、退料類、退換類、盤點(diǎn)類、調(diào)撥類和倉(cāng)庫(kù)查詢類。 無(wú)錫職業(yè)技術(shù)學(xué)院實(shí)踐環(huán)節(jié)材料撰寫(xiě)用紙 調(diào)撥供應(yīng)商管理-該操作id號(hào)-日期-管理員id號(hào)+增加供應(yīng)商()倉(cāng)庫(kù)信息維護(hù)-該操作id號(hào)-日期退料用戶登錄-該操作id號(hào)-登錄日期-登錄人id-name+用戶登錄()+用戶注銷()+退出系統(tǒng)()退貨-交易id-日期-操作員-交易id-日期-退料人-操作員倉(cāng)庫(kù)查詢-該操作id-日期領(lǐng)料-交易id-日期-領(lǐng)料員-操作員查詢歷史信息-該操作id-日期業(yè)務(wù)分析-操作id號(hào)-日期-管理員id+opname()盤點(diǎn)-交易id-日期-管理員id-倉(cāng)庫(kù)id 圖6 系統(tǒng)事務(wù)信息包類圖 (三)《倉(cāng)庫(kù)管理系統(tǒng)》的動(dòng)態(tài)建模 在完成靜態(tài)建模后,需要對(duì)系統(tǒng)實(shí)現(xiàn)動(dòng)態(tài)建模。需要?jiǎng)?chuàng)建 ? 活動(dòng)關(guān)系圖:表示系統(tǒng)的靜態(tài)成分為了完成過(guò)程需要執(zhí)行的活動(dòng)的順序; ? 交互關(guān)系圖:表示軟件系統(tǒng)靜態(tài)成分之間的交互,常用序列關(guān)系圖和通信關(guān)系圖。(1)活動(dòng)關(guān)系圖 活動(dòng)關(guān)系圖是用來(lái)對(duì)特定過(guò)程的控制流進(jìn)行建模。 分析:管理員在登錄系統(tǒng)后,查看銷售記錄和查看商品庫(kù)存情況,如果缺貨就通知操作員缺貨商品清單,操作員即可聯(lián)系供應(yīng)商按缺貨清單提供貨物,然后管理員更新數(shù)據(jù)庫(kù)結(jié)束,如果不缺貨直接結(jié)束。 無(wú)錫職業(yè)技術(shù)學(xué)院實(shí)踐環(huán)節(jié)材料撰寫(xiě)用紙 通知操作員缺貨商品清單查看銷售記錄聯(lián)系供應(yīng)商按缺貨清單提供貨物查看商品庫(kù)存情況[ 缺貨](méi) 接受貨物更新庫(kù)存數(shù)據(jù)庫(kù)[ 不缺貨 ] 圖7 倉(cāng)庫(kù)系統(tǒng)的活動(dòng)圖 (2)交互關(guān)系圖:通信關(guān)系圖、序列關(guān)系圖 ①通信關(guān)系圖以消息的形式表示對(duì)象之間的交互。通信圖集中在活動(dòng)著的對(duì)象上,表現(xiàn)的是相互通信的對(duì)象之間的消息傳遞,不參照時(shí)間。通信圖通過(guò)在消息上加序號(hào)表示消息傳遞的次序。序列號(hào)放在消息之前作為消息的前綴。 注:通信關(guān)系圖不描繪對(duì)象的生命線。A.管理員盤點(diǎn)過(guò)程協(xié)助圖 分析:操作員把盤點(diǎn)信息發(fā)送給管理員,管理員審查后盤點(diǎn)信息,在倉(cāng)庫(kù)商品盤點(diǎn)模塊中盤點(diǎn)信息列表,然后交由信息打印模塊打印盤點(diǎn)信息列表,給操作員。 無(wú)錫職業(yè)技術(shù)學(xué)院實(shí)踐環(huán)節(jié)材料撰寫(xiě)用紙 操作員盤點(diǎn)信息管理員盤點(diǎn)信息打印列表審查后盤點(diǎn)信息商品信息打印模塊盤點(diǎn)信息列表商品盤點(diǎn)模塊 圖8 管理員盤點(diǎn)過(guò)程協(xié)作圖 B.商品管理協(xié)作圖 分析:操作員通知供應(yīng)商進(jìn)貨,供應(yīng)商打印出進(jìn)貨清單,操作員也可以對(duì)進(jìn)貨退貨進(jìn)行管理,供應(yīng)商打印出退貨清單。 商品進(jìn)貨進(jìn)貨商印品打報(bào)表進(jìn)貨清單操作員退貨商品供應(yīng)商表庫(kù)存查詢商品退換退貨清單庫(kù)存信息進(jìn)貨商品打印報(bào) 圖9 商品管理協(xié)作圖 無(wú)錫職業(yè)技術(shù)學(xué)院實(shí)踐環(huán)節(jié)材料撰寫(xiě)用紙 C.倉(cāng)庫(kù)歷史記錄查詢協(xié)作圖 分析:管理員應(yīng)該先登錄系統(tǒng)。當(dāng)管理員登錄系統(tǒng)以后,可以查詢歷史信息,看到商品進(jìn)貨、商品盤點(diǎn)、商品調(diào)撥的歷史記錄。 商品進(jìn)貨管理員查詢條件歷史信息查詢進(jìn)貨、退貨記錄查詢條件商品調(diào)撥商品盤點(diǎn)圖10 倉(cāng)庫(kù)歷史記錄查詢協(xié)作圖 ②序列關(guān)系圖 序列關(guān)系圖以按時(shí)間排序的消息形式來(lái)表示對(duì)象之間的交互。序列關(guān)系圖和通信關(guān)系圖的區(qū)別在于通信關(guān)系圖情調(diào)對(duì)象的組織結(jié)構(gòu),而序列關(guān)系圖則按時(shí)間順序顯示對(duì)象之間交互的消息。在序列關(guān)系圖中,可以沿x軸方向排列對(duì)象。將啟動(dòng)交互的對(duì)象放在最左邊。消息序列中后來(lái)的對(duì)象則放在交互啟動(dòng)對(duì)象的右邊。在交互中,對(duì)象發(fā)送和接收的消息按時(shí)間升序沿y軸防止。 注:和通信關(guān)系圖不同,序列關(guān)系圖描述對(duì)象生命線。 A.倉(cāng)庫(kù)盤點(diǎn)過(guò)程序列圖 分析:操作員將盤點(diǎn)信息發(fā)送給管理員,管理員審查盤點(diǎn)信息,然后盤點(diǎn)信息列表交給商品打印模塊打印后發(fā)給操作員執(zhí)行相關(guān)商品操作。 商品盤點(diǎn)信息 無(wú)錫職業(yè)技術(shù)學(xué)院實(shí)踐環(huán)節(jié)材料撰寫(xiě)用紙 操作員管理員商品盤點(diǎn)模塊商品打印模塊盤點(diǎn)信息盤點(diǎn)信息列表()審核后盤點(diǎn)信息盤點(diǎn)信息打印報(bào)表() 圖11 倉(cāng)庫(kù)盤點(diǎn)過(guò)程序列圖 B.商品管理序列圖 分析:操作通知商品供應(yīng)商進(jìn)貨、退貨,商品供應(yīng)商將商品清單和退貨商品清單發(fā)送給商品進(jìn)貨模塊,商品進(jìn)貨模塊將進(jìn)貨商品打印報(bào)表給操作員,商品退貨模塊將商品退換報(bào)表打印發(fā)給操作員,操作員也可以查詢庫(kù)存,庫(kù)存庫(kù)存模塊將庫(kù)存查詢信息發(fā)送給操作員。 無(wú)錫職業(yè)技術(shù)學(xué)院實(shí)踐環(huán)節(jié)材料撰寫(xiě)用紙 操作員商品供應(yīng)商商品進(jìn)貨模塊商品退換模塊進(jìn)貨()商品清單()進(jìn)貨商品打印報(bào)表()退貨清單()退貨()退換商品打印報(bào)表()查詢條件()商品庫(kù)存信息 圖12 商品管理序列圖 C.倉(cāng)庫(kù)歷史記錄序列圖 分析:管理員登錄系統(tǒng)查詢歷史信息模塊,歷史信息則查詢商品進(jìn)貨退貨模塊、商品調(diào)撥模塊、商品盤點(diǎn)模塊,之后各模塊將查詢得到的信息發(fā)送給歷史信息模塊,最后由歷史信息模塊統(tǒng)一將信息發(fā)給管理員。 無(wú)錫職業(yè)技術(shù)學(xué)院實(shí)踐環(huán)節(jié)材料撰寫(xiě)用紙 管理員歷史信息查詢模塊商品進(jìn)貨退貨模塊商品調(diào)撥模塊商品盤點(diǎn)模塊查詢信息()查詢條件()進(jìn)貨記錄()查詢信息()商品調(diào)撥記錄()查詢信息()商品盤點(diǎn)信息()查詢結(jié)果() 圖13 倉(cāng)庫(kù)歷史記錄序列圖 無(wú)錫職業(yè)技術(shù)學(xué)院實(shí)踐環(huán)節(jié)材料撰寫(xiě)用紙 (四)《倉(cāng)庫(kù)管理系統(tǒng)》的架構(gòu)建模 架構(gòu)建模使您能夠了解組件在組織網(wǎng)絡(luò)中的物理分布。您需要對(duì)軟件系統(tǒng)的架構(gòu)進(jìn)行建模以確定組件的設(shè)計(jì)是否符合軟件系統(tǒng)的需要。軟件架構(gòu)描述軟件按系統(tǒng)的所有組件以及這些組件之間的關(guān)系。要對(duì)系統(tǒng)軟件的架構(gòu)進(jìn)行建模,您需要?jiǎng)?chuàng)建以下關(guān)系圖: ? 包關(guān)系圖:描述根據(jù)特定條件分組在一起的軟件系統(tǒng)構(gòu)成。? 組件關(guān)系圖:描述軟件系統(tǒng)的可執(zhí)行構(gòu)成。 ? 部署關(guān)系圖:描述軟件系統(tǒng)組件的各種處理設(shè)備。 a)組件關(guān)系圖:組件可實(shí)現(xiàn)一組接口并構(gòu)成軟件系統(tǒng)的可執(zhí)行部分。 分析:該圖是系統(tǒng)的各個(gè)組件圖,由系統(tǒng)登錄、倉(cāng)庫(kù)管理管理、信息查詢、系統(tǒng)設(shè)置。 倉(cāng)庫(kù)管理信息查詢系統(tǒng)登錄系統(tǒng)設(shè)置 圖14 組件關(guān)系圖 b)部署關(guān)系圖:顯示需要在其中部署軟件組件的硬件。 分析:下圖表明系統(tǒng)采用數(shù)據(jù)庫(kù)系統(tǒng)作為后臺(tái)數(shù)據(jù)提供者,然后客戶登錄使用系統(tǒng),也可以對(duì)系統(tǒng)中的信息進(jìn)行打印操作。 無(wú)錫職業(yè)技術(shù)學(xué)院實(shí)踐環(huán)節(jié)材料撰寫(xiě)用紙 數(shù)據(jù)服務(wù)器客戶機(jī)1客戶機(jī)n打印機(jī) 圖15 部署關(guān)系圖 1、課程設(shè)計(jì)的目的、任務(wù) 《匯編語(yǔ)言》課程設(shè)計(jì)對(duì)于鞏固匯編語(yǔ)言理論知識(shí),加強(qiáng)學(xué)生的實(shí)際動(dòng)手能力和提高學(xué)生綜合素質(zhì)十分必要。課程設(shè)計(jì)的目的主要是通過(guò)程序設(shè)計(jì)方法和技能的基本訓(xùn)練,鞏固在課堂上學(xué)到的有關(guān)程序設(shè)計(jì)的基本知識(shí)和基本方法,通過(guò)實(shí)際動(dòng)手能力的培養(yǎng),進(jìn)一步熟悉匯編語(yǔ)言的結(jié)構(gòu)和使用方法,達(dá)到能獨(dú)立閱讀、編制和調(diào)試一定規(guī)模的匯編語(yǔ)言程序的水平。 2、軟件需求分析和設(shè)計(jì) 2.1學(xué)生成績(jī)管理系統(tǒng)是對(duì)學(xué)生成績(jī)的管理,其中包括以下幾個(gè)模塊:(1).插入一個(gè)數(shù)據(jù)(插入學(xué)生學(xué)號(hào)以及語(yǔ)數(shù)外三個(gè)成績(jī))。(2)修改一個(gè)數(shù)據(jù)。(3)刪除學(xué)生成績(jī)數(shù)據(jù)。(4)查找學(xué)生成績(jī)。(5)查看學(xué)生成績(jī)的排名(6)查看學(xué)生成績(jī)分布(7)按esc鍵退出系統(tǒng) 2.2學(xué)生成績(jī)管理系統(tǒng)應(yīng)該包含以下信息:學(xué)號(hào),語(yǔ)文成績(jī),英語(yǔ)成績(jī),數(shù)學(xué)成績(jī)。因此,系統(tǒng)應(yīng)該提供以下功能:(1)輸出顯示菜單。(2)輸入學(xué)生的成績(jī)(3)修改學(xué)生成績(jī)(4)刪除學(xué)生成績(jī)(5)查詢學(xué)生成績(jī)(6)顯示學(xué)生成績(jī)排名(7)顯示成績(jī)分布統(tǒng)計(jì)(8)按esc鍵退出系統(tǒng) 2.3依據(jù)程序的功能需求,該系統(tǒng)的功能結(jié)構(gòu)圖如下 系統(tǒng)功能結(jié)構(gòu)圖 2.4 程序流程圖: 主程序流程圖 查找學(xué)生成績(jī) 插入學(xué)生學(xué)號(hào)及成績(jī) 修改學(xué)生的成績(jī) 顯示各個(gè)學(xué)科各分?jǐn)?shù)段的人數(shù) 3、程序?qū)崿F(xiàn)說(shuō)明 3.1學(xué)生管理系統(tǒng)中各子程序如下: (1).輸入全部學(xué)生學(xué)號(hào)以及語(yǔ)文,英語(yǔ),數(shù)學(xué)三科的成績(jī)。子程序名:insert 子程序描述:該子程序?yàn)檩斎胱殖绦颉O到y(tǒng)在開(kāi)始的時(shí)候是沒(méi)有數(shù)據(jù)的,通過(guò)該子程序可以初始化系統(tǒng),將學(xué)生的學(xué)號(hào)及成績(jī)輸入系統(tǒng)。 代碼: insert proc near;定義進(jìn)程子程序:插入學(xué)生,學(xué)號(hào)及 成績(jī) call input;調(diào)用input add n,1 ret insert endp (2).修改輸入的成績(jī)。子程序名:modify 子程序描述:通過(guò)子程序修改學(xué)生的成績(jī) 代碼: modify proc near;定義進(jìn)程子程序:修改學(xué)生學(xué)號(hào),成績(jī) md1:output mess1;輸出mess1 shuru;調(diào)用宏shuru:二位數(shù)據(jù)輸入 mov bl,n mov bh,0 mov al,dl mov si,0 md: cmp al,xh[si];先查找輸入的學(xué)生是否存在 je qq1_1;查到的話,就跳轉(zhuǎn)到qq1_1輸入修改的值,也就是重新輸入。;結(jié)果相等則跳轉(zhuǎn)到qq1_1 add si,1 cmp si,bx jbe md;小于等于則跳轉(zhuǎn)到md output mess;輸出mess jmp md1;不相等繼續(xù)輸入學(xué)號(hào) qq1_1:;轉(zhuǎn)入修改的值重新輸入。mov di,si output mess2 output mess4 mov si,0 mov cx,3 qq3_1:shuruu;cmp dx,78h; jbe qq2_1;output ts3;jmp qq1_1;qq2_1:mov buf[si],dl output bg;add si,1 loop qq3_1 mov al,buf[0];mov chi[di],al mov al,buf[1] 分別輸入語(yǔ)文,英語(yǔ),數(shù)學(xué)成績(jī),并將其放 在緩沖區(qū)buf中 比較輸入的成績(jī)是否大于120,如果大于120的 話,那么重 新輸入成績(jī) 小于等于則轉(zhuǎn)移到qq2_1 輸出ts3 跳轉(zhuǎn)到qq1_1 輸出空格 將存入buf中的成績(jī),分別賦值給存放對(duì)應(yīng)科 目的成績(jī)的數(shù)組 mov eng[di],al mov al,buf[2] mov mat[di],al ret modify endp (3).刪除學(xué)生的成績(jī)。子程序名:delete 子程序描述:通過(guò)子程序刪除學(xué)生的成績(jī) 代碼: de proc near;刪除某個(gè)學(xué)生的記錄 sc1:output mess1 shuru;調(diào)用宏shuru,接受輸入的學(xué)號(hào) mov bl,n mov bh,0 mov al,dl mov si,0 sc: cmp al,xh[si];查詢輸入學(xué)號(hào)的學(xué)生信息是否存在,不存在的話,重新輸入學(xué)號(hào) je sc2;相等則轉(zhuǎn)移到sc2 add si,1 cmp si,bx jbe sc;小于等于則轉(zhuǎn)移到sc output mess;輸出mess jmp sc1 sc2: sub bx,si cmp bx,0 je sc3;相等則轉(zhuǎn)移到sc3 mov cx,bx sc4:mov dl,chi[si+1] mov chi[si],dl mov dl,eng[si+1] mov eng[si],dl mov dl,mat[si+1] mov mat[si],dl mov dl,xh[si+1] mov xh[si],dl add si,1 loop sc4;loop循環(huán)指令,執(zhí)行操作(cx)<--(cx)-1.若 cx!=0,跳轉(zhuǎn)到標(biāo)號(hào)sc處循環(huán)執(zhí)行;cx=0,則推出 循環(huán),執(zhí)行l(wèi)oop的下一條指令 sub n,1 sc3: ret de endp (3).查詢學(xué)生的成績(jī)。子程序名:find 子程序描述:通過(guò)子程序查詢學(xué)生的成績(jī) 代碼: find proc near;定義進(jìn)程子程序:查找學(xué)生成績(jī) call sum;求學(xué)生的總成績(jī) call ping;求學(xué)生的平均成績(jī) bj1:output mess1;輸出mess1 shuru;二位數(shù)數(shù)據(jù)輸入 mov bl,n mov bh,0 mov al,dl mov si,0 bj: cmp al,xh[si];將輸入的學(xué)號(hào)與輸入的學(xué)號(hào)相比,je i;存在的話,將此學(xué)生的成績(jī)輸出。je表示結(jié)果相 等則轉(zhuǎn)移。add si,1 cmp si,bx jbe bj;output mess jmp bj1 i: output strr2 shuzi xh[si];shuzi output bg;mov al,chi[si] cbw;shuzii ax;shuzii output bg;mov al,eng[si] cbw;shuzii ax;shuzii output bg mov al,mat[si] cbw shuzii ax output bg; mov al,pj[si] cbw 小于等于則轉(zhuǎn)移到bj 為二位數(shù)據(jù)輸出 輸出空格 將字節(jié)變?yōu)樽?/p> 為三位數(shù)據(jù)輸出。輸出空格 將字節(jié)變?yōu)樽?/p> 為三位數(shù)據(jù)輸出 輸出空格的字符串,用于與標(biāo)題欄對(duì)齊 shuzii ax output bg mov ax,si mov bl,2 mul bl mov bx,ax shuzii zc[bx];shuzii為三位數(shù)據(jù)輸出 output bg;輸出空格的字符串,用于與標(biāo)題欄對(duì)齊 shuzi mc[si];shuzi為二位數(shù)據(jù)輸出 ret find endp (4).顯示學(xué)生的成績(jī)排名。子程序名:show 子程序描述:通過(guò)子程序顯示學(xué)生的成績(jī)排名 代碼: show proc near;定義進(jìn)程子程序:顯示結(jié)果排名 call sum;調(diào)用宏sum call ping;調(diào)用宏ping call rank;調(diào)用宏rank call shuchu;調(diào)用宏shuchu ret show endp 3.2程序運(yùn)行抓圖: 主菜單 修改學(xué)生成績(jī) 刪除學(xué)生成績(jī) 顯示各個(gè)學(xué)科各分?jǐn)?shù)段的人數(shù) 4、程序總結(jié) 通過(guò)兩個(gè)星期的學(xué)習(xí),努力,終于完成了報(bào)告。系統(tǒng)可以很好的運(yùn)行。這兩個(gè)多星期的時(shí)間,幾乎每天不是在敲代碼,就是在看代碼,查書(shū),上網(wǎng)。系統(tǒng)中用到了很多最近才學(xué)習(xí)的知識(shí),比如宏,子程序。這些都使得代碼的運(yùn)行效率提高了,代碼行數(shù)減少了。系統(tǒng)還用到了bios的清屏功能。這些功能如果不是做課程設(shè)計(jì),我想我很難會(huì)接觸到這些知識(shí)。 由于自己對(duì)知識(shí)掌握的不是很牢固,其中也會(huì)碰到一些困難。每當(dāng)遇到問(wèn)題的時(shí)候,我會(huì)先上網(wǎng)去查找,看看有沒(méi)有人提過(guò)這方面的問(wèn)題。互聯(lián)網(wǎng)是強(qiáng)大的,大部分的問(wèn)題通過(guò)網(wǎng)絡(luò)都可以解決。部分找不到的問(wèn)題,我就去請(qǐng)教班里學(xué)得好的同學(xué)。他們對(duì)知識(shí)的掌握遠(yuǎn)超過(guò)我。這樣下來(lái),很多問(wèn)題都迎刃而解了。 課程設(shè)計(jì)是一個(gè)很好的掌握書(shū)本上知識(shí)的過(guò)程。平時(shí)上課之后,自己都不會(huì)想著去敲一些代碼聯(lián)系聯(lián)系。通過(guò)做課程設(shè)計(jì),將理論與實(shí)踐結(jié)合了起來(lái),對(duì)知識(shí)的理解更加深入了。第二篇:倉(cāng)庫(kù)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
第三篇:倉(cāng)庫(kù)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
第四篇:倉(cāng)庫(kù)管理系統(tǒng)課程設(shè)計(jì) UML
第五篇:語(yǔ)言課程設(shè)計(jì)-學(xué)生成績(jī)管理系統(tǒng)