版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
One
此課程設(shè)計(jì)共分為幾個(gè)部份:需求分析,數(shù)據(jù)流程圖,數(shù)據(jù)字
典全局ER圖,局部ER圖,關(guān)系模式,建庫(kù)和建表的SQL語句,表的
約束SQL語句,建視圖的SQL語句,存儲(chǔ)過程和觸發(fā)器的SQL語句,
前臺(tái)抓圖,所有過程,決無抄襲。從中我們學(xué)到了很多,對(duì)數(shù)據(jù)庫(kù)這門
課程有了更多了解n
注意:商品編號(hào)的編法前2位為部門編號(hào),次兩位位批次,后4位為商
品名編號(hào)
數(shù)據(jù)流程圖:
部門提出購(gòu)買計(jì)劃交給倉(cāng)庫(kù),倉(cāng)庫(kù)經(jīng)過與現(xiàn)有庫(kù)存作對(duì)比,如
有必要進(jìn)貨,就將此購(gòu)買計(jì)劃交給采購(gòu)員,采購(gòu)員負(fù)責(zé)與供應(yīng)商進(jìn)
行談價(jià),達(dá)成協(xié)議,于是填寫合同,采購(gòu)員帶回的叫做預(yù)訂單,供應(yīng)
商留下的叫做訂單,供應(yīng)商帶著訂單送貨到企業(yè),倉(cāng)庫(kù)拿出預(yù)訂單
核對(duì),經(jīng)檢查tl單與預(yù)M單匹配則確認(rèn)有效托收,托收后進(jìn)行檢驗(yàn)
入庫(kù),入庫(kù)同時(shí)填寫好入庫(kù)單作好登記。企業(yè)各個(gè)部門根據(jù)所需的
物資設(shè)備總額和部門生產(chǎn)活動(dòng)需求開出出庫(kù)申請(qǐng)表。倉(cāng)庫(kù)根據(jù)現(xiàn)有
的物資判斷是否該出庫(kù),如果能夠就根據(jù)出庫(kù)申請(qǐng)核對(duì)發(fā)放設(shè)備,
并填寫好出庫(kù)單作好登記。設(shè)備使用完畢后需要及時(shí)還庫(kù)登記填寫
好還庫(kù)單,如有超期或損壞現(xiàn)象就要如實(shí)交罰金并登記。
數(shù)據(jù)流程圖:
青s
訂單購(gòu)買計(jì)劃出庫(kù)單
出i
出
計(jì)出庫(kù)申請(qǐng)
庫(kù)
劃
-庫(kù)
單
申
息
物S
預(yù)
信
請(qǐng)
品
訂
息
出
庫(kù)佶
信
核
對(duì)出
信
單
昌
記
息
登
必
信
訂
息
理
息
單
員
信
息
提交申請(qǐng)顯不
建尊(減少)
信息
核H_______
人
預(yù)訂單
入
庫(kù)單
物
信
一_
訂
庫(kù)
入
預(yù)
信
信
購(gòu)
單
息
息
用信
入
檢驗(yàn)
貨物信息
數(shù)據(jù)字典:
1.對(duì)圖中“采購(gòu),,,在數(shù)據(jù)字典中可對(duì)其作如下描述:
處理過程:確定訂單
說明:采購(gòu)員以購(gòu)又計(jì)劃為準(zhǔn),確定價(jià)格,數(shù)量,總金額,供應(yīng)商,在采購(gòu)
過程中生成訂單及訂單.
輸入:計(jì)劃單編號(hào)
輸出:訂單
預(yù)訂單
程序提要:A在購(gòu)買計(jì)劃表中查找是否在價(jià)格范圍之內(nèi)
B在價(jià)格范圍之內(nèi),則單價(jià)乘以數(shù)量是否在總金額范圍之
內(nèi)
C若A,B都滿足,則添加一條記錄
D處理完后,形成訂單和預(yù)訂單
2.對(duì)圖中“檢給”,在數(shù)據(jù)字典中可對(duì)其作如下描述:
處理過程:核對(duì)物品信息后生成入庫(kù)單
說明:送貨員將物品送到后,管理員以預(yù)訂單為準(zhǔn)核對(duì)物品信息,確
定無誤后,登記入庫(kù)單.
輸入:預(yù)訂單編號(hào)
輸出:入庫(kù)單
程序提要:A在預(yù)訂單中查找物品(例如:M)信息進(jìn)行核對(duì)
B如若無誤,則在入庫(kù)單中添加一條物品(M)記錄
C核對(duì)完后,形成入庫(kù)單
3.對(duì)圖中“入庫(kù)”,在數(shù)據(jù)字典中可對(duì)其作如下描述:
處理過程:入庫(kù)后修改(增加)現(xiàn)有庫(kù)存表
說明:入庫(kù)后增加現(xiàn)有庫(kù)存表
輸入:入庫(kù)單編號(hào)
輸出:現(xiàn)有庫(kù)存表
程序提要:A在入庫(kù)單中查找到每一種物品的數(shù)量,在現(xiàn)有庫(kù)存表中
相應(yīng)增加
B處理完后,形成現(xiàn)有庫(kù)存表
4.對(duì)圖中“出庫(kù)”,在數(shù)據(jù)字典中可對(duì)其作如下描述:
處理過程:出庫(kù)后登記入庫(kù)單并修改(減少)現(xiàn)有庫(kù)存表
6.對(duì)圖中“歸還入庫(kù)”在數(shù)據(jù)字典中可對(duì)其作如下描述:
處理過程:還庫(kù)后修改(增加)現(xiàn)有庫(kù)存表
說明:還庫(kù)后增加現(xiàn)有庫(kù)存表
輸入:還庫(kù)單編號(hào)
輸出:現(xiàn)有庫(kù)存表
程序提要:A在還庫(kù)單中查找到每一種物品的數(shù)量,在現(xiàn)有庫(kù)存表中
相應(yīng)增加
B處理完后,形成現(xiàn)有庫(kù)存表
倉(cāng)庫(kù)管理系統(tǒng)全局ER圖:
局部ER圖1:
局部ER圖2:
數(shù)
量
價(jià)格
供應(yīng)商
經(jīng)理簽字
局部ER圖4:
關(guān)系模式:
購(gòu)買計(jì)劃表(計(jì)劃編號(hào),商品編號(hào),商品名,數(shù)量,單價(jià)范圍,所需部門,
金額范圍,部門經(jīng)理簽字,計(jì)劃時(shí)間,);
訂單(訂單號(hào),商品編號(hào),商品名,數(shù)量,價(jià)格,供應(yīng)商,所求單位,采購(gòu)員,
送貨時(shí)間,計(jì)劃編號(hào));
預(yù)訂單(預(yù)訂單號(hào),商品編號(hào),商品名,數(shù)量,價(jià)格,供應(yīng)商,所求單位,采
購(gòu)員,收貨時(shí)間訂單號(hào));
入庫(kù)單(入庫(kù)單編號(hào),商品號(hào),商品名,數(shù)量,價(jià)格,入庫(kù)時(shí)間,采購(gòu)員,倉(cāng)
庫(kù)管理人員,預(yù)訂單號(hào));
倉(cāng)庫(kù)現(xiàn)有庫(kù)存表(商品編號(hào),商品名,最大庫(kù)存,最小庫(kù)存,現(xiàn)有庫(kù)存);
申請(qǐng)出庫(kù)(申請(qǐng)表單號(hào),商品編號(hào),商品名,數(shù)量,價(jià)格,出庫(kù)時(shí)間,還庫(kù)
時(shí)間,部門名稱,部門經(jīng)理簽字);
出庫(kù)單(出庫(kù)表編號(hào),出庫(kù)數(shù)量商品號(hào)商品名,出庫(kù)性質(zhì),所需部門,
倉(cāng)庫(kù)管理員,提貨人員,出庫(kù)時(shí)間,還庫(kù)時(shí)間,出庫(kù)申請(qǐng)表號(hào));
還庫(kù)表(還庫(kù)表單號(hào),商品編號(hào),商品名,數(shù)量,歸還部門,出庫(kù)時(shí)間,還
庫(kù)時(shí)間,倉(cāng)庫(kù)管理員,出庫(kù)表編號(hào));
懲罰表(懲罰表編號(hào),所罰部門,商品編號(hào),商品名,拖還時(shí)間,是否損壞,
罰款額,罰款時(shí)間);
建庫(kù)和建表SQL語句:
createdatabase倉(cāng)度管理系統(tǒng)
on
(
name=倉(cāng)庫(kù)_dat,
filename='e:\MicrosoftSQLServer\MSSQL\Data\倉(cāng)庫(kù).mdf,
size=10,
maxsize=150
)
Logon
(name二倉(cāng)庫(kù)」og,
f'ilename='e:\MicrosoftSQLServer\MSSQL\Data\倉(cāng)庫(kù).Idf,
size=10,
maxsize=80
)
createtable購(gòu)買計(jì)劃表
(
計(jì)劃編號(hào)char(10)primarykey,
商品編號(hào)char(12)notnull,
商品名char(16),
數(shù)量float(8),
單價(jià)范圍float(8),
所需部門char(30),
金額范圍float(8),
部門經(jīng)理簽字char(10),
計(jì)劃時(shí)間datetime,
);
createtable訂單
(
訂單號(hào)char(10)primarykey,
商品編號(hào)char(12)notnull,
商品名char(16),
數(shù)量float(8),
價(jià)格money,
供應(yīng)商char(30),
所求單位char(30),
采購(gòu)員char(16),
送貨時(shí)間datetime,
計(jì)劃編號(hào)char(10)references購(gòu)買計(jì)劃表(計(jì)劃編號(hào))
);
createtable預(yù)訂單
(
預(yù)訂單號(hào)char(10)primarykey,
商品編號(hào)char(12)notnull,
商品名char(16),
數(shù)量float(8),
價(jià)格money,
供應(yīng)商char(30),
所求單位char(30),
采購(gòu)員char(16),
收貨時(shí)間datetime,
訂單號(hào)char(10)references訂單(訂單號(hào))
);
createtable入庫(kù)單
(
入庫(kù)單編號(hào)char(10)primarykey,
商品號(hào)char(12)notnull,
商品名char(16),
數(shù)量float(8),
價(jià)格money,
入庫(kù)時(shí)間datetime,
采購(gòu)員char(16),
倉(cāng)庫(kù)管理人員char(16),
預(yù)訂單號(hào)char(10)references預(yù)訂單(預(yù)訂單號(hào))
);
createtable出庫(kù)申請(qǐng)
(
出庫(kù)中請(qǐng)表單號(hào)char(10)primarykey,
商品編號(hào)char(12),
商品名char(16),
數(shù)量flo量8),
價(jià)格money,
出庫(kù)時(shí)間datetime,
還庫(kù)時(shí)間datetime,
部門名稱char(30),
部門經(jīng)理簽字char(16)
);
createtable出庫(kù)單
(
出庫(kù)表編號(hào)char(10)primarykey,
出庫(kù)數(shù)量float(8),
商品號(hào)char(10),
商品名char(16),
出庫(kù)性質(zhì)char(10),
所需部門char(30),
倉(cāng)庫(kù)管理員char(16),
提貨人員char(16),
出庫(kù)時(shí)間datetime,
還庫(kù)時(shí)間datetime,
出庫(kù)申請(qǐng)表單號(hào)char(10)references出庫(kù)申請(qǐng)(出庫(kù)申請(qǐng)表單號(hào))
);
createtable懲罰表
(
懲罰表編號(hào)char(10)primarykey,
所罰部門char(30),
商品編號(hào)char(10),
商品名char(16),
拖還時(shí)間int,
是否損壞char(4),
罰款額float(8),
罰款時(shí)間datetime
);
createtable倉(cāng)庫(kù)現(xiàn)有庫(kù)存表
(
商品編號(hào)char(10)primarykey,
商品名char(16),
最大庫(kù)存float(lO),
最小庫(kù)存float(lO),
現(xiàn)有庫(kù)存float(lO)
);
表的約束SQL語言:
/*將單價(jià)范圍訂在10到50之間*/
altertable購(gòu)買計(jì)戈J表
addconstraint單價(jià)范圍check(單價(jià)范圍between10and50);
/*金額范圍必須小于50000*/
altertable購(gòu)買計(jì)戈J表
addconstraint金額范圍check(金額范圍<50000);
/,出庫(kù)性質(zhì)只能是售出'或借出■/
altertable出庫(kù)單
addconstraint出庫(kù)性質(zhì)check(出庫(kù)性質(zhì)in(售出',借出'))
/*是否損壞的范圍是'是'或否'*/
altertable懲罰表
addconstraint是否損壞check(是否損壞in(,是:否))
建視圖的SQL語言:
/*1.部門計(jì)劃月所需與實(shí)際所用物品的比較(反映部門的發(fā)展?fàn)顩r)
*/
createview計(jì)劃—實(shí)際(所需部門月計(jì)劃總量月出庫(kù)總量月份,商
品名)
as
select出庫(kù)表.所需部門,sum(購(gòu)買計(jì)劃表.數(shù)量),sum(出庫(kù)表.出庫(kù)數(shù)
量),
month(出庫(kù)時(shí)間),出庫(kù)表.商品名
from出庫(kù)表,購(gòu)買計(jì)劃表
groupby出庫(kù)表.商品名,month(出庫(kù)時(shí)間),出庫(kù)表.所需部門
/*2.可從視圖上看到企業(yè)每種商品月進(jìn)貨總量*/
createview企業(yè)每種商品月進(jìn)貨總量(商品號(hào),商品名,商品月總進(jìn)
貨數(shù)月份)
as
select入庫(kù)單商品號(hào),商品名,sum(入庫(kù)單,數(shù)量),month(入庫(kù)時(shí)間)
from入庫(kù)單
groupby商品號(hào),商品名,month(入庫(kù)時(shí)間)
/木3.能夠從視圖上看到在如庫(kù),出庫(kù),還庫(kù)過程中的現(xiàn)有庫(kù)存修改后
的信息*/
createview現(xiàn)有庫(kù)存(商品編號(hào),商品名,現(xiàn)有庫(kù)存,時(shí)間)
AS
SELECT倉(cāng)庫(kù)現(xiàn)有庫(kù)存表.商品編號(hào),倉(cāng)庫(kù)現(xiàn)有庫(kù)存表,商品
名,(sum(現(xiàn)有庫(kù)存)+sum(入庫(kù)單.數(shù)量)+sum(還庫(kù)表.數(shù)量)?sum(出庫(kù)
單.出庫(kù)數(shù)量)),day(入庫(kù)單.入庫(kù)時(shí)間)
FROM入庫(kù)單,出庫(kù)單,還庫(kù)表,倉(cāng)庫(kù)現(xiàn)有庫(kù)存表
GROUPBY倉(cāng)庫(kù)現(xiàn)有庫(kù)存表.商品名,day(入庫(kù)單.入庫(kù)時(shí)間),倉(cāng)庫(kù)現(xiàn)
有庫(kù)存表.商品編號(hào)
存儲(chǔ)過程的SQL語句:
/*判斷是否該出庫(kù)(條件:現(xiàn)有庫(kù)存-要求出庫(kù)數(shù)量,最小庫(kù)存)*/
createproc判斷是否該出庫(kù)@商品編號(hào)char(10),@要求出庫(kù)數(shù)
量float(8)
as
ifexists(select*from倉(cāng)庫(kù)現(xiàn)有庫(kù)存表where商63編號(hào)-@商品編
號(hào))
begin
ifexistsCselect*from倉(cāng)庫(kù)現(xiàn)有庫(kù)存表where(現(xiàn)有庫(kù)存?@要求出庫(kù)
數(shù)量)〈最小庫(kù)存)
rollbacktransaction
raiserror(你現(xiàn)在不能從倉(cāng)庫(kù)中取出商」6,10)
end
/*測(cè)試程序,在“,”中填入數(shù)據(jù)*/
execute判斷是否該出庫(kù)
觸發(fā)器的SQL語句:
/*不準(zhǔn)修改罰款金額的存儲(chǔ)過程刃
createtrigger[修改罰款金額]on[懲罰表]
forupdateas
ifupdate(罰款額)
begin
rollbacktransaction
raiserrorC在未交罰金前不能修改罰款金額,16,10)
insertintomodify」og
values(current_user,getdate())
select*frommodify_log
end
/*為了預(yù)防超期不準(zhǔn)修改還庫(kù)時(shí)間的存儲(chǔ)過程*/
createtrigger[修改還庫(kù)時(shí)間]on[出庫(kù)單]
forupdateas
ifupdate(還庫(kù)時(shí)間)
begin
rollbacktransaction
raiserror(在未交還庫(kù)前不能修改還庫(kù)時(shí)目,16/0)
insertintomodify」og
values(current_user,getdate())
select*frommodify_log
end
/*為了預(yù)防超期不鹿修改出庫(kù)時(shí)間的存儲(chǔ)過程*/
createtrigger[修改出庫(kù)時(shí)間]on[出庫(kù)單]
forupdateas
ifupdate(出庫(kù)時(shí)間)
begin
rollbacktransaction
raiserroif能修改出庫(kù)時(shí)間;16,10)
insertintomodify」og
values(current_user,getdate())
select*frommodify_log
end
insertinto購(gòu)買計(jì)劃表(計(jì)劃編號(hào),商品編號(hào),商品名,數(shù)量,單價(jià)
范圍,所需部門,金額范圍,經(jīng)理簽字,計(jì)劃時(shí)間)
values(“二「滑雪板:200135;策劃部:8000:李興玉7/6/1,)
insertinto訂單(訂單號(hào),商品編號(hào),商品名,數(shù)量,價(jià)格,供應(yīng)商,
所求單委,采購(gòu)員,送貨時(shí)間,計(jì)劃編號(hào))
valued,滑雪板','2001307謝仁公司;物資公司同謝海寧了
/6/2','')
insertinto預(yù)訂單(預(yù)訂單號(hào),商品編號(hào),商品名,數(shù)量,價(jià)格,供
應(yīng)商,所求單委,采購(gòu)員,送貨時(shí)間,訂單號(hào))
values,,JJ滑雪板','200130:謝仁公司;物資公司?謝海寧;
/6/2,「)
(因?yàn)槲覀償?shù)據(jù)的插入是手動(dòng)生成的,現(xiàn)只給出三個(gè)表的數(shù)據(jù)插入)
前臺(tái)抓圖:
1.登錄窗口(擁有兩個(gè)登錄方式,不同的方式訪問權(quán)限不同)
;設(shè)備還庫(kù)-1□!x|
設(shè)備還庫(kù)
與單號(hào)商品編號(hào)商品名數(shù)量歸還部門
)00001000000000002足球100策劃部
確定|
退出
11
;查詢出庫(kù)信息
出庫(kù)信息查詢
出庫(kù)數(shù)量商品號(hào)商品名出庫(kù)性質(zhì)所需部門
500000D000(籃球售出銷售部
保存I
打印I
退出I
勺_______________I21
;查詢懲罰信息
懲罰信息查詢
是編號(hào)所罰部門商品編號(hào)商品名拖還時(shí)間是,
000001銷售部0000000001籃球30是
000002策劃部0000000002足球10否保存|
打印
退出
L—
J2J
;設(shè)備采購(gòu),1□!
共應(yīng)商預(yù)訂單所求單位預(yù)訂單采購(gòu)員預(yù)訂單收貸增加|
公司策劃部謝海寧2003-12-2
刪除
確定|
退出|
LJ11
Two:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
structInfo
(
charnum[20J:
charname[20];
intprice;
intamount;
);
charmenu()/*菜單選擇函數(shù)*/
charn;/*n記錄選擇的菜單*/
system("clsH);
puts(H\t\t歡迎來到倉(cāng)庫(kù)貨物管理系統(tǒng)”);
puts("\t\t***********************MENU*********************
**\n");
puts("\t\t*1.錄入貨物信息*\n");
puts("\t\t*2.顯示貨物信息*\n");
puts("\t\t*3?查找貨物信息*\n”);
puts(”\t\t*4.修改貨物信息*\n");
puts(H\t\t*5.刪除貨物信息*\n");
puts("\t\t*6.退出系統(tǒng)*\n");
puts(x11\t4\\t小小小個(gè)*個(gè)**小小小小個(gè)個(gè)小小小小個(gè)?個(gè)農(nóng)小小小個(gè)個(gè)小小小小*1*個(gè)個(gè)小小*1?小*1*小個(gè)小小小小小個(gè)*?*小?,/小小*t*小*1*個(gè)***小-k小小?]?小?!*小個(gè)***
\nn);
nntszfH*********************************''、?
PUIM),
printf(n*請(qǐng)選擇你要輸入數(shù)(1-6):*\n”);
/Q,*1**1**!*?***f**!**1*?*1**!**1**1**1*****!**1**1*11X
?1】ra■*T**T**X**T?*?**?w*T**T**X**Tw*T?■*,T**T?*T**Tw*7**“*T,**T**T?*Tw*7*?*如T*?*,T,?*T??*T!?**7**7*?*如i**T**7**7*■?
puib<),
while(l)
n=getchar();
getchar();
if(n<T||n>6)
??
puts(11?[?*?1[*??[?*X**£(?[]?.■?]卜?*[1?*4,*£*?[??*[1?*?■卜]?*J1W*r*,£W??£;???[??[??[??JWrg??1??[?r■J?0??1t??4*£,?4、4、?[??[??]?4*£、?11
printf(H*出錯(cuò)了!請(qǐng)?jiān)俅屋斎?1-6):*\n)
putas(/II*1**v*l*K*I***2***?/*vi*><1***A***i**1*^**1*KJ***£***1***1**vl>*KJ*¥*£*****lz*KJ*K3J*不*X*一*1*^*1**1**¥不11\);
else
break;
returnn;
)
voidappend()/*貨物信息輸入函數(shù)*/
structInfoinfo;
FILE*fp;
charch;
if((fp=fopen("F:\\test\\filemolde\\l23.txt",HwbM))==NULL)
printf("******************\n")?
printf(n*不能打開文件!*\n");
pHntf("******************\n")?
getch();
exit(l);
do
printf(M\tnum:");
gets(info.num);
printf(M\tname:");
gets();
printf("\tprice:");
scanf("%d",&info.price);
printf(n\tamount:");
scanf("%dH,&info.amount);
getchar();
fwrite(&info,sizeof(info),1,fp);
printf("***************************\n")?
printf(還需要輸入嗎?(Y/N):
printf(“木木木木木木木木木木木木木木木木木木木木木木木木木木木、n'')?
ch=getchar();
getchar();
}while(ch=='Y'||ch=='y');
fclose(fp);
)
voidprintfl()
11*!**1*d姓-姓*1**!**!>*!**1*q.、]**!**!**!*q.*!**1*?**q.
*1**jw*T**T**T?*T**T?*T**T*〃、*1**T**T?*7**T**1*/T?*T?*T**1**T?*T^*T**T**T?*7??、*T**T**T??、
■]?■!*■£?.[**X*■£**1>\11\
*j*?jw*7**?**j?*j?*j?4,*jw*jw*jw*7*rj**7**T**!?*j**7**7**T*\1?
printf("\t\t%-lOs\t%-1Os\t%-1Os\t%-1Os\n","num","name","price","am
ount\n");
*.r/11■融'L■1**1*-X**1*■!**£*?£*?!*\1**1?*?*-L*1*?1,■!**1**£?*X**1**!*-X**1*■!*■!*■1*?1,
<■T-g*4*?1、?[?,[?*g??[、*j?*g??[?rj?*j?*(??[?*j*?卜?j?*7**7*?;?■1??[?*7**7**(*?1??[??卜*j**j*
**,于****¥*****¥**.}:**¥****'*");
)
voidprintf2(structInfoinfo)
printf(n--------------------------------------------------------------------------------\nn
);
printf(H\t\t%-lOs\t%-1Os\t%-1Od\t%-1Od\nu,info.num,,info.pr
ice,info.amount);
printf(H--------------------------------------------------------------------------------\n"
);
)
voiddisplayO/*貨物信息顯示函數(shù)*/
(
structInfoinfo;
FILE*fp;
intm=0;
if((fp=fopen("F:\\test\\filemolde\\l23.txt",nrbn))==NULL)
printf("*51c5Jc*|c")?
printf(H*不能打開文件!*”);
printf("'y
getch();
exit(l);
while(fread(&info,sizeof(info),1,fp)==1)
m++;
if(m==l)
printfl();
printf2(infb);
if((m!=0)&&(m%10==0))
pn口tf("*****************************\n")?
printfC*輸入任何鍵繼續(xù)*");
printf("*****************************\n”)?
gctch();
puts("\n\n");
printfl();
)
fclose(fp);
printf(”*總共有%(3條記錄在其中!*\n”,m);
getch();
)
voidsearch()/*貨物信息查詢函數(shù)*/
(
structInfoinfo;
FILE*fp;
intflag;/*flag為1按編號(hào)查詢,flag為2按姓名查
詢*/
inttotal=0;/*記錄符合條件的記錄的個(gè)數(shù)*/
charch[10];
charf;
if((fp=fopen("F:\\test\\filemolde\\123.txtn."rbn))==NULL)
printff*\t不能打開文件!*\n");
getch();
exit(l);
do
rewind(fp);
printf(H*查詢經(jīng)過(1:編號(hào)2:姓名):*\n");
while(I)
(
scanf("%dn,&nag);
getchar();
if(flag<l||flag>2)
VV,7j,、.:、■,、q、,:、7,■:、*■1,、*KJ*4,j、.7.j,、.:、?;、(、.j、7.j,、.:、q、7.7.:,、*.1:、*KJ>(、7.j”、7.j,、*zj?1q*、.j、.7:,、■、1!、*7..[■\\I?\*?
printf(\1175
printff*出錯(cuò)了!請(qǐng)?jiān)俅屋斎耄?:編號(hào)]⑵姓名]
*\nn);
else
break;
)
if(flag==l)/*按編號(hào)進(jìn)行查詢*/
printf(H*請(qǐng)輸入你要查詢的編號(hào):*\n“);
gets(ch);
total=0;/*符合條件的記錄數(shù)*/
while(fread(&info,sizeof(info),1,fp)==1)
if(strcmp(ch,info.num)==0)
(
total++;
if(total==l)
printfl();
printf2(info);
)
)
else/*按姓名進(jìn)行查詢*/
printf(”*請(qǐng)輸入你要查詢的姓名:*\n");
gets(ch);
total=0;
while(fread(&info,sizeof(infd),1,fp)==1)
if(strcmp(ch,)==0)
(
total++;
if(total==l)
printfl();
printf2(info);
*ar,11.J*■]**£*?1*■£**1**!**1*\X*■[?*!*■1?■[?■”?£.*1*■1**1*?£?\VI\
nrintt".不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不、n1?
printf("*總共有%d記錄在其中!*\n",total);
*?r,11■£*?£*?1,■%?£??£.■1??1*?£?<!**1*?1*■£*“?*1**1**1*?£<■[?“??f*■1?■£*?£?■]?■,??X**£*?£?\VI\
nrinfI!不平不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不、n)?
.,11?*?*X**X**3*?X**£**X**X**X**A**X**1**1**1**£**1*?t**1*?X**A*7.*X**1**1*?X**X**X*?X**L**1***??*??X*\iI\
pr]ntt(不不不不不不不不不不不不不不不不不不不不不不不不不小不不不不不不**不不、n)?
printf("*還需要查詢嗎?(Y/N):*\n“);
,
nr].ri11(11不不小*不X*?「不不*1不**1不*不?不不*不X**不1*??不不*不1**不X**不1*、?不*£不**X不**X不**A不*?「不*X不**X不**X不*????「不不\、n11\!?
f=getchar();
getchar();
}while(f=='Y|||f=-y,);
fclose(fp);
}
voidmodifyO/*貨物信息修改函數(shù)*/
structInfoinfo;
FILE*fpl,*fp2;
intflag;
charch[10];
charf;
do
if((fpl=fopen(,,F:\\test\\filemolde\\123.txtn;,rbH))==NULL)
print,(*************************************\n")?
printf(H*不能打開文件!*\n");
nrintt,不不不不不下不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不、n1,
getch();
exit(l);
if((fp2=fopen("F:\\test\\filemolde\\456.txt",nwb"))
NULL)
pnntf("************************************\n"),
printf(H*不能打開文件!*\n”);
nrinttj小小小小小小小不不小小小小不小小小小小小小小小小下不小小小小不不小小小個(gè)、n)?
getch();
exit(l);
?A£/VI*1**1**S*$*1**1**!?7,*1**1**!?*1**!**1**1**!?*1*少*1**1**1**1**1**1*7,*1*\I!\
pr]ntt(不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不、口\?
printf(^請(qǐng)輸入你要修改的貨物編號(hào):*\n");
nrinf不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不、n,,
gets(ch);
flag=O;
while(fread(&info,sizeof(info),l,fp1)==1)
if(strcmp(ch,infb.num)==O)
printfl();
printf2(info);
.4r/tI*1**14*14\?f\
n「]r\fIf不不斗節(jié)個(gè)個(gè)不作不節(jié)個(gè)小不斗節(jié)個(gè)斗不訪節(jié)節(jié)不不不為不干個(gè)不平訪節(jié)個(gè)斗不■?
printf(H請(qǐng)輸入新的信息:
*\n");
printf("\tnum:");
gets(info.num);
printf("\tname:");
gets();
printf("\tprice:");
scanf("%d",&info.price);
printf(n\tamount:H);
scanf("%d",&info.amount);
getchar();
flag=l;
)
fwrite(&info,sizeof(info),1,fp2);
)
fclose(fpl);
fclose(fp2);
if(flag==l)
printf(H*修改成功!*\n”);
printf("************************************W”);
remove("F:\\test\\filemolde\\l23.txt");
rename(nF:\\test\\filemolde\\456.txt",nF:\\test\\filemolde\\l23.txt
”);
else
■,r/11KJ*KJ>KJ>*1**t>K£>*t>*1**}>*1*\11\
nrint"1~(不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不、n>?
printf。*不能找到這個(gè)記錄!
*\n");
*tr/11*1*\X**3**£?*1**1**1?\11\
nrintt(小小小小小不小小小小個(gè)小小小小小不小小小小小不小小小小不小小小小小小小小、n)?
.?/11*1**1*<1**1**1**1**1**X*\ff\
printt(不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不、n\?
printf("*還修改其它嗎?(Y/N):*\n");
??/I,*1**1**X**1**1**1**X**1**X**2**X**1**1*\ff\
nr】n11(不革,???「不不不不,??不不不不不,??不不不不,??不不不不不,「不不不不,?????不不不不Xxy)?
f=getchar();
getchar();
}while(f==,y,||f=='Y');
voidDeleteO/*貨物信息刪除函數(shù)*/
(
structInfoinfo;
FILE*fpl,*fp2;
intflag;
charch[10];
charf;
do
if((fpI=fopenC'FiWtestWfilemoldeW123.txtH,"rbn))==NULL)
printf("*\t不能打開文件!*W);
getch();
exit(l);
if((fp2=fopenC'F:\\test\\filemolde\\456.txt",Hwbn))
NULL)
printf("*\t不能打開文件!*\n");
getch();
exit(l);
..r,IV一],一■0[?一],\ff\
nrintt(小小不小不不小小不小小小小小不小小小個(gè)不小小小小小不小小小小小不小小小小、n1?
printfC*請(qǐng)輸入你需要?jiǎng)h除貨物的編號(hào):nn");
*a「/11*1*■[.?!*■1,-X**1**1**1**2**1**1**1**1?*1*\11\
nrinftf不小不小小不小小小小小小小小小小不不不小小小不不不小小小不小小小小小不小、n)?
gets(ch);
flag=O;
while(fread(&info,sizeof(info),1,fp1)==1)
if(strcmp(ch,info.num)==0)
printfl();
printf2(infb);
flag=1;
break;
)
else
fwrite(&info,sizeof(info),1,fp2);
)
fclose(fpl);
fclose(fp2);
if(flag==l)
printf(*************************************\n")?
printf-刪除成功!*\nn);
*>r/117,7,7,7,7,\tf\
nrinf??不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不、n>,
remove(HF:\\test\\filemolde\\123.txt");
rename(',F:\\test\\filemolde\\456.txt",nF:\\test\\filemolde\\l23.txt
”);
)
else
■?/tiKL?vt**1*\If\
pnntt(‘不‘下"“不"不"‘不"‘不"""不"""不""不\n)*
printf("*不能找到這個(gè)記錄!
*\n”);
*?ri11*1*?**、[?*?*?[”*!*??*?[,?1?.]?***?!??]??!*?!*?1??!*?]??!****\11\
pnntt(小不不小小小小不小小小小小不小小小小不不小小小小不小小小小小不小小小小不)?
nrint1/不不不不不不不不不不不不不不不不不不不不不不不不不不不不不小不不不小小不\n)?
printf("*還刪除其它嗎?(Y/N):*\nH);
?
nr】n1?1(/11*不X*不*X*不*X*,「?「*不X**不1**不1*不*,i?*?*X不**不1**不1*斗?.i.*.*.£.*.不*X**1不*不、?不?不X*?不1**不1*不?X**?£「*不*£*不不不*1***?不不手\、口11\)?
f=getchar();
getchar();
}while(f==,y,||f==,Y,);
)
voidmain()/*主函數(shù)*/
{
while(l)
(
inta;
charf;
charch[10|;
charnumr20]={"12345"};
printf("pleaseinputthesecret:\nn);
scanf(”%s”,ch);
if(strcmp(num,ch)==O)
a=l;
if(a==l)
printfC'Anpleaseenterinthetelproject!\n");
f=getchar();
getchar();
break;
}
else
(
printf("\nthesecretiserror");
printf("pleaseinputtherightsecret'*);
)
)
while(l)
switch(menu())
(
case*1*:append();break;
case'2':display();break;
case'3':search();break;
case'4':modifyO;break;
case'5':Dclete();break;
case'6':exit(0);break;
three
程序設(shè)計(jì)基礎(chǔ)課程冊(cè)
目錄
1課程設(shè)計(jì)目的和要求.................................錯(cuò)誤!未定義書簽。
1.1課程設(shè)計(jì)的目的:..............................錯(cuò)誤!未定義書簽。
1.2課程設(shè)計(jì)的要求:...............................錯(cuò)誤!未定義書簽。
2課程設(shè)計(jì)任務(wù)內(nèi)容:.................................錯(cuò)誤!未定義書簽。
3詳細(xì)設(shè)計(jì)說明.......................................錯(cuò)誤!未定義書簽。
3.1功能模塊圖:...................................錯(cuò)誤!未定義書簽。
3.2數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì):.................................錯(cuò)誤!未定義書簽。
3.3功能模塊設(shè)計(jì):.................................錯(cuò)誤!未定義書簽。
4軟件使用說明:......................................錯(cuò)誤!未定義書簽。
5課程設(shè)計(jì)心得與體會(huì):...............................錯(cuò)誤!未定義書簽。
6參考文獻(xiàn):..........................................錯(cuò)誤!未定義書簽。
7附錄:部分程序清單:...............................錯(cuò)誤!未定義書簽。
課程設(shè)計(jì)目的和要求
1.1課程設(shè)計(jì)的目的:
經(jīng)過一個(gè)年的學(xué)習(xí)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年語言學(xué)習(xí)與教育教師資格認(rèn)證考試題庫(kù)
- 2026年環(huán)保法規(guī)與政策知識(shí)競(jìng)賽試題庫(kù)
- 博世尾氣后處理培訓(xùn)課件
- 2026年Web前端開發(fā)人員習(xí)題
- 2026年市場(chǎng)營(yíng)銷專業(yè)基礎(chǔ)知識(shí)測(cè)試題
- 2026年中華文化經(jīng)典著作知識(shí)點(diǎn)試題及答案
- 2026年食品質(zhì)量安全管理人員考試題
- 2026年建筑工程技術(shù)實(shí)踐與理論試題集
- 2026年機(jī)械設(shè)計(jì)基礎(chǔ)零件材料選擇練習(xí)題
- 2026年數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)試題集
- 2025年工商管理碩士MBA聯(lián)考綜合能力真題及答案
- 洗煤廠陶瓷片施工方案
- 中國(guó)抑郁障礙防治指南(2025版)
- 私募基金風(fēng)控培訓(xùn)
- 2025插班生法學(xué)考試真題及答案
- 施工環(huán)境保護(hù)知識(shí)培訓(xùn)課件
- 神經(jīng)細(xì)胞器膜脂質(zhì)調(diào)控機(jī)制-洞察及研究
- 室內(nèi)設(shè)計(jì)方案講解思路
- 膀胱壓力監(jiān)測(cè)新課件
- 建筑垃圾消納處置方案(3篇)
- SMETA確保員工合法工作權(quán)的核查程序-SEDEX驗(yàn)廠專用文件
評(píng)論
0/150
提交評(píng)論