當前位置:首頁 » 編程軟體 » 棧編程

棧編程

發布時間: 2023-06-12 15:28:17

⑴ 數據結構堆棧編程(類C)

裡面有幾處需要用到地址傳遞,你用的是值傳遞,修改的地方如下:

int InitStack(SqStack &S){
//構造空棧S
S.base=(int *)malloc(STACK_INIT_SIZE * sizeof(int));
if(!S.base) return 0; //存儲分配失敗
S.top=S.base;
S.stacksize=STACK_INIT_SIZE;
return 1;
}//InitStack

int Push(SqStack &S,char e){
//插入元素e為新的棧頂元素
if(S.top-S.base>=S.stacksize){//棧滿,追加存儲空間
S.base=(int *)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(int));
if(!S.base) return 0;
S.top=S.base+S.stacksize;
S.stacksize+=STACKINCREMENT;
}
*S.top++=e;
return 1;
}//Push

int Pop(SqStack &S,char &c){
//若棧不空,則刪除S的棧頂元素,用e返回值,並返回1;否則返回0
if(S.top==S.base) return 0;
c=*--S.top;
return 1;
}//Pop

int StackEmpty(SqStack &S){
if(S.top!=S.base) return 0;
return 1;
}//StackEmpty

void Reverse(SqStack &S){
//判斷輸入字元串中&前與後部分是否為逆串,是則返回1;否則返回0

InitStack(S); char e; char c;
printf("input the string\n");
if(!StackEmpty(S)) printf("error\n");
while((e=getchar())!='&')
Push(S,e);
while((c=getchar())!='@'){

Pop(S,e);
if(e!=c) printf("error\n");
else printf("OK\n");

}
}//Reverse
不過你malloc之後沒有free會造成內存泄露。。。

linux中,怎麼看某個進程的PCB

下面是亞嵌教育嵌入式系統工程師培訓課程大綱:
課程安排課程簡介第一階段
Linux操作和編程基礎 主要介紹Linux的基本命令和基礎編程知識,包括Linux的文件操作和目錄操作命令,VI編輯器,GCC編譯器,GDB調試器和Make項目管理工具等知識。第二階段
嵌入式C語言編程基礎 主要介紹在嵌入式開發編程中C語言的重要概念和編程技巧中的重點難點,以復習串講和實例分析的形式,重點介紹包括函數與程序結構,指針、數組和鏈表,庫函數的使用等知識。第三階段
Linux上C強化編程訓練 主要包括整數演算法訓練,遞歸和棧編程訓練,位操作訓練,指針訓練,字元串訓練和常用C庫函數編程介面實踐,強化學員對Linux下基本編程開發的理解和編碼調試的能力。第四階段
Linux環境高級編程及項目開發編程實踐 主要包括系統編程(信號/系統調用/管道/FIFO/消息隊列/共享內存等),文件I/O編程(文件描述符/文件讀寫介面/原子操作/阻塞與非阻塞IO等,多任務和多線程編程(進程標識/ 用戶標識/fork與vfork/多線程概念/線程同步等),網路編程(網路基本概念/套介面編程/網路位元組次序/Client/Server結構/UDP編程);掌握Linux下Socket編程的開發流程,熟悉網路編程的調用介面函數和相關數據結構,使學員初步具備在Linux上進行系統編程開發的能力。同時綜合之前所學內容和編程技術,以小組為單位進行一個團隊合作項目的開發,考核內容包括文件I/O編程,多線程編程,網路編程和項目文檔編寫。期中考試第五階段
嵌入式處理器體系結構及編程實踐 主要介紹ARM體系結構及其基本編程知識,包括指令分類,定址方式、指令集、存儲系統、異常中斷處理、匯編語言以及C\C++和匯編語言的混合編程等知識。同時結合ARM嵌入式開發板硬體設計原理和基本硬體設計流程,分析各種外設的工作原理和驅動機制,並自己動手實踐完成一個ARM開發板上的編程大作業。第六階段
嵌入式Linux開發基礎及高級應用 主要介紹嵌入式Linux開發應用程序的基本流程和知識,包括嵌入式Linux基本概念和開發流程、Bootloader工作原理、內核裁減配置和交叉編譯、根文件系統製作、網路編程以及圖形界面和資料庫開發等知識。同時獨立完成一個基於嵌入式Linux GUI的應用編程大作業。第七階段
嵌入式 Linux驅動理論及驅動程序開發實踐 主要介紹嵌入式Linux上驅動程序開發規范,包括設備驅動程序概念、字元設備驅動程序、塊設備與網路設備、網卡驅動以及常用嵌入式設備驅動開發等知識。同時獨立實現兩種嵌入式設備驅動程序的編寫,包括驅動模塊的調試和載入以及完整的項目開發文檔的編寫。第八階段
嵌入式Linux項目團隊開發實踐鍛煉 主要包括設計並實現一個真實和完整的嵌入式項目的開發流程,涉及到數據採集、網路通訊、圖形用戶界面顯示以及嵌入式資料庫存儲系統等多種嵌入式Linux編程技術。要求學員建立起團隊開發和協同工作的企業項目開發模式的概念和流程,強化學員對編寫項目概要設計文檔和詳細設計文檔的理解,為就業前的職業技能和素質訓練做好充分准備。
培養目標:
培訓目標學習內容掌握程度掌握多種編程語言C 語言精通 ARM 匯編語言 熟悉 C++ 語言 熟悉 掌握 Linux 高級編程文件操作精通 進程/線程精通 掌握兩種嵌入式實時操作系統Linux精通 uCLinux精通 掌握兩種處理器體系結構ARM 體系結構精通 MIPS 體系結構精通 掌握ARM核處理器Samsung S3C4510精通 Samsung S3C2410精通 掌握一種 MIPS 核處理器MIPS Godson 龍芯 熟悉 MIPS Godson 龍芯 熟悉 掌握兩種硬體設計工具Candence PCB 了解 Protel 了解掌握兩種Linux下編輯軟體VI精通 EMACS 了解掌握兩種串口通訊工具超級終端 (Windows) 熟悉 MiniCOM (Linux) 熟悉 掌握三種 Flash 燒寫工具Flash Programmer (GUI) 熟悉 JFlash 燒寫軟體及原理精通 SJF系列燒寫軟體及原理精通 掌握兩種調試工具JTAG 在線調試器 熟悉 SkyEye 模擬調試工具 熟悉 掌握兩種集成開發環境ARM ADS精通 K-Develop IDE 熟悉 掌握一種源代碼版本管理工具CVS/SVN 熟悉 掌握嵌入式 Linux整體開發流程 熟悉 GNU 交叉編譯器使用Cross-compiler-gcc/g++精通 Linux Makefile 組織結構精通 Bootloader 啟動代碼u-Boot精通 RedBoot 熟悉 內核編譯配置參數設置精通 內核調試 熟悉 文件系統JFFS2 文件系統精通 NFS 文件系統精通 ROMFS 文件系統精通 EXT2 文件系統 熟悉 YAFF 文件系統 了解設備驅動程序Linux設備驅動精通 串口/GPIO精通 網卡設備驅動精通 USB設備驅動 熟悉 嵌入式圖形系統MiniGUI精通 QT/Embedded 熟悉 MicroWIN 了解嵌入式資料庫系統SQLLite精通 嵌入式應用程序開發網路通訊應用開發精通 資料庫存儲應用開發 熟悉 多媒體應用開發 熟悉 圖形用戶界面開發精通 Shell 編程技巧 熟悉 【說明】
精通:表明對於所學內容和工具的原理進行過深入分析,了解相關內容實現的具體技術細節,並掌握了相關工具的高級使用技巧。
熟悉:表明對於所學內容和工具能夠融會貫通,掌握相關內容的基本概念,並能夠熟練使用相關工具的常用技巧。
了解:表明對於所學內容和工具一般了解,能夠區別相關內容在概念上的異同,並能夠初步使用相關工具

⑶ android嵌入式開發大綱

課程安排 課程簡介

第一階段
Linux 操作和編程基礎
預備營階段主要講解 Linux 的基本命令和linux培訓基礎編程知識,包括Linux的文件操作和目錄操作命令,VI編輯器,GCC編譯器,GDB調試器和 Make 項目管理工具等知識。
該階段學生可以通過學習Linux下編程方法,完成實現一個簡單的游戲編程,例如五子棋、俄羅斯方塊、貪吃蛇等。此項任務完成後,學員的編碼量可以達到1000行,能夠進行基本程序開發。

第二階段
嵌入式環境開發核心技能
初級營階段主要講解在嵌入式開發編程中C語言的重要概念和編程技巧中的重點難點,以復習串講和實例分析的形式,重點介紹包括函數與程序結構,指針、數組和鏈表,庫函數的使用等知識。
該階段學員會進行大量的編碼練習,主要包括整數演算法訓練,遞歸和棧編程訓練,位操作訓練,指針訓練,字元串訓練,鏈表和二叉樹訓練、掌握常用C庫
函數編程介面實踐,函數指針、動態內存分配,程序預處理、鏈接原理,ELF文件格式,標准I/O庫等核心技能,強化學員對嵌入式開發環境下基本編程開發的
理解和編碼調試的能力。
該階段學員在完成上述編碼練習任務後,將獨立完成「快譯通」寶典項目開發,實現一個類「金山詞霸」字典功能的實用程序開發。該項目完成後,學員的
編碼量可以達到5000-8000行,具備初級程序員開發能力,能夠勝任企業一般開發編碼類的任務要求。

第三階段
嵌入式Linux環境高級
編程和項目開發實踐
中級營階段主要講解包括系統編程(信號/系統調用/管道/FIFO/消息隊列/共享內存等),文件I
/O編程(文件描述符/文件讀寫介面/原子操作/阻塞與非阻塞IO等),多任務和多線程編程(進程標識/用戶標識/fork與vfork/多線程概念/線
程同步等),網路編程(網路基本概念/套介面編程/網路位元組次序/ Client/Server 結構/ UDP
編程);掌握Linux下Socket編程的開發流程,熟悉網路編程的調用介面函數和相關數據結構,使學員初步具備在Linux上進行系統編程開發的能
力。同時還會講解搭建嵌入式 Linux
開發環境,包括嵌入式Linux基本概念和開發流程、內核裁減配置和交叉編譯、根文件系統製作、網路編程等知識。
該階段學員將綜合之前所學內容和編程技術,以小組為單位進行一個團隊合作項目的開發,完成一個嵌入式產品「數碼相框」的設計和實現,涉及技術內容
包括文件I/O編程,多線程編程,網路編程和項目文檔編寫。該項目完成後,學員的編碼量可以達到10000-15000行,具備中級程序員開發能力,能夠
勝任企業項目開發和產品開發類的任務要求。

第四階段
嵌入式Linux開發方向 Android開發方向
(2選1)
高級營課程將按照學員興趣和特長,選擇2個專業選修方向進行深入學習,包括:
·嵌入式ARM硬體開發(公共部分)
·嵌入式Linux開發方向
·Android手機開發方向
該階段完成後,學員的編碼量可以達到和超過20000行,具備獨立開發項目,完成嵌入式產品軟體設計和實現的能力。

以下為這2個方向的詳細描述:

嵌入式ARM硬體開發
(公共部分)
該部分學習的內容包括ARM體系結構、指令集、裸板開發等等,該階段要求學員完成從0開始的Bootloader項目:
·Bootloader項目(從0啟動硬體,載入Linux內核)
該項目主要涉及
ARM體系結構及其基本編程知識,包括指令分類,定址方式、指令集、存儲系統、異常中斷處理、ARM匯編語言以及C和匯編語言的混合編程,ARM開發板啟
動代碼的框架分析等知識。同時要求結合ARM嵌入式開發板硬體設計原理圖分析各種外設的工作原理和驅動機制,並自己動手實踐完成一個ARM開發板上的
Bootloader編程大作業。

嵌入式Linux開發方向
—上層應用開發
該部分主要針對上層應用開發,學習的內容包括C++面向對象編程基礎、QT圖形界面開發、網頁腳本語言、SQLite資料庫等知識。
該階段要求學員設計並實現1個真實完整的嵌入式項目開發流程,該方向的項目選題可以從以下項目案例中任選:
·廣告機項目(互動式多媒體網路系統)
·飛鴿傳書項目(區域網文件共享系統)
·QQ聊天室項目(多客戶登錄即時通訊系統)
·數據採集和遠程式控制制項目(Web遠程式控制制系統)
以上項目開發,涉及到文件I/O編程、資料庫編程、網路通訊、以及圖形界面開發等多種嵌入式Linux編程技術,要求學員建立起團隊開發和協同工
作的企業項目開發模式的概念和流程,強化學員對編寫項目概要設計文檔和詳細設計文檔的理解,為就業的職業技能和素質訓練做好充分准備。

嵌入式Linux開發方向
—底層驅動開發
該部分主要針對底層驅動開發, Linux設備驅動程序開發規范、USB協議規范、LCD液晶屏/TS觸摸屏/網卡/AC97音效卡等硬體驅動開發知識。
該階段要求學員實現2-5個真實的硬體設備驅動,該方向的項目選題可以從以下項目案例中任選:
·CS8900網卡驅動
·USB驅動
·LCD液晶屏驅動
·TS觸摸屏驅動
·AC97音效卡驅動
·串口驅動
上述項目主要涉及嵌入式 Linux
上驅動程序開發規范,包括設備驅動程序概念、字元設備驅動程序、塊設備與網路設備、網卡驅動以及常用嵌入式設備驅動開發等知識。要求學員獨立實現至少2種
嵌入式設備驅動程序的編寫,包括驅動模塊的調試和載入以及完整的項目開發文檔的編寫。

專業選修方向二
Android開發方向
該方向主要為了滿足人才合作單位對Android高端技術人才的需求而設,基於對市場最前沿高端平板電腦產品方案的研發實踐,使學員系統全面地掌握多核Android平台上的開發技術,滿足企業對有實際開發經驗的Android高端工程師的需求。
該階段要求學員學習Android系統框架、Android系統移植優化和Android應用開發等知識,完成2個商業級android項目。該方向的項目選題可以從以下項目案例中任選:
·mp3/mp4播放器(實現各種媒體格式的播放功能)
·雲點閱讀器(能夠瀏覽epub、txt等文檔)
·點菜系統(酒店點菜系統, 實現菜單瀏覽,下單)
·游戲引擎(開發完整的android平台游戲引擎)
上述項目均採用最新Android高端硬體平台:NVIDIA Tegra2雙核1GHz,3D、flash、高清硬體加速,基於ARM Cortex-A9內核,支持重力感測,WiFi無線網路,3G上網,HDMI高清介面。

⑷ 易嵌教育南京分中心的Android系統開發班

Android系統開發課程體系 課程目標 本課程採用理論教學與項目實訓相結合的方式,系統地介紹了全世界最流行和普及的移動平台android系統以及基於android系統的應用開發。培訓內容強化了java編程思想、設計模式,java資料庫,和web 編程,在此基礎上深入了解和掌握android系統的源碼結構,android四大組件的使用,android ndk,android bsp的移植和開發。滿足企業對3G通信系統的android軟體開發工程師需求。
課程目標包括:
u 精通liunx操作系統使用;
u 精通liunx下C和C++高級編程知識,熟練編寫C和C++程序;
u 精通嵌入式liunx高級應用開發和網路介面開發;
u 精通java語言開發和設計;
u 精通android平台下sdk編程;
u 熟悉android平台下ndk編程;
u 掌握android framework編程;
u 掌握android bsp的移植和開發 培訓證書 ◆ARM 公司全球統一培訓認證證書 ◆ Linux系統開發工程師認證證書
◆ Linux應用開發工程師認證證書 ◆3G應用開發工程師認證證書。 教學環境 當地校園或者辦公樓處教學,結合項目團隊進行實訓,提高整體的項目實戰能力和就業競爭力,為學員打造一個實實在在的工作氛圍提高學習熱情,盡早融入企業項目氛圍。本課程教學採用理論授課和上機實踐相結合,結合企業項目需求實戰的方式進行教學。每名學員配置一套嵌入式硬體開發板和筆記本電腦。 授課特點 ◆培訓中採用案例教學方式,強化學生的動手能力和操作能力;
◆每一階段課程結束後通過項目實訓的方式,使學生綜合理解和掌握所學的知識;
◆要求當天實訓習題必須當天完成,建議能夠晚上加班項目實訓,分階段考試,並考試情況進行輔導和強化;
◆提供學員全面職業素養教育和面試指導及職業規劃。 課程進度安排 ●就業提高和基礎強化 第一階段嵌入式開發基礎(40課時) 階段目標 從零基礎開始,讓您能熟練地安裝和使用linux。熟練地進行linux下各種編譯和編輯工具。熟練地搭建linux交叉編譯環境。 課程內容 ◆ Linux基礎知識和系統安裝
◆ 交叉環境的搭建;開發板的初步認識和環境建立;
◆ Linux常用命令,文本編輯器vi,簡單shell腳本編程;
◆ Linux開發環境基礎:Gcc,Gdb,Make和Makefile;
◆ 軟體版本管理器Svn;
◆ 嵌入式軟體開發環境搭建與使用,開發板平台內核系統的燒寫; 第二階段嵌入式C語言編程(120課時) 課程內容 ◆復習C語言基礎知識,強化指針和數組概念,學習數據結構和一些基本演算法;
◆通過大量編程實例重點講解C語言的高級編程知識,包括函數與程序結構、指針、數組;
◆重點講解數據結構的基礎內容,熟練地應用鏈表、隊列、棧等編程;
◆深入介紹掌握常用C庫函數編程介面實踐,函數指針、動態內存分配,程序預處理、鏈接原理,標准I/O庫等核心技能。
◆深入地進行遞歸和棧編程訓練,位操作訓練,指針訓練,字元串訓練,鏈表和二叉樹訓練。
◆深入介紹C程序在編譯時與運行時的基本原理,及其程序的內存分布。
◆強化學員高質量的C語言編程規范和嵌入式編程要點,對嵌入式開發環境下基本編程開發的理解和編碼調試的能力。 項目實訓 該階段學員在完成上述的大量編碼練習任務後,將獨立完成一個「網優管理系統」,「學生管理系統」,「車站管理系統」等實際項目開發的程序開發。該項目完成後,學員的編碼量可以達到5000-8000行,能夠勝任企業一般開發編碼類的任務要求。 第三階段linux系統程序設計(80課時) 階段內容 ◆ 學習Linux操作系統基礎和特點,操作系統中進程與調度,操作系統中的並發的理論。
◆ 系統編程(信號/系統調用/管道/FIFO/消息隊列/共享內存等),文件I/O編程(文件描述符/文件讀寫介面/原子操作/阻塞與非阻塞IO等),
◆ 多任務和多線程編程(進程標識/用戶標識/fork與vfork/多線程概念/線程同步等)
◆ 網路編程(網路基本概念/套介面編程/網路位元組次序/ Client/Server 結構/ UDP 編程);掌握Linux下Socket編程的開發流程,熟悉網路編程的調用介面函數和相關數據結構,使學員初步具備在Linux上進行系統編程開發的能力。
◆ 深度地熟悉Linux系統介面及調用,熟練地進行GDB高級調試,靜態/動態庫創建和調用。。
◆ 深度地熟悉網路分層模型。實現基本的TCP/IP的編程。 項目實訓 網路通信終端項目訓練;提高操作系統理論和編程的核心點,深入了解Linux系統調用功能,開發Linux環境下多任務編程,掌握網路socket介面調用的方法,開發終端程序,並熟練使用開發工具進行調試。 第四階段Java語言高級特性(80課時) 課程內容 ◆ Eclipse開發工具的使用;
◆ Java基本數據類型與表達式,Linux下面Java編譯,Linux下面Makefile和ant詳解,抽象,封裝,繼承,多態,類與對象,對象初始化和回收,方法的控制流程,異常處理,方法的重載,數組,類的組織與繼承機制,繼承的實現,構造方法的重載與繼承,介面的概念與應用,最後講述多線程和網路編程,多線程的基本概念,線程的使用方法,線程的同步,Java網路編程基礎,使用URL訪問WWW資源和基於Socket的客戶和伺服器編程.;
◆ 設計模式的基礎概念 項目實訓 使用java語言設計一個小游戲,如五子棋或俄羅斯方塊 ● 能力提高和技術提升 第五階段android sdk程序設計(80課時) 課程內容 ◆android sdk開發環境的搭建
◆android下activity控制項的使用;
◆android下intent的使用;
◆android下content provider的使用;
◆android下用戶界面的設計和androidmanifest的解析
◆android下通過SQLite訪問電話薄 第六階段android高級程序設計(80課時) 課程內容 ◆ android網路編程
◆android多媒體編程
◆android圖形編程和游戲編程基礎
◆android感測器,電話,簡訊,GPS等介面編程 實戰項目 1 Java實訓階段游戲移植至android上
2 Android的平台下簡易多功能播放器實現
3 其餘商業性的app開發 第七階段android framework開發(40課時) 階段內容 ◆ JNI和android ndk編程
◆android IPC機制介紹
◆android power management
◆android電話功能簡介
◆android HAL層介紹 項目實訓 第八階段android bsp開發(80課時) 課程內容 ◆ 掌握Linux的三類設備的驅動程序的基本結構,掌握用戶空間與內核空間的數據傳輸,內核中同步、互斥、阻塞、睡眠機制;熟練地開發阻塞/非阻塞型字元驅動設備的開發。
◆ 理解並掌握1inux內核中斷子系統的實現原理,掌握linux中斷處理程序編寫方法;掌握內核延時機制及內存管理機制。
◆ 了解Linux塊設備,MTD設備驅動的特點與框架,具備MTD Nand Flash驅動程序開發的能力;
◆ 深入理解Linux網路驅動程序中有關套接字(socket)、套接字緩沖區(sk_buff)等概念,了解網路驅動程序的數據交換過程網路設備驅動程序開發及實例;
◆ 深入學習嵌入式Linux顯示驅動程序framebuffer的開發方法,理解嵌入式Linux圖形驅動程序實現機制,完成針對各種LCD硬體驅動的定製;
◆學習TouchScreen、KeyBoard驅動編寫過程;熟悉對驅動程序編程流程和測試。 ● 項目實訓及就業測評 第九階段:實訓項目(120課時) 階段目標 著重綜合地進行學習工程項目開發流程,其中包括項目需求、項目設計、程序編碼、程序調試與測試、版本發布。讓學生提前體驗並參與整個項目開發流程。通過以團隊方式分解項目,協作開發、各學員扮演不同角色並以不同的角色進行。 實訓內容 ◆學習工程項目開發流程:項目需求、項目設計、程序編碼、程序調試與測試、版本發布
◆以團隊方式分解項目,協作開發、各學員扮演不同角色; 第十階段: 畢業測評及就業指導 畢業測評及就業指導 ◆由技術專家對學員進行項目開發答辯;
◆簡歷優化提煉;
◆模擬面試訓練、職業前引導 Android課程結構示意圖

熱點內容
非加密公章 發布:2025-02-10 09:09:52 瀏覽:620
京東登錄密碼如何清除 發布:2025-02-10 09:07:41 瀏覽:689
dns伺服器地址192 發布:2025-02-10 09:07:39 瀏覽:661
redis緩存實現 發布:2025-02-10 09:01:26 瀏覽:710
後台登錄腳本 發布:2025-02-10 08:56:11 瀏覽:658
我的辣雞賬號和密碼是多少 發布:2025-02-10 08:55:37 瀏覽:690
超父演算法 發布:2025-02-10 08:43:05 瀏覽:910
電腦主機配置需要哪些硬體 發布:2025-02-10 08:22:52 瀏覽:706
平板太卡換存儲卡有用嗎 發布:2025-02-10 08:14:16 瀏覽:828
台北伺服器搭建 發布:2025-02-10 08:13:33 瀏覽:273