當前位置:首頁 » 編程軟體 » 牛爸學編程

牛爸學編程

發布時間: 2022-07-22 15:39:21

c語言怎麼才能入門啊

如何 學習C語言 某天,你需要完成一個求100的階乘的作業,於是你搬來一個最新的電腦,為它安裝了最新的windows vista操作系統,然後坐在它的身前,喊「喂電腦,給我計算100的階乘」,電腦說「ok, wait a moment」; 過了一會,一盤香菇小白菜端了上來!呵呵,電腦不是waiter, 你喂它它是不會有反應的,如果你真的wait a moment, 恐怕你就需要wait one more moment了!一萬年後,人們就把你命名成「望夫崖」。 既然電腦不是伺應生,聽不懂我們的話,那麼我們要怎麼控制它呢?如果你們給我裝聾作啞,我會告訴你期末掛了你,哦,你立馬老實了!對於電腦,我要怎麼才能使喚它,讓它為我工作呢?不錯,我們有個強力工具,C語言!好,我們把上面的場景復習一下:你要我算100的階乘,於是我去機房上機,編寫了一個程序: ( 參加ppt......) 運行程序,哦,結果出來了! 有人認為,現在是java和.net的時代,有誰還需要C以及匯編呢?孰不知,java和.net是建立在軟體之上的,是為了壟斷市場而建立起來的體系,猶如挖好一個金壁輝煌的坑,請你往下跳,還自以為站在巨人的肩膀上,事實上成了坑底之蛙。要成為一個真正的程序員,並期望成為一個程序員高手,必須從機器出發,從cpu到操作系統,再到軟體體系,高手的境界就是悟道後的明鏡靈台,軟體設計出神入化,我就是程序,程序就是我。 聽完我講高手的境界,於是乎你很受感動,說:我要努力學習,向高手學習!隔天就買了一堆MFC, VB, JAVA以及.NET的書回來,早上五點鍾起來背書!這樣是不行的,正確的入門方法只有一個,要證大道,唯有此法!同學們,從C語言入手,努力學好C語言! 旁觀者李四說:此人大笨也!我用滑鼠隨便拖幾個控制項,就是一個xxx管理系統了,你用C語言恐怕是一年也寫不出來吧!好吧,我要承認,講這話的都已經是mS的奴才了,別的我不了解,MFC本身就是一個封閉的架構,從MFC入手學習,你只會形成一種封閉的思維模式,因為MS希望很多人只學會表面的東西,不致成為高手,所以它大力推薦所謂的可視化的程序開發工具,也真有很多人願意上他的當,最後真正迷失方向。說他坐不了程序吧,他也可以作,但是如果程序復雜一點,出現問題時,問題出再哪裡就搞不清楚了,反正是不清楚! 梁肇新,大牛啊,他說:「我就搞不懂了,用滑鼠怎麼寫程序呢?在我的公司里,高手的鍵盤響個不停,滑鼠偶爾響一下,新手是滑鼠響個不停,鍵盤偶爾響一下,他們的薪水相差的就不是一倍那麼多了!」 C語言是各大操作系統的基礎,Unix、Linux、Windows其內核都清一色是C語言開發的,(某些地方是和匯編語言混合開發的),君不見Windows API都是C語言函數的介面?Unix/Linux絕大多數應用都是C語言開發的;Windows應用程序用純API開發已然不多,大多都是依靠某種Application Framework,比如所謂的VC++,其實就是指VC IDE + C++語言 + MFC(現在重點已轉向ATL、WTL),但是Windows服務、網路、驅動程序等底層軟體,還是C語言開發的。各種語言的編譯器,包括java虛擬機,都是用C語言開發的。各種嵌入式設備,如手機、PDA也都是C語言開發的。C語言歷史悠久,其內容也絕非譚浩強老師的《C語言程序設計(第二版)》所描述的那麼簡單——那本書只是針對中國國情的教學入門書而已。 學生總喜歡問:那種語言好?學那種語言有前途?這種問題天天在討論,永無休止。其實我覺得大家所關心的,無非是那種語言更有「錢途」,學習那種語言畢業後能夠輕松找到高薪的工作——當年我也是這么想。那麼,我告訴你,如果你精通C語言,請你去華為,不要在小池塘里浪費青春了! OK, 聽了我苦口婆心的勸告,你准備從C語言入手,開始攀登程序員高手這座山峰了,在你出發之前,你的行囊中需要准備什麼呢? 第一個要裝進行囊和你一起前進是「規范的格式」,有很多教科書,參考書,不太注重程序的格式的問題,寫出的程序就象一堆堆的垃圾一樣,這也導致了現在很多人寫的程序中有很多的廢碼,垃圾代碼,這和那些入門的書有非常大的關系,要把那些作者都拿來打打PP。真正的商業程序絕對是規范的,張三寫的程序和李四的程序格式大致相同,各種標識符的命名規則一樣,否則誰也看不懂你寫的程序。如果寫出來的代碼誰也看不懂,那絕對是垃圾。如果要把那些垃圾翻半天,勉強才把金子找出來,那這樣的程序不如不要,還不如重新寫過,這樣,思路會更清楚一點。所以說,規范的格式是入門的基礎。那這個規范的格式包括什麼呢?不少啊,要堅持才能做到!長標志符命名,代碼縮進,一對大括弧范圍不超過一屏幕,等等。 第二個要裝進行囊的是耐心,所謂工欲善其事,必先利其器。要想成功,沒有一個相對平淡的過程是不可能的。這不僅僅指你在學習過程中要有耐心,要循序漸進,而且也說的是另一個重要的方面:調式程序。調試是寫程序過程中一個重要的方面,如果有人能一次寫成程序,牛啊,而且是大牛,不光是大牛,還是老子騎的那頭青牛,凡人是做不道的!調試是每個程序必定經歷的歷程。經常有同學問我:老師,我的程序完全沒錯誤啊,都是照書抄的啊!怎麼就運行不出來呢?對於這個問題我也看不出來!你們有問題可以找我,找其他的老師,老師找誰啊?李師父?那是很荒謬的!我就只好坐下來調試,這個說實話,調試是很枯燥的,所以有同學抱怨說我操作太快,不理解為什麼要這樣,為什麼要那樣,我的脾氣不太好,一煩躁就會罵人地,所以,這個就需要你們自己修煉內功了! 有了這兩個就可以了,可以出發了,估計有人說了,英語和數學不要了?大家都說大學生了,這種問題就不要問了嘛!你已經用早晨和傍晚的時光學習了英語了,我這個沒有要去,計算機專業英語超簡單,小學水平而已,記住一些專業詞彙就可以了!關於數學,說數學好,寫程序就好是沒有科學根據的!我就有個同學,數學回回100分,寫程序也就是hello world的程度,不過人家現在是數學博士了!慚愧啊!做為的大學生,而且是我們這個專業的大學生,已經完全具備了寫程序所需要的數學素養了!所以這個不是我們要擔心的,Ready? Go! 第一招,學什麼呢?打狗棍法!呵呵 有一個偉人說過:「重復權威是成熟的必經之路」,這是站在巨人的肩膀上的做法,習武之人首先要學的都是各種套路,比方說辟邪劍法,然後才能融會貫通,開宗流派;我們學習寫程序也要這樣來,這是一個捷徑,幫你走得更遠得捷徑。 看書,看好書!書中所寫,是前人數十年經驗所寫,看十本書,就相當於汲取了前人數十年的功力,那麼你的內功也會迅速上升1甲子。:)書當然要看好書,只有好書才營養豐富。要做到讀書破萬卷,編程如有神;枯燥的看書是很郁悶的,很容易變成化石!現在很多是書都是用源碼說明問題的,源碼就像是動畫、就像是幻燈片,把書中的招式一一演練給你看。可以說高手的經驗大都是源自代碼,最後也都化成源碼展現在大家面前,把書上的程序一個一個的輸入(用鍵盤,用你的手指)到電腦中,編譯運行。自己手工輸入這一步不能省略,現在很多書有配套源碼,很多同學或者成年人學習的時候都耍小聰明,直接把源碼復制過去編譯運行,hoho, 這是沒有效果的。自然,我讓你輸入程序不是讓你練習盲打,你在輸入的過程就可以品出程序的好壞來了,如果發現自己輸入了很多重復代碼,那至少這個程序的結構就不好了,窮則變,變則通嘛,你就想改進它啊,這不是很好嗎?當然,程序輸得多了,盲打功力也上了一個台階,鍵盤敲得快了,薪水也跟著漲上去了!^_^ 不過,鍵盤敲得快不代表你的程序就寫得好,否則學校只要每個學生發一份盲打聯系軟體,四年畢業後,個個都是程序高手了! 好了,你輸了一個程序進電腦了,鍛煉了手部肌肉,也運行出了結果,愉悅了身心,就此滿足了?那離高手還遠呢,要變成高手,你還要鍛煉一下你得腦部肌肉!拿起你得筆,拿起你得紙,用你得大腦,這號稱世界上最精密的機器來運行你輸入的程序,記錄下不同運行時刻變數的值,記錄下程序的運行分支,最後發現,這個程序被你解剖到了紙上,我相信也解剖到了你的心裡!這是捷徑的核心,一定要記住,輸入的程序不是說正確運行就完事了,要去閱讀一下代碼,利用筆和紙做輔助工具,做一下筆記,這就是重復權威 ,當然,如果你是天才,那請你塞上耳朵,你不在我們討論的范圍之內! 為什麼這一步很重要呢? 大家剛開始學習的時候,是不是有種感覺,如果讓你寫一個程序,你從哪裡下手呢?前面?後面?上面?下面?為了解決這個問題,我的程序該如何寫呢?抓耳撓腮,好煩啊,於是乎乾脆睡覺去,不寫了,你看,這種行為是要打PP的!練武功,總是先重復師父的動作,才能有自己的動作,所以也讓我們重重復別人寫的程序開始,然後再寫自己的程序吧! 遵循這個方法,你們就跟著組織走上了通往羅馬的大路了! 接下來,你得走啊,不走怎麼到羅馬呢? 把你學會的程序設計方法應用到你寫的程序中去啊! 某天,你看到這里有個問題,你有了想法,怎麼辦?上機去,和鍵盤奮戰去!stop, stop! 暫停一下,上機之前,不要忘記了你的筆和紙,勇敢地把你的想法寫下來,如果寫不出來,就不要去機房浪費爸爸媽媽的血汗錢了! 當然,你不能亂寫啊,寫出來的東西怎麼樣才叫不是亂寫的呢?實踐是檢驗真理的唯一標准!用你的大腦去運行一邊啊,不是叫「人程序合一」嘛?,這就是了!學武功就要學絕世武功!雖然號稱最精密,實際效果上,人腦還是沒有電腦的准確度的,如果你的大腦能馬馬虎虎地運行出來之後,那麼OK,帶上規范的格式和耐心,去上機吧! 自然,我們說一天到晚面對字元界面的TC是有些郁悶,大家都習慣了windows,微軟的客戶體念設計中心可不是吹出來的!windows多好,色彩斑斕的。當你修煉到我這個程度的時候,非要聽這京劇才文思泉湧的寫程序的時候,當然要用windows下的集成開發環境了。但是對大家來說,不是現在,windows是很危險地,程序員還是回到TC中去吧! TC至少有一個好處,可以鍛煉我們使用組合鍵的習慣,可以鍛煉我們使用鍵盤編程的習慣,回想我們剛剛說的梁某說的話「用滑鼠怎麼編程呢?」有同學不免要提出疑問了,我是80年代甚至是90年代生人,你還讓我面對那麼枯燥的輸入輸出界面?我跟你有代溝!我期待有更豐富更吸引人的交互手段哦,這個問題問得好,C語言中也有圖形啊,完全可以滿足大家寓教於樂得心理!讓我們來看這個程序,很簡單,就是在屏幕上話一個周期得正弦波! (參見ppt......) 運行效果是不是很好?你學數據結構的時候,樹啊,圖啊,你都可以這樣輸出啊,很多地方你都可以做的更好呢! 好了,到這里,我們基本解決了在學習C語言程序設計時的一些方法論的東西,關於具體的學習過程,如果你要我在這里給你們講指針要如何學習?函數要如何學習?那我講的內容也不會多於任課老師的內容,或者開個專題叫「如何學好指針」,當然,如果你願意和我探討一下指針的本質和高級應用的話,課後,課後啊! 現在,我們要談最後一個問題!我們這個專業的女生的比例較其他的工科專業還是要高一些的,不知道為什麼經常到如下的說法:1,我是女生,我不適合寫程序啊;2,我的性格比較外向,不適合坐下來安靜的寫程序呢!性格外向不適合寫程序?你們看我啊,覺得我是性格內向的任嗎?程序員也非常需要發散的外向型思維,老比,地球上最富裕的人說,他招程序員更願意招原來是學物理的人,因為學物理的人的思維可以從極大(宇宙)到極小(原子)。所有,說性格外向不適合寫程序的話是懶惰的借口,是要掩蓋他不可告人的目的的介面!狂打PP! 女生又為什麼不適合寫程序呢?我到知道一個理由,對皮膚不好啊!你們看我這滿臉滄桑的,就知道了!除此之外,還會又其他的理由嗎?英國科學家早就證明了男女的區別完全不是人們想像的那樣,很多方面女性是要超過男性的!想想以前的母系社會,現在的惠安女!我就見過一個上市公司的研發二部全是女性!,從軟體工程師到硬體工程師再到部門經理都是女性,業績根本不輸其他的研發部門,這個公司在湖南,不是我瞎掰的!

Ⅱ java入門到精通要多久

0基礎到學會WEB和安卓開發,最快六個月能搞定,如果有其它語言基礎可以更快。精通就不好說了,那是思想上的東西。

1.看到過好多個這樣的提問,其實我一般真的不那麼容易分享自己的這點心得的,這是第一次回答這樣的「推薦書籍」方面的問題。

我買編程方面的書籍,有一個非常清晰、堅決的原則——電子工業出版社的!

對於JAVA,建議你看如下的書:

首先,《21天學通JAVA》;

然後,《30天學通JAVA項目案例開發》(這本書的內容都是實例的,非常棒的實例!適合初學者的同時,又有實際應用性!)

以上的書籍,是基於你只想學J2SE的。

我還建議你主要攻J2EE方面的知識(在中國,J2SE要高手才能找到工作,而J2SE,只是菜鳥都很可能找到工作),至於J2EE方面的書籍:

首先,《21天學通JAVAWEB開發》

然後,《30天學通JAVAWEB項目開發》

以上都是本人確切的經驗來的,絕對沒有介紹錯


2.我聯合互聯網上的一群大牛,組建了一個編程的免費學習群,你只需要來我們這個群里聽就行,開頭的的第一部分是:四二六.,位於中間的第二部分是:396,處於最後一部分的是:284。 這里有免費的學習資源,每天直播課程,不需要你付出什麼,只需要有一顆學習的心就可以了。 不是想要學習的就不要加了。


3、動手去寫去練

當然只看是很難學會的。我們需要搭建IDE環境來多練習才能完全掌握這些語法。編程學習沒有捷徑可走,只有入門快慢之分。要學會編程只有coding、coding最後還是coding。


送給那些懦弱的人們

A : 我是護士,我的專業就是護理。我做不了excel、做不了ppt、我學不會ps,好難,我不會寫文章。

我: 我學習那麼好,寫字那麼漂亮,編程也不錯,ps也挺好、我還能打籃球、我會兵乓求、我會羽毛球、我會足球、我會設計、我會英文。(有的都是高二退學之後自己加強學習的,讀書只給了我 算數、識字這些基本的的能力),我特么是神嗎?

A : 人人都跟你一樣?不是誰都能用很短的時間學很多的東西。

我 :我大概是神吧!你能少看一點 《爸爸去哪兒》、《額滴歌神啊》、《奔跑吧兄弟》嗎,今天出了《爸爸去哪》,明天來個《女兒去哪》、《爺爺去哪兒》,你看得完?你能不能看點有用的東西?例如有點啟發、讓人學到東西的影片或者書?

A:委屈的癟癟嘴,那好,我要學習,給我買一本書吧,推薦一下。

我:書到了,學習 吧,一個月後我要看你的成績。我來考考你

A:好難啊,我好睏,我要看一會兒電視.....(然而沒然後了....)

其實,這位A同學,極度的懦弱,並不是她不上進,只是那麼的懦弱,那麼的沉迷於垃圾節目、垃圾書籍,喜歡看不倫不類,不三不四的東西。不明白自己應該要什麼,自己怎麼做才能得到,認為自己的能力那麼的差,做不到

B:大神,我要學node了,推薦一下node的書籍唄

我:恩,入門看一下《node於express開發》吧,然後看看node官網。還有一些博客什麼的。當然了,你完全按照那本書,也能做出一些的東西了。最重要的是,要自己動手,去做東西,然後發現問題,解決問題。提升自己。

B:大神,除了那本書,還有別的書嗎?

我:書很多,但書不在於多,而是,你能否理解了,並且能運用了?你看完了嗎?

B:我感覺很難做,node好難。

我:做做項目,搜搜Google、看看github。

而今,我不知道這位同學水平到底到了什麼水平,我想,應該不會太好,最終原因,我想是因為沒有深入的去折騰,沒有去寫代碼,沒去發現自己的問題

其實,我們的潛力很大,我們能學的更好。我們能掌握的更多,但是許多人都做不到堅持、做不到深入。不肯思考,不肯的動手,是阻礙我們進步的最大原因。

後記:

人,應該要明確自己的目標,擁有理想。

人,重要的不是你站在哪裡,而是你往哪個方向前進。

無論何時,不管你已經得到了多少,擁有了多少。都不是墮落的理由。

對於不肯上進,沒意志力的人來說,等於是,你想死,任何人都救不了你!

感謝自己,感謝自己沒有繼續讀大學。感謝自己在讀書時代已經養成了獨立思考,喜歡折騰的習慣。

Ⅲ 我想自學下電腦編程,有大神推薦下可以先看些初級的什麼書籍。個人興趣……

個人推薦入門C語言或者python:C語言語法簡單,有良好的邏輯抽象,入門的話還是先面向過程吧,不要剛學就面向對象雲里霧里的,如果是要更全面、深入的學習語言本身就C.python語法更加簡單簡潔易學,而且有各種強大的庫,擴展庫,可過程可對象,如果是為了通過編程這一手段來迅速的做出有用、實用的程序和界面可以學python.入門是從Basic語言開始的,大概熟悉程序的基礎語法與邏輯後,進階C語言。現代很多語言都是從C語言發展而來的,所以可以以C語言做跳板進階其他面向對象的高級語言。慢慢接觸C++,或高級編程語言(如:Net,Java等),網頁設計相關的語言(HTML+CSS+Javascript)。編程入門後,其實學什麼語言已經不太重要了(主要看計劃的發展方向)。程序設計的核心在於其邏輯。把程序設計的邏輯搞懂了,學什麼語言都很快。學習資源的累計:我聯合互聯網上的一群大牛,組建了一個編程的免費學習群,你只需要來我們這個群里聽就行,開頭的的第一部分是:四二六.,位於中間的第二部分是:396,處於最後一部分的是:284。這里有免費的學習資源,每天直播課程,不需要你付出什麼,只需要有一顆學習的心就可以了。不是想要學習的就不要加了。3、動手去寫去練當然只看是很難學會的。我們需要搭建IDE環境來多練習才能完全掌握這些語法。編程學習沒有捷徑可走,只有入門快慢之分。要學會編程只有coding、coding最後還是coding。送給那些懦弱的人們A:我是護士,我的專業就是護理。我做不了excel、做不了ppt、我學不會ps,好難,我不會寫文章。我:我學習那麼好,寫字那麼漂亮,編程也不錯,ps也挺好、我還能打籃球、我會兵乓求、我會羽毛球、我會足球、我會設計、我會英文。(有的都是高二退學之後自己加強學習的,讀書只給了我算數、識字這些基本的的能力),我特么是神嗎?A:人人都跟你一樣?不是誰都能用很短的時間學很多的東西。我:我大概是神吧!你能少看一點《爸爸去哪兒》、《額滴歌神啊》、《奔跑吧兄弟》嗎,今天出了《爸爸去哪》,明天來個《女兒去哪》、《爺爺去哪兒》,你看得完?你能不能看點有用的東西?例如有點啟發、讓人學到東西的影片或者書?A:委屈的癟癟嘴,那好,我要學習,給我買一本書吧,推薦一下。我:書到了,學習吧,一個月後我要看你的成績。我來考考你A:好難啊,我好睏,我要看一會兒電視..(然而沒然後了.)其實,這位A同學,極度的懦弱,並不是她不上進,只是那麼的懦弱,那麼的沉迷於垃圾節目、垃圾書籍,喜歡看不倫不類,不三不四的東西。不明白自己應該要什麼,自己怎麼做才能得到,認為自己的能力那麼的差,做不到B:大神,我要學node了,推薦一下node的書籍唄我:恩,入門看一下《node於express開發》吧,然後看看node官網。還有一些博客什麼的。當然了,你完全按照那本書,也能做出一些的東西了。最重要的是,要自己動手,去做東西,然後發現問題,解決問題。提升自己。B:大神,除了那本書,還有別的書嗎?我:書很多,但書不在於多,而是,你能否理解了,並且能運用了?你看完了嗎?B:我感覺很難做,node好難。我:做做項目,搜搜Google、看看github。而今,我不知道這位同學水平到底到了什麼水平,我想,應該不會太好,最終原因,我想是因為沒有深入的去折騰,沒有去寫代碼,沒去發現自己的問題其實,我們的潛力很大,我們能學的更好。我們能掌握的,但是許多人都做不到堅持、做不到深入。不肯思考,不肯的動手,是阻礙我們進步的最大原因。後記:人,應該要明確自己的目標,擁有理想。人,重要的不是你站在哪裡,而是你往哪個方向前進。無論何時,不管你已經得到了多少,擁有了多少。都不是墮落的理由。對於不肯上進,沒意志力的人來說,等於是,你想死,任何人都救不了你!感謝自己,感謝自己沒有繼續讀大學。感謝自己在讀書時代已經養成了獨立思考,喜歡折騰的習慣。

Ⅳ 編程入門先學什麼

編程入門先學C語言或者python。

為了解決使用機器語言編寫應用程序所帶來的一系列問題,人們首先想到使用助記符號來代替不容易記憶的機器指令。這種助記符號來表示計算機指令的語言稱為符號語言,也稱匯編語言。

在匯編語言中,每一條用符號來表示的匯編指令與計算機機器指令一一對應;記憶難度大大減少了,不僅易於檢查和修改程序錯誤,而且指令、數據的存放位置可以由計算機自動分配。

(4)牛爸學編程擴展閱讀:

使用匯編語言編寫計算機程序,程序員仍然需要十分熟悉計算機系統的硬體結構,所以從程序設計本身上來看仍然是低效率的、繁瑣的。

但正是由於匯編語言與計算機硬體系統關系密切,在某些特定的場合,如對時空效率要求很高的系統核心程序以及實時控製程序等,迄今為止匯編語言仍然是十分有效的程序設計工具。

但它有不可替代的特性,比如一些單片機或者一些直接控制硬體的程序就一定要用匯編語言。

Ⅳ 編程入門先學什麼好

如果沒有軟體開發或軟體教育從業個十年八年的經驗,就不要網上隨意發表這些建議了,真的太誤人子弟!
python是火、java的確工作需求多、易語言是簡單,你可以以後學,但不應該作為第一門編程語言的選擇或為功利性選擇的原因!如果大家普遍安排這么學習,那麼中國的IT就沒有未來了,你在IT這條道路也走不遠!
為什麼全國那麼多所高校計算機專業第一門語言都是C語言? 為什麼非計算機專業考試都安排C語言? 又為什麼那麼多語言都從C語言發展而來? 那些教育界科研專家是腦子都進水胡亂定的嗎?
如果你在IT行業沉浸多年,能夠站在高處自頂向下、從長遠學習職業規劃來負責任的為廣大學生考慮的話,你就會明白:作為編程入門的第一個語言,雖然不一定100%的適用全部人,但客觀的講,對絕大多數人,C語言仍然是編程入門的首選!

Ⅵ 在大學學C語言能幹什麼有什麼用最妤舉些易明白的例子

學了總沒有壞處的,出來工作了,至少你不編程吧,別人說你還是聽得懂,不至於盲
C語言的基本語法我是不打算再提了,很多C語言編程的書,就是將一些基本的數據類型、數據結構、語法,然後就是一些數值

計算的實例,大多數都是雷同的,難免有抄襲之嫌,而且頁沒有多少實用價值。

本書以實用實例作為編程指導,指引大家編寫真正實用的程序。了解到大家對黑客程序、病毒、窗口類程序比較感興趣,因此我就拿這些實例進行講解。基於大家基本都用Windows XP SP3,我也就在這個系統上把程序調試成功後再給大家講解。編程環境,我還是喜歡VisualC++ 6.0

本書計劃從四個大的方面來講,這四個方面是:窗口類、文件操作類、網路類、資料庫類。
都是時下流行的編程必備技術,也是軟體開發者,必須掌握的技術。中間以實例講解,逐步學習,相信大家看完後會有很大的提高的。

第一章窗口類程序的編寫

這一章就先來講解下窗口類程序的編寫。因為現在程序沒有界面,就像人沒有臉面一樣,而且好的界面更能吸引人。從基本的界面開始,相信能給大家指明出一條路的,使大家很容易地掌握窗口序的編寫。其實界面設計利用VC 6.0 的MFC,很容易地製作出來。這里從底層開始寫代碼來寫界面程序,使大家知道一些底層的東西,為以後學習打下好的基礎,相信您學了這些,再用VC 的MFC會得心應手的。

1.1

用 C 寫的第一個一個窗口程序

作為編程的開始,我們還是以一個Hello World來開始我們的學習之旅。代碼如下:

#include <stdio.h>

void main()
{
printf("Hello World!");
}

這是一個再簡單不過的C程序了,只要有點C語言的知識就能夠懂的,不過這里估計還有些人,到現在還不知道#include

<stdio.h>中的頭文件stdio.h到底是什麼東西,我就來說下了,stdio.h是一個文本文件,存在於磁碟上的,已VC為例它的位置如下圖:

也許你聽說過printf()函數是在stdio.h中預定義的,但是你見過其定義的形式沒有,沒有且看下圖

其定義形式,就如圖中所示,也許你並不懂前面那些東西是什麼,不用擔心,以後我會慢慢解釋給大家的。函數是先定義才能使用的,所以stdio.h中定義printf函數,我我們在引用了stdio.h頭文件後就可以在程序中調用printf函數了。

上面是在命令行中顯示一個「Hello World!」,沒什麼意思,下面我寫一個窗口程序,顯示個Hello World!
#include <windows.h>
void main()
{
MessageBox(NULL,"Hello World!","我的第一個窗口程序",MB_OK);
}
編譯運行後如下圖:

彈出的是一個對話框,上面有Hello World,還有一個標題和一個「確定」按鈕。
當然你會說這對話框也算個窗口嗎?這里肯定的告訴你:是的,對話框是窗口程序的一個子集。你可能還會這樣問,這樣一個簡單的窗口有啥用呢,其實這樣的窗口非常有用,我們在操作計算機的時候,會出現一些警告或提示的對話框,都是基本是這種方法寫出來的。就算是這個很簡單,學習本來不就是有易向難,有淺顯深奧去的過程嗎。
整個效果幾乎就是靠一個函數MessageBox的功勞。這里也先不介紹這個函數了,說些其他的。

其實用C編寫一些惡程序,就是把編程環境中所提供的一些函數熟悉了基本就可以了。用VC來寫成序,其中的頭文件有很多,定義了很多Windows API 函數、數據結構、宏,可以讓我們大家運用,通過它們,我們可以快速開發出使用的程序。這些Windows API在微軟的MSDN上查,上面有很多說明,部分還有代碼示例。不會是可以輸入函數名,查找相關信息,建議大家用英文版的Library,因為其內容比中文版的全面,英語不好的同學呢,就先看中文了
中文MSDN:http://msdn.microsoft.com/library/zh-cn/
英文MSDN:http://msen.micorsoft.com/library/en-us/

到這里,我們就完成第一個有界面程序的編寫,你感覺寫有界面的程序難嗎?顯然不難。

下面看一個向鋒和波波感興趣的程序:九九乘法
採用命令行形式
#include 「stdio.h」
int i=0,j=0;
for(i=1;i<10;i++)
for(j=1;j<i+1;j++)
printf(「%d*%d=%d\t」,j,i,j*i);
printf(「\n」);
和那個javascript效果都是一樣的,所以語言只要學好一樣,其他的就很容易旁通的,學習就撿一種學好,不要貪多。

好的,這一節就這樣吧,大家先各自了解下微軟的MSDN,對以後的學習會有很大的幫助的。

1.2 第一個真正的窗口程序

上一節中,我們用MessageBox函數輕松地實現了一個對話框窗口,可能你會說,那僅僅是個沒有用的對話框而已,是的,只是對話框而已。我之所以以一個對話框為例呢,是因為我只是想讓你知道寫一個有界面的程序並不是件難辦的事。明白了這一點後,我們繼續。今天來編寫一個真正的窗口程序。
下面就該羅嗦一段了,由於大家以前並沒有寫過什麼窗口程序,寫的都是命令行下的,我們知道在命令行下的程序都有一個主函數main,這個函數也就是程序的入口函數。我們現在用VC 6.0來寫,而且要寫窗口類程序,VC 6.0給我們提供了一個專門用作窗口類程序的入口函數WinMain()
這個函數原型是這樣的
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTRlpCmdLine,
int nCmdShow
);
大家是不是感覺這個函數挺復雜的,有這么幾個參數,而像main好像就沒有參數。其實main是有參數,這個向鋒和小四是知道了的。但是main函數的參數是可以省略的,而WinMain是不可以省的。這里也要對VC6.0的編譯模式改下
看下圖

依次是「工程」→「設置」→「連接」,在「工程選項」里把console改為windows就可以了。如果認真學了匯編,或是手寫命令編譯連接過C程序,就會知道這是干什麼的。Console是控制台的意思,以前我們用mian函數寫的程序都是以控制台模式連接的,所以很少會有界面的。現在我們要寫有界面的程序,所以要選Windows(窗口)模式了。

我們寫入以下代碼,並按照上面說的方法去做,看看結果
#include "windows.h"

int WINAPI WinMain(HINSTANCEhInstance,
HINSTANCE hPreInstance,
LPSTR lpCmdLine,
int nShowCmd)
{
MessageBox(NULL,"WinMain創建的窗口程序","WinMain",MB_OK);
return0;
}
結果如下圖:

與第一節中的這段代碼代碼比較下
#include 「windows.h」
void main()
{
MessageBox(NULL,"Hello World!","我的第一個窗口程序",MB_OK);
}

兩者比較下,後者多了個cmd窗口。可見用main寫的並沒有完全脫離命令行呀。所以以後我們寫窗口程序就用winmain了。

好了,轉過來,我們來看看WinMain()函數,其中有4個參數
先看下解釋(看不明白得先看完):
hInstance:應用程序當前事例的句柄。
hPrelnstance:應用程序的先事例的句柄。對於同一個程序打開兩次,出現兩個窗口第一次打開的窗口就是先前實例的窗口。對於一個32的位程序,該參數總為NULL。
lpCmdLine:指向應用程序命令行的空字元串的指針,不包括函數名。獲得整個命令行,參看GetCommandLine。
nCmdShow:指明窗口如何顯示(是隱藏還是顯示,有沒有最大化按鈕之類的)。取值可以參考MSDN
這里我相信有一個詞大家好應該比較陌生,句柄(HANDLE)是吧。下面我就來簡單的說下
句柄其實就是Windows系統中一個東西的唯一標識。就是系統中有很多運行的程序或者資源之類的,為了更好的管理使用,Windows系統給它們每人一個ID一樣。懂得網頁製作的人應該知道網頁中各個元素的ID吧,網頁的ID如果重復話可能出現錯誤。那麼系統的句柄會不會有相同的,那是肯定不會有的了,就和我們的學號一樣,系統自動分配每一個模塊的句柄,是不會相同的了。

對於句柄大家可以先這樣理解著,不用一下子搞懂得。以後學著學著就明白了。

估計大家對那幾個參數的類型改犯迷糊了吧。其實那幾個類型,並不是什麼新類型,都是Windows開發人員為了自己和他人編程方便,同過基本的C語言語法定義一種新的結構體,或者是共同體,再者就是枚舉類型。我知道結構體、共同體和枚舉類型,很多老師是沒有講到的,因為在書的後邊,很多教C的,又是很垃圾的老師,所以不會講那麼快的。其實結構體這些數據類型,就是通過我們常用的字元、整型、浮點等數據類型構造一個比較復雜的類型而已,舉個例子,就是我們知道C沒有一個數據類型可以描述一個人吧,那麼我構造一個是不是很方便我們編程呢。我們可以這樣構造一個
struct People
{
intage;//年齡
charsex[2];//性別
intheight;//身高
……
}
我們這樣定義以後就可以在我們以後的程序中利用這個數據類型了,People zhangsan;把zhangsan的身高172放到zhangsan.height中。這樣可以方便完成很多工作。所以結構體是很簡單的,還有其他的復雜數據類型也是很簡單的,都是有常用的簡單的類型來結合到一起構造一個復雜的而已。這和JAVA定義類是很相似的,java定義個人類,不是可以這樣的
public class People
{
publicint age;
publicstring sex;
publicheight;
……
}
看起來都差不多,而且用法也很相像。唯一的差別其實就是類可以有方法,而結構體是沒有的(經過特殊處理也是可以的,這里不用考慮)。

上面是為了讓大家了解下復雜數據類型的定義,羅嗦了一大堆。下面來看下WinMain中第一個參數的類型HINSTANCE這個只是個結構體而已,實際上和HANDLE這個類型差不多,但是有一點差別,而HANDLE是這樣typedef PVOID HANDLE;定義的,PVOID是什麼呢,我們來看下typedef void *PVOID;說明PVOID是一個指針,初始指向空(void)。因此可以知道句柄也是個指針而已。看著這么復雜原來也只是指針。
這些都可以在微軟的msdn上查得到的,而且很詳細的
那個第二個LPSTR 根據字面上的意思就知道是字元串類型了。查一查果然是。

大家一定要利用好msdn,很有用的。

本節就到此結束了,主要是說明了一個WinMain函數和結構體的事情,東西也不算太多,大家應該能接受得了吧。下節就來點復雜點深點的東西,希望大家做好心理准備。

1.3 窗口程序的編寫

在來啰嗦之前,希望大家能夠做好准備,這一節知識有點多,內容有點長。但願大家能夠一口氣讀完,如果一口氣讀不完,那就換口氣接著讀。

上節中我們用MessageBox()就實現了一個真正的窗口。MessageBox()中的原型如下:
Int MessageBox(HWND hWnd,
LPCTSTRlpText,
LPCTSTRlpCaption,
UINT uType);
參數解釋
hWnd 所屬對話框所屬窗口的句柄,如果是NULL,則此對話框不屬於任何一個窗口。
lpText 對話框窗口的顯示內容。
lpCaption 對話框窗口的標題。
uType 對話框的樣式和動作(像是確定按鈕,還是取消按鈕就是設置這里的)

關於這個函數的細節可以看這里
http://msdn.microsoft.com/en-us/library/ms645505(VS.85).aspx

到此為止,你也算是會了窗口程序的編寫,但只是一個開始,不過這已經很好,可能會讓你感覺到了C的魅力,也可能會稍微解點C語言能幹什麼的疑惑。在開始寫代碼之前,我有必要把細節和原理先說明下。
Windows下一個窗口創建的過程有以下幾個步驟:

1. 程序創建一個窗口,首先要向Windows系統注冊一個窗口類wndclassex,其實就是定義一個變數,變數的類型是WNDCLASSEX(結構體)。該結構體的定義與介紹看這里(http://msdn.microsoft.com/en-us/library/ms633577(VS.85).aspx),
typedef struct {
UINT cbSize;
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCTSTR lpszMenuName;
LPCTSTR lpszClassName;
HICON hIconSm;
} WNDCLASSEX, *PWNDCLASSEX;

成員介紹
cbSize 值為sizeof(WNDCLASSEX),在調用GetClassInfoEx前必須要先設置它值。

style 窗口類的樣式,它的值可以是窗口樣式值的任意組合。
可以有以下的值
lpfnWndProc 指向窗口處理函數(回調函數)。處理窗口事件,像單擊滑鼠會怎樣,右擊滑鼠會怎樣,都是由此函數控制的。
cbClsExtra 為窗口類的額外信息做記錄,系統初始化為0。
cbWndExtra 記錄窗口實例的額外信息,系統初始為0.如果程序使用WNDCLASSEX注冊一個從資源文件里創建的對話框,則此參數必須設置為DLGWINDOWEXTRA
hIcon 窗口類的圖標,為資源句柄,如果設置為NULL,系統將為窗口提供一個默認的圖標。
hCursor 窗口類的滑鼠樣式,為滑鼠樣式資源的句柄,如果設置為NULL,系統提供一個默認的滑鼠樣式。
hbrBackground 窗口類的背景刷,為背景刷句柄,也可以為系統顏色值,如果顏色值已給出,則必須轉化為以下的HBRUSH的值
· COLOR_ACTIVEBORDER
· COLOR_ACTIVECAPTION
· COLOR_APPWORKSPACE
· COLOR_BACKGROUND
· COLOR_BTNFACE
· COLOR_BTNSHADOW
· COLOR_BTNTEXT
· COLOR_CAPTIONTEXT
· COLOR_GRAYTEXT
· COLOR_HIGHLIGHT
· COLOR_HIGHLIGHTTEXT
· COLOR_INACTIVEBORDER
· COLOR_INACTIVECAPTION
· COLOR_MENU
· COLOR_MENUTEXT
· COLOR_SCROLLBAR
· COLOR_WINDOW
· COLOR_WINDOWFRAME
· COLOR_WINDOWTEXT
lpszMenuName 指向一個以NULL結尾的字元床,同目錄資源的名字一樣。如果使用整型id表示菜單,可以用MAKEINTRESOURCE定義一個宏。如果它的值為NULL,那麼該類創建的窗口將都沒有默認的菜單。
lpszClassName 窗口類的名字,字元串類型。
hIconSm 小圖標的句柄,在任務欄顯示的圖標,可以和上面的那個一樣。

定義一個WNDCLASSEX類型變數後,在給變數成員初始化後,我們就可以用
RegisterWindowEx(&wndclassex)來注冊這個窗口類了。

這個注冊過程,就和我們平常創建一個項目一樣,都要先注冊才能創建。

Ⅶ 編程入門先學什麼

個人推薦入門C語言或者python :
C語言語法簡單,有良好的邏輯抽象,入門的話還是先面向過程吧,不要剛學就面向對象雲里霧里的,如果是要更全面、深入的學習語言本身就C.
python語法更加簡單簡潔易學,而且有各種強大的庫,擴展庫,可過程可對象,如果是為了通過編程這一手段來迅速的做出有用、實用的程序和界面可以學python.
入門是從Basic語言開始的,大概熟悉程序的基礎語法與邏輯後,進階C語言。
現代很多語言都是從C語言發展而來的,所以可以以C語言做跳板進階其他面向對象的高級語言。
慢慢接觸C++,或高級編程語言(如:Net,Java 等),網頁設計相關的語言(HTML+CSS+Javascript)。
編程入門後,其實學什麼語言已經不太重要了(主要看計劃的發展方向)。程序設計的核心在於其邏輯。把程序設計的邏輯搞懂了,學什麼語言都很快。

學習資源的累計:
我聯合互聯網上的一群大牛,組建了一個編程的免費學習群,你只需要來我們這個群里聽就行,開頭的的第一部分是:四二六.,位於中間的第二部分是:396,處於最後一部分的是:284。 這里有免費的學習資源,每天直播課程,不需要你付出什麼,只需要有一顆學習的心就可以了。 不是想要學習的就不要加了。

3、動手去寫去練
當然只看是很難學會的。我們需要搭建IDE環境來多練習才能完全掌握這些語法。編程學習沒有捷徑可走,只有入門快慢之分。要學會編程只有coding、coding最後還是coding。

送給那些懦弱的人們
A : 我是護士,我的專業就是護理。我做不了excel、做不了ppt、我學不會ps,好難,我不會寫文章。
我: 我學習那麼好,寫字那麼漂亮,編程也不錯,ps也挺好、我還能打籃球、我會兵乓求、我會羽毛球、我會足球、我會設計、我會英文。(有的都是高二退學之後自己加強學習的,讀書只給了我 算數、識字這些基本的的能力),我特么是神嗎?
A : 人人都跟你一樣?不是誰都能用很短的時間學很多的東西。
我 :我大概是神吧!你能少看一點 《爸爸去哪兒》、《額滴歌神啊》、《奔跑吧兄弟》嗎,今天出了《爸爸去哪》,明天來個《女兒去哪》、《爺爺去哪兒》,你看得完?你能不能看點有用的東西?例如有點啟發、讓人學到東西的影片或者書?
A:委屈的癟癟嘴,那好,我要學習,給我買一本書吧,推薦一下。
我:書到了,學習 吧,一個月後我要看你的成績。我來考考你
A:好難啊,我好睏,我要看一會兒電視.....(然而沒然後了....)
其實,這位A同學,極度的懦弱,並不是她不上進,只是那麼的懦弱,那麼的沉迷於垃圾節目、垃圾書籍,喜歡看不倫不類,不三不四的東西。不明白自己應該要什麼,自己怎麼做才能得到,認為自己的能力那麼的差,做不到
B:大神,我要學node了,推薦一下node的書籍唄
我:恩,入門看一下《node於express開發》吧,然後看看node官網。還有一些博客什麼的。當然了,你完全按照那本書,也能做出一些的東西了。最重要的是,要自己動手,去做東西,然後發現問題,解決問題。提升自己。
B:大神,除了那本書,還有別的書嗎?
我:書很多,但書不在於多,而是,你能否理解了,並且能運用了?你看完了嗎?
B:我感覺很難做,node好難。
我:做做項目,搜搜Google、看看github。
而今,我不知道這位同學水平到底到了什麼水平,我想,應該不會太好,最終原因,我想是因為沒有深入的去折騰,沒有去寫代碼,沒去發現自己的問題
其實,我們的潛力很大,我們能學的更好。我們能掌握的更多,但是許多人都做不到堅持、做不到深入。不肯思考,不肯的動手,是阻礙我們進步的最大原因。
後記:
人,應該要明確自己的目標,擁有理想。
人,重要的不是你站在哪裡,而是你往哪個方向前進。
無論何時,不管你已經得到了多少,擁有了多少。都不是墮落的理由。
對於不肯上進,沒意志力的人來說,等於是,你想死,任何人都救不了你!
感謝自己,感謝自己沒有繼續讀大學。感謝自己在讀書時代已經養成了獨立思考,喜歡折騰的習慣。

Ⅷ 編程需要什麼基礎

很多想學編程的小夥伴的一個問題就是我該如何入門?是啊,面對這樣的問題我們該如何去做呢,這是擺在很多小夥伴面前的問題。君墨根據自己多年的編程經驗為大家分享自己的看法。

1、為自己選擇一個方向


編程語言是從事編程工作的工具,我們選擇不同的方向那麼我們學習的編程語言也不會相同。比如我們選擇網站後台開發那麼我們可以選擇的開發語言就是jsp或者php。當然不同的開發語言也可以做相同的事情,比如c#和c++都可以做windows開發,那麼我們就需要去了解這些語言的優缺點來做合適的選擇。

我聯合互聯網上的一群大牛,組建了一個編程的免費學習群,你只需要來我們這個群里聽就行,開頭的的第一部分是:四二六.,位於中間的第二部分是:396,處於最後一部分的是:284。 這里有免費的學習資源,每天直播課程,不需要你付出什麼,只需要有一顆學習的心就可以了。 不是想要學習的就不要加了。


3、動手去寫去練

當然只看是很難學會的。我們需要搭建IDE環境來多練習才能完全掌握這些語法。編程學習沒有捷徑可走,只有入門快慢之分。要學會編程只有coding、coding最後還是coding。


送給那些懦弱的人們

A : 我是護士,我的專業就是護理。我做不了excel、做不了ppt、我學不會ps,好難,我不會寫文章。

我: 我學習那麼好,寫字那麼漂亮,編程也不錯,ps也挺好、我還能打籃球、我會兵乓求、我會羽毛球、我會足球、我會設計、我會英文。(有的都是高二退學之後自己加強學習的,讀書只給了我 算數、識字這些基本的的能力),我特么是神嗎?

A : 人人都跟你一樣?不是誰都能用很短的時間學很多的東西。

我 :我大概是神吧!你能少看一點 《爸爸去哪兒》、《額滴歌神啊》、《奔跑吧兄弟》嗎,今天出了《爸爸去哪》,明天來個《女兒去哪》、《爺爺去哪兒》,你看得完?你能不能看點有用的東西?例如有點啟發、讓人學到東西的影片或者書?

A:委屈的癟癟嘴,那好,我要學習,給我買一本書吧,推薦一下。

我:書到了,學習 吧,一個月後我要看你的成績。我來考考你

A:好難啊,我好睏,我要看一會兒電視.....(然而沒然後了....)

其實,這位A同學,極度的懦弱,並不是她不上進,只是那麼的懦弱,那麼的沉迷於垃圾節目、垃圾書籍,喜歡看不倫不類,不三不四的東西。不明白自己應該要什麼,自己怎麼做才能得到,認為自己的能力那麼的差,做不到

B:大神,我要學node了,推薦一下node的書籍唄

我:恩,入門看一下《node於express開發》吧,然後看看node官網。還有一些博客什麼的。當然了,你完全按照那本書,也能做出一些的東西了。最重要的是,要自己動手,去做東西,然後發現問題,解決問題。提升自己。

B:大神,除了那本書,還有別的書嗎?

我:書很多,但書不在於多,而是,你能否理解了,並且能運用了?你看完了嗎?

B:我感覺很難做,node好難。

我:做做項目,搜搜Google、看看github。

而今,我不知道這位同學水平到底到了什麼水平,我想,應該不會太好,最終原因,我想是因為沒有深入的去折騰,沒有去寫代碼,沒去發現自己的問題

其實,我們的潛力很大,我們能學的更好。我們能掌握的更多,但是許多人都做不到堅持、做不到深入。不肯思考,不肯的動手,是阻礙我們進步的最大原因。

後記:

人,應該要明確自己的目標,擁有理想。

人,重要的不是你站在哪裡,而是你往哪個方向前進。

無論何時,不管你已經得到了多少,擁有了多少。都不是墮落的理由。

對於不肯上進,沒意志力的人來說,等於是,你想死,任何人都救不了你!

感謝自己,感謝自己沒有繼續讀大學。感謝自己在讀書時代已經養成了獨立思考,喜歡折騰的習慣。

熱點內容
自帶ftp伺服器好用嗎 發布:2025-02-06 15:26:11 瀏覽:109
win7訪問xp區域網 發布:2025-02-06 15:17:07 瀏覽:524
均線差演算法 發布:2025-02-06 15:13:22 瀏覽:459
androidbrowser 發布:2025-02-06 15:09:49 瀏覽:622
勇敢的心ftp 發布:2025-02-06 15:09:03 瀏覽:327
php日誌分析 發布:2025-02-06 15:08:19 瀏覽:874
36腳本大廳作者 發布:2025-02-06 14:55:53 瀏覽:409
買電腦配送伺服器嗎 發布:2025-02-06 14:54:58 瀏覽:243
伺服器怎麼刪除資源 發布:2025-02-06 14:36:14 瀏覽:672
安卓如何設置桌面返回鍵 發布:2025-02-06 13:58:15 瀏覽:49