本文目錄一覽:
- 1、c邏輯思維到底是什麼?要怎麼培養呀?
- 2、求助C語言和C++的學習和提高(200分),希望C/C++語言前輩幫看看
- 3、C語言課程設計
- 4、中職學校的C語言教學
- 5、C語言該怎樣學才能比較容易入手??(英語白痴一個)
c邏輯思維到底是什麼?要怎麼培養呀?
讀一些邏輯性較強的經典著作,要抓住著作的條理性和邏輯,建立在理解書中概念的基礎上,我們可以模仿其中的推論,復現書中的關鍵內容為止。
這時候,我們知道知識的來龍去脈,我們是通過思維而獲得知識,而不是通過大量的熟背強記知識,知識更具有邏輯的使用價值。
反之,那些只求生吞活剝別人思想的人,無異於讓別的母雞在你的腦袋上下蛋,即使博學多識,卻也深陷大量的知識而無法自拔。
托爾斯泰曾說過:知識,只有當它靠積極的思維得來而不是憑證記得來的時候,才是真正的知識。
心理學家羅伯特·依·布倫南說:「如果沒有基本法則的知識,就得處理一串串冗長的信息,我們的記憶必定負擔繁重。最完美的記憶方法是把現象按因果關係聯繫起來,因為哲學的任務是研究這種關係,所以我們可以主要通過培養哲理頭腦來彌補記憶力的不足。」
求助C語言和C++的學習和提高(200分),希望C/C++語言前輩幫看看
計算機語言的種類非常的多,總的來說可以分成機器語言,彙編語言,高級語言三大類。
電腦每做的一次動作,一個步驟,都是按照以經用計算機語言編好的程序來執行的,程序是計算機要執行的指令的集合,而程序全部都是用我們所掌握的語言來編寫的。所以人們要控制計算機一定要通過計算機語言向計算機發出命令。
計算機所能識別的語言只有機器語言,即由0和1構成的代碼。但通常人們編程時,不採用機器語言,因為它非常難於記憶和識別。
目前通用的編程語言有兩種形式:彙編語言和高級語言。
彙編語言的實質和機器語言是相同的,都是直接對硬體操作,只不過指令採用了英文縮寫的標識符,更容易識別和記憶。它同樣需要編程者將每一步具體的操作用命令的形式寫出來。彙編程序通常由三部分組成:指令、偽指令和宏指令。彙編程序的每一句指令只能對應實際操作過程中的一個很細微的動作,例如移動、自增,因此彙編源程序一般比較冗長、複雜、容易出錯,而且使用彙編語言編程需要有更多的計算機專業知識,但彙編語言的優點也是顯而易見的,用彙編語言所能完成的操作不是一般高級語言所能實現的,而且源程序經彙編生成的可執行文件不僅比較小,而且執行速度很快。
高級語言是目前絕大多數編程者的選擇。和彙編語言相比,它不但將許多相關的機器指令合成為單條指令,並且去掉了與具體操作有關但與完成工作無關的細節,例如使用堆棧、寄存器等,這樣就大大簡化了程序中的指令。同時,由於省略了很多細節,編程者也就不需要有太多的專業知識。
高級語言主要是相對於彙編語言而言,它並不是特指某一種具體的語言,而是包括了很多編程語言,如目前流行的VB、VC、FoxPro、Delphi等,這些語言的語法、命令格式都各不相同。
高級語言所編製的程序不能直接被計算機識別,必須經過轉換才能被執行,按轉換方式可將它們分為兩類:
解釋類:執行方式類似於我們日常生活中的「同聲翻譯」,應用程序源代碼一邊由相應語言的解釋器「翻譯」成目標代碼(機器語言),一邊執行,因此效率比較低,而且不能生成可獨立執行的可執行文件,應用程序不能脫離其解釋器,但這種方式比較靈活,可以動態地調整、修改應用程序。
編譯類:編譯是指在應用源程序執行之前,就將程序源代碼「翻譯」成目標代碼(機器語言),因此其目標程序可以脫離其語言環境獨立執行,使用比較方便、效率較高。但應用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標文件(* .OBJ)才能執行,只有目標文件而沒有源代碼,修改很不方便。現在大多數的編程語言都是編譯型的,例如Visual C++、Visual Foxpro、Delphi等。
[NextPage]
學習編程,從何入手
如果樓主想學習編程,卻又不知從何入手,那麼樓主不妨看看下面的幾種學習方案,可能會給樓主一些啟示吧!
方案一 Basic語言 Visual Basic
優點
(1)Basic 簡單易學,很容易上手。
(2)Visual Basic 提供了強大的可視化編程能力,可以讓你輕鬆地做出漂亮的程序。
(3)眾多的控制項讓編程變得象壘積木一樣簡單。
(4)Visual Basic 的全部漢化讓我們這些見了English就頭大的人喜不自禁。
缺點
(1)Visual Basic 不是真正的面向對象的開發文具。
(2)Visual Basic 的數據類型太少,而且不支持指針,這使得它的表達能力很有限。
(3)Visual Basic 不是真正的編譯型語言,它產生的最終代碼不是可執行的,是一種偽代碼。它需要一個動態鏈接庫去解釋執行,這使得Visual Basic 的編譯速度大大變慢。
綜述:方案一適合初涉編程的朋友,它對學習者的要求不高,幾乎每個人都可以在一個比較短的時間裡學會vB編程,並用VB 做出自己的作品。對於那些把編程當做遊戲的朋友來說,VB 是您最佳的選擇。
Basic/Visual Basic簡介
方案二 Pascal語言 Delphi
優點
(1)Pascal語言結構嚴謹,可以很好地培養一個人的編程思想。
(2)Delphi是一門真正的面向對象的開發工具,並且是完全的可視化。
(3)Delphi使用了真編譯,可以讓你的代碼編譯成為可執行的文件,而且編譯速度非常快。
(4)Delphi具有強大的資料庫開發能力,可以讓你輕鬆地開發資料庫。
缺點
Delphi幾乎可以說是完美的,只是Pascal語言的過於嚴謹讓人感覺有點煩。
綜述: 方案二比較適合那些具有一定編程基礎並且學過Pascal語言的朋友。
Pascal語言簡介
Delphi簡介
方案三 C語言 Visual C++
優點
(1)C語言靈活性好,效率高,可以接觸到軟體開發比較底層的東西。
(2)微軟的MFC庫博大精深,學會它可以讓隨心所欲地進行編程。
(3)VC是微軟製作的產品,與操作系統的結合更加緊密。
缺點
對使用者的要求比較高,既要具備豐富的C語言編程經驗,又要具有一定的WINDOWS編程基礎,它的過於專業溝靡話愕謀喑貪 謎哐 捌鵠椿嵊脅恍〉睦 選?
綜述: VC是程序員用的東西。如果你是一個永不滿足的人,而且可以在編程上投入很大的精力和時間,那麼學習VC你一定不會後悔的。
C語言簡介
方案四 C++語言 C++ Builder
優點
(1)C++語言的優點全部得以繼承。
(2)完全的可是化。
(3)極強的兼容性,支持OWL、VCL和MFC三大類庫。
(4)編譯速度非常快。
缺點
由於推出的時間太短,關於它的各種資料還不太多。
綜述:我認為C++ Builder 是最好的編程工具。它既保持了C++語言編程的優點,又做到了完全的可視化。
C語言簡介
方案五 SQL語言 Power Builder
對於一些傳統的數據開發人員來說,Foxpro系列也許讓他們感到更加熟悉。但是對於初學者來說,PowerBuilder也許是最好的資料庫開發工具。各種各樣的控制項,功能強大的PowerBuilder語言都會幫助你開發出自己的資料庫應用程序。
[NextPage]
JSP簡介
在Sun正式發布JSP(Java Server Pages)之後,這種新的Web應用開發技術很快引起了人們的關注。JSP為創建高度動態的Web應用提供了一個獨特的開發環境。按照 Sun 的說法,JSP能夠適應市場上包括Apache WebServer 、IIS4.0在內的85%的伺服器產品。
JSP與ASP的簡單比較
JSP與Microsoft的ASP技術非常相似。兩者都提供在HTML代碼中混合某種程序代碼、由語言引擎解釋執行程序代碼的能力。在ASP或JSP環境下,HTML代碼主要負責描述信息的顯示樣式,而程序代碼則用來描述處理邏輯。普通的HTML頁面只依賴於Web伺服器,而ASP和JSP頁面需要附加的語言引擎分析和執行程序代碼。程序代碼的執行結果被重新嵌入到HTML代碼中,然後一起發送給瀏覽器。ASP和JSP都是面向Web伺服器的技術,客戶端瀏覽器不需要任何附加的軟體支持。
ASP的編程語言是VBScript之類的腳本語言,JSP使用的是Java,這是兩者最明顯的區別。
此外,ASP與JSP還有一個更為本質的區別:兩種語言引擎用完全不同的方式處理頁面中嵌入的程序代碼。在ASP下,VBScript代碼被ASP引擎解釋執行;在JSP下,代碼被編譯成Servlet並由Java虛擬機執行,這種編譯操作僅在對JSP頁面的第一次請求時發生。
運行環境
執行 JSP 代碼需要在伺服器上安裝 JSP 引擎。此處我們使用的是 Sun 的 JavaServer Web Development Kit ( JSWDK )。為便於學習,這個軟體包提供了大量可供修改的示例。安裝 JSWDK 之後,只需執行 startserver 命令即可啟動伺服器。在默認配置下伺服器在埠 8080 監聽,使用 即可打開預設頁面。
在運行 JSP 示例頁面之前,請注意一下安裝 JSWDK 的目錄,特別是” work “子目錄下的內容。執行示例頁面時,可以在這裡看到 JSP 頁面如何被轉換成 Java 源文件,然後又被編譯成 class 文件(即 Servlet )。 JSWDK 軟體包中的示例頁面分為兩類,它們或者是 JSP 文件,或者是包含一個表單的 HTML 文件,這些表單均由 JSP 代碼處理。與 ASP 一樣, JSP 中的 Java 代碼均在伺服器端執行。因此,在瀏覽器中使用”查看源文件”菜單是無法看到 JSP 源代碼的,只能看到結果 HTML 代碼。所有示例的源代碼均通過一個單獨的” examples “頁面提供。
Java Servlet是一種開發Web應用的理想構架。 JSP以Servlet技術為基礎,又在許多方面作了改進。JSP頁面看起來象普通HTML頁面,但它允許嵌入執行代碼,在這一點上,它和ASP技術非常相似。利用跨平台運行的JavaBean 組件,JSP為分離處理邏輯與顯示樣式提供了卓越的解決方案。JSP必將成為ASP技術的有力競爭者。
[NextPage]
SQL語言簡介
SQL全稱是「結構化查詢語言(Structured Query Language)」,最早的是IBM的聖約瑟研究實驗室為其關係資料庫管理系統SYSTEM R開發的一種查詢語言,它的前身是SQUARE語言。SQL語言結構簡潔,功能強大,簡單易學,所以自從IBM公司1981年推出以來,SQL語言,得到了廣泛的應用。如今無論是像Oracle ,Sybase,Informix,SQL server這些大型的資料庫管理系統,還是像Visual Foxporo,PowerBuilder這些微機上常用的資料庫開發系統,都支持SQL語言作為查詢語言。
Structured Query Language包含4個部分:
數據查詢語言DQL-Data Query Language SELECT
數據操縱語言DQL-Data Manipulation Language INSERT, UPDATE, DELETE
數據定義語言DQL-Data Definition Language CREATE, ALTER, DROP
數據控制語言DQL-Data Control Language COMMIT WORK, ROLLBACK WORK
SQL的歷史
在70年代初,E.E.Codd首先提出了關係模型。70年代中期,IBM公司在研製 SYSTEM R關係資料庫管理系統中研製了SQL語言,最早的SQL語言(叫SEQUEL2)是在1976 年 11 月的IBM Journal of RD上公布的。
1979年ORACLE公司首先提供商用的SQL,IBM公司在DB2 和SQL/DS資料庫系統中也實現了SQL。
1986年10月,美國ANSI採用SQL作為關係資料庫管理系統的標準語言(ANSI X3. 135-1986),後為國際標準化組織(ISO)採納為國際標準。
1989年,美國ANSI採納在ANSI X3.135-1989報告中定義的關係資料庫管理系統的SQL標準語言,稱為ANSI SQL 89, 該標準替代ANSI X3.135-1986版本。該標準為下列組織所採納:
● 國際標準化組織(ISO),為ISO 9075-1989報告「Database Language SQL With Integrity Enhancement」
● 美國聯邦政府,發布在The Federal Information Processing Standard Publication(FIPS PUB)127
目前,所有主要的關係資料庫管理系統支持某些形式的SQL語言, 大部分資料庫打算遵守ANSI SQL89標準。
SQL的優點
SQL廣泛地被採用正說明了它的優點。它使全部用戶,包括應用程序員、DBA管理員和終端用戶受益非淺。
(1) 非過程化語言
SQL是一個非過程化的語言,因為它一次處理一個記錄,對數據提供自動導航。SQL允許用戶在高層的數據結構上工作,而不對單個記錄進行操作,可操作記錄集。所有SQL 語句接受集合作為輸入,返回集合作為輸出。SQL的集合特性允許一條SQL語句的結果作為另一條SQL語句的輸入。 SQL不要求用戶指定對數據的存放方法。 這種特性使用戶更易集中精力於要得到的結果。所有SQL語句使用查詢優化器,它是RDBMS的一部分,由它決定對指定數據存取的最快速度的手段。查詢優化器知道存在什麼索引,哪兒使用合適,而用戶從不需要知道表是否有索引,表有什麼類型的索引。
(2) 統一的語言
SQL可用於所有用戶的DB活動模型,包括系統管理員、資料庫管理員、 應用程序員、決策支持系統人員及許多其它類型的終端用戶。基本的SQL 命令只需很少時間就能學會,最高級的命令在幾天內便可掌握。 SQL為許多任務提供了命令,包括:
● 查詢數據
● 在表中插入、修改和刪除記錄
● 建立、修改和刪除數據對象
● 控制對數據和數據對象的存取
● 保證資料庫一致性和完整性
以前的資料庫管理系統為上述各類操作提供單獨的語言,而SQL 將全部任務統一在一種語言中。
(3) 是所有關係資料庫的公共語言
由於所有主要的關係資料庫管理系統都支持SQL語言,用戶可將使用SQL的技能從一個RDBMS轉到另一個。所有用SQL編寫的程序都是可以移植的。
[NextPage]
Java語言簡介
一. Java的由來
當1995年SUN推出Java語言之後,全世界的目光都被這個神奇的語言所吸引。那麼Java到底有何神奇之處呢?
Java語言其實最是誕生於1991年,起初被稱為OAK語言,是SUN公司為一些消費性電子產品而設計的一個通用環境。他們最初的目的只是為了開發一種獨立於平台的軟體技術,而且在網路出現之前,OAK可以說是默默無聞,甚至差點夭折。但是,網路的出現改變了OAK的命運。
在Java出現以前。Internet上的信息內容都是一些乏味死板的HTML文檔。這對於那些迷戀於WEB瀏覽的人們來說簡直不可容忍。他們迫切希望能在WEN中看到一些互動式的內容,開發人員也極希望能夠在WEB上創建一類無需考慮軟硬體平台就可以執行的應用程序,當然這些程序還要有極大的安全保障。對於用戶的這種要求,傳統的編程語言顯得無能為力,面SUN的工程師敏銳地察覺到了這一點,從1994年起,他們開始將OAK技術應用於WEB上,並且開發出了HotJava的第一個版本。當SUN公司1995年正式以Java這個名字推出的時候,幾乎所有的WEB開發人員都想到:噢,這正是我想要的。於是Java成了一顆耀眼的明星,醜小鴨一下了變成了白天鵝。
二. Java的定義
Java是一種簡單的,面象對象的,分散式的,解釋的,鍵壯的安全的,結構的中立的,可移植的,性能很優異的多線程的,動態的語言。
Java的開發環境有不同的版本,如sun公司的Java Developers Kit, 簡稱 JDK。後來微軟公司推出了支持Java規範的Microsoft Visual J++ Java開發環境,簡稱 VJ++。
三. Java的特點
1. 平台無關性
平台無關性是指Java能運行於不同的平台。Java引進虛擬機 原理,並運行於虛擬機,實現不同平台的Java介面之間。使 用Java編寫的程序能在世界範圍內共享。Java的數據類型與 機器無關,Java虛擬機(Java Virtual Machine)是建立在 硬體和操作系統之上,實現Java二進位代碼的解釋執行功能, 提供於不同平台的介面的。
2. 安全性
Java的編程類似C++,學習過C++的讀者將很快掌握Java的精 髓。Java捨棄了C++的指針對存儲器地址的直接操作,程序 運行時,內存由操作系統分配,這樣可以避免病毒通過指 針侵入系統。Java對程序提供了安全管理器,防止程序的 非法訪問。
3. 面向對象
Java 吸取了C++面向對象的概念,將數據封裝於類中,利用類 的優點,實現了程序的簡潔性和便於維護性。類的封裝性、 繼承性等有關對象的特性,使程序代碼只需一次編譯,然後 通過上述特性反覆利用。程序員只需把主要精力用在類和接 口的設計和應用上。Java 提供了眾多的一般對象的類,通 過繼承即可使用父類的方法。在 Java 中,類的繼承關係是單一的非多重的,一個子類 只有一個父類,子類的父類又有一個父類。Java 提供的 Object 類及其子類的繼承關係如同一棵倒立的樹形,根類 為 Object 類, Object 類功能強大,經常會使用到它及其 它派生的子類。
4. 分散式
Java建立在擴展TCP/IP網路平台上。庫函數提供了用HTTP和FTP協議傳送和接受信息的方法。這使得程序員使用網路上的文件和使用本機文件一樣容易。
5. 鍵壯性
Java致力於檢查程序在編譯和運行時的錯誤。類型檢查幫助檢查出許多開發早期出現的錯誤。Java自已操縱內存減少了內存出錯的可能性。Java還實現了真數組,避免了覆蓋數據的可能。這些功能特徵大大提高了開發Java應用程序的周期。Java提供: Null指針檢測、 數組邊界檢測、 異常出口、 Byte code校驗。
四. Java與C/C++語言
Java提供了一個功能強大語言的所有功能,但幾乎沒有一點含混特徵。C++安全性不好,但C和C++被大家接受,所以Java設計成C++形式,讓大家很容易學習。
Java去掉了C++語言的許多功能,讓Java的語言功能很精鍊,並增加了一些很有用的功能,如自動收集碎片。
Java去掉了以下幾個C和C++功能:
指針運算
結構
typedefs
#define
需要釋放內存
這將減少了平常出錯的50%。而且,Java很小,整個解釋器只需215K的RAM。
面象對象:Java實現了C++的基本面象對象技術並有一些增強,(為了語言簡單,刪除了一些功能)。Java處理數據方式和用對象介面處理對象數據方式一樣。
五. Java與Internet
我們知道,早先的 www 僅可以傳送文本和圖片,Java的出現實現了互動的頁面,是一次偉大的革命。
Java並不是為 Internet,WWW而設計的,它也可以用來編寫獨立的應用程序。Java 是一種面向對象語言。Java 語言類似於 C++ 語言,所以已熟練掌握 C++語言的編程人員,再學習 Java 語言就容易得多!Java 程序需要編譯。實際上有兩種 Java 程序:一種 Java 應用程序是一個完整的程序,如 Web 瀏覽器。一種 Java 小應用程序是運行於 Web 瀏覽器中的一個程序.
Java程序和它的瀏覽器HotJava,提供了可讓你的瀏覽器運行程序的方法。你能從你的瀏覽器里直接播放聲音。你還能播放頁面里的動畫。Java還能告訴你的瀏覽器怎樣處理新的類型文件。當我們能在2400 baud線上傳輸視頻圖象時,HotJava將能顯示這些視頻。
當今Internet的一大發展趨勢是電子商務,而Internet的安全問題是必須解決的問題,通常大的部門應設置防火牆,阻止非法侵入。
電子商務是當今的熱門話題,然而傳統的編程語言難以勝任電子商務系統,電子商務要求程序代碼具有基本的要求:安全、可靠、同時要求能 與運行於不同平台的機器的全世界客戶開展業務。Java以其強安全性、平台無關性、硬體結構無關性、語言簡潔同時面向對象,在網路編程語言中佔據無可比擬的優勢,成為實現電子商務系統的首選語言。
Java程序被放置在Internet伺服器上,當用戶訪問伺服器時,Java程序被下載到本地的用戶機上,由瀏覽器解釋運行。
[NextPage]
PowerBuilder簡介
PowerBuilder的產生
PowerBuilder是美國著名的資料庫應用開發工具生產廠商PowerSoft推出的成功產品,其第一版於1991年6月正式投入市場。它是完全按照客戶/伺服器體系結構研製設計的,採用面向對象技術,圖形化的應用開發環境,是資料庫的前端開發工具。
PowerBuilder的特點
它支持應用系統同時訪問多種資料庫,其中既包括Oracel,Sybase之類的大型資料庫,又包括FOXPRO之類支持ODBC介面的小型資料庫,PowerBuilder是完全可視化的資料庫開發工具,它提供了大量的控制項,大大加快了項目的開發速度,也使開發者更容易掌握資料庫的開發。
它使用的編程語言叫做工PowerScripr,它也是一種高級的,結構化的編程語言。PowerScript提供了一套完整的嵌入式SQL語句,開發人員可以像使用其它語句一樣自由地使用SQL語言,這樣就大大增強了程序操縱和訪問資料庫的能力。可以說PowerBuilder既適合初學者快速學習資料庫的開發,又可以讓有經驗的開發人員開發出功能強大的資料庫,是一種適用面非常廣的開發工具。
PowerBuilder是一個用來進行客戶/伺服器開發的完全的可視化開發環境。使用PowerBuilder,你可以用一種可視的直觀的方式來創建應用程序的用戶界面和資料庫介面。這是一個總的概念,實際上是開發人員使用PowerBuilder去開發應用程序,由於所開發的各種應用程序充分利用了圖形用戶介面(GUI)的優點,所以PowerBuilder被認為是一個圖形工具。
在客戶/伺服器結構的應用中,PowerBuilder具有描述多個資料庫連接與檢索的能力。特別是PowerBuilder能從大多數流行的RDBMS中存取數據,且不管數據存放在什麽地方;另外,各種應用程序又可以獨立於RDBMS,因為PowerBuilder可以使用資料庫的標準操作語言SQL(結構化查詢語言)進行。
使用PowerBuilder,可以很容易地開發出功能強大的圖形界面的訪問伺服器資料庫的應用程序,PowerBuilder提供了建立符合工業標準的應用程序(例如訂單登記、會計及製造系統)所需的所有工具。
PowerBuilder應用程序由窗口組成,這些窗口包含用戶與之交互的控制項。開發人員可以使用所有標準空間(如按鈕、複選框、下拉式列表框或編輯框)以及PowerBuilder提供的特殊的使應用程序更易於開發和使用的控制項。
通常人們把PowerBuilder看成是一種開發工具,實際上它比其他工具強得多,是一種強有力的開發環境。開發人員不僅能用它來開發用戶容易使用的各種應用程序還可以通過PowerBuilder修改資料庫,利用400多個內部定義函數,可以開發能和其他應用程序進行的各種應用程序。
PowerBuilder正在成為客戶/伺服器應用開發的標準。相對於其他任何客戶/伺服器開發環境,PowerBuilder使開發人員的工作更快、成本更低、質量更高、功能更強。
PowerBuilder為應用開發提供了全面綜合性的支持,可以分別概括為如下幾點:
事件驅動的應用程序
功能強大的編程語言與函數
面向對象的編程
跨平台開發
開放的資料庫連結系統
PowerBuilder開發環境
PowerBuilder開發環境由一系列集成的圖形畫板(Painter)組成,應用開發人員通過簡單的滑鼠操作即可設計、建立、交互檢驗和測試客戶/伺服器應用程序。
[NextPage]
Delphi簡介
Delphi這個名字源於古希臘的城市名。它集中了第三代語言的優點。以Object Pascal為基礎,擴充了面向對象的能力,並且完美地結合了可視化的開發手段。Delphi自1995年3 月一推出就受到了人們的關注,並在當年一舉奪得了多項大獎。
Delphi的出現打破了V承可視化編程領域一統天下的局面。並且Delphi使用了本地編譯器直接生成技術,使程序的執行性能遠遠高於其它產品生成的程序。它還是真正的面向對象的編程語言。PASCAL語言的嚴謹加上可視化的優勢和強大的資料庫功能使得它有充分的資本和微軟的VB叫板。許多人當時都認為Pascal 是最有前途的程序設計語言,並預測Delphi將會成為可視化編程的主流環境。
Delphi在你編好程序後自動轉換成.EXE文件它運行時速度比VB快,而且編譯後不需要其他的支持庫就能運行。它的資料庫功能也挺強的,是開發中型資料庫軟體理想的編程工具。 Delphi適用於應用軟體、資料庫系統、系統軟體等類型的開發。而且它擁有和VB差不多一樣的功能,而且一樣能應用API函數,這在控制Windows很有用。
Delphi是全新的可視化編程環境,為我們提供了一種方便、快捷的Windows應用程序開發工具。它使用了Microsoft Windows圖形用戶界面的許多先進特性和設計思想,採用了彈性可重複利用的完整的面向對象程序語言(Object-Oriented Language)、當今世界上最快的編輯器、最為領先的資料庫技術。對於廣大的程序開發人員來講,使用Delphi開發應用軟體,無疑會大大地提高編程效率,而且隨著應用的深入,您將會發現編程不再是枯燥無味的工作——Delphi的每一個設計細節,都將帶給您一份欣喜。
Delphi的基本形式
Delphi實際上是Pascal語言的一種版本,但它與傳統的Pascal語言有天壤之別。一個Delphi程序首先是應用程序框架,而這一框架正是應用程序的「骨架」。在骨架上即使沒有附著任何東西,仍可以嚴格地按照設計運行。您的工作只是在「骨架」中加入您的程序。預設的應用程序是一個空白的窗體(form),您可以運行它,結果得到一個空白的窗口。這個窗口具有Windows窗口的全部性質:可以被放大縮小、移動、最大最小化等,但您卻沒有編寫一行程序。因此,可以說應用程序框架通過提供所有應用程序共有的東西,為用戶應用程序的開發打下了良好的基礎。
Delphi已經為您做好了一切基礎工作——程序框架就是一個已經完成的可運行應用程序,只是不處理任何事情。您所需要做的,只是在程序中加入完成您所需功能的代碼而已。 在空白窗口的背後,應用程序的框架正在等待用戶的輸入。由於您並未告訴它接收到用戶輸入後作何反應,窗口除了響應Windows的基本操作(移動、縮放等)外,它只是接受用戶的輸入,然後再忽略。Delphi把Windows編程的回調、句柄處理等繁複過程都放在一個不可見的Romulam覆蓋物下面。
C語言課程設計
/******頭文件(.h)***********/
#include “stdio.h” /*I/O函數*/
#include “stdlib.h” /*標準庫函數*/
#include “string.h”/*字元串函數*/
#include “ctype.h” /*字元操作函數*/
#include “conio.h” /*控制台輸入輸出函數 */
#define M 50 /*定義常數表示記錄數*/
typedef struct /*定義數據結構*/
{
char name[20]; /*姓名*/
char units[30]; /*單位*/
char tele[20]; /*電話*/
char m_ph[20]; //手機
char rela[20]; //關係
char email[50]; //郵箱
char qq[20]; //qq
}ADDRESS;
/******以下是函數原型*******/
int enter(ADDRESS t[]); /*輸入記錄*/
void list(ADDRESS t[],int n); /*顯示記錄*/
void search(ADDRESS t[],int n); /*按姓名查找顯示記錄*/
int Delete(ADDRESS t[],int n); /*刪除記錄*/
int add(ADDRESS t[],int n); /*插入記錄*/
void save(ADDRESS t[],int n); /*記錄保存為文件*/
int load(ADDRESS t[]); /*從文件中讀記錄*/
void display(ADDRESS t[]); /*按序號查找顯示記錄*/
void sort(ADDRESS t[],int n); /*按姓名排序*/
void qseek(ADDRESS t[],int n); /*快速查找記錄*/
void print(ADDRESS temp); /*顯示單條記錄*/
int find(ADDRESS t[],int n,char *s) ; /*查找函數*/
int menu_select(); /*主菜單函數*/
/******主函數開始*******/
main()
{
system(“color 37”);//背景色為淺綠,前景色為白色
printf(” 歡迎使用通訊錄管理系統\n”);//歡迎界面
int i;
ADDRESS adr[M]; /*定義結構體數組*/
int length; /*保存記錄長度*/
for(;;)/*無限循環*/
{
switch(menu_select()) /*調用主菜單函數,返回值整數作開關語句的條件*/
{
case 0:length=enter(adr);break;/*輸入記錄*/
case 1:list(adr,length);break; /*顯示全部記錄*/
case 2:search(adr,length);break; /*查找記錄*/
case 3:length=Delete(adr,length);break; /*刪除記錄*/
case 4:length=add(adr,length); break; /*插入記錄*/
case 5:save(adr,length);break; /*保存文件*/
case 6:length=load(adr); break; /*讀文件*/
case 7:display(adr);break; /*按序號顯示記錄*/
case 8:sort(adr,length);break; /*按姓名排序*/
case 9:qseek(adr,length);break; /*快速查找記錄*/
case 10:exit(0); /*如返回值為10則程序結束*/
}
}
}
/*菜單函數,函數返回值為整數,代表所選的菜單項*/
int menu_select()
{
char s[80];
int c;
printf(“按任意鍵進入菜單……\n”);/*提示按任意鍵繼續*/
getch(); /*讀入任意字元*/
system(“cls”); /*清屏*/
printf(” ********************菜單***********************\n\n”);
printf(” 0. 輸入記錄\n”);
printf(” 1. 顯示所有記錄\n”);
printf(” 2. 按姓名查找記錄\n”);
printf(” 3. 刪除記錄\n”);
printf(” 4. 添加記錄\n”);
printf(” 5. 保存文件\n”);
printf(” 6. 載入文件\n”);
printf(” 7. 按序號顯示記錄\n”);
printf(” 8. 記錄排序\n”);
printf(” 9. 查找記錄\n”);
printf(” 10. 退出\n”);
printf(” ***********************************************\n”);
do
{
printf(“\n 請輸入選項(0~10):”); /*提示輸入選項*/
scanf(“%d”,c);/*輸入選擇項*/
fflush(stdin);
}while(c0 || c10);/*選擇項不在0~10之間重輸*/
return c; /*返回選擇項,主程序根據該數調用相應的函數*/
}
/***輸入記錄,形參為結構體數組,函數值返回類型為整型表示記錄長度*/
int enter(ADDRESS t[])
{
int i,n;
char num[30];
system(“cls”); /*清屏*/
int flag=1;
for(;;)
{
flag = 1;
system(“cls”); /*清屏*/
printf(“\n請輸入記錄數:\n”); /*提示信息*/
scanf(“%s”, num); /*輸入記錄數*/
fflush(stdin);
for(int nima = 0; num[nima]; nima++)
{
if (num[nima] 48 || num[nima] 57)
{
flag = 0;
break;
}
}
if(flag==1)
break;
}
n=atoi(num);
printf(“請輸入記錄:\n”); /*提示輸入記錄*/
printf(“姓名 單位 電話 手機 關係 郵箱 QQ\n”);
printf(“————————————————————————–\n”);
for(i=0;in;i++)
{
scanf(“%s%s%s%s%s%s%s”,t[i].name,t[i].units,t[i].tele,t[i].m_ph,t[i].rela,t[i].email,t[i].qq); /*輸入記錄*/
fflush(stdin);
for(int k=0;k=19;k++)
{
if((t[i].tele[k]=’a’ t[i].tele[k]=’z’ )|| (t[i].tele[k]=’A’ t[i].tele[k]=’Z’))
{
printf(“電話輸入錯誤!請重新輸入聯繫人信息\n”);
i–;
break;
}
if((t[i].m_ph[k]=’a’ t[i].m_ph[k]=’z’ )|| (t[i].m_ph[k]=’A’ t[i].m_ph[k]=’Z’))
{
printf(“手機輸入錯誤!請重新輸入聯繫人信息\n”);
i–;
break;
}
if((t[i].qq[k]=’a’ t[i].qq[k]=’z’ )|| (t[i].qq[k]=’A’ t[i].qq[k]=’Z’))
{
printf(“QQ輸入錯誤!請重新輸入聯繫人信息\n”);
i–;
break;
}
}
printf(“————————————————————————–\n”);
}
return n; /*返回記錄條數*/
}
/*顯示記錄,參數為記錄數組和記錄條數*/
void list(ADDRESS t[],int n)
{
int i;
system(“cls”); /*清屏*/
printf(“\n\n************************************************************************\n”);
printf(“姓名 單位 電話 手機 關係 郵箱 QQ\n”);
printf(“————————————————————————–\n”);
for(i=0;in;i++)
printf(“%-10s%-14s%-12s%-12s%-10s%-12s%-14s\n”,t[i].name,t[i].units,t[i].tele,t[i].m_ph,t[i].rela,t[i].email,t[i].qq);
if((i+1)%10==0) /*判斷輸出是否達到10條記錄*/
{
printf(“按任意鍵顯示下一頁\n”); /*提示信息*/
getch(); /*按任意鍵繼續*/
}
printf(“*********************************結束***********************************\n”);
}
/*查找記錄*/
void search(ADDRESS t[],int n)
{
char s[20]; /*保存待查找姓名字元串*/
int i; /*保存查找到結點的序號*/
system(“cls”); /*清屏*/
printf(“請輸入待查找姓名:\n”);
scanf(“%s”,s); /*輸入待查找姓名*/
i=find(t,n,s); /*調用find函數,得到一個整數*/
if(in-1) /*如果整數i值大於n-1,說明沒找到*/
{
printf(“未找到!!!\n”);
getch();
}
else
print(t[i]); /*找到,調用顯示函數顯示記錄*/
}
/*顯示指定的一條記錄*/
void print(ADDRESS temp)
{
system(“cls”); /*清屏*/
printf(“\n\n************************************************************************\n”);
printf(“姓名 單位 電話 手機 關係 郵箱 QQ\n”);
printf(“————————————————————————–\n”);
printf(“%-10s%-14s%-12s%-12s%-10s%-12s%-14s\n”,temp.name,temp.units,temp.tele,temp.m_ph,temp.rela,temp.email,temp.qq);
printf(“*********************************結束***********************************\n”);
getchar();
}
/*查找函數,參數為記錄數組和記錄條數以及姓名s */
int find(ADDRESS t[],int n,char *s)
{
int i;
system(“cls”); /*清屏*/
for(i=0;in;i++)/*從第一條記錄開始,直到最後一條*/
{
if(strcmp(s,t[i].name)==0) /*記錄中的姓名和待比較的姓名是否相等*/
return i; /*相等,則返回該記錄的下標號,程序提前結結束*/
}
return i; /*返回i值*/
getch();
}
/*刪除函數,參數為記錄數組和記錄條數*/
int Delete(ADDRESS t[],int n)
{
char s[20]; /*要刪除記錄的姓名*/
char ch;
int i,j;
system(“cls”); /*清屏*/
printf(“請輸入待刪除的姓名:\n”); /*提示信息*/
scanf(“%s”,s);/*輸入姓名*/
i=find(t,n,s); /*調用find函數*/
if(in-1) /*如果in-1超過了數組的長度*/
printf(“未找到!!!\n”); /*顯示沒找到要刪除的記錄*/
else
{
print(t[i]); /*調用輸出函數顯示該條記錄信息*/
printf(“確定刪除?(Y/N)\n”); /*確認是否要刪除*/
scanf(“%c”,ch); /*輸入一個整數0或1*/
if(ch==’y’ || ch==’Y’) /*如果確認刪除輸入y*/
{
for(j=i+1;jn;j++) /*刪除該記錄,實際後續記錄前移*/
{
strcpy(t[j-1].name,t[j].name); /*將後一條記錄的姓名拷貝到前一條*/
strcpy(t[j-1].units,t[j].units); /*將後一條記錄的單位拷貝到前一條*/
strcpy(t[j-1].tele,t[j].tele); /*將後一條記錄的電話拷貝到前一條*/
strcpy(t[j-1].m_ph,t[j].m_ph); /*將後一條記錄的手機拷貝到前一條*/
strcpy(t[j-1].rela,t[j].rela); /*將後一條記錄的關係拷貝到前一條*/
strcpy(t[j-1].email,t[j].email); /*將後一條記錄的郵箱拷貝到前一條*/
strcpy(t[j-1].qq,t[j].qq); /*將後一條記錄的qq拷貝到前一條*/
}
printf(“刪除成功!\n”);
n–; /*記錄數減1*/
}
}
getch();
return n; /*返回記錄數*/
}
/*插入記錄函數,參數為結構體數組和記錄數*/
int add(ADDRESS t[],int n)/*插入函數,參數為結構體數組和記錄數*/
{
ADDRESS temp; /*新插入記錄信息*/
int i,j,flag;
char s[30]; /*確定插入在哪個記錄之前*/
system(“cls”); /*清屏*/
printf(“請輸入記錄:\n”);
printf(“************************************************************************\n”);
printf(“姓名 單位 電話 手機 關係 郵箱 QQ\n”);
printf(“————————————————————————–\n”);
scanf(“%s%s%s%s%s%s%s”,temp.name,temp.units,temp.tele,temp.m_ph,temp.rela,temp.email,temp.qq); /*輸入插入信息*/
fflush(stdin);
printf(“請輸入插入位置的姓名: \n”);
scanf(“%s”,s); /*輸入插入位置的姓名*/
i=find(t,n,s); /*調用find,確定插入位置*/
for(j=n-1;j=i;j–) /*從最後一個結點開始向後移動一條*/
{
strcpy(t[j+1].name,t[j].name); /*當前記錄的姓名拷貝到後一條*/
strcpy(t[j+1].units,t[j].units); /*當前記錄的單位拷貝到後一條*/
strcpy(t[j+1].tele,t[j].tele); /*當前記錄的電話拷貝到後一條*/
strcpy(t[j+1].m_ph,t[j].m_ph); /*當前記錄的手機拷貝到後一條*/
strcpy(t[j+1].rela,t[j].rela); /*當前記錄的關係拷貝到後一條*/
strcpy(t[j+1].email,t[j].email); /*當前記錄的郵箱拷貝到後一條*/
strcpy(t[j+1].qq,t[j].qq); /*當前記錄的qq拷貝到後一條*/
}
strcpy(t[i].name,temp.name); /*將新插入記錄的姓名拷貝到第i個位置*/
strcpy(t[i].units,temp.units); /*將新插入記錄的單位拷貝到第i個位置*/
strcpy(t[i].tele,temp.tele); /*將新插入記錄的電話拷貝到第i個位置*/
strcpy(t[i].m_ph,temp.m_ph); /*將新插入記錄的手機拷貝到第i個位置*/
strcpy(t[i].rela,temp.rela); /*將新插入記錄的關係拷貝到第i個位置*/
strcpy(t[i].email,temp.email); /*將新插入記錄的郵箱拷貝到第i個位置*/
strcpy(t[i].qq,temp.qq); /*將新插入記錄的qq拷貝到第i個位置*/
n++; /*記錄數加1*/
printf(“添加成功!!!\n”);
getch();
return n; /*返回記錄數*/
}
/*保存函數,參數為結構體數組和記錄數*/
void save(ADDRESS t[],int n)
{
int i;
char outfile[30];
FILE *fp; /*指向文件的指針*/
system(“cls”); /*清屏*/
printf(“請輸入待保存的文件名:\n”);
scanf(“%s”,outfile);
if((fp=fopen(outfile,”wb”))==NULL) /*打開文件,並判斷打開是否正常*/
{
printf(“無法打開文件!\n”);/*無法打開*/
exit(1); /*退出*/
}
printf(“\n保存文件…\n”); /*輸出提示信息*/
fprintf(fp,”%d”,n); /*將記錄數寫入文件*/
fprintf(fp,”\r\n”); /*將換行符號寫入文件*/
for(i=0;in;i++)
{
fprintf(fp,”%-10s%-14s%-12s%-12s%-10s%-12s%-14s\n”,t[i].name,t[i].units,t[i].tele,t[i].m_ph,t[i].rela,t[i].email,t[i].qq);/*格式寫入記錄*/
fprintf(fp,”\r\n”); /*將換行符號寫入文件*/
}
fclose(fp);/*關閉文件*/
printf(“****保存成功!****\n”); /*顯示保存成功*/
getch();
}
/*載入函數,參數為結構體數組*/
int load(ADDRESS t[])
{
int i,n;
char outfile[30];
FILE *fp; /*指向文件的指針*/
system(“cls”); /*清屏*/
printf(“請輸入待載入的文件名:\n”);
scanf(“%s”,outfile);
if((fp=fopen(outfile,”rb”))==NULL)/*打開文件*/
{
printf(“無法打開文件!\n”); /*不能打開*/
exit(1); /*退出*/
}
fscanf(fp,”%d”,n); /*讀入記錄數*/
for(i=0;in;i++)
fscanf(fp,”%10s%14s%12s%12s%10s%12s%14s”,t[i].name,t[i].units,t[i].tele,
t[i].m_ph,t[i].rela,t[i].email,t[i].qq); /*按格式讀入記錄*/
fclose(fp); /*關閉文件*/
printf(“從文件讀入數據成功!!!\n”); /*顯示保存成功*/
getch();
return n; /*返回記錄數*/
}
/*按序號顯示記錄函數*/
void display(ADDRESS t[])
{
int id,n;
char outfile[30];
FILE *fp; /*指向文件的指針*/
system(“cls”); /*清屏*/
printf(“請輸入待載入的文件名:”);
scanf(“%s”,outfile);
if((fp=fopen(outfile,”rb”))==NULL) /*打開文件*/
{
printf(“無法打開文件!\n”); /*不能打開文件*/
exit(1); /*退出*/
}
printf(“請輸入記錄序號:\n”); /*顯示信息*/
scanf(“%d”,id); /*輸入序號*/
fscanf(fp,”%d”,n); /*從文件讀入記錄數*/
if(id=0idn) /*判斷序號是否在記錄範圍內*/
{
fseek(fp,(id-1)*sizeof(ADDRESS),1); /*移動文件指針到該記錄位置*/
print(t[id]); /*調用輸出函數顯示該記錄*/
printf(“\r\n”);
}
else
{
printf(” %d號記錄不存在!!!\n “,id); /*如果序號不合理顯示信息*/
getch();
}
fclose(fp); /*關閉文件*/
}
/*排序函數,參數為結構體數組和記錄數*/
void sort(ADDRESS t[],int n)
{
int i,j,flag;
system(“cls”); /*清屏*/
ADDRESS temp; /*臨時變數做交換數據用*/
for(i=0;in;i++)
{
flag=0; /*設標誌判斷是否發生過交換*/
for(j=0;jn-1;j++)
if((strcmp(t[j].name,t[j+1].name))0) /*比較大小*/
{
flag=1;
strcpy(temp.name,t[j].name); /*交換記錄*/
strcpy(temp.units,t[j].units);
strcpy(temp.tele,t[j].tele);
strcpy(temp.m_ph,t[j].m_ph);
strcpy(temp.rela,t[j].rela);
strcpy(temp.email,t[j].email);
strcpy(temp.qq,t[j].qq);
strcpy(t[j].name,t[j+1].name);
strcpy(t[j].units,t[j+1].units);
strcpy(t[j].tele,t[j+1].tele);
strcpy(t[j].m_ph,t[j+1].m_ph);
strcpy(t[j].rela,t[j+1].rela);
strcpy(t[j].email,t[j+1].email);
strcpy(t[j].qq,t[j+1].qq);
strcpy(t[j+1].name,temp.name);
strcpy(t[j+1].units,temp.units);
strcpy(t[j+1].tele,temp.tele);
strcpy(t[j+1].m_ph,temp.m_ph);
strcpy(t[j+1].rela,temp.rela);
strcpy(t[j+1].email,temp.email);
strcpy(t[j+1].qq,temp.qq);
}
if(flag==0)break; /*如果標誌為0,說明沒有發生過交換循環結束*/
}
printf(“排序成功!!!\n”); /*顯示排序成功*/
}
/*快速查找,參數為結構體數組和記錄數*/
void qseek(ADDRESS t[],int n)
{
char s[20];
int l,r,m;
system(“cls”); /*清屏*/
printf(“\n請在查找前排序!\n”); /*提示確認在查找之前,記錄是否已排序*/
printf(“請輸入待查找的姓名:\n”); /*提示輸入*/
scanf(“%s”,s); /*輸入待查找的姓名*/
l=0;r=n-1; /*設置左邊界與右邊界的初值*/
while(l=r) /*當左邊界=右邊界時*/
{
m=(l+r)/2; /*計算中間位置*/
if(strcmp(t[m].name,s)==0) /*與中間結點姓名欄位做比較判是否相等*/
{
print(t[m]); /*如果相等,則調用print函數顯示記錄信息*/
return ; /*返回*/
}
if(strcmp(t[m].name,s)0) /*如果中間結點小*/
l=m+1; /*修改左邊界*/
else
r=m-1; /*否則,中間結點大,修改右邊界*/
}
if(lr) /*如果左邊界大於右邊界時*/
printf(“未找到!\n”); /*顯示沒找到*/
getch();
}
中職學校的C語言教學
中職學校的C語言教學
論文摘要:隨著我國經濟的不斷發展,計算機專業畢業生有很廣闊的就業市場,然而計算機行業人才濟濟,就業競爭激烈,中職學校的計算機專業學生就不能局限於一些常用的應用軟體的學習,C語言的學習顯得尤為重要。本文主要淺談了中職學校的C語言教學體會。
論文關鍵詞:中職學生;C語言;教學目標
為拓展中職學生的就業渠道,C語言課程的學習必不可少。C程序設計是計算機應用人員應掌握的基本功,是計算機軟體開發的入門語言,主要培養學生演算法設計的基本思想和程序設計的基本技能。下面我就談一下幾年來C語言教學的一些體會。
一、培養學習興趣
興趣是入門教育的關鍵.培養學習興趣很重要。由於多數中職學生沒有接觸過計算機語言.因此需要培養他們的學習興趣。針對中職學生基礎不紮實及本課程枯燥深奧的特點。教師應採取多媒體教學,向學生展示一些趣味性的問題並演示實用性的程序,想方設法吸引學生。如給學生講解「水仙花數、猴子吃桃、翻譯密碼、判斷素數」等問題,並讓學生用編程軟體解決這些問題,同時運行C程序,使學生在親身實踐中體會到樂趣;另外,可以通過一些影片向學生介紹一些lT人士的經歷和成功經驗,增強學生學習C語言的信心和動力。
二、選擇適合中職教育的教材與教學方式。合理設置教學目標
中職學生普遍基礎知識不紮實。所以教材內容要強調基礎性,語言表達力求通俗淺顯易懂,以程序設計為主線,以編程應用為驅動,通過案例和問題引出知識重點,重點講解程序設計的思想和方法,穿插講解相關的語言知識,使教學效果既有深度又有廣度,選擇的教材盡量符合初學者的要求。
C語言最主要的教學方式除了教師上課就是讓學生上機實踐。這是很重要的`一個環節。教師講得再好。學生感覺「能看懂」「能聽懂」。卻不動手實踐,仍然掌握不了知識,更談不上運用。在上機過程中,學生可以進一步理解和掌握課堂所講知識,許多不清楚或不理解的問題通過上機操作可迎刃而解。在組織學生上機實踐過程中。教師要適當地設計一些難度適中的作業,激發學生開動腦筋,讓學生自己在有目的的情況下,去尋找解決的方法,讓其真正當學習的主人,最大限度地激勵學生的學習積極主動性。總之。我們應當十分重視動手編寫程序和上機運行程序。
教學目標是學生學習的目的。教學目標的定位,要根據教學對象的特點而定。就中職學生而言,教學目標是提高分析問題、解決問題的能力。重點分析程序設計過程,形成程序設計過程理念。能夠讀程序。編寫一些簡單程序,培養學生良好的編程習慣,逐步提高學生編程能力。C語言的學習只是程序設計的開端,所以我們教師不要設置好高鶩遠的教學目標。
三、分組教學,培養自學能力。注重培養團隊合作精神
由於中職學生自主學習能力、自控能力沒有大學生強,所以中職學生很容易失去上機興趣,也就達不到上機實踐的目的。為此,教師可適當轉變上機實踐的形式:以小組形式上機實踐。上機前分配給每個學習小組不同的學習任務。組長負責分工.讓本組學生利用課餘時間去思考、查詢收集資料,上機時各組分別完成相應任務。然後相互演示成果,分析優劣利弊,再互換任務,最後討論編程體會,取長補短。在此過程中教師適當指導,主要過程可由學生自行解決,讓學生在切磋的過程中自主學習並且培養團結合作的精神。
四、激勵式教學。適當引入考核機制,啟發學生求知慾
在教學中培養學生創造力需要用考核這個手段來激勵、鼓舞學生,考核應從兩個方面入手,可採用「問題式」「階段式的辦法。「問題式」就是根據學生課堂所學知識,在上機實踐課時,讓學生獨立解決一個實際應用題、完成一個小遊戲等。「階段式」就是把一個階段所學知識進行一次考核,但知識點不宜過多。有了考核機制.就能最大限度地激勵學生的學習潛能。
五、課後及時反饋,逐步改進教學方案和方法
要想提升教學業務水平,提高教學效果,就必須聽取多方面的建議與意見。首先要經常聽聽學生的心聲。學生就是上帝。學生的需求就是我們的追求與目標。其次來自教研組和教學檢查組。教研組和教學檢查組的意見具有指導作用。最後是來自企業調研。為了防止知識陳舊過時.我們教師可以通過暑期去軟體公司工作實踐和調研.了解他們的需求,切合實際需要.重新修改教學方案,讓學生能學以致用。
以上是本人在中職學校擔任計算機C語言課程教學的一些體會,我會在以後的教學中細心觀察,不斷地去探索研究.不斷豐富教學經驗,為中職教育事業貢獻一份力量。
論文相關查閱: 畢業論文範文 、 計算機畢業論文 、
C語言該怎樣學才能比較容易入手??(英語白痴一個)
怎樣學編程
1.明確學習目的
學習編程對大多數IT業人員來說都是非常有用的。學編程,做一名編程人員,從個人角度講,可以解決在軟體使用中所遇到的問題,改進現有軟體,可以為自己找到一份理想的工作添加重要得砝碼,有利於在求職道路上謀得一個好的職位;從國家的角度,可以為中國的軟體產業做出應有的貢獻,一名優秀的程序員永遠是被爭奪的對象。學習編程還能 鍛煉思維,使我們的邏輯思維更加嚴密;能夠不斷享受到創新的樂趣,將一直有機會走在高科技的前沿,因為程序設計本身是一種創造性的工作。知識經濟時代給我們帶來了無限的機會,要想真正掌握計算機技術,並在IT行業里干出一番事業來,有所作為,具有一定的編程能力是一個基本條件和要求。
2.打好基礎
學編程要具備一定的基礎,總結之有以下幾方面:
(1)數學基礎 從計算機發展和應用的歷史來看計算機的數學模型和體系結構等都是有數學家提出的,最早的計算機也是為數值計算而設計的。因此,要學好計算機就要有一定的數學基礎,出學者有高中水平就差不多了。
(2)邏輯思維能力的培養 學程序設計要有一定的邏輯思維能力,「邏思力」的培養要長時間的實踐鍛煉。要想成為一名優秀的程序員,最重要的是掌握編程思想。要做到這一點必須在反覆的實踐、觀察、分析、比較、總結中逐漸地積累。因此在學習編程過程中,我們不必等到什麼都完全明白了才去動手實踐,只要明白了大概,就要敢於自己動手去體驗。誰都有第一次。有些問題只有通過實踐後才能明白,也只有實踐才能把老師和書上的知識變成自己的,高手都是這樣成材的。
(3)選擇一種合適的入門語言 面對各種各樣的語言,應按什麼樣的順序學呢?程序設計工具不外乎如下幾類: 1)本地開發 應用軟體開發的工具有:Visual Basic 、Delphi 、VC++ ( C++ Builder ) 等;資料庫開發工具有:Visual Foxpro 、Oracle Developer 、Power Builder 等。 2)跨平台開發 開發工具如 Java 等。 3)網路開發 對客戶端開發工具如:Java Script 等;對伺服器開發工具如:PHP 、ASP 、JSP 、ISAPI 、NSAPI 、CGI 等。 以上不同的環境下幾種開發工具中 VB 法簡單並容易理解,界面設計是可設化的,易學、易用。選 VB 作為入門的方向對出學者是較為適合的。
3. 注意理解一些重要概念
一本程序設計的書看到的無非就是變數、函數、條件語句、循環語句等概念,但要真正能進行編程應用,需要深入理解這些概念,在理解的基礎上應用,不要只簡單地學習語法、結構,而要吃透針對這些語法、結構的應用例子,做到舉一反三,觸類旁通。
4.掌握編程思想
學習一門語言或開發工具,語法結構、功能調用是次要的,最主要是學習它的思想。例如學習 VC 就要學習 Windows 的內在機理、什麼是線程……;學習 COM 就要知道 VTALBE 、類廠、介面、idl……,關鍵是學一種思想,有了思想,那麼我們就可以觸類旁通。
5.多實踐、多交流
掌握編程思想必須在編程實際工作中去實踐和體會。編程起步階段要經常自己動手設計程序,具體設計時不要拘泥於固定的思維方式,遇到問題要多想幾種解決的方案。這就要多交流,各人的思維方式不同、角度各異,各有高招,通過交流可不斷吸收別人的長處,豐富編程實踐,幫助自己提高水平。親自動手進行程序設計是創造性思維應用的體現,也是培養邏輯思維的好方法。
6.養成良好的編程習慣
編程入門不難,但入門後不斷學習是十分重要的,相對來說較為漫長。在此期間要注意養成一些良好的編程習慣。編程風格的好壞很大程度影響程序質量。良好的編程風格可以使程序結構清晰合理,且使程序代碼便於維護。如代碼的縮進編排、變數命令規則的一致性、代碼的注釋等。
7.上網學編程
在網上可以學到很多不同的編程思想、方法、經驗和技巧,有大量的工具和作品及相關的輔導材料供下載。例如網站「編程課堂」()主要以 VB 和 Delph;教學和交流為主,提供大量實用技巧;網站「現在時編程學園」()是專門介紹C、VC、VB、Delphi 等的綜合編程網站;網站「 VB 編程樂園 」()提供內容豐富而且實用的編程技術文章、精選控制項、源代碼下載、計算機考試、相關軟體以及編程書籍推薦等等。
8.加強計算機理論知識的再學習
學編程是符合「理論→實踐→再理論→再實踐」的一個認識過程。一開始要具有一定的計算機理論基礎知識,包括編程所需的數學基礎知識,具備了入門的條件,就可以開始編程的實踐,從實踐中可以發現問題需要加強計算機理論知識的再學習。程序人人皆可編,但當你發現編到一定程度很難再提高的時候,就要回頭來學習一些計算機科學和數學基礎理論。學過之後,很多以前遇到的問題都會迎刃而解,使人有豁然開朗之感。因此在學習編程的過程中要不斷地針對應用中的困惑和問題深入學習數據結構、演算法、計算機原理、編譯原理、操作系統原理、軟體工程等計算機科學的理論基礎和數理邏輯、代數系統、圖論、離散數學等數學理論基礎知識。這樣經過不斷的學習,再努力地實踐,編程水平一定會不斷提高到一個新高度
C,java,VB,彙編等等。
你既然喜歡編程,就應該認認真真的學習一門語言,先從VB開始,VB是比較好的入門語言,可視化的,比較簡單,是非常好的入門語言。書籍最少應該準備兩本,不可能一本書籍會包含VB的所有內容,在看書的時候,可以交叉的看,一本書籍中沒有講到的內容可以在另一本中看到,這樣對學習是很有好處的,也能保證所學知識的完整性。學編程是一個很漫長的過程,不要著急,要理論與實踐想結合,常式書籍也是很重要的,看源代碼對學習也是很有幫助的,等你學完這門VB語言之後,學習別的語言是非常簡單,可以嘗試C語言,按照C——C++——VC的順序學習,有助於知識的連貫性,我也希望你能學好的。
學習C語言,譚浩強的《C程序設計》是一部非常好的C語言書籍,學習程序設計是一個非常漫長的過程,不要著急,一本書多看兩遍三遍,學會交叉學習法,在學習C的過程中,可以看看數據結構,編譯原理,操作系統等書籍,對編成都是很有幫助的。最開始學習的時候,先不要編一些比較大的程序,多編一些小程序,比如數組運算,字元組合等等,指針是C語言的精華,是比較複雜的部分。如果有一天你能熟練駕馭指針的操作了,我相信你,你一定能學習好C語言的。
我是2001年接觸編程的,剛開始只是大概了解一下,並沒有進行比較深入的學習,我是從VB開始入門的,學了1年多,然後轉入C語言,按照C——C++——VC的順序學習,C學了兩年,現在開始學習C++,C++的學習是很有難度的,類,標準庫,多態,繼承等等比較抽象難道懂的概念,雖然他秉承了C語言的風格,但是有很多很多是C語言不具備的,要多看書,上機實踐也是必不可少的。《C++編程思想》,《C++標準庫》,這些書都非常好,內容也很全面,常式書籍也是必不可少的,多看源代碼對編程是很有幫助的,也會少走很多彎路。總之,C++的學習是一個比較漫長的過程,大概需要兩年的時間,這只是底限,如果想學通,學精,還需要更多的時間。
我向你推薦一些C++經典書籍:
c++程序設計教程
c++編程思想
c++大學教程
c++程序設計語言
數據結構演算法與應用c++語言描述
c++標準模板庫——自修教程與參考手冊
泛型編程與STL
深度探索c++對象模型
設計模式—可復用面向對象軟體的基礎
重構—改善既有代碼的設計
Essential c++
Effective c++
More Effctive c++
C++ primer
前五本應該屬於入門書籍,後面的屬於學習難度比較大的,想提高C++的編程能力,看看這些書籍有好處。建議你把編程思想這本書多看看。多做練習題,對提高編程水平的幫助是很大的。
其實語言是相通的,一門語言學會了,學習其他語言就比較容易了。
業界有這樣一種說法,因為JAVA這門語言包含了C++的一些特性,掌握了C++,就等於掌握了JAVA的80%,
在掌握了C++之後(我說的掌握指的是,可以熟練用C++編程序了,並沒有要求你完全掌握C++的所有部分,沒有人能達到這一點,因為C++太龐大了,如果能堅持不懈的學習C++兩年到三年的時間了,你就可以學習其他的語言了)可以試著學習一些其他的語言,如JAVA,VC++等等比較複雜的語言.
這時候可以說你已經對程序設計語言有個大體的認識了,可以明確自己學習的方向,根據自己的學習情況而定,是學習一些自己比較感興趣的語言啊(從興趣出發),還是為了找工作啊,開始進行更深入的學習.比如學習windows下的框架編程和.net編程等等比較複雜的語言.
如果是為了找工作的話我建議你學好C,C++,JAVA三門語言.
在我國目前的軟體開發行業中,北方C,C++,JAVA的需求量是非常大的.南方以VB為主.
關於英語對學習程序設計有沒有幫助的文章這個話題已經有很多人議論過了,我個人建議把計算機專業術語弄明白了就可以了,你可以買一本計算機英語教程看一看,對程序設計是有幫助的。其實程序設計當中的英文都是一些非常簡單的,如for,else,while…….並沒有太高深的,而且學習程序設計不像學習網路,如CCNA這類認證需要掌握大量的英文。但是在學習程序設計的時候身邊有兩個工具應該足夠了———–金山詞霸,計算機詞典。相信你一定能學好程序設計的。
學習數學和學習程序設計有一個共同點——鍛煉邏輯思維能力。在程序設計的學習中涉及到數學的地方並不多,所以也沒有必要去認真的學習數學也可以學好程序設計的。
如果你是一個肯吃苦,肯用心學習程序設計的人,具有堅持不懈的精神的人,我相信,只要你認認真真去學,即使你的英語數學水平再差,你也一定能夠學好程序設計的。
我是一名大三的學生,我也正在學習C++這門語言,一年多的時間,學習的感覺真的很累的,希望能和你成為朋友!
好了,說了這麼多,可以參考一下,為自己做個學習計劃,要對自己有信心,最後祝你在學習編程的道路上走的更好更遠,祝你學有所成!!
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/238345.html