第一篇:C/C++軟件工程師崗位職責
1.設計并實現高效的算法和數據結構。
2.開發一個或多個關鍵軟件組件并且負責它們的接口定義,實現優化調試和維護。
3.與本地和海外的項目組成員交流。
第二篇:c++軟件工程師
職位解析
1、按照公司產品開發計劃完成軟件設計工作;
2、根據設計報告,進行編碼,并參與代碼的評審測試工作;
3、相關軟件的維護完善和升級工作;
4、具有通信核心網相關經驗,熟悉通信系統協議軟件開發原理和流程,熟悉WCDMA/TD-SCDMA協議或H.248、BICC、SIGTRAN協議者優先;
5、負責產品新版本完成后對其進行功能測試,異常測試,性能測試以及系統測試等工作。從業要求
1、計算機、通信相關專業本科及以上學歷,2年以上相關工作經驗;
2、精通C、C++等開發語言,熟練掌握和使用C++Builder工具,具有1-2年的使用時間;熟悉INFOMIX、Oracle、SQL Server等主流數據庫技術,SNMP、CORBA等網管協議,Solaris操作系統;
3、具備嵌入式實時系統開發經驗或網管軟件開發經驗;
4、具備移動通信無線接入網操作維護開發經驗;熟悉通信系統協議軟件開發原理和流程及WCDMA/TD-SCDMA協議者優先;
5、良好的團隊合作能力;
6、良好的英語水平。
薪資分析
C/C++軟件工程師的月薪范圍一般在3500-10000元之間。一般而言,剛剛畢業的大學生以及擁有1-3年的工作經驗者的月薪通常在3500-4500元左右,擁有3-5年工作經驗者的月薪通常在5000-7000元之間,擁有更豐富的工作經驗且跟過大型開發項目的高級C/C++軟件工程師的月薪有時可高達萬元;從學歷角度看,擁有碩士學歷的起薪多在3000-4000元之間,擁有本科學歷的起薪多在3000元左右,擁有大專學歷的起薪多在2000元左右;從地域上面來看,北京、上海等大城市的起薪多在3500元以上,其他中等城市的起薪則會低些。職位規劃
C++軟件工程師-C++高級軟件工程師
職位充電
C、C++開發語言、C++Builder工具、主流數據庫技術、SNMP、CORBA等網管協議、Solaris操作系統等
編輯本段就業前景
權威部門統計,我國目前C/C++軟件開發人才缺口每年為10萬人左右,未來隨著信息化、數據化不斷提速,這一數字還將成倍增長.,如果這一問題得不到解決,軟件產業未來將面臨危機。因為C/C++軟件人才的嚴重稀缺,C/C++軟件工程師的薪資水平正有逐年遞增的趨勢。
據調查,初、中級C/C++軟件開發工程師的年薪目前為5萬-15萬元,高級軟件工程師則高達15萬-30萬元。市場最緊缺的C/C++技術總監或項目總監年薪更高。C/C++軟件工程師的年薪與JAVA軟件工程師和.NET軟件工程師的年薪相比一般平均要高于2-3萬。據專家預測,C/C++軟件工程師是未來幾年最熱門和最受歡迎的職業之一。
參考資料:
1.C++軟件工程師的就業優勢
http:///index.php/article/144/3984
第三篇:軟件工程師崗位職責(軟件)
1.完成軟件系統代碼的實現,編寫代碼注釋和開發文檔。
2.輔助進行系統的功能定義、程序設計。
3.根據設計文檔或需求說明完成代碼編寫、調試、測試和維護。
4.分析并解決軟件開發過程中的問題。
5.協助測試工程師制訂測試計劃,定位發現的問題。
6.配合項目經理完成相關任務目標。
第四篇:項目經理(C/C++)崗位職責
1.參與軟件架構設計工作,負責系統設計。
2.協助軟件架構師實現影響系統架構的關鍵用例。
3.負責核心模塊的編碼工作。
4.指導開發員的編碼工作。
第五篇:C、C++總結
1、類:類是一種抽象的數據結構,用來描述對象的屬性,是將不同數據類型的數據以及與這些數據相關的操作封裝在一起的集合體。(封裝性)
一個類的對象所占空間的大小由它的數據成員所占據的空間總和決定;當類有virtual函數時,再加上4個字節的大小。
2、面向過程與面向對象程序設計的不同:
(1)過程是基于算法的,而對象是基于類的;
(2)過程是以函數(過程)的設計來實現的,而對象是以類的設計來實現的;
(3)過程通過數據流圖(流程圖)來體現的,而對象是通過類圖(用例圖)來體現的;(4)過程需要將步驟一步一步的具體化,而對象則只注重類的設計,不管實現方法。
3、面向對象的四大特點:抽象、封裝、繼承、多態
4、訪問控制權限:
(1)public公有型:外部可以訪問
(2)protected 保護型:除了本類、子類與友元可訪問外其它的都不能訪問(3)private 私有型:除了本類外,外部的都不能訪問
5、類與對象的區別:
(1)二者的定義不同:類是不同類型數據及其相關操作的集合,對象則是類的實例化(2)類是個類型,不占空間,但對象占空間。
(3)類是類型而不是數據對象,每個類的對象都是該類數據成員的拷貝
6、繼承與派生的目的:(1)實現代碼的重用
(2)使已存在的類不需修改地適應新應用 7.繼承的特點:
(1)每個派生類代表基類的特定版本
(2)基類的屬性和方法,派生類必須擁有(構造與析構不會被繼承)8.繼承的3種方式:public,private,protected
9、多態:是指發出同樣的消息被不同類型的對象接收后導致完全不同的行為(1)多態的條件:
○1有兩個是父子關系的類 ○2有同名的虛函數
○3有父類指針或引用調用子類對象(2)多態的實現:
函數的重載 運算符重載 虛函數
1、static有什么用途?(請至少說明兩種)關鍵字static的作用是什么?
定義靜態變量 1.限制變量的作用域 2.設置變量的存儲域
C和C++中static用法(1)C中:
○1當一個變量被定義成static型時,表明該變量是一個靜態變量,存儲在靜態存儲區中,只能被定義初始化一次;特別的當全局變量被定義成static型時,還表明該變量不能被外部文件所引用
○2當一個函數被聲明為static型時,表明該函數是一個靜態函數,不能被外部文件所調用
1(2)C++的類中:
○1當類的數據成員被聲明為static型時,表明該成員是一個能被所有對象共享的數據成員,不與任何具體對象掛勾
○2 當類的成員函數被聲明為static型時,表明該成員是靜態成員函數。
2、引用與指針有什么區別? 1)引用必須被初始化,指針不必。
2)引用初始化以后不能被改變,指針可以改變所指的對象。2)不存在指向空值的引用,但是存在指向空值的指針。
3、描述實時系統的基本特性
在特定時間內完成特定的任務,實時性與可靠性
4、全局變量和局部變量在內存中是否有區別?如果有,是什么區別? 全局變量儲存在靜態數據庫,局部變量在堆棧 5 什么是平衡二叉樹?
左右子樹都是平衡二叉樹 且左右子樹的深度差值的絕對值不大于1
6、堆棧溢出一般是由什么原因導致的? 沒有回收垃圾資源
7、什么函數不能聲明為虛函數? constructor 8 冒泡排序算法的時間復雜度是什么? O(n^2)
9、Internet采用哪種網絡協議?該協議的主要層次結構? tcp/ip 應用層/傳輸層/網絡層/數據鏈路層
10、Internet物理地址和IP地址轉換采用什么協議? ARP(Address Resolution Protocol)(地址解析協議)
11、.IP地址的編碼分為哪倆部分?
IP地址由兩部分組成,網絡號和主機號。不過是要和“子網掩碼”按位與上之后才能區分哪些是網絡位哪些是主機位。
12、分別給出BOOL,int,float,指針變量 與“零值”比較的 if 語句(假設變量名為var)
BOOL型變量:if(!var)int型變量: if(var==0)float型變量:
const float EPSINON = 0.00001;
if((x >=-EPSINON)&&(x <= EPSINON)
指針變量:
if(var==NULL)
13、不能做switch()的參數類型是: switch的參數不能為實型/
14、局部變量能否和全局變量重名?
答:能,局部會屏蔽全局。要用全局變量,需要使用“::” /
15、如何引用一個已經定義過的全局變量? 答:extern
16、全局變量可不可以定義在可被多個.C文件包含的頭文件中?為什么? 答:可以,在不同的C文件中以static形式來聲明同名全局變量。
17、語句for(;1 ;)有什么問題?它是什么意思?
答:和while(1)相同。
18、do??while和while??do有什么區別?
答:前一個循環一遍再判斷,后一個判斷以后再循環
18、static全局變量與普通的全局變量有什么區別?static局部變量和普通局部變量有什么區別?static函數與普通函數有什么區別?
static全局變量與普通的全局變量有什么區別:static全局變量只初使化一次,防止在其他文件單元中被引用;static局部變量和普通局部變量有什么區別:static局部變量只被初始化一次,下一次依據上一次結果值;
static函數與普通函數有什么區別:static函數在內存中只有一份,普通函數在每個被調用中維持一份拷貝。
程序的局部變量存在于(堆棧)中,全局變量存在于(靜態區)中,動態申請數據存在于(堆)中。
19、sizeof(...)是運算符,它的功能是:獲得保證能容納實現所建立的最大對象的字節大小;strlen(...)是函數,要在運行時才能計算。參數必須是字符型指針(char*)。它的功能是:返回字符串的長度。20、隊列和棧有什么區別? 隊列先進先出,棧后進先出
21、在c語言庫函數中將一個字符轉換成整型的函數是atool()嗎,這個函數的原型是什么?
函數名: atol 功 能: 把字符串轉換成長整型數
用 法: long atol(const char *nptr);
22、對于一個頻繁使用的短小函數,在C語言中應用什么實現,在C++中應用什么實現? c用宏定義,c++用inline
25、直接鏈接兩個信令點的一組鏈路稱作什么? PPP點到點連接
26、軟件測試都有那些種類? 黑盒:針對系統功能的測試
白合:測試函數功能,各函數接口
27.確定模塊的功能和模塊的接口是在軟件設計的那個隊段完成的? 概要設計階段
28/TCP/IP通信建立的過程怎樣,端口有什么作用? 三次握手,確定是哪個應用程序使用該協議 29/進程和線程的差別。
線程是指進程內的一個執行單元,也是進程內的可調度實體.與進程的區別:(1)調度:線程作為調度和分配的基本單位,進程作為擁有資源的基本單位
(2)并發性:不僅進程之間可以并發執行,同一個進程的多個線程之間也可并發執行
(3)擁有資源:進程是擁有資源的一個獨立單位,線程不擁有系統資源,但可以訪問隸屬于進程的資源.(4)系統開銷:在創建或撤消進程時,由于系統都要為之分配和回收資源,導致系統的開銷明顯大于創建或撤消線程時的開銷。30、測試方法
人工測試:個人復查、抽查和會審
機器測試:黑盒測試和白盒測試
31、Heap與stack的差別。Heap是堆,stack是棧。
Stack的空間由操作系統自動分配/釋放,Heap上的空間手動分配/釋放。Stack空間有限,Heap是很大的自由存儲區
C中的malloc函數分配的內存空間即在堆上,C++中對應的是new操作符。
1、軟件測試(英語:software testing),描述一種用來促進鑒定軟件的正確性、完整性、安全性和質量的過程。換句話說,軟件測試是一種實際輸出與預期輸出間的審核或者比較過程。軟件測試的經典定義是:在規定的條件下對程序進行操作,以發現程序錯誤,衡量軟件質量,并對其是否能滿足設計要求進行評估的過程。流程:1.軟件測試流程 :需求了解--測試計劃--測試設計--測試用例編寫--測試執行--bug管理跟蹤--測試報告生成
2.bug就是測試過程中發現的程序缺陷,可以指需求上的,也可以指功能、性能上的
3.bug提交有多種方式,可以通過測試管理工具來管理bug,比如QC等 4.bug的生命周期: 發現bug(open)--修復bug(fixed)--關閉bug(closed)4.軟件測試方法:是指測試軟件性能的方法。包括有:白盒測試、黑盒測試、動態測試(單元測試、集成測試、系統測試、驗收測試、回歸測試等。)
5.測試工具:三類軟件測試工具: Mercury測試工具,Rational測試工具,Segue測試工具,qtp自動化測試工具和AutoRunner工具
6.測試內容:負載壓力、功能測試、白盒測試、測試管理、測試輔助。
2、算法(Algorithm)是一系列解決問題的清晰指令,即能夠對一定規范的輸入,在有限時間內獲得所要求的輸出。圖像處理算法工程師
1、一個算法的優劣可以用空間復雜度與時間復雜度來衡量。
2、一個算法應該具有以下五個重要的特征: 有窮性、確定性、輸入、輸出、可行性。
3、冒泡排序(BubbleSort)一次比較兩個元素,如果他們的順序錯誤就把他們交換過來?;靖拍钍牵阂来伪容^相鄰的兩個數,將小數放在前面,大數放在后面。即在第一趟:首先比較第1個和第2個數,將小數放前,大數放后。然后比較第2個數和第3個數,將小數放前,大數放后,如此繼續,直至比較最后兩個數,將小數放前,大數放后。此第一趟結束,將最大的數放到了最后。在第二趟:仍從第一對數開始比較(因為可能由于第2個數和第3個數的交換,使得第1個數不再小于第2個數),將小數放前,大數放后,一直比較到倒數第二個數(倒數第一的位置上已經是最大的),第二趟結束,在倒數第二的位置上得到一個新的最大數(其實在整個數列中是第二大的數)。如此下去,重復以上過程,直至最終完成排序。由于在排序過程中總是小數往前放,大數往后放,相當于氣泡往上升,所以稱作冒泡排序。
4快速排序:基本思想是:通過一趟排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另外一部分的所有數據都要小,然后再按此方法對這兩部分數據分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數據變成有序序列。
算法的時間復雜度是一個函數,它定量描述了該算法的運行時間。一個程序的空間復雜度是指運行完一個程序所需內存的大小。