-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Java程序設計與數據結構教程(第二版)

( 簡體 字)
作者:辛運幃,饒一梅 等類別:1. -> 程式設計 -> JAVA -> Java
譯者:
出版社:電子工業出版社Java程序設計與數據結構教程(第二版) 3dWoo書號: 38553
詢問書籍請說出此書號!

缺書
NT售價: 395

出版日:5/1/2014
頁數:540
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121230851
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

譯 者 序
非常高興從電子工業出版社獲得了機會, 再次翻譯了這本經典教材的更新版。
2007年曾翻譯了本書的第一版。翻譯的過程也是學習的過程, 雖然譯者一直從事計算機專業的教學工作, 講授了多年Java語言與數據結構, 但第一次讀到這本教材時, 仍覺得本書的章節安排非常有新意, 對于我們國內的相關教學有非常好的引導與借鑒作用。
現在, 我們又翻譯了本書的第二版。較之第一版, 第二版的內容做了許多改變。無論從整體框架到章節安排, 還是從講授內容到習題, 作者都進行了一些調整。這些改變也更適應這個課程的教學, 因此期望能收到更好的效果。
本書的內容非常豐富, 適合作為計算機專業本科生兩到三個學期的教材使用。目前國內計算機學科的教學正處于大變革時期, 各高校都在嘗試新的教學模式、采用新的教學大綱。2012年首先從美國興起的大型開放式網絡課程也已影響到國內各高校。本書的內容既能滿足傳統的面授教學方式, 也適合作為網絡開放課程的參考教材。
Java面向對象的程序設計理念, 與數據結構中的抽象數據類型描述, 無論從概念層面還是形式化定義上都有著緊密的聯系。國內的高校往往在不同的階段為學生開設兩個或三個課程分開講授相關內容, 這樣的方式容易割裂這些課程之間的關聯性。本書作者頗具匠心地嘗試將它們放在同一門課程中, 教師在講授時可以兼顧前后的內容, 學生在學習時也能領會知識點之間的關系, 在程序設計階段可以打下良好的面向對象的編程基礎, 同時在數據結構課程中應用面向對象的思想來解決應用問題, 會起到事半功倍的作用。
本書作者首先詳細介紹了Java語言的語法, 在學生們掌握了基本編程技能之后, 重點介紹類及對象的知識, 這些內容不局限于Java語言, 而是一般的面向對象編程語言都具備的。這些內容的介紹是充分的, 對于學生來說是非常必要的, 也是國內程序設計課程中所欠缺的。作者選擇Java語言作為實現面向對象思想的工具, 使用數據結構中的內容作為問題導引, 在向學生們介紹經典算法思想的同時, 也向他們詳細介紹如何編寫具體的程序來解決實際的問題。
不同于國內很多教材的另一個特色是, 本書是一本資源性的教材。本書是關于Java語言的, 在介紹語言本身的同時, 也全面介紹了學習這個語言重要的相關資料, 包括下載資料的網站、重要的調試工具的使用、編寫程序用到的測試知識等。特別是書后各附錄中的內容, 相信對教師和學生都非常有用。
本書還提供了大量的代碼, 這些代碼對學生們理解課程內容非常有益。每章后面列出的各類習題可以檢驗學生的學習效果。
在此, 譯者非常感謝電子工業出版社給我們提供的這個翻譯機會。我們不僅學習了作者的編寫思想, 更見識了作者的敬業精神。書中反映出的作者的認真態度, 使我們在翻譯過程中不敢有絲毫的懈怠。譯者還要特別感謝本書的責任編輯馮小貝。在翻譯過程中, 譯者始終得到馮編輯的大力支持和全方位的幫助。
本書主要由辛運幃、饒一梅共同翻譯, 參加翻譯工作的還有趙偉、翟耀華、孟令香、張迪、孟婷婷、王詩雅、陳宛璐、田園、包鈞圳、張羅、史高山。在翻譯過程中, 得到了南開大學計算機與控制工程學院多位老師的支持和幫助, 恕我們不能一一列出他們的姓名, 在此一并表示衷心的感謝。還要特別感謝國防科技大學計算機學院熊岳山教授、北京理工大學網絡服務中心陳朔鷹主任, 正是他們提出的眾多非常好的建議, 才幫助譯者得以順利完成本書的翻譯。
雖然我們在翻譯時非常認真努力地工作, 期望能以盡量高的質量將本書呈現給讀者, 但限于譯者的水平有限, 很多地方并不能完全體現作者的原意, 翻譯過程中更是難免會有錯誤之處, 敬請廣大讀者給我們指正。您的任何意見和建議都是我們進一步完善本書的動力。
再次感謝您選擇了本書。

譯 者2014年3月于南開園
前 言
歡迎閱讀本書。本書可作為二至三個學期導論系列課程的教材使用, 教學內容從最基本的程序設計概念到復雜數據結構的設計和實現。這種統一的教學方法能讓這些重要的內容自成體系, 并且更易于讓學生理解。
我們借鑒了業界領先的教材Java Software Solutions中譯本為《Java程序設計教程(第七版)》, 已由電子工業出版社出版, 書號為978-7-121-15344-0; 英文影印版也已由電子工業出版社出版, 書號為978-7-121-16138-4。中最精華的內容作為介紹資料, 重新組織后作為本書設計內容的有效補充。例如, 我們沒有將圖形用戶界面的內容分散在好幾章, 而是將這些內容很好地組織在一章中。
在后面的幾章中, 有關集合和數據結構的內容介紹基本上參照了Java Software Structures一書, 但重新組織了相關資料, 使得條理更加清晰。這樣, 程序設計概念的介紹范圍更全面、更集中, 相互的銜接也更自然。
第二版中的新內容
非常感謝讀者為本書提供的反饋, 很高興本書能作為一本合適的導論課程的教材。有些章節及整體框架進行了如下的修改:
● 這次將棧作為集合的第一個示例, 便于更清晰地建立集合的概念。
● 更深入詳細地討論了泛型。
● 擴展了快速排序和歸并排序算法的介紹。
● 算法分析的介紹分到各自的章節中, 并且更加深入。
● 有關測試和調試的內容調整到書中合適的章節中。
● 查找樹和堆的介紹分到不同的章節中。
● 增加了兩章內容, 分別介紹哈希算法和數據庫。
● 每章后面的練習和程序設計項目也進行了更新, 以適應相關內容的調整。
關于對象
關于objects-first(首先介紹對象)、 objects-early(早期介紹對象)和objects-late(推遲介紹對象)這樣的講授方式, 一直是由計算機專業的教師自行掌握的, 根本沒有考慮教學次序的簡單疊加會帶來教學安排及教學效果的差異。我們利用這個機會說明我們的方法。
首先, 本書是純面向對象的, 所以采用了循序漸進的自然方式來介紹。存在于過程式程序設計方法中的一些概念, 如方法和它們的調用, 我們使用的是面向對象的術語進行討論。所以, 沒有由多個方法組成單個類的例子。事實上, 在我們的例子中, 包含main方法的類不再包含其他的方法。
我們從一開始就使用對象這個術語, 并且始終使用面向對象的術語來討論所有的內容。在第1章中給出了面向對象概念的概述, 并在本書中始終強化并充實這些概念。之后立即介紹了Java標準類庫中的類, 實例化了這些類中的對象, 并使用它們提供的各種服務。在前4章中, 學生們學習并編寫的程序只由單個的類組成, 并且其中只含有單一的main方法——不過這些程序在介紹如表達式和條件等這些程序設計的基本概念之外, 都有效地使用了標準庫中預定義的類和對象。
在編寫例子時完全沒有使用第三方的類。那些方法的使用方式與標準類庫中的類(總能使用)是有區別的, 所以容易給學生造成疑惑, 因此我們沒有選用這些內容。凡是例子中使用的非類庫中的每個類, 都在書中給出了全面介紹, 而不會留下任何不可思議的、 隱晦的問題。
要解決的問題仍然存在:是在詳細介紹如何編寫類之前介紹控制結構的內容, 還是把次序倒過來。事實是, 哪種方法都有好處, 教師可以使用任意一種方式。如果先介紹類, 就會先揭示對象的本質及它們的使用方法。但是, 缺乏基本的控制結構的駕馭能力, 此時的例子常常是無趣且沒有實用意義的。本書先介紹控制結構, 然后再介紹類的概念。第4章使用小的、 單個的方法示例來介紹條件和循環的細節, 為第5章多個類的示例打下堅實基礎。
各章安排
第1章(緒論)介紹了Java程序設計語言和基本的程序開發過程。介紹了面向對象的開發方法, 包括相關的概念和術語。這一章還介紹了幫助學生熟悉開發環境所適用的主要參考資料。
第2章(數據和表達式)探討了Java程序中使用的基本數據類型及執行計算時表達式的使用。討論了數據類型之間的轉換, 以及如何借助于Scanner類交互地從用戶讀入輸入。
第3章(使用類和對象)探討了預定義的類及由它們創建的對象的使用。使用類和對象來操作字符串、 產生隨機數、 執行復雜的計算及格式化輸出。本章討論了包、 枚舉類型和包裝類。
第4章(條件和循環)介紹了用于判定的布爾表達式的使用。討論了與條件及循環相關的所有語句, 包括for循環的增強版本。為了分析并讀入文本文件中的重復輸入, 再次討論了Scanner類。
第5章(編寫類)探討了與編寫類及方法相關的基本問題。內容包括實例數據、 可見性、 作用域、 方法參數及返回值類型, 也涉及了構造方法、 方法設計、 靜態數據和方法重載等內容。第二版將測試和調試的內容也放到本章。
第6章(圖形用戶界面)全面研究了Java GUI處理, 重點是組件、 事件和偵聽器。使用多個GUI例子討論了不同類的組件和事件。另外, 也介紹了布局管理器、 容器層次、 邊框、 工具提示和助記符等內容。
第7章(數組)涉及數組的基本概念和數組的處理, 內容包括邊界檢查、 初值表、 命令行參數、 變長參數列表和多維數組等。
第8章(繼承)討論了類的派生及相關的概念, 包括類層次、 重寫及可見性等。重點是強調在軟件設計中繼承的正確使用及它的作用是什么。
第9章(多態)探討了綁定的概念, 以及它與多態的關系。之后研究了如何使用繼承或接口來完成多態引用。與多態相關的設計問題也在這一章介紹。
第10章(異常)介紹了異常處理及不捕獲異常時的后果。探討了try-catch語句, 分析了異常的傳播。本章還介紹了處理輸入/輸出時的異常使用, 給出了一個編寫文本文件的例子。
第11章(遞歸)介紹了遞歸的概念、 遞歸的實現及其正確的用法。在本章的討論中精心選擇了幾個示例, 包括迷宮遍歷和經典的漢諾塔問題。
第12章(算法分析)討論了包括遞歸算法在內的算法復雜度的分析技術, 介紹了大O符號。
第13章(查找與排序)探討了線性查找和二分查找算法, 還介紹了5個排序算法, 其中包括平方階及O(n log n)的算法。同時還研究了這些算法的效率。
第14章(棧)介紹了集合的概念, 確立了將接口與實現分開的重要意義。我們將棧作為集合的第一個例子, 介紹了棧的動態及定長的兩種實現方式。本章介紹了泛型, 詳述了泛型對集合類的支持。
第15章(隊列)介紹了FIFO隊列, 討論了不同的實現選擇。本章首先介紹了隊列的概念, 然后作為工具來幫助我們解決問題, 最后研究所使用的數據結構。討論了基于數組和動態鏈表的兩種實現方式。
第16章(樹)介紹了樹的術語和相關概念, 討論了不同的實現策略, 詳細介紹了遞歸的鏈式實現方法。本章還給出了一個二叉決策樹的示例。
第17章(二叉查找樹)介紹了查找樹的概念, 以及典型的二叉查找樹的鏈式實現。本章還討論了樹的旋轉算法。
第18章(堆和優先隊列)討論了堆的概念, 以及堆與樹的關系。研究了堆的完全鏈式實現方式。我們將優先隊列作為集合來討論, 同時還分析了堆和優先隊列之間的關系。
第19章(圖)討論了有向圖和無向圖。此外, 還介紹了帶權圖、 廣度優先遍歷和深度優先遍歷之間的差別。介紹了最小生成樹, 討論了它的實現策略。
第20章(哈希方法)涉及創建哈希表以便于存儲及獲取對象的相關概念。本章還介紹了Java API中與哈希相關的幾種應用。
第21章(數據庫)探討了數據庫的概念及其管理, 討論了基本的SQL查詢語句。然后探討了在Java程序和數據庫之間建立連接的技術, 以及交互中用到的API。
學生CD考慮到本書定價, 中譯本并未附加CD, 相關資源請登錄華信教育資源網(www.hxedu.com.cn)下載。
書后所帶的CD包括以下內容:
● 書中所有程序的源代碼。
● Java軟件開發工具包(SDK)。
● 各種Java開發環境, 包括NetBeans、 Eclipse、 DrJava、 jGRASP和TextPad。
教師資源教師資源申請方式請參見書末的“教學支持說明”。
下列補充材料只為教師提供。
● 授課幻燈片——Microsoft PowerPoint格式的各章的授課幻燈片。
● 答案——練習及程序設計項目的全部答案。
● 其他資源。
致謝
世界各地的教師和學生們給我們的反饋意見能讓本書更加完善, 歡迎讀者為本書提出任何意見和建議。
Addison-Wesley公司的工作團隊為本書的出版付出了辛勤的勞作。我們非常感謝本書編輯Michael Hirsch的洞察力, 感謝他的助手Stephanie Sellinger所付出的艱苦努力。Nesbitt Graphics的Rose Kernan在本書的出版過程中提供了大量的幫助。我們感謝為確保本書以最高標準面世而做出努力的所有人員。
我們想要感謝世界各地數百位教師和學生為本書提供的原始資料。這些人太多了, 恕我們不能一一列出他們的姓名, 但他們為Java Software Solutions和Java Software Structures提出的所有建議, 都已經體現在本書中。
特別要感謝新澤西大學的Ruth Dannenfelser、 Cory Samaha和Zach Zappala, 感謝他們在數據庫項目解決方案中提供的幫助。同時還要感謝弗吉尼亞理工大學的Jason Snyder和他助手測試了本書的相關代碼及提供的其他幫助。
一些團體, 如ACM Special Interest Group on Computer Science Education(SIGCSE)、 Consortium for Computing Sciences in Colleges(CCSC)和Computer Science Teachers Association(CSTA), 也為本書提供了有用的資源。他們的會議和網上的活動為各類學校的教師提供了機會, 可以共享他們的思路和相關資料。
最后, 感謝在我們忙于本書的編寫時家人的耐心和對我們的支持。
內容簡介:

本書頗具匠心地將程序設計、數據結構等相關課程內容有機地包容在一本書中,解決了這兩門專業基礎課不能很好地銜接的問題。本書從一開始就將重點放在軟件開發實踐方面,在解釋如何編寫類之前先介紹了控制結構,從而使讀者在真正了解基礎程序設計語句之后再學習編寫類代碼。作者還使用數據結構中的內容作為問題導引,在介紹經典算法的同時全面介紹了如何用所學知識解決實際問題。

目錄:

第1章 緒論
1.1 Java程序設計語言
1.2 程序開發
1.3 問題求解
1.4 軟件開發行為
1.5 面向對象程序設計
關鍵概念摘要
自測題
練習
程序設計項目
自測題答案
第2章 數據和表達式
2.1 字符串
2.2 變量和賦值
2.3 基本數據類型
2.4 表達式
2.5 數據轉換
2.6 讀輸入數據
關鍵概念摘要
自測題
練習
程序設計項目
自測題答案
第3章 使用類和對象
3.1 創建對象
3.2 String類
3.3 包
3.4 Random類
3.5 Math類
3.6 格式化輸出
3.7 枚舉類型
3.8 包裝類
關鍵概念摘要
自測題
練習
程序設計項目
自測題答案
第4章 條件和循環
4.1 布爾表達式
4.2 if語句
4.3 數據比較
4.4 switch語句
4.5 while語句
4.6 迭代器
4.7 do語句
4.8 for語句
關鍵概念摘要
自測題
練習
程序設計項目
自測題答案
第5章 編寫類
5.1 再談類和對象
5.2 類的剖析
5.3 封裝
5.4 方法的剖析
5.5 靜態類成員
5.6 類關系
5.7 方法設計
5.8 方法重載
5.9 測試
5.10調試
關鍵概念摘要
自測題
練習
程序設計項目
自測題答案
第6章 圖形用戶界面
6.1 GUI元素
6.2 更多的組件
6.3 布局管理器
6.4 鼠標和鍵盤事件
6.5 對話框
6.6 一些重要細節
6.7 GUI設計
關鍵概念摘要
自測題
練習
程序設計項目
自測題答案
第7章 數組
7.1 數組元素
7.2 數組的聲明及使用
7.3 對象數組
7.4 命令行參數
7.5 變長參數表
7.6 二維數組
關鍵概念摘要
自測題
練習
程序設計項目
自測題答案
第8章 繼承
8.1 創建子類
8.2 方法的重寫
8.3 類層次
8.4 可見性
8.5 設計繼承
關鍵概念摘要
自測題
練習
程序設計項目
自測題答案
第9章 多態
9.1 后綁定
9.2 通過繼承實現多態
9.3 接口
9.4 通過接口實現多態
關鍵概念摘要
自測題
練習
程序設計項目
自測題答案

第10章 異常
10.1 異常處理
10.2 不捕獲異常
10.3 try-catch語句
10.4 異常傳播
10.5 異常類的層次
10.6 I/O異常
關鍵概念摘要
自測題
練習
程序設計項目
自測題答案
第11章 遞歸
11.1 遞歸思想
11.2 遞歸程序設計
11.3 使用遞歸
關鍵概念摘要
自測題
練習
程序設計項目
自測題答案
第12章 算法分析
12.1 算法效率
12.2 增長函數和大O符號
12.3 比較增長函數
關鍵概念摘要
自測題
練習
自測題答案
第13章 查找與排序
13.1 查找
13.2 排序
13.3 分析查找及排序算法
關鍵概念摘要
自測題
練習
程序設計項目
自測題答案

第14章 棧
14.1 集合的介紹
14.2 棧集合
14.3 繼承、 多態和泛型
14.4 棧的ADT
14.5 使用棧: 計算后綴表達式
14.6 異常
14.7 使用數組實現棧
14.8 ArrayStack類
14.9 將引用作為鏈
14.10管理鏈表
14.11沒有鏈的元素
14.12使用鏈實現棧
14.13使用java.util.Stack類實現棧
14.14包
關鍵概念摘要
自測題
練習
程序設計項目
自測題答案
第15章 隊列
15.1 隊列ADT
15.2 使用隊列: 編碼k值
15.3 使用隊列: 模擬票務柜臺
15.4 實現隊列: 使用鏈表
15.5 隊列的實現: 使用數組
關鍵概念摘要
自測題
練習
程序設計項目
自測題答案
第16章 樹
16.1 樹
16.2 樹的遍歷
16.3 樹的實現策略
16.4 二叉樹的實現
16.5 決策樹
關鍵概念摘要
自測題
練習
程序設計項目
自測題答案
第17章 二叉查找樹
17.1 二叉查找樹
17.2 二叉查找樹的實現
17.3 平衡二叉查找樹
關鍵概念摘要
自測題
練習
程序設計項目
自測題答案
第18章 堆和優先隊列
18.1 堆
18.2 堆的實現
18.3 堆排序
18.4 優先隊列
關鍵概念摘要
自測題
練習
程序設計項目
自測題答案
第19章 圖
19.1 無向圖
19.2 有向圖
19.3 帶權圖
19.4 常用的圖算法
19.5 圖的實現策略
關鍵概念摘要
自測題
練習
程序設計項目
自測題答案
第20章 哈希方法
20.1 哈希方法
20.2 哈希函數
20.3 解決沖突
20.4 從哈希表中刪除元素
20.5 Java Collections API中的哈希表
關鍵概念摘要
自測題
練習
程序設計項目
自測題答案
第21章 數據庫
21.1 數據庫介紹
21.2 建立與數據庫連接
21.3 創建并修改數據庫表
21.4 查詢數據庫
21.5 插入、 查看及更新數據
21.6 刪除數據和數據庫表
關鍵概念摘要
自測題
練習
程序設計項目
自測題答案
附錄A 詞匯表
附錄B 數制
附錄C Unicode字符集
附錄D Java運算符
附錄E Java修飾符
附錄F Java圖形
附錄G Java applet
附錄H 正則表達式
附錄I Java文檔生成器
附錄J Java語法
序: