




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、One此課程設計共分為兒個部份:需求分析,數(shù)據(jù)流程圖,數(shù)據(jù)字典,全局ER圖,局部 ER圖,關(guān)系模式,建庫和建表的SQL語句,表的約束SQL語句,建視圖的SQL語句,存儲過 程和觸發(fā)器的SQL語句,前臺抓圖,所有過程,決無抄襲。從中我們學到了很多,對數(shù)據(jù) 庫這門課程有了更多了解。注意:商品編號的編法前2位為部門編號,次兩位位批次,后4位為商品名編號數(shù)據(jù)流程圖:部門提出購買計劃交給倉庫,倉庫通過與現(xiàn)有庫存作對比,如有必要進貨,就將 此購買計劃交給采購員,采購員負責與供應商進行談價,達成協(xié)議,丁是填寫合同,釆 購員帶回的叫做預訂單,供應商留下的叫做訂單。供應商帶著訂單送貨到企業(yè),倉庫拿 出預訂單核對
2、,經(jīng)檢查訂單與預訂單匹配則確認有效托收,托收后進行檢驗入庫,入庫 同時填寫好入庫單作好登記。企業(yè)各個部門根據(jù)所需的物資設備總額和部門生產(chǎn)活動需 求開出出庫申請表。倉庫根據(jù)現(xiàn)有的物資判斷是否該出庫,如果可以就根據(jù)出庫申請核 對發(fā)放設備,并填寫好出庫單作好登記。設備使用完畢后需要及時還庫登記填寫好還庫 單,如有超期或損壞現(xiàn)象就要如實交罰金并登記。數(shù)捋流程圖:訂單|購買計劃預訂單信怠生亦訂單/ 釆購計劃信息対庫品.§一做單息賃物信息入庫單入庫佶息數(shù)據(jù)字典:1. 對圖中采購:在數(shù)據(jù)字典中可對其作如下描述:-> -> -> -> -> -> -> -&
3、gt; . 處理過程:確定訂單說明:采購員以購買計劃為準,確定價格,數(shù)量,總金額,供應商,在采購過程中生成訂單 及訂單.輸入:計劃單編號輸出:訂單預訂單程序提要:A在購買計劃表中查找是否在價格范圍之內(nèi)B在價格范圍之內(nèi),則單價乘以數(shù)量是否在總金額范圍之內(nèi) C若A, B都滿足,則添加一條記錄D處理完后,形成訂單和預訂單2. 對圖中檢驗:在數(shù)據(jù)字典中可對其作如下描述:處理過程:核對物品信息后生成入庫單說明:送貨員將物品送到后,管理員以預訂單為準核對物品信息,確定無誤后,登記入庫 單.輸入:預訂單編號輸出:入庫單程序提要:A在預訂單中查找物品(例如:M)信息進行核對B如若無誤,則在入庫單中添加一條物品
4、(M)記錄C核對完后,形成入庫單3. 對圖中入庫:在數(shù)據(jù)字典中可對其作如下描述:處理過程:入庫后修改(增加)現(xiàn)有庫存表說明:入庫后增加現(xiàn)有庫存表輸入:入庫單編號輸出:現(xiàn)有庫存表程序提要:A在入庫單中查找到每一種物品的數(shù)量,在現(xiàn)有庫存表中相應增加B處理完后,形成現(xiàn)有庫存表4. 對圖中"出庫",在數(shù)據(jù)字典中可對其作如下描述:處理過程:出庫后登記入庫單并修改(減少)現(xiàn)有庫存表說明:提貨員提交出庫申請,由管理員批準后,登記出庫單并修改(減少)現(xiàn)有庫存表 輸入:出庫申請編號輸出:出庫單現(xiàn)有庫存表程序提要:A在出庫申請單中查找物品(例如:M)信息進行核對,出庫數(shù)量是否超過庫存或 出庫后
5、數(shù)量小于最小庫存B如若無課,則在出庫單中添加一條物品(M)記錄C核對完后,形成出庫單D在出庫單中查找到每一種物品的數(shù)量,在現(xiàn)有庫存表中相應加減少E處理完后,形成現(xiàn)有庫存表5. 對圖中對比:在數(shù)據(jù)字典中可對其作如下描述:處理過程:核對歸還物品信息后生成還庫單說明:將物品歸還時,管理員以出庫單為準核對物品信息,確定無誤后,登記還庫單,如若 有誤,登記懲罰表.輸入:出庫單編號輸出:還庫單懲罰表程序提要:A管理員在出庫單中查找物品(例如:M)信息進行核對B如若無誤,則在還庫單中添加一條物品(M)記C核對完后,形成入庫單D如若有誤,則登記懲罰表E處理完后,形成懲罰表6. 對圖中"歸還入庫:在數(shù)
6、據(jù)字典中可對其作如下描述:-_> -處理過程:還庫后修改(增加)現(xiàn)有庫存表說明:還庫后增加現(xiàn)有庫存表輸入:還庫單編號輸出:現(xiàn)有庫存表程序提要:A在還庫單中查找到每一種物品的數(shù)量,在現(xiàn)有庫存表中相應增加 B處理完后,形成現(xiàn)有庫存表倉庫管理系統(tǒng)全局ER圖:購買計劃還庫表局部ER圖1:局部ER圖2:供應商型雷舊4->尢斗型魅(斗型篆典圃申鑒輿圈劭其齊岡春芳詡過耳詡雪P妙彗啟過覽岐 幡專、斗&=右_凹二訂單(訂單號,商品編號,商品名,數(shù)量,價格,供應商,所求單位,采購員,送貨時間,計劃 編號);預訂單(預訂單號,商品編號,商品名,數(shù)量,價格,供應商,所求單位,采購員,收貨時間訂 單
7、號);入庫單(入庫單編號,商品號,商品名,數(shù)量,價格,入庫時間,采購員,倉庫管理人員,預訂 單號);倉庫現(xiàn)有庫存表(商品編號,商品名,最大庫存,最小庫存,現(xiàn)有庫存);申請出庫仲請表單號,商品編號,商品名,數(shù)量,價格,出庫時間,還庫時間,部門名稱,部 門經(jīng)理簽字);出庫單(出庫表編號,出庫數(shù)量商品號商品名,出庫性質(zhì),所需部門,倉庫管理員,提貨 人員,出庫時間,還庫時間,出庫申請表號);還庫表(還庫表單號,商品編號,商品名,數(shù)量,歸還部門,出庫時間,還庫時間,倉庫管理 員,出庫表編號);懲罰表(懲罰表編號,所罰部門,商品編號,商品名,拖還時間,是否損壞,罰款額,罰款時 間);建庫和建表SQL語句:
8、create database倉庫管理系統(tǒng)on(name 二倉庫 _dat,filename=,e:Microsoft SQL ServerMSSQLData倉庫 mdf',size二10,maxsize=150)Log on(name=倉庫 _log,filename=,e:Microsoft SQL ServerMSSQLData倉庫.ldf1 ,size=10,maxsize=80)create table購買計劃表(計劃編號 char (10) primary key,商品編號 char(12) not null,商品名char (16),數(shù)量flo&t(8),單價范圍
9、 float (8),所需部門char (30),金額范圍float (8),部門經(jīng)理簽字char (10),計劃時間datetime,);create table 訂單 訂單號 char (10) primary key,商品編號 char(12) not null,商品名char (16),數(shù)量 float (8), 價格 money, 供應商 char (30), 所求單位char (30), 采購員 char (16), 送貨時間datetime, 計劃編號char (10) references購買計劃表(計劃編號);create table 預訂單(預訂單號 char(10) pr
10、imary key,商品編號 char(12) not null,商品名char (16),數(shù)量 float (8), 價格 money, 供應商 char (30), 所求單位char (30), 采購員 char (16), 收貨時間datetime, 訂單號char (10) references訂單(訂單號);create table 入庫單(入庫單編號 char (10) primary key, 商品號 char(12) not null, 商品名char(16),數(shù)量 float (8), 價格 money, 入庫時間datetime, 采購員char (16), 倉庫管理人員c
11、har (16), 預訂單號char (10) references預訂單(預訂單號) );create table出庫申請(出庫申請表單號char(10) primary key ,商品編號char(12), 商品名char(16), 數(shù)量 float (8), 價格money,出庫時間datetime,還庫時間datetime,部門名稱char(30),部門經(jīng)理簽字char(16);create table 出庫單(出庫表編號 char(10)primary key,出庫數(shù)量float (8),商品號char(10),商品名char(16),出庫性質(zhì)char (10),所需部門char (
12、30),倉庫管理員char (16),提貨人員char (16),出庫時間datetime,還庫時間datetime,出庫申請表單號char(10)references出庫申請(出庫申請表單號) );create table 懲罰表(懲罰表編號 char (10) primary key,所罰部門char (30),商品編號char(10), 商品名char(16), 拖還時間int, 是否損壞char (4),罰款額float (8),罰款時間datetime);create table倉庫現(xiàn)有庫存表(商品編號 char(10) primary key ,商品名char(16),最大庫存fl
13、oat (10),最小庫存float (10),現(xiàn)有庫存float (10);表的約束SQL語言:/*將單價范圍訂在10到50之間*/alter table購買計劃表add constraint 單價范圍 check(單價范圍 between 10 and 50);/*金額范圍必須小于50000*/ alter table購買計劃表add constraint 金額范圍 check(金額范圍50000);/*出庫性質(zhì)只能是'售出或'借出'*/alter table 出庫單add constraint出庫性質(zhì)check (出庫性質(zhì)in('售出,借出)/*是否損壞的
14、范圍是'是'或'否'*/alter table 懲罰表add constraint是否損壞check (是否損壞in('是否')建視圖的SQL語言:/5部門計劃月所需與實際所用物品的比較(反映部門的發(fā)展狀況)*/create view計劃實際(所需部門,月計劃總量,月出庫總量,月份,商品名) asselect出庫表所需部門,sum(購買計劃表數(shù)量),sum(出庫表出庫數(shù)量),month(出庫時間),出庫表商品名from出庫表,購買計劃表group by出庫表商品名,month(出庫時間),出庫表所需部門廣2可從視圖上看到企業(yè)每種商品月進貨總量*/
15、create view企業(yè)每種商品月進貨總量(商品號,商品名,商品月總進貨數(shù),月份) asselect入庫單.商品號,商品名,sum(入庫單.數(shù)量),month(入庫時間)from入庫單group by商品號,商品名,month(入庫時間)廣3可以從視圖上看到在如庫,出庫,還庫過程中的現(xiàn)有庫存修改后的信息*/create view現(xiàn)有庫存(商品編號,商品名,現(xiàn)有庫存,時間)ASSELECT倉庫現(xiàn)有庫存表商品編號,倉庫現(xiàn)有庫存表商品名,(sum(現(xiàn)有庫存)+sum(入庫單.數(shù)量)+sum(還庫表數(shù)量)-sum(出庫單.出庫數(shù)量),day(入庫單入庫時間)FROM入庫單,出庫單,還庫表,倉庫現(xiàn)有庫
16、存表GROUP BY倉庫現(xiàn)有庫存表商品名,day (入庫單入庫時間),倉庫現(xiàn)有庫存表商品編號存儲過程的SQL語句:廣判斷是否該出庫(條件:現(xiàn)有庫存-要求出庫數(shù)量最小庫存)*/create proc判斷是否該出庫商品編號char (10), 耍求出庫數(shù)量float (8) asif exists (select *from倉庫現(xiàn)有庫存表where商品編號二商品編號)beginif exists (select*from倉庫現(xiàn)有庫存表where (現(xiàn)有庫存-耍求出庫數(shù)量)最小庫存)rollback transactionraiserror (*你現(xiàn)在不能從倉庫中取出商,16, 10)end&quo
17、t;測試程序,在中填入數(shù)據(jù)*/execute判斷是否該出庫觸發(fā)器的SQL語句:/*不準修改罰款金額的存儲過程*/create trigger 修改罰款金額on 懲罰表for update asif update (罰款額)beginrollback transactionraiserrorC*在未交罰金前不能修改罰款金額',16, 10)insert into modify_logvalues (current_user, getdate 0)select* from modify_logend/*為了預防超期不準修改還庫時間的存儲過程*/create trigger 修改還庫時間on
18、 出庫單for update asif update(還庫時間)beginrollback transactionraiserrorC1在未交還庫前不能修改還庫時間,16, 10)insert into modify_logvalues (current_user, getdate 0)select* from modify_logend/*為了預防超期不準修改出庫時間的存儲過程*/create trigger 修改出庫時間on 出庫單for update asif update (出庫時間)beginrollback transactionraiserror (*能修改出庫時間,16, 10
19、)insert into modify_logvalues (current_user, getdate 0)select* from modify_logendinsert into購買計劃表(計劃編號,商品編號,商品名,數(shù)量,單價范圍,所需部 門,金額范圍,經(jīng)理簽字,計劃時間)values (0000000001 P000000003J滑雪板 00;駕5J策劃部8000J李興玉2003/6/1')insert into訂單(訂單號,商品編號,商品名,數(shù)量,價格,供應商,所求單委, 采購員,送貨時間,計劃編號)_values C0000000011 >0000000003 1
20、滑雪板200,*30謝仁公司丁物資公司謝 海寧 J2003/6/2J000000000V)insert into預訂單(預訂單號,商品編號,商品名,數(shù)量,價格,供應商,所求單委,采購員,送貨時間,訂單號)values(0000000004 *0000000003*, * 滑雪板200,30 J謝仁公司物資公司丁 謝海寧:2003/6/2,, '0000000011')(因為我們數(shù)據(jù)的插入是手動生成的,現(xiàn)只給出三個表的數(shù)據(jù)插入)前臺抓圖:1.登錄窗口(擁有兩個登錄方式,不同的方式訪問權(quán)限不同)Two:#include <stdio.h>#include <str
21、ing.h>include <stdlib.h>#include <conio.h>struct Infochar num20J;char name20; int price;int amount;;/*菜單選擇函數(shù)*/*n記錄選擇的菜單引char menu()char n;system(Hcls,r);歡迎來到倉庫貨物管理系統(tǒng)”);puts(Httputs(Att*puts(Att*1 錄入貨物信息2 顯示貨物信息血);皿);3 查找貨物信息puts(Att*4 修改貨物信息5 刪除貨物信息puts(Att*6 退岀系統(tǒng)*nH);puts(”*”、printf(
22、H*請選擇你要輸入數(shù)(1-6):*nH);puts(H*$*導*”、while(l)n=getchar(): getchar(); if(n<,riln>,6,)puts(“$* * * * * “*$*“、printf(H* 出錯了!請再次輸入(1-6):*n,r);puts(叱* *“* * $* *rbreak:return n;/*貨物信息輸入函數(shù)*/void appendOstruct Info info;FILE * fp;char ch;if(fp=fopcn(MF:testfilemolde123.txt,HwbH) = NULL)printf(H* * * * *
23、$*n”);printf(H*不能打開文件!*n,r);primf('°*$*rf')getch();exit(l);doprintf(Htnum:,r);gets(info.num);printf(Htnamc:u); gets();printf(,tprice:M); scanf(H%d,&info.price):printf(Mtamount:n); scanf(H%d,&info.amount); getchar();fwrite(&info,sizcof(info). 1 fp);printf(H* * * $*、)
24、printf(H* 還需要輸入嗎?(Y/N):*nM);printf(H* * * * * *nH)*ch=getchar(); getchar();whilc(ch='Y'llch=y); fclose(fp);void printfl() printf(n*$* nH);printf(,Att%-10st%-10st%-10st%-10sn,num,4iame,priceM;,amountir,);printf(n*$*&$* * *n”)void printf2(struct Info info)printf(HnM);printf(utt%-10st%-10st
25、%-10dt%-10Jnfo.priceJnfo.amount);printf(,rnH);void displayO/*貨物信息顯示函數(shù)*/struct Info info;FILE * fp;int m=0:if(fp=fopen(,'F:testfilemoIdc123.txtH;,rbH)=NULL)printf(“*$*、printf(u*不能打開文件! *H);inlf("* * * ”) getch();exit(l);while(fread(&info,sizeof(info), 1 ,fp)=l) m+;if
26、(m=l)print f 1();printf2(info); if(m!=0)&&(m%10=0)printf(°* * * * *printf(H*輸入任何鍵繼續(xù)*H);printf(" * * * * *getch(); puls(Ann”); printfl ();fclose(fp);printf(M* * * *#*、) printf(H*總共有d條記錄在其中!printf(H* * * *、)getch();void searchOstruct Info info; FILE * fp;int flag;int total=0: char ch
27、10; char f:/*貨物信息查詢函數(shù)*/按姓名査詢*/* flag為1按編號查詢.flag為2嚴記錄符合條件的記錄的個數(shù)卸if(fp=fopen(HF:testfilemoldel 23.txf,?,rbH) = NULL)printf(M* * * * * * * * *n”) print"* t不能打開文件!*nH);printf(u * * * * * * * *岸) getch();exit(l);dorewind(fp);printf(H* * * * printf(N*查詢通過(1:編號2:姓名):*nH);printf(n* * * * *5“)while(l)s
28、canf(,%d,&flag); getchar(); if(flag<lllflag>2)printf(H * *$* * *$* *n”) printf(M*出錯了!請再次輸入1:編號2:姓名"T); printf(M * *#$* * * * * *n“)elsebreak;if(flag= 1)/*按編號進行查詢*/printf(M * * * * * *$*、) printf(H*請輸入你要查詢的編號:*nN);printf(H*#*$尊* *n“)gets(ch); total=0;廣符合條件的記錄數(shù)可while(fread(&info,siz
29、eof(info)J ,fp)= 1)if(strcinp(.num)=0)total+; if(total=l) printfl (); printf2(info);else嚴按姓名進行査詢*/printf(H*#*$尊* *n“)printf(H*請輸入你要査詢的姓名: *nH):printf( * * * *)gets(ch); total=0;while(fread(&info,sizeof(info),l ,fp)=l)if(strcmp()=0) total+; if(total=l) printfl (); printf2(info)
30、;printf(n* * * * * * * *$n”) printf(M*總共有d記錄在其中! *n”,to(al);printf(u * * * * * * *岸)printf(v *#* * * *$* * *$岸) printf(H*還需要査詢嗎?(Y/N):*nM);printf(H* * *$*n“)f=getchar(); getchar(); while(f=,Yllf=y); fclose(fp);void modifyO/*貨物信息修改函數(shù)*/struct Info info;HLE*fpL*fp2;int flag;char ch10;char f;if(fpl=fopc
31、n(HF:testfilemolde123.txt,V,rbH) = NULL)printf(H* * * * * *V)printf(M *不能打開文件!*nu)/printf(M * * *n”) getch();exit(l);if(fp2=fopen(HF:testfilemolde456.txt,HwbH) = NULL)primf('°* * * * * n'°)printf(H *不能打開文件!*n,r);printf(H* * *n“) getch();exit(l);printf(H * * * * *)printfC*請輸入你要修改的貨物
32、編號:*n");printf(N * * * * *)gets(ch);flag=O;while(fread(&info,sizeof(info), 1 .fp 1)= 1) if(strcmp(.num)=0) printfl ();printf2(info);printf(,r* * * * * *n") printf(M*請輸入新的信息:*nM);printf(H* *$* * *$* *n”)printf(Htnuin:n); gets(info.num);printf(Mtname:H); gets();printf(Mtp
33、rice:M); scanf(M%d'&info.price);printf(Htamount:H); scanf(,%d,&info.amount): getcharO;flag=l;fwrite(&infosizcof(info),l.fp2):fclose(fpl);fclose(fp2);if(flag=l)printf(H* * * * * *5”).printf(H*修改成功!*nH);printf(H * * * * * * *n") remove(HF:testfilemoIde123.txtM);rename(,F:testfilem
34、olde456.txt,F:testfilemolde123.txtH);elseprintf(n* * * * * * * n")printf(M*不能找到這個記錄!*n”);printf(n* * *$* * *$* *printf(H* * * * * *$岸) printf(M*還修改其他嗎?(Y/N):*nM);printf(M * *#$* * * *$* 幺n“)f=getchar(); getcharO; whiIe(f=yllf=Y,);void DeleteO/*貨物信息刪除函數(shù)*/struct Info info;HLE*fpL*fp2;int flag;cha
35、r ch10J; char f;if(fpl=fopen(,F:testfilemolde123.txt,Hrb,r) = NULL)printf(H* * * * * *$*n”) printf(H* t不能打開文件!"T);'printf(M * * * * * *$*、) getch();exit(l);if(fp2=fopcn(HF:testfilemolde456.txt,HwbH) = NULL)printf(M* * * * * *5”)printf(M* t不能打開文件!FT);'printf(M* * * * *n")getch(); ex
36、it(l);printf(M * *#$* * * * *#*n“) printfC*請輸入你需要刪除貨物的編號:*n");'printf(M* * * * * *$*n”)gets(ch); flag=O;while(fread(&info,sizeof(info).l.fpl)=l) (if(strcmp(.num)=0) printfl ();printf2(info);flag=l;break;elsefwrite(&info,sizcof(info). 1 .fp2);fclose(fpl);fclose(fp2);if(flag=l)
37、“*printf(H* * *$* * *$* * ”) printf(H*刪除成功!®T);printf(H* * * * * * *$* *5 “) remove(HF:testfilemolde123.txtM); renanie(,F:testfilemolde456.txt,MF:testfilcniolde123.txtH);刪除成功!elseprintf(u* * * * * * *n")printf(M*不能找到這個記錄!"門;printf(n * * * * *w)printf(M* * *$* *#*$* *) printf(H*還刪除其他嗎?
38、(Y/N):*nH);printf(M* * * * *$*、)f=getchar(); getchar();while(f=y,llf=Y,);void main()嚴主函數(shù)*/while(l)int a;char f;char ch10J;char num20=M12345H;printf("please input the secret :n°);scanf(,%s,ch);if(strcmp(num.ch )=0)a=l;if(a=l)printf(Miiplease enter in the telproject !n”); f=getchar();getchar
39、O;break:elseprintf(Hn the secret is error J; printf(nplease input the rieht secret*');while(l) switch(menuO)case11 ':appcnd();break; case2:display();break; case,3,:search();break;casc'4':modify();brcak: casc'5':Dclctc();brcak;casc6:cxit(0):brcak; three程序設計基礎課程設t目 錄1 課程設汁冃的和要求
40、2H課程設計的目的:212課程設計的要求:22 課程設汁任務內(nèi)容:23 詳細設計說明33 功能模塊圖:33.2數(shù)據(jù)結(jié)構(gòu)設計:43.3 功能模塊設ih 5軟件使用說明:6課程設計心得與體會:6參考文獻:7附錄:部分程序淸單7課程設計目的和要求1.1課程設計的目的:通過一個學年的學習,對 紅程序設計這門課程之中所講的知識有了一定的了 解。但是作為一名合格的大學生,不僅要認真閱讀課本知識,還要通過上機實踐 來增強和鞏固自己的知識。特別是作為工科類學生,更要注重實踐這一環(huán)節(jié)。因 為只有這樣我們才能成為合格的計算機人材。1.2課程設計的要求:在實踐過程之中,重要的是獨立思考,這樣,不僅有利于提高自己對知
41、識的理解 ,還更有助于提高自己的實踐動手能力。與此同時,還應該注意主動與別人交流, 這樣便有利于就業(yè)之后與團隊進行合作。2課程設計任務內(nèi)容:倉庫管理系統(tǒng)是各個大型商店進行管理的重要組成部分,其內(nèi)容較多,為了滿足 工作需求,要求設計的管理系統(tǒng)能夠完成以下五種功能:1. 創(chuàng)建庫存記錄文件。根據(jù)提示輸入若干電器的“電器名稱、品牌名稱(或生 產(chǎn)廠家)、型號、庫存數(shù)量、價值”等信息,并將信息保存至一個文件中。2. 物資入庫管理,創(chuàng)建一個入庫記錄文件,每次有物資入庫,則按入庫記錄 要求輸入''電器名稱、品牌名稱、型號、入庫數(shù)量、單價、入庫時間(年.月. 日)、送貨人姓名”等信息,并將該次的
42、入庫信息添加到文件中,同時修改相應 的庫存記錄文件。3. 物資出庫管理,創(chuàng)建一個出庫記錄文件,每次有物資出庫,則按出庫記錄 要求輸入各項信息,并將該次的出庫信息添加到文件中,同時修改相應的庫存記 錄文件。在此過程之中,檢查出庫數(shù)量的合法性(即出庫數(shù)量必須小于庫存數(shù)量)。4. 按不同條件進行查詢操作,輸出滿足條件的物資信息。(1) 輸入電器名稱,在庫存記錄文件中查找相應的物資信息并輸出。(2) 輸入品牌名稱,在庫存記錄文件中查找該品牌的所有電器信息并輸出。(3) 輸入一個日期(年.月.日),輸出該天的入庫記錄和出庫記錄。(4) 輸入電器名稱和型號,輸出該電器的所有入庫記錄和出庫記錄。5. 按不同
43、條件對物資信息進行統(tǒng)計工作。(1) 輸入電器名稱,在庫存記錄文件中統(tǒng)計該電器的現(xiàn)有庫存總量。(2) 輸入電器名稱,在入庫記錄文件中統(tǒng)計該電器的入庫次數(shù)。(3) 輸入一個日期(年.月),在出庫記錄文件中統(tǒng)計該月的出庫記錄次數(shù)。(4) 設置一個庫存數(shù)量警戒值,輸出庫存數(shù)量小于該警戒值的所有庫存電器的信 息。3詳細設計說明3.1功能模塊圖:功能模塊設計完成4. 1系統(tǒng)功能模塊圖3.2數(shù)據(jù)結(jié)構(gòu)設計:系統(tǒng)共定義了四個結(jié)構(gòu)體類型,包括日期類型、庫存類型、入庫類型和出庫 類型,其中在入庫類型和出庫類型中要使用日期類型,定義如下:struct goodschar name10;電器名稱char brand 1
44、0;電器品牌char style 10; int num;float money; )stu_lSIZEJ; struct date電器型號庫存數(shù)量 價值庫存結(jié)構(gòu)int year;int month;int day;);年份月份日期 日期結(jié)構(gòu)struct entrance電器名稱電器品牌電器型號入庫數(shù)量單價入庫日期送貨人姓名入庫結(jié)構(gòu)char name10; char brand 10;char style 10; int num;float money; stiuct date time;char stuff 10; )stu_2SIZEJ; struct exitchar name 10;電
45、器名稱char brandf 10;電器品牌char style 10; int num;電器型號出庫數(shù)量stiuct date time;char stuf10; stu_3SIZEJ; 系統(tǒng)定義了宏變量,出庫日期提貨人姓名出庫結(jié)構(gòu)存放電器種類,具體定義如下:#define SIZE 103.3功能模塊設計:main函數(shù)的設計:山于第一次使用,在庫存文件,入庫文件和出庫文件之中, 沒有任何信息,所以,要求我們先輸入應有的信息,才能進行查詢和統(tǒng)訃。用If 語句和for循環(huán)結(jié)構(gòu)進行提示輸入相應的數(shù)字,然后利用switch語句選擇定義的 各種函數(shù)應該進行的操作,為用戶提供服務。建立庫存記錄文件模塊
46、包括scan_l()與save_l()兩個函數(shù)組成,該模塊有main 函數(shù)調(diào)用。Scan_l()函數(shù)用于輸入各個庫存信息,save_l()函數(shù)將庫存信息保存成 文件。建立入庫記錄文件模塊包括scan_2(), save_2()與change_l(), save_l()四個函 數(shù)組成,該模塊有main函數(shù)調(diào)用。scan_2()函數(shù)用于輸入入庫信息,save_2()函 數(shù)用于保存入庫信息,change_l()用于更改庫存信息,save. 1()函數(shù)將更改之后的 庫存信息保存成文件。建立出庫記錄文件模塊包括scan_3(), save_3()與change_2(), save_l()四個函 數(shù)組成,
47、該模塊有main函數(shù)調(diào)用。scan_3()函數(shù)用于輸入出庫信息,save_3()用 于保存出庫信息,change_2()函數(shù)用于更改庫存信息,save_l()函數(shù)用于將更改之 后的庫存信息保存成文件。查詢功能模塊包find. 1()函數(shù),find_2(),函數(shù)find_3()與函數(shù)find_4()函數(shù)四 個函數(shù),該模塊有main函數(shù)調(diào)用。其中find. 1()函數(shù)包括open_l()函數(shù),它將庫 存記錄打開,然后,然后讀出數(shù)據(jù),經(jīng)過判斷輸出信息,完成4.1o find_2()函數(shù) 包括open_l()函數(shù),它將庫存記錄打開,然后,然后讀出數(shù)據(jù),經(jīng)過判斷輸出信 息,完成4.2。find_3()函
48、數(shù)包括open_2(), open_3()函數(shù),它們分別將入庫記錄 和出庫記錄打開,然后,然后讀出數(shù)據(jù),使數(shù)據(jù)和輸入的年月日比較,然后輸出 所要查詢的信息,完成4.3。find_4()函數(shù)包括。pen_2(), open_3()函數(shù),它們分 別將入庫記錄和出庫記錄打開,然后,然后讀出數(shù)據(jù),使數(shù)據(jù)和輸入的名稱和型 號比較,然后輸出所要查詢的信息,完成4.4統(tǒng)計功能模塊包find_5()函數(shù),find_6(),函數(shù)find_7()與函數(shù)find_8()函數(shù)四 個函數(shù),該模塊有main函數(shù)調(diào)用。其中find_5()函數(shù)包括。pen_l()函數(shù),將庫存 記錄打開,使數(shù)據(jù)與輸入的名稱比較,然后選擇性相加,輸出所統(tǒng)計的對象。find. 6()函數(shù)包括。pen_2()函數(shù),將入庫記錄打開,讀出數(shù)據(jù),與新輸入的數(shù)據(jù)比較, 然后進行選擇性相加,輸出數(shù)據(jù)。函數(shù)find_7()包括open_3()函數(shù),打開出庫記錄, 讀出數(shù)據(jù),查找在一定年月的出庫記錄,并將出
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 協(xié)助收購合同范例
- 作家助手簽約標準合同范本
- 兼職短期有效合同范本
- 加盟協(xié)議英文合同范本
- 單位借款三方協(xié)議合同范本
- 劇本買賣合同范本
- 單位超市采購合同范本
- 個人承包勞務合同范本
- 單位廚師勞務合同范本
- 鄉(xiāng)村公路開挖合同范本
- 文聯(lián)述職報告
- 四年級全冊《勞動》課程知識點匯總精排
- SCI期刊的名稱縮寫與全稱對照表
- 人本位醫(yī)療培訓課件
- 《供應鏈管理》課程整體設計
- 水利工程危險源辨識評價及風險管控清單
- 桂西北丹池成礦帶主要金屬礦床成礦特征及成礦規(guī)律
- 申論范文:社區(qū)微治理 共建美好家園
- 高等工程熱力學教案課件
- 2023年征信知識競賽基礎題考試復習題庫(帶答案)
- 汽車機械基礎PPT(第3版)全套完整教學課件
評論
0/150
提交評論