第一篇:MFC Windows程序設(shè)計(jì)語言總結(jié)
MFC Windows程序設(shè)計(jì)語言總結(jié)
我在剛開始接觸Windows編程時, 從Visual Basic開始, 從MFC開始, 雖然寫出了程序, 但自己都不知道程序是如何運(yùn)行的, 從而造成寫程序“容易”修改難, 設(shè)計(jì)程序“容易”維護(hù)難的狀況.經(jīng)過MFC Windows程序設(shè)計(jì)的學(xué)習(xí)之后,明白了有關(guān)知識。
API函數(shù)是Windows提供給應(yīng)用程序的編程接口, 任何用戶應(yīng)用程序必須運(yùn)行在API函數(shù)之上.直接使用API編程是了解操作系統(tǒng)運(yùn)行細(xì)節(jié)的最佳方式, 而且熟知API函數(shù)也是對程序開發(fā)者的一個最基本的要求.這課程以API函數(shù)作為起點(diǎn)介紹Windows編程, 使我撇開C++的特性專心熟悉Win32編程思路和消息驅(qū)動機(jī)制.但是, 在開發(fā)大型系統(tǒng)的時候, 往往并不完全直接使用API函數(shù), 而是使用MFC類庫框架程序.MFC對90%以上的API函數(shù)進(jìn)行了面向?qū)ο蠡b, 完全體現(xiàn)了對象化程序設(shè)計(jì)的特點(diǎn), 是目前流行的類庫.當(dāng)我熟悉最基本的API函數(shù)編程以后, 就可以學(xué)習(xí)更高級的MFC編程了.但是, 雖然MFC僅僅是對API函數(shù)的簡單封裝, 由于我之前對C++語言的了解不夠, 不清楚框架程序的工作機(jī)制, 即便是有經(jīng)驗(yàn)的程序員在MFC復(fù)雜的結(jié)構(gòu)面前也顯得非常困惑.他們會“用”MFC, 卻不知道為什么這么“用”, 在運(yùn)行程序出錯時這種現(xiàn)象帶來的問題就很明顯, 他們不會改.面對一個大的項(xiàng)目, 代碼往往需要手工添加和修改, 而很少能夠依靠VC++的向?qū)?為此, 這門課程介紹了設(shè)計(jì)MFC中的類.函數(shù)和宏定義.通過對MFC類庫的分析和了解, 不僅能夠使我更好地使用MFC類庫, 同時, 對于自己設(shè)計(jì)和實(shí)現(xiàn)框架和類, 無疑也有相當(dāng)大的幫助.之后, 這課程還講述了Windows系統(tǒng)編程中當(dāng)前最為熱門的話題--DLL注入技術(shù).遠(yuǎn)程進(jìn)程技術(shù).HOOKAPI技術(shù)等, 并配有完整而具體的實(shí)例.從這門MFC Windows 應(yīng)用程序設(shè)計(jì),我掌握了 :.Windows應(yīng)用程序的基礎(chǔ)知識
Windows應(yīng)用程序是靠消息來驅(qū)動的,消息是一個描述事件的結(jié)構(gòu)。
在Windows應(yīng)用程序的主函數(shù)中,首先要注冊窗口類,然后創(chuàng)建并顯示窗口。創(chuàng)建窗口后程序就進(jìn)入消息循環(huán),在消息循環(huán)中,程序不斷地獲得消息并將消息派送給對應(yīng)的窗口函數(shù)進(jìn)行處理。
窗口函數(shù)是處理事件的地方,它為switch-case結(jié)構(gòu),每一個case對應(yīng)一段消息相應(yīng)代碼。
用函數(shù)對Windows應(yīng)用程序進(jìn)行封裝可以使程序的結(jié)構(gòu)更為清晰。
Windows應(yīng)用程序的類封裝
CWinApp類是MFC對Windows主函數(shù)的封裝,通過派生 CWinApp可以得到自己的應(yīng)用程序類,在應(yīng)用程序類中主要實(shí)現(xiàn)了全局初始化操作,應(yīng)用程序類創(chuàng)建了主窗口后便進(jìn)入了消息循環(huán)。
應(yīng)用程序的主窗口一般都是CFrameWnd的派生類,可以通過派生該類得到自己的主窗口類。
Windows應(yīng)用程序的窗口函數(shù)封裝到CCmdTarget類中,所有希望相應(yīng)消息的類都應(yīng)該以CCmdTarget為基類來派生。
MFC是用消息映射表來實(shí)現(xiàn)消息與消息相應(yīng)函數(shù)之間的映射的。MFC通過四個
宏來聲明和實(shí)現(xiàn)消息映射表。MFC的這種表驅(qū)動的機(jī)制使消息處理結(jié)構(gòu)變
得更加清晰,明了。.MFC應(yīng)用程序框架
應(yīng)用程序類,框架窗口類,試圖類,文檔類構(gòu)成了應(yīng)用程序的框架,框架的功能是通過各類之間的協(xié)調(diào)工作實(shí)現(xiàn)的類。
MFC采用文檔/試圖結(jié)構(gòu)來實(shí)現(xiàn)數(shù)據(jù)和數(shù)據(jù)表現(xiàn)的分離,文檔試圖的分離有利于數(shù)據(jù)和數(shù)據(jù)表現(xiàn)的單獨(dú)改變。
MFC用類信息存儲了動態(tài)創(chuàng)建類對象時所需要的消息。圖形
Windows提供了圖形用戶接口使用戶得以在窗口中繪圖。
在MFC中使用CDC類的派生類來向窗口和打印機(jī)等輸出設(shè)備繪圖。每個設(shè)備環(huán)境中包含筆畫.畫刷,位圖,調(diào)色板,字體等GDI對象。
可以通過創(chuàng)建GDI對象并將其選入設(shè)備環(huán)境來實(shí)現(xiàn)所需要的繪圖操作。5MFC的通用類
在MFC中,仍然可以使用Windows及C的所有數(shù)據(jù)類型。但是,為了把數(shù)據(jù)與對數(shù)據(jù)的操作方法封裝在一起,MFC又定義了一些和數(shù)據(jù)相關(guān)的類從而使得數(shù)據(jù)的使用更加方便。習(xí)慣上人們把這些類叫做通用類。
簡單的數(shù)據(jù)類CPoint,CSize和CRect;
字符串類CString;
集合數(shù)據(jù)類的基本概念及CArray類;
文檔類和視圖類之間的數(shù)據(jù)傳遞。
視圖類對象用成員函數(shù)GetDocument獲得文檔類對象指針,然后視圖對象通過這個指針來訪問文檔對象中的數(shù)據(jù)。Windows應(yīng)用程序的界面的設(shè)計(jì)
Windows應(yīng)用程序的界面有單文檔界面和多文檔界面的區(qū)別,目前多文檔界面已經(jīng)不被人們所喜歡。
每次繪圖操作結(jié)束后調(diào)用視圖類成員函數(shù)InvalidateRect啟動OnDraw函數(shù)以更新顯示。
文檔/視圖類型的應(yīng)用程序可以實(shí)現(xiàn)一個文檔多個顯示,但是在文檔的內(nèi)容發(fā)生改變的時候,要對所有的視圖進(jìn)行更新。
在需要時,應(yīng)用程序的界面可以設(shè)計(jì)為帶有滾動條的窗口形式。但在設(shè)計(jì)時要注意文檔坐標(biāo)與視圖坐標(biāo)之間的轉(zhuǎn)換。
7鼠標(biāo)和鍵盤
在應(yīng)用程序的界面上,可以通過鼠標(biāo)左擊,右擊,移動等事件來對用戶的鼠標(biāo)輸入進(jìn)行處理。
鼠標(biāo)消息有用戶區(qū)鼠標(biāo)消息和非用戶區(qū)鼠標(biāo)消息兩種,在應(yīng)用程序中主要使用用戶區(qū)鼠標(biāo)消息。
可以用消息捕獲函數(shù)來捕獲窗口外的鼠標(biāo)消息,以完成某些特殊的操作??梢酝ㄟ^處理字符消息,按鍵等鍵盤消息對用戶的鍵盤操作進(jìn)行相應(yīng)。在計(jì)算機(jī)的顯示器屏幕上,如果有多個窗口存在的話,則具有焦點(diǎn)的窗口所對應(yīng)的應(yīng)用程序是具有接收用戶消息能力的程序,這個程序叫做“正在活動狀態(tài)的應(yīng)用程序”??梢杂檬髽?biāo)單擊窗口使它具有焦點(diǎn),當(dāng)應(yīng)用程序的窗口獲得輸入焦點(diǎn)時,會發(fā)出WM_SETFOCUS消息;而當(dāng)窗口失去輸入焦點(diǎn)時,會發(fā)出WM_KILLFOCUS消
息。資源
資源是供Windows應(yīng)用程序使用的數(shù)據(jù),它們駐留在執(zhí)行文件中。程序運(yùn)行時,隨著程序的需要,這些數(shù)據(jù)可以被動態(tài)地加載進(jìn)入內(nèi)存。資源是程序用戶界面的重要組成部分。常用資源有菜單,加速鍵,圖標(biāo),位圖。程序所需要的資源使用資源描述文件來說明,并在資源頭文件中用標(biāo)識符唯一地標(biāo)識。資源可以使用VisualC++的資源編輯器來創(chuàng)建和編輯,也可以使用文本編輯器來編輯。菜單的使用與Windows的命令消息WM_COMMAND相關(guān)。
菜單項(xiàng)消息映射宏的格式是:
ON_COMMAND
菜單項(xiàng)動態(tài)修改的消息映射宏的格式是:
ON_UPDATE_COMMAND_UI
在文檔/視圖結(jié)構(gòu)的程序中,資源的加載是由應(yīng)用程序類的InitInstance函數(shù)通過構(gòu)造CDocTemplate(包括其派生類)對象來完成的。
加速鍵在資源描述文件中與所對應(yīng)的菜單項(xiàng)關(guān)聯(lián)。
圖標(biāo)使用Visual C++開發(fā)環(huán)境的菜單ProjectAdd To Project/Files添加。
位圖要用CBitmap對象來保存,由成員函數(shù)LoadBitmap來加載,在顯示時需先繪制到內(nèi)存DC中,然后再用BitBlt函數(shù)把它由內(nèi)存DC復(fù)制到顯示設(shè)備的DC上。MFC的文件處理機(jī)制
文件是存儲在永久性存儲介質(zhì)上的數(shù)據(jù)的集合。在面向?qū)ο蟮膽?yīng)用程序中也涉及對象存盤的問題。對象存盤使用序列化的機(jī)制實(shí)現(xiàn)。
序列化就是把對象的當(dāng)前狀態(tài)以文件的形式寫入永久性存儲體中,在需要的時候從文件中讀取它,并在應(yīng)用程序中重建對象的過程。使用序列化機(jī)制把對象存盤稱為對象的永久化,這樣的對象稱為永久性對象。
MFC通過宏DECLARE_SERIAL和IMPLEMENT_SERIAL給類添加動態(tài)重建對象和序列化操作的代碼。宏DECLARE_SERIAL用在類聲明中,宏IMPLEMENT_SERIAL用在類實(shí)現(xiàn)中。同時,該類必須從CObject類或其派生類派生,并重載Serialize函數(shù)。Serialize函數(shù)借助類CArchive對象實(shí)現(xiàn)對象的序列化。CArchive對象是一種I/O,它借助CFile對象完成磁盤文件數(shù)據(jù)的存取操作。MFC把文件的打開,關(guān)閉,讀寫操作封裝在類CFile中。CFile對象代表一個磁盤文件,使用CFile對象可以直接對文件進(jìn)行操作??丶?/p>
控件是應(yīng)用程序窗口的子窗口。MFC的控件類封裝了Windows的標(biāo)準(zhǔn)控件和通用控件,這些控件類都派生于類CWnd。
靜態(tài)文本控件由類CStatic封裝,按鈕控件由類CButton封裝,編輯控件由類CEdit封裝,進(jìn)度條控件由類CProgessCtrl封裝,微調(diào)器控件由類CSpinButtonCtrl封裝,圖象列表控件由類CImageList封裝,列表視圖控件由類CListCtrl封裝??丶惖氖褂门c窗口類CWnd的使用基本相同。
控件自己有特有的行為特點(diǎn),在各自的類中由相應(yīng)的成員函數(shù)實(shí)現(xiàn)。
控件顏色的設(shè)置在Windows消息WM_CTLCOLOR的消息響應(yīng)函數(shù)OnCtlColor中完成。其消息映射宏是ON_WM_CTLCOLOR()。
11對話框
對話框是Windows應(yīng)用程序與用戶交互的重要手段,分為模態(tài)對話框和非模態(tài)
對話框。對話框的基本行為由類CDialog封裝,對話框的外觀由模版資源定義。對話框模版資源可以使用Visual C++的資源編輯器來創(chuàng)建和編輯。
掌握了對話框模版資源描述文件,對話框的定義及使用,對話框的數(shù)據(jù)交換和檢驗(yàn),對話框的應(yīng)用程序,通用對話框,非模態(tài)對話框,屬性頁方面的知識。12 進(jìn)程與線程的管理
進(jìn)程是一個正在運(yùn)行的應(yīng)用程序的實(shí)例,擁有應(yīng)用程序的所有資源,進(jìn)程由一個或多個線程組成。線程是進(jìn)程中一個獨(dú)立的執(zhí)行路徑。Windows按照一定的規(guī)則,如優(yōu)先級和先后次序,給線程分配CPU時間。
還掌握了工作線程和用戶界面線程,線程同步,線程通信。動態(tài)鏈接庫
動態(tài)鏈接庫(DLL)是程序運(yùn)行時裝載和連接的一種二進(jìn)制文件,主要是通過它的各種導(dǎo)出函數(shù),類和資源來向外界提供服務(wù)并允許同時被多個不同的進(jìn)程所共享。
DLLMain是Windows的動態(tài)鏈接庫的入口函數(shù),主要作用是調(diào)用動態(tài)鏈接庫時,完成初始化工作。
聲明為導(dǎo)出函數(shù)有兩種方法:在.def文件中用函數(shù)的名稱來聲明;使用關(guān)鍵字_declspec(dllexport)來聲明。
在VisualC++中,動態(tài)鏈接庫分為非MFC DLL,常規(guī)型DLL和擴(kuò)展型DLL三種。創(chuàng)建第一種動態(tài)鏈接庫使用向?qū)in32 Dynamic-Link Library,創(chuàng)建第二和第三種使用MFC AppWizard(dll)。
動態(tài)鏈接庫的導(dǎo)出函數(shù)被其他程序模塊調(diào)用,在這些程序模塊中稱之為導(dǎo)入函數(shù)。應(yīng)用程序使用DLL文件中的導(dǎo)出函數(shù)有兩種方式:隱式鏈接和顯式鏈接。14 組件對象模型基礎(chǔ)
掌握了組件對象模型(COM)概述;使用DOM組件;組件的包含和聚合;進(jìn)程外組件;使用ATL設(shè)計(jì)COM組件。
15用MFC開發(fā)ActiveX應(yīng)用
掌握了ActiveX技術(shù)的基本概念;ActiveX容器;ActiveX服務(wù)器;自動化;ActiveX控件與ActiveX文檔的有關(guān)知識。
ActiveX是一種為了適應(yīng)互聯(lián)網(wǎng)需要而發(fā)展起來的基于COM的技術(shù)。16 用MFC設(shè)計(jì)數(shù)據(jù)庫應(yīng)用程序
數(shù)據(jù)庫系統(tǒng)一般由數(shù)據(jù)庫,數(shù)據(jù)庫管理系統(tǒng)和數(shù)據(jù)庫應(yīng)用系統(tǒng)構(gòu)成。數(shù)據(jù)庫是存放數(shù)據(jù)的倉庫。為使一個數(shù)據(jù)庫應(yīng)用系統(tǒng)適用于所有的數(shù)據(jù)庫管理系統(tǒng),人們在數(shù)據(jù)庫應(yīng)用系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)之間增加一個公認(rèn)的標(biāo)準(zhǔn)接口。ODBC和DAO是兩個常用的標(biāo)準(zhǔn)接口。
MFC有兩組數(shù)據(jù)庫類:一組是基于ODBC的,一組是基于DAO的。
經(jīng)過這門課程的學(xué)習(xí)不但使我掌握了Windows應(yīng)用程序設(shè)計(jì)的基本方法,還可以使我進(jìn)一步深刻,全面地理解面向?qū)ο蟪绦蛟O(shè)計(jì)的思想,從而把握程序設(shè)計(jì)方法的發(fā)展方向。
第二篇:程序設(shè)計(jì)語言
程序設(shè)計(jì)語言
一般分為機(jī)器語言、匯編語言和高級語言。
1、機(jī)器語言
機(jī)器語言是用二進(jìn)制數(shù)表示的、計(jì)算機(jī)唯一能理解和直接執(zhí)行的程序語言。機(jī)器語言不直觀,編寫難度大,易于出錯,調(diào)試、修改繁瑣,但執(zhí)行速度最快。機(jī)器語言是最低級的程序設(shè)計(jì)語言。
2、匯編語言
匯編語言是將機(jī)器語言“符號化”的程序設(shè)計(jì)語言。
匯編語言編寫的程序,機(jī)器不能直接識別,要由匯編程序?qū)⑵浞g成機(jī)器語言才能執(zhí)行。
特點(diǎn):比機(jī)器語言程序更易于編寫、檢查和修改,也保持了機(jī)器語言編程質(zhì)量高、運(yùn)行速度快、占用存儲空間少等優(yōu)點(diǎn)。但匯編語言的通用性和可移植性差。匯編語言也屬于低級語言。
3、高級語言
常用的高級語言有BASIC、FORTRAN、PASCAL、C、C++、JAVA等。
特點(diǎn):與匯編相比,①更接近自然語言,一般采用英語單詞表達(dá)語句,便于理解、記憶和掌握。②易于編寫、查找錯誤和修改③通用性強(qiáng)。
第三篇:如何學(xué)習(xí)程序設(shè)計(jì)語言
如何學(xué)習(xí)程序設(shè)計(jì)語言
經(jīng)常有人會問,“怎樣才能學(xué)會某某語言?”、“我該怎么學(xué)好某某語言?”,其實(shí)在學(xué)習(xí)某種程序設(shè)計(jì)語言之前,你需要弄明白一個問題,編程的目的是什么?我們?yōu)槭裁匆幊??編程就是為了解決各種問題,通過一系列的指令來解決這些問題。那我們學(xué)習(xí)編程,到底需要學(xué)什么呢?因?yàn)榫幊痰哪康氖菫榱私鉀Q問題,顯而易見,我們學(xué)編程,就是要學(xué)會如何解決問題。高手和新手就是看你解決問題的能力。
我們應(yīng)該如何學(xué)習(xí)?舉個例子,有一天你想買個空調(diào)(我想學(xué)編程),于是就是市場上了解空調(diào)的情況,進(jìn)行比較,最終確定某個品牌的空調(diào)(對目前的編程語言作些了解,根據(jù)自身的情況,最終確定一門語言來學(xué)習(xí))??照{(diào)買來后,有專業(yè)的安裝工人給你安裝調(diào)試(學(xué)習(xí)前先配置好程序的調(diào)試運(yùn)行環(huán)境,讓你編寫的程序能在電腦上跑起來,通過網(wǎng)上的教程或者購買的書本來了解這方面的知識)。安裝工人走了之后,你想學(xué)會控制空調(diào),這時你就遇到問題了“我怎么才能學(xué)會控制它呢?”(我該如何學(xué)習(xí)編程呢?)首先,你會找來空調(diào)的說明書(程序語言的語法手冊,可以從網(wǎng)上查找或者買本書來看)和遙控器(電腦),邊看說明書,邊通過遙控器來控制空調(diào)(邊看資料邊在電腦上編寫程序解決某個問題),隨著操作的熟練你就不再看說明書了。當(dāng)說明書上的說明和你實(shí)際的操作對應(yīng)不起來時,你會向廠家咨詢,問明原因(可以在某個技術(shù)社區(qū)或聊天工具上向熟手請教)。總之,一句話,學(xué)習(xí)時邊看資料邊實(shí)踐(在電腦上編寫、運(yùn)行、調(diào)試你的程序)。
在寫代碼前,一定要先養(yǎng)成良好的習(xí)慣,先把握住程序的整體,然后再細(xì)分,一步一步去完善、去實(shí)現(xiàn)全部功能。無論做哪一步時,你都要明白,你的程序在為你解決什么問題?不然,你的解決問題的能力無法提高,學(xué)習(xí)的目的性也不強(qiáng)。不是有句話,“書到用時方恨少”,就是在你實(shí)際操作時,會遇到各種各樣問題,你通自己的探索來解決各種問題時,是最有針對性的學(xué)習(xí),因?yàn)槟阌羞@個需求“要如何解決這個問題”,所以當(dāng)你滿足自己的這個需求時,也是最有動力學(xué)習(xí)的時候了。學(xué)習(xí)編程,特別在程序出現(xiàn)問題,不按照自己的意愿去運(yùn)行時,一定要有耐心,一行、一行的去閱讀程序,想辦法輸出它的運(yùn)行結(jié)果,看看是否符合自己的意愿,然后找出出現(xiàn)錯誤的這一行代碼,最后針對這行代碼進(jìn)行分析、調(diào)試來解決這個BUG。
當(dāng)你完成一個學(xué)習(xí)任務(wù)后,其實(shí)你已經(jīng)進(jìn)入編程的大門了,以后只要按照這個思路繼續(xù)學(xué)習(xí),你就會掌握越來越多的知識和經(jīng)驗(yàn),解決問題的能力也會越來越強(qiáng)。
如何學(xué)習(xí)程序設(shè)計(jì)
有許多網(wǎng)友都曾迷惑地問我:“怎么樣才能學(xué)好程序設(shè)計(jì)?”,這不是一兩句話能說
清楚的,于是我就寫了這篇文章,給廣大愛好者一個能解惑的方法,無論你是什么樣的“鳥”相信都能在這篇文章里找到你想要的什么是程序設(shè)計(jì)
話就從一個著名的公式說起:程序設(shè)計(jì)=數(shù)據(jù)結(jié)構(gòu)+算法
每當(dāng)我寫下這個公式的時候,心中總有一種新的感悟,可是就這個程序界盡人皆知的公
式卻難倒了一大批想和Bill·Gates一爭高下的朋友,下面我為大家解剖這個公式:
“程序設(shè)計(jì)”說白了就是大家所謂編程,先不管這個詞中有什么深刻的內(nèi)涵,先看看等式
右面的這兩個名詞。
按照官方的定義:數(shù)據(jù)結(jié)構(gòu)即非數(shù)值計(jì)算的程序設(shè)計(jì)問題中的計(jì)算機(jī)的操作對象以及它
們之間的關(guān)系和操作;算法是對特定問題求解步驟的一種描述,是對指令的有序序列。官方的解釋就是經(jīng)典,可是我們看了卻更糊涂了。別急,聽我給大家解釋。
程序設(shè)計(jì)就像蓋房子,數(shù)據(jù)結(jié)構(gòu)就像磚、瓦,而算法就是設(shè)計(jì)圖紙。你若想蓋房子首先
必須有原料(數(shù)據(jù)結(jié)構(gòu)),但是這些原料不能自動地蓋起了你想要的房子;你必須按照設(shè)計(jì)圖紙(算法)上的說明一磚一瓦地去砌。這樣你才能擁有你想要的房子。程序設(shè)計(jì)也一樣,你使用的編譯工具中有各種功能語句或基本結(jié)構(gòu),它們不會自動排列成你要的程序代碼。你得按照程序規(guī)定的功能去編寫,而程序的功能是實(shí)現(xiàn)就是算法的具體體現(xiàn)。所以通俗地說:你必須按照特定的規(guī)則,把特定的功能語句和基本結(jié)構(gòu)按照特定的順序排列起來,形成一個有
特定功能的程序,這就是:程序設(shè)計(jì)=數(shù)據(jù)結(jié)構(gòu)+算法。數(shù)據(jù)結(jié)構(gòu)是程序設(shè)計(jì)這座大廈的基礎(chǔ),沒有基礎(chǔ),無論設(shè)計(jì)有多么高明,這座大廈不可能建造起來的。算法則是程序設(shè)計(jì)的思想,它的靈魂!沒有靈魂的程序不能叫程序,只是一堆雜亂無章的符號而已。在程序設(shè)計(jì)中,數(shù)據(jù)結(jié)構(gòu)就像物質(zhì),算法就是意識。這就像哲學(xué)上說的:意識是依賴與物質(zhì)而存在的,物質(zhì)是由于意識而發(fā)展。雙方是相互依存、缺一不可的!
數(shù)據(jù)結(jié)構(gòu)內(nèi)容不多僅僅有幾個系統(tǒng)自帶的基本結(jié)構(gòu)(像順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、函數(shù)過程)數(shù)據(jù)類型(整型、實(shí)型、布爾、字符等)和用戶定義的高級點(diǎn)的數(shù)據(jù)結(jié)構(gòu)(數(shù)組、集合、文件、指針(隊(duì)列、棧、樹、圖等)······)就這么多??墒撬惴▍s不同了,它是多中多樣的!它可以讓你讓數(shù)據(jù)以你想要的方式排列(當(dāng)然要符合語法和功能要求^_^)。再打
個比方,數(shù)據(jù)結(jié)構(gòu)是人體的各種組織、器官,算法則是人的思想。你可以用你的思想去支配你身體的各個可以運(yùn)動的器官隨意運(yùn)動。如果,你想去取一個蘋果,你可以走過去,也可以跑過去,只要你想,你甚至可以爬過去。但是無論如何,你你的器官還你的器官(沒有變),目的還是同一個目的(取蘋果),而方式卻是隨心所欲!這就是算法的靈活性,不固定性。因此可以這樣說:數(shù)據(jù)結(jié)構(gòu)是死的,而算法是活的!現(xiàn)在明白許多了吧?。牵?ON
怎樣學(xué)習(xí)程序設(shè)計(jì)
上面說了許多數(shù)據(jù)結(jié)構(gòu)的在程序設(shè)計(jì)中重要性,所以努力學(xué)習(xí)好數(shù)據(jù)結(jié)構(gòu)是學(xué)好程序設(shè)計(jì)的第一步,也是關(guān)鍵的一步。你初學(xué)起來一定會覺得難,枯燥(其實(shí)我當(dāng)時也是這么想的 ^_^),什么標(biāo)準(zhǔn)文件、標(biāo)準(zhǔn)類型、標(biāo)準(zhǔn)函數(shù)、標(biāo)準(zhǔn)過程搞的你煩不勝煩。于是,就有許多初學(xué)者就厭倦了,停滯不前了,退縮了。你若是想編好程序的話就想:難道就這么一點(diǎn)點(diǎn)小困難就難倒我了嗎?我還要挑戰(zhàn)Bill·Gates呢?我一定能行,相信自己,一定會闖過這一關(guān)的!這樣以來,你就具備了程序員最基本的素質(zhì)——毅力。這一點(diǎn)是程序員必備的,否則在后面開發(fā)程序的漫長時間里,你會熬不住的。而且只有這樣你才能靜下心來學(xué)習(xí)。這一端時間沒有什么捷徑,只有多看書、多練習(xí),把所有結(jié)構(gòu)和類型的用法都找掌握牢固。不懂就要問。最好呢,有一位老師指引,這樣比自己在這條路是摸黑前進(jìn)強(qiáng)多了,而且往往還事半功倍。切記!只要跨出了第一步,以后就容易多了,萬事開頭難嘛!一定要堅(jiān)持,當(dāng)你過了這一端時間以后,你就發(fā)現(xiàn)程序設(shè)計(jì)根本沒有你想象的那樣難。當(dāng)你把所有的東東都學(xué)會時,程序設(shè)計(jì)的大門已經(jīng)向你敞開了一扇,而另一扇就是······
算法,這個是程序設(shè)計(jì)的重點(diǎn),也是難點(diǎn)。許多菜鳥和老鳥的區(qū)別主要在對算法掌握的熟練程度上面。有許多朋友曾這樣問我:“我數(shù)據(jù)結(jié)構(gòu)上面的都學(xué)會了,也知道該怎么樣用,可是我為什么還是在編程時,不知道該怎樣用呢?其實(shí),這就是缺少算法思想的一個具體表現(xiàn)。并不是學(xué)好了數(shù)據(jù)結(jié)構(gòu)就會編程了。算法是靈活多變的,它不像數(shù)據(jù)結(jié)構(gòu)那樣有固定的形式。算法是不固定性就決定了它的特點(diǎn),你不可能把所有的算法都學(xué)會,因?yàn)樗菬o窮盡的。但是你要是能把自己學(xué)的有限的算法融會貫通了,那你就了不起了。就好象你只學(xué)會了1、2、3這三個數(shù),但是你可以組成12、23、32、123······。所以算法這條路既長有短,既難又易。
學(xué)習(xí)好算法的方法不少,在此詳細(xì)的給大家舉幾個例子。
首先,你要養(yǎng)成一個良好的程序設(shè)計(jì)風(fēng)格和習(xí)慣。這也分許多種。其中最重要的是養(yǎng)成自上向下逐步求精的程序設(shè)計(jì)思想和方法。怎樣才是自上向下逐步求精的程序設(shè)計(jì)呢。舉個例子。有這樣一個問題:已知三角形的兩邊及夾角,求第三邊及面積。
現(xiàn)在,當(dāng)你看到這個問題是,你不要立即下手去編寫,而是要思考一下怎樣才能求解(算法),然后把她寫下來以免忘記。于是就寫了:
一級算法:
1 輸入兩邊的長度a、b以及夾角A
2 計(jì)算第三邊c和面積s
3 輸出c以及s
當(dāng)你寫完之后,你若覺得第2步不太清晰,還不能寫出代碼,那就繼續(xù)求精。二級求精:
1、將α的角度轉(zhuǎn)換為弧度;
2、c=sqrt(a*a+b*b-2*a*b*cos(α));
3、s=1/2*(a*b*sin(α))
哈哈,這樣問題不就得到解決了嗎?接著就可以輕松的編代碼了。再仔細(xì)看看上面的步驟:先寫出一級算法,如果覺得由此還是得不到源代碼,或者是其中有一步還有很多步驟要寫,那么就繼續(xù)求精,直到你認(rèn)為可以很清晰的寫出代碼為止。但是求精可以因人而異,像上面的題目,若是一個編過很多程序的大蝦來說,可能不用什么求精,代碼就可以直接寫出來了;但要是一個菜鳥(像我一樣)就可能要寫到二級求精。
這樣說來,你可能認(rèn)為這個求精是不是太慢,抑或根本就是在浪費(fèi)時間。我大聲告訴你:根本不是!這可是眾多的編程先驅(qū)、編程達(dá)人們推薦的基本方法。你知道編程中,主要時間用在了哪里嗎?不是編寫代碼,而是用在了求解算法和調(diào)試程序上了!而算法的求精就是縮短這些時間的最好的方法。它可以使你不用再很費(fèi)力的苦思冥想到底該怎樣構(gòu)造算法,使這個過程更條理、更簡明;它也很可能使你不用再為了一個小小BUG而調(diào)試半天,因?yàn)椋o出的算法已經(jīng)趨于完美。其實(shí),列一個小提綱(算法)就可以解決很多的問題,生活中不也是如此嗎?!所以,第一,求精算法這個最重要的習(xí)慣一定要養(yǎng)成哦!
還有一個好的習(xí)慣就是要做到:程序源代碼的清晰度與可讀性一定要高。
這是為什么呢?在源代碼中,每行代碼前面的空格的有無與多少并不影響程序的運(yùn)行,但是它影響人的閱讀。你想,當(dāng)你看到一片代碼,格式雜亂無章,沒有什么主次內(nèi)外一定會頭痛不已,絕對是看了第一遍就不想再看第二遍了。而且當(dāng)你調(diào)試這樣的代碼時,也會被一
個小錯誤弄的找不到北了。如果格式很清晰的話,這樣的代碼就非常易讀,結(jié)構(gòu)很清晰,begin..end都看的清清楚楚。我想這樣的代碼閱讀和調(diào)試起來一定很順手的。
還有就是在有些重要的代碼塊后加入注釋,也可以提高程序的可讀性。不說別人,就說我就深有體會:以前代碼不加注釋,當(dāng)時對其結(jié)構(gòu)很清楚,可是過了幾個星期之后,再看代碼簡直就像看另外一個人寫的一樣,要費(fèi)不少工夫才能弄懂,代碼越多越如此。自己還很難理解自己的代碼,更不用說別人了。因此費(fèi)點(diǎn)力氣加上注釋還是值得的。
還有的人喜歡用 goto語句跳來跳去,雖然增加了編寫代碼的靈活性,可是卻嚴(yán)重破壞了程序的結(jié)構(gòu)化,容易造成程序運(yùn)行和大腦思維的邏輯混亂,很可能導(dǎo)致一些很不容易發(fā)現(xiàn)的錯誤。而且所有的goto都可以用其他的語句來代替。所以在這里建議大家少用goto。能不用就不用。以上是說了要提高代碼的清晰度與可讀性。
上面用了不少字來介紹程序設(shè)計(jì)中良好習(xí)慣的作用與好處,這算是程序設(shè)計(jì)的一個基礎(chǔ),希望對大家能有所幫助。下面介紹其他促進(jìn)編程水平的方法。
其次,就是多加練習(xí)和多多與別人交流心得,研究和欣賞別人優(yōu)秀的程序代碼(上面說的清晰度與可讀性的重要的一點(diǎn)就在這里體現(xiàn)了)。無論干任何事情,只有經(jīng)常練習(xí)才能熟練的掌握與應(yīng)用。它不僅能幫你提高對算法的認(rèn)知程度,還可以使你更好的理解數(shù)據(jù)結(jié)構(gòu);而交流心得與欣賞別人的代碼則是要你學(xué)習(xí)別人優(yōu)秀的獨(dú)特的見解與邏輯思維,許多?老鳥?就是在研究優(yōu)秀代碼中慢慢成長起來的。但研究和欣賞并不是意味著讓你?全盤西化?;它是說既不要拘泥于自己一成不變的思考方式,也不要成為別人思想奔馳的高速路,而是讓你取長補(bǔ)短,取其精華,去其糟粕,這才是我要說的。另外,在編譯一個程序時,要多想幾種不同的算法,反復(fù)比較,看看究竟哪個更適合這個程序。這樣,不僅有助于提高你程序的運(yùn)行效率,更重要的是有助于提高你對算法的認(rèn)識和思維的廣度。
看完上面這么多,你會發(fā)現(xiàn)程序設(shè)計(jì)的這半扇門似乎并不是想象的那么容易打開;但是如果你能耐住寂寞與枯燥的考驗(yàn),按部就班、循序漸進(jìn)的練習(xí),思考,不知不覺中你的水平已經(jīng)提高了很多。
除了上面說的求精算法和數(shù)據(jù)結(jié)構(gòu)外,數(shù)學(xué)方法和邏輯思想對你的程序設(shè)計(jì)也會有一定的影響(這也屬于算法)先說數(shù)學(xué)方法,它是指導(dǎo)你學(xué)習(xí)的一個重要的助手。比如你要實(shí)現(xiàn)一個看似很復(fù)雜的函數(shù),而且你編寫了一大堆代碼,什么結(jié)構(gòu)和類型都用上了,可是還是實(shí)現(xiàn)不了。這時候先別著急,也許在你做這個函數(shù)前就要靜下心來,仔細(xì)思考,看看有什么數(shù)學(xué)上學(xué)習(xí)的特別公式能夠?qū)崿F(xiàn)這個問題嗎?如果你真的靈感大發(fā),把它挖了出來,恭喜你!
(答對了?。┪蚁脒@個時候你一定會高興的手舞足蹈,這種感受,我想大家在做數(shù)學(xué)題OR其他難題時一定深有體會。
這樣說太空洞,不如舉個例子:將8個?車?放在8X8的國際象棋棋盤上,如果它們兩兩均不能互吃,那么稱8個?車?處于安全狀態(tài)。問總共有多少種不同安全狀態(tài)?對于這樣的題一般的解法是用?回溯法?,即先有順序的固定一個棋子,然后將剩下的逐行試探,如果可以則擺放下一個,要是不行就把該棋子換一個位置,直到所有的方法都用(遍歷)一遍。這樣看來這個方法真的很麻煩,不因需要編寫大量代碼,而且還要用到?遞歸?(編程的一個重要的算法)。使程序的效率大大降低。但是我們可以想想有沒有更好的數(shù)學(xué)方法。肯定有!你看在第一行中,棋子可以在8個空格內(nèi)隨意擺放而不會受到攻擊;而第二行,棋子則只有在7個空格內(nèi)再挑選一個了;第三行就只有6個……依次類推第8行就只剩下一個空格了。所以這個方法一共有8X7X6X5X4X3X2X1即8!種解法,這不就是數(shù)學(xué)中的排列與組合的問題嗎?若不進(jìn)一步思考,盲目地逐個枚舉方案,其笨拙是可想而知的了。所以在設(shè)計(jì)算法時,一定要仔細(xì)思考有沒有更好的數(shù)學(xué)公式或思想與之相關(guān)聯(lián),這樣往往會收到意想不到的好效果。
說完數(shù)學(xué),再說哲學(xué)。
其實(shí),哲學(xué)是所有學(xué)科是總和。她當(dāng)然也包括程序設(shè)計(jì)這門新興的學(xué)科了。(不要以為它們之間沒有關(guān)系哦!)
我這里說的是哲學(xué)的一小部分,那就是邏輯學(xué)。一個人若沒有嚴(yán)格的邏輯思維,他/她的程序一定有不少蟲子(bug)。然而對于這些蟲子,他/她可能不知道;也很有可能知道了,但是就不知道哪里出錯了。這就是因?yàn)樗?她沒有把問題出現(xiàn)的情況(包括出錯的情況)考慮全面而造成的。雖然理論上所有的程序都有一定的漏洞(尤其是代碼越多的程序越是如此),但是我們可以盡我們的全力把問題考慮全面,使錯誤發(fā)生的幾率降低到最小,以確保程序的穩(wěn)定性。咱們來看一個很有趣的反面例子:偶在很久以前編過一個小程序(老師布置的作業(yè)),其功能是輸入你的生日,然后再輸入某天的日期,最后計(jì)算出你到這一天一共活了多少天。我很快就完成了,用數(shù)據(jù)測試幾次還不錯,于是讓老師來檢查我的作業(yè)。他讓我輸入,我于是就輸入了1989 1 28,然后回車,再輸入1999 1 28,我太激動了把1999輸入成了1899,而且我竟然沒有發(fā)覺。于是偶自信的敲了回車。結(jié)果出來了,當(dāng)時大家都笑翻了,此后,我有一段時間再也不敢讓老師“欣賞”我作的題目…… 以上就是偶因?yàn)檫壿嫴粐?yán)密造成的笑話,大家可不要學(xué)我啊!所以說,提高邏輯思維能力也是提高編程效率的很有效的方法。
世界上所有的學(xué)科都有聯(lián)系。當(dāng)數(shù)學(xué)與邏輯學(xué)擦出?愛情?的火花時,程序設(shè)計(jì)就有了雛形。
其實(shí)還有其他的學(xué)科也會影響程序設(shè)計(jì),比如英語,地球人都知道,現(xiàn)在絕大多數(shù)程序源代碼是用英文編寫的,而且很多開發(fā)工具、編譯工具還有一些用來參考的小程序幾乎都是英文界面。學(xué)好英語對代碼的分析、對數(shù)據(jù)結(jié)構(gòu)的了解以及對開發(fā)程序或軟件的效率都有幫助。因此在學(xué)習(xí)程序設(shè)計(jì)這門課程時,可不要丟了其他啊!
學(xué)習(xí)編程心態(tài)要放低,雖然你可能夢想要打倒微軟帝國,可是你不要以為自己真的就有實(shí)力把Bill PK掉,一定要從最簡單的開始做起,不要眼高手低,荒于練習(xí)。否則你可能給他打工他都不要哦?。ū貍洌?/p>
一顆堅(jiān)定的信念。搞程序設(shè)計(jì)有時是很累人的(要不然大家都成軟件工程師了,BILL的飯碗不就砸了),在某一個關(guān)鍵點(diǎn)是你要付出超乎想象的汗水和不計(jì)其數(shù)的腦細(xì)胞。這就叫“衣帶漸寬終不悔,為伊消的人憔悴!”要保持一種吃苦耐勞的打不垮精神,革命才能成功?。⊥緜?。(必備)
其實(shí)總而言之呢,無論是新手還是大蝦,要的就是勤學(xué)苦練,只有這樣,你才能走上通向程序設(shè)計(jì)金殿的成功之路。
到了這里你會發(fā)現(xiàn),這就是程序設(shè)計(jì),就這么簡單、有趣,而有充滿的艱辛與苦澀。設(shè)計(jì)一個艱難的程序,就像母親分娩一樣,一定會有巨大的痛楚。但當(dāng)你為你早已調(diào)試了N^N次的代碼加上最后一筆時,一個嶄新的生命就誕生了!Eureka!它帶著羞澀而好奇的神態(tài)向這個世界發(fā)出第一句“Hello,World!”的問候時。你那種感覺就像是上帝面對自己親手造出來的生命,你以往所有的不快都會煙消云散。你會發(fā)現(xiàn)程序設(shè)計(jì),這項(xiàng)偉大的工程,教予你的不僅僅是一種技術(shù),更是對生命的熱愛,對人生的執(zhí)著,對完美夢想的追求!
有人說,學(xué)習(xí)是無聊的,但有億萬蕓蕓學(xué)子不懈地投入其中。
有人說,科學(xué)是艱難的,但仍有大批科學(xué)家為之奮斗終生。
也有人說,編程是枯燥的,可是我要站起來最全世界說:”我愛她,就像愛我的生命!“
第四篇:程序設(shè)計(jì)語言的概念
1.“機(jī)器語言”是 直接用(二進(jìn)制代碼指令表達(dá)的計(jì)算機(jī)語言,指令是用0和1組成的一串代碼,它們有一定的位數(shù),并分成若干段,各段的編碼表示不同的含義,例如某臺計(jì)算機(jī)(字長)為16位,即有16個二進(jìn)制數(shù)組成一條指令或其它信息。16個0和1可組成各種排列組合,通過線路變成電信號,讓計(jì)算機(jī)執(zhí)行各種不同的操作)。
2.匯編語言(AssemblyLanguage)是面向機(jī)器的程序設(shè)計(jì)語言。在匯編語合中,用“助記符”(Memoni)代替操作碼,用地址符號(Symbol)或標(biāo)號(Label)代替地址碼。這樣用符號代替機(jī)器語言的二進(jìn)制碼,就把機(jī)器語言變成了匯編語言。于是匯編語言亦稱為符號語言。使用匯編語言編寫的程序,機(jī)器不能直接識別,要由一種程序?qū)R編語言翻譯成機(jī)器語言,這種起翻譯作用的程序叫匯編程序,匯編程序是系統(tǒng)軟件中語言處理系統(tǒng)軟件。匯編程序把匯編語言翻譯成機(jī)器語言的過程稱為匯編。
3.高級語言:由于匯編語言依賴于硬件體系,且助記符量大難記,于是人們又發(fā)明了更加易用的所謂高級語言。在這種語言下,其語法和結(jié)構(gòu)更類似普通英文,且由于遠(yuǎn)離對硬件的直接操作,使得一般人經(jīng)過學(xué)習(xí)之后都可以編程。高級語言通常按其基本類型、代系、實(shí)現(xiàn)方式、應(yīng)用范圍等分類。
4.源程序是一種計(jì)算機(jī)的代碼。它會符合一定的語法,經(jīng)過編譯器編譯或解釋后生成具有一定功能的可執(zhí)行文件或組件,也可以是某種接口。是用程序設(shè)計(jì)語言編寫的程序。
用源語言如FORTRAN、BASIC等語言編寫的程序。源語言是指可以導(dǎo)出另一種語言的語言,它所產(chǎn)生的語言稱為目標(biāo)語言。對于計(jì)算機(jī)操作而言,必須將源語言編寫的程序編譯成目標(biāo)程序。
5.目標(biāo)程序(Object Program)又稱“目的程序”。
由語言處理程序(匯編程序,編譯程序,解釋程序)將源程序處理(匯編,編譯,解釋)成與之等價的由機(jī)器碼構(gòu)成的,計(jì)算機(jī)能夠直接運(yùn)行的程序,該程序叫目標(biāo)程序。
6.可執(zhí)行程序 一種可在操作系統(tǒng)存儲空間中浮動定位的可執(zhí)行程序。MS-DOS和MS-WINDOWS下,如文件擴(kuò)展名為.exe;.com
第五篇:2008級程序設(shè)計(jì)語言(Java)教學(xué)大綱
《程序設(shè)計(jì)語言(Java)》教學(xué)大綱
課程名稱: 程序設(shè)計(jì)語言(Java)英文名稱:Programming Language(Java)課程編碼: 212013 學(xué) 分: 4
學(xué) 時: 64(其中理論學(xué)時: 32,實(shí)踐學(xué)時: 32)適用專業(yè):非計(jì)算機(jī)專業(yè)理工類本科 先修課程: 《大學(xué)計(jì)算機(jī)基礎(chǔ)》
一、課程的性質(zhì)、目的與任務(wù) 課程性質(zhì):
該課程面向全校非計(jì)算機(jī)專業(yè)理工類本科生,是程序設(shè)計(jì)語言類必修的公共基礎(chǔ)課之一。該課程的前導(dǎo)課程是《大學(xué)計(jì)算機(jī)基礎(chǔ)》,側(cè)重于Java語言的基本語法和面向?qū)ο缶幊谭椒ǖ慕榻B。課程目的:
通過本課程的學(xué)習(xí),學(xué)生不僅應(yīng)掌握 Java語言的基本特點(diǎn)和編程方法,還應(yīng)掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想、基本概念和基本方法,并能運(yùn)用所學(xué)的知識和技能對一般問題進(jìn)行分析和程序設(shè)計(jì),能解決本專業(yè)的一些實(shí)際問題。課程任務(wù):
本課程采用引導(dǎo)式、啟發(fā)式、實(shí)例講解和實(shí)作演練等教學(xué)方法來組織教學(xué),在注重Java語言基本概念和基本語法知識介紹的同時,注重培養(yǎng)學(xué)生面向?qū)ο蟮某绦蛟O(shè)計(jì)能力和思維方式,加強(qiáng)學(xué)生創(chuàng)新能力的培養(yǎng),為進(jìn)一步使用Java進(jìn)行技術(shù)開發(fā)奠定堅(jiān)實(shí)基礎(chǔ)。
二、教學(xué)基本要求
通過本課程的學(xué)習(xí),學(xué)生應(yīng)達(dá)到下列基本要求:
1.掌握J(rèn)ava語言的基本語法、數(shù)據(jù)類型、運(yùn)算符和表達(dá)式、流程控制語句、數(shù)組、向量和字符串、Swing界面設(shè)計(jì)、Applet小應(yīng)用程序編制以及常見Java數(shù)據(jù)流的使用。
2.掌握對象和類的基本概念,學(xué)會使用Java進(jìn)行面向?qū)ο蟪绦蛟O(shè)計(jì)開發(fā)的基本技能。
3.理解Java語言的特點(diǎn)、抽象類和內(nèi)部類的概念、異常處理方法、控制組件外觀的方法、Applet的安全機(jī)制和生命周期。
4.了解Java包的工作機(jī)制、對象持續(xù)化的基本概念、常見Java類的用法以及API文檔的查閱方法。
三、教學(xué)條件
本課程教學(xué)在多媒體教室進(jìn)行,實(shí)踐教學(xué)要求在計(jì)算機(jī)機(jī)房進(jìn)行,要為每個學(xué)生提供一臺高性能計(jì)算機(jī),并安裝有JDK 6.0,UltraEdit,JCreator等開發(fā)工具。實(shí)踐教學(xué)完成后,要上交相應(yīng)部分的實(shí)驗(yàn)報告。
四、教學(xué)內(nèi)容與學(xué)時安排
本課程共分三篇十章,內(nèi)容涉及Java語言的基本概念和面向?qū)ο蟮木幊谭椒ā5谝黄獮镴ava編程基礎(chǔ)篇,包括第1,2,3章,主要介紹Java的基本語法、數(shù)據(jù)類型及其流程控制語句;第二篇為Java編程提高篇,包括第4,5,6章,主要介紹數(shù)組、向量和字符串、Java面向?qū)ο蟮木幊谭椒ㄒ约爱惓L幚?;第三篇為Java編程進(jìn)階篇,包括第7,8,9,10章,介紹Java圖形界面設(shè)計(jì)、Applet以及數(shù)據(jù)流方面的知識。第1章 概述 1.1 什么是Java語言
1.2 一個基本的Java應(yīng)用程序 1.3 程序的編譯和運(yùn)行 1.4 常見錯誤
1.5 使用Java核心API文檔
第2章 標(biāo)識符和數(shù)據(jù)類型 2.1 Java的基本語法單位 2.2 Java編碼體例
2.3 Java的基本數(shù)據(jù)類型 2.4 復(fù)合數(shù)據(jù)類型
2.5 類和對象的初步介紹
第3章 表達(dá)式和流程控制語句 3.1 表達(dá)式 3.2 流控制
第4章 數(shù)組、向量和字符串 4.1 數(shù)組
4.2 Vector類 4.3 字符串類型
第5章 進(jìn)一步討論對象和類 5.1 抽象數(shù)據(jù)類型
5.2 對象的構(gòu)造和初始化 5.3 this引用 5.4 子類 5.5 方法重寫 5.6 Java包 5.7 類成員
5.8 關(guān)鍵字final 5.9 抽象類 5.10 接口 5.11 內(nèi)部類 5.12 過時信息
第6章 Java語言中的異常 6.1 異常 6.2 異常示例 6.3 異常處理 6.4 異常分類 6.5 拋出
(2學(xué)時)
(4學(xué)時)
(4學(xué)時)
(4學(xué)時)
(4學(xué)時)
2學(xué)時)
(6.6 創(chuàng)建自己的異常
第7章 Java的圖形用戶界面設(shè)計(jì)(4學(xué)時)
7.1 AWT與Swing 7.2 容器 7.3 布局 7.4 事件處理
第8章 Swing組件(4學(xué)時)
8.1 按鈕 8.2 標(biāo)簽 8.3 組合框 8.4 列表 8.5 文本組件 8.6 菜單組件
8.7 對話框、標(biāo)準(zhǔn)對話框與文件對話框 8.8 控制組件外觀
第9章 Java Applet(2學(xué)時)
9.1 編寫Applet 9.2 Applet的方法和Applet的生命周期 9.3 Applet的運(yùn)行
9.4 在Applet中的多媒體處理 9.5 Applet的事件處理
9.6 Applet與普通應(yīng)用程序的結(jié)合
第10章 Java數(shù)據(jù)流(2學(xué)時)
10.1 數(shù)據(jù)流的基本概念 10.2 基本字節(jié)數(shù)據(jù)流類 10.3 基本字符流 10.4 文件的處理
五、考核方式和成績記載
本課程結(jié)束后由計(jì)算中心統(tǒng)一安排無紙化上機(jī)考試,成績記載為: 總評成績(理論)=平時成績(40%)+無紙化上機(jī)考試成績(60%)
其中:平時成績=平時出勤和課堂提問(50%)+作業(yè)(50%)總評成績(實(shí)踐)=平時成績(60%)+綜合課題設(shè)計(jì)成績(40%)
其中:平時成績=上機(jī)出勤和表現(xiàn)(40%)+上機(jī)練習(xí)記錄(30%)+單元實(shí)驗(yàn)報告(30%)
六、教學(xué)參考書 [1] 辛運(yùn)幃等,《Java程序設(shè)計(jì)(第二版)》,清華大學(xué)出版社,2006年8月 [2] 辛運(yùn)幃等,《Java程序設(shè)計(jì)題解與上機(jī)指導(dǎo)(第二版)》,清華大學(xué)出版社,2006年11月
七、說明
執(zhí)筆人: 普運(yùn)偉 審定人: 王建華 教學(xué)基層組織主任: 秦衛(wèi)平