商品材料分類(lèi)庫(kù)存管理系統(tǒng)設(shè)計(jì)報(bào)告_第1頁(yè)
商品材料分類(lèi)庫(kù)存管理系統(tǒng)設(shè)計(jì)報(bào)告_第2頁(yè)
商品材料分類(lèi)庫(kù)存管理系統(tǒng)設(shè)計(jì)報(bào)告_第3頁(yè)
商品材料分類(lèi)庫(kù)存管理系統(tǒng)設(shè)計(jì)報(bào)告_第4頁(yè)
商品材料分類(lèi)庫(kù)存管理系統(tǒng)設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、PAGE PAGE IXX大學(xué)財(cái)務(wù)管理信息系統(tǒng)課程設(shè)計(jì) 商品材料分類(lèi)庫(kù)存管理系統(tǒng)系統(tǒng)設(shè)計(jì)報(bào)告/說(shuō)明書(shū)學(xué)院:年級(jí):2009級(jí)專(zhuān)業(yè):學(xué)號(hào):姓名:提交日期:目錄 TOC o 2-2 h z t 標(biāo)題 1,1,標(biāo)題 3,3 HYPERLINK l _Toc151531578 1引言 PAGEREF _Toc151531578 h 1 HYPERLINK l _Toc151531579 1.1編寫(xiě)目的 PAGEREF _Toc151531579 h 1 HYPERLINK l _Toc151531580 1.2項(xiàng)目背景 PAGEREF _Toc151531580 h 1 HYPERLINK l _Toc

2、151531581 1.3開(kāi)發(fā)條件及約束 PAGEREF _Toc151531581 h 2 HYPERLINK l _Toc151531582 1.4術(shù)語(yǔ)定義 PAGEREF _Toc151531582 h 3 HYPERLINK l _Toc151531583 1.5參考資料 PAGEREF _Toc151531583 h 3 HYPERLINK l _Toc151531584 2系統(tǒng)總體技術(shù)方案 PAGEREF _Toc151531584 h 4 HYPERLINK l _Toc151531585 2.1模塊設(shè)計(jì) PAGEREF _Toc151531585 h 42.2輸入設(shè)計(jì) 82.3

3、輸出設(shè)計(jì) 92.4數(shù)據(jù)庫(kù)設(shè)計(jì) 92.5網(wǎng)絡(luò)設(shè)計(jì) 142.6安全保密設(shè)計(jì) 14 2.7實(shí)施方案說(shuō)明 15PAGE 17PAGE 291引言1.1編寫(xiě)目的軟件系統(tǒng)設(shè)計(jì)是把軟件需求變換成為軟件的具體設(shè)計(jì)方案,即模塊結(jié)構(gòu)的過(guò)程。一般分為總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)階段??傮w設(shè)計(jì)階段根據(jù)軟件需求分析所得到的數(shù)據(jù)流程或數(shù)據(jù)結(jié)構(gòu),使用結(jié)構(gòu)化設(shè)計(jì)技術(shù),導(dǎo)出軟件的模塊結(jié)構(gòu);詳細(xì)設(shè)計(jì)階段是給出軟件模塊的內(nèi)部過(guò)程描述,即模塊內(nèi)部的算法設(shè)計(jì)。該文檔直接給軟件開(kāi)發(fā)人員來(lái)看。本系統(tǒng)提供了更優(yōu)化的材料分類(lèi)及檢索方法,能夠快速查閱某種材料的屬性、成分及用途,在原檢索軟件的基礎(chǔ)上更進(jìn)一步,提高效率與精度。預(yù)期讀者為庫(kù)存管理人員、材料

4、采購(gòu)人員、生產(chǎn)管理人員等。1.2項(xiàng)目背景材料分類(lèi)及優(yōu)化檢索管理系統(tǒng)是一個(gè)企事業(yè)單位不可缺少的部分。隨著企業(yè)的規(guī)模不斷擴(kuò)大,材料的流通數(shù)量會(huì)大幅度增加,材料庫(kù)存量也會(huì)擴(kuò)大,庫(kù)存人員的工作量會(huì)很大,此時(shí)就需要材料分類(lèi)及優(yōu)化檢索管理系統(tǒng)來(lái)提高員工的效率。通過(guò)管理系統(tǒng),可以做到信息的規(guī)范管理,科學(xué)統(tǒng)計(jì)和快速查詢(xún),從而減少管理和檢索的工作量,更加方便快捷。材料種類(lèi)繁多,檢索復(fù)雜,對(duì)研究人員或企業(yè)來(lái)說(shuō)是一項(xiàng)繁瑣復(fù)雜的工作,在需要某種材料或材料特性時(shí),往往靠手工方式來(lái)處理,極大的浪費(fèi)了人力,故開(kāi)發(fā)一套適合材料分類(lèi)及優(yōu)化檢索管理的信息系統(tǒng)是非常具有現(xiàn)實(shí)意義的事情,提高工作效率,推動(dòng)社會(huì)生產(chǎn)力的發(fā)展。通過(guò)該系統(tǒng)

5、實(shí)現(xiàn)材料從種類(lèi)到到性能的一系列檢索,可以實(shí)現(xiàn)材料類(lèi)別的任意增加、修改、刪除等工作,實(shí)現(xiàn)對(duì)材料的錄入、輸出清單及材料信息的修改,以及據(jù)用戶(hù)或者管理員的條件設(shè)置和要求,列出材料的庫(kù)存清單。項(xiàng)目名稱(chēng):材料分類(lèi)及優(yōu)化檢索管理系統(tǒng);項(xiàng)目產(chǎn)品名稱(chēng):材料分類(lèi)及優(yōu)化檢索管理系統(tǒng);項(xiàng)目組織者:材料分類(lèi)及優(yōu)化檢索管理系統(tǒng)開(kāi)發(fā)小組;產(chǎn)品用戶(hù): 企事業(yè)單位和研發(fā)組織;產(chǎn)品設(shè)計(jì)者:材料分類(lèi)及優(yōu)化檢索管理系統(tǒng)開(kāi)發(fā)小組;產(chǎn)品生產(chǎn)者:材料分類(lèi)及優(yōu)化檢索管理系統(tǒng)開(kāi)發(fā)小組;產(chǎn)品所有權(quán):材料分類(lèi)及優(yōu)化檢索管理系統(tǒng)開(kāi)發(fā)小組擁有。1.3開(kāi)發(fā)條件及約束1.3.1開(kāi)發(fā)環(huán)境本文設(shè)計(jì)的分類(lèi)及優(yōu)化檢索系統(tǒng)主要采用數(shù)據(jù)庫(kù)技術(shù)和.NET技術(shù),數(shù)據(jù)庫(kù)

6、技術(shù)能夠?qū)崿F(xiàn)對(duì)數(shù)據(jù)的組織和管理,.NET技術(shù)可以開(kāi)發(fā)應(yīng)用軟件,實(shí)現(xiàn)數(shù)據(jù)庫(kù)和應(yīng)用軟件程序的共享。(1)編程環(huán)境的選擇.NET是運(yùn)行和生產(chǎn)下一代XMLWebServiCeS和應(yīng)用程序的WindowS的內(nèi)部組件,主要能夠?qū)崿F(xiàn)以下目標(biāo)功能:將版本控制和軟件部署沖突降低到最小化的一個(gè)代碼執(zhí)行環(huán)境提供給用戶(hù);為確保使用.NET開(kāi)發(fā)的代碼和其它代碼的統(tǒng)一融合,通常按照工業(yè)標(biāo)準(zhǔn)來(lái)生產(chǎn)全部的通信;提供給用戶(hù)一個(gè)能夠在面對(duì)不同類(lèi)型的應(yīng)用程序時(shí)執(zhí)行環(huán)境保持一致的應(yīng)用環(huán)境;提供給用戶(hù)的代碼執(zhí)行環(huán)境應(yīng)該能提高代碼執(zhí)行的安全性;提供給用戶(hù)的編程環(huán)境是一個(gè)統(tǒng)一的面向?qū)ο蟮沫h(huán)境,無(wú)論用戶(hù)將對(duì)象代碼在本地執(zhí)行還是存儲(chǔ)還是在本地

7、執(zhí)行但程序分布在互聯(lián)網(wǎng)上還是遠(yuǎn)程執(zhí)行;提供給用戶(hù)的代碼執(zhí)行環(huán)境應(yīng)該可消除解釋環(huán)境或者腳本環(huán)境等性能的問(wèn)題.NET類(lèi)庫(kù)和公共語(yǔ)言運(yùn)行庫(kù)是.NETFramework的兩個(gè)主要組件,其中公共語(yǔ)言運(yùn)行庫(kù)是.NET的基礎(chǔ)。是一個(gè)管理代碼的代理,提供線(xiàn)程管理、遠(yuǎn)程管理和內(nèi)存管理等核心服務(wù),還實(shí)施了更加嚴(yán)格的可提高程序安全性、類(lèi)型安全以及可靠性等代碼的正確性。運(yùn)行庫(kù)的基本原則是代碼管理的概念,托管代碼都是以運(yùn)行庫(kù)為目標(biāo)的代碼,而類(lèi)庫(kù)是一個(gè)面向?qū)ο蟮?,一個(gè)綜合性的可重用類(lèi)型集合,是.NET的一個(gè)主要組件,可以使用類(lèi)庫(kù)開(kāi)發(fā)包括圖形用戶(hù)界面或者包含傳統(tǒng)命令行的應(yīng)用程序,還能開(kāi)發(fā)最新創(chuàng)新的應(yīng)用程序。故而,實(shí)現(xiàn)本系統(tǒng)

8、,.NET是一個(gè)相對(duì)較好的選擇。(2)關(guān)系型數(shù)據(jù)庫(kù)的實(shí)現(xiàn)對(duì)于傳統(tǒng)數(shù)據(jù)庫(kù)存取數(shù)據(jù),在開(kāi)發(fā)時(shí),需要各廠(chǎng)商所提供的應(yīng)用程序來(lái)卡發(fā)其系統(tǒng)。如果要更換數(shù)據(jù)庫(kù),編程人員需重新熟悉另外一套應(yīng)用程序,造成編程人員的負(fù)擔(dān)。Microsoft Access是Microsoft公司推出的小型數(shù)據(jù)庫(kù)管理系統(tǒng),是目前廣為使用的數(shù)據(jù)庫(kù)系統(tǒng)之一。它具有保持?jǐn)?shù)據(jù)結(jié)構(gòu)單一型,易學(xué)易用,規(guī)模小,統(tǒng)一的語(yǔ)法結(jié)構(gòu)和多種使用方法等特點(diǎn),并且語(yǔ)言簡(jiǎn)潔,可以使設(shè)計(jì)的數(shù)據(jù)庫(kù)一目了然,同時(shí)還可以在一個(gè)數(shù)據(jù)包中同時(shí)擁有桌面數(shù)據(jù)庫(kù)的便利和關(guān)系數(shù)據(jù)庫(kù)的強(qiáng)大功能,是實(shí)現(xiàn)系統(tǒng)數(shù)據(jù)庫(kù)的較好選擇。(3)運(yùn)行環(huán)境軟件基本運(yùn)行環(huán)境為Windows環(huán)境,只要是P

9、C機(jī),配備Access數(shù)據(jù)庫(kù)系統(tǒng)就可以運(yùn)行。隨著后期系統(tǒng)的完善,逐步需要網(wǎng)絡(luò)環(huán)境的支持。1.3.2條件與限制為了評(píng)價(jià)設(shè)計(jì)階段的設(shè)計(jì)結(jié)果的“優(yōu)劣程度”,必須遵循以下幾個(gè)準(zhǔn)則:(1)軟件設(shè)計(jì)應(yīng)當(dāng)表現(xiàn)出層次結(jié)構(gòu),應(yīng)巧妙地利用各個(gè)軟件部件之間的控制關(guān)系。(2)設(shè)計(jì)應(yīng)當(dāng)是模塊化的,即該軟件應(yīng)當(dāng)從邏輯上被劃分成多個(gè)部件,分別實(shí)現(xiàn)各種特定功能和子功能。(3)設(shè)計(jì)最終應(yīng)當(dāng)給出具體的模塊(例如子程序或過(guò)程),這些模塊就具有獨(dú)立的功能特性。(4)應(yīng)當(dāng)應(yīng)用在軟件需求分析期間得到的信息,采取循環(huán)反復(fù)的方法來(lái)獲得設(shè)計(jì)結(jié)果。1.4術(shù)語(yǔ)定義人員維護(hù):可以注冊(cè)用戶(hù)、管理員可對(duì)用戶(hù)的信息進(jìn)行修改、刪除、查看會(huì)員的權(quán)限以及修改用

10、戶(hù)權(quán)限。材料類(lèi)別管理:可以實(shí)現(xiàn)材料類(lèi)別的任意增加、修改、刪除等工作。材料操作:實(shí)現(xiàn)對(duì)材料的錄入、輸出清單及材料信息的修改,以及生成清單、打印清單。材料維護(hù):管理員可以查看所有商品信息,對(duì)其進(jìn)行更新、刪除。1.5參考資料1.王曉東.計(jì)算機(jī)算法設(shè)計(jì)與分析電子工業(yè)出版社,2003年12月2.江義華.Java完美經(jīng)典中國(guó)鐵道出版社,2004年3月3.張海藩.軟件工程導(dǎo)論(第四版)清華大學(xué)出版社,2003年12月4.王克宏.JavaZ程序設(shè)計(jì)【M】清華大學(xué)出版社,2000年9月2系統(tǒng)總體技術(shù)方案 系統(tǒng)的總體任務(wù)是實(shí)現(xiàn)材料分類(lèi)檢索的系統(tǒng)化,規(guī)范化和自動(dòng)化。2.1模塊設(shè)計(jì)2.1.1系統(tǒng)功能概述人員維護(hù):可以

11、注冊(cè)用戶(hù)、管理員可對(duì)用戶(hù)的信息進(jìn)行修改、刪除、查看會(huì)員的權(quán)限以及修改用戶(hù)權(quán)限。材料類(lèi)別管理:可以實(shí)現(xiàn)材料類(lèi)別的任意增加、修改、刪除等工作。材料操作:實(shí)現(xiàn)對(duì)材料的錄入、輸出清單及材料信息的修改,以及生成清單、打印清單。材料維護(hù):管理員可以查看所有商品信息,對(duì)其進(jìn)行更新、刪除。2.1.2系統(tǒng)功能模塊圖本系統(tǒng)分人員維護(hù)、類(lèi)別維護(hù)、材料操作、材料維護(hù)四大模塊,這些模塊下還有子模塊,具體結(jié)構(gòu)如下圖所示: 功能模塊表2.1.3系統(tǒng)流程圖開(kāi)始用戶(hù)登錄 密碼多次錯(cuò)誤退出程序系統(tǒng)主界面材料類(lèi)別維護(hù)管理開(kāi)始用戶(hù)登錄 密碼多次錯(cuò)誤退出程序系統(tǒng)主界面材料類(lèi)別維護(hù)管理材料維護(hù)管理人員維護(hù)管理材料操作管理系統(tǒng)總體流程圖(

12、2)詳細(xì)流程圖材料類(lèi)別管理用如下圖:2)材料錄入管理用例如下圖3)材料輸出用例如下圖2.1.4后臺(tái)管理本系統(tǒng)的后臺(tái)管理功能用下表表示:2.2輸入設(shè)計(jì)輸入設(shè)計(jì)的目的是保證向系統(tǒng)輸入正確的數(shù)據(jù)。在此前提下,應(yīng)做到輸入方法簡(jiǎn)單,迅速,經(jīng)濟(jì),方便。所以,因該遵循最小量原則,也就是保證滿(mǎn)足處理要求的前提下,使輸入量最小,這樣出錯(cuò)幾率?。缓?jiǎn)單性原則,輸入的準(zhǔn)備,輸入的過(guò)程應(yīng)盡量容易,以減少錯(cuò)誤發(fā)生。早檢驗(yàn)原則,對(duì)數(shù)據(jù)的檢驗(yàn)盡量接近原數(shù)據(jù)發(fā)生點(diǎn),使錯(cuò)誤能及時(shí)得到改正;少轉(zhuǎn)換原則,輸入數(shù)據(jù)盡量用其處理所需形式記錄,以避免數(shù)據(jù)轉(zhuǎn)換介質(zhì)時(shí)發(fā)生錯(cuò)誤。本系統(tǒng)的輸入設(shè)計(jì)主要是采用人工錄入和及時(shí)校驗(yàn)的方式,同時(shí)提供數(shù)據(jù)導(dǎo)

13、入功能,通過(guò)提供各種信息的登錄界面,一方面可以簡(jiǎn)化輸入信息量,另一方面可以減少信息輸入錯(cuò)誤,關(guān)于信息校對(duì)可以采用以下方法進(jìn)行:重復(fù)校驗(yàn)(多次輸入,對(duì)輸入結(jié)果進(jìn)行匹配,比如,設(shè)置密碼),視覺(jué)校驗(yàn)(人工進(jìn)行)數(shù)據(jù)類(lèi)型校驗(yàn)(不匹配的或不存在的提示輸入錯(cuò)誤)界限校驗(yàn)(超過(guò)界限范圍的報(bào)錯(cuò))邏輯校驗(yàn)(如屬性上的輸入)2.3輸出設(shè)計(jì)輸出內(nèi)容主要是系統(tǒng)給出滿(mǎn)足用戶(hù)需求的處理結(jié)果,其中包括材料供給信息、材料庫(kù)存信息、材料結(jié)算信息等; 輸出設(shè)備,我們擬定采用標(biāo)準(zhǔn)輸出設(shè)備,即屏幕顯示,以及打印機(jī),后者主要是滿(mǎn)足用戶(hù)的離線(xiàn)信息處理需求,以文本形式體現(xiàn);輸出格式采用類(lèi)似報(bào)表的形式輸出,分表頭,表體和表尾。報(bào)表的輸出,可

14、以根據(jù)用戶(hù)的需求采用不同形式。對(duì)于單個(gè)用戶(hù)一次性使用的表格,因?yàn)闆](méi)有保留價(jià)值,可以在顯示終端上輸出。對(duì)于個(gè)用戶(hù)需要多次使用的表格,可打印輸出。需要長(zhǎng)期保留的輸出的報(bào)表,可采用磁盤(pán)文件形式輸出,以便保存。2.4數(shù)據(jù)庫(kù)設(shè)計(jì)本數(shù)據(jù)與其他數(shù)據(jù)管理系統(tǒng)相比具有如下基本特點(diǎn):2.4.1數(shù)據(jù)結(jié)構(gòu)化在文件系統(tǒng)中,獨(dú)立文件內(nèi)部的數(shù)據(jù)一般是有結(jié)構(gòu)的,但文件之間不存在聯(lián)系,因此從數(shù)據(jù)的整體來(lái)說(shuō)是沒(méi)有結(jié)構(gòu)的。數(shù)據(jù)庫(kù)系統(tǒng)雖然也常常分成許多獨(dú)立的數(shù)據(jù)文件,并且文件內(nèi)部也具有完整的數(shù)據(jù)結(jié)構(gòu),但是它更注意同一數(shù)據(jù)庫(kù)中各數(shù)據(jù)文件之間的相互聯(lián)系,特別適應(yīng)大量數(shù)據(jù)管理的客觀(guān)需要。2.4.2數(shù)據(jù)共享共享是數(shù)據(jù)庫(kù)系統(tǒng)的目的,也是它的重

15、要特點(diǎn)。一個(gè)數(shù)據(jù)庫(kù)中的數(shù)據(jù),不僅可以為同一企業(yè)或組織的內(nèi)部各部門(mén)共享,還可以為不同組織、地區(qū)甚至不同國(guó)家的用戶(hù)所共享。而在文件系統(tǒng)中,數(shù)據(jù)總是由特定用戶(hù)專(zhuān)用的。2.4.3數(shù)據(jù)獨(dú)立性在文件系統(tǒng)中,數(shù)據(jù)結(jié)構(gòu)和應(yīng)用程序是相互依賴(lài)的。任何一方的改變總是要影響另一方。在數(shù)據(jù)庫(kù)系統(tǒng)中,這種相互依賴(lài)性是很小的,數(shù)據(jù)和程序具有相對(duì)的獨(dú)立性。數(shù)據(jù)庫(kù)的建立獨(dú)立于程序,是通過(guò)模式來(lái)描述的。其結(jié)構(gòu)如下圖所示:從上圖可以看出,數(shù)據(jù)庫(kù)模式主要分為物理結(jié)構(gòu)和邏輯結(jié)構(gòu)兩個(gè)方面。描述物理結(jié)構(gòu)的稱(chēng)為物理數(shù)據(jù)庫(kù)描述,它直接與操作系統(tǒng)或硬件相聯(lián)系。一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)只有一個(gè)內(nèi)模式。描述邏輯結(jié)構(gòu)的稱(chēng)為模式,它是數(shù)據(jù)庫(kù)數(shù)據(jù)的完整表示,是所有

16、用戶(hù)的公共數(shù)據(jù)視圖。一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)只有一個(gè)模式,它總是以某一種數(shù)據(jù)模型為基礎(chǔ),統(tǒng)一考慮所有用戶(hù)的要求,并有機(jī)地綜合成一個(gè)邏輯整體。下圖表示了從現(xiàn)實(shí)世界到機(jī)器世界數(shù)據(jù)的轉(zhuǎn)換過(guò)程。2.4.4設(shè)計(jì)目標(biāo)制作一個(gè)簡(jiǎn)單的桌面數(shù)據(jù)庫(kù)系統(tǒng),不需要網(wǎng)絡(luò)的支持,實(shí)現(xiàn)材料信息的錄入、修改、分類(lèi)和檢索。2.4.5功能設(shè)計(jì)本系統(tǒng)主要實(shí)現(xiàn)材料分類(lèi)信息的管理,具體保括:人員維護(hù):可以注冊(cè)用戶(hù)、管理員可對(duì)用戶(hù)的信息進(jìn)行修改、刪除、查看會(huì)員的權(quán)限以及修改用戶(hù)權(quán)限。材料類(lèi)別管理:可以實(shí)現(xiàn)材料類(lèi)別的任意增加、修改、刪除等工作。材料操作:實(shí)現(xiàn)對(duì)材料的錄入、輸出清單及材料信息的修改,以及生成清單、打印清單。材料維護(hù):管理員可以查看所有

17、商品信息,對(duì)其進(jìn)行更新、刪除。此外要實(shí)現(xiàn)系統(tǒng)的集成化處理,利用切換面板管理器來(lái)實(shí)現(xiàn)。2.4.6需求性能規(guī)定由于本系統(tǒng)不涉及到網(wǎng)絡(luò)環(huán)境,數(shù)據(jù)量本身并不是很大,因此,在性能上本身并沒(méi)有太高的要求,只需要滿(mǎn)足基本的需求就可以了,具體如下: (1)數(shù)據(jù)精確度 由于采用數(shù)據(jù)庫(kù)技術(shù)并且用戶(hù)的應(yīng)用領(lǐng)域?qū)?shù)據(jù)精確度的要求不是太高,所以這點(diǎn)在系統(tǒng)中表現(xiàn)得比較少,但是用戶(hù)數(shù)據(jù)的安全性與正確性是完全保證的,所以對(duì)用戶(hù)的使用沒(méi)有多大的障礙。 (2)時(shí)間特性 本系統(tǒng)的數(shù)據(jù)庫(kù)較小,所以程序在響應(yīng)時(shí)間,數(shù)據(jù)更新處理時(shí)間上性能是比較突出的。而且也正由于數(shù)據(jù)量相對(duì)較少,故在數(shù)據(jù)傳輸時(shí)間和系統(tǒng)運(yùn)行時(shí)間上表現(xiàn)的較讓人滿(mǎn)意。 (3)

18、適應(yīng)性 該軟件是使用.NET在windows xp系統(tǒng)下完成的,所以只要是兼容windows的軟件或是操作系統(tǒng),該軟件都可以正確地運(yùn)行,有較好的適應(yīng)能力與兼容性。2.4.7運(yùn)行環(huán)境要求(設(shè)備、支撐軟件等) 本系統(tǒng)對(duì)運(yùn)行環(huán)境要求如下:數(shù)據(jù)庫(kù)系統(tǒng):Access操作系統(tǒng):Windows 內(nèi)存:128MCPU:P4硬盤(pán):20G2.4.8邏輯設(shè)計(jì)方案我們整個(gè)程序只需一個(gè)數(shù)據(jù)庫(kù)(db.dbf),庫(kù)中有多張物理表。本系統(tǒng)采用的數(shù)據(jù)庫(kù)為關(guān)系型數(shù)據(jù)庫(kù),故數(shù)據(jù)的組織和管理采用表格的形式,下面列出幾個(gè)重要的表格,表的設(shè)計(jì)結(jié)構(gòu)如下: 管理人員信息表 主鍵:管理員編號(hào)(Adminid 材料類(lèi)別信息表主鍵:類(lèi)別編號(hào)(lb

19、id) 材料信息表主鍵:材料編號(hào)(ProId)+所屬類(lèi)別(LBID),外鍵:類(lèi)別編號(hào)(LBID) 材料文檔管理主鍵:文檔編號(hào)(PrId) 材料入庫(kù)登記信息表主鍵:入庫(kù)編號(hào)(Inid),外鍵:管理員號(hào)(AdminId) 材料出庫(kù)信息表主鍵:出庫(kù)編號(hào)(Outid),外鍵:管理員號(hào)(Adminld) 庫(kù)存信息表主鍵:庫(kù)存編號(hào)(Stockld),外鍵:商品編號(hào)(ProId) 材料與供應(yīng)商關(guān)系表主鍵:材料編號(hào)(ProId)!供應(yīng)商編號(hào)(supId) 供應(yīng)商信息表主鍵:供應(yīng)商編號(hào):(ProId)2.4.9物理設(shè)計(jì)方案2.4.9物理設(shè)計(jì)方案整個(gè)系統(tǒng)的物理結(jié)構(gòu)具體由數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)設(shè)計(jì)與生成,比如數(shù)據(jù)表的創(chuàng)建

20、,程序模塊之間的關(guān)系等,故此處略。 2.5網(wǎng)絡(luò)設(shè)計(jì)網(wǎng)絡(luò)設(shè)計(jì)對(duì)于網(wǎng)絡(luò)環(huán)境下的管理信息系統(tǒng)非常重要,直接確定系統(tǒng)能否正常、高效運(yùn)行。但由于本系統(tǒng)主要是單機(jī)版,最終形成的是一個(gè)桌面數(shù)據(jù)庫(kù)系統(tǒng)。并且只是一個(gè)模擬系統(tǒng),不涉及到網(wǎng)絡(luò)環(huán)境,故此部分省略。2.6安全保密設(shè)計(jì)由于本系統(tǒng)是一個(gè)小型的模擬系統(tǒng),因此,主要通過(guò)密碼技術(shù)來(lái)確保系統(tǒng)的安全,系統(tǒng)的系統(tǒng)用戶(hù)管理保證了只有授權(quán)的用戶(hù)才能進(jìn)入系統(tǒng)進(jìn)行數(shù)據(jù)操作,而且對(duì)一些重要數(shù)據(jù),系統(tǒng)設(shè)置為只有更高權(quán)限的人員方可讀取或是操作。此外通過(guò)防火墻等安全技術(shù)來(lái)實(shí)現(xiàn)系統(tǒng)的安全保證。對(duì)于大型系統(tǒng)采取的安全措施相對(duì)要多很多,但目前基本上已經(jīng)有比較成熟的安全保障體系,在具體設(shè)計(jì)時(shí)

21、,只需要根據(jù)需要選擇相應(yīng)的模塊即可。2.7實(shí)施方案說(shuō)明【即實(shí)施計(jì)劃,說(shuō)明具體的實(shí)施安排,給出各項(xiàng)工作(包括文件編制、用戶(hù)培訓(xùn)等)的預(yù)定開(kāi)始日期和完成日期,規(guī)定各項(xiàng)工作完成的先后次序及工作完成的標(biāo)志,可以用或甘特圖表示。經(jīng)費(fèi)預(yù)算需要逐項(xiàng)列出本開(kāi)發(fā)項(xiàng)目實(shí)施需要的各項(xiàng)經(jīng)費(fèi)(包括辦公費(fèi)、差旅費(fèi)、機(jī)時(shí)費(fèi)、資料費(fèi)、設(shè)備租金等)】2.7.1實(shí)施計(jì)劃項(xiàng)目啟動(dòng)時(shí)間:2012-可行性研究報(bào)告(第周)項(xiàng)目開(kāi)發(fā)計(jì)劃系統(tǒng)分析報(bào)告/說(shuō)明書(shū):系統(tǒng)設(shè)計(jì)報(bào)告/說(shuō)明書(shū):整個(gè)過(guò)程中貫穿著數(shù)據(jù)庫(kù)的學(xué)習(xí)和整個(gè)實(shí)踐工作,開(kāi)始驗(yàn)收工作。完成的最后期限為:2.7.2各項(xiàng)任務(wù)的先后次序文檔類(lèi)的內(nèi)容按照2.7.1的順序依次操作并完成。實(shí)踐性質(zhì)的

22、內(nèi)容按照下面的順序依次來(lái)實(shí)現(xiàn),兩項(xiàng)工作并行進(jìn)行。(1)建立數(shù)據(jù)庫(kù)表,并輸入一定的數(shù)據(jù),完成標(biāo)志是形成一系列信息表(2)基于該表可以提供數(shù)據(jù)的更新功能,以及前一條,后一條,最前,最后功能,同時(shí)這些功能都要在表單的形式下進(jìn)行,提供預(yù)期的功能模塊,主要是通過(guò)窗體,宏和查詢(xún)來(lái)實(shí)現(xiàn),完成標(biāo)志是形成一系列窗體,宏和查詢(xún),同時(shí)通過(guò)宏將窗體和查詢(xún)聯(lián)系起來(lái),實(shí)現(xiàn)系統(tǒng)的自動(dòng)化處理。(3)提供報(bào)表與統(tǒng)計(jì)生成功能,完成標(biāo)志形成一系列報(bào)表。(4)做登錄界面(5)添加菜單(6)其他完善工作,比如聯(lián)調(diào)、使用說(shuō)明需要注意的是,各個(gè)小組要將自己的具體內(nèi)容放進(jìn)去。2.7.3開(kāi)發(fā)費(fèi)用預(yù)算由于本系統(tǒng)是模擬系統(tǒng),因此,此部分省略。此外

23、,需要審批實(shí)施方案,并將許審批意見(jiàn)及審批人員名單附于系統(tǒng)設(shè)計(jì)說(shuō)明書(shū)之后,批準(zhǔn)后,實(shí)施方案方可生效。雖然不是系統(tǒng)設(shè)計(jì)的內(nèi)容,但仍然要作 為一個(gè)附件將其附加在系統(tǒng)設(shè)計(jì)說(shuō)明書(shū)之后。附錄資料:不需要的可以自行刪除 perl函數(shù)應(yīng)用一、進(jìn)程處理函數(shù)1、進(jìn)程啟動(dòng)函數(shù)函數(shù)名eval調(diào)用語(yǔ)法eval(string)解說(shuō)將string看作Perl語(yǔ)句執(zhí)行。正確執(zhí)行后,系統(tǒng)變量$為空串,如果有錯(cuò)誤,$中為錯(cuò)誤信息。例子$print = print (hello,worldn);eval ($print);結(jié)果輸出hello, world函數(shù)名system調(diào)用語(yǔ)法system(list)解說(shuō)list中第一個(gè)元素為程

24、序名,其余為參數(shù)。system啟動(dòng)一個(gè)進(jìn)程運(yùn)行程序并等待其結(jié)束,程序結(jié)束后錯(cuò)誤代碼左移八位成為返回值。例子proglist = (echo, hello,world!);system(proglist);結(jié)果輸出hello, world!函數(shù)名fork調(diào)用語(yǔ)法procid = fork();解說(shuō)創(chuàng)建程序的兩個(gè)拷貝-父進(jìn)程和子進(jìn)程-同時(shí)運(yùn)行。子進(jìn)程返回零,父進(jìn)程返回非零值,此值為子程序的進(jìn)程ID號(hào)。例子$retval = fork();if ($retval = 0) # this is the child process exit; # this terminates the child pr

25、ocess else # this is the parent process結(jié)果輸出無(wú)函數(shù)名pipe調(diào)用語(yǔ)法pipe (infile, outfile);解說(shuō)與fork合用,給父進(jìn)程和子進(jìn)程提供通信的方式。送到outfile文件變量的信息可以通過(guò)infile文件變量讀取。步驟:1、調(diào)用pipe2、用fork將程序分成父進(jìn)程和子進(jìn)程3、一個(gè)進(jìn)程關(guān)掉infile,另一個(gè)關(guān)掉outfile例子pipe (INPUT, OUTPUT);$retval = fork();if ($retval != 0) # this is the parent process close (INPUT); prin

26、t (Enter a line of input:n); $line = ; print OUTPUT ($line); else # this is the child process close (OUTPUT); $line = ; print ($line); exit (0);結(jié)果輸出$programEnter a line of input:Here is a test lineHere is a test line$函數(shù)名exec調(diào)用語(yǔ)法exec (list);解說(shuō)與system類(lèi)似,區(qū)別是啟動(dòng)新進(jìn)程前結(jié)束當(dāng)前程序。常與fork合用,當(dāng)fork分成兩個(gè)進(jìn)程后,子進(jìn)程用exec啟動(dòng)

27、另一個(gè)程序。例子 結(jié)果輸出函數(shù)名syscall調(diào)用語(yǔ)法syscall (list);解說(shuō)調(diào)用系統(tǒng)函數(shù),list第一個(gè)元素是系統(tǒng)調(diào)用名,其余為參數(shù)。如果參數(shù)是數(shù)字,就轉(zhuǎn)化成C的整型數(shù)(type int)。否則傳遞字符串的指針。詳見(jiàn)UNIX的幫助或Perl文檔。使用syscall必須包含文件syscall.pl,即:require (syscall.ph); 例子結(jié)果輸出2、進(jìn)程終止函數(shù)函數(shù)名Die調(diào)用語(yǔ)法die (message);解說(shuō)終止程序并向STDERR輸出錯(cuò)誤信息。message可以為字符串或列表。如果最后一個(gè)參數(shù)不包含換行符,則程序文件名和行號(hào)也被輸出。例子die (Cannot op

28、en input file);結(jié)果輸出Cannot open input file at myprog line 6.函數(shù)名warn調(diào)用語(yǔ)法warn (message);解說(shuō)與die類(lèi)似,區(qū)別是不終止程序。例子warn(Danger! Danger!n);結(jié)果輸出Danger! Danger!函數(shù)名exit調(diào)用語(yǔ)法exit (retcode);解說(shuō)終止程序并指定返回值。例子exit(2);結(jié)果輸出無(wú)函數(shù)名kill調(diào)用語(yǔ)法kill (signal, proclist);解說(shuō)給一組進(jìn)程發(fā)送信號(hào)。signal是發(fā)送的數(shù)字信號(hào),9為殺掉進(jìn)程。proclist是進(jìn)程ID列表。詳見(jiàn)kill的UNIX幫助。

29、例子結(jié)果輸出3、進(jìn)程控制函數(shù)函數(shù)名sleep調(diào)用語(yǔ)法sleep (time);解說(shuō)將程序暫停一段時(shí)間。time是停止的秒數(shù)。返回值為實(shí)際停止的秒數(shù)。例子sleep (5);結(jié)果輸出無(wú)函數(shù)名wait調(diào)用語(yǔ)法procid = wait();解說(shuō)暫停程序執(zhí)行,等待子進(jìn)程終止。不需要參數(shù),返回值為子進(jìn)程ID,如果沒(méi)有子進(jìn)程,返回-1。例子結(jié)果輸出函數(shù)名waitpid調(diào)用語(yǔ)法waitpid (procid, waitflag);解說(shuō)暫停程序執(zhí)行,等待特定的子進(jìn)程終止。procid為等待的進(jìn)程ID例子$procid = fork();if ($procid = 0) # this is the child

30、 process print (this line is printed firstn); exit(0); else # this is the parent process waitpid ($procid, 0); print (this line is printed lastn);結(jié)果輸出$ programthis line is printed firstthis line is printed last$4、其它控制函數(shù)函數(shù)名caller調(diào)用語(yǔ)法subinfo = caller();解說(shuō)返回調(diào)用者的程序名和行號(hào),用于Perl Debugger。返回值為三元素的列表:1、調(diào)用處的包

31、名2、調(diào)用者文件名3、調(diào)用處的行號(hào)例子結(jié)果輸出函數(shù)名chroot調(diào)用語(yǔ)法chroot (dir);解說(shuō)改變程序的根目錄,詳見(jiàn)chroot幫助。例子結(jié)果輸出函數(shù)名local調(diào)用語(yǔ)法local($variable);解說(shuō)在語(yǔ)句塊(由大括號(hào)包圍的語(yǔ)句集合)中定義局域變量,僅在此語(yǔ)句塊中起作用,對(duì)其的改變不對(duì)塊外同名變量造成影響。千萬(wàn)不要在循環(huán)中使用,否則每次循環(huán)都定義一個(gè)新的局域變量!例子結(jié)果輸出函數(shù)名times調(diào)用語(yǔ)法timelist = times解說(shuō)返回該程序及所有子進(jìn)程消耗的工作時(shí)間。返回值為四個(gè)浮點(diǎn)數(shù)的列表:1、程序耗用的用戶(hù)時(shí)間2、程序耗用的系統(tǒng)時(shí)間3、子進(jìn)程耗用的用戶(hù)時(shí)間4、子進(jìn)程耗用

32、的系統(tǒng)時(shí)間例子結(jié)果輸出二、數(shù)學(xué)函數(shù)函數(shù)名sin調(diào)用語(yǔ)法retval = sin (value);解說(shuō)參數(shù)為弧度值。函數(shù)名cos調(diào)用語(yǔ)法retval = cos (value);解說(shuō)參數(shù)為弧度值。函數(shù)名atan2調(diào)用語(yǔ)法retval = atan2 (value1, value2);解說(shuō)運(yùn)算并返回value1除以value2結(jié)果的arctan值,單位為弧度,范圍在-PIPI。應(yīng)用例:角度轉(zhuǎn)化成弧度子程序。sub degrees_to_radians local ($degrees) = _; local ($radians);11: $radians = atan2(1,1) * $degree

33、s / 45;函數(shù)名sqrt調(diào)用語(yǔ)法retval = sqrt (value);解說(shuō)平方根函數(shù)。value為非負(fù)數(shù)。函數(shù)名exp調(diào)用語(yǔ)法retval = exp (value);解說(shuō)返回e的value次方。函數(shù)名log調(diào)用語(yǔ)法retval = log (value);解說(shuō)以e為底的自然對(duì)數(shù)。函數(shù)名abs調(diào)用語(yǔ)法retval = abs (value);解說(shuō)絕對(duì)值函數(shù)。(Perl 4中沒(méi)有)函數(shù)名rand調(diào)用語(yǔ)法retval = rand (num);解說(shuō)隨機(jī)數(shù)函數(shù),返回0和整數(shù)num之間的一個(gè)浮點(diǎn)數(shù)。函數(shù)名srand調(diào)用語(yǔ)法srand (value);解說(shuō)初始化隨機(jī)數(shù)生成器。保證每次調(diào)用ran

34、d真正隨機(jī)。三、字符串處理函數(shù)函數(shù)名index調(diào)用語(yǔ)法position = index (string, substring, position);解說(shuō)返回子串substring在字符串string中的位置,如果不存在則返回-1。參數(shù)position是可選項(xiàng),表示匹配之前跳過(guò)的字符數(shù),或者說(shuō)從該位置開(kāi)始匹配。函數(shù)名rindex調(diào)用語(yǔ)法position = rindex (string, substring, position);解說(shuō)與index類(lèi)似,區(qū)別是從右端匹配。函數(shù)名length調(diào)用語(yǔ)法num = length (string);解說(shuō)返回字符串長(zhǎng)度,或者說(shuō)含有字符的數(shù)目。函數(shù)名pos調(diào)用

35、語(yǔ)法offset = pos(string);解說(shuō)返回最后一次模式匹配的位置。函數(shù)名substr調(diào)用語(yǔ)法substr (expr, skipchars, length)解說(shuō)抽取字符串(或表達(dá)式生成的字符串)expr中的子串,跳過(guò)skipchars個(gè)字符,或者說(shuō)從位置skipchars開(kāi)始抽取子串(第一個(gè)字符位置為0),子串長(zhǎng)度為length,此參數(shù)可忽略,意味著取剩下的全部字符。當(dāng)此函數(shù)出現(xiàn)在等式左邊時(shí),expr必須為變量或數(shù)組元素,此時(shí)其中部分子串被等式右邊的值替換。函數(shù)名study調(diào)用語(yǔ)法study (scalar);解說(shuō)用一種內(nèi)部格式提高變量的訪(fǎng)問(wèn)速度,同一時(shí)刻只對(duì)一個(gè)變量起作用。函數(shù)名

36、lcuc調(diào)用語(yǔ)法retval = lc(string);retval = uc(string);解說(shuō)將字符串全部轉(zhuǎn)換成小/大寫(xiě)字母。函數(shù)名lcfirstucfirst調(diào)用語(yǔ)法retval = lcfirst(string);retval = ucfirst(string);解說(shuō)將第一個(gè)字母轉(zhuǎn)換成小/大寫(xiě)。函數(shù)名quotameta調(diào)用語(yǔ)法newstring = quotemeta(oldstring);解說(shuō)將非單詞的字母前面加上反斜線(xiàn)()。語(yǔ)句 : $string = quotemeta($string);等效于:$string = s/(W)/$1/g;常用于模式匹配操作中,確保字符串中沒(méi)有字

37、符被看作匹配操作符。函數(shù)名join調(diào)用語(yǔ)法join (joinstr, list);解說(shuō)把字符串列表(數(shù)組)組合成一個(gè)長(zhǎng)的字符串,在每?jī)蓚€(gè)列表元素間插入串joinstr。函數(shù)名sprintf調(diào)用語(yǔ)法sprintf (string, fields);解說(shuō)與printf類(lèi)似,區(qū)別是結(jié)果不輸出到文件,而作為返回值賦給變量。例子$num = 26;$outstr = sprintf(%d = %x hexadecimal or %o octaln,$num, $num, $num);print ($outstr);結(jié)果輸出26 = 1a hexadecimal or 32 octal四、標(biāo)量轉(zhuǎn)換函數(shù)函

38、數(shù)名chop調(diào)用語(yǔ)法$lastchar = chop (var);解說(shuō)var可為變量或數(shù)組,當(dāng)var為變量時(shí),最后一個(gè)字符被刪除并賦給$lastchar,當(dāng)var為數(shù)組/列表時(shí),所有元素的最后一個(gè)字符被刪除,最后一個(gè)元素的最后一個(gè)字母賦給$lastchar。函數(shù)名chomp調(diào)用語(yǔ)法result = chomp(var);解說(shuō)檢查字符串或字符串列表中元素的最后一個(gè)字符是否為由系統(tǒng)變量$/定義的行分隔符,如果是就刪除。返回值為實(shí)際刪除的字符個(gè)數(shù)。函數(shù)名crypt調(diào)用語(yǔ)法result = crypt (original, salt);解說(shuō)用DES算法加密字符串,original是將要加密的字符串,s

39、alt是兩個(gè)字符的字符串,定義如何改變DES算法,以使更難解碼。返回值為加密后的串。函數(shù)名hex調(diào)用語(yǔ)法decnum = hex (hexnum);解說(shuō)將十六進(jìn)制數(shù)(字符串形式)轉(zhuǎn)化為十進(jìn)制數(shù)。函數(shù)名int調(diào)用語(yǔ)法intnum = int (floatnum);解說(shuō)將浮點(diǎn)數(shù)舍去小數(shù)部分轉(zhuǎn)化為整型數(shù)。函數(shù)名oct調(diào)用語(yǔ)法decnum = oct (octnum);解說(shuō)將八進(jìn)制數(shù)(字符串形式)或十六進(jìn)制數(shù)(0 x.形式)轉(zhuǎn)化為十進(jìn)制數(shù)。函數(shù)名ord調(diào)用語(yǔ)法asciival = ord (char);解說(shuō)返回單個(gè)字符的ASCII值,與PASCAL中同名函數(shù)類(lèi)似。函數(shù)名chr調(diào)用語(yǔ)法$char = c

40、hr (asciival);解說(shuō)返回ASCII值的相應(yīng)字符,與PASCAL中同名函數(shù)類(lèi)似。函數(shù)名pack調(diào)用語(yǔ)法formatstr = pack(packformat, list);解說(shuō)把一個(gè)列表或數(shù)組以在實(shí)際機(jī)器存貯格式或C等編程語(yǔ)言使用的格式轉(zhuǎn)化(包裝)到一個(gè)簡(jiǎn)單變量中。參數(shù)packformat包含一個(gè)或多個(gè)格式字符,列表中每個(gè)元素對(duì)應(yīng)一個(gè),各格式字符間可用空格或tab隔開(kāi),因?yàn)閜ack忽略空格。除了格式a、A和外,重復(fù)使用一種格式多次可在其后加個(gè)整數(shù),如: $twoints = pack (i2, 103, 241);把同一格式應(yīng)用于所有的元素則加個(gè)*號(hào),如: $manyints = p

41、ack (i*, 14, 26, 11, 83);對(duì)于a和A而言,其后的整數(shù)表示要?jiǎng)?chuàng)建的字符串長(zhǎng)度,重復(fù)方法如下: $strings = pack (a6 x 2, test1, test2);格式的情況比較特殊,其后必須加個(gè)整數(shù),該數(shù)表示字符串必須的長(zhǎng)度,如果長(zhǎng)度不夠,則用空字符(null)補(bǔ)足,如: $output = pack (a 6 a, test, test2);pack函數(shù)最常見(jiàn)的用途是創(chuàng)建可與C程序交互的數(shù)據(jù),例如C語(yǔ)言中字符串均以空字符(null)結(jié)尾,創(chuàng)建這樣的數(shù)據(jù)可以這樣做: $Cstring = pack (ax, $mystring);下表是一些格式字符與C中數(shù)據(jù)類(lèi)型

42、的等價(jià)關(guān)系:字符 等價(jià)C數(shù)據(jù)類(lèi)型CcharddoubleffloatiintIunsigned int (or unsigned)llongLunsigned longsshortSunsigned short完整的格式字符見(jiàn)下表。 格式字符 描述a用空字符(null)補(bǔ)足的字符串A用空格補(bǔ)足的字符串b位串,低位在前B位串,高位在前c帶符號(hào)字符(通常-128127)C無(wú)符號(hào)字符(通常8位)d雙精度浮點(diǎn)數(shù)f單精度浮點(diǎn)數(shù)h十六進(jìn)制數(shù)串,低位在前H十六進(jìn)制數(shù)串,高位在前i帶符號(hào)整數(shù)I無(wú)符號(hào)整數(shù)l帶符號(hào)長(zhǎng)整數(shù)L無(wú)符號(hào)長(zhǎng)整數(shù)n網(wǎng)絡(luò)序短整數(shù)N網(wǎng)絡(luò)序長(zhǎng)整數(shù)p字符串指針s帶符號(hào)短整數(shù)S無(wú)符號(hào)短整數(shù)u轉(zhuǎn)化成uu

43、encode格式vVAX序短整數(shù)VVAX序長(zhǎng)整數(shù)x一個(gè)空字節(jié)X回退一個(gè)字節(jié)以空字節(jié)(null)填充函數(shù)名unpack調(diào)用語(yǔ)法list = unpack (packformat, formatstr);解說(shuō)unpack與pack功能相反,將以機(jī)器格式存貯的值轉(zhuǎn)化成Perl中值的列表。其格式字符與pack基本相同(即上表),不同的有:A格式將機(jī)器格式字符串轉(zhuǎn)化為Perl字符串并去掉尾部所有空格或空字符;x為跳過(guò)一個(gè)字節(jié);為跳過(guò)一些字節(jié)到指定的位置,如4為跳過(guò)4個(gè)字節(jié)。下面看一個(gè)和X合同的例子: $longrightint = unpack (* X4 L, $packstring);此語(yǔ)句將最后四

44、個(gè)字節(jié)看作無(wú)符號(hào)長(zhǎng)整數(shù)進(jìn)行轉(zhuǎn)化。下面看一個(gè)對(duì)uuencode文件解碼的例子:1 : #!/usr/local/bin/perl2 : 3 : open (CODEDFILE, /u/janedoe/codefile) |4 : die (Cant open input file);5 : open (OUTFILE, outfile) |6 : die (Cant open output file);7 : while ($line = ) 8 : $decoded = unpack(u, $line);9 : print OUTFILE ($decoded);10: 11: close (O

45、UTFILE);12: close (CODEDFILE); 當(dāng)將pack和unpack用于uuencode時(shí),要記住,雖然它們與UNIX中的uuencode、uudecode工具算法相同,但并不提供首行和末行,如果想用uudecode對(duì)由pack的輸出創(chuàng)建的文件進(jìn)行解碼,必須也把首行和末行輸出(詳見(jiàn)UNIX中uuencode幫助)。函數(shù)名vec調(diào)用語(yǔ)法retval = vec (vector, index, bits);解說(shuō)顧名思義,vec即矢量(vector)函數(shù),它把簡(jiǎn)單變量vector的值看作多塊(維)數(shù)據(jù),每塊含一定數(shù)目的位,合起來(lái)即一個(gè)矢量數(shù)據(jù)。每次的調(diào)用訪(fǎng)問(wèn)其中一塊數(shù)據(jù),可以讀取

46、,也可以寫(xiě)入。參數(shù)index就象數(shù)組下標(biāo)一樣,提出訪(fǎng)問(wèn)哪一塊,0為第一塊,依次類(lèi)推,要注意的是訪(fǎng)問(wèn)次序是從右到左的,即第一塊在最右邊。參數(shù)bits指定每塊中的位數(shù),可以為1,2,4,8,16或32。例子1 : #!/usr/local/bin/perl2 : 3 : $vector = pack (B*, 11010011);4 : $val1 = vec ($vector, 0, 4);5 : $val2 = vec ($vector, 1, 4);6 : print (high-to-low order values: $val1 and $val2n);7 : $vector = pac

47、k (b*, 11010011);8 : $val1 = vec ($vector, 0, 4);9 : $val2 = vec ($vector, 1, 4);10: print (low-to-high order values: $val1 and $val2n); 結(jié)果high-to-low order values: 3 and 13low-to-high order values: 11 and 12函數(shù)名defined調(diào)用語(yǔ)法retval = defined (expr);解說(shuō)判斷一個(gè)變量、數(shù)組或數(shù)組的一個(gè)元素是否已經(jīng)被賦值。expr為變量名、數(shù)組名或一個(gè)數(shù)組元素。如果已定義,返

48、回真,否則返回假。函數(shù)名undef調(diào)用語(yǔ)法retval = undef (expr);解說(shuō)取消變量、數(shù)組或數(shù)組元素甚至子程序的定義,回收其空間。返回值始終為未定義值,此值與空串等效。五、數(shù)組和列表函數(shù)函數(shù)名grep調(diào)用語(yǔ)法foundlist = grep (pattern, searchlist);解說(shuō)與同名的UNIX查找工具類(lèi)似,grep函數(shù)在列表中抽取與指定模式匹配的元素,參數(shù)pattern為欲查找的模式,返回值是匹配元素的列表。例子list = (This, is, a, test);foundlist = grep(/tT/, list);結(jié)果foundlist = (This, te

49、st);函數(shù)名splice調(diào)用語(yǔ)法retval = splice (array, slipelements, length, newlist);解說(shuō)拼接函數(shù)可以向列表(數(shù)組)中間插入元素、刪除子列表或替換子列表。參數(shù)skipelements是拼接前跳過(guò)的元素?cái)?shù)目,length是被替換的元素?cái)?shù),newlist是將要拼接進(jìn)來(lái)的列表。當(dāng)newlist的長(zhǎng)度大于length時(shí),后面的元素自動(dòng)后移,反之則向前縮進(jìn)。因此,當(dāng)length=0時(shí),就相當(dāng)于向列表中插入元素,而形如語(yǔ)句splice (array, -1, 0, Hello);則向數(shù)組末尾添加元素。而當(dāng)newlist為空時(shí)就相當(dāng)于刪除子列表,這時(shí),如果length為空,就從第skipelements個(gè)元素后全部刪除,而刪除最后一個(gè)元素則為:splice (array, -1);這種情況下,返回值為被刪去的元素列表。函數(shù)名shift調(diào)用語(yǔ)法element =

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論