日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

在Unix系統(tǒng)下用shell制作通用界面

【在Unix系統(tǒng)下用shell制作通用界面】
目前在Unix系統(tǒng)下用shell編寫的菜單程序大都還是采用多級(jí)菜單的模式,這種模式的弊端在于菜單的層次多,界面本身不直觀,而且在編程過程中,將菜單的顯示格式和內(nèi)容以及所調(diào)用的子程序包括在菜單主程序中,使得程序只能滿足某個(gè)方面的需求,菜單程序本身不具備通用性 。本程序設(shè)計(jì)采用了一種新的設(shè)計(jì)思路,將下拉菜單界面作為二維表格來處理,把下拉菜單的內(nèi)容以及所調(diào)用的子程序名稱分別存放在這兩個(gè)二維表中,通過對(duì)表的讀取,實(shí)現(xiàn)了控制光標(biāo)移動(dòng)、選擇菜單內(nèi)容以及調(diào)用子程序的目的 。采用這種方式編寫出來的程序易于維護(hù),通用性強(qiáng) 。在程序本身不做任何改動(dòng)的情況下,可以在同一操作平臺(tái)中進(jìn)行任意移植,因而具有廣泛的應(yīng)用價(jià)值 。這種思維模式并不局限在Unix系統(tǒng)下的shell編程,而且對(duì)于像C這樣的過程化語言也具有一定的借鑒意義 。
設(shè)計(jì)思路
在下拉菜單制作過程中,整個(gè)下拉菜單界面所包含的菜單名稱以及所調(diào)用的子程序名之間的相互關(guān)系構(gòu)成了二維表,其中子菜單名稱和子程序名稱作為表的元素,通過選擇光標(biāo)在表中上下左右移動(dòng),將表中元素讀出來,再進(jìn)行處理運(yùn)算,從而達(dá)到控制菜單的選擇以及子程序調(diào)用等目的 。





表1 菜單項(xiàng)

菜單1
菜單2
菜單3
……
菜單n

菜單11
菜單12
菜單13
……
菜單1n

菜單21
菜單22
菜單23

菜單2n

菜單31
菜單32
菜單33

菜單3n

……





菜單m1
菜單m2
菜單m3

菜單mn





表2 對(duì)應(yīng)各菜單項(xiàng)的子程序

子程序11
子程序12
子程序13
……
子程序1n

子程序21
子程序22
子程序23

子程序2n

子程序31
子程序32
子程序33

子程序3n

……





子程序m1
子程序m2
子程序m3

子程序mn
從上面的兩個(gè)表中不難看出除表1中的第一行為標(biāo)題行(菜單欄),表1與表2有相同結(jié)構(gòu),兩個(gè)表之間的元素存在著一一對(duì)應(yīng)的關(guān)系,即每個(gè)菜單名稱下對(duì)應(yīng)著所調(diào)用的程序名(備注: 由于每個(gè)菜單標(biāo)題欄下的子菜單的內(nèi)容是不一樣的,因而每個(gè)子菜單下的菜單數(shù)目也各不相同,表中一些元素可以是空值,它表示在此沒有菜單選擇項(xiàng)) 。
文中介紹方法的技術(shù)難點(diǎn)在于選擇光標(biāo)位置與實(shí)際光標(biāo)位置的關(guān)系 。所謂選擇光標(biāo)位置是指在上下左右鍵的控制下,光標(biāo)在菜單界面的位置,也就是光標(biāo)在表中的行和列的位置 。而實(shí)際光標(biāo)位置是指光標(biāo)在計(jì)算機(jī)屏幕上的實(shí)際位置 。如何通過選擇光標(biāo)位置計(jì)算出實(shí)際光標(biāo)位置是本程序的一個(gè)難點(diǎn) 。本程序的處理辦法是將選擇光標(biāo)的行列位置分別作為計(jì)算函數(shù)的參數(shù),通過函數(shù)計(jì)算出實(shí)際光標(biāo)的位置 。
實(shí)現(xiàn)步驟
先將菜單的內(nèi)容按照一定的格式顯示在計(jì)算機(jī)屏幕上 。顯示格式要依據(jù)表的結(jié)構(gòu)與內(nèi)容而定,而不能固定不變 。如果事先固定下來,會(huì)使顯示格式與內(nèi)容之間產(chǎn)生矛盾,難以達(dá)到相互之間的統(tǒng)一,程序就不具備通用性 。
選擇光標(biāo)在菜單欄左右移動(dòng)確定選擇項(xiàng)目的同時(shí)將菜單欄下所包含的子菜單內(nèi)容顯示出來 。菜單欄最右端的菜單選擇項(xiàng)一般情況下表示“退出”,當(dāng)選擇光標(biāo)處于這個(gè)位置時(shí),回車后退出整個(gè)菜單的選擇 。
在菜單欄中回車或按↓鍵進(jìn)入菜單欄下一級(jí)子菜單,按照所顯示的子菜單內(nèi)容,選擇光標(biāo)上下移動(dòng)確定所選定的子菜單內(nèi)容,回車執(zhí)行所調(diào)用的子程序,←、→兩個(gè)鍵退出子菜單的選擇 。

推薦閱讀