百煉編程
『壹』 作為小白如何快速學習php
1. HTML
網站製作的基礎,瀏覽器打開任意一個網頁,查看其源碼都是看到的HTML。因為HTML是網站頁面最終的表現形式。網站頁面所有的內容都需要通過HTML展現,所以學習PHP必學的基礎首先就是HTML,HTML很簡單,它甚至都不能算做一門編程語言,而是一個標記語言。HTML就是一些標簽,頁面的內容就放在一個個標簽裡面。
2. javaScript
JavaScript會比HTML和CSS難一點,不過入門很簡單,跟著教程練習學起來會更加順利。如今JavaScript被炒得比較火(庫和框架滿天飛,用得最多的還是jQuery),不過學習好基礎才是最重要的,正所謂萬變不離其宗。學習建網站,當然就要勤動手,鞏固好基礎。學了JavaScript,對PHP中的很多概念也都明白了,因為編程語言裡面很多東西都是相通的。
3. CSS
學習了HTML,知道頁面的內容是怎麼展現的了。那麼我們是不是可以把頁面展現得更漂亮呢(畢竟這是一個看臉的時代~),平時我們看到的那些漂亮的網站頁面,大多數都是通過CSS來美化的。CSS代碼都是些樣式屬性,這些樣式屬性添加到HTML元素上面,對應的HTML元素的樣式就會被CSS改變,學起來會很快,因為編寫HTML和CSS可以直接在瀏覽器上面看到效果,非常有意思!
『貳』 javascript百煉成仙在哪看
書店購買或網上購買。
這是一本講解JavaScript編程語言的技術書籍,只不過,本書採用了一種全新的寫作手法。
如果你厭倦了厚厚的、如同字典般的編程書籍,不妨嘗試一下新的口味!
通過本書,你可以領悟到JavaScript的函數七重關秘籍;通過本書,你可以輕松學會使用jQuery作DOM對象;通過本書,你可以學會目前流行的Vue基礎語法;通過本書,你還可以學會新的ES6常用語法。
本書可作為JavaScript初學者入門的趣味讀物
『叄』 匯編編程問題,我需要一個 匯編代碼
-------------4月14日修改-------------------------
如果一定要問匯編和C哪個對硬體控制比較精確
那肯定是匯編
想一下就知道,我在先前的回答里說C是要翻譯成匯編語句的,比如一個簡單的C賦值語句 『= 』,在匯編里至少就要翻譯成兩三句,也就是說你如果用匯編,你幾乎可以隨心所欲的操縱計算機(當然,前提是你對計算機了解透徹)
但是不推薦用匯編,為什麼呢,開發效率不高,或者說實在是太低了。為了些個用C 100行代碼就搞定的程序,你要用500行或者更多的匯編來寫,何必呢?
建議是用C,然後選一款好的編譯器。好的編譯器都是經過很長一段時間的改良,絕對能比我們現在的水平寫出的匯編代碼高效
當然,某些地方如果很有必要必須自己控制,那就用匯編寫。就比如微軟API中StdWndProc窗口過程是用匯編寫的一樣。但是這種情況非常少。 精確控制和開發效率還是需要自己衡量一下的,不要盲目的追求其中的某一方面
所謂的內核,其實是軟體系統的最底層,一般都是對硬體的直接控制
所以很講究速度
最快的操縱硬體的編程語言當然是機器語言,也就是一串的010101數字,代表著電路中的高低電平,計算機可以識別這些,這就是它的語言,用計算機的語言來操作計算機速度是最快的
在機器語言的上一層就是匯編語言,是人類對復雜的機器語言的第一層抽象,有一些簡單的指令集,如mov等,是人類可以理解的但是計算機需要經過編譯器編譯成機器語言才能執行。
也就是說,發明匯編語言的目的就是為了用一種人類可以理解的語言來編寫計算機程序
在匯編語言之上,C誕生了。C是結構化程序設計語言的經典之作,C嚴格來說不能算是一種高級語言,而是「中級語言」,它使用了比匯編語言更容易讓人類理解和記憶的操作符等,卻比其他的高級語言有更好的硬體操作。所以我們做嵌入式開發的時候會用到C
C++是和JAVA等齊名的OOP,面向對象編程語言
都很好的體現了面向對象的編程思想
對於現在主流操作系統的內核一般都是C和匯編結合寫
之所以用C而不用C++,是因為現在的內核一般都遵從「微內核」的思想
也就是內核只寫整個系統最典型最底層最基本的功能
這採用結構化設計語言是最好的,因為可以很清楚的設計各個模塊
面向對象編程語言寫的內核不是說沒有,只是由於面向對象編程思想在系統結構方面往往沒有結構化設計語言寫的系統清晰,所以一般用於應用層軟體的編寫。
回答最後幾個問題: 匯編和C,對硬體的控制肯定是匯編最好,因為它可以直接翻譯成機器語言。用C的話如果你有編譯器,單步調試跟進CPU的時候你會發現其實它就是被翻譯成一系列匯編語句。
當然,這句話並不是說用匯編就一定快,主要看你的編程水平。因為C得編譯器都是經過千錘百煉的(如DEV C)等,用這些編譯器翻譯C語句生成的匯編語句往往比你自己寫的快
看你自己選擇吧。寫匯編很痛苦的。祝你好運咯,希望能幫上你
『肆』 匯編語言編程既然效率高、體積小那麼為什麼軟體不用匯編語言編寫呢
匯編通用性差,不同型號的CPU,都會帶來巨大差異,匯編缺乏一個有效的底層管理,編寫的程序會BUG成堆,匯編缺乏各種開發包支持,編復雜的程序幾乎成為不可能,他的缺點根本無法用它的效率彌補,如果真用匯編,反而會因為程序寫的蹩腳,反而運行效率也大大降低。。。只有移植代碼會用會編寫,因為需要他進行硬體隔離,讓軟體編程在邏輯上和硬體無關。。。
雖然所有程序都要有轉化匯編這一條,但是人家都是一個千錘百煉的編譯器在做這個事,可靠性不用懷疑,如果用匯編,這種事就要親自上手,你覺得一個程序員寫的匯編能和編譯器拼可靠性嗎??
編程首要任務是縮短開發周期短,工作量小,至於代碼運行慢,根本就不是個事,高性能CPU一大把,你用匯編導致的工期延長,買幾百CPU沒問題,編程發展到今天,匯編除了進行BUG排查,底層代碼移植,關鍵代碼編寫,需要用,其他都不用。。。因為應用軟體用匯編,幾乎變的不可能,連個有效的開發庫都沒有,算個乘方開方這些數學上的東西都是個問題,你說這程序怎麼編。。。。。
『伍』 求像北大百練POJ那樣的提供程序設計題目的網站的網址,最好是中文的
Online Judge簡稱OJ,意思是在線評測平台,多指信息學在線評測平台。
知名的OJ有:RQNOJ,URAL,SPOJ,vijos,USACO,sgu,pku(poj),zju(toj),tju,uva等。
著名OJ網址:
中文OJ:
任青網路在線測評系統RQNOJ:http://www.rqnoj.cn/
高效信息學評測系統vijos: http://www.vijos.cn (2008.7.12復活)
英文OJ:
北京大學pku: http://acm.pku.e.cn/OnlineJudge/ (most English)
美國官方USACO: http://ace.delos.com/usacogate/ (America, English)
南開大學nkpc: http://acm.nankai.e.cn (most English)
浙江大學OJ:http://acm.zju.e.cn/ (英語)
首先是國內比較老牌的知名OJ:
PKU/POJ(Peking University Judge Online For ACM/ICPC)
地址:
http://acm.pku.cn/JudgeOnline
介紹:
北京大學的題庫,我主要在做的一個.題目數量很多,OJ的各項功能也很完善,而且還提供免費的OJ系統下載,可以利用提供的系統自己搭建OJ.題目數量很多,有幾千道,但水題也很多.關於這一點,因為題目數量大,所以水題自然就多,但這不說明PKU的題目質量不高.PKU的難題還是不少的,而且做不做水題還是要由做題人自己決定的,和OJ無關.
推薦程度(最高10):
8
推薦做法:
如果是初學者或者僅僅想提高變成准確性,那麼按照AC率做,保證1Y率;如果是有一定水平的OIer,可以每頁完成40~50題;如果是大牛,那麼盡量做吧;如果想專門訓練某個項目,可以去網上搜pku題目分類,個人覺得pku里的dp題和數學題比較多.
ZJU/ZOJ(Zhejiang University Online Judge)
地址:
http://acm.zju.e.cn/
介紹:
浙江大學的題庫,國內起步最早的幾個OJ之一.題目數量也接近2000.我沒有太多的做zju的題目,所以不好說題目質量如何.OJ系統的友好性不如pku,但功能並不差.應該可以作為pku的替代品.
推薦程度:
7
推薦做法:
無(可以參考pku做法)
HOJ
地址:
http://acm.hit.e.cn/ (網通代理http://acm-hit.sunner.cn)
介紹:
哈爾濱工業大學OJ,相對來說起步不早也不晚,曾經也涌現了許多大牛。現在題目數量接近3000,難度參差不起,由於學校開始重視其ACM,最近活動頻繁。不過友好性較差,系統構建不是很完善,但功能不差。
推薦程度:
6
推薦做法:
無
然後是一些不太知名的或比較新的:
RQNOJ(RenQingNet Online Judge,任青網路信息學奧賽(OI)在線判題系統)
地址:
http://www.rqnoj.cn/
介紹:
RQNOJ經過了一年的時間逐漸的成熟起來,題目的數量也不斷的增加,使用的用戶數量也上升了不少,對於最近RQNOJ推出的一些新功能,很值得稱贊。還有經常有一些比賽,可以去參加。
推薦程度:
7
推薦做法:
做一些有難度的題目
Vijos(Velocious Informatics Judge Online System)
地址:
http://www.vijos.cn/
介紹:
說到現在的OJ,就不得不提Vijos.Vijos是Vivian Snow(就是湖南師大附中的劉康,個人主頁是http://www.viviansnow.cn/,現在似乎上不去了=.=)搞的一個Judge系統,本來是作為創新大賽作品的,後來就搞起來了,現在人氣很旺.但是Vijos的各種事情很多,而且伺服器不穩定,速度慢不說還時不時的關閉.關於Vijos的事情大家可以參考Dragon.Dai在Vijos的1周歲時候寫下的這篇<Vijos的過去,現在和將來>(http://www.mybloop.com/get/376674/Vijos.doc),這里不再贅述.Vijos上所有人都可以上傳自己的題目,雖然增加了很多靈活性,但由此導致的是題目水平參差不齊.而且上傳題目的人在選擇題目難度的時候很難做出同樣的判斷,都有自己的個人見解,所以本來題目難度是很好的一個設計,現在卻成了雞肋。從2007年末曾關閉維護了一段時間,現在已於2008.7.12復活。
推薦程度:
5
推薦做法:
用來測試競賽原題,另外可以做一做AC率較低的題目.不推薦做大量的Vijos題目(yours牛別打我...).
TJU/TOJ(Tianjin University Online Judge)
地址:
http://acm.tju.e.cn/toj
介紹:
可能大家都以為是同濟的題庫了吧=.=,其實這個是天津大學的,因為筆者是天津人,所以對這個OJ有獨特的感情...雖然沒怎麼做過.總體來說比zoj稍差,題目質量不確定(我說了我沒怎麼做過...),一般我都用來做Contests.
推薦程度:
5
推薦做法:
無,可以做做Contests.注意是Online Contests而不是Virtual Contests,Virtual那個...打開就能知道,是利用TOJ自己的題庫出Contests...其實這個設計很新穎,所有人都可以出測試.適合隊內搞測驗...
NKOJ(Nankai Online Judge)
地址:
http://acm.nankai.e.cn/
介紹:
這個是天津市南開大學的OJ,想必大多數人都不知道吧?在看下面的介紹之前,你可以先上去看看,體會一下.你一定會發現,通過大量Ajax技術的應用,加上清新的界面,你會感到十分舒適.而且nkoj似乎有一個功能是自己不出現在Rank List和Status裡面,這個功能很貼心.題目是nkoj最大的弱點,數量不大,質量一般.不過因為是中英文題目夾雜且中文題目數量不少(和pku比),所以想做中文題的除了Vijos也可以來這里看看.其實nkoj比vijos要漂亮的多,速度比vijos稍快,穩定性...應該比vijos好不少吧.
推薦程度:
5
推薦做法:
做中文題.
接下來說一下國外的OJ:
SGU(Saratov State University Online Contester)
地址:
http://acm.sgu.ru/
介紹:
sgu是俄羅斯斯坦福州立大學(大概是這個名字)的OJ,很老牌了.題目數量很少,但題題精煉,每做一道題都會讓你的編程水平上升.在有一定編程水平之後可以試著做做,要爭取做出每一道題.如果sgu能全部AC的話...那這個人不是抄襲就是神牛...注意status需要通過左邊的"status online"鏈接來看,而且sgu速度稍慢並且不太穩定.總之是非常特別以及及其應該推薦的OJ.
推薦程度:
9
推薦做法:
AC每一道題,可以按照AC Rate來做.
Ural(Timus Online Judge)
地址:
http://acm.timus.ru/
介紹:
Ural是Ural State University的一個OJ,題目不是很多,但都是原創,而且比較經典.如果sgu做著費勁,那麼試試Ural吧.
推薦程度:
8
推薦做法:
試著做做每一道題吧,可以按照AC Rate來.
樓主如果要中文題,又要有難度的話建議去USACO,http://ace.delos.com/usacogate?a=ywd3y6w9Cbo&C=2 網上可以找到譯題
http://www.oiers.cn/usaco%20training/
『陸』 c語言學習資料
要學好c語言,第一是看別人的源代碼程序,第二是自己多寫,一定要自己多寫,雖然很辛苦,寫一遍等於看三遍,只有多寫你才能真正學會它。當然你先得看一些好的實例,才知道如何寫。下面是我認為比較好的電子書,你用網路搜索一下,很多在csdn都可以免費下載。
1.經典教材:
譚浩強C程序設計(第2/3版)
譚浩強C程序設計題解.pdf (強烈推薦)
2.編程實例:
C語言精彩編程百例
C語言趣味程序百例精解 (強烈推薦)
C語言實用程序設計100例
C語言實例解析精粹(第二版)(220例,強烈推薦)
經典編程900例(C語言)
3.國外經典: (強烈推薦)
C和指針.pdf
C專家編程.pdf
C陷阱與缺陷
4.高級進階
C高級實用程序設計.pdf(清華大學出版)(強烈推薦)
C語言高級實例解析
高質量C/C++編程指南.doc
『柒』 API編程 滾動條一直學不會 請指定
當初學習時,覺得難點在SCROLLINFO 的page。
當窗口實時變化大小時(WM_SIZE),滾動條如何隨著調整大小(包括隱藏),在
windows 程序設計 裡面說得很清除了。你看看這書裡面關於滾動條的那部分。
相信會收獲不少。加油,相信你可以的。水滴石穿,百煉成鋼。願共勉
windows 程序設計 下載地址:http://cid-3ba16e78a53d2d3d.skydrive.live.com/self.aspx/ShareData/Windows%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1.zip
下面是一個簡單的示例:下載地址:http://cid-3ba16e78a53d2d3d.office.live.com/self.aspx/VC%5EM%5EM/Win32%20scroll.zip
#include <afxwin.h>
#include <windows.h>
#include <stdio.h>
#include "resource.h"
#define WS_EX_NOACTIVATE 0x08000000L
LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
WNDCLASS wndclass;
wndclass.lpszClassName="Win32"; // window class name
wndclass.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
wndclass.lpszMenuName=NULL;
wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);
wndclass.hIcon=LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON));
wndclass.hInstance=hInstance;
wndclass.lpfnWndProc=WndProc;
wndclass.style=CS_HREDRAW|CS_VREDRAW;
wndclass.cbClsExtra=0;
wndclass.cbWndExtra=0;
RegisterClass(&wndclass); /* WS_POPUP | WS_CLIPSIBLINGS ,*/
HWND hWnd = CreateWindowEx( WS_EX_TOPMOST,
"Win32","Demo",WS_OVERLAPPEDWINDOW|WS_VSCROLL,
225,160,400,400,NULL,NULL,hInstance,NULL) ;
if (!hWnd) return FALSE;
ShowWindow(hWnd,SW_SHOWNORMAL);
UpdateWindow(hWnd);
MSG msg;
while(GetMessage(&msg,NULL,0,0)) {TranslateMessage(&msg);DispatchMessage(&msg);} return msg.wParam ;
}
LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
switch(message)
{
case WM_CREATE:
{
SCROLLINFO info={0};
info.cbSize=sizeof(SCROLLINFO);
info.fMask=SIF_ALL;
info.nMin=0;
info.nPos =0;
info.nMax=20;
info.nPage=0;
SetScrollInfo(hWnd,SB_VERT, &info,true);
}
break;
case WM_VSCROLL:
{
int nSBCode=LOWORD(wParam);
int nPos = (short int) HIWORD(wParam);
switch(nSBCode)
{
case SB_LINEDOWN:
{
}
break;
case SB_LINEUP:
{
}
break;
case SB_ENDSCROLL:
{
// trace("SB_ENDSCROLL");
// trace(nPos);
}
break;
case SB_THUMBTRACK:
{
// trace("SB_THUMBTRACK");
// trace(nPos);
SetScrollPos(hWnd,SB_VERT,nPos,false);
}
break;
}
}
break;
case WM_CLOSE:
DestroyWindow(hWnd); //既關閉按鈕,可以在此時詢問用戶是否確定要關閉,再調用DestroyWindow關閉程序
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd,message,wParam,lParam);
}
return 0;
}
『捌』 怎樣學好C++編程語言
如果你有一定的C基礎可能學起來比較容易些,但是學習C++的過程中又要盡量避免去使用一些C中的思想;平時還要多看一些高手寫的代碼,遇到問題多多思考,怎樣才能把問題抽象化,以使自己頭腦中有類的概念;最後別忘了經常上機自己調調程序,這是誰也代替不了的.
C++類庫介紹
再次體現了C++保持核心語言的效率同時大力發展應用庫的發展趨勢!!在C++中,庫的地位是非常高的。C++之父 Bjarne Stroustrup先生多次表示了設計庫來擴充功能要好過設計更多的語法的言論。現實中,C++的庫門類繁多,解決的問題也是極其廣泛,庫從輕量級到重量級的都有。不少都是讓人眼界大開,亦或是望而生嘆的思維傑作。由於庫的數量非常龐大,而且限於筆者水平,其中很多並不了解。所以文中所提的一些庫都是比較著名的大型庫。
標准庫
標准庫中提供了C++程序的基本設施。雖然C++標准庫隨著C++標准折騰了許多年,直到標準的出台才正式定型,但是在標准庫的實現上卻很令人欣慰得看到多種實現,並且已被實踐證明為有工業級別強度的佳作。
1、 Dinkumware C++ Library
參考站點:http://www.dinkumware.com/'>http://www.dinkumware.com/
P.J. Plauger編寫的高品質的標准庫。P.J. Plauger博士是Dr. Dobb's程序設計傑出獎的獲得者。其編寫的庫長期被Microsoft採用,並且最近Borland也取得了其OEM的license,在其C/C+ +的產品中採用Dinkumware的庫。
2、 RogueWave Standard C++ Library
參考站點:http://www.roguewave.com/'>http://www.roguewave.com/'>http://www.roguewave.com/'>http://www.roguewave.com/
這個庫在Borland C++ Builder的早期版本中曾經被採用,後來被其他的庫給替換了。筆者不推薦使用。
3、SGI STL
參考站點:http://www.roguewave.com/'>http://www.roguewave.com/'>http://www.roguewave.com/'>http://www.roguewave.com/
SGI公司的C++標准模版庫。
4、STLport
參考站點:http://www.stlport.org/'>http://www.stlport.org/
SGI STL庫的跨平台可移植版本。
准標准庫——Boost
Boost 庫是一個經過千錘百煉、可移植、提供源代碼的C++庫,作為標准庫的後備,是C++標准化進程的發動機之一。 Boost庫由C++標准委員會庫工作組成員發起,在C++社區中影響甚大,其成員已近2000人。 Boost庫為我們帶來了最新、最酷、最實用的技術,是不折不扣的"准"標准庫。
Boost中比較有名氣的有這么幾個庫:
Regex
正則表達式庫
Spirit
LL parser framework,用C++代碼直接表達EBNF
Graph
圖組件和演算法
Lambda
在調用的地方定義短小匿名的函數對象,很實用的functional功能
concept check
檢查泛型編程中的concept
Mpl
用模板實現的元編程框架
Thread
可移植的C++多線程庫
Python
把C++類和函數映射到Python之中
Pool
內存池管理
smart_ptr
5個智能指針,學習智能指針必讀,一份不錯的參考是來自CUJ的文章:
Smart Pointers in Boost,哦,這篇文章可以查到,CUJ是提供在線瀏覽的。中文版見筆者在《Dr. Dobb's Journal軟體研發雜志》第7輯上的譯文。
Boost 總體來說是實用價值很高,質量很高的庫。並且由於其對跨平台的強調,對標准C++的強調,是編寫平台無關,現代C++的開發者必備的工具。但是Boost 中也有很多是實驗性質的東西,在實際的開發中實用需要謹慎。並且很多Boost中的庫功能堪稱對語言功能的擴展,其構造用盡精巧的手法,不要貿然的花費時間研讀。Boost另外一面,比如Graph這樣的庫則是具有工業強度,結構良好,非常值得研讀的精品代碼,並且也可以放心的在產品代碼中多多利用。
參考站點:http://www.boost.org'>http://www.boost.org(國內鏡像:http://www.c'> http://www.c'>http://www.c'>http://www.c-view.org/tech/lib/boost/index.htm)
GUI
在眾多C++的庫中,GUI部分的庫算是比較繁榮,也比較引人注目的。在實際開發中,GUI庫的選擇也是非常重要的一件事情,下面我們綜述一下可選擇的GUI庫,各自的特點以及相關工具的支持。
1、 MFC
大名鼎鼎的微軟基礎類庫(Microsoft Foundation Class)。大凡學過VC++的人都應該知道這個庫。雖然從技術角度講,MFC是不大漂亮的,但是它構建於Windows API 之上,能夠使程序員的工作更容易,編程效率高,減少了大量在建立 Windows 程序時必須編寫的代碼,同時它還提供了所有一般 C++ 編程的優點,例如繼承和封裝。MFC 編寫的程序在各個版本的Windows操作系統上是可移植的,例如,在 Windows 3.1下編寫的代碼可以很容易地移植到 Windows NT 或 Windows 95 上。但是在最近發展以及官方支持上日漸勢微。
2、 QT
參考網站:http://www.trolltech.com/'>http://www.trolltech.com/
Qt 是Trolltech公司的一個多平台的C++圖形用戶界面應用程序框架。它提供給應用程序開發者建立藝術級的圖形用戶界面所需的所用功能。Qt是完全面向對象的很容易擴展,並且允許真正地組件編程。自從1996年早些時候,Qt進入商業領域,它已經成為全世界范圍內數千種成功的應用程序的基礎。Qt也是流行的Linux桌面環境KDE 的基礎,同時它還支持Windows、Macintosh、Unix/X11等多種平台。
3、WxWindows
參考網站:http://www.wxwindows.org/'>http://www.wxwindows.org/
跨平台的GUI庫。因為其類層次極像MFC,所以有文章介紹從MFC到WxWindows的代碼移植以實現跨平台的功能。通過多年的開發也是一個日趨完善的 GUI庫,支持同樣不弱於前面兩個庫。並且是完全開放源代碼的。新近的C++ Builder X的GUI設計器就是基於這個庫的。
4、Fox
開放源代碼的GUI庫。作者從自己親身的開發經驗中得出了一個理想的GUI庫應該是什麼樣子的感受出發,從而開始了對這個庫的開發。有興趣的可以嘗試一下。
參考網站:http://www.fox'>http://www.fox-toolkit.org/
5、 WTL
基於ATL的一個庫。因為使用了大量ATL的輕量級手法,模板等技術,在代碼尺寸,以及速度優化方面做得非常到位。主要面向的使用群體是開發COM輕量級供網路下載的可視化控制項的開發者。
6、 GTK
參考網站:http://gtkmm.sourceforge.net/
GTK是一個大名鼎鼎的C的開源GUI庫。在Linux世界中有Gnome這樣的殺手應用。而GTK就是這個庫的C++封裝版本。
?
庫
網路通信
ACE
參考網站:http://www.c'>http://www.c'>http://www.c'>http://www.cs.wustl.e/~schmidt/ACE.html
C+ +庫的代表,超重量級的網路通信開發框架。ACE自適配通信環境(Adaptive Communication Environment)是可以自由使用、開放源代碼的面向對象框架,在其中實現了許多用於並發通信軟體的核心模式。ACE提供了一組豐富的可復用C++ 包裝外觀(Wrapper Facade)和框架組件,可跨越多種平台完成通用的通信軟體任務,其中包括:事件多路分離和事件處理器分派、信號處理、服務初始化、進程間通信、共享內存管理、消息路由、分布式服務動態(重)配置、並發執行和同步,等等。
StreamMole
參考網站:http://www.omnifarious.org/StrMod/'>http://www.omnifarious.org/StrMod/
設計用於簡化編寫分布式程序的庫。嘗試著使得編寫處理非同步行為的程序更容易,而不是用同步的外殼包起非同步的本質。
SimpleSocket
參考網站:http://home.hetnet.nl/~lcbokkers/simsock.htm
這個類庫讓編寫基於socket的客戶/伺服器程序更加容易。
A Stream Socket API for C++
參考網站:http://www.pcs.cnu.e/'>http://www.pcs.cnu.e/~dgame/sockets/socketsC++/sockets.html
又一個對Socket的封裝庫。
XML
Xerces
參考網站:http://xml.apache.org/xerces-c/
Xerces-C++ 是一個非常健壯的XML解析器,它提供了驗證,以及SAX和DOM API。XML驗證在文檔類型定義(Document Type Definition,DTD)方面有很好的支持,並且在2001年12月增加了支持W3C XML Schema 的基本完整的開放標准。
XMLBooster
參考網站:http://www.xmlbooster.com/'>http://www.xmlbooster.com/
這個庫通過產生特製的parser的辦法極大的提高了XML解析的速度,並且能夠產生相應的GUI程序來修改這個parser。在DOM和SAX兩大主流XML解析辦法之外提供了另外一個可行的解決方案。
Pull Parser
參考網站:http://www.extreme.indiana.e/xgws/xsoap/xpp/'>http://www.extreme.indiana.e/xgws/xsoap/xpp/
這個庫採用pull方法的parser。在每個SAX的parser底層都有一個pull的parser,這個xpp把這層暴露出來直接給大家使用。在要充分考慮速度的時候值得嘗試。
Xalan
參考網站:http://xml.apache.org/xalan-c/
Xalan是一個用於把XML文檔轉換為HTML,純文本或者其他XML類型文檔的XSLT處理器。
CMarkup
參考網站:http://www.firstobject.com/xml.htm'>http://www.firstobject.com/xml.htm
這是一種使用EDOM的XML解析器。在很多思路上面非常靈活實用。值得大家在DOM和SAX之外尋求一點靈感。
libxml++
http://libxmlplusplus.sourceforge.net/
libxml++是對著名的libxml XML解析器的C++封裝版本
科學計算
Blitz++
參考網站:http://www.oonumerics.org/blitz/'>http://www.oonumerics.org/blitz/
Blitz++ 是一個高效率的數值計算函數庫,它的設計目的是希望建立一套既具像C++ 一樣方便,同時又比Fortran速度更快的數值計算環境。通常,用C++所寫出的數值程序,比 Fortran慢20%左右,因此Blitz++正是要改掉這個缺點。方法是利用C++的template技術,程序執行甚至可以比Fortran更快。 Blitz++目前仍在發展中,對於常見的SVD,FFTs,QMRES等常見的線性代數方法並不提供,不過使用者可以很容易地利用Blitz++所提供的函數來構建。
POOMA
參考網站:http://www.c'>http://www.c'>http://www.c'>http://www.codesourcery.com/pooma/pooma
POOMA是一個免費的高性能的C++庫,用於處理並行式科學計算。POOMA的面向對象設計方便了快速的程序開發,對並行機器進行了優化以達到最高的效率,方便在工業和研究環境中使用。
MTL
參考網站:http://www.osl.iu.e/research/mtl/'>http://www.osl.iu.e/research/mtl/
Matrix Template Library(MTL)是一個高性能的泛型組件庫,提供了各種格式矩陣的大量線性代數方面的功能。在某些應用使用高性能編譯器的情況下,比如Intel的編譯器,從產生的匯編代碼可以看出其與手寫幾乎沒有兩樣的效能。
CGAL
參考網站:www.cgal.org
Computational Geometry Algorithms Library的目的是把在計算幾何方面的大部分重要的解決方案和方法以C++庫的形式提供給工業和學術界的用戶。
游戲開發
Audio/Video 3D C++ Programming Library
參考網站:http://www.galacticasoftware.com/procts/av/'>http://www.galacticasoftware.com/procts/av/
AV3D是一個跨平台,高性能的C++庫。主要的特性是提供3D圖形,聲效支持(SB,以及S3M),控制介面(鍵盤,滑鼠和遙感),XMS。
KlayGE
參考網站:http://home.g365.net/enginedev/
國內游戲開發高手自己用C++開發的游戲引擎。KlayGE是一個開放源代碼、跨平台的游戲引擎,並使用Python作腳本語言。KlayGE在LGPL協議下發行。感謝龔敏敏先生為中國游戲開發事業所做出的貢獻。
OGRE
參考網站:http://www.ogre3d.org'>http://www.ogre3d.org
OGRE (面向對象的圖形渲染引擎)是用C++開發的,使用靈活的面向對象3D引擎。它的目的是讓開發者能更方便和直接地開發基於3D硬體設備的應用程序或游戲。引擎中的類庫對更底層的系統庫(如:Direct3D和OpenGL)的全部使用細節進行了抽象,並提供了基於現實世界對象的介面和其它類。
線程
C++ Threads
參考網站:http://threads.sourceforge.net/
這個庫的目標是給程序員提供易於使用的類,這些類被繼承以提供在Linux環境中很難看到的大量的線程方面的功能。
ZThreads
參考網站:http://zthread.sourceforge.net/
一個先進的面向對象,跨平台的C++線程和同步庫。
序列化
s11n
參考網站:http://s11n.net/
一個基於STL的C++庫,用於序列化POD,STL容器以及用戶定義的類型。
Simple XML Persistence Library
參考網站:http://sxp.sourceforge.net/
這是一個把對象序列化為XML的輕量級的C++庫。
字元串
C++ Str Library
參考網站:http://www.utilitycode.com/str/'>http://www.utilitycode.com/str/
操作字元串和字元的庫,支持Windows和支持gcc的多種平台。提供高度優化的代碼,並且支持多線程環境和Unicode,同時還有正則表達式的支持。
Common Text Transformation Library
參考網站:http://cttl.sourceforge.net/
這是一個解析和修改STL字元串的庫。CTTL substring類可以用來比較,插入,替換以及用EBNF的語法進行解析。
GRETA
參考網站:http://research.microsoft.com/projects/greta/
這是由微軟研究院的研究人員開發的處理正則表達式的庫。在小型匹配的情況下有非常優秀的表現。
綜合
P::Classes
參考網站:http://pclasses.com/
一個高度可移植的C++應用程序框架。當前關注類型和線程安全的signal/slot機制,i/o系統包括基於插件的網路協議透明的i/o架構,基於插件的應用程序消息日誌框架,訪問sql資料庫的類等等。
ACDK - Artefaktur Component Development Kit
參考網站:http://acdk.sourceforge.net/
這是一個平台無關的C++組件框架,類似於Java或者.NET中的框架(反射機制,線程,Unicode,廢料收集,I/O,網路,實用工具,XML,等等),以及對Java, Perl, Python, TCL, Lisp, COM 和 CORBA的集成。
dlib C++ library
參考網站:http://www.c'>http://www.c'>http://www.c'>http://www.cis.ohio-state.e/~kingd/dlib/
各種各樣的類的一個綜合。大整數,Socket,線程,GUI,容器類,以及瀏覽目錄的API等等。
Chilkat C++ Libraries
參考網站:http://www.c'>http://www.c'>http://www.c'>http://www.chilkatsoft.com/cpp_libraries.asp
這是提供zip,e-mail,編碼,S/MIME,XML等方面的庫。
C++ Portable Types Library (PTypes)
參考網站:http://www.melikyan.com/ptypes/'>http://www.melikyan.com/ptypes/
這是STL的比較簡單的替代品,以及可移植的多線程和網路庫。
LFC
參考網站:http://lfc.sourceforge.net/
哦,這又是一個嘗試提供一切的C++庫
其他庫
Loki
參考網站:http://www.moderncppdesign.com/'>http: //www.moderncppdesign.com/'>http://www.moderncppdesign.com/'>http://www.moderncppdesign.com/
哦,你可能抱怨我早該和Boost一起介紹它,一個實驗性質的庫。作者在loki中把C++模板的功能發揮到了極致。並且嘗試把類似設計模式這樣思想層面的東西通過庫來提供。同時還提供了智能指針這樣比較實用的功能。
ATL
ATL(Active Template Library)是一組小巧、高效、靈活的類,這些類為創建可互操作的COM組件提供了基本的設施。
FC++: The Functional C++ Library
這個庫提供了一些函數式語言中才有的要素。屬於用庫來擴充語言的一個代表作。如果想要在OOP之外尋找另一分的樂趣,可以去看看函數式程序設計的世界。大師 Peter Norvig在 "Teach Yourself Programming in Ten Years"一文中就將函數式語言列為至少應當學習的6類編程語言之一。
FACT!
參考網站:http://www.kfa'>http://www.kfa-juelich.de/zam/FACT/start/index.html
另外一個實現函數式語言特性的庫
Crypto++
提供處理密碼,消息驗證,單向hash,公匙加密系統等功能的免費庫。
還有很多非常激動人心或者是極其實用的C++庫,限於我們的水平以及文章的篇幅不能包括進來。在對於這些已經包含近來的庫的介紹中,由於並不是每一個我們都使用過,所以難免有偏頗之處,請讀者見諒。
資源網站
正如我們可以通過計算機歷史上的重要人物了解計算機史的發展,C++相關人物的網站也可以使我們得到最有價值的參考與借鑒,下面的人物我們認為沒有介紹的必要,只因下面的人物在C++領域的地位眾所周知,我們只將相關的資源進行羅列以供讀者學習,他們有的工作於貝爾實驗室,有的工作於知名編譯器廠商,有的在不斷推進語言的標准化,有的為讀者撰寫了多部千古奇作......
Bjarne Stroustrup http://www.research.att.com/'>http://www.research.att.com/~bs/
Stanley B. Lippman
http: //blogs.msdn.com/slippman/(中文版http://www.zengyihome.net'>http: //www.zengyihome.net/slippman/index.htm'>http://www.zengyihome.net'>http://www.zengyihome.net/slippman/index.htm)
Scott Meyers http://www.aristeia.com/'>http://www.aristeia.com/
David Musser http://www.c'>http://www.c'>http://www.c'>http://www.cs.rpi.e/~musser/
Bruce Eckel http://www.bruceeckel.com'>http://www.bruceeckel.com
Nicolai M. Josuttis http://www.josuttis.com/'>http://www.josuttis.com/
Herb Sutter http://www.gotw.ca/'>http://www.gotw.ca/
Andrei Alexandrescu http://www.moderncppdesign.com/'>http://www.moderncppdesign.com/'>http://www.moderncppdesign.com/'>http://www.moderncppdesign.com/
『玖』 少兒編程的好處
低齡化教育,目前已成為全球教育的一種趨勢。面對低齡化教育的這股浪潮,家長們是心急如焚,孩子們是你追我趕。那麼孩子學習編程有哪些好處呢?
1.培養細心耐心與專注力
2.有效提升孩子邏輯思維能力
3.培養抽象思維能力
4.孩子不再沉迷於游戲
5.出國留學,編程方面有特長更占優勢
6.國內外編程人才短缺,就業前景好
總之,孩子在有獨立聽課和認知能力時,越早學編程,越容易培養邏輯思維和實踐創新的綜合能力,對今後的學習和工作都有很大的幫助,讓孩子具備更強的競爭力,幫助孩子更好的應對未來快速變化的環境。所以讓孩子學習編程不可不說是一個非常有遠見、非常明智的選擇。
想要了解更多編程課程,可以咨詢童程童美,點擊參與免費試聽活動童程童美,成立於2015年,經過近6年的發展,打造出適合3-18歲中國孩子的科技素質教育解決方案,為培養孩子的信息素養,全面推動科技素質教育發展,於2018年7月18日發起公益性活動中國少兒編程節,為孩子提供免費公益編程課等系列活動,現已成為舉辦三屆,惠及1165萬+人次,間接影響1.25億+人次,讓更多的中國孩子接觸編程.學習編程,享受編程樂趣,積淀信息素養。
『拾』 學習計算機語言應該要注意什麼,什麼C啊,C++,java等等
學習計算機編程是一個循序漸進的過程,這里以C++為例子,介紹一下吧。(C、C++、Java基本就差不多啦)
:)
如何成為程序員:如何成為一名C++程序員(看完深受啟發)
入門:入門就是要初步對編程的思想有個了解,並且能編程解決一些小問題。入門一定要選好書,難度如果太低了會造成對讀者的誤導,以為編程就是這么回事;也不能太高深,免的打擊讀者的信心。既然編程的入門要求是編一些小程序解決小問題,那麼就沒必要直接學習C++,我覺得循環、判斷、跳轉、指針才是最基本的編程思想,學通了這些對以後學習C++很有幫助。
我建議應該先把C扎實地學好,不光要掌握C的語法,因為學習編程的最終目的是解決實際問題,所以還要適當掌握把實際問題與編程聯系在一起的能力,我推薦《 C程序設計語言(第2版) 》,這本書是C語言之父寫的,不僅詳盡介紹了C的語法,還提供了很多實際的小問題作為實例,可以說看了這本書之後能為以後的編程學習打下一個扎實的基礎!
提高:
學了《 C程序設計語言(第2版) 》後可以開始學習C++,一開始沒必要鑽很深的大部頭書,《 Essential C++中文版 》非常適合初學,一個禮拜就可以看完,看了它可以快速對C++的全貌有個了解,雖然不會馬上熟練掌握C++。
我們不能滿足於解決「百錢買百雞」,真正實現程序還有很多非功能上的問題,比如怎樣做才能使用更少的內存?怎樣做才能更快?在熟悉一門語言後,一定要認真學習的就是數據結構!數據結構保證了我們的程序能以高效的方式運行。《 數據結構演算法與應用C++語言描述 》是本好書,它提供了很多實際的例子,比如火車站調度、走迷宮,相比於「百錢買百雞」這種問題又提高了一個層次。
接下來專心提高C++的水平,可以選擇《 C++編程思想 》,然後再看《 Effective C++中文版 2nd Edition 》和《 More Effective C++中文版 》,這兩本書介紹了高效使用C++的寶貴經驗,語言很幽默。至此,你已經可以自稱是C++程序員了,恭喜!
下面介紹幾本書,有興趣的朋友可以選讀。如果想高效地使用C++開發軟體,STL一定要學!《 C++標准程序庫—自修教程與參考手冊 》可以幫你學會STL的使用,而且開發時可以拿它做手冊,有了前面數據結構的基礎,學習STL的使用不會遇到什麼困難。如果你還想知道STL的設計思想及原理,不妨看看《 泛型編程與STL 》。有些朋友可能會問,C++的面向對象機制是怎麼實現的?《 深度探索C++對象模型 》給了你答案,它剖析了C++底層的實現。最後,如果想有一本C++大網路全書,那非《 C++程序設計語言(特別版) 》莫屬!這本書是C++之父Bjarne Stroustrup的大作,算是書中權威。
再提高:
到現在為止,你已經熟練掌握C++語言了,現在需要提高的就是設計思想,面向對象(OO)的最大特點是把我們的注意力從系統的執行體系結構轉移到概念體系結構,因此利用OO開發大型系統會更輕松。但是經常可以看到人們拿著C++用面向過程的思想解決問題,缺乏的就是面向對象的設計思想,也難怪,在這里之前看的書都沒有教你怎樣用面向對象的方法開發系統,頂多介紹了面向對象是什麼,看了這么多書難免會先入為主,《C語言程序設計》(或者你看的第一本編程書)中的思路潛在的影響著我們。這條鴻溝就由《 設計模式--可復用面向對象軟體的基礎 》來補救吧!所謂模式就是前人總結出來的、經過千錘百煉的一種系統結構,設計模式展示了23個經典的模式,通過學習、理解,你可以看到什麼是真正的面向對象。
看了《 設計模式--可復用面向對象軟體的基礎 》後,有時間不妨看看《 重構--改善既有代碼的設計(中文版) 》,學了面向對象的設計思想後看它,可以站在一定高度重新審視一下自己的C++編程水平。
結束語:
在學習編程的過程中一定要注意多實踐!學習時到專業論壇同大家討論是個不錯的辦法,你會找到許多熱心的朋友與您一起學習,能通過學習編程交些朋友不是更好嗎?最後,希望您能成為優秀的程序設計師,為中國軟體的發展貢獻一份力量!