- 相關(guān)推薦
UNIX環(huán)境下非圖形終端上的通用下拉彈出式菜單工具
摘要 該文在AIX V3.2.5環(huán)境下,利用C語(yǔ)言的指針機(jī)制,開(kāi)發(fā)出了非圖形終端(HT-382)上通用下拉彈出式菜單工具。一、問(wèn)題的提出
隨著計(jì)算機(jī)在社會(huì)生產(chǎn)、生活各部門的廣泛應(yīng)用和高檔微機(jī)、小型機(jī)的不斷出臺(tái),高性能UNIX/XENIX多用戶、多任務(wù)操作系統(tǒng)正在逐步取代原有單用戶的DOS系統(tǒng)。這就迫切需要在新環(huán)境下開(kāi)發(fā)出大批功能齊全的應(yīng)用軟件工具,以取代DOS環(huán)境下的各種應(yīng)用軟件,從而滿足用戶新的要求。
以往的菜單工具雖各有其特點(diǎn),但均是在DOS環(huán)境下開(kāi)發(fā)的,都借助于Windows或TurboC強(qiáng)大的圖形處理庫(kù)函數(shù),有良好的開(kāi)發(fā)環(huán)境,而且一般的做法是,為每一個(gè)菜單編制一特定的程序,即:用戶菜單與程序具有一一對(duì)應(yīng)的關(guān)系,一旦菜單做出修改,對(duì)程序也必須做相應(yīng)的改動(dòng),從而導(dǎo)致編程工作量大,重復(fù)勞動(dòng)多,靈活性差等不足。能否在UNIX操作系統(tǒng)下的中西文終端上,脫離TurboC強(qiáng)大的函數(shù)庫(kù),開(kāi)發(fā)出一個(gè)獨(dú)立于用戶菜單,對(duì)不同內(nèi)容與結(jié)構(gòu)的若干個(gè)用戶菜單實(shí)現(xiàn)管理的應(yīng)用程序呢?
針對(duì)這個(gè)問(wèn)題,筆者經(jīng)過(guò)探索和實(shí)踐,以 AIX V3.2.5 為背景,利用C語(yǔ)言的指針機(jī)制,在非圖形終端(HT-382)上開(kāi)發(fā)出一通用的下拉彈出式菜單工具軟件。該程序和具體用戶菜單的聯(lián)接是通過(guò)相應(yīng)于菜單的描述文件(*.TXT)實(shí)現(xiàn)。*.TXT文件不僅描述了用戶菜單的內(nèi)容與結(jié)構(gòu),而且對(duì)其屏幕顯示屬性也做了相應(yīng)描述。
二、問(wèn)題分析
與具體的用戶菜單無(wú)關(guān)是該通用軟件的主要特征。通用性要求:
使程序相對(duì)于菜單而獨(dú)立,必須通過(guò)某種方式將一個(gè)菜單的信息傳遞給程序,而不同的菜單其內(nèi)容與功能選項(xiàng),以及各功能選項(xiàng)所包含的子菜單嵌套層數(shù)(以下簡(jiǎn)稱結(jié)構(gòu))都是不同的,這就要求程序必須能"動(dòng)態(tài)"地處理用戶菜單的內(nèi)容與結(jié)構(gòu)。
1.動(dòng)態(tài)處理菜單
程序要想"動(dòng)態(tài)"地處理不同的用戶菜單,則必須在程序中實(shí)現(xiàn)變量的"動(dòng)態(tài)定義",以便將數(shù)目不定的各功能選項(xiàng)進(jìn)行所需處理。C語(yǔ)言中變量定義的實(shí)質(zhì),是為了在編譯時(shí)能為其分配相應(yīng)的存儲(chǔ)單元。同時(shí),C語(yǔ)言又提供了指針機(jī)制,允許使用指針對(duì)內(nèi)存單元進(jìn)行操作。而且,C語(yǔ)言經(jīng)編譯后,取得并使用四個(gè)邏輯上不同、用于不同對(duì)象的內(nèi)存區(qū)域,分別是:棧、堆、全局變量區(qū)、程序代碼區(qū),其中"堆"是一個(gè)自由內(nèi)存區(qū)域,C語(yǔ)言可通過(guò)內(nèi)存分配函數(shù)(malloc()、calloc()),動(dòng)態(tài)地從中獲得所需空間。由指針指向被分配的內(nèi)存塊,使之可作為變量空間使用。當(dāng)該內(nèi)存空間無(wú)用時(shí),可利用內(nèi)存釋放函數(shù)free()釋放指針?biāo)赶虻膬?nèi)存塊。
而數(shù)據(jù)結(jié)構(gòu)中鏈表的特點(diǎn)是:邏輯上相鄰的元素在物理上不一定相鄰,數(shù)據(jù)元素之間的邏輯關(guān)系是由結(jié)點(diǎn)中的指針指示的,換句話說(shuō),指針為數(shù)據(jù)元素之間的邏輯關(guān)系的映像。它是一種動(dòng)態(tài)結(jié)構(gòu),鏈表所占用的空間不需預(yù)先分配,而是由系統(tǒng)應(yīng)需求即時(shí)生成。
2.用雙向循環(huán)鏈表實(shí)現(xiàn)菜單功能
下拉彈出式菜單系統(tǒng)系在頂端水平顯示包含各主功能選項(xiàng)的菜單條行,用戶可以利用$-→鍵或←鍵移動(dòng)并回車選擇所需的主功能選項(xiàng),而被選取的主功能選項(xiàng)將會(huì)顯示其相關(guān)的子功能選項(xiàng)在下拉的彈出式菜單框中。同級(jí)菜單的功能選項(xiàng)形成一閉合循環(huán),即:當(dāng)用戶利用↑(或↓)鍵移動(dòng)高亮度反白亮條至同級(jí)功能選項(xiàng)的頂(或底)部時(shí),再往上(或下)移動(dòng),則高亮度反白條將自動(dòng)返回底(或頂)部。子菜單可在該級(jí)任一功能選項(xiàng)上按"q"鍵返回其父菜單。為了實(shí)現(xiàn)這一功能,采用雙向式循環(huán)鏈表作為該軟件的基本數(shù)據(jù)結(jié)構(gòu)。將一個(gè)窗口下的菜單(僅
有一個(gè))作為一相對(duì)獨(dú)立的雙向循環(huán)鏈表,即:同一級(jí)的菜
[1] [2] [3] [4] [5]
【UNIX環(huán)境下非圖形終端上的通用下拉彈出式菜單工具】相關(guān)文章:
芻議語(yǔ)言與非語(yǔ)言交際工具05-02
GIS環(huán)境下城市平面圖形的自動(dòng)綜合問(wèn)題05-02
非平穩(wěn)環(huán)境下混沌信號(hào)的小波去噪方法05-02
區(qū)域非穩(wěn)定動(dòng)力學(xué)環(huán)境下的巖體松動(dòng)效應(yīng)04-29
網(wǎng)絡(luò)環(huán)境下非英語(yǔ)專業(yè)學(xué)生自主學(xué)習(xí)能力培養(yǎng)04-30
菜單04-30
站在云端上歌唱04-08
圖形負(fù)荷下的字音匹配加工05-01
英文簡(jiǎn)歷樣本(Unix)05-04