軟件技術(shù)概論與基礎(chǔ) 課件 第5-7章 軟件開發(fā)語言、數(shù)據(jù)庫技術(shù)、新信息技術(shù)_第1頁
軟件技術(shù)概論與基礎(chǔ) 課件 第5-7章 軟件開發(fā)語言、數(shù)據(jù)庫技術(shù)、新信息技術(shù)_第2頁
軟件技術(shù)概論與基礎(chǔ) 課件 第5-7章 軟件開發(fā)語言、數(shù)據(jù)庫技術(shù)、新信息技術(shù)_第3頁
軟件技術(shù)概論與基礎(chǔ) 課件 第5-7章 軟件開發(fā)語言、數(shù)據(jù)庫技術(shù)、新信息技術(shù)_第4頁
軟件技術(shù)概論與基礎(chǔ) 課件 第5-7章 軟件開發(fā)語言、數(shù)據(jù)庫技術(shù)、新信息技術(shù)_第5頁
已閱讀5頁,還剩216頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

軟件技術(shù)概論與基礎(chǔ)第5章軟件開發(fā)語言學(xué)習(xí)導(dǎo)入“工欲善其事,必先利其器”,在軟件開發(fā)中也是一樣。想要高效地進行開發(fā)軟件活動,那么一種趁手的軟件開發(fā)語言是必須的。現(xiàn)代編程語言林林總總,如何選擇一種適合的編程語言呢?想要做出正確的選擇,了解主流編程語言的特性是重要的一環(huán)。在了解了不同編程語言的特性和異同之后,才能知道一個軟件項目應(yīng)該選擇何種編程語言。本章內(nèi)容將介紹當(dāng)前流行的一些編程語言,以及這些編程語言的歷史和特點。思維導(dǎo)圖學(xué)習(xí)目標(biāo)了解常見的編程語言了解不同編程語言的歷史和特點了解常見的編程語言類型了解不同編程語言擅長的場景了解編程語言之間語法的差異重點難點學(xué)習(xí)重點主流編程語言每種語言的歷史、特點等學(xué)習(xí)難點編程開發(fā)環(huán)境的搭建相關(guān)知識5.1Java語言5.2C語言5.3C++語言5.4C#語言5.5Python語言5.6PHP語言5.7HTML、JavaScript、CSS語言5.1Java語言一5.1Java語言5.1.1Java語言簡介5.1.2Java語言的發(fā)展歷史5.1.3Java語言的特點5.1.4Java環(huán)境配置5.1.5Java代碼展示一5.1Java語言5.1.1Java語言簡介Java編程語言是一種通用編程語言,其初衷是作為C++語言的改進語言而被開發(fā)出來的,經(jīng)過多年的發(fā)展,Java語言已經(jīng)在在桌面應(yīng)用程序、智能移動設(shè)備應(yīng)用程序、企業(yè)級應(yīng)用、互聯(lián)網(wǎng)Web應(yīng)用、大數(shù)據(jù)應(yīng)用、分布式應(yīng)用、基于云技術(shù)的應(yīng)用等領(lǐng)域都成為主流的開發(fā)語言。一5.1Java語言5.1.2Java語言的發(fā)展歷史20世紀90年代,Sun(太陽計算機系統(tǒng))公司準(zhǔn)備開拓消費類電子產(chǎn)品市場,使消費類電子產(chǎn)品能夠為用戶提供更強的智能交互體驗。當(dāng)時的嵌入式單片機系統(tǒng)種類繁雜,由不同企業(yè)生產(chǎn)的不同嵌入式處理器之間有較大的差異,使用C語言或C++語言進行軟件開發(fā)存在通用性和可移植性的問題。一5.1Java語言5.1.2Java語言的發(fā)展歷史1996年1月,Sun公司發(fā)布了Java語言的第一個開發(fā)工具包JDK1.0。9月,約8.3萬個網(wǎng)頁應(yīng)用了Java技術(shù)來制作。10月,Sun公司發(fā)布了Java平臺的第一個即時(JIT)編譯器。1997年2月,JDK1.1發(fā)布,在隨后的3周時間里,達到了22萬次的下載量。4月,JavaOne會議召開,參與者逾一萬人,創(chuàng)當(dāng)時全球同類會議紀錄。一5.1Java語言5.1.2Java語言的發(fā)展歷史1999年6月,SUN公司發(fā)布了應(yīng)用于不同領(lǐng)域的3個版本:標(biāo)準(zhǔn)版(Java2StandardEdition,J2SE)應(yīng)用于桌面環(huán)境、企業(yè)版(Java2EnterpriseEdition,J2EE)應(yīng)用于基于Java的應(yīng)用服務(wù)器、微型版(Java2MicroEdition,J2ME)應(yīng)用于移動設(shè)備及有限資源的環(huán)境。一5.1Java語言5.1.2Java語言的發(fā)展歷史2000年后的最初幾年,發(fā)布了JDK1.3、JDK1.4,以及J2EE1.3、J2EE1.4,這幾年隨著手機的普及,支持J2ME的設(shè)備快速增多,到2003年,僅Nokia就宣稱出售了1億部支持Java的手機。一5.1Java語言5.1.2Java語言的發(fā)展歷史2004年9月,J2SE1.5發(fā)布,成為Java語言發(fā)展史上的又一里程碑。為了表示該版本的重要性,J2SE1.5更名為JavaSE5.0。這一版本為Java提供了大量新特性,其中包括泛型支持、基本類型的自動裝箱、改進的循環(huán)、枚舉類型、格式化I/O及可變參數(shù)。一5.1Java語言5.1.2Java語言的發(fā)展歷史2005年6月,JavaOne大會召開,Sun公司公開JavaSE6。此時,Java的各種版本已經(jīng)更名,以取消其中的數(shù)字“2”:J2ME更名為JavaME,J2SE更名為JavaSE,J2EE更名為JavaEE。一5.1Java語言5.1.2Java語言的發(fā)展歷史2006年11月,Java技術(shù)的發(fā)明者Sun公司宣布,將Java技術(shù)作為免費軟件對外發(fā)布,Sun公司正式發(fā)布有關(guān)Java平臺標(biāo)準(zhǔn)版的第一批源代碼,以及Java迷你版的可執(zhí)行源代碼。從2007年3月起,全世界所有的開發(fā)人員均可對Java源代碼進行修改。2009年,甲骨文公司宣布收購Sun公司。此后,甲骨文公司于2014年發(fā)布了Java8,于2017年發(fā)布了Java9等版本,到寫作本文的2022年3月,最新版本為Java18。一5.1Java語言5.1.3Java語言的特點Java程序的運行依賴于一個解釋程序執(zhí)行,即Java虛擬機(JavaVirtualMachine,JVM)。執(zhí)行Java程序的流程是:首先將Java源文件編譯成字節(jié)碼,字節(jié)碼類似于CPU執(zhí)行的指令,不過它不對應(yīng)于任何真實的CPU指令集;字節(jié)碼再經(jīng)由Java虛擬機(JVM)轉(zhuǎn)譯為特定平臺的指令,如x86的64位平臺的CPU指令。一5.1Java語言5.1.3Java語言的特點這樣的執(zhí)行方式固然會有一些性能上的損失,但是帶來的好處是Java程序不再受限于軟硬件平臺,能夠通過JVM去適配不同的運行環(huán)境。而且現(xiàn)在JVM支持JIT(JustInTimeCompile,即時編譯)技術(shù),能讓Java程序接近C/C++程序的運行效率,滿足需要高性能的應(yīng)用場景。一5.1Java語言5.1.3Java語言的特點Java語言依托于Java虛擬機,將內(nèi)存管理完全從軟件開發(fā)人員手中接管過來,讓開發(fā)人員根據(jù)需要使用內(nèi)存,而不必關(guān)心如何管理內(nèi)存,極大地減輕了軟件開發(fā)的難度,也減少了內(nèi)存管理出錯的問題。這一機制就是Java語言的垃圾回收(GarbageCollection,GC)機制。為了能夠高效地管理內(nèi)存,Java虛擬機采用多種不同的算法,如引用計算、標(biāo)記-清除算法、復(fù)制算法、標(biāo)記-整理算法等,為不同的內(nèi)存使用場景提供高效的管理方式。相對來說,使用GC機制的Java程序比C/C++程序占用更多的內(nèi)存。但是,Java程序減少了內(nèi)存出錯的情況,因為程序的穩(wěn)定性由Java語言和Java虛擬機提供保證,而非由開發(fā)人員的經(jīng)驗提供保證,這也是很多大型商業(yè)軟件使用Java語言開發(fā)的原因。一5.1Java語言5.1.4Java環(huán)境配置首先需要從甲骨文公司的官網(wǎng)上下載最新的JDK安裝包。當(dāng)前JDK的最新版本為JDK18。一5.1Java語言5.1.4Java環(huán)境配置在Windows11的任務(wù)欄搜索框中輸入“編輯系統(tǒng)環(huán)境變量”,按下Enter鍵后會自動打開“系統(tǒng)屬性”對話框,在“高級”選項卡中單擊右下角的“環(huán)境變量…”按鈕,會打開“環(huán)境變量”對話框。在“環(huán)境變量”對話框中有上下兩個“新建…”按鈕,可以根據(jù)需要選擇是創(chuàng)建用戶變量還是創(chuàng)建系統(tǒng)變量。一5.1Java語言5.1.4Java環(huán)境配置在選擇變量類型后,新建環(huán)境變量JAVA_HOME,變量值為JDK的安裝路徑。一5.1Java語言5.1.4Java環(huán)境配置需要使用命令創(chuàng)建對應(yīng)的JRE,如下圖所示。以管理員身份運行“CMD”(命令行窗口)。在命令行中執(zhí)行如下命令:cd“C:\programfiies\Java\jdk-18.0.1”.\bin\jlink--module-pathjmods--add-modulesjava.desktop--outputjre一5.1Java語言5.1.4Java環(huán)境配置命令執(zhí)行完成后,會在安裝目錄下創(chuàng)建jre目錄。配置環(huán)境變量JRE_HOME,如圖所示,變量值為剛才創(chuàng)建的JRE的路徑。一5.1Java語言5.1.4Java環(huán)境配置配置環(huán)境變量CLASSPATH,如圖所示,變量值為“%JRE_HOME%\lib”。一5.1Java語言5.1.4Java環(huán)境配置最后將JDK的bin目錄及JRE的bin目錄加入環(huán)境變量PATH中,如圖所示,值分別是“%JAVA_HOME%\bin”和“%JRE_HOME%\bin”。一5.1Java語言5.1.4Java環(huán)境配置從IntelliJIDEA官網(wǎng)上下載安裝程序,IntelliJIDEA官網(wǎng)的主頁如圖所示。一5.1Java語言5.1.4Java環(huán)境配置安裝完成后,啟動IntelliJIDEA,并創(chuàng)建新項目。設(shè)置項目名稱、項目保存路徑、語言、JDK版本等。在“Name”文本框中輸入“HelloWorld”,然后選擇項目保存路徑,其他選項保持默認設(shè)置即可,如圖所示。一5.1Java語言5.1.4Java環(huán)境配置創(chuàng)建項目后,會顯示IntelliJIDEA的主界面,如圖所示。一5.1Java語言5.1.5Java代碼展示下邊的代碼展示了使用Java語言編寫統(tǒng)計字符與數(shù)字的程序:一5.1Java語言importjava.util.Scanner;publicclassAlphabet{

publicstaticvoidmain(String[]args){ System.out.println("請在下面輸出字母或數(shù)字:"); Scanners=newScanner(System.in); Stringstr=s.nextLine(); char[]ch=str.toCharArray();

intshuzi=0,zimu=0;

for(inti=0;i<ch.length;i++){

if(ch[i]>='0'&&ch[i]<='9'){ shuzi++; }

elseif(ch[i]>='a'&&ch[i]<='z'||ch[i]>='A'&&ch[i]<='Z'){ zimu++; } } System.out.println("字母有:"+zimu+"個"); System.out.println("數(shù)字有:"+shuzi+"個"); }}一5.2C語言5.2C語言5.2.1C語言簡介5.2.2C語言的發(fā)展歷史5.2.3C語言的特點5.2.4C環(huán)境配置5.2.5C代碼展示一5.2C語言5.2.1C語言介紹C語言于1973年被正式發(fā)布,正趕上20世紀70、80年代計算機技術(shù)的飛速發(fā)展時期,得益于自身面向過程、靈活訪問硬件的特點,C語言迅速占領(lǐng)了系統(tǒng)軟件開發(fā)領(lǐng)域,并影響了此后數(shù)十年間產(chǎn)生的各種編程語言。C++、Java、C#、JavaScript、PHP、D、Go等編程語言都受到了C語言的影響,這一大類語法相近的語言被稱為“Clike”語言。一5.2C語言5.2.1C語言介紹現(xiàn)在,雖然C語言不再像以前一樣在軟件開發(fā)領(lǐng)域占據(jù)著統(tǒng)治地位,顯得不那么耀眼,但是在需要高性能軟件系統(tǒng)的領(lǐng)域,C語言仍然是首選的開發(fā)語言。而且在如今的軟件產(chǎn)業(yè)中,大量基礎(chǔ)軟件都是由C語言開發(fā)的,這些軟件在服務(wù)器、智能設(shè)備、電子設(shè)備上及我們不會注意到的幕后默默地運行著,支撐著現(xiàn)代信息社會的運轉(zhuǎn)??梢哉f,C語言是現(xiàn)代軟件產(chǎn)業(yè)的基石。一5.2C語言5.2.1C語言介紹(1)華為鴻蒙操作系統(tǒng)、UNIX操作系統(tǒng)、Linux操作系統(tǒng)、蘋果macOS操作系統(tǒng)等操作系統(tǒng),這些操作系統(tǒng)可以為各類計算機系統(tǒng)管理硬件資源、支持程序運行。操作系統(tǒng)作為特殊的軟件,需要極高的運行效率及管理計算機硬件的能力,而編寫操作系統(tǒng)就是C語言被設(shè)計的目的之一,因此,在操作系統(tǒng)開發(fā)領(lǐng)域,C語言占據(jù)著統(tǒng)治地位。(2)各種編程語言的編譯器、虛擬機、解釋器等都是由C語言開發(fā)的。例如,Python語言的解釋程序就是由C語言開發(fā)的,并且解釋程序的C語言源代碼全部開源,任何人都可以將Python解釋程序整合到自己的軟件中,同時,任何人都可以使用C語言為Python語言開發(fā)新的功能;Java語言的編譯器與Java虛擬機(JVM)都是由C語言開發(fā)的,同樣可以使用C語言擴展Java語言的功能;C語言自身的編譯器也是由C語言開發(fā)的,如GCC。一5.2C語言5.2.1C語言介紹(3)MySQL、Oracle等數(shù)據(jù)庫管理系統(tǒng)的核心部分是由C語言開發(fā)的。由于數(shù)據(jù)庫管理系統(tǒng)需要管理大量的數(shù)據(jù),同時對外提供高并發(fā)的服務(wù),對性能要求極高。(4)Subversion、Git等源代碼管理工具是由C語言開發(fā)的,大量軟件企業(yè)使用這些工具管理自身的源代碼。(5)在互聯(lián)網(wǎng)領(lǐng)域,使用C語言開發(fā)的Apache、Nginx等高性能Web服務(wù)器為全世界的網(wǎng)站提供服務(wù)。(6)在嵌入式開發(fā)領(lǐng)域,由于硬件資源的限制,要求程序不能有過多的消耗,最好能直接訪問各種硬件資源。因此,C語言成為嵌入式開發(fā)領(lǐng)域的首選語言,其他語言目前還無法撼動其地位。例如,各種小型電子設(shè)備的軟件、小型家用路由器、車載電子控制單元(ECU)等都是由C語言開發(fā)的。隨著物聯(lián)網(wǎng)、智能汽車等新興電子設(shè)備的興起,C語言在嵌入式領(lǐng)域?qū)l(fā)揮更大的作用。一5.2C語言5.2.1C語言介紹(7)C語言也可以使用GNOME/Gtk+開發(fā)桌面應(yīng)用程序,如Linux系統(tǒng)的Ubuntu發(fā)行版桌面環(huán)境就是C語言使用GNOME/Gtk+開發(fā)的,有著不輸于Windows、macOS系統(tǒng)的美觀界面。(8)機器學(xué)習(xí)領(lǐng)域的TensorFlow框架,其核心部分就是由C語言開發(fā)的,該框架在大數(shù)據(jù)、人工智能、自動駕駛等領(lǐng)域被大量使用。一5.2C語言5.2.2C語言的發(fā)展歷史1970年,肯尼斯·藍·湯普森和丹尼斯·里奇在貝爾實驗室參與UNIX操作系統(tǒng)的開發(fā)。隨著UNIX操作系統(tǒng)的成功,貝爾實驗室考慮將操作系統(tǒng)從PDP-7電腦移植到其他類型的電腦上,由于匯編語言不具備跨平臺的能力,因此UNIX開發(fā)團隊決定使用BCPL語言重寫操作系統(tǒng)。在開發(fā)過程中,肯尼斯·藍·湯普森發(fā)現(xiàn)BCPL語言不能很好地滿足操作系統(tǒng)的開發(fā),就在BCPL語言的基礎(chǔ)上設(shè)計了一種新的編程語言,這種語言被命名為“B語言”(取“BCPL”語言的第一個字母)。一5.2C語言5.2.2C語言的發(fā)展歷史后來,在使用B語言開發(fā)UNIX操作系統(tǒng)的過程中,發(fā)現(xiàn)還是無法達到他們的預(yù)期要求,于是丹尼斯·里奇在B語言的基礎(chǔ)上做了進一步的改進,設(shè)計出了具有豐富的數(shù)據(jù)類型并支持大量運算符的編程語言。為了支持在不同計算機系統(tǒng)中移植,新語言支持“一次編寫,隨處編譯”。1973年初,新語言的主體完成,改進后的語言較B語言有質(zhì)的飛躍,這種語言被命名為C語言(取“BCPL”的第二個字母)。隨后,湯普森和里奇使用C語言成功重新編寫了UNIX操作系統(tǒng)。一5.2C語言5.2.2C語言的發(fā)展歷史20世紀70、80年代,C語言被廣泛應(yīng)用,從大型主機到小型微機,也衍生了C語言的很多不同版本。1989年,ANSI發(fā)布了第一個完整的C語言標(biāo)準(zhǔn)——ANSIX3.159-1989,簡稱“C89”。1999年,在做了一些必要的修正和完善后,ISO發(fā)布了新的C語言標(biāo)準(zhǔn),命名為ISO/IEC9899:1999,簡稱“C99”。2011年12月8日,ISO又正式發(fā)布了新的標(biāo)準(zhǔn),稱為ISO/IEC9899:2011,簡稱為“C11”。一5.2C語言5.2.3C語言的特點由于產(chǎn)生的時代及明確的目標(biāo),讓C語言具有小巧、精悍的特點。第一點,C語言足夠高級。C語言不和任何特定的計算機硬件綁定,這讓它可以適應(yīng)不同的硬件。C語言有豐富的內(nèi)置數(shù)據(jù)類型,如整型(short、int、long)、浮點型(float、double)、字符型(char)等。除了這些內(nèi)置數(shù)據(jù)類型,還可以通過數(shù)組類型、枚舉類型(enum)、共用體類型(union)、結(jié)構(gòu)體類型(struct)來定義復(fù)合類型,使得C語言具有強大的數(shù)據(jù)描述能力。C語言中包含大量的運算符,遠多于同時代的其他編程語言。C語言語法靈活多變,支持不同類型數(shù)據(jù)之間的自動轉(zhuǎn)換。一5.2C語言5.2.3C語言的特點第二點,C語言足夠精簡。C語言的所有功能由32個關(guān)鍵字(C89標(biāo)準(zhǔn)32個、C99標(biāo)準(zhǔn)37個、C11標(biāo)準(zhǔn)44個)、34個運算符實現(xiàn),這讓C語言本身非常的簡練。另外,20世紀70年代C語言被發(fā)布時,面向?qū)ο蟮木幊趟枷脒€沒有大規(guī)模流行,C語言面向過程的編程思想足夠滿足當(dāng)時軟件項目的需求,這也讓C語言保持簡潔的語法及易學(xué)易用的特點。一5.2C語言5.2.3C語言的特點第三點,C語言足夠底層。為了適應(yīng)系統(tǒng)編程的需要,C語言保留指針的概念,讓程序員能夠自由地訪問內(nèi)存,而其他高級語言為了安全性和穩(wěn)定性往往會隱藏內(nèi)存操作。除了能夠進行內(nèi)存操作,C語言還能夠?qū)ψ兞康拇鎯︻愋瓦M行設(shè)置,如將變量設(shè)置為寄存器類型(register)變量,這樣就有更快的存取速度。在必要時,甚至可以在C語言的源代碼中嵌入?yún)R編語言,實現(xiàn)更高的執(zhí)行效率。一5.2C語言5.2.4C環(huán)境配置C語言的開發(fā)環(huán)境有很多,微軟的VisualStudio系列集成開發(fā)環(huán)境、JetBrains的CLion集成開發(fā)環(huán)境、Dev-C++集成開發(fā)環(huán)境、C-Free集成開發(fā)環(huán)境,嵌入式開發(fā)領(lǐng)域有KeilC51、AVRGCC、ADS等。這里以Windows平臺下的Dev-C++集成開發(fā)環(huán)境為例配置C語言開發(fā)環(huán)境。一5.2C語言5.2.4C環(huán)境配置Dev-C++原是由Bloodshed公司開發(fā)的,后被Embarcadero公司收購,更名為EmbarcaderoDev-C++,可以從Embarcadero官網(wǎng)或GitHub上下載,下載頁面如圖所示。一5.2C語言5.2.4C環(huán)境配置安裝完成后,桌面上會出現(xiàn)DevC++的圖標(biāo),雙擊DevC++的圖標(biāo)即可運行集成開發(fā)環(huán)境。在第一次啟動DevC++時會要求進行一些設(shè)置。一5.2C語言5.2.4C環(huán)境配置設(shè)置完成后就可以開始使用了。在菜單欄中選擇“文件”->“新建”->“項目”命令,新建C語言項目,如圖所示。一5.2C語言5.2.5C代碼展示右邊的代碼展示了如何使用C語言代碼找到水仙花數(shù)。水仙花數(shù)是一個三位數(shù)整數(shù),這個數(shù)中每一位上數(shù)三次方的和等于其自身。一5.2C語言#include<stdio.h>//計算num的三次方intcube(intnum){ returnnum*num*num;}//判斷num是否為水仙花數(shù)intisNarcissistic(intnum){ inth=num/100; //取得百分位上的數(shù) intt=(num/10)%10; //取得十分位上的數(shù) into=num%10; //取得個位上的數(shù) //3個數(shù)三次方的和是否等于自身 return(cube(h)+cube(t)+cube(o))==num;}

//在主函數(shù)中利用循環(huán)尋找水仙花數(shù)intmain(intargc,char*argv[]){ //利用循環(huán)從100開始遍歷所有的三位數(shù) intnum; for(num=100;num<1000;++num){ //利用isNarcissistic函數(shù)判斷num是否為水仙花數(shù) if(isNarcissistic(num)){ //如果num是水仙花數(shù),則將num打印出來 printf("%d**3+%d**3+%d**3=%d\n",num/100,num/10%10,num%10,num); } } return0;}一5.3C++語言5.3C++語言5.3.1C++語言簡介5.3.2C++語言的發(fā)展歷史5.3.3C++語言的特點5.3.4C++環(huán)境配置5.3.5C++代碼展示一5.3C++語言5.3.1C++語言介紹20世紀70年代C語言被發(fā)布后,編程思想繼續(xù)在發(fā)展,由結(jié)構(gòu)化編程發(fā)展到面向?qū)ο缶幊?。尤其是?0世紀80年代“個人計算機”概念興起,為了能讓非專業(yè)人員方便地使用計算機,需要簡化計算機的操作方式,而原有的命令方式就顯得復(fù)雜難用了,直觀的圖形化用戶界面成為新的趨勢。圖形化界面軟件的規(guī)模和復(fù)雜性相較于以前的命令行程序大大增加,隨著軟件項目變得越來越大,C語言這類面向過程的開發(fā)語言在新形勢下就顯得力不從心了。為了解決這個問題,面向?qū)ο缶幊叹土餍衅饋?,更能適應(yīng)大型軟件項目中復(fù)雜的業(yè)務(wù)邏輯。一5.3C++語言5.3.1C++語言介紹C++語言適合開發(fā)對運行效率敏感、功能復(fù)雜的應(yīng)用程序。由C++語言開發(fā)或核心功能由C++語言開發(fā)并被大量使用的軟件列舉如下。(1)辦公類軟件,如金山公司的WPS系列軟件、微軟公司的Office系列軟件、OpenOffice系列軟件等。辦公類軟件功能復(fù)雜,對運行效率要求較高,這類軟件多數(shù)是使用C++語言開發(fā)的。(2)互聯(lián)網(wǎng)瀏覽器,如谷歌公司的Chrome、Mozilla基金會的Firefox、微軟公司的Edge等。隨著互聯(lián)網(wǎng)的發(fā)展,為了能展示越來越豐富的互聯(lián)網(wǎng)內(nèi)容,瀏覽器的功能變得越來越強大,對瀏覽器運行效率的要求也越來越高,此類應(yīng)用主要使用C++語言開發(fā)。一5.3C++語言5.3.1C++語言介紹(3)電子娛樂游戲類軟件,如雅基軟件的Cocos2d-x游戲引擎、EpicGames公司的游戲引擎——虛幻引擎4等。游戲引擎是用于開發(fā)游戲的工具集,Cocos2d-x主要應(yīng)用于智能設(shè)備上,虛幻引擎4主要用于開發(fā)一些商業(yè)游戲。有一些游戲直接使用C++語言作為開發(fā)語言,如《英雄聯(lián)盟》、《星際爭霸2》等。在網(wǎng)絡(luò)游戲中,也常用C++語言開發(fā)游戲服務(wù)器,用于處理游戲邏輯。(4)計算機輔助設(shè)計類軟件,如AutoCAD、SolidWorks、UG、SolidEdge等,這類軟件也主要由C++語言開發(fā)。一5.3C++語言5.3.1C++語言介紹(5)阿里巴巴公司的國產(chǎn)企業(yè)級分布式關(guān)系數(shù)據(jù)庫OceanBase是使用C++語言開發(fā)的,微軟SQLServer、IBMDB2等數(shù)據(jù)庫也是使用C++語言開發(fā)的。(6)微軟的集成開發(fā)環(huán)境VisualStudio(VS)使用C++語言作為主要開發(fā)語言。VS是當(dāng)前功能非常完善、運行效率非常高的集成開發(fā)環(huán)境、是Windows操作系統(tǒng)上主要的開發(fā)環(huán)境,支持C、C++、C#、python、HTML+CSS+JavaScript、F#等編程語言進行軟件開發(fā)。一5.3C++語言5.3.2C++語言的發(fā)展歷史1979年,本賈尼·斯特勞斯特盧普正在AT&T貝爾實驗室從事研究工作。當(dāng)時他接觸到一種名為Simula

67的面向?qū)ο缶幊陶Z言。本賈尼·斯特勞斯特盧普發(fā)現(xiàn)面向?qū)ο笏枷朐谲浖_發(fā)上非常有用,但是因為Simula

67語言的執(zhí)行效率低,其實用性不強。不過AT&T貝爾實驗室正好有一款小巧、精悍的編程語言——C語言。本賈尼·斯特勞斯特盧普決定將這兩種語言的優(yōu)點結(jié)合在一起,最終推出了帶類的C語言(C

with

classes)。

隨著不斷地改進,帶類的C語言與C語言之間的差距越來越大,最終于1983年,該語言被正式命名為“C++”,成為一種新的編程語言。此時,C++語言與C語言就逐漸不再兼容,C++語言中類型檢測變得嚴格,C語言代碼的某些寫法在C++語言代碼中被視為語法錯誤。一5.3C++語言5.3.2C++語言的發(fā)展歷史1985年,本賈尼·斯特勞斯特盧普的C++參考手冊《TheC++ProgrammingLanguage》出版,成為C++語言技術(shù)規(guī)范的重要參考。同年,C++語言的商業(yè)版本問世。1990年,《TheAnnotatedC++ReferenceManual》發(fā)布,同年,Borland公司的商業(yè)版TurboC++編譯器問世。TurboC++附帶了大量函數(shù)庫,這一舉措對使用C++編程語言進行軟件開發(fā)產(chǎn)生了極為深遠的影響。一5.3C++語言5.3.2C++語言的發(fā)展歷史1993年,RTTI(運行期類型識別)和namespace(名字空間)被添加到C++語言中。1998年,C++標(biāo)準(zhǔn)委員會發(fā)布了C++語言的第一個國際標(biāo)準(zhǔn)——ISO/IEC14882:1998,該標(biāo)準(zhǔn)即為C++98標(biāo)準(zhǔn),這個標(biāo)準(zhǔn)將標(biāo)準(zhǔn)模板庫(StandardTemplateLibrary,STL)也納入C++語言標(biāo)準(zhǔn)中。一5.3C++語言5.3.2C++語言的發(fā)展歷史2011年,推出C++11標(biāo)準(zhǔn),一些新的語言特性被添加到C++語言中,包括正則表達式、完備的隨機數(shù)生成函數(shù)庫、新的時間相關(guān)函數(shù)、原子操作支持、標(biāo)準(zhǔn)線程庫、新的for語法、auto關(guān)鍵字、新的容器類、更好的union支持、數(shù)組初始化列表,以及變參模板等。此后,在2014年和2017年又分別推出了C++14標(biāo)準(zhǔn)與C++17標(biāo)準(zhǔn),這兩個標(biāo)準(zhǔn)在C++11標(biāo)準(zhǔn)的基礎(chǔ)上進行了較少的調(diào)整。2020年,發(fā)布了C++20標(biāo)準(zhǔn),C++20標(biāo)準(zhǔn)有了較大的變化,為C++語言添加了協(xié)程、模塊、新的操作符與關(guān)鍵字、原子智能指針、同步庫、概念與約束、范圍、指定初始化等新特性。一5.3C++語言5.3.3C++語言的特點C++語言最初被設(shè)計為C語言的超集,希望在保留C語言的所有優(yōu)點的前提下又有更強大的功能,但是C++語言的目標(biāo)和C語言的目標(biāo)終究是不一樣的,最終這兩種語言走向了兩個截然不同的方向。C++語言的第一個特點就是復(fù)雜。C++語言自發(fā)布以來,經(jīng)過數(shù)十年的發(fā)展與改進,功能變得越來越強大,但是語法也變得越來越復(fù)雜,造成這一現(xiàn)象的原因是C++語言承載了多種不同的編程思想,面向過程、面向?qū)ο蟆⒑瘮?shù)式編程、泛型編程等,很多評論指出“C++不是一門編程語言,而是多門編程語言”。不像C語言精簡靈活的語法,C++語言為了在提供更多功能的同時保持靈活性,在語法中不可避免地引入了很多非常細節(jié)的語法,讓學(xué)習(xí)、使用C++語言變得困難。一5.3C++語言5.3.3C++語言的特點與語法復(fù)雜對應(yīng)的是C++語言的強大。C++語言的強大體現(xiàn)在兩個方面:高效率和通用性。C++語言能從底層系統(tǒng)的開發(fā)覆蓋到應(yīng)用層軟件的開發(fā),從操作系統(tǒng)、桌面程序的開發(fā)工作到大型分布式系統(tǒng)的開發(fā)工作,C++語言都能勝任,有時甚至是唯一選擇??梢哉f,C++語言是一種能覆蓋所有開發(fā)領(lǐng)域的通用開發(fā)語言。不過想要發(fā)揮好C++語言的優(yōu)勢并不容易,由于學(xué)習(xí)、使用C++語言的成本較高,在一些用戶需求快速變化的領(lǐng)域,如互聯(lián)網(wǎng)領(lǐng)域、企業(yè)級應(yīng)用領(lǐng)域、科研領(lǐng)域等,C++語言雖然可以開發(fā),但是并不擅長,在這些領(lǐng)域活躍的就是Java、C#、Python等編程語言了。一5.3C++語言5.3.4C++環(huán)境配置C++語言的開發(fā)工具很多,而且和C語言的開發(fā)工具有很大的重疊。這里以微軟Windows平臺下的VisualStudio為例配置C++語言開發(fā)環(huán)境。一5.3C++語言5.3.4C++環(huán)境配置Windows平臺上VisualStudio有3個版本:Community、Professional、Enterprise,分別是免費的社區(qū)版、專業(yè)版、企業(yè)版,如圖所示。社區(qū)版包含了所有常用的基礎(chǔ)功能,如果以學(xué)習(xí)為目的,則選擇社區(qū)版即可。一5.3C++語言5.3.4C++環(huán)境配置啟動安裝后,需要選擇安裝的內(nèi)容,如圖所示。這里選擇“使用C++的桌面開發(fā)”,也可以根據(jù)需要選擇其他內(nèi)容,如需要使用C#語言,則可以選擇與.Net相關(guān)的內(nèi)容。一5.3C++語言5.3.4C++環(huán)境配置安裝完成后,啟動VisualStudio2022。在啟動界面中單擊“創(chuàng)建新項目”按鈕,在彈出的“創(chuàng)建新項目”界面中語言選擇“C++”,平臺選擇“Windows”,項目類型選擇“控制臺”,項目模板選擇“控制臺應(yīng)用”,如圖所示。一5.3C++語言5.3.5C++代碼展示右邊的代碼展示了如何使用C++語言代碼對一百萬個數(shù)進行排序。排序的方法是快速排序算法。快速排序算法的思路是:選取一個關(guān)鍵數(shù),用這個關(guān)鍵數(shù)將待排序的數(shù)據(jù)劃分成兩個區(qū)域,一個是比關(guān)鍵數(shù)小的區(qū)域,一個是比關(guān)鍵數(shù)大的區(qū)域,然后在這兩個區(qū)域中反復(fù)進行上述操作,直到整個區(qū)域都有序為止。代碼如下:一5.3C++語言#include<iostream>#include<random>constintMAXLEN=1024*1024;//定義數(shù)組的最大長度unsignedintdata[MAXLEN]={0};//定義數(shù)組typedefunsignedint(&dataArray)[MAXLEN];//定義部分排序函數(shù),將數(shù)據(jù)劃分為大于關(guān)鍵數(shù)的部分和小于關(guān)鍵數(shù)的部分,并返回排序后關(guān)鍵數(shù)的位置intsortParttion(dataArrayd,intbegin,intend,intkeyPos){std::swap(d[begin],d[keyPos]);autol=begin;auto&keyValue=d[begin];for(autoindex=begin+1;index<end;index++){if(d[index]<keyValue){l++;std::swap(d[l],d[index]);}}std::swap(d[begin],d[l]);returnl;}//定義快速排序函數(shù)voidquickSort(dataArrayd,intbegin,intend){if(begin>=end-1)return;

autokeyPos=begin;keyPos=sortParttion(d,begin,end,keyPos);quickSort(d,begin,keyPos);quickSort(d,keyPos+1,end);}intmain(){std::default_random_enginee;for(autoi=0;i<MAXLEN;i++)data[i]=e();quickSort(data,0,MAXLEN);}一5.4C#語言5.4C#語言5.4.1C#語言簡介5.4.2C#語言的發(fā)展歷史5.4.3C#語言的特點5.4.4C#環(huán)境配置5.4.5C#代碼展示(略)一5.4C#語言5.4.1C#語言介紹C#語言是微軟公司發(fā)布的一種由C++語言衍生出來的面向?qū)ο蟮木幊陶Z言,該語言是運行于.NET平臺之上的高級程序設(shè)計語言之一。因為這種繼承關(guān)系,C#語言與C/C++語言具有極大的相似性,熟悉類似語言的開發(fā)者可以很快地轉(zhuǎn)向C#語言。C#語言與Java語言有著相近的定位,并且都是大量借鑒了C++語言的語法,以至于它們看起來非常相似,如兩種語言都包括了諸如純面向?qū)ο?、單一繼承、接口等。此外,C#程序的運行方式與Java程序的運行方式一樣,由一個被稱為公共語言運行時(CommonLanguageRuntime,CLR)的虛擬機執(zhí)行。一5.4C#語言5.4.1C#語言介紹由C#語言開發(fā)并被大量使用的軟件列舉如下。(1)微軟開發(fā)者網(wǎng)絡(luò)(MicrosoftDeveloperNetwork,MSDN)是微軟官方關(guān)于Windows平臺的開發(fā)者社區(qū),這個站點上包含了微軟全部的技術(shù)文檔,以及大量開發(fā)者在其上討論的各類開發(fā)問題。MSDN的后臺Web服務(wù)器端是由C#語言開發(fā)的,類似的還有StackOverflow等。(2)微軟SQLServer數(shù)據(jù)庫產(chǎn)品中的大部分程序是由C#語言開發(fā)的,如SQLServerManagementStudio等。(3)微軟基于云計算的操作系統(tǒng)MicrosoftAzure主要是由C#語言開發(fā)的。一5.4C#語言5.4.1C#語言介紹(4)微軟XBOX游戲機中的操作界面主要是使用C#語言開發(fā)的。(5)跨平臺游戲引擎Unity3D使用C#語言作為開發(fā)語言,配合使用開源.Net平臺“mono”實現(xiàn)了跨平臺游戲開發(fā)能力,可以開發(fā)Windows平臺、Android平臺、微軟Xbox、索尼PlayStation、任天堂Switch等平臺游戲。一5.4C#語言5.4.2C#語言的發(fā)展歷史2000年,由微軟公司的安德斯·海爾斯伯格(AndersHejlsberg)主持開發(fā)的C#語言發(fā)布,它是一種面向?qū)ο蟮木幊陶Z言,其借鑒了C++語言和Java語言的語法特點。2001年,微軟發(fā)布第一個.NETFramework。2003年,.NETFramework的版本升級到v1.1,完善了桌面應(yīng)用開發(fā)和Web開發(fā)。2006年,微軟相繼推出了2.0和3.0版本的.NETFramework。在3.0版本中,微軟推出了WPC、WCF、WF等框架。隨著3.0版本的問世,C#語言進入發(fā)展的快車道,微軟借此占領(lǐng)了開發(fā)市場半壁江山。一5.4C#語言5.4.2C#語言的發(fā)展歷史2009年,微軟發(fā)布Web框架ASP.NETMVC1.0并完全開源,并在隨后幾年不斷完善,成為.Net平臺主要的Web開發(fā)框架。2016年,微軟開啟跨平臺產(chǎn)品線.NETCore,并完全開源。同年,微軟正式推出.NETCore1.0,在Web領(lǐng)域推出了跨平臺Web框架ASP.NETCore,以及開發(fā)Win10應(yīng)用的UWP框架。2017年,.NETCore2.0發(fā)布,傳統(tǒng)的.NETFramework的版本升級到4.7。2019年,.NETCore3.0發(fā)布,.NETFramework的版本升級到4.8,這也是.NETFramework的最后一個版本。2020年,微軟關(guān)閉了.NETFramework產(chǎn)品線,并將.NETCore產(chǎn)品線更名為.NET。為了和原來的.NETFramework4.x進行區(qū)分,新.NET產(chǎn)品線直接從版本號5開始,即.NET5.0。一5.4C#語言5.4.3C#語言的特點C#語言被設(shè)計為一種安全的、穩(wěn)定的、簡單的面向?qū)ο缶幊陶Z言。在設(shè)計時,C#語言借鑒了C++語言與Java語言的特點,但是去掉了其中一些復(fù)雜的語法特性,使得使用C#語言能夠高效地編寫程序。C#程序的運行方式類似于Java程序的運行方式,先將C#程序的源代碼編譯為被稱為中間公共語言(CommonIntermediateLanguage,CIL)的代碼,再被稱為CLR的虛擬機執(zhí)行。CLR內(nèi)建垃圾收集器,當(dāng)對象的生命周期結(jié)束時,垃圾收集器負責(zé)收回不被使用的對象占用的內(nèi)存空間。在使用C#語言時,不必考慮復(fù)雜的內(nèi)存管理,也不必擔(dān)心指針操作帶來的危險,這讓使用C#語言變得安全、簡單。一5.4C#語言5.4.3C#語言的特點C#語言是完全的面向?qū)ο缶幊陶Z言,支持面向?qū)ο笳Z言的基本特征,即封裝、繼承、多態(tài)。同時,C#語言簡化了設(shè)計,如C#語言不支持多重繼承,減少了開發(fā)時的復(fù)雜度,讓程序結(jié)構(gòu)變得簡潔明了,也降低了使用C#語言的成本。一5.4C#語言5.4.4C#環(huán)境配置C#語言主要的開發(fā)環(huán)境使用的是VisualStudio,其安裝過程在介紹C++語言時已經(jīng)展示。這里簡單介紹一下安裝過程中的區(qū)別。在安裝VisualStudio的過程中,在選擇需要安裝的內(nèi)容時將“ASP.NET和Web開發(fā)”、“使用.NET的移動開發(fā)”和“.NET桌面開發(fā)”內(nèi)容選上,如圖所示。一5.4C#語言5.4.4C#環(huán)境配置安裝完成啟動VisualStudio2022。在啟動界面中單擊“創(chuàng)建新項目”按鈕,在彈出的“創(chuàng)建新項目”界面中,語言選擇“C#”,平臺選擇“Windows”,項目類型選擇“控制臺”,項目模板選擇“控制臺應(yīng)用(.NETFramework)”,如圖所示。。一5.4C#語言5.3.4C#環(huán)境配置安裝完成后,啟動VisualStudio2022。在啟動界面中單擊“創(chuàng)建新項目”按鈕,在彈出的“創(chuàng)建新項目”界面中語言選擇“C++”,平臺選擇“Windows”,項目類型選擇“控制臺”,項目模板選擇“控制臺應(yīng)用”,如圖所示。一5.4C#語言一5.5Python語言5.5Python語言5.5.1Python語言簡介5.5.2Python語言的發(fā)展歷史5.5.3Python語言的特點5.5.4Python環(huán)境配置5.5.5Python代碼展示一5.5Python語言5.5.1Python語言介紹吉多·范羅蘇姆設(shè)計Python編程語言的初衷是替代名為“ABC”的編程語言,ABC語言是面向教育的強交互語言,不過最終ABC語言并未取得成功。作為ABC語言開發(fā)者之一的吉多·范羅蘇姆,在分析了ABC語言失敗的原因后,開發(fā)出了語法簡練的Python編程語言。Python語言不是一門強調(diào)運行效率的編程語言,所以如果開發(fā)需要較高運行效率的程序,那么不要選擇Python語言。但是,Python語言卻是有著非常出眾開發(fā)效率的編程語言,同樣一件事情,在其他編程語言中需要大量的代碼,而在Python中則可能只需要寥寥幾行代碼就能完成。之所以Python語言有如此高的開發(fā)效率,是因為Python語言具有種類豐富的開發(fā)庫,這些不同功能的庫往往又是由其他語言開發(fā)的,如C語言、C++語言等。一5.5Python語言5.5.1Python語言介紹自發(fā)布以來,Python語言受到了軟件開發(fā)社區(qū)的廣泛支持,各類開發(fā)團體如程序員、開源社區(qū)、大型軟件企業(yè)等,為Python語言貢獻了數(shù)量龐大的軟件開發(fā)庫?,F(xiàn)在,Python語言已經(jīng)在如下領(lǐng)域建立了龐大的用戶基礎(chǔ)。(1)互聯(lián)網(wǎng)Web開發(fā)領(lǐng)域:由于互聯(lián)網(wǎng)應(yīng)用需求易變的特點,Python語言作為一種動態(tài)類型語言,在快速響應(yīng)需求變化上有先天的優(yōu)勢,尤其以開發(fā)迅速著稱,配合Python語言豐富的Web服務(wù)端框架,如Flask、Django、Tornado等,能夠快速部署Web應(yīng)用。(2)科學(xué)計算和統(tǒng)計領(lǐng)域:Python語言的NumPy、Pandas、SciPy、Statsmodel等庫在科學(xué)計算和統(tǒng)計領(lǐng)域應(yīng)用廣泛,配合Matplotlib繪圖庫使用,是研究領(lǐng)域常見的使用方式。一5.5Python語言5.5.1Python語言介紹(4)網(wǎng)絡(luò)爬蟲領(lǐng)域:Python語言配合使用Requests、lxml、Scrapy、Selenium等庫,能夠快速開發(fā)各類網(wǎng)絡(luò)爬蟲。(5)圖形用戶界面(GraphicalUserInterface,GUI)領(lǐng)域:使用PyQt、PyGTK、wxPython、Tkinter等GUI庫,能夠開發(fā)桌面應(yīng)用程序,如GIMP——一款Photoshop的開源替代品。由于Python語言的解釋器是開源軟件,因此Python解釋器也能非常方便地被集成到使用其他語言開發(fā)的程序中,尤其是使用C語言、C++語言開發(fā)的程序,通過集成Python解釋器,能讓宿主軟件獲得易于擴展、易于修改的特點。一5.5Python語言5.5.2Python語言的發(fā)展歷史1991年,第一個Python語言解釋器誕生。它是用C語言實現(xiàn)的,并能夠調(diào)用C庫。從一誕生,Python語言已經(jīng)具有了類、函數(shù)、異常處理、包括表和詞典在內(nèi)的核心數(shù)據(jù)類型,以及以模塊(module)為基礎(chǔ)的拓展系統(tǒng)。1995年,吉多·范羅蘇姆在弗吉尼亞州的國家創(chuàng)新研究公司(CNRI)繼續(xù)他在Python上的工作,并在那里發(fā)布了該軟件的多個版本。2001年,Python軟件基金會(PSF)成立,這是一個專為擁有Python相關(guān)知識產(chǎn)權(quán)而創(chuàng)建的非營利組織。一5.5Python語言5.5.2Python語言的發(fā)展歷史2000年,Python2發(fā)布,目前穩(wěn)定版本是Python2.7。同年發(fā)布Jython,Jython是使用Java語言編寫的Python實現(xiàn)。2006年,IronPython發(fā)布,IronPython是一個在.Net平臺運行Python程序的項目。2007年,PyPy發(fā)布,PyPy是用Python語言實現(xiàn)的Python解釋器。2008年,Python3發(fā)布,Python3不完全兼容Python2,建議新軟件項目使用Python3。2021年,Python語言超過C語言,成為TIOBE排行榜上世界編程語言排行第一的語言。一5.5Python語言5.5.3Python語言的特點Python語言是基于解釋器運行的編程語言,這讓Python語言有極強的可移植性。再加上Python解釋器是開源軟件,這也讓更多的平臺能夠運行Python程序。另外,使用C/++語言開發(fā)的軟件能將Python解釋器集成到程序中,這讓集成了Python解釋器的軟件也能通過Python語言提高擴展性和靈活性。Python解釋器還可以通過其他編程語言來擴展Python語言的功能,如使用C、C++語言為Python開發(fā)新的功能庫。Python種類豐富的各類庫中很多庫是由其他語言開發(fā)的,如科學(xué)計算庫NumPy就是使用C語言開發(fā)的。一5.5Python語言5.5.3Python語言的特點Python語言的設(shè)計原則是“優(yōu)雅”、“明確”和“簡單”。為了貫徹這些原則,設(shè)計者希望Python語言能“用一種方法,最好是只有一種方法來做一件事”,從而讓Python語言的使用者能聚焦于想要做的功能,而不是過多地考慮如何去做這個功能。這讓Python語言具有語法簡潔、易于學(xué)習(xí)、易于閱讀、易于使用的特點。Python語言有相對較少的關(guān)鍵字和簡潔清晰的語法結(jié)構(gòu),學(xué)習(xí)起來更加簡單。標(biāo)志性的強制代碼塊縮進,讓代碼結(jié)構(gòu)更為清晰美觀,便于代碼的閱讀和維護。Python語言作為動態(tài)類型語言,在編程時不用糾結(jié)于語法細節(jié)(如考慮數(shù)量的類型等),而是專注于數(shù)據(jù)如何處理、如何實現(xiàn)功能。當(dāng)然這也帶來了一些問題,在面對大型軟件項目時,類型安全將會成為問題,如何協(xié)調(diào)不同模塊之間的數(shù)據(jù)交互,會考驗開發(fā)者的設(shè)計與項目管理能力。一5.5Python語言5.5.4Python環(huán)境配置Python程序的運行需要運行環(huán)境支持,這里介紹Python運行環(huán)境的安裝與配置。首先從Python的官網(wǎng)上下載官方發(fā)行版,打開官網(wǎng)后頁面中會顯示當(dāng)前最新的Python版本,如圖所示。一5.5Python語言5.5.4Python環(huán)境配置啟動安裝程序后,勾選界面下部的“AddPython3.10toPATH”復(fù)選框,如果不改變路徑,則可以直接選擇“InstallNow”,也可以選擇“Customizeinstallation”改變默認的安裝配置,如圖所示。一5.5Python語言5.5.4Python環(huán)境配置安裝完成后,可以在“開始”菜單中找到Python程序。其中,IDLE是Python運行環(huán)境自帶的圖形化交互界面,如圖所示。一5.5Python語言5.5.4Python環(huán)境配置安裝運行環(huán)境后,還需要配置開發(fā)環(huán)境。能用于開發(fā)Python程序的工具有很多,如微軟的VisualStudio集成開發(fā)環(huán)境、VisualStudioCode編輯器、SublimeText編輯器、JetBrains的PyCharm集成開發(fā)環(huán)境等。一5.5Python語言5.5.4Python環(huán)境配置安裝完成后,,啟動PyCharm開發(fā)環(huán)境。一5.5Python語言一5.6PHP語言5.6PHP語言5.6.1PHP語言簡介5.6.2PHP語言的發(fā)展歷史5.6.3PHP語言的特點5.6.4PHP環(huán)境配置5.6.5PHP代碼展示一5.6PHP語言5.6.1PHP語言介紹PHP(超文本預(yù)處理器,PHP:HypertextPreprocessor)語言是開發(fā)Web服務(wù)器端程序的編程語言,最初是由拉斯馬斯·勒德爾夫(RasmusLerdorf)為自己的網(wǎng)站創(chuàng)建的一個簡單腳本語言,后來發(fā)展成為流行的Web服務(wù)器端編程語言。PHP語言是一種免費開源、跨平臺、被廣泛使用的編程語言。一5.6PHP語言5.6.1PHP語言介紹PHP語言是一種Web服務(wù)器端面向?qū)ο蟮木幊陶Z言,它結(jié)合了C語言、Java語言和Perl語言的特點,在互聯(lián)網(wǎng)領(lǐng)域被廣泛使用。PHP程序可以比CGI或Perl程序更快速地執(zhí)行動態(tài)網(wǎng)頁。不同于其他的編程語言,PHP語言是將PHP程序嵌入HTML文檔中去執(zhí)行,執(zhí)行效率比完全由其他語言生成HTML標(biāo)記的方式快許多。PHP程序還可以被編譯成中間代碼,編譯后的PHP程序可以達到加密和優(yōu)化代碼運行的目的,這樣執(zhí)行起來更快。其他用于開發(fā)Web服務(wù)器端程序的編程語言所具有的功能,PHP語言都能實現(xiàn)。PHP語言具有非常強大的功能,能夠滿足Web服務(wù)器端程序的開發(fā),而且支持幾乎所有流行的數(shù)據(jù)庫及操作系統(tǒng)。一5.6PHP語言5.6.2PHP語言的發(fā)展歷史PHP語言是在1994年由拉斯馬斯·勒德爾夫創(chuàng)建的,最初只是一個簡單的用Perl語言編寫的統(tǒng)計他自己網(wǎng)站訪問者數(shù)量的程序,取名為“PersonalHomePageTools”,后來用C語言重新編寫,同時可以訪問數(shù)據(jù)庫,可以讓用戶開發(fā)簡單的動態(tài)Web程序。1997年,首個發(fā)行版PHP2發(fā)布,功能開始逐漸完備,用戶量增多。1998年,AndiGutmans和ZeevSuraski在為一所大學(xué)的項目中開發(fā)電子商務(wù)程序時發(fā)現(xiàn)PHP2的功能明顯不足,于是他們重寫了代碼,發(fā)布了PHP3。一5.6PHP語言5.6.2PHP語言的發(fā)展歷史2000年,PHP4發(fā)布,包含新增的Zend引擎、支持更多的Web服務(wù)器、HTTPSessions支持、輸出緩沖、更安全的處理用戶輸入的方法、一些新的語言結(jié)構(gòu)等功能。2004年,PHP5發(fā)布,Zend引擎升級到Zend2,引入了新的對象模型和大量新功能。2015年,PHP7發(fā)布(PHP6被取消,未發(fā)布),Zend升級到Zend3,性能提升并在Windows平臺上支持64-bit整數(shù)、統(tǒng)一的變量語法、基于抽象語法樹編譯過程。2020年,PHP8發(fā)布,新版本對各種變量判斷和運算采用更嚴格的驗證判斷模式,這點有利于后續(xù)版本對JIT的性能優(yōu)化。一5.6PHP語言5.6.3PHP語言的特點PHP語言作為Web服務(wù)器端編程語言,有一大優(yōu)勢就是開源免費。這里的“開源免費”不僅僅是指PHP語言自身,還包括一整套開發(fā)部署工具鏈?;ヂ?lián)網(wǎng)上常見的PHP開發(fā)組合包括Linux、Apache、MySQL、PHP,這四款工具簡稱LAMP,并且全部是開源免費的,這一組合可以節(jié)約大量的授權(quán)費用。而且這四款工具都有強大的開發(fā)者社區(qū)作為支撐,持續(xù)的迭代為LAMP提供新功能及維護服務(wù)。一5.6PHP語言5.6.3PHP語言的特點PHP語言的核心包含了數(shù)量超過1000的內(nèi)置函數(shù),功能全面,開箱即用,程序代碼簡潔,開發(fā)快捷便利。PHP數(shù)組支持動態(tài)擴容,既支持以數(shù)字作為鍵名的索引數(shù)組,也支持以字符串或字符串與數(shù)字混合作為鍵名的關(guān)聯(lián)數(shù)組,能大幅度提高開發(fā)效率。PHP是一門弱類型語言,程序編譯通過率高,相對于其他強類型語言能夠更快地開發(fā)程序。此外,PHP語言解釋器由C語言開發(fā),有非常高的執(zhí)行效率,還可以使用C語言開發(fā)高性能的擴展組件。PHP天然熱部署,在php-fpm運行模式下覆蓋代碼文件即完成熱部署,無須復(fù)雜的配置和重啟Web服務(wù)的過程。一5.6PHP語言5.6.3PHP語言的特點隨著PHP語言版本的迭代,PHP程序的運行效能顯著提高,尤其是在PHP8引入JIT技術(shù)后,性能進一步提升。并且每次版本升級不只是帶來運行性能的提升,還會為PHP語言帶來新的便捷語法,進一步提升開發(fā)效率。為了保證持續(xù)的更新,版本迭代保持每5年發(fā)布一個大版本,每個月發(fā)布兩個小版本的頻率進行。每個平臺均有對應(yīng)的PHP解釋器版本,使用PHP語言開發(fā)的程序可以不經(jīng)修改就運行在Windows、Linux、UNIX等多個操作系統(tǒng)上。PHP語言中所有的變量都是頁面級的,無論是全局變量還是類的靜態(tài)成員,都會在頁面執(zhí)行完畢后被清空,這樣降低了程序開發(fā)的難度,也能減少內(nèi)存的占用,特別適用于中小型系統(tǒng)的開發(fā)。一5.6PHP語言5.6.4PHP環(huán)境配置使用PHP語言開發(fā)程序需要配置開發(fā)環(huán)境,這里建議使用XAMPP作為學(xué)習(xí)PHP語言的開發(fā)環(huán)境,事實上,XAMPP也可以作為開發(fā)PHP程序的實際工作環(huán)境。XAMPP包含Apache、MySQL、PHP、Perl這幾款工具。Apache作為Web服務(wù)器,MySQL作為數(shù)據(jù)庫,還包含PHP語言、Perl語言的運行環(huán)境。首先從XAMPP的官網(wǎng)上下載官方發(fā)行版,打開官網(wǎng)頁面后,根據(jù)平臺選擇下載安裝程序。這里以Windows平臺為例展示安裝過程,如圖所示。一5.6PHP語言5.6.4PHP環(huán)境配置開發(fā)工具可以使用SublimeText編輯器。可以從SublimeText官網(wǎng)上下載安裝程序,官網(wǎng)頁面如圖所示。一5.6PHP語言5.6.5PHP代碼展示這里展示使用PHP語言開發(fā)一個簡易聊天室的服務(wù)器端程序。創(chuàng)建兩個PHP文件,分別命名為“chatServer.php”和“getChat.php”,并將這兩個文件保存到XAMPP安裝目錄的“htdocs”目錄中。一5.6PHP語言chatServer.php文件中的代碼如下:<?php$json=file_get_contents('php://input');$json=json_decode($json);session_id("wechat");session_start();if(!isset($_SESSION['contentList'])){ $_SESSION['contentList']="";}$_SESSION['contentList']=$_SESSION['contentList']."\n".$json->{'userName'}.":".$json->{'msg'};?>getChat.php文件中的代碼如下:<?phpsession_id("wechat");session_start();if(!isset($_SESSION['contentList'])){$_SESSION['contentList']="";}$contentList=$_SESSION['contentList'];echo$contentList;?>一5.7HTML、JavaScript、CSS語言5.7HTML、JavaScript、CSS語言5.7.1HTML、JavaScript、CSS語言簡介5.7.2HTML、JavaScript、CSS語言的發(fā)展歷史5.7.3HTML、JavaScript、CSS語言的特點5.7.4HTML、JavaScript、CSS環(huán)境配置5.7.5HTML、JavaScript、CSS代碼展示一5.7HTML、JavaScript、CSS語言5.7.1HTML、JavaScript、CSS語言簡介HTML的全稱是HyperTextMarkupLanguage(超文本標(biāo)記語言),是一種用于創(chuàng)建網(wǎng)頁的標(biāo)準(zhǔn)標(biāo)記語言。它包括一系列標(biāo)簽,通過這些標(biāo)簽可以將網(wǎng)絡(luò)上的文檔格式統(tǒng)一,使分散于互聯(lián)網(wǎng)上的資源連接為一個邏輯整體。HTML文本是由HTML標(biāo)簽組成的描述性文本,HTML標(biāo)簽可以說明文字、圖形、動畫、聲音、表格、鏈接等。HTML文檔的后綴名是.htm、.html,如果細心,我們會發(fā)現(xiàn)在日常使用瀏覽器的過程中,經(jīng)常在地址欄里邊見到這兩個后綴。我們?nèi)粘Uf的“網(wǎng)頁”實際上就是由HTML標(biāo)簽構(gòu)成的。HTML標(biāo)簽給出了頁面的基礎(chǔ)結(jié)構(gòu),如頁面中包含哪些文本、圖片、視頻、鏈接內(nèi)容等,這些內(nèi)容的顯示形式可能是表格、列表、表單、按鈕、選項,或者其他顯示形式。一5.7HTML、JavaScript、CSS語言5.7.1HTML、JavaScript、CSS語言簡介HTML通過將整個頁面組織成樹形結(jié)構(gòu)來描述整個頁面的內(nèi)容之間的關(guān)系,如圖所示。一5.7HTML、JavaScript、CSS語言5.7.1HTML、JavaScript、CSS語言簡介JavaScript語言是一種編程語言,它能讓頁面“動”起來,讓頁面能夠根據(jù)JavaScript程序的控制執(zhí)行相應(yīng)的功能,如頁面內(nèi)容的顯示與隱藏、向服務(wù)器提交數(shù)據(jù)、從服務(wù)器接收數(shù)據(jù)、修改頁面結(jié)構(gòu)等。當(dāng)頁面有內(nèi)容,能根據(jù)需要執(zhí)行不同業(yè)務(wù)邏輯后,還有一個重要的需求沒有滿足,那就是讓頁面美觀。承擔(dān)這一任務(wù)的就是層疊樣式表(CascadingStyleSheets,CSS)。一5.7HTML、JavaScript、CSS語言5.7.2HTML、JavaScript、CSS語言的發(fā)展歷史一5.7HTML、JavaScript、CSS語言HTMLJavascriptCSS1993年,互聯(lián)網(wǎng)工程工作小組(IETF)工作草案發(fā)布HTML1.0。1995年,發(fā)布HTML2.0。1997年,發(fā)布HTML3.2。1997年,發(fā)布HTML4.0。1999年,發(fā)布HTML4.01。2014年,發(fā)布HTML5.0。1992年,Nombas公司發(fā)布ScriptEase語言。1998年,ECMAScript2.0版發(fā)布。1999年,ECMAScript3.0版發(fā)布。2009年,ECMAScript5.0版發(fā)布。2015年,ECMAScript6.0版發(fā)布,即ECMAScript2015。2018年,ECMAScript2018發(fā)布。1996年,CSS1發(fā)布。1998年,CSS2發(fā)布。2001年,CSS3被拆分為幾個獨立的模塊組,模塊組之間相互獨立,每個模塊組有自己的規(guī)范。5.7.3HTML、JavaScript、CSS語言的特點一5.7HTML、JavaScript、CSS語言HTMLJavascriptCSS(1)簡易性;(2)可擴展性;(3)平臺無關(guān)性;(4)通用性。(1)解釋型腳本語言;(2)面向?qū)ο?;?)動態(tài)類型;(4)動態(tài)性;(5)跨平臺。(1)豐富的樣式定義;(2)易于使用和修改;(3)多頁面應(yīng)用;(4)層疊;(5)頁面壓縮。5.7.4HTML、JavaScript、CSS環(huán)境配置使用HTML、JavaScript、CSS語言進行開發(fā),需要配置Web開發(fā)環(huán)境。Web開發(fā)環(huán)境包括開發(fā)工具及運行環(huán)境。Web的開發(fā)工具有很多,如HBuilderX、WebStorm、VSCode等。也可以使用如SublimeText這樣的文本編輯器。運行環(huán)境主要就是各類瀏覽器,如微軟的Edge瀏覽器、谷歌的Chrome瀏覽器、Mozilla的Firefox瀏覽器、騰訊的QQ瀏覽器、搜狗瀏覽器等。這里展示如何安裝HBuilderX進行Web開發(fā)。一5.7HTML、JavaScript、CSS語言5.7.4HTML、JavaScript、CSS環(huán)境配置安裝HBuilderX開發(fā)工具,用于前端開發(fā)??梢詮腍BuilderX官網(wǎng)上下載安裝程序,官網(wǎng)頁面如圖所示。一5.7HTML、JavaScript、CSS語言5.7.4HTML、JavaScript、CSS環(huán)境配置下載完成后,解壓縮壓縮包,找到HBuilderX.exe文件,雙擊即可運行HBuilderX開發(fā)工具,如圖所示。一5.7HTML、JavaScript、CSS語言5.7.5HTML、JavaScript、CSS代碼展示上一節(jié)中使用PHP語言開發(fā)了聊天室的服務(wù)器端程序,這里展示使用HTML、JavaScript、CSS語言為聊天室開發(fā)一個簡易的界面。。一5.7HTML、JavaScript、CSS語言<!DOCTYPEhtml><html><head><title>聊天程序</title><metacharset="utf-8"><scripttype="text/javascript"src="/jquery.min.js"></script><styletype="text/css">fieldset{ width:300px; height:250px;}textarea{ height:180px;}</style></head><body><fieldset>

請輸入姓名:<inputtype="text"id="Name"><br>

說些什么:<inputtype="text"id="Message"><buttononclick="sendMessage();">發(fā)送</button><br>聊天內(nèi)容:<br><textareaid="ContentList"cols="50"rows="10"disabled=""></textarea></fieldset><scripttype="text/javascript">functionsendMessage(){$.ajax({url:"/chatServer.php",type

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論