公務員期刊網(wǎng) 精選范文 c語言開發(fā)范文

c語言開發(fā)精選(九篇)

前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的c語言開發(fā)主題范文,僅供參考,歡迎閱讀并收藏。

c語言開發(fā)

第1篇:c語言開發(fā)范文

關鍵詞:DSP;嵌入式系統(tǒng);C語言開發(fā)

中圖分類號:TP311文獻標識碼:A文章編號:1009-2374 (2010)12-0037-02

隨著信息處理技術的飛速發(fā)展,DSP在電子信息、通信、軟件無線電、自動控制、儀器儀表、信息家電等高科技領域獲得了越來越廣泛的應用。

以往開發(fā)DSP嵌入式產(chǎn)品時首先會想到用控制器的匯編語言編寫軟件,主要原因有:(1)控制器問世時,只配有相應的匯編語言開發(fā)工具,沒有相應的高級語言開發(fā)工具可供使用;(2)匯編語言生成的程序?qū)亩M制代碼少,執(zhí)行速度較快;(3)存儲器尋址空間和價格的限制。隨著技術的發(fā)展,上述問題已基本解決。而且用C語言開發(fā)DSP嵌入式系統(tǒng),具有開發(fā)周期段、可移植性好、調(diào)試和維護方便等優(yōu)點。目前在許多應用領域,大家已經(jīng)逐漸開始用C語言開發(fā)嵌入式產(chǎn)品。

現(xiàn)在,世界上的DSP芯片有300多種,生產(chǎn)DSP的公司有80多家,主要廠家有TI公司、AD公司、Lucent公司和Motorola公司。TI公司作為DSP生產(chǎn)廠商的代表,品種最多,大約占60%的市場份額。TI公司還推出了與其生產(chǎn)的DSP配套的軟件集成開發(fā)環(huán)境Code Composer,用戶可在該環(huán)境下用匯編語言和C語言進行軟件開發(fā)。TMS320VC33作為TI公司第二代芯片的高速低功耗改進型浮點型TMS320VC33,在工業(yè)控制領域得到了廣泛應用。目前,很少見到DSP系統(tǒng)下的C語言開發(fā)資料,本文以TMS320VC33為例,在TI公司提供的軟件集成開發(fā)環(huán)境Code Composer下(版本4.10.36),向大家介紹如何用C語言開發(fā)DSP嵌入式系統(tǒng)。

一、TMS320VC33芯片的C語言開發(fā)過程

整個過程主要分為以下4個步驟:編輯C語言源程序;編譯和鏈接;在線仿真;固化程序。

在Code Composer下,新建一個工程CSRJ.MAK;新建一個C源代碼文件CSRJ.C(其內(nèi)容為C語言源程序)和一個頭文件VC33.H(程序設計中用到的TMS320VC33寄存器的定義),將這兩個文件添加進CSRJ.MAK工程。

(二)編譯和鏈接

1.TI公司的COFF文件格式。Code Composer的匯編器和編譯器建立的目標文件格式為公共目標文件格式COFF(Common Object File Format)。這種格式易于進行模塊化編程,增強程序的可讀性和可移植性,為代碼段和存儲器的管理提供了更有力和靈活的方法,也為高級語言和匯編語言程序的編寫提供了極大的便利。

在COFF目標文件格式中,最關鍵的概念便是段(SECTION)。段是COFF目標文件格式中的最小單位,在存儲器中占據(jù)連續(xù)空間的代碼或數(shù)據(jù)塊。一個目標文件中的每一個段都是分開的和各不相同的。所有的段分為兩大類:已初始化段和未初始化段。已初始化段包含程序代碼或數(shù)據(jù),未初始化段為未初始化的數(shù)據(jù)保留存儲空間。C編譯器對C程序編譯后產(chǎn)生已初始化段(如:.text段、.cinit段)和未初始化段 (如:.bss段)。

2.鏈接器對段的處理。鏈接器對段的處理任務有兩個:一是將COFF目標文件中的塊用來建立程序塊和數(shù)據(jù)塊,并將這些塊組合成可以被DSP芯片執(zhí)行的COFF輸出模塊;二是為各輸出塊指定存儲地址。

鏈接器有兩條命令支持上述任務:MEMORY和SECTIONS。MEMORY命令定義目標系統(tǒng)的存儲器各部分命名并指定起始地址和長度;SECTIONS命令用于指定如何組織輸入段以及在存儲器何處存放輸出段。若不用這兩個命令,則鏈接器采用缺省分配算法。推薦使用這兩個命令,一般在鏈接器命令文件 (擴展名為.CMD)中確定。

下面分析一個TMS320VC33芯片的典型CMD文件(文件名為CSRJ.CMD)。

csrj.obj/* 源程序編譯后對應的目標文件 */

-l Rts30.lib/* 鏈接Rts30.lib庫*/

-stack 0x800/* 設定系統(tǒng)堆棧2K大小 */

MEMORY /* MEMORY命令規(guī)定系統(tǒng)的存儲器配置*/

{

STACKRAM: origin = 0x00807000, length = 0x00001000 /* 內(nèi)部RAM*/

RAM: origin = 0x00800000, length = 0x00007000 /* 內(nèi)部RAM*/

VECTORS: origin = 0x00809fc1, length = 0x63/* 中斷向量表區(qū)間*/

}

SECTIONS/* SECTIONS命令規(guī)定程序中段的具體分配分配方法*/

{

.text: { } > RAM/* 系統(tǒng)程序存放位置 */

.cinit: { } > RAM/* C初始化表存放位置 */

.bss: { } > RAM /* 未初始化數(shù)據(jù)存放位置 */

.stack: { } > STACKRAM /* 堆棧存放位置 */

vectors: { } > VECTORS /* 中斷向量表存放位置*/

}

程序若要使用中斷,可按如下方法在csrj.c中進行定義。

asm(" .sect \"vectors\" "); /* 中斷向量表定義*/

asm(" br _c_int01 ");

asm(" br _c_int02 ");

asm(" br _c_int03 ");

asm(" br _c_int04 ");

asm(" br _c_int05 ");

asm(" br _c_int06 ");

asm(" br _c_int07 ");

asm(" br _c_int08 ");

asm(" br _c_int09 ");

asm(" br _c_int10 ");

interrupt void c_intX() /* 中斷處理函數(shù),其中X為01~10之一*/

{

中斷處理程序語句

}

3.編譯選項等設置。(1)添加前述命令文件CSRJ.CMD和庫文件RTS30.LIB到CSRJ工程中;(2)選擇“Project”下的“Option”選項,在“Compiler”菜單下設置“Target Processor”為“C33”;在“Assembler”菜單下設置“Target Processor”為“C3X”(其它選項根據(jù)需要設置);(3)單擊界面“Rebuild All”按鈕,即可編譯鏈接,生成CSRJ.OUT文件。

(三)在線仿真

將仿真器與目標板連接,打開“Option”菜單下的“Program Load…”選項菜單,選擇所有選項后單擊界面“Rebuild All”按鈕,可編譯鏈接生成CSRJ.OUT文件并將該文件載入;點擊界面按鈕“Run”,即可仿真運行。

(四)固化程序

TMS320VC33芯片一般外掛FLASH或EPROM來存儲固化程序,因此程序固化前要根據(jù)外掛的FLASH或EPROM的具體要求,將CSRJ.OUT文件轉換成相應格式后寫入FLASH或EPROM。

二、DSP系統(tǒng)下的C語言編程應注意的問題

(一)內(nèi)存依賴關系

為了最大化代碼性能,編譯器盡可能將指令并行處理。但是要做到這一點,就要確定指令間的關系。如果一條指令需在另一條指令執(zhí)行后才能執(zhí)行,那么這兩條指令就存在依賴關系。當編譯器不能識別指令間是否獨立時,就要告訴編譯器他們之間的關系,可以通過關鍵字“restrict”聲明變量或優(yōu)化命令選項來通知編譯器。

Code Composer提供了四個優(yōu)化命令選項:Level 0寄存器級別、Level 1局部級別、Level 2函數(shù)級別、Level 3文件級別。從表面看,直接使用Level 3最簡捷,可以一步到位。然而在實際中,選擇時應根據(jù)系統(tǒng)實際情況而定。一般較大的系統(tǒng)軟件不宜采用Level 3級優(yōu)化,因為這樣一般容易造成系統(tǒng)死循環(huán)。在實際工作中,一般根據(jù)系統(tǒng)實時性要求,對于關鍵處的函數(shù)選用Level 2級,對于次要的可以選用Level 1級、Level 0級或不選,這樣不會造成系統(tǒng)程序不執(zhí)行或程序混亂的現(xiàn)象。

(二)變量的聲明

函數(shù)調(diào)用時,盡可能使用全局變量,這樣可以減少對變量的堆棧處理,同時也節(jié)省了寄存器的使用。

另外,在 Code Composer環(huán)境下全局變量的聲明和初始化要占用約雙倍的存儲區(qū)域。因此,為了節(jié)省資源,對于數(shù)據(jù)量較大的查表常數(shù)數(shù)據(jù),要采用特殊方法定義,使其只占用自身大小的存儲資源。對表1所示數(shù)據(jù)的全局定義進行舉例。

表1

1.22 3.55 4.67 9.53 8.11

6.97 9.45 7.54 8.16 1.08

若用常規(guī)方法如下定義:

biao_xyx[2][5]={1.22,3.55,4.67,9.53,8.11,6.97,9.45,7.54,8.16,1.08};

編譯后查看.map文件,發(fā)現(xiàn)該數(shù)據(jù)在.cinit段占用12個字,在.bss段占用了10個字。

若用如下特殊方法定義

asm(" .global _biao_xyx ");

asm(" .sect \".data_chabiao\" ");

asm("_biao_xyx : .float 1.22, 3.55, 4.67, 9.53, 8.11 ");

asm(" .float 6.97, 9.45, 7.54, 8.16, 1.08 ");

extern float biao_xyx[2][3];

編譯后查看map文件,發(fā)現(xiàn)該數(shù)據(jù)在只在.data_chabiao段占用了10個字。

(三)多調(diào)用TI提供的固有函數(shù)和功能函數(shù)

TI基于C語言開發(fā)提供了很多實際有效的固有函數(shù)。如果采用一般C語言自己編的函數(shù),可能會需要更多語句,耗時可能增加。

(四)合理編寫循環(huán)體

在數(shù)據(jù)處理過程中,循環(huán)體用得較多,處理量較大,壞的編程風格會浪費不必要的時間。一般應注意:在循環(huán)體內(nèi)不要包含調(diào)用;循環(huán)體不要有過多指令;對于多重循環(huán),如果內(nèi)層循環(huán)體較短,可以考慮打破該循環(huán)體,與外部循環(huán)結合;將與循環(huán)變量無關的判斷語句移到循環(huán)體外。

(五)注意浮點格式轉換

為使硬件獲得更高的效率,TMS320VC33芯片采用了不同與IEEE標準的浮點格式。在開發(fā)DSP系統(tǒng)通信軟件模塊時,若采用浮點格式進行數(shù)據(jù)傳輸,一定要注意外部系統(tǒng)使用的哪種格式,必要時要進行相應的格式轉換。

三、結語

本文以TMS320VC33芯片的開發(fā)為例,介紹了用C語言開發(fā)DSP嵌入式系統(tǒng)的過程和注意事項,希望能對讀者有所幫助。

參考文獻

[1]杜普選,馬慶龍.實時DSP技術及浮點處理器的應用[M].北京:清華大學出版社,2007.

[2]汪安名,程笠,徐寶根.DSP嵌入式系統(tǒng)開發(fā)典型案例[M].北京:人民郵電出版社,2007.

[3]TMS320C3x/C4x Assembly Language Tools User’s Guide[S].Texas Instruments,1997.

第2篇:c語言開發(fā)范文

摘要:近些年來,隨著時代經(jīng)濟的飛速發(fā)展以及科技的進步,當下主流的編程語言中,C++語言作為一種特殊的編程語言,主要來源于C語言的演化,同時C++語言跨平臺軟件開發(fā)的如何設計始終是當前軟件開發(fā)行業(yè)領域研究的熱點之一。本文在對基于C++語言的跨平臺軟件開發(fā)設計研究時,首先分析了C++語言,其次分析了跨平臺軟件開發(fā)環(huán)境,最后探討總結了C++語言的跨平臺軟件開發(fā)設計過程。

關鍵詞 :C++語言;跨平臺;軟件開發(fā);設計研究

現(xiàn)如今計算機語言中C++語言使用頻率和次數(shù)最多,同時編程速度較高,進而廣泛的應用于跨平臺軟件的開發(fā)設計中??缙脚_作為軟件開發(fā)中的重要概念之一,不僅僅依賴于實際的操作系統(tǒng),結合跨平臺開發(fā)的實際需求,逐漸推動了現(xiàn)代化軟件工程的蓬勃發(fā)展。因此本文對基于C++語言的跨平臺軟件開發(fā)設計進行研究有一定的經(jīng)濟價值和現(xiàn)實意義。

1、C++語言的相關概述

C++語言主要是由C語言演化而來的,C語言開發(fā)演化過程中,逐漸注重系統(tǒng)軟件開發(fā)的特性,并伴隨著C++語言的興起,其新特性逐漸增加。當前C++語言和其它相對高級的語言相比較而言,有著特殊的運行性能,在實際的運行過程中,并不需要借助于虛擬機將其作為中介,進而將C++語言的運行效率顯著提高。

同時C++語言在實際的開發(fā)過程中,往往有著相對較低的開發(fā)成本,C++語言應用的過程中,逐漸被引入各種各樣的特性,將其在泛型編程拓展過程中,對于高層次的軟件工程問題有著一定的積極作用。

總之,C++語言有著相對根本性的優(yōu)勢,不僅僅可以用于高級系統(tǒng)程序的設計和3D游戲的開發(fā)應用,同時也可用于數(shù)值科學計算以及通用程序設計等。

2、跨平臺軟件開發(fā)環(huán)境

2.1 跨平臺的相關概念

跨平臺作為現(xiàn)代化軟件開發(fā)中相對重要的一種概念,不僅僅對操作系統(tǒng)沒有一定的依賴性,同時對于硬件環(huán)境也沒有一定的依賴性,而在實際的開發(fā)應用程序過程中,更要將其在另一個操作系統(tǒng)下保持有著正常性的運行,基于跨平臺的實際需求,就要結合現(xiàn)代軟件工程的發(fā)展,對各種不同的平臺加以支持,進而將其帶給市場的潛力充分發(fā)揮。

2.2 跨平臺軟件開發(fā)需要的環(huán)境

一般而言,開發(fā)環(huán)境構成的過程中,往往需要有著一定的軟件編輯器、程序調(diào)試器以及程序編譯器三種,但是就其實質(zhì)性而言,Sandbox這種軟件不僅僅可以實現(xiàn)代碼的編譯,同時也可實現(xiàn)代碼的調(diào)試,其內(nèi)部同樣各種各樣的平臺中往往需要有著各種各樣的代碼庫和依賴庫。開發(fā)程序中,同樣也存在多種類型的源代碼,在C++語言的軟件開發(fā)和編譯中,就要做好最終結果質(zhì)量的控制,并有最好的代碼產(chǎn)生,在對錯誤捕捉和調(diào)試過程中往往需要一定的支持。

跨平臺軟件開發(fā)主要是將抽象實現(xiàn)的一種重要因素,往往需要將抽象以及相關的一些設計逐漸的借助于新的開發(fā)手段進行開發(fā)研究,實現(xiàn)在不同平臺上都能實現(xiàn)特殊的編譯。

3、C++語言的跨平臺軟件開發(fā)設計

C++語言跨平臺軟件開發(fā)設計過程中,更要做好各個環(huán)節(jié)的綜合設計,就其實質(zhì)性而言,C++語言的跨平臺軟件開發(fā)設計可以從以下幾個環(huán)節(jié)做起:

3.1 將語言的擴展特性避免

一般而言,任何語言在編程的過程中,往往都是對相對較老的程序以及文件進行選擇。這些相對較老的程序包含一些原有的程序和基本公式,相對來說這些程序和公式不僅僅有著規(guī)范性,同時也有著標準型,而當前現(xiàn)代化的新程序庫相對來說是雜亂無章的,在跨平臺上產(chǎn)生過程中,常常面臨各種各樣的故障,雖然會獲得一定的支持,同時也會有不精確定義的事故存在。

C++語言的跨平臺軟件開發(fā)設計過程中,就要避免語言存在一定的擴展特性,這種跨平臺開發(fā)過程中往往有著相對較高的異常靈敏度,無限度的對新特性利用中,就要借助于C++語言標準函數(shù)的基本模型,并保證開發(fā)軟件和產(chǎn)品有著相對較強的穩(wěn)定性。

3.2 將動態(tài)處理實現(xiàn)

C++語言跨平臺軟件開發(fā)中,就要對多種環(huán)境運行的可移植代碼庫加以編寫,在實際的項目開發(fā)過程中,就要對可能存在的問題加以避免,并處理好一個平臺在另一個平臺上沒有特性這一問題,進而實現(xiàn)動態(tài)性的處理。

3.3 借助于腳本文件實現(xiàn)管理

就C++語言的跨平臺軟件開發(fā)設計而言,就要做好腳本文件的基本管理工作,保證編寫的程序代碼不僅僅有著簡單易懂的特點,同時也要有著一定的簡潔性,對合理的軟件結構進行構建,將和平臺相關的一些文件以及數(shù)據(jù)庫充分的分隔,在實際的開發(fā)過程中借助于腳本文件進行某種程度上的編譯,將其在各個部位合理的分配。對應用程序使用的過程中,就要將配置文件中的相關配置選項調(diào)出來,進而將里面的程序讀取,并在跨平臺軟件開發(fā)過程中,盡可能的保證平臺相關聯(lián)的文件進行全部的分離,借助于特殊的手段將該功能充分實現(xiàn)。

3.4 對安全的數(shù)據(jù)串行化使用

現(xiàn)如今,C++語言的跨平臺軟件開發(fā)設計過程中,對于如何保證跨平臺數(shù)據(jù)存儲的安全性和可靠性這一問題,始終是當前軟件開發(fā)設計的核心問題之一,而C++語言的跨平臺軟件開發(fā)設計過程中,可以借助于軟件的fread指令,做好對每個編譯器和單一目標平臺的綜合性處理,并在實際的跨平臺操作環(huán)境中,借助于實際方法對數(shù)據(jù)進行不同程度上的存儲和加載,進而對平臺的獨立性加以保障,借助于跨平臺將數(shù)據(jù)在目標文件進行存儲過程中,一般而言,不同的平臺間往往有著一定的差異,在實際的處理過程中,同樣也將會有著多樣性的結果特征。

3.5 C++語言跨平臺開發(fā)中的編譯和測試

C++語言跨平臺開發(fā)變異和測試過程中,更要做好科學化的編譯和測試,在實際的跨平臺軟件開發(fā)過程中,盡可能的保證相關聯(lián)的一些代碼在長時間的使用過程中,保證其代碼可以在另外的平臺上加以檢測,并借助于不同的平臺進行測試,進而將bug及時的發(fā)現(xiàn)。

3.6 實現(xiàn)抽象

一般而言,實現(xiàn)抽象主要是對跨平臺應用程序中被移植過程中有著一定的有效性,通過對這種方式加以借用,進而實現(xiàn)軟件的單獨性開發(fā),并將具有獨立性和簡潔性的程序拿出,在實際的跨平臺開發(fā)設計過程中,往往需要對多種函數(shù)進行利用,進而在實際的開發(fā)過程中,并不用對所有的函數(shù)進行變異,而C++語言跨平臺軟件設計過程中,主要是對封裝方法加以采用,進而將抽象的過程實現(xiàn),這種封裝方法相對來說,需要視情況而定,一旦存在相對特殊的情況時,就要借助于其它的方式做好程序的基本調(diào)用工作,并做好對該功能的基礎命名工作。實現(xiàn)抽象的過程中,一旦對該程序及其公式使用之后,就要將該功能的主要程序直接調(diào)用,并將該功能充分實現(xiàn)。

3.7 C++語言跨平臺軟件開發(fā)的實現(xiàn)過程

C++語言跨平臺軟件設計開發(fā)的實現(xiàn)過程中,首先就要做好功能模塊實現(xiàn)過程和非功能模塊實現(xiàn)過程,在代碼編寫之前,就要對源代碼在文本編寫過程中的相關編輯策略加以規(guī)定,對\t格式加以統(tǒng)一,并使得代碼的結構盡可能有著簡單化的基本特點。

C++語言跨平臺軟件開發(fā)實現(xiàn)過程,同樣也要對統(tǒng)一的工程寶建立,并對跨平臺的代碼庫加以建立,借助于平臺依賴庫對平臺相關代碼進行封裝,做好對處理器差異、編譯器差異的合理控制,保證有著對齊的內(nèi)存和有著順序的字節(jié),并將平臺無關的代碼實現(xiàn),做好內(nèi)存的管理。

操作系統(tǒng)和接口庫實現(xiàn)的過程中,往往不同的操作系統(tǒng)將會存在各種各樣的系統(tǒng)限制,在實際的開發(fā)設計過程中,更要對限制的參數(shù)進行適當?shù)恼{(diào)整,并做好對文件描述符的基本限制,尤其是在Unix系統(tǒng)中,就要借助于文件的描述符這種系統(tǒng)性的資源,提高程序的通用性和靈活性。網(wǎng)絡程序開發(fā)過程中,任何一個網(wǎng)絡連接將會對一個文件描述符占用,一旦程序?qū)⒑芏嗟腟ocket連接打開,其程序在實際的運行過程中借助于fopen將難以打開文件。對這一問題如何加以解決呢?可以將其系統(tǒng)逐漸的升級為64位系統(tǒng),同時還可以采用64位方式編譯程序,對sys/io.h中的函數(shù)操作文件加以使用,并對文件池技術加以采用,將一部分文件描述符預留。進程和線程在實際的限制過程中,就要對線程數(shù)進行創(chuàng)建,并將符的數(shù)量以及進程線大小的限制加以描述,其操作系統(tǒng)抽象層中操作系統(tǒng)函數(shù)不能直接的被調(diào)用,更應該將其在一個操作系統(tǒng)抽象層中包裝的庫中實現(xiàn),將其在底層的操作系統(tǒng)中直接的脫離出來,并保證系統(tǒng)調(diào)試有著相對有效的起點。

用戶界面的實現(xiàn)過程中,就要做好跨平臺軟件圖形界面的基礎設計工作,將程序基礎的邏輯代碼和數(shù)據(jù)構成,金可的借助于跨平臺的開發(fā)工具包,借助于C++語言實現(xiàn),進而開發(fā)利用C++語言跨平臺應用程序的一種用戶界面,進而做好相關界面的控制。

結語

總而言之,本文在對C++語言的跨平臺設計進行研究時,通過對C++語言和跨平臺需要的環(huán)境進行分析,進而對C++語言跨平臺設計做了主要的探討,進而總結出,C++語言跨平臺設計過程中,不僅僅要有著相對豐富的經(jīng)驗,同時更要在開發(fā)的軟件中將更多的功能和實際的操作容積加入,借助于相對優(yōu)越的設計,綜合性的提高軟件的額功能。本文研究分析C++語言的跨平臺設計時,希望其中的設計思路以及相關的理論基礎為更多的跨平臺開發(fā)設計工程師給予一定的幫助,同時本文中存在的不足之處還望更多相關研究人員給予指正。

參考文獻:

[1] 張馳. 基于C++語言的跨平臺軟件開發(fā)的設計與實現(xiàn)[D]. 北京交通大學,2010.

[2] 侯成杰. 航天器C語言軟件常見編程錯誤分析及檢測方法研究[J].空間控制技術與應用,2013,06:53-57.

[3] 楊波,沈承舒. 面向嵌入式軟件開發(fā)的C語言程序設計課程改革探索[J]. 計算機教育,2014,05:105-107.

[4] 吳興華. 基于C語言軟件開發(fā)的效率、移植及調(diào)試[J]. 數(shù)字技術與應用,2013,12:172.

[5] 楊鵬. 基于C++語言的跨平臺軟件開發(fā)的設計[J]. 硅谷,2014,04:19+21.

[6] 徐巍. 跨平臺移動開發(fā)框架的比較分析與實例開發(fā)[D]. 吉林大學,2014.

[7] 謝東來. C語言軟件設計中的主要問題分析[J]. 計算機光盤軟件與應用,2013,04:235-236.

第3篇:c語言開發(fā)范文

【關鍵詞】精品課程;Web;應用開發(fā);B/S

0 前言

傳統(tǒng)的課堂教學中,存在教學任務重,教學課時緊張的特點。作為公共基礎課的《C語言程序設計》,是培養(yǎng)學生計算機編程能力的入門課,在課程教學中課時與教學任務之間的矛盾更加突出。精品課程網(wǎng)站的出現(xiàn),為學生在課下學習和復習提供了一個有效的平臺,可以彌補課堂教學的不足,同時,優(yōu)質(zhì)教學資源也可以通過精品課程得到更為廣泛的共享,極大的提高了其教學價值。

如何設計一個功能穩(wěn)定、內(nèi)容豐富、界面美觀、使用方便的精品課程網(wǎng)站,對于《C語言程序設計》的教學是一個極具探討價值且亟待解決的問題。

1 《C語言程序設計》精品網(wǎng)站建設需求與功能分析

《C語言程序設計》精品課程網(wǎng)站要求能夠方便用戶在線資源共享及教師管理者資源的有效。網(wǎng)站平臺要具有界面美觀,操作方便,穩(wěn)定性與安全性好的特點。在網(wǎng)站內(nèi)容方面,要結合該課程較強的實踐性的特點,實現(xiàn)學生與教師的有效互動。因此,在功能上應實現(xiàn)用戶注冊、課程資源,資源管理,資源瀏覽,留言及回復,公告管理,用戶管理等功能。課程資源包括課件、習題、參考資料、教學大綱、教案、教學視頻、演示動畫等的。資源管理實現(xiàn)上述資源的修改與刪除。用戶管理實現(xiàn)用戶賬號信息的管理、密碼修改與重置等。

2 《C語言程序設計》精品網(wǎng)站開發(fā)技術

本網(wǎng)站采用JSP作為網(wǎng)站網(wǎng)頁開發(fā)技術,MYSQL作為存儲數(shù)據(jù)信息的后臺數(shù)據(jù)庫。JSP是Sun公司推出的構建在Servlet規(guī)范提供的功能之上的動態(tài)網(wǎng)頁技術。MYSQL是一個開放源碼的關系數(shù)據(jù)庫管理系統(tǒng),目前已經(jīng)被廣泛地應用在中小型網(wǎng)站中。

網(wǎng)站平臺的開發(fā),采用目前最流行的SSH(Struts+Spring+Hibernate)框架及MVC(模型Model-視圖View-控制器Controller)設計模式,充分考慮了平臺的可擴充性和安全性及穩(wěn)定性的要求。平臺的實現(xiàn)包含了表示層、業(yè)務邏輯層、數(shù)據(jù)持久層和域模塊層的設計與開發(fā)。該開發(fā)模型,不僅實現(xiàn)了視圖、控制器與模型的徹底分離,而且還實現(xiàn)了業(yè)務邏輯層與持久層的分離,是的系統(tǒng)具有很好的可維護性。在表示層中,首先通過JSP頁面實現(xiàn)交互界面,負責接收請求(Request)和傳送響應(Response),然后Struts根據(jù)配置文件將ActionServlet接收到的Request委派給相應的Action處理。在業(yè)務層中,由Spring IOC容器負責向Action提供業(yè)務模型(Model)組件和該組件的協(xié)作對象數(shù)據(jù)處理(DAO)組件完成業(yè)務邏輯,并提供緩沖池、事務處理等容器組件以提升系統(tǒng)性能和保證數(shù)據(jù)的完整性。在持久層中,將依賴于Hibernate的對象化映射和數(shù)據(jù)庫交互,處理DAO組件請求的數(shù)據(jù),然后返回處理結果。同時,平臺在網(wǎng)頁刷新方面采用了Ajax (Asynchronous JavaScript and XML,異步JavaScript和XML)技術完成頁面的局部刷新。在資源上傳方面,采用SmanUpload組件實現(xiàn)了文件的上傳。采用FlashPaper實現(xiàn)文檔到FLASH動畫的轉換。在線編輯則使用了開源的在線HTML編輯器KindEditor。

3 精品網(wǎng)站主要功能模塊設計與實現(xiàn)

結合《C語言程序設計》精品課程網(wǎng)站的建設需求,下面對該平臺的一些主要功能模塊的設計與實現(xiàn)進行介紹。

3.1 系統(tǒng)功能建模設計

系統(tǒng)用戶主要包括學生用戶、教師用戶及管理員,可以依據(jù)三者各自的功能,采用用例圖實現(xiàn)其功能的模型化概要設計,并且利用活動圖、狀態(tài)圖及類圖實現(xiàn)其細化,實現(xiàn)平臺主要功能模塊的詳細設計。下面是教師用戶角色的用例圖。

圖1 教師用戶角色用例圖

3.2 系統(tǒng)主要功能實現(xiàn)

根據(jù)詳細設計階段的成果,進行程序代碼的編寫,完成預期的功能模塊。開發(fā)實現(xiàn)過程中注意了代碼書寫的規(guī)范化及可重用性,對于界面,采用了一些精美的圖片與動畫,使得實現(xiàn)的網(wǎng)站平臺在可用性、界面友好性方面有好的體現(xiàn)。同時,按照預期的需求對其進行相應的黑盒測試與白盒測試,檢驗其是否滿足實際的要求。

4 課程精品網(wǎng)站的

本精品網(wǎng)站在在WINDOWS平臺或LINUX平臺下,下面以在WINDOWS平臺的過程來進行說明:

4.1 安裝WINDOWS SERVER服務器版操作系統(tǒng)

由于《C語言程序設計》精品課程完整有著大量的用戶,存在較大的并發(fā)訪問情況和安全性需求,因此網(wǎng)站需要在性能穩(wěn)定,安全性高的服務器平臺。我們首先需要安裝WINDOWS 2000 SERVER以上的服務器版本,本網(wǎng)站的服務器為WINDOWS 2008 SERVER。

4.2 安裝JDK并進行配置

JDK是JAVA開發(fā)及運行的環(huán)境,網(wǎng)站的運行需要JDK的支持,下載JDK的WINDOWS版本安裝包進行安裝,然后配置相應的環(huán)境變量,包括java_home,path和classpath三個部分。

4.3 安裝Tomcat WEB服務器

下載并安裝Tomcat,Tomcat是Apache的一個JSP常用的WEB應用服務器,具有很好的穩(wěn)定性。

4.4 安裝MYSQL數(shù)據(jù)庫管理系統(tǒng)

網(wǎng)站采用MYSQL作為數(shù)據(jù)庫管理系統(tǒng),下載并安裝MYSQL,然后創(chuàng)建網(wǎng)站所需要的數(shù)據(jù)庫和用戶。

4.5 安裝JDBC驅(qū)動

JDBC(Java Database Connectivity)是一種可以執(zhí)行SQL語句的Java API,提供了程序訪問數(shù)據(jù)庫的接口。平臺對數(shù)據(jù)庫的訪問需要安裝JDBC驅(qū)動。

4.6 網(wǎng)站到TOMCAT(下轉第13頁)

(上接第15頁)將精品網(wǎng)站的JSP程序放置在直接放到Webapps目錄下或者自己建立的目錄下,修改配置server.xml,實現(xiàn)網(wǎng)站的最終??梢酝ㄟ^修改server.xml文件,在Host標簽內(nèi)建一個Context實現(xiàn),內(nèi)容如下:

其中path是虛擬路徑,docBase是JSP應用程序的物理路徑,workDir是這個應用的工作目錄,存放運行是生成的于這個應用相關的文件。

這些步驟完成后,就可以瀏覽器里直接訪問該網(wǎng)站。

5 結束語

作為學生自學重要途徑的精品課程資源建設,是對優(yōu)質(zhì)課程資源共享的一個重要途徑,同時也彌補了課堂教學的不足。本文分析了《C語言程序設計》精品課程網(wǎng)站的需求,討論了精品課程網(wǎng)站的開發(fā)技術和開發(fā)思想。設計和實現(xiàn)了精品課程網(wǎng)站的開發(fā),并且給出了網(wǎng)站的方法。精品課程網(wǎng)站的建設和其合理應用,對于學生的學習有較好的效果,為進一步促進教學質(zhì)量的提升打下堅實的基礎。

【參考文獻】

[1]鄭偉平,范冰冰,胡遵華,田杰.多租戶精品課程網(wǎng)站系統(tǒng)的研究與實現(xiàn)[J].東北師大學報:自然科學版,2013(02).

[2]周玉芬,柯和平,陳銳浩.基于績效技術的精品課程網(wǎng)站建設研究[J].中國電化教育,2012(07).

第4篇:c語言開發(fā)范文

關鍵詞:Coco2d-x;動態(tài)更新;Lua;跨平臺開發(fā)

中圖分類號:TP368.1 文獻標識碼:A

Abstract:The Lua scripting language technology has brought the new heaven and earth for the development of Coco2d-x.Through the Lua scripting language development Cocos2d-x application,get rid of the tedious code of C/C++ development,makes the development of fast and efficient and can run on multiple platforms at the same time,the Lua scripting language can expand sex,can make it a good integration in the application.At the same time the Lua language become controller in development.Control the application logic and Coco2d-providing display functions of x and cross-platform features.Such development can dynamically modify the client not only bugs,but also dynamic update application content to avoid the update of customer churn.Free,small,fast,easy to transplant the Lua language reduces the development cost and guarantee the application performance.

Keywords:Cocos2d-x;dynamic updating;Lua;cross-platform development

1 引言(Introduction)

Cocos2d-x是基于C++語言的移動端應用程序開發(fā)的開源框架。Cocos2d-iPhone項目的C++版本[1]。Cocos2d-x開發(fā)框架用C++語言重寫了Cocos2d開發(fā)框架從而實現(xiàn)應用開發(fā)跨平臺,在跨平臺移動端應用開發(fā)中Cocos2d-x框架被大量使用[2]。其開發(fā)的手機應用,可以在C++或者Lua中編寫。Cocos2d-x項目能夠兼容iOS操作系統(tǒng),Android操作系統(tǒng),黑莓Blackberry操作系統(tǒng)等。在PC端Cocos2d-x開發(fā)框架支持的操作系統(tǒng)包括Linux操作系統(tǒng)、Mac操作系統(tǒng)和Windows操作系統(tǒng)等PC端操作系統(tǒng),因此,Cocos2d-x能夠在PC端操作系統(tǒng)中可以進行編輯和調(diào)試使得其在開發(fā)中變得高效快捷[3]。

2 基于Lua動態(tài)腳本語言Coco2d-x應用開發(fā)的關鍵技術(The key technology of Cocos2d-x application development based on the dynamic scripting language Lua)

(1)Lua技術

Lua是一個小巧的動態(tài)語言。Lua動態(tài)語言的設計初衷,為應用程序開發(fā)提供訂制功能與靈活的拓展。作為腳本語言它具有輕量、可拓展、簡潔等特點[4]。因為C++語言與Lua腳本語言具有良好交互能力??梢詮碗s繁瑣的C++開發(fā)變?yōu)楹唵慰旖莸腖ua語言開發(fā)。

(2)Lua與C++交互技術

Lua動態(tài)腳本語言與C++語言的通訊分為兩部分,首先是Lua動態(tài)語言通過Lua Binding訪問C++語言中的類庫或者函數(shù)以及傳遞參數(shù),其次分是C++語言回調(diào)Lua C API訪問Lua的函數(shù)以及傳遞參數(shù)。

(3)Cocos2d-x開發(fā)手機應用技術

在實際開發(fā)中,使用Cocos2d-x框架進行移動端應用程序開發(fā),依賴其可以和平美兼容,使其項目可以做到多個平臺一套代碼,多個平臺一個版本避免了多平臺版本不統(tǒng)一的尷尬。通過與之相配套的CocosStdioUI編輯快速生成plist文件可視化進行界面布局提高實際項目中的開發(fā)效率,讓應用開發(fā)變得更加迅捷高效開發(fā)。

3 基于Lua動態(tài)腳本語言Coco2d-x應用開發(fā)的應用

與實現(xiàn)(The use and implementation of Cocos2d-x

application development based on the dynamic

scripting language Lua)

3.1 Lua與C++的交互技術實現(xiàn)

在C++中初始化Lua:

Lua_State * L=lua_open(); //初始化Lua環(huán)境

void CCinitLua() {

lua_openlibs(L); //載入Lua全部標準庫

}

完成在C++來執(zhí)行Lua文件。Lua被嵌入到C++程序中,起到一個黏合作用。而Cocos2d-x框架其強大的功能分別來自于不同的類庫。Lua動態(tài)語言在程序開發(fā)中作為整個應用程序的邏輯控制器,在開發(fā)中Lua腳本語言充當大腦而開發(fā)框架充當肢體。以消息機制為例,通過調(diào)用C++語言的函數(shù)達到,回調(diào)Lua動態(tài)語言函數(shù)。以C++繪制函數(shù)為例,C++通過繪制函數(shù)傳輸一個消息給Lua語言,當繪制函數(shù)進行重繪時也就在Lua語言中執(zhí)行相同的函數(shù)。這樣就可以在書法簡練沒有類型的Lua中編寫C++代碼,省去了C++的復雜語法從而有擁有了C++的強大功能。通過這個方式就能夠?qū)崿F(xiàn)其他事件機制。

動態(tài)腳本語言Lua調(diào)用C++接口時,進行參數(shù)傳遞,回調(diào)結果的獲取。需要把C++中函數(shù)位置通過指定的方式傳達給Lua語言。在Lua調(diào)用C++,C++從棧中找到交互的棧,從而獲取其中的參數(shù),調(diào)用結束后將返回結果信息放入棧中。在當Lua語言中繪制函數(shù)被調(diào)用時,同時也調(diào)用了C++中做相應處理的函數(shù),這樣動態(tài)語言Lua與C++的交互就是實現(xiàn)的。

3.2 Lua與Cocos2d-x交互

Cocos2d-x具體來說更像是一個類庫的合集其中把圖形渲染和多媒體播放甚至物理引擎,分解集合成一個lib。通過C++調(diào)用這個lib中的具體方法而實現(xiàn)快速的手機應用開發(fā)的框架。通過Lua動態(tài)語言嵌入到Cocos2d-x開發(fā)框架中,并與其良好的結合。達到了在腳本中開發(fā)跨平臺手機應用。

3.3 利用Cocos2d-x開發(fā)應用

目前移動端操作系統(tǒng)主要有iOS操作系統(tǒng),Android操作系統(tǒng)。移動應用程序開發(fā)需要使用Cocos2d-x進行開發(fā)可以避免一款程序多套代碼的尷尬。

(1)利用Lua+Coco2d-x開發(fā)Android應用

通過Native Development Toolkit(NDK)我們可以在eclipse里面集成外部庫(比如Cocos2d-x),使用C/C++來編寫Android程序。這些庫被編譯成動態(tài)庫通過JNI(Java Native Interface)與Java Android體系程序進行交互。下面有兩種使用方法:

①獨立模式:直接在makefile中使用arm-linux-androideabi-g++。

②集成模式:使用$NDKROOT/ndk-build shell工具,它是一種高度可定制的makefile,專門為NDK庫所設計的。

首先修改Anroid/jni/Android.mk中文件如下:

LOCAL_PATH:=$(callmy-dir)include$(CLEAR_VARS)subdirs:=$(addprefix $(LOCAL_PATH)/http:///../,$(addsuffix /Android.mk, \

cocos2dx\CocosDenshion/android\lua/proj.android/jni\))subdirs+= $(LOCAL_PATH)/pyramid/Android.mk

include $(subdirs)

修改jni\Application.mk文件:

APP_MODULES:=cocos2d cocosdenshion lua game

在android\src\org\cocos2dx\xx\x\.java中修改:

static {

System.loadLibray("cocos2d");

System.loadLibrary("cocosdenshion");

System.loadLibrary("lua");

System.loadLibrary("game");

}

(2)利用Lua+Coco2d-x開發(fā)iOS應用

在Mac操作系統(tǒng)終端中填入:

cd $COCOS2DX_HOME

sud./install-templates-xcode.sh-u

在Cocos2d-x框架安裝成功以后在Xcode中會出現(xiàn)新的Cocos2d-x模板選擇即可創(chuàng)建新的工程。由于lua語言不能直接與Objective-C交互,所以我們使用Lua Bingding和C/C++交互。同時C++和Objective-C可以混編,使用C++可以直接調(diào)用Objective-C,讓C++作為Lua和Objective-C交互的橋梁(圖1)。

(3)Lua開發(fā)應用

我們通過用Lua動態(tài)語言創(chuàng)建場景、層、精靈來實現(xiàn)應用中的一個通過用戶觸摸圖片跟隨用戶手指移動的功能。

Mc_Scene=cocos2d.CCScene.node()

Mc_Layer=cocos2d.CCLayer.node()

Mc_Scene:addChild(Mc_Layer)

Mc_Sprite=cocos2d.CCSprite:SpriteWithFile

("machao.png")

Mc_Layer:addChild(Mc_Sprite)

SceneSize=cocos2d.CCDirector:shareDirector:getWinSize()

Mc_Sprite:setPosition(cocos2d.CCPoint(SceneSize.width*0.5,SceneSize.height*0.5))

Mc_Layer.__CCTouchDelegate__:registerScriptTouchHandler(cocos2d.CCTOUCHBEGAN,"btnTouchBegin")

Mc_Layer.__CCTouchDelegate__:registerScriptTouchHandler(cocos2d.CCTOUCHMOVED,"btnTouchMove")

Mc_Layer.__CCTouchDelegate__:registerScriptTouchHandler(cocos2d.CCTOUCHEND,"btnTouchEnd")

Pointbegin=nil

Function btnTouchBegin(e)

Local v=e[1]

Local pointMove=v:locationInView(v:view())

pointMove= cocos2d:CCDirector:sharedDirector():covertoGL(pointMove)

Mc_sprite:setPosition(cocos2d.CCPoint(pointMove.x,pointMove.y))

End

Function btnTouchMove(e)

Local v=e[1]

Local pointMove=v:locationInView(v:view())

pointMove= cocos2d:CCDirector:sharedDirector():covertoGL(pointMove)

Mc_sprite:setPosition(cocos2d.CCPoint(pointMove.x,pointMove.y

End

Function btnTochMove(e)

Cocos2d.CCLuaLog("T_end")

end

CocoDenshion.SimpleAudioEngine:shareEngine():playBackgroundmusic("background3.mp3",true)

CocoDenshion.SimpleAudioEngine:shareEngine():preloadEffect("effect1.wav")

Cocos2d.CCDirector:shareDirector():runwithScnen

(Mc_Scene)

Cocos2d.CCLuaLog("腳本運行結束")

4 結論(Conclusion)

本文使用Lua動態(tài)語言進行移動應用程序的設計與開發(fā),把靈活高效的腳本語言應用到移動端應用程序開發(fā),通過其良好的嵌入能力與Android平臺和iOS平臺結合,利用Cocos2d-x進行應用開發(fā)。Lua動態(tài)語言能使應用程序的邏輯和與前端視圖完全剝離開,不僅大大減少的應用程序的開發(fā)周期還使其具有客戶端動態(tài)更新的功能,又通過Cocos2d-x開發(fā)框架與多平臺相兼容,降低了開發(fā)成本。同時也降低了應用程序的復雜程度,增加了代碼的可復用性。

參考文獻(References)

[1] Jayant Varma.Lua實戰(zhàn):IOS游戲開發(fā)[M].北京:人民郵電出版社,2014:77-78.

[2] 劉劍卓.Cocos2D-X游戲開發(fā)技術精解[M].北京:人民郵電出版社,2013:53-54.

[3] 滿碩泉.Cocos2D-X權威指南[M].北京:機械工業(yè)出版社,2010:26-27.

[4] Ierusalimschy R.Progarmming in Lua[M].北京:電子工業(yè)出版社,2006:141-143.

作者簡介:

第5篇:c語言開發(fā)范文

關鍵詞:20CrMnTiH;齒輪鋼;開發(fā)

引言

20CrMnTiH齒輪鋼是我國用于制造各種汽車以及工程機械等傳動齒輪以及齒輪軸的材料所使用最為廣泛的一種鋼種,在齒輪鋼總量中占有重要的比重。齒輪是比較關鍵的機械零件,它在實際的應用過程中承受著交變載荷以及沖擊載荷等,所以對鋼的性能要求較為嚴格。

1.20CrMnTiH齒輪鋼的基本概述

1.1 20CrMnTiH齒輪鋼關鍵技術分析

在我國的20CrMnTiH齒輪鋼產(chǎn)業(yè)的長期發(fā)展過程中,在生產(chǎn)的工藝上已經(jīng)逐漸的成熟,形成了一套有著我國特色的齒輪鋼生產(chǎn)工藝,在對這些技術進行應用的過程中能夠在很大的程度上提高生產(chǎn)的效率。其中,通過電爐少渣出鋼的工藝能夠有效的降低脫氧的負擔,并對鋼中所夾雜的一些雜質(zhì)含量起到了有效的控制作用;在無氧化保護澆注這一關鍵技術的應用基礎上,對鋼中的氧含量得到了有效降低;通過對結晶器電磁攪拌這一關鍵技術的有效應用,大大減少了鑄坯化學成分的偏析;另外,在快速白渣這一關鍵技術的應用過程中,對鋼中的氧含量也得到了有效的降低[1]。

1.2 20CrMnTiH齒輪鋼的性能分析

這一產(chǎn)品有著高碳的耐磨表層以及低碳的高強韌性心部,這樣能夠?qū)薮蟮臎_擊載荷以及磨損等得以承受,在其性能方面主要有可加工性以及使用性能。在可加工性能這一方面,傳統(tǒng)的齒輪加工大多是采取插齒以及車削加工等,在隨著我國的科學技術的發(fā)展以及齒輪加工自動化的形成,在生產(chǎn)效率方面有了很大的提高,通過數(shù)控技術進行綠色加工已經(jīng)得以實現(xiàn)[2]。一般常見的輪齒失效就是吃面點蝕以及折斷等,而在疲勞失效這一方面主要就是鋼中的雜質(zhì)所導致的,隨著我國在新技術方面的引進,對其使用的性能已經(jīng)大大的得到了提高,齒輪鋼的純潔度得到了保障。

2.20CrMnTiH齒輪鋼的開發(fā)流程及技術創(chuàng)新探究

2.1 20CrMnTiH齒輪鋼的開發(fā)流程分析

在我國實際的20CrMnTiH齒輪鋼的開發(fā)內(nèi)容方面涉及的較為廣泛,其中在開發(fā)的過程中需要通過專業(yè)的技術人員對鋼的質(zhì)量以及工藝的要求進行把控,并結合企業(yè)自身的發(fā)展特點,然后才能夠?qū)?0CrMnTiH齒輪鋼的開發(fā)路線以及相關的設備配備進行確定。然后就是依據(jù)著相關的工藝要求以及企業(yè)的現(xiàn)階段設備以及外購的檢測設備基礎上,對鋼的相關工藝特點以及操作水平、生產(chǎn)的現(xiàn)狀等進行整合成對實際有著指導作用的指導書,接著對初步的開發(fā)進行審核,并形成試驗方案。

然后經(jīng)過相關的評審之后要能夠?qū)﹂_發(fā)的要求滿足情況加以確認,不符合實際開發(fā)要求的要能夠進行積極的改善。在這些完成之后就要進行初步的開發(fā)生產(chǎn),在開發(fā)的過程中對出現(xiàn)的問題要進行及時的解決應對,避免失控情況的發(fā)生,同時還要能夠?qū)﹂_發(fā)的要求得以滿足。在試驗開發(fā)的階段一定要嚴格的按照標準進行實施,在物理檢驗以及化學檢驗方面都要能夠得以加強,從而滿足對20CrMnTiH齒輪鋼開發(fā)設計的要求達到標準。另外,對20CrMnTiH齒輪鋼開發(fā)過程中要進行多次的試驗,確保鋼中的雜質(zhì)最大化的清除,要對影響這一開發(fā)的因素進行積極的排除,從而形成適合這一工藝開發(fā)的最佳參數(shù)。

2.2 20CrMnTiH齒輪鋼的技術創(chuàng)新探究

在20CrMnTiH齒輪鋼的開發(fā)中,對其技術要能夠進行創(chuàng)新,首先就是在快速白渣工藝這一創(chuàng)新技術方面,在經(jīng)過對精煉爐操作得以優(yōu)化之后,對其造渣的工藝也進行了有效的改善。在具體的操作過程當中就是對精煉爐的堿度進行適當?shù)目刂疲瑢⑵淇刂圃?.0―3.0之間,這一技術不僅有著較有效的脫氧效果,同時在流動性方面也比較的優(yōu)良。

另外,在少渣出鋼這一工藝的創(chuàng)新點最為主要的就是電爐用擋渣錐進行的擋渣,同時又加入了擋渣車,這樣在定位上就相對來說比較的準確,擋渣的效果能夠得以完善的呈現(xiàn)出來,從而對少渣多鋼得到了實現(xiàn)。然后就是在連鑄無氧化澆鑄這一創(chuàng)新技術方面對低過熱澆注有了保障,同時也對高的中間包液位澆注有了保證,在液面的穩(wěn)定性方面也有了保障,避免了中包液面的大波動所造成的鋼液卷渣現(xiàn)象[3]。

在深脫氧這一創(chuàng)新技術的應用過程中,也在很大的程度上對鋼中的氧含量有了降低,在對電爐出鋼進行了有效控制之后,實現(xiàn)了少渣出鋼,這樣就有效的對脫氧的負擔有了降低,從而對精煉爐中的A1含量得到了有效控制。在過熱度過高的情況下就會使得柱狀晶過于發(fā)達以及中心碳的偏析較為嚴重等情況的出現(xiàn),所以將過熱度控制在二十攝氏度到三十攝氏度之間是比較適宜的,而在拉速這一方面將其控制在1.1到1.3m/min這一范圍內(nèi)是較為合適的。

而在電磁攪拌以及氬氣攪拌的技術創(chuàng)新應用過程中,不只是將鋼中的一些有害氣體得以減少了,并對剩余的一些雜質(zhì)進行了改性的處理,在雜物的含量級別方面有了很大程度上的降低,這一創(chuàng)新技術的應用在質(zhì)量水平方面和技術協(xié)議中的脆性夾物以及塑性夾物小于三級的規(guī)定是相契合的。

3.結語

總而言之,在20CrMnTiH齒輪鋼的開發(fā)過程中會遇到諸多的問題,故此要能夠找到問題的根源所在,有針對性的加以解決。隨著我國的科學技術的進步,對20CrMnTiH齒輪鋼的開發(fā)以及研究方面定將會迎來一個新的發(fā)展局面。

參考文獻:

[1]楊躍標,鄧深,朱超云,周漢全,江學德.20CrMnTi齒輪鋼方坯連鑄工藝的研究與應用[J].柳鋼科技,2012,(04).

第6篇:c語言開發(fā)范文

關鍵詞:SuperMapObjects,電子地圖,十堰市

 

1 引言

傳統(tǒng)的地圖制圖理論已經(jīng)基本成熟,但是任何一門學科的發(fā)展都是和現(xiàn)代科學技術的發(fā)展分不開的,現(xiàn)代科學技術的發(fā)展促進學科的發(fā)展,所以地圖制圖學也不例外[2]。計算機技術、多媒體技術、網(wǎng)絡技術以及其它相關的或可能相關的技術正在影響或可能影響地圖制圖學的發(fā)展,因此電子地圖信息研究與實踐是對地圖制圖學新技術和新理論的補充和完善,這是本論文的意義之一[1]。電子地圖相對獨立,可以根據(jù)需要方便快捷的轉化為紙制地圖;電子地圖中掛接的多媒體信息內(nèi)容具有動態(tài)性,可以方便的對信息內(nèi)容進行補充和更新,同時內(nèi)容組織更加靈活;在電子地圖上可以方便的進行量算和相關分析,同時借助于多媒體技術使信息的表達形式更加豐富多彩;隨著信息化的發(fā)展,電子地圖作為空間信息的主要載體和傳播工具在國民經(jīng)濟建設中發(fā)揮著不可替代的作用。因此研究電子地圖具有十分重要的現(xiàn)實意義。

2 SuperMapObject簡介

SuperMap組件式GIS以標準的ActiveX組件的方式,嵌入流行的可視化高級開發(fā)語言環(huán)境中進行開發(fā)。充分發(fā)揮VisualBasic, Delphi, Visual C++, C++ Builder, PowerBuilder, C,C#等高級開發(fā)工具在面向?qū)ο缶幊?、可視化程序設計環(huán)境中體現(xiàn)的新一代程序設計語言的優(yōu)勢,結合各種第三方ActiveX組件,對GIS功能進行無限擴展。。

SuperMapObjects組件開發(fā)平臺以一系列ActiveX組件形式提供GIS基本功能,包括核心組件庫(工作空間控件和地圖控件)、布局組件、三維組件、拓撲組件、圖例組件庫(圖例控件、圖例列表控件和圖例組合列表框控件)、屬性表格組件、工作空間管理組件、加密鎖信息組件等多個可分拆的組件.SuperMap Objects組件之間既互相聯(lián)系,也保持相對獨立性.其中核心組件庫(工作空間控件和地圖控件)是基礎的、必選的組件,其他組件全都是可選的。

3 系統(tǒng)設計

該系統(tǒng)設計的目的是讓人們通過這個系統(tǒng)對十堰市的環(huán)境和旅游景點有更好的了解,為一些旅游人士提供公交搭乘的指導,并可以查詢一些單位的資料。

3.1 系統(tǒng)總體設計

根據(jù)系統(tǒng)建設目標和原則,系統(tǒng)開發(fā)將采用如下步驟:

第一步:完成城市基礎地理信息等的輸入、分層管理,建立各類對象的屬性數(shù)據(jù)庫;

第二步:數(shù)字化十堰市城區(qū)全圖;

第三步:實現(xiàn)電子地圖的基本功能;

第四步:網(wǎng)上查找十堰市城區(qū)主要地物和自然的圖片或影像資料,并建立其與相應對象的關連;

第五步:電子地圖的測試與完善。

3.2系統(tǒng)功能設計

系統(tǒng)的總體功能結構如下圖:

圖1 電子地圖功能的總體結構圖

3.2.1地圖的基本操作

通過放大、縮小、漫游、自由縮放、全幅顯示等操作實現(xiàn)對地圖顯示的控制。

3.2.2公交換乘查詢(圖2)

通過該功能把起點和終點選中后,就可以查詢出你可以乘坐的公交車次。

3.2.3圖上量算

圖上量算是GIS最常用的功能之一。在圖中新建線或多邊形,在多邊形中有area面積屬性,在線中有l(wèi)ength屬性,可以讀取兩者屬性得到面積和距離。。

3.2.4屬性查詢(圖3)

用戶可以利用鼠標選取或直接輸入單位名稱,就可以查詢到相關資料。

圖2 電子地圖公交換乘圖3 電子地圖屬性查詢

4 結語

本系統(tǒng)從設計,編碼到實現(xiàn)的過程中,是以軟件工程和地理信息系統(tǒng)工程原理為指導,利用現(xiàn)有的地理信息系統(tǒng)平臺提供的開發(fā)平臺,進行平臺應用和二次GIS 開發(fā)的實踐性教學。全面分析了電子地圖的理論基礎,包括電子地圖的概念和特點,以及電子地圖的研究現(xiàn)狀,同時結合地理信息系統(tǒng)的發(fā)展特點,總結了電子地圖研發(fā)方式;分析了地理信息系統(tǒng)的發(fā)展現(xiàn)狀并詳細敘述了地理信息系統(tǒng)開發(fā)的三種形式。電子地圖的地理信息和多媒體信息數(shù)據(jù)量大,有效的數(shù)據(jù)組織與數(shù)據(jù)管理是系統(tǒng)高效運行的關鍵。本文研究了電子地圖數(shù)據(jù)的組織和管理方法。。多媒體電子地圖仍然處于發(fā)展中,尚有很多問題值得我們?nèi)ヌ剿骱烷_發(fā)。

參考文獻

[1] 張家坤, 林亞平. 基于SuperMap IS的電子地圖信息服務系統(tǒng)的設計與實現(xiàn)[J]. 長沙通信職業(yè)技術學院學報 ,2006,5(3):47-51

[2] 李曙光,荊便順,尹如軍等. 交通電子地圖設計和制作[J]. 西安公路交通大學學報,2001.20(1):78-80.

第7篇:c語言開發(fā)范文

關鍵詞:JTBC;網(wǎng)站開發(fā);管理系統(tǒng)

中圖分類號:TP311.52 文獻標識碼:A文章編號:1007-9599 (2011)05-0000-02

JTBC-based Development of Mongolian Web Content Management System

Ta Na

(Inner Mongolia Autonomous Region Hulunbeir College,Institute of Computer Science and Technology,Hulunbeier,021008,China)

Abstract:In this paper,based on the "language/code/procedures"

between two separate JTBC system Mongolian secondary development web content management system thought to Mongolian web content management system development critical problems such as the display of Mongolian fonts,special layout requirements,WYSIWYG editing,the background was compared,and the overall solution of system development were discussed.

Keywords:JTBC;Website development;Management system

一、引言

蒙古民族具有悠久的歷史和燦爛的文化,目前蒙古學的研究,已經(jīng)不只局限于語言文字、文學、歷史等傳統(tǒng)學科的范圍,而向縱與橫的方面全面展開,產(chǎn)生了許多相關學科,如蒙古族哲學及社會思想史、蒙古族經(jīng)濟及經(jīng)濟史、蒙古族風俗、蒙古族藝術以及蒙古族醫(yī)學等等,蒙古學研究逐漸形成了一個較完整的體系。隨著互聯(lián)網(wǎng)的發(fā)展與普及,蒙古文化迫切需要通過網(wǎng)絡平臺進行傳播與交流。

網(wǎng)站作為信息交流的主要平臺,其建設、管理與維護主要依靠網(wǎng)站內(nèi)容管理系統(tǒng)來實現(xiàn)。近年來,中英文網(wǎng)站內(nèi)容管理系統(tǒng)的發(fā)展已比較完善,然而因為蒙古文在語言、文字方面的特殊性,蒙古文網(wǎng)站內(nèi)容管理系統(tǒng)的發(fā)展比較緩慢,蒙古文在瀏覽器中的顯示、排版等關鍵的技術問題仍沒有完美的解決方案。本文提出了基于JTBC系統(tǒng)進行二次開發(fā)蒙古文網(wǎng)站內(nèi)容管理系統(tǒng)的思路,并對如何實現(xiàn)蒙古文字體的顯示,蒙古文特殊的排版要求及所見即所得的后臺編輯等關鍵問題進行研究,提出了又一種整體解決方案。

二、系統(tǒng)開發(fā)的關鍵問題

(一)蒙古文字體的顯示問題。蒙古文字體的顯示是蒙古文網(wǎng)站建設的關鍵問題之一,從蒙古文網(wǎng)站的發(fā)展歷程上,蒙古文的顯示大致采用了如下幾種方法:

1.圖片法:直接在需要顯示文字的位置用處理好的圖片來代替顯示。這種方式顯示效果穩(wěn)定,但不能動態(tài)顯示內(nèi)容,適合于標題等相對固定的顯示方案,不適合用于正文。

2.Flash法:利用Flash內(nèi)建的嵌入字體機制來輔助實現(xiàn)。這種方法能夠適應內(nèi)容的動態(tài)變化,具有較好的顯示效果,但實現(xiàn)較為復雜,一般用于利用Flash、Flex開發(fā)的站點。

3.ActiveX控件法:頁面嵌入ActiveX控件實現(xiàn)蒙古文顯示、編輯、字體集成等功能。這種方法不僅可以解決蒙古文字體的顯示還可以解決蒙古文的排版問題,但實現(xiàn)較為復雜,并且需要用戶下載安裝控件,一般用在蒙古文的后臺編輯方面。

4.字體嵌入法:使用網(wǎng)頁嵌入字體(Web Embed Font)技術。目前主流瀏覽器都已支持CSS的 @font-face屬性在頁面中嵌入OpenType字體。這種方法不需要用戶介入字體問題,最為人性化,實現(xiàn)起來也相對簡單。

(二)蒙古文的排版問題。蒙古文的書寫格式為自上而下、從左到右,目前主流瀏覽器都不支持這種文字布局格式。如何遵從蒙古文的書寫格式在網(wǎng)頁中正確顯示是蒙古文網(wǎng)站需要解決的重點問題之一。當前網(wǎng)頁的排版大多使用CSS(Cascading Style Sheet,可譯為“層疊樣式表”)來進行控制,而主流瀏覽器所支持的CSS2版本對豎排文字的布局規(guī)則只有tb-rl(toptobutton-righttoleft,從上到下-從右到左),可喜的是W3C在CSS3中添加了tb-lr(toptobutton-lefttoright,從上到下-從左到右)的書寫方向,并明確說明tb-lr的書寫方向是針對蒙古文的書寫方向,但瀏覽器對于CSS3的全面支持可能還需要一段時間。

(三)后臺所見即所得的編輯問題。作為內(nèi)容管理系統(tǒng),后臺內(nèi)容的編輯是最重要的一個管理模塊。中英文網(wǎng)站的后臺編輯模塊發(fā)展已比較成熟,開源的Web編輯器也很多。在蒙古文網(wǎng)站內(nèi)容管理系統(tǒng)的后臺編輯模塊中,需要對蒙古文信息進行錄入、編輯、排版、。目前所有的Web編輯器都不支持蒙古文自上而下、從左至右的特殊排版格式,要想實現(xiàn)所見即所得的編輯,同時具備文本的復制、粘貼、插入等編輯功能,目前一般的方法是采用ActiveX控件的方式來實現(xiàn)。

利用ActiveX控件需要用戶進行一次控件的注冊,但對于網(wǎng)站的管理員這項操作比較明確,為實現(xiàn)蒙古文的多項編輯功能,這種方案較為合理。

三、基于JTBC開發(fā)蒙古文網(wǎng)站內(nèi)容管理系統(tǒng)的整體解決方案

JTBC網(wǎng)站內(nèi)容管理系統(tǒng)是一套可對現(xiàn)有模塊進行擴充與克隆的網(wǎng)站系統(tǒng)核心,采取語言/代碼/程序 兩兩分離的技術模式,全面使用了模板包與語言包結構,特別適合多語種網(wǎng)站的開發(fā)。JTBC系統(tǒng)具有完備的后臺管理功能,前臺頁面的組織主要通過調(diào)用模板來實現(xiàn),語種的變換由語言包來實現(xiàn)。基于JTBC系統(tǒng)開發(fā)蒙古文網(wǎng)站內(nèi)容管理系統(tǒng)主要的工作有:蒙古文語言包的配置、蒙古文調(diào)用模板的制作、后臺管理系統(tǒng)蒙古文化的實現(xiàn)以及蒙古文后臺編輯系統(tǒng)的實現(xiàn)。

(一)蒙古文語言包的配置。JTBC系統(tǒng)中所有文字的使用都是通過調(diào)用語言包中的標簽來實現(xiàn)的,因此實現(xiàn)蒙古文的調(diào)用只要在語言包中配置相應的蒙古文標簽即可,涉及的配置文件主要有三個方面:

mon/language/sel_lng.jtbc文件語系配置文件,添加語系首先要在此文件中進行配置。此文件為XML格式,需要在及標記中配置蒙古文選擇標簽。

2.Admin/common/language/guide.jtbc文件:此文件為后臺管理系統(tǒng)的語言文件,其中有語系選擇項,需要在及中添加蒙古文語系選項。

3.各模塊的語言文件:后臺所有模塊的語言文件,都是XML格式,存儲在后臺系統(tǒng)及各模塊的common/language/目錄下,后綴名為.jtbc。

關于配置文件的具體配置方法可參看JTBC系統(tǒng)幫助。

(二)蒙古文調(diào)用模板的制作。JTBC系統(tǒng)的頁面組織主要是通過調(diào)用模板來實現(xiàn),網(wǎng)站內(nèi)容根據(jù)調(diào)用模板的規(guī)則進行顯示。制作蒙古文調(diào)用模板的關鍵問題是蒙古文的顯示和如何按照蒙古文的書寫格式進行排版。建議標題、logo等靜態(tài)內(nèi)容可以采用圖片法,動態(tài)文本內(nèi)容采用字體嵌入法。蒙古文的排版問題鑒于目前主流瀏覽器尚不支持CSS3的writing-mode:tb-lr屬性,因此采用CSS+JavaScript相結合的方式進行處理。其中CSS樣式使用writing-mode:tb-rl屬性使蒙古文從右到左顯示,然后利用JavaScript程序?qū)⑽谋咀笥一Q,實現(xiàn)蒙古文自上而下、從左到右的顯示。JavaScript程序算法思想為:逐一讀取文本內(nèi)容,遇換行符截取進行左右互換。

(三)后臺管理系統(tǒng)蒙古文化。JTBC系統(tǒng)的后臺管理系統(tǒng)采用模塊化設計,進入相應的管理系統(tǒng)則調(diào)用該系統(tǒng)模塊的模板包及語言包呈現(xiàn)管理界面。后臺管理系統(tǒng)蒙古文化只要修改各模塊的模板包及語言包即可。模板文件存儲于后臺系統(tǒng)及各模塊的common/template/目錄下,后綴名為.jtbc。JTBC系統(tǒng)的模板多以表格方式制作,為了便于布局,建議采用了Div+CSS方式進行了改寫。利用writing-mode:tb-rl屬性進行豎排。此項工作涉及多個模板文件,工作量較大,但只要掌握了語言標簽與鏈接方式,就可以按照自己的意愿進行個性化的修改了。語言包的配置之前已經(jīng)介紹,這里不再重復。

(四)蒙古文后臺編輯系統(tǒng)的實現(xiàn)。在JTBC系統(tǒng)中,Web編輯器采用的是TinyMce,TinyMce是一個輕量級的基于瀏覽器的編輯器,由JavaScript寫成。TinyMce不支持蒙古文自上而下、從左到右的書寫格式,因此,想要實現(xiàn)蒙古文所見即所得的后臺編輯本文采用結合ActiveX控件的方式。TinyMce支持插件開發(fā),本文提出由ActiveX控件實現(xiàn)蒙古文所見即所得的編輯,而后以調(diào)用插件的方式將TinyMce與ActiveX控件進行結合?;贏ctiveX控件的蒙古文編輯目前研究已比較成熟,這里不過多討論。

Web編輯器與蒙古文控件的交互主要指蒙古文文本信息的相互傳遞。控件中的蒙古文文本需要傳遞到Web編輯器中顯示、保存,Web編輯器中的蒙古文文本需要傳遞到控件中進行編輯。TinyMce通過插件調(diào)用ActiveX蒙古文編輯控件,控件運行在客戶端,其屬性值不能直接提交給服務器,我們利用表單進行數(shù)據(jù)傳遞。ActiveX控件屬性通過表單的ONSUBMIT事件,賦值給表單的某一域后再提交給服務器。在TinyMce插件的顯示頁面中我們創(chuàng)建表單,定義一隱含域。在表單的ONSUBMIT事件中利用腳本將控件的文本屬性值傳遞給服務器了。在服務器端我們利用JavaScript腳本進行蒙古文的豎顯。對于控件獲取Web編輯器的蒙古文信息,直接利用變量賦值就可以了。

四、結束語

本文針對基于JTBC系統(tǒng)開發(fā)蒙古文網(wǎng)站內(nèi)容管理系統(tǒng)的各個問題進行論述,提出利用字體嵌入技術解決蒙古文的字體顯示;利用CSS結合JavaScript技術實現(xiàn)蒙古文的布局;利用ActiveX控件結合TinyMceWeb編輯器實現(xiàn)蒙古文所見即所得的后臺編輯以及通過語言包、模板包實現(xiàn)JTBC后臺管理系統(tǒng)的蒙古文化的整體解決方案。為蒙古文網(wǎng)站內(nèi)容管理系統(tǒng)的開發(fā)提出了又一種思路。隨著信息技術的發(fā)展,相信對蒙古文的支持會越來越完善,蒙古族悠久的文明、燦爛的文化也會越來越多的為世人所知。

參考文獻:

[1]蒙古族簡史.北京:民族出版社[M],2009

第8篇:c語言開發(fā)范文

關鍵詞:網(wǎng)絡應用程序;套接字;編碼;服務器端程序

中圖分類號:TP311.10 文獻標識碼:A 文章編號:1674-7712 (2012) 16-0077-01

一、引言

近年來,計算機技術取得了突飛猛進的發(fā)展,與之相伴的網(wǎng)絡應用軟件的開發(fā)也越來越多,生產(chǎn)實踐也需要更多的網(wǎng)絡應用軟件,以滿足人們的實際需求。在這樣的背景之下,各種各樣的網(wǎng)絡編程技術相繼出現(xiàn),并得到了運用和發(fā)展。在網(wǎng)絡應用程序開發(fā)中,使用套接字的方式,進而實現(xiàn)互聯(lián)網(wǎng)上的進程通訊,以達到網(wǎng)絡應用的各種功能,這是目前在網(wǎng)絡應用程序開發(fā)中的一種十分重要的方法,也具有廣泛的應用。文章主要介紹基于WinSock的網(wǎng)絡應用程序的開發(fā)問題,希望能夠引起人們對這一網(wǎng)絡應用程序開發(fā)的重視。

二、套接字的相關知識

套接字的相關知識比較多,在這里不一一介紹,重點介紹它的概念和分類。

(一)套接字的概念

網(wǎng)絡編程,也就是人們所說的編寫基于互聯(lián)網(wǎng)的應用程序。首先,這個程序需要形成網(wǎng)絡通訊管道,它是利用TCP/IP協(xié)議棧形成的,使得網(wǎng)絡上的通訊得以完成。只有這些事情完成之后,才能開發(fā)網(wǎng)絡應用程序。在網(wǎng)絡應用開發(fā)的過程中,套接字是使得進程通信得以實現(xiàn)的得力工具。從使用的效果來看,套接字是進程通信斷點的抽象,它能夠提供交換數(shù)據(jù)機制。從實現(xiàn)上來說,套接字不是別的東西,而是一個軟件機構,在這個機構里面,包含著一定的數(shù)據(jù)結構。而從使用上來說,套接字就是一個編程的接口,好比插座一般,使得機器的用電變得十分方便。為了能夠比較方便的網(wǎng)絡通訊功能,程序通過綁定套接字的方式進行。在位置上,套接字位于通訊域中,在同一個域中,不同的套接字之間進行數(shù)據(jù)的交換。事實上,Socket能夠使用的通訊協(xié)議棧不僅一種,而是多種多樣的。在網(wǎng)路層,IP尋找路由,實現(xiàn)數(shù)據(jù)在不同主機之間的交換。而在傳輸層,它是通過端口,從而實現(xiàn)端到端的傳輸服務。

(二)套接字的分類

在套接字的分類上,主要包括兩種:流式套接字和數(shù)據(jù)報套接字,用戶可以根據(jù)實際情況進行選擇。第一、流式套接字具有以下特點:它與電話系統(tǒng)比較相類似,并且能夠提供流傳輸服務,這種服務既是可靠的,同時也是面向連接的。要實現(xiàn)完整的數(shù)據(jù)傳輸,都有必要經(jīng)過以下三個程序:建立連接、使用連接、終止連接。從本質(zhì)上來看,連接是一個管道,數(shù)據(jù)連接的時候,它是從一端流入,從另外一端流出的過程,只不過是順序不一致而已,但是內(nèi)容相同,正因為這樣,流式套接字在實踐中的運用越來越廣泛。第二、數(shù)據(jù)報套接字具有以下幾個特點:它能夠提供數(shù)據(jù)報傳輸服務,并且這種服務是無連接的,它能夠支持雙向的數(shù)據(jù)流。數(shù)據(jù)的傳輸與郵政系統(tǒng)有點類似,它是通過相互獨立的數(shù)據(jù)報進行傳輸?shù)摹?shù)據(jù)報套接字在傳輸?shù)倪^程中,各分組在系統(tǒng)中是獨立的,不過不能保證分組的先后順序,對于出錯的分組也不能進行恢復或者是重新傳輸。

三、面向連接的套接字編程原理

面向連接的套接字編程原理比較復雜,文章主要從以下兩個方面進行介紹,服務器端和客戶機端程序關鍵代碼的實現(xiàn)。

(一)服務器端程序關鍵代碼的實現(xiàn)

在程序啟動的時候,對于面向連接的套接字編程。服務器和客戶機都有必要通過WSAStartup(),這樣才能夠完成對Windows Socket DLL的加載,并且還能夠?qū)μ捉幼值陌姹具M行立即的檢查,當對WSAStartup()的調(diào)用成功之后,在這個時候,應用程序才可以調(diào)用Windows Socket DLL中的其他函數(shù)。當上述步驟完成之后,接下來是定義服務器端的地址和端口號。完成對結構對象各成員的設置。當服務器端套接字調(diào)用完listen()函數(shù)之后,然后有必要完成accept()函數(shù)的調(diào)用。在該系統(tǒng)中,進行的是有連接的數(shù)據(jù)傳輸,所以,如果有數(shù)據(jù)到達的話,只需要調(diào)用recv()函數(shù),從套接字將數(shù)據(jù)取出來就可以了,既能夠?qū)崿F(xiàn)通訊和所要達到的目的。

(二)客戶機端程序關鍵代碼的實現(xiàn)

事實上,在編程方面,與服務器端的設計相比而言,面向連接套接字的客戶機端的設計要簡單得多。它的操作比較簡單,只要在流式套接字創(chuàng)建完成之后,調(diào)用connect()函數(shù),向在其啟動之前就工作的服務器套接字提出連接請求,然后成功返回,通過這樣的操作就能夠完成與服務器的連接工作。當連接建立之后,就可以實現(xiàn)與服務器數(shù)據(jù)的傳輸,這個傳輸是通過recv()函數(shù)和send()函數(shù)實現(xiàn)的。值得注意的是,客戶機在調(diào)用connect()函數(shù)的時候,有必要通過參數(shù)指出相關的信息,比如服務器的IP地址,端口號等等。

四、結束語

通過上述的介紹我們可以得知,在網(wǎng)絡應用程序的開發(fā)中,使用Socket能夠收到良好的效果,能夠屏蔽網(wǎng)絡低層復雜的結構和協(xié)議。這樣一來,使用Socket開發(fā)的軟件適用性比較強,能夠在各種網(wǎng)上運行,從而不必要擔心是什么類型的網(wǎng)絡或者是服務器。并且,該應用軟件可以比較容易的實現(xiàn)異構網(wǎng)的互連,操作也簡單方便。除此之外,使用Socket開發(fā)的網(wǎng)絡應用軟件還有一個顯著的特點,那就是程序的結構十分清楚明了,升級和維護也十分方便,在實踐中值得進一步推廣和應用。

參考文獻:

[1]趙志誠,徐玉斌,高慧敏,曾建潮.基于C/S模式的Winsock網(wǎng)絡通信程序的開發(fā)[J].計算機工程,2000(4).

[2]李鐳,喻金科,肖永生.基于Delphi下Winsock的應用程序開發(fā)與研究[J].南昌航空工業(yè)學院學報(自然科學版),2006(3).

[3]樊佩佩,王平崗.基于VB的Winsock控件遠程通信的實現(xiàn)[J].邢臺職業(yè)技術學院學報,2011(5).

第9篇:c語言開發(fā)范文

關鍵詞:TMS320C5402;最小系統(tǒng);McBSP;人機接口

中圖分類號:TN929.1 文獻標識碼:A 文章編號:1009-2374(2009)01-0120-02

TMS320C5402是TI公司54系列DSP芯片的典型代表,也是目前國內(nèi)DSP教材上介紹最多的芯片,本文所研制的實驗系統(tǒng)就是建立在TMS320C5402的基礎上。本文的研究目的是為大專院校特別是高職院校提供一個功能完備、價格低廉、技術流行、能滿足教學和開發(fā)雙重需求的DSP課程教學實驗系統(tǒng)。

一、總體設計

本文的研究工作,考察了國內(nèi)外DSP技術在教學科研領域的應用,認真分析了TMS320C54x系列DSP課程實驗教學的主要內(nèi)容,結合信號信息處理的新特點,制定了基于TMS320C5402芯片的DSP實驗開發(fā)系統(tǒng)功能方框圖,如圖1所示:

本實驗開發(fā)系統(tǒng)以TI公司的DSP芯片TMS320C5402為核心,電路的選擇充分考慮了進行DSP實驗和開發(fā)的需要。整個系統(tǒng)按照功能可以劃分為以DSP芯片為核心的最小系統(tǒng)電路和應用電路兩大部分進行設計,最小系統(tǒng)電路主要包括電源電路、時鐘電路、復位電路、片外存儲器,自舉加載器及JTAG仿真電路等;應用電路主要包括MCBSP串行通信(A/D和D/A)模塊,I/O端口應用(液晶顯示和鍵盤)模塊等。通過硬件設計和軟件設計,并把以上電路連接在一起使其成為一個完整的系統(tǒng),使該系統(tǒng)能開設出DSP課程的常用實驗和實訓項目,并可以作為基本的開發(fā)系統(tǒng)。

二、最小系統(tǒng)電路

最小系統(tǒng)模塊是使得DSP芯片TMS320C5402能夠工作的最精簡模塊,它主要包括電源電路、復位電路、時鐘電路和存儲器接口電路。

(一)電源電路

本系統(tǒng)中除了DSP以外其他器件工作電壓為5V或3.3V,所以我們采用5V電源供電。VC5402所要的工作電壓分別是1.8V內(nèi)核電壓(CVDD)和3.3V I/O 電壓(DVDD),并且DSP對這兩種電源加電次序也有要求,理想情況下兩個電源同時加電,但是一般場合很難做到,這時應先對CVDD加電,然后對DVDD上電。鑒于噪聲的簡單性,我們通過TI公司提供的DSP專用電源芯片TPS73HD318來構建電源電路,實現(xiàn)5V向3.3V和1.8V的電壓轉換,同時也避免了上電次序的問題。

(二)復位電路

C5402的復位分為軟件復位和硬件復位,軟件復位是通過執(zhí)行指令實現(xiàn)芯片的復位,硬件復位是通過硬件電路實現(xiàn)芯片的復位,硬件復位有上電復位、手動復位和自動復位三種。本系統(tǒng)中,由于我們選擇了DSP專用的電源管理芯片TPS73HD318,該芯片本身可以提供寬度為200ms的低電平上電復位脈沖,為了使系統(tǒng)電路簡單,所以不再設計自動復位電路,手動復位電路與與其他微機復位方法一樣,只是參數(shù)選擇要保證提供200ms左右的負脈沖。

(三)時鐘電路

為了實現(xiàn)DSP系統(tǒng)實時處理信號的效果,希望系統(tǒng)頻率越快越好。C5402最高可達1OOMHz工作頻率,如果仍采用傳統(tǒng)的2分頻或4分頻的方式,勢必要求外部頻率很高,這里我們采用了更加靈活的可編程PLL(Programmable Phase-Locked Loop)方式。

本系統(tǒng)中,外接晶體頻率為1OMHz,為了得到倍頻系數(shù)10,需設置時鐘模式寄存器CLKMD的值為9007h,引腳CLKMD1~CLKKMD3設計成001,則復位后VC5402的工作頻率是10×10=1OOMHz。

(四)片外存儲器

C5402的存儲空間可達192K×16bits,64K程序空間,64K數(shù)據(jù)空間,64KI/O空間。C5402片內(nèi)具有4K×16bits的ROM和16K×16bits的RAM。片內(nèi)POM和RAM可以根據(jù)PMST寄存器中的DROM、OVLY來靈活設置,使其映像在程序空間和數(shù)據(jù)空間。程序空間和數(shù)據(jù)空間未被映像的部分和64K的I/O空間全部在片外,用片外存儲器來補充。在實際的應用中,應該根據(jù)程序量的大小來選擇作為片外空間的存儲芯片的容量,以免造成不必要的浪費,本文選擇IS61LV25616AL(256K×16bits)作為程序存儲器的片外存儲芯片,選擇SST39LF200A(128K×16bits)的Flash作為數(shù)據(jù)存儲器的片外存儲芯片,以實現(xiàn)自舉加載,使C5402自成獨立系統(tǒng),圖2為硬件連接圖。

(五)JTAG仿真接口

在做實驗時,需要一個DSP仿真器,把在計算機上編譯并生成的執(zhí)行代碼下載到C5402芯片上,實現(xiàn)在線調(diào)試DSP硬件和軟件。仿真器有兩端接口,其中一端與計算機的并行口或USB口相連,這取決于仿真器的類型,另一端與DSP芯片的JTAG接口相連,這是一個14針的接口,需注意EMUO和EMU1腳應接上拉電阻,推薦阻值為4.7k或10k。

三、應用電路

(一)中斷模塊

DSP的中斷包括不可屏蔽中斷 和 ,外部中斷 ~

和軟中斷。中斷響應實際是特殊的程序調(diào)用過程。當滿足中斷響應條件時,相應的中斷服務程序被調(diào)用。中斷的使用包括中斷設置和中斷服務程序設計。本系統(tǒng)只使用了 一個中斷管腳,其他外部中斷管腳都接高電平。在做中斷實驗時,可以通過按鈕開關使腳接高電平或低電平,以給出中斷申請信號。

(二)McBSP模塊

在DSP應用系統(tǒng)設計中必不可少的是各種數(shù)據(jù)傳輸接口的設計。與并行接口相比,串行接口的最大特點是減少了器件引腳數(shù)目,降低了接口設計復雜性。多數(shù)DSP芯片提供的是同步串口,TMS320C5402提供的多通道緩沖串口(McBSP)可以很方便地與編解碼芯片(CODEC)或串行ADC直接連接,使得電路的設計更加簡捷。

TMS320C5402與TLC320AD50C硬件接口電路如圖3所示[1]。將TLC320AD50C的數(shù)字電源端DVDD接到3.3V電源,AVDD接到5V電源;管腳M/S經(jīng)過10K電阻上拉,將TLC320AD50C設置成主動工作模式;選擇INP和INM作為ADC的輸入,將AUXP和AUXM接至模擬地;DAC的正相輸出經(jīng)過一階低通濾波后送給模擬設備,反相輸出不用;管腳FC接地,系統(tǒng)只能采用軟件方式申請觸發(fā)次通信模式;數(shù)據(jù)格式為15+1比特模式。輸入主時鐘MCLK為8.192MHz,采樣頻率選擇為8KHz,內(nèi)部PLL使能(控制寄存器4中的N=8)。通過寄存器設置,將TMS320C5402的FSX、FSR、CLKR、CLKX配置為外部輸人,TLC320AD50C的SCLK配置為內(nèi)部產(chǎn)生[2]。這樣數(shù)據(jù)接收/發(fā)送幀同步信號、移位時鐘信號均由TLC320AD50C產(chǎn)生。串行口的接收/發(fā)送過程受TLC320AD50C的控制。

(三)人機接口模塊

由于DSP并不具備人機界面,在實際使用過程中,需要為它提供一個人機界面,以便于觀察運行結果或傳遞必要的控制信息。目前,DSP芯片的人機接口模塊大多數(shù)都用單片機來完成,這樣既增加開發(fā)成本又使系統(tǒng)更加復雜。本系統(tǒng)的人機接口的成功實現(xiàn)為DSP芯片直接開發(fā)人機借口模塊提供了可能。

本系統(tǒng)選用字符液晶顯示模塊LCM1602和同相三態(tài)雙向總線收發(fā)器74LS245,通過TMS320C5402的I/O口功能擴展直接構建DSP的晶顯示模塊;相應的I/O操作口地址有兩種:讀狀態(tài)、寫指令為0000H,讀數(shù)據(jù)、寫數(shù)據(jù)為0001H。通過74HC573鎖存器擴展的鍵盤由行鎖存器、列鎖存器和3×5矩陣式鍵盤組成[2];該鍵盤占用兩個I/O端口,分別為:行鎖存器為輸出口,作為寫鍵盤端口;列鎖存器為輸入口,作為讀鍵盤端口,兩端口的地址分別為:讀鍵盤端口地址RKEYP=7FFFH,寫鍵盤端口地址WKEYP=BFFFH。

(四)實驗項目

本實驗系統(tǒng)可以開設出基礎實驗和綜合實驗,還可以通過功能擴展進行簡單產(chǎn)品開發(fā)實訓。通過基礎性實驗,可以讓學生進行編程練習,熟悉集成開發(fā)環(huán)境CCS,掌握調(diào)試程序的一般方法,加深學生對TMS320C5402芯片的認識;通過綜合性實驗,可以加強學生對TMS320C5402芯片的全面了解,讓學生掌握外設和接口的使用方法,提高學生的綜合應用能力,為開發(fā)產(chǎn)品打下良好基礎;通過產(chǎn)品開發(fā)實例的訓練,可以讓學生了解開發(fā)產(chǎn)品的基本過程和基本方法,培養(yǎng)學生分析問題解決問題的能力,為今后從事產(chǎn)品開發(fā)打下良好基礎。

本系統(tǒng)的實驗項目主要包括:外部標志輸出引腳(XF)實驗、轉移控制輸入引腳實驗、Boot及flash讀寫實驗、定時器實驗、中斷實驗、FIR實驗、IIR實驗、語音通信實驗、數(shù)據(jù)采集實驗、正弦波產(chǎn)生實驗、LCD 顯示實驗、鍵盤驅(qū)動實驗等實驗項目。這些實驗項目完全能夠滿足DSP這門課程的實驗教學,同時,還可以利用本系統(tǒng)進行相關的產(chǎn)品開發(fā)。

四、結語

本文所介紹的DSP實驗開發(fā)系統(tǒng),接口電路簡單,編程方便,且該實驗開發(fā)系統(tǒng)已經(jīng)通過硬件和軟件調(diào)試,系統(tǒng)工作穩(wěn)定,所以,本系統(tǒng)有一定的推廣應用價值。

參考文獻

[1]李利.DSP原理及應用[M].北京:中國水利水電出版社,2004.