資料庫原理及應用課程設計
一、課程設計的目的
《資料庫原理及應用》課程設計是計算機科學與技術專業集中實踐性環節之一,是學習完《資料庫原理及應用》課程後進行的一次全面的綜合練習。本課程設計主要在於加深學生對資料庫基礎理論和基本知識的理解,掌握資料庫應用系統設計開發的基本方法,達到進一步使學生綜合運用所學知識和增強實際動手能力的目的。
二、課程設計的任務與要求
要求學生根據自身對題目的理解情況,從給定的設計題目中選擇一個,以MS SQL Server作為後台資料庫平台,以PowerBuilder作為前台開發工具,完成一個小型資料庫應用系統的系統的分析、設計和開發。
三、課程設計說明書
倉儲管理系統
對於一個以生產或經營產品為主要業務的單位來說,倉庫管理系統至關重要。高效方便的倉庫管理系統,可以為生產經營提供堅強的後盾和有力的支持。效率低下甚至是混亂不堪的倉庫管理系統,無疑會成為企業健康發展的拖累甚至是枷鎖。使企業發展動力不足。本次資料庫設計實現了倉庫管理的高效化、電子化。通過本系統可以方便地實現倉庫管理中的貨物登記、出庫入庫等操作,使倉庫管理井井有條。
1系統需求分析
1.1系統功能需求分析
倉庫管理系統主要實現對庫存商品的管理,對商品出庫、入庫的管理,和對倉庫管理系統維護的功能。具體要實現的功能包括:
1)庫存商品管理
查看資料庫中商品的名稱、編號、單價等信息。
2)商品出庫、入庫管理
入庫、出庫單紀錄本次入庫、出庫的貨物名稱、數量,入庫、出庫的時間、商品單價以及總價,入庫、出庫的經手人等。
3)商品的查詢
輸入商品的編號或者商品的名稱查詢信息
4)用戶管理
用戶可以修改登錄密碼
1. 2數據需求分析
1.員工(ID ,姓名,密碼,許可權)
2.商品(商品名,商品編號,所屬類,單價)
3.出貨表(商品名,商品編號,數量,總價,經手人)
4.入貨表(商品名,商品編號,數量,總價,經手人)
5.查詢(商品名,商品編號,數量,單價)
根據上面的關系我們需要的數據基本上就上面所列出的數據。
2 系統總體設計
1)庫存商品管理
查看資料庫中商品的名稱、編號、單價等信息。
2)商品出庫、入庫管理
入庫、出庫單紀錄本次入庫、出庫的貨物名稱、數量,入庫、出庫的時間、商品單價以及總價,入庫、出庫的經手人等。
3)商品的查詢
輸入商品的編號或者商品的名稱查詢信息
4)用戶管理
用戶可以修改登錄密碼
2.1系統總體結構設計
2.2.1 E-R圖
2.2.2 關系模式
1.員工(ID ,姓名,密碼,許可權)
2.商品(商品名,商品編號,所屬類,單價)
3.出貨表(商品名,商品編號,數量,總價,經手人)
4.入貨表(商品名,商品編號,數量,總價,經手人)
5.查詢(商品名,商品編號,數量,單價)
2.2.3 數據表
「員工信息表」「商品信息表」「出貨單」「進貨單」的主鍵分別是:ID、商品編號、商品編號、商品編號。
員工信息表
商品信息表
出貨單
進貨單
3.系統實施
工作界面PB9.0,以下是我製作過程和運行中的一些截圖:
首先建立PB與SQL的數據鏈接:如果鏈接不成功,返回對以話框「資料庫連接錯誤,經檢查後再試!」
然後點Preview選項會彈出如下窗口:
一、 工作界面截圖:
分別建有:workspace、application、windows、dw_、da_等。
工作時檢測連接資料庫是否正常的程序代碼:
// Profile q
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=倉庫;UID=;PWD='"
connect;
open(w_enter)
二、 運行結果的截圖:
這個是我運行後的第一個用戶界面,在界面中輸入管理員ID和密碼。我的管理員ID 和密碼分別為 1,123.點擊確定進入menu下一界面。
若ID和密碼分別輸入1,1234,則跳出以下界面:
確定按鈕所對應的代碼如下:
//定義兩個變數
string password,userid
password=sle_2.text
//檢索用戶名和密碼記錄
SELECT "員工信息表". "ID",
"員工信息表"."密碼"
INTO :userid,
:password
FROM "員工信息表"
WHERE "員工信息表"."ID" =:sle_1.text and "員工信息表"."密碼" =:sle_2.text;
//判斷用戶輸入的用戶名是否正確
if sqlca.sqlcode<>0 then
messagebox("錯誤!","ID或密碼錯誤,請重新輸入!",exclamation!,ok!,2)
else
messagebox("通過驗證!","ID和密碼正確,歡迎您使用本系統!",Information!,ok!,2)
open(w_main)
close(w_enter)
end if
取消按鈕所對應的代碼如下:
close(parent)
//關閉登錄窗口
三、 menu界面的截圖:
在本界面中我們通過點擊菜單欄上的不同管理按鈕來實現管理和操作的功能。
進貨—進貨單
出貨—出貨單
庫存—蔬菜類
—水產類
—肉類
系統維護—修改密碼
查詢
四、 進貨的截圖如下:
在本界面中,操作員可以輸入進貨信息
五、 進貨的截圖如下:
在本界面中,操作員可以輸入出貨信息
六、本界面是實現用戶更改自己的密碼的界面
用戶在登陸後根據上面的提示可以更改自己的密碼。
程序代碼如下:
string oldid
string oldp
string newp1
string newp2
oldid=trim(sle_1.text)
oldp=trim(sle_2.text)
newp1=trim(sle_3.text)
newp2=trim(sle_4.text)
if len(oldp)=0 or isnull(oldp) then
oldp=space(10)
end if
if len(newp1)=0 or isnull(newp1) then
newp1=space(10)
end if
if len(newp2)=0 or isnull(newp2) then
newp2=space(10)
end if
select "operator"."password"
into :oldp
from "operator"
where "operator"."password"=:oldp;
if sqlca.sqlcode<>0 then
messagebox("提示","原密碼不正確!")
sle_2.text=""
sle_2.setfocus()
return
end if
if newp1<>newp2 then
messagebox("提示","兩次新密碼輸入不同!")
sle_4.text=""
sle_4.setfocus()
return
end if
Update "operator"
set "password"=:newp1
where "operator"."operator_id"=:oldid;
if sqlca.sqlcode<>0 then
rollback;
messagebox("提示","密碼更正錯誤! 請重設!")
return
end if
gs_password=newp1
commit;
messagebox("提示","密碼修改成功!")
七、本操作可以看倉庫里的商品並可對其進行插入和刪除
八、從倉庫查詢所需要的商品
4 系統評價
系統的功能基本上已經實現,但是還是不夠完善。但是在使用的時候還是能給用戶帶來一定的方便的。倉庫的進貨和出貨在本系統中能直觀的以表格形式反映出來,便於操作員的使用和決策者的管理。
4.1 系統特色
本系統要求用戶進行驗證之後才能進入相應的界面。有利於保護資料庫的安全,不被非法登陸使用。對於倉庫內貨物的進出管理要求嚴格,即進出貨時必須填寫相應的進出貨單據。便於企業管理查看賬目,保障了企業的穩定運行。通過本系統可以方便地實現倉庫管理中的貨物登記、出庫入庫等操作,使倉庫管理井井有條。在查看資料庫時可以方便的刪除資料庫中冗餘的信息和添加新的信息。
4.2 系統不足及改進
這個系統基本上實現了一些簡單的對系統所涉及表的更新、增加和刪除的功能。也實現對用戶登陸的安全上有了一定的限制,只有在正確輸入ID和密碼的時候才能進入系統。遠沒有達到大型公司的倉儲物資管理的要求,所創建的資料庫框架比較簡單,各表之間的聯系也過於簡單,沒有添加外鍵相互約束,用POWER BUILDER做出來的系統過於簡單、單調,需要進一步深入的調整優化,將各表之間的關系緊密聯系起來,相互制約,保證資料庫中數據的添加、刪除、更新,安全有序。操作窗口還需要進一步的進行美化,使用戶在使用中更賞心悅目。
5 課程設計心得
這次課程設計的主要目的是掌握資料庫應用系統分析設計的基本方法,基本掌握PowerBuilder,進一步提高分析解決問題的綜合能力。通過這次課程設計,我基本掌握了以上要求。但只有兩周的課程設計時間,時間比較倉促,所以開發的系統不是很完善,有一些功能未實現,但是倉庫管理的基本功能均已實現。以前對資料庫的很多知識認識都不深刻,做過這次課程設計之後,我對資料庫的知識有了一個比較系統的了解;比如:對表內一些欄位的約束,關系等的運用已經比較熟練。這個課程設計使我鞏固了資料庫的知識。
對於PowerBuilder也有了一定的了解,由於用的不多,所以運用的不是很熟練。剛開始的時候,對於PowerBuilder的語法,用法等一系列知識都不熟悉。當我基本完成此系統開發的時候,我發現其實也沒有那麼難,在未做之前我還害怕做不出來。經過對這個系統的開發,在開發過程中遇到但也解決了很多問題,所以說我們不能懼怕有困難而不去接觸認識它,我們要知難而上,只有這樣我們才能成長,才能有所發展。
這認為最難的一部分是用戶查看資料庫時通過插入刪除按鈕對資料庫的更改,因為我們在文本框中輸入的數字是被默認為字元型的,我在其中使用了integer(string)這個函數把字元型的進行了轉換,但是在使用的過程中並不能像我所想像的那樣有用。因為時間有限,所以這個問題還沒有完全的解決。
通過這次資料庫課程設計加深我對資料庫基礎理論和基本知識的理解,掌握資料庫應用系統設計開發的基本方法,達到進一步使我綜合運用所學知識和增強實際動手能力的目的。
我會繼續學習資料庫的知識,學習PowerBuilder的知識,只有通過不斷的學習充實自己,才能讓自己有所得。只有了知識的積淀,才能為自己的發展鋪平道路!
可以參考一下啊,最終還是要自己做的吧。。僅供參考。
Ⅱ 如何在UG系統中建立用戶自定義刀具庫
1、進入加工界面,點擊最上方的創建刀具命令。
Ⅲ 如何把別人的UG文件里的刀具庫,輸入到自己的刀具庫里
一、創建刀具幾何結構參數資料庫
在實際加工應用中,需要對一個工件或多個工件編制加工工藝及程序時,都有可能用到多種
規格、不同類型的加工刀具。如果我們在編製程序時,每次都要重新創建並設置這些刀具參
數,包括刀具的幾何結構、材料等,效率必將大大下降,而且所完成的也只是些簡單的重復
勞動。
在UG系統的 CAM模塊中,我們可以通過在Create Tool對話框中選擇 Retrieve Tool按鈕,直
接調用UG刀具庫中定義的30多種不同類型的刀具,如圖1和圖2所示。但UG庫中的刀具多數並
不是我們需要的規格尺寸的刀具,因此我們希望可以一次性地定義好需要的刀具幾何結構參
數,在以後的操作中能夠像調用UG庫中刀具一樣,直接使用。
在UGⅡ系統中,刀具幾何結構參數庫主要存放在 ${UGⅡ_BASE_DIR}\Mach\resource\
library\tool\ 目錄下,主要由以下幾個文件構成:ASCⅡ子目錄下Dbc_tool_ ascⅡ.def、
Dbc_tool_ascⅡ.tcl和English或Metric 子目錄下的Dool_ database.dat。 文件
Dbc_tool_ascⅡ.def 定義了刀具庫必要的刀具幾何結構參數變數及庫的類型層次結構;文件
Dbc_tool_ascⅡ.tcl則包含了各個刀具庫操作事件處理器,它們主要用於UG與刀具庫的連接
。在文件Tool_database.dat中存放的就是我們最關心的東西,所有的刀具幾何結構參數和材
料信息都在其中。
用戶定義新的刀具,可以直接修改Tool_database.dat文件中的刀具記錄。另外,也可以在
UG中先定義好刀具的幾何結構參數,然後通過執行Shop Documentation,選擇最後一個輸出
模板Export Tool Library to ASCⅡ datafile,把刀具參數輸出到一個文件。接下來,需要
做的工作就是把輸出到這個文件中的刀具記錄添加到Tool_database.dat文件中。
至此,應該說,基本可以達到最初的目的了。但在實際使用中,隨著自定義的刀具不斷增多
,用戶自己也不清楚到底定義了多少、定義了哪些種類的刀具,從庫里調用刀具時,更需要
搞清楚要調用的刀具究竟屬於UG刀具庫中哪個類型的刀具,如圖2所示。通過深入研究,發現
在Dbc_tool_ascⅡ.def文件中對刀具庫的類型層次結構定義時,UGⅡ系統用CLASS MILLING、
CLASS DRILLING和CLASS TURNING定義了刀具庫的三個主類,在這三個主類下又定義了30多個
子類。在Tool_database.dat文件中的每條刀具記錄,都以DATA開頭,都包含有T和ST數據,
實際上它們就是此條記錄定義的刀具主類TYPE和子類SubType信息。
在向文件Dbc_tool_ascⅡ.def中加入主類代碼時,注意前後「{}」的位置,並跟系統定義的
CLASS MILLING、CLASS DRILLING和CLASS TURNING主類結構保持平行,嵌入在CALSS TOOL的
定義中。其中定義的主類類型值不能重復。在每個主類下,可以根據主類自行定義相關的子
類,即用SubType 代替 QUERY "[DB(Type)] = = [01]"中的 Type,並且類型代碼值也可以重
新排序。
完成了刀具庫自定義類型層次結構的定義,需要從庫中檢索刀具,還得修改刀具幾何結構參
數資料庫(Tool_database.dat)中的刀具記錄,即修改記錄中的T和ST對應的值,則該條記
錄進入相應的主類和子類檢索,得到如圖4所示檢索結果。要建立一個完整的刀具幾何結構參
數庫,類型層次結構定義是基礎,後續要做的就是不斷地把相應的刀具記錄添加到資料庫文
件Tool_database.dat中,形成用戶自定義的刀具庫。
二、創建自定義刀具材料庫、零件材料庫以及刀具切削參數庫
通過以上工作所建立的刀具庫,筆者稱為刀具幾何結構參數庫,它主要由刀具的幾何結構數
據組成。對於編程人員來說,創建一個Operation,生成可以使用的刀位程序,還需要設置刀
具的相關切削用量參數,包括主軸轉速、切削深度、進給速度等。在UG系統的CAM模塊中,執
行Feeds and Speeds對話框中的Reset from Table,系統可以根據切削深度、刀具材料、零
件材料及切削方法,自動從庫中調用並計算出相應的切削用量值。
除切削深度需要手動設定外,用戶從相應的庫中可以直接調用不同的切削方法、零件材料和
刀具材料。其中刀具材料,我們也可以在創建刀具時從刀具幾何結構參數庫中直接得到,關
鍵是在建立刀具幾何結構參數庫時,刀具記錄中包含了正確刀具材料信息MATREF,即引用刀
具材料庫的某一材料參考信息。在UG系統中,切削方法、零件材料、刀具材料都以庫參考值
存在,分別對應於CUT_METHODS. DAT、PART_MATERIALS.DAT、TOOL_MATERIALS.DAT文件中的
LIBRF值。系統執行Reset from Table,根據各庫參考值和切削深度,在切削參數庫
FEEDS_SPEEDS.DAT文件中進行檢索,引用被檢索出記錄的數據,如Surface Speed、
Feed_per_Tooth等的值,進而計算出相應的主軸轉速、進給速度等。
因此,在建立刀具材料庫、零件材料庫時,應系統規劃,統一標准,避免混亂,而建庫本身
就比較簡單了,可以參照UGⅡ系統相應的庫,增加或修改以DATA開頭的記錄。建立刀具切削
參數庫的工作就要煩瑣得多。一般來說,在實際加工中,要根據不同刀具材料、零件材料,
以及不同的切深和切寬,選擇不同的刀具切削用量。一個成熟的工藝技術人員,可根據長期
積累的經驗,並參照刀具商提供的參數,結合加工實際狀況,選擇合適的切削用量,也可以
反過來根據實際加工情況,修正經驗值,完成經驗的不斷積累。創建自定義刀具切削參數庫
,就是把用戶的經驗積累起來,並予以數值化提供給其他技術人員。
三、創建刀具幾何圖形庫
談到建立刀具庫,不能不涉及到刀具幾何圖形庫的使用。創建刀具幾何圖形庫,主要目的就
是在最新的Unigraphics NX2.0 系統中進行刀位機床模擬時,可以調用用戶構建的刀具計算
機三維幾何模型,如圖6所示。沒有用戶自定義的刀具幾何圖形庫,或者調用UG系統自帶的刀
具模型,顯然達不到機床模擬的目的。
系統刀具幾何圖形庫,由${UGⅡ_BASE_DIR}\Mach\resource\ library\tool\graphics 目錄
下一系列刀具的實體模型文件構成,包含用於顯示刀具裝配的信息。構建用戶自定義的刀具
裝配模型,推薦在非主模型文件中,將用戶自定義刀具、刀柄及相關部件進行裝配。對於鑽
削或銑削的刀具,在模型裝配時,刀具軸應與X軸正方向一致,坐標系零點在刀柄夾持點(
Tool Tracking Point)。另外,構建的刀具非主模型文件名應與刀具幾何結構參數庫
tool_database.dat文件中DATA記錄的LIBRF值相同。這樣,按照以上原則,系統進行刀位機
床模擬或需要顯示刀具時,才能夠按照刀具的庫參考值,調出刀具裝配模型,並以系統預設
方向和位置顯示出用戶自定義的刀具模型。
四、在創建自定義刀具庫過程中需要注意的幾個問題
(1)建立刀具庫時,在dbc_tool_ascⅡ.def文件中定義刀具主類或子類時,UI_NAME 後面可以
採用中文字串。另外,庫中所有記錄的刀具描述、材料描述都可以採用中文字串。但目前不
建議刀具庫記錄中的LIBRF值採用中文。
(2)建立刀具幾何結構參數庫、刀具材料庫、零件材料庫及切削參數庫過程中,應保持每個庫
中的LIBRF值的唯一性,原因在於它是作為系統其他庫引用和系統內部識別的標識。
(3)調用刀具庫創建刀具時,為增加檢索查詢項目,可以在dbc_tool_ascⅡ.def文件內,相應
刀具主類或子類定義的「DIALOG libref Diameter」行中,加入需要增加的刀具查詢參數。
當然,要提高CAD/CAM系統效率,以及工藝製造技術人員的快速反應能力,本文所涉及到的僅
僅是系統里很小的一個環節。更多的工作還需要技術人員不懈的努力,腳踏實地地收集和積
累製造系統中的各個基礎數據,結合現代新技術不斷完善和健全,從而提高系統整體的協作
水平和工作效率