Ⅰ 求全套清華大學計算機視頻教程
整套教程大約11.7G。內容包括:c.語言程序設計.rar 116.64MB
java編程語言.rar 361.03MB
mpi並行程序設計.rar 307.23MB
編譯原理.rar 440.75MB
人工智慧導論.rar 344.17MB
人工智慧原理.rar 360.48MB
人工智慧原理_研究生同等學歷.rar 325.57MB
計算機原理.rar 500.2MB
軟體工程.rar 434.95MB
寬頻網路交換技術.rar 441.3MB
匯編語言程序設計.rar 456.45MB
數據結構.rar 192.02MB
微型計算機技術.rar 393.58MB
計算機圖形學.rar 356.79MB
工程資料庫設計與應用.rar 543.66MB
多媒體計算機技術基礎及應用.rar 347.73MB
計算機系統結構_研究生同等學歷.rar 579.52MB
計算機組成與結構.rar 284.63MB
軟體工程_研究生同等學歷.rar 109.82MB
資料庫系統及應用.rar 617.3MB
信號處理原理.rar 260.41MB
並行計算.rar 393.37MB
計算機網路體系結構.rar 138.01MB
計算機系統結構.rar 679.31MB
離散數學.rar 169.07MB
模式識別.rar 448.24MB
資料庫系統概論.rar 445.29MB
數字系統設計自動化.rar 648.33MB
虛擬現實與系統模擬.rar 507.84MB
組合數學.rar 380.37MB
數值分析.rar 440.26MB
由於這套教程很大,因此,我只能給你一個網址: http://www.verycd.com/topics/45270/ 希望對你能夠有一定的幫助!
Ⅱ 求全國按軟體工程專業排的大學排名,越詳細越好。
中國科學評價研究中心(RCCSE)、武漢大學中國教育質量評價中心聯合中國科教評價網推出《2017-2018年中國大學及學科專業評價報告》。發布了中國大學軟體工程專業排名:
前十名包括:
1、清華大學:配備先進技術和高端人才,發展前景很好,不論是深造還是直接就業,都有很好的選擇方向。
2、南京大學:其軟體學院成立於2002年,2006年,南京大學軟體學院順利通過教育部示範性軟體學院驗收評估並名列前茅。
3、北京航空航天大學:在2017年12月進行的教育部第四次學科評估的工作中,北航軟體學院的軟體工程專業全國排名第一。成為「雙一流大學」中的重點學科專業。
4、上海交通大學:2012年軟體工程升級為一級學科後,學院第一批獲批了軟體工程一級學科博士點和碩士點,並於當年全國軟體工程一級學科評估中,獲得了全國第七名的成績。
5、哈爾濱工業大學:哈工大軟體學院借鑒美國、愛爾蘭等國家工業化人才培養和教育質量保證的成功經驗,建立了一套既符合國際通則又符合我國國情的工業化人才培養體系和教學質量保證體系,培養具有國際競爭力、適合工業界需求的高質量軟體工業人才。
6、武漢大學:軟體學院經過這幾年突飛猛進的發展,在軟體和硬體方面都取得了很大的改進,在辦學方面成果卓著。僅2009年11月,國際軟體學院學子便奪得了GIS全國大學生競賽特等獎,在「花旗杯」金融與信息應用技術大賽中實現五年三奪冠,國際軟體學院高煒華同學代表中國大學生參加了APEC峰會。
7、復旦大學:復旦大學軟體學院成立於2002年,是國家教育部與國家發展計劃委員會聯合批准成立的全國首批35所國家示範性軟體學院之一。
8、吉林大學:吉林大學軟體學院是教育部和國家計委於2001年12月聯合批準的35所國家示範性軟體學院之一。2002年開始招生,2003年、2006年分別通過教育部組織的中期評估和示範性軟體學院驗收,2008年吉林省特色專業,2011年獲軟體工程一級學科博士學位授予權,2013年獲批教育部「卓越工程師教育培養計劃」,2014年入選首批吉林省品牌專業以及吉林省優勢重點學科,2015年通過工程教育專業認證。
9、浙江大學:浙江大學軟體學院前身是浙江大學軟體與網路學院,於2001年2月27日在杭州與寧波兩地同時掛牌成立,2001年12月成為國家教育部和國家發展計劃委員會批準的首批35所國家示範性軟體學院之一,同時更名為浙江大學軟體學院。
10、北京交通大學:北京交通大學軟體學院於2003年3月成立,是37所國家示範性軟體學院之一。2006年11月首批通過教育部示範性軟體學院評估驗收。
(2)清華大學編譯器擴展閱讀:
軟體工程專業是2002年國家教育部新增專業,隨著計算機應用領域的不斷擴大及中國經濟建設的不斷發展,軟體工程專業將成為一個新的熱門專業。
軟體工程專業以計算機科學與技術學科為基礎,強調軟體開發的工程性,使學生在掌握計算機科學與技術方面知識和技能的基礎上熟練掌握從事軟體需求分析、軟體設計、軟體測試、軟體維護和軟體項目管理等工作所必需的基礎知識、基本方法和基本技能,突出對學生專業知識和專業技能的培養,培養能夠從事軟體開發、測試、維護和軟體項目管理的高級專門人才。
參考資料:中國科學評價研究中心-軟體工程專業排名
Ⅲ 學習C語言應遵循哪些步驟
第1步:定義程序的目標
在動手寫程序之前,要在腦中有清晰的思路。想要程序去做什麼首先自己要明確自己想做什麼,思考程序需要哪些信息,要進行哪些計算和控制,以及程序應該要報告什麼信息。在這一步驟中,不涉及具體的計算機語言,應該用一般術語來描述問題。
第2步:設計程序
對程序應該完成什麼任務有概念性的認識後,就應該考慮如何用程序來完成它。除此之外,還要決定在程序(還可能是輔助文件)中如何表示數據,以及用什麼方法處理數據。
學習C語言之初,遇到的問題都很簡單,沒什麼可選的。
第3步:編寫代碼
設計好程序後,就可以編寫代碼來實現。也就是說,把設計的程序翻譯成C語言。這里是真正需要使用C語言的地方。可以把思路寫在紙上,但是最終還是要把代碼輸入計算機。
程序清單1.1C源代碼示例
#include <stdio.h>
int main(void)
{
int dogs;
printf("How many dogs do you have? ");
scanf("%d", &dogs);
printf("So you have %d dog(s)! ", dogs);
return 0;
}
在這一步驟中,應該給自己編寫的程序添加文字注釋。最簡單的方式是使用C的注釋工具在源代碼中加入對代碼的解釋。
第4步:編譯
接下來的這一步是編譯源代碼。再次提醒讀者注意,編譯的細節取決於編程的環境,稍後馬上介紹一些常見的編程環境。現在,先從概念的角度講解編譯發生了什麼事情。
編譯器是把源代碼轉換成可執行代碼的程序。可執行代碼是用計算機的機器語言表示的代碼。這種語言由數字碼表示的指令組成。如前所述,不同的計算機使用不同的機器語言方案。C編譯器負責把C代碼翻譯成特定的機器語言。
此外,C編譯器還將源代碼與C庫(庫中包含大量的標准函數供用戶使用,如printf()和scanf())的代碼合並成最終的程序(更精確地說,
編譯器還會檢查C語言程序是否有效。如果C編譯器發現錯誤,就不生成可執行文件並報錯。理解特定編譯器報告的錯誤或警告信息是程序員要掌握的另一項技能。
第5步:運行程序
傳統上,可執行文件是可運行的程序。在常見環境(包括Windows命令提示符模式、UNIX終端模式和Linux終端模式)中運行程序要輸入可執行文件的文件名,而其他環境可能要運行命令(如,在VAX中的VMS[2])或一些其他機制。
例如,在Windows和Macintosh提供的集成開發環境(IDE)中,用戶可以在IDE中通過選擇菜單中的選項或按下特殊鍵來編輯和執行C程序。最終生成的程序可通過單擊或雙擊文件名或圖標直接在操作系統中運行。
第6步:測試和調試程序
程序能運行是個好跡象,但有時也可能會出現運行錯誤。查找並修復程序錯誤的過程叫調試。學習的過程中不可避免會犯錯,學習編程也是如此。因此,把所學的知識應用於編程時,最好為自己會犯錯做好心理准備。
第7步:維護和修改代碼
創建完程序後,發現程序有錯,或者想擴展程序的用途,這時就要修改程序。例如,用戶輸入以Zz開頭的姓名時程序出現錯誤、想到了一個更好的解決方案、想添加一個更好的新特性,或者要修改程序使其能在不同的計算機系統中運行,等等。
Ⅳ C、C++、VC、VC++有什麼區別啊
C,C++,VC,VC++的區別和聯系,如何學?
有人曾問我,我是學C++好呢,還是學VC++好呢?
:o5\'N-[5j ?
%k*Z"@L&q 包括很多開發人員都有這個問題,因為他們用著其他語言,或是做網站的. -A1]5Gh$aO
"i"U+^YeXs trv 現在我就試著解釋一下這幾個名詞:
F7in6\#gS ckXk @
首先要知道,C和C++是編程語言;而VC和VC++是開發環境(在這個環境里用C++做開發),而VC和VC++其實是一回事.
'g$G1j6YPBa9n$rD ;_ W'[]#PR
C是一門高級語言,它是一種很通用的結構化語言(相對於面向對象).什麼時候該用它呢?事實上如果你為了找工作,大多數的開發是不直接使用C的.如果你是初學者,以前沒有搞過編程,那麼建議你先學C語言. 編程有一門課是必須要學的,那就是<數據結構>,而學習<數據結構>的最合適的語言我認為就是C. 在中國大多數的開發還在在WINDOWS下開發,要知道WINDOWS本身就主要是用C編寫的,所以若有機會做底層的開發,C幾乎是唯一的選擇. C語言看起來比VB或C#或JAVA要麻煩,其實它是更接近於計算機的本來面目,那些"不麻煩"的語言,對開發人員來說並不是好事,首先在功能上會有損失,另外,如果簡單,大家都會,那麼你就不要指望有高的工資. 所以我覺得想進入軟體開發 行業的人,學習語言時第一個該學的就是C語言和數據結構,學數據結構時要好好領悟思想,會對以後幫助特別大. l,mC[)Up
1C5r9R!c9V0d `c^%V %wil;]p B,s-[DxD
C++其實包含C,換句話說,你用C++開發軟體時,可以在程序里直接用C代碼.但是C++是面向對象的開發語言(相對於C的面向過程). 面向過程好理解,簡單地說就是一條語句一條語句地執行. 面向對象經常能把初學者搞的一頭霧水,或是讓他們感到害怕,覺得是多麼高深的技術! 其實,面象對象只是一種思想,所謂思想,一般就是個簡單道理,它跟具體事物無關的.換句話說,面向對象與具體的編程語言(如C++)是無關的. 我們說C++是面向對象的語言,其實就是C++實現了面向對象的思想,C#和JAVA其實也實現了面向對象的思想.暫時只要知道這些就夠了:C++就是個實現了面向對象的編程語言.它和C語言一樣,在國際上有通用的標准,比如語法定義什麼的.
t2@2yz$c/q G_4R
0T |e\^z X#r
%B%I+\.m6l:M U`!s VC和VC++其實是微軟公司的一個開發環境,用來編寫C++程序的.目前來看,可能是編寫C++程序的最好的開發環境.功能很強大,但是復雜性和使用難度也是出了名的.有人說VC++入門就得一年,我想對於沒有開發經驗的人來說,差不多吧.我有個同事,畢業於清華大學,有多年JAVA開發經驗和講課經驗,但他自學了半年VC++,跟我說仍是雲里霧里的.可能他有些謙虛,但是可以肯定的 是VC++不那麼好學. 所以,並不是每個人都適合學VC++的.大家可以量力而行,不學VC++,可以去學C#或JAVA,這是目前用的最多的兩門語言,難度比VC++要小的多. .MI6f%|*nO&D
zQ Q}C2t
o2GV0C\^p
下面我再說說該如何學VC++.(我正在列我們教程的提綱,會把大致的知識點和步驟都列出來,等完成後會發布.) ]$~S"USni8[ ?7`y
I,Rs w b`n
第一步是要學C,C++語法.關於語法,說簡單也簡單,說難也難.看你學到什麼程度.一般來說,一個月能學會任何一門編程語言的語法,但是,會了語法不代表你就能開發軟體了! 語法是基礎,一定要學好.以後遇到問題,很多時候都是靠語法和數據結構的功底來解決.
$R3TuYJ {w 4rU-K OiG
第二步,就是學習開發環境,完成一些比較分散的知識點,比如怎樣調試,怎樣做界面,怎樣寫簡單的代碼.做個對話框程序什麼的. 在這個過程中,會遇到很多你不懂的問題和知識點,還可能會報出讓你恐懼的錯誤(VC++一條語句會報幾百個錯誤,很多初學者就被嚇到了!),如果你夠膽大,就不要被嚇倒.我可以說,這正好是考驗你的時候,不明白不要緊,花時間能解決掉就行! 所以我有一些建議,這些建議看上去比較虛但我覺得很重要:學VC++需要你膽子要大點,要准備花更多的時間(回報你的,是更高的工資),准備更快地接受更多的知識,丟掉,再接受新的.敢去嘗試沒做過的程序,敢去解決沒遇到過的問題.在這些過程中,你會慢慢的提高. 當你做出成功的項目的時候,回過頭一看,你會發現其他的編程語言簡直就是小兒科,跟玩具一樣!舉個不恰當的比喻,如果是練功夫,那麼你的"內力"已經大增了. Ox a&o[mxMn$v
rs&eh7}T YJ 第三步,開始獨立地完成一個真實的項目.我想提醒你們,千萬不要以為等你把所有東西都學會了再去動手!有很多東西是要你邊干邊學的!這樣有挑戰性,但是成功了也會更有成就感,想想,如果你做的事,每個人都會,那你憑什麼能拿到高收入呢?軟體開發本來就是一種創新性的行業. 就是要不斷挑戰不斷突破!適應了以後你會發現,你已經是高手了!
Ⅳ c++程序設計基礎教程課後答案(清華大學出版社鄭莉 董淵著)
第 一 章 概述
1-1 簡述計算機程序設計語言的發展歷程。
解:
迄今為止計算機程序設計語言的發展經歷了機器語言、匯編語言、高級語言等階段,C++語言是一種面向對象的編程語言,也屬於高級語言。
1-2 面向對象的編程語言有哪些特點?
解:
面向對象的編程語言與以往各種編程語言有根本的不同,它設計的出發點就是為了能更直接的描述客觀世界中存在的事物以及它們之間的關系。面向對象的編程語言將客觀事物看作具有屬性和行為的對象,通過抽象找出同一類對象的共同屬性(靜態特徵)和行為(動態特徵),形成類。通過類的繼承與多態可以很方便地實現代碼重用,大大縮短了軟體開發周期,並使得軟體風格統一。因此,面向對象的編程語言使程序能夠比較直接地反問題域的本來面目,軟體開發人員能夠利用人類認識事物所採用的一般思維方法來進行軟體開發。C++語言是目前應用最廣的面向對象的編程語言。
1-3 什麼是結構化程序設計方法?這種方法有哪些優點和缺點?
解:
結構化程序設計的思路是:自頂向下、逐步求精;其程序結構是按功能劃分為若干個基本模塊;各模塊之間的關系盡可能簡單,在功能上相對獨立;每一模塊內部均是由順序、選擇和循環三種基本結構組成;其模塊化實現的具體方法是使用子程序。結構化程序設計由於採用了模塊分解與功能抽象,自頂向下、分而治之的方法,從而有效地將一個較復雜的程序系統設計任務分解成許多易於控制和處理的子任務,便於開發和維護。
雖然結構化程序設計方法具有很多的優點,但它仍是一種面向過程的程序設計方法,它把數據和處理數據的過程分離為相互獨立的實體。當數據結構改變時,所有相關的處理過程都要進行相應的修改,每一種相對於老問題的新方法都要帶來額外的開銷,程序的可重用性差。
由於圖形用戶界面的應用,程序運行由順序運行演變為事件驅動,使得軟體使用起來越來越方便,但開發起來卻越來越困難,對這種軟體的功能很難用過程來描述和實現,使用面向過程的方法來開發和維護都將非常困難。
1-4 什麼是對象?什麼是面向對象方法?這種方法有哪些特點?
解:
從一般意義上講,對象是現實世界中一個實際存在的事物,它可以是有形的,也可以是無形的。對象是構成世界的一個獨立單位,它具有自己的靜態特徵和動態特徵。面向對象方法中的對象,是系統中用來描述客觀事物的一個實體,它是用來構成系統的一個基本單位,由一組屬性和一組行為構成。
面向對象的方法將數據及對數據的操作方法放在一起,作為一個相互依存、不可分離的整體--對象。對同類型對象抽象出其共性,形成類。類中的大多數數據,只能用本類的方法進行處理。類通過一個簡單的外部介面,與外界發生關系,對象與對象之間通過消息進行通訊。這樣,程序模塊間的關系更為簡單,程序模塊的獨立性、數據的安全性就有了良好的保障。通過實現繼承與多態性,還可以大大提高程序的可重用性,使得軟體的開發和維護都更為方便。
面向對象方法所強調的基本原則,就是直接面對客觀存在的事物來進行軟體開發,將人們在日常生活中習慣的思維方式和表達方式應用在軟體開發中,使軟體開發從過分專業化的方法、規則和技巧中回到客觀世界,回到人們通常的思維。
1-5 什麼叫做封裝?
解:
封裝是面向對象方法的一個重要原則,就是把對象的屬性和服務結合成一個獨立的系統單位,並盡可能隱蔽對象的內部細節。
1-6 面向對象的軟體工程包括哪些主要內容?
解:
面向對象的軟體工程是面向對象方法在軟體工程領域的全面應用,它包括面向對象的分析(OOA)、面向對象的設計(OOD)、面向對象的編程(OOP)、面向對象的測試(OOT)和面向對象的軟體維護(OOSM)等主要內容。
1-7 簡述計算機內部的信息可分為幾類?
解:
計算機內部的信息可以分成控制信息和數據信息二大類;控制信息可分為指令和控制字兩類;數據信息可分為數值信息和非數值信息兩類。
1-8 什麼叫二進制?使用二進制有何優點和缺點?
解:
二進制是基數為2,每位的權是以2 為底的冪的進制,遵循逢二進一原則,基本符號為0和1。採用二進制碼表示信息,有如下幾個優點:1.易於物理實現;2.二進制數運算簡單;3.機器可靠性高;4.通用性強。其缺點是它表示數的容量較小,表示同一個數,二進制較其他進制需要更多的位數。
1-9 請將以下十進制數值轉換為二進制和十六進制補碼:
(1)2 (2)9 (3)93
(4)-32 (5)65535 (6)-1
解:
(1) (2)10 = (10)2 = (2)16
(2) (9)10 = (1001)2 = (9)16
(3) (93)10 = (1011101)2 = (5D)16
(4) (-32)10 = (11100000)2 = (E0)16
(5) (65535)10 = (11111111 11111111)2 = (FFFF)16
(6) (-1)10 = (11111111 11111111)2 = (FFFF)16
1-10 請將以下數值轉換為十進制:
(1)(1010)2 (2)(10001111)2 (3)(01011111 11000011)2
(4)(7F)16 (5)(2D3E)16 (6)(F10E)16
解:
(1)(1010)2 = (10)10
(2)(10001111)2 = (143)10
(3)(01011111 11000011)2 = (24515)10
(4)(7F)16 = (127)10
(5)(2D3E)16 = (11582)10
(6)(F10E)16 = (61710)10
1-11 簡要比較原碼、反碼、補碼等幾種編碼方法。
解:
原碼:將符號位數字化為 0 或 1,數的絕對值與符號一起編碼,即所謂"符號——絕對值表示"的編碼。
正數的反碼和補碼與原碼表示相同。
負數的反碼與原碼有如下關系:
符號位相同(仍用1表示),其餘各位取反(0變1,1變0)。
補碼由該數反碼的最末位加1求得。
第 二 章 C++簡單程序設計
2-1 C++語言有那些主要特點和優點?
解:
C++語言的主要特點表現在兩個方面,一是全面兼容C,二是支持面向對象的方法。C++是一個更好的C,它保持了C的簡潔、高效、接近匯編語言、具有良好的可讀性和可移植性等特點,對C的類型系統進行了改革和擴充,因此C++比C更安全,C++的編譯系統能檢查出更多的類型錯誤。 C++語言最重要的特點是支持面向對象。
2-2 下列標識符哪些是合法的?
Program, -page, _lock, test2, 3in1, @mail, A_B_C_D
解:
Program, _lock, test2, A_B_C_D是合法的標識符,其它的不是。
2-3 例2.1中每條語句的作用是什麼?
#include <iostream.h>
void main(void)
{
cout<<"Hello!\n";
cout<<"Welcome to c++!\n";
}
解:
#include <iostream.h> //指示編譯器將文件iostream.h中的代碼
//嵌入到該程序中該指令所在的地方
void main() //主函數名,void 表示函數沒有返回值
{ //函數體標志
cout<<"Hello!\n"; //輸出字元串Hello!到標准輸出設備(顯示器)上。
cout<<"Welcome to c++!\n"; //輸出字元串Welcome to c++!
}
在屏幕輸出如下:
Hello!
Welcome to c++!
2-4 使用關鍵字const而不是#define語句的好處有哪些?
解:
const定義的常量是有類型的,所以在使用它們時編譯器可以查錯;而且,這些變數在調試時仍然是可見的。
2-5 請寫出C++語句聲明一個常量PI,值為3.1416;再聲明一個浮點型變數a,把PI的值賦給a。
解:
const float PI = 3.1416;
float a = PI;
2-6 在下面的枚舉類型中,Blue的值是多少?
enum COLOR ;
解:
Blue = 102
2-7 注釋有什麼作用?C++中有哪幾種注釋的方法?他們之間有什麼區別?
解:
注釋在程序中的作用是對程序進行註解和說明,以便於閱讀。編譯系統在對源程序進行編譯時不理會注釋部分,因此注釋對於程序的功能實現不起任何作用。而且由於編譯時忽略注釋部分,所以注釋內容不會增加最終產生的可執行程序的大小。適當地使用注釋,能夠提高程序的可讀性。在C++中,有兩種給出注釋的方法:一種是延用C語言方法,使用"/*"和"*/"括起注釋文字。另一種方法是使用"//",從"//"開始,直到它所在行的行尾,所有字元都被作為注釋處理。
2-8 什麼叫做表達式?x = 5 + 7是一個表達式嗎?它的值是多少?
解:
任何一個用於計算值的公式都可稱為表達式。x = 5 + 7是一個表達式,它的值為12。
2-9 下列表達式的值是多少?
1. 201 / 4
2. 201 % 4
3. 201 / 4.0
解:
1. 50
2. 1
3. 50.25
2-10 執行完下列語句後,a、b、c三個變數的值為多少?
a = 30;
b = a++;
c = ++a;
解:
a:32 ; b:30 ; c:32;
2-11 在一個for循環中,可以初始化多個變數嗎?如何實現?
解:
在for循環設置條件的第一個";"前,用,分隔不同的賦值表達式。
例如:
for (x = 0, y = 10; x < 100; x++, y++)
2-12 執行完下列語句後,n的值為多少?
int n;
for (n = 0; n < 100; n++)
Ⅵ 匯編語言是用什麼軟體編譯的
《匯編語言》清華大學出版社 王爽版,這是比較全面的匯編教材,適合初學者。你以前學的是高級軟體編程,現在學匯編需要了解計算機的組成知識。編譯器就用masm 5.0就可以。是在dos下的。
Ⅶ 跪求 清華大學版 PL0 編譯器 for語句擴展 要新版的..謝謝
這個清華大學的,我們不是清華的人正版的那裡有啊。對了你沒分你也跪求。。還要新版的。人家有也不給你啊。。
Ⅷ java語言程序設計課後答案 郞波 第二版 清華大學出版社
我有
Java面向對象程序設計
清華大學出版社
(編著 耿祥義 張躍平)
習題解答
建議使用文檔結構圖
(選擇Word菜單→視圖→文檔結構圖)
習題1
1.James Gosling
2.
(1)使用一個文本編輯器編寫源文件。
(2)使用Java編譯器(javac.exe)編譯Java源程序,得到位元組碼文件。
(3)使用Java解釋器(java.exe)運行Java程序
3.Java的源文件是由若干個書寫形式互相獨立的類組成的。
應用程序中可以沒有public類,若有的話至多可以有一個public類。
4.系統環境path D\jdk\bin;
系統環境classpath D\jdk\jre\lib\rt.jar;.;
5. B
6. Java源文件的擴展名是.java。Java位元組碼的擴展名是.class。
7. D
8.(1)Speak.java
(2)生成兩個位元組碼文件,這些位元組碼文件的名字Speak.class 和 Xiti8.class
(3)java Xiti8
(4)執行java Speak的錯誤提示
Exception in thread "main" java.lang.NoSuchMethodError: main
執行java xiti8得到的錯誤提示
Exception in thread "main" java.lang.NoClassDefFoundError: xiti8 (wrong name: Xiti8)
執行java Xiti8.class得到的錯誤提示
Exception in thread "main" java.lang.NoClassDefFoundError: Xiti8/class
執行java Xiti8得到的輸出結果
I'm glad to meet you
9.屬於操作題,解答略。
習題2
1. D
2.【代碼1】 【代碼2】 錯誤 //【代碼3】更正為 float z=6.89F;
3.float型常量後面必須要有後綴「f」或「F」。
對於double常量,後面可以有後綴「d」或「D」,但允許省略該後綴。
4.public class Xiti4{
public static void main (String args[ ]){
char ch1='你',ch2='我',ch3='他';
System.out.println("\""+ch1+"\"的位置:"+(int)ch1);
System.out.println("\""+ch2+"\"的位置:"+(int)ch2);
System.out.println("\""+ch3+"\"的位置:"+(int)ch3);
}
}
5.數組名字.length
6.數組名字.length
7. 【代碼1】A,65
【代碼2】-127
【代碼3】 123456.783,123456.78312
8.
【代碼1】false
【代碼2】true
【代碼3】false
【代碼4】3
【代碼5】4.4
【代碼6】8.8
習題3
輸出110
if-else語句書寫的不夠規范,復合語句缺少大括弧「{}」,代碼不夠清晰。
2.你好好酷!!
3.
public class Xiti3_3
{
public static void main (String args[ ]){
int startPosition=0,endPosition=0;
char cStart='а',cEnd='я';
startPosition=(int)cStart; //cStart做int型轉換據運算,並將結果賦值給startPosition
endPosition=(int)cEnd ; //cEnd做int型轉換運算,並將結果賦值給endPosition
System.out.println("俄文字母表:");
for(int i=startPosition;i<=endPosition;i++){
char c='\0';
c=(char)i; //i做char型轉換運算,並將結果賦值給c
System.out.print(" "+c);
if((i-startPosition+1)%10==0)
System.out.println("");
}
}
}
4.
public class Xiti4
{ public static void main(String args[])
{ double sum=0,a=1;
int i=1;
while(i<=20)
{ sum=sum+a;
i++;
a=a*i;
}
System.out.println("sum="+sum);
}
}
5.
class Xiti5
{ public static void main(String args[])
{ int i,j;
for(j=2;j<=100;j++)
{ for(i=2;i<=j/2;i++)
{ if(j%i==0)
break;
}
if(i>j/2)
{ System.out.print(" "+j);
}
}
}
}
6.
class Xiti6
{ public static void main(String args[])
{ double sum=0,a=1,i=1;
while(i<=20)
{ sum=sum+a;
i++;
a=(1.0/i)*a;
}
System.out.println("使用while循環計算的sum="+sum);
for(sum=0,i=1,a=1;i<=20;i++)
{ a=a*(1.0/i);
sum=sum+a;
}
System.out.println("使用for循環計算的sum="+sum);
}
}
7.
public class Xiti7
{ public static void main(String args[])
{ int sum=0,i,j;
for(i=1;i<=1000;i++)
{ for(j=1,sum=0;j<i;j++)
{ if(i%j==0)
sum=sum+j;
}
if(sum==i)
System.out.println("完數:"+i);
}
}
}
8.方法之一
import java.util.Scanner;
public class Xiti8
{ public static void main (String args[ ]){
System.out.println("請輸入兩個非零正整數,每輸入一個數回車確認");
Scanner reader=new Scanner(System.in);
int m=0,n=0,temp=0,gy=0,gb=0,a,b;
a=m = reader.nextInt();
b=n = reader.nextInt();
if(m<n)
{ temp=m;
m=n;
n=temp;
}
int r=m%n;
while(r!=0)
{ n=m;
m=r;
r=m%n;
}
gy=n;
gb=a*b/gy;
System.out.println("最大公約數 :"+gy);
System.out.println("最小公倍數 :"+gb);
}
}
8.方法之二
import java.util.Scanner;
public class Xiti8 {
public static void main (String args[ ]){
System.out.println("請輸入兩個非零正整數,每輸入一個數回車確認");
Scanner reader=new Scanner(System.in);
int m=0,n=0,t=0,gy=0,gb=0;
m = reader.nextInt();
n = reader.nextInt();
if(m>n){
t=m;
m=n;
n=t;
}
for(int i=1;i<=m;i++){
if(m%i==0 && n%i==0){
gy=i;
}
}
gb=m*n/gy;
System.out.println(m+","+n+"的最大公約數為 "+gy);
System.out.println(m+","+n+"的最小公倍數為 "+gb);
}
}
9.
public class Xiti9
{ public static void main(String args[])
{ int n=1;
long sum=0,t=1;
t=n*t;
while(true)
{ sum=sum+t;
if(sum>9999)
break;
n++;
t=n*t;
}
System.out.println("滿足條件的最大整數:"+(n-1));
}
}// 1至7的階乘和是sum=5913.0 // 1至8的階乘和是sum=46233.0
習題4
1.用該類創建對象時。
2.所謂方法重載是在一個類中可以有多個方法具有相同的名字,但這些方法的參數必須不同,即或者是參數的個數不同,或者是參數的類型不同。構造方法可以重載。
3. 可以。不可以。
4.不可以。
5.成員變數又分為實例變數和類變數,用static修飾的變數是類變數。那麼類變數和實例變數有什麼區別呢?一個類通過使用new運算符可以創建多個不同的對象,不同的對象的實例變數將被分配不同的內存空間;如果類中的成員變數有類變數,那麼所有對象的這個類變數都分配給相同的一處內存,改變其中一個對象的這個類變數會影響其它對象的這個類變數。也就是說對象共享類變數。
6.C,D
7.【代碼1】,【代碼4】
8.sum=-100
9.27
10. **20
##100
習題5
1. 如果子類和父類在同一個包中,那麼子類自然地繼承了其父類中不是private的成員變數作為自己的成員變數,並且也自然地繼承了父類中不是private的方法作為自己的方法。繼承的成員或方法的訪問許可權保持不變。如果子類和父類不在同一個包中,那麼子類繼承了父類的protected、public成員變數做為子類的成員變數,並且繼承了父類的protected、public方法為子類的方法,繼承的成員或方法的訪問許可權保持不變。如果子類和父類不在同一個包里,子類不能繼承父類的友好變數和友好方法。
只要子類中聲明的成員變數和父類中的成員變數同名時,子類就隱藏了繼承的成員變數。
子類中定義一個方法,這個方法的類型和父類的方法的類型一致或者是父類的方法的類型的子類型,並且這個方法的名字、參數個數、參數的類型和父類的方法完全相同,子類如此定義的方法稱作子類重寫的方法。子類通過方法的重寫可以隱藏繼承的方法。
2.不可以。
3.abstract類。
4.假設B類是A類子類或間接子類,當我們用子類B創建一個對象,並把這個對象的引用放到A類的對象中時,稱這個A類對象是子類對象的上轉型對象。
5.可以把實現某一介面的類創建的對象的引用賦給該介面聲明的介面變數中。那麼該介面變數就可以調用被類實現的介面中的方法。
6.A,C,D
7.15.0
8.0
8.98.0
12
9.
class A
{ public final void f()
{ char cStart='a',cEnd='z';
for(char c=cStart;c<=cEnd;c++)
{ System.out.print(" "+c);
}
}
}
class B extends A
{ public void g()
{ char cStart='α',cEnd='ω';
for(char c=cStart;c<=cEnd;c++)
{ System.out.print(" "+c);
}
}
}
public class Xiti9
{ public static void main (String args[ ])
{ B b=new B();
b.f();
b.g();
}
}
10.
class A
{ public int f(int a,int b){
if(b<a)
{ int temp=0;
temp=a;
a=b;
b=temp;
}
int r=b%a;
while(r!=0)
{ b=a;
a=r;
r=b%a;
}
return a;
}
}
class B extends A
{ public int f(int a,int b)
{ int division=super.f(a,b);
return (a*b)/division;
}
}
public class Xiti10
{ public static void main (String args[ ])
{ A a=new A();
B b=new B();
System.out.println("最大公約數 :"+a.f(36,24));
System.out.println("最小公倍數 :"+b.f(36,24));
}
}
習題6
1.仍然有效。
2.可以。
3.不可以。
4.大家好,祝工作順利!
5. 96
乘數超過99
習題7
1.
(1)Strategy是介面。
(2)Army不是抽象類。
(3)Army和Strategy是關聯關系。
(4)StrategyA, StrategyB、StrategyC與Strategy是實現關系。
2.
3.
4.例子13的設計符合開-閉原則。
5.例子17的設計符合開-閉原則。
習題8
採用新增的策略為選手計算得分。
增加新的具體策略StrategyFour。StrategyFour類將double computeScore(double [] a)方法實現為去掉數組a的元素中的一個最大值和一個最小值,然後計算剩餘元素的幾何平均值。
import java.util.Arrays;
public class StrategyFour implements ComputableStrategy {
public double computeScore(double [] a) {
if(a.length<=2)
return 0;
double score=0,multi=1;
Arrays.sort(a);
int n=a.length-2;
for(int i=1;i<a.length-1;i++) {
multi=multi*a[i];
}
score=Math.pow(multi,1.0/n);
return score;
}
}
2.
(1)策略(Strategy)PrintCharacter.java
public interface PrintCharacter{
public abstract void printTable(char [] a,char[] b);
}
(2) 具體策略
PrintStrategyOne.java
public class PrintStrategyOne implements PrintCharacter {
public void printTable(char [] a,char[] b) {
for(int i=0;i<a.length;i++) {
System.out.print(a[i]+",");
}
for(int i=0;i<b.length;i++) {
System.out.print(b[i]+",");
}
System.out.println("");
}
}
PrintStrategyTwo.java
public class PrintStrategyTwo implements PrintCharacter {
public void printTable(char [] a,char[] b) {
for(int i=0;i<a.length;i++) {
System.out.print(b[i]+","+a[i]+",");
}
}
}
(3)上下文 PrintGame.java
public class PrintGame {
PrintCharacter strategy;
public void setStrategy(PrintCharacter strategy) {
this.strategy=strategy;
}
public void getPersonScore(char[] a,char[] b){
if(strategy==null)
System.out.println("sorry!");
else
strategy.printTable(a,b);
}
}
應用以上策略:
public class Application {
public static void main(String args[]) {
char [] a=new char[26];
char [] b=new char[26];
for(int i=0;i<=25;i++){
a[i]=(char)('a'+i);
}
for(int i=0;i<=25;i++){
b[i]=(char)('A'+i);
}
PrintGame game=new PrintGame(); //上下文對象
game.setStrategy(new PrintStrategyOne()); //上下文對象使用策略一
System.out.println("方案1:");
game.getPersonScore(a,b);
game.setStrategy(new PrintStrategyTwo()); //上下文對象使用策略二
System.out.println("方案2:");
game.getPersonScore(a,b);
}
}
3.參照本章8.3.3自主完成。
習題9
1.A,B,D
2. Love:Game
3.13
abc夏日
4.13579
5.9javaHello
6.
public class Xiti6 {
public static void main (String args[ ]) {
String s1,s2,s3,t1="ABCDabcd";
System.out.println("字元串原來是這個樣子: "+t1);
s1=t1.toUpperCase();
System.out.println("字元串中的小寫字母變成大寫是這個樣子: "+s1);
s2=t1.toLowerCase();
System.out.println("字元串中的大寫字母變成小寫是這個樣子: "+s2);
s3=s1.concat(s2);
System.out.println("大寫字元串連接小寫字元串是這個樣子: "+s3);
}
}
7.
class Xiti7
{ public static void main(String args[ ])
{ String s ="中華人民共和國";
char a=s.charAt(0);
char b=s.charAt(6);
System.out.println("第一個字元: "+a);
System.out.println("最後一個字元: "+b);
}
}
8.
import java.util.*;
class Xiti8
{ public static void main(String args[]){
int year,month;
System.out.println("請輸入年份和月份,每輸入一個數回車確認");
Scanner reader=new Scanner(System.in);
year= reader.nextInt();
month= reader.nextInt();
String [] day=new String[42];
System.out.println(" 日 一 二 三 四 五 六");
Calendar rili=Calendar.getInstance();
rili.set(year,month-1,1);//將日歷翻到year年month月1日,注意0表示一月...11表示十二月
int 星期幾=rili.get(Calendar.DAY_OF_WEEK)-1;
int dayAmount=0;
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
dayAmount=31;
if(month==4||month==6||month==9||month==11)
dayAmount=30;
if(month==2)
if(((year%4==0)&&(year%100!=0))||(year%400==0))
dayAmount=29;
else
dayAmount=28;
for(int i=0;i<星期幾;i++)
day[i]="";
for(int i=星期幾,n=1;i<星期幾+dayAmount;i++){
if(n<=9)
day[i]=String.valueOf(n)+" " ;
else
day[i]=String.valueOf(n);
n++;
}
for(int i=星期幾+dayAmount;i<42;i++)
day[i]="";
for(int i=0;i<星期幾;i++)
{ day[i]="**";
}
for(int i=0;i<day.length;i++)
{ if(i%7==0)
{ System.out.println("");
}
System.out.print(" "+day[i]);
}
}
}
9.
import java.util.*;
class Xiti9
{ public static void main(String args[]){
int year1,month1,day1,year2,month2,day2;
Scanner reader=new Scanner(System.in);
System.out.println("請輸入第一個日期的年份 月份 日期 ,每輸入一個數回車確認");
year1= reader.nextInt();
month1= reader.nextInt();
day1= reader.nextInt();
System.out.println("請輸入第二個日期的年份 月份 日期 ,每輸入一個數回車確認");
year2= reader.nextInt();
month2= reader.nextInt();
day2= reader.nextInt();
Calendar calendar=Calendar.getInstance();
calendar.set(year1,month1,day1);
long timeYear1=calendar.getTimeInMillis();
calendar.set(year2,month2,day2);
long timeYear2=calendar.getTimeInMillis();
long 相隔天數=Math.abs((timeYear1-timeYear2)/(1000*60*60*24));
System.out.println(""+year1+"年"+month1+"月"+day1+"日和"+
year2+"年"+month2+"月"+day2+"日相隔"+相隔天數+"天");
}
}
全部都給你
希望那個可以幫助到你 祝你學習成功
Ⅸ 編譯器 龍書 清華大學 哪個好懂
張素琴 清華大學《編譯原理》,建議參考
作者: (美)阿霍 等著,李建中 等譯 機械工業《編譯原理》俗稱「龍書」
Ⅹ 985軟體工程研究生學費
軟體工程考研分為學碩和專碩,學碩的學費是8000一年,基本上每個學校都一樣。而專碩的學費不同的學校卻不一樣,低的有8000,10000的,高的有兩萬,六萬,甚至八萬的。
軟體工程是一門普通高等學校本科專業,屬計算機類專業,基本修業年限為四年,授予工學學士學位。該專業涉及程序設計語言、資料庫、軟體開發工具、系統平台、設計模式等方面,培養學生適應計算機應用學科的發展,特別是軟體產業的發展,使其具備計算機軟體的基礎理論、基本知識和基本技能,具有用軟體工程的思想、方法和技術來分析、設計和實現計算機軟體系統的能力。
軟體工程是一門研究用工程化方法構建和維護有效、實用和高質量的軟體的學科。它涉及程序設計語言、資料庫、軟體開發工具、系統平台、標准、設計件有電子郵件、嵌入式系統、人機界面、辦公套件、操作系統、編譯器、資料庫、游戲等。同時,各個行業幾乎都有計算機軟體的應用,如工業、農業、銀行、航空、政府部門等。這些應用促進了經濟和社會的發展,也提高了工作效率和生活效率。