商品材料分類庫存管理系統(tǒng)設計報告_第1頁
商品材料分類庫存管理系統(tǒng)設計報告_第2頁
商品材料分類庫存管理系統(tǒng)設計報告_第3頁
商品材料分類庫存管理系統(tǒng)設計報告_第4頁
商品材料分類庫存管理系統(tǒng)設計報告_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、PAGE PAGE IXX大學財務管理信息系統(tǒng)課程設計 商品材料分類庫存管理系統(tǒng)系統(tǒng)設計報告/說明書學院:年級:2009級專業(yè):學號:姓名:提交日期:目錄 TOC o 2-2 h z t 標題 1,1,標題 3,3 HYPERLINK l _Toc151531578 1引言 PAGEREF _Toc151531578 h 1 HYPERLINK l _Toc151531579 1.1編寫目的 PAGEREF _Toc151531579 h 1 HYPERLINK l _Toc151531580 1.2項目背景 PAGEREF _Toc151531580 h 1 HYPERLINK l _Toc

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

24、序名,其余為參數(shù)。system啟動一個進程運行程序并等待其結(jié)束,程序結(jié)束后錯誤代碼左移八位成為返回值。例子proglist = (echo, hello,world!);system(proglist);結(jié)果輸出hello, world!函數(shù)名fork調(diào)用語法procid = fork();解說創(chuàng)建程序的兩個拷貝-父進程和子進程-同時運行。子進程返回零,父進程返回非零值,此值為子程序的進程ID號。例子$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é)果輸出無函數(shù)名pipe調(diào)用語法pipe (infile, outfile);解說與fork合用,給父進程和子進程提供通信的方式。送到outfile文件變量的信息可以通過infile文件變量讀取。步驟:1、調(diào)用pipe2、用fork將程序分成父進程和子進程3、一個進程關掉infile,另一個關掉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)用語法exec (list);解說與system類似,區(qū)別是啟動新進程前結(jié)束當前程序。常與fork合用,當fork分成兩個進程后,子進程用exec啟動

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

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

29、例子結(jié)果輸出3、進程控制函數(shù)函數(shù)名sleep調(diào)用語法sleep (time);解說將程序暫停一段時間。time是停止的秒數(shù)。返回值為實際停止的秒數(shù)。例子sleep (5);結(jié)果輸出無函數(shù)名wait調(diào)用語法procid = wait();解說暫停程序執(zhí)行,等待子進程終止。不需要參數(shù),返回值為子進程ID,如果沒有子進程,返回-1。例子結(jié)果輸出函數(shù)名waitpid調(diào)用語法waitpid (procid, waitflag);解說暫停程序執(zhí)行,等待特定的子進程終止。procid為等待的進程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)用語法subinfo = caller();解說返回調(diào)用者的程序名和行號,用于Perl Debugger。返回值為三元素的列表:1、調(diào)用處的包

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

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

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

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

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

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

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

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

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

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

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

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

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

44、個字節(jié)看作無符號長整數(shù)進行轉(zhuǎn)化。下面看一個對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); 當將pack和unpack用于uuencode時,要記住,雖然它們與UNIX中的uuencode、uudecode工具算法相同,但并不提供首行和末行,如果想用uudecode對由pack的輸出創(chuàng)建的文件進行解碼,必須也把首行和末行輸出(詳見UNIX中uuencode幫助)。函數(shù)名vec調(diào)用語法retval = vec (vector, index, bits);解說顧名思義,vec即矢量(vector)函數(shù),它把簡單變量vector的值看作多塊(維)數(shù)據(jù),每塊含一定數(shù)目的位,合起來即一個矢量數(shù)據(jù)。每次的調(diào)用訪問其中一塊數(shù)據(jù),可以讀取

46、,也可以寫入。參數(shù)index就象數(shù)組下標一樣,提出訪問哪一塊,0為第一塊,依次類推,要注意的是訪問次序是從右到左的,即第一塊在最右邊。參數(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)用語法retval = defined (expr);解說判斷一個變量、數(shù)組或數(shù)組的一個元素是否已經(jīng)被賦值。expr為變量名、數(shù)組名或一個數(shù)組元素。如果已定義,返

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

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

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論