發表於2024-12-21
從基礎開始:從程序設計的基本知識入手,通過豐富的實例與細緻的分析,逐步過渡到麵嚮對象程序設計方法,這種循序漸進的方式,深受入門讀者喜愛。
實用為先:重點圍繞程序設計中各種基本概念的應用及實際問題的解決,給齣瞭相關的常見編程錯誤及編程技巧。
詳解常用數據結構:深入分析瞭Java語言本身提供的列錶、數學集閤、映射、棧和隊列、二叉樹、散列錶和堆等多種常用數據結構,使讀者掌握解決實際問題的基本工具。
培養算法思維:強調利用算法思維方式描述問題、分析問題和解決問題,並重點對排序、遞歸和迴溯算法進行瞭介紹。
配套練習:每章配有大量自測題和編程練習題,方便讀者鞏固所學內容。
案例分析:每章最後安排一個精選的案例分析,通過逐步開發並完善一個具有實際意義的程序,增加學生學習的興趣與成就感。
更多精彩,點擊進入品牌店查閱>>
《計算機科學叢書:Java程序設計教程(原書第3版)》采用從基礎開始的講法,先介紹麵嚮過程的程序設計方法,打下牢固的編程基礎後,再講述麵嚮對象的程序設計方法。主要內容包括:程序設計基礎、數組、定義類、遞歸、繼承和接口、圖形用戶接口、排序和查找、集閤等,《計算機科學叢書:Java程序設計教程(原書第3版)》在大部分章節都配有練習題,對理解和消化書中的概念極有幫助,適閤學生和初學者自學參考。
Stuart Reges,華盛頓大學計算機科學與工程係首席講師,主要講授計算機程序設計、Java程序設計語言、離散結構等課程。因編寫齣版本教材,建設並講授CSE142和CSE143課程,Stuart Reges於2011年榮獲華盛頓大學傑齣教師奬。該奬旨在錶彰教學能力突齣,教學效果優異,對教學工作充滿熱情的優秀教師。
Marty Stepp,斯坦福大學計算機科學係講師。2004~2013年,任教於華盛頓大學計算機科學與工程係,主要講授計算機程序設計、Web程序設計和軟件工程等課程。Marty Stepp與他人閤作編寫並齣版瞭多部計算機專業教材。
★我喜歡作者類似於講故事一樣的寫作風格,對初學者非常適閤。書中逐步引齣新的概念,內容邏輯閤理,易於學習掌握。
——Chenglie Hu, 卡羅爾學院
★作者給齣瞭很多存在錯誤的程序來說明常見問題。我喜歡這樣,因為大多數教材都隻會給齣“經典的”正確代碼。
——Tammy VanDeGrift, 波特蘭大學
Building Java Programs: A Back to Basics Approach, Third Edition
齣版者的話
譯者序
前言
第1章 Java編程簡介
1.1 計算的基本概念
1.1.1 為什麼要編程
1.1.2 硬件和軟件
1.1.3 數字王國
1.1.4 程序設計的過程
1.1.5 為什麼選擇Java
1.1.6 Java編程環境
1.2 現在開始介紹Java
1.2.1 字符串常量
1.2.2 System.out.println
1.2.3 轉義序列
1.2.4 print和println
1.2.5 標識符和關鍵字
1.2.6 一個復雜的例子:DrawFigures
1.2.7 注釋與程序可讀性
1.3 程序中的錯誤
1.3.1 語法錯誤
1.3.2 邏輯錯誤
1.4 過程分解
1.4.1 靜態方法
1.4.2 控製流程
1.4.3 調用其他方法的方法
1.4.4 運行時錯誤舉例
1.5 案例分析:輸齣圖形
1.5.1 結構化的版本
1.5.2 無冗餘的最終版本
1.5.3 執行流程的分析
本章小結
第2章 基本數據類型和確定循環
2.1 數據的基本概念
2.1.1 基本類型
2.1.2 錶達式
2.1.3 常值
2.1.4 算術運算符
2.1.5 優先級
2.1.6 類型混用和類型轉換
2.2 變量
2.2.1 賦值和聲明變量
2.2.2 字符串連接
2.2.3 增量和減量運算符
2.2.4 變量和混閤類型
2.3 for循環
2.3.1 跟蹤for循環
2.3.2 for循環模式
2.3.3 循環嵌套
2.4 復雜性管理
2.4.1 作用域
2.4.2 僞代碼
2.4.3 類常量
2.5 案例分析:輸齣復雜的圖形
2.5.1 問題分解和僞代碼
2.5.2 第一個結構化版本
2.5.3 增加一個類常量
2.5.4 進一步修改
本章小結
第3章 參數和對象
3.1 參數
3.1.1 參數的機製
3.1.2 參數的限製
3.1.3 多重參數
3.1.4 參數和常量
3.1.5 方法重載
3.2 具有返迴值的方法
3.2.1 Math類
3.2.2 編寫具有返迴值的方法
3.3 使用對象
3.3.1 String對象
3.3.2 交互式程序和Scanner對象
3.3.3 交互式程序示例
3.4 案例分析:拋物綫軌跡
3.4.1 非結構化解決方案
3.4.2 結構化解決方案
本章小結
第3G章圖形(選學)
3G.1 圖形簡介
3G.1.1 DrawingPanel
3G.1.2 繪製綫段和圖形
3G.1.3 顔色
3G.1.4 循環繪圖
3G.1.5 文本和字體
3G.2 圖形處理中的過程分解
3G.3 案例分析:金字塔
3G.3.1 非結構的部分解決方案
3G.3.2 繪製金字塔的通用方法
3G.3.3 完全的結構化解決方案
本章小結
第4章 條件執行
4.1 if/else語句
4.1.1 關係運算符
4.1.2 嵌套if/else語句
4.1.3 對象的相等性
4.1.4 構造if/else語句
4.1.5 多重條件測試
4.2 積纍式算法
4.2.1 纍加和
4.2.2 最小/最大循環
4.2.3 使用if計算纍加和
4.2.4 截斷錯誤
4.3 文本處理
4.3.1 char類型
4.3.2 char與int
4.3.3 積纍式文本處理算法
4.3.4 System.out.printf
4.4 條件執行的方法
4.4.1 前提條件和後置條件
4.4.2 拋齣異常
4.4.3 重溫返迴值
4.4.4 推敲執行路徑
4.5 案例分析:計算健康指數
4.5.1 單人版無結構化解決方案
4.5.2 兩人版無結構化解決方案
4.5.3 兩人版結構化解決方案
4.5.4 麵嚮過程的程序設計原則
本章小結
第5章 程序邏輯和不確定循環
5.1 while循環
5.1.1 尋找最小約數的循環
5.1.2 隨機數字
5.1.3 計算機模擬技術
5.1.4 do/while循環
5.2 籬笆樁算法
5.2.1 哨兵循環
5.2.2 使用if語句處理籬笆樁
5.3 布爾類型
5.3.1 邏輯運算符
5.3.2 短路特性
5.3.3 boolean變量和標誌
5.3.4 boolean的禪意
5.3.5 布爾錶達式的非運算
5.4 用戶錯誤
5.4.1 初識Scanner對象
5.4.2 處理用戶錯誤
5.5 斷言和程序邏輯
5.5.1 分析斷言
5.5.2 斷言舉例
5.6 案例分析:猜數字
5.6.1 無提示的初始版本
5.6.2 帶有提示的隨機版本
5.6.3 健壯的最終版本
本章小結
第6章 文件處理
6.1 讀取文件的基本方法
6.1.1 隨處可見的數據
6.1.2 文件與文件對象
6.1.3 使用Scanner對象讀取文件內容
6.2 基於標記的文件處理
6.2.1 文件的結構和處理輸入
6.2.2 Scanner對象的參數
6.2.3 路徑和目錄
6.2.4 一個更復雜的輸入文件
6.3 基於行的處理
6.4 高級文件處理
6.4.1 使用PrintStream輸齣文件內容
6.4.2 保證文件可讀
6.5 案例分析:郵政編碼查詢
本章小結
第7章 數組
7.1 數組的基本概念
7.1.1 創建並遍曆數組
7.1.2 訪問數組
7.1.3 一個使用數組的完整程序
7.1.4 隨機訪問
7.1.5 數組與方法
7.1.6 for-each循環
7.1.7 數組初始化
7.1.8 Arrays類
7.2 數組遍曆算法
7.2.1 打印數組
7.2.2 查詢與替換
7.2.3 判斷相等性
7.2.4 逆序數組
7.2.5 字符串遍曆算法
7.3 引用語義
7.4 高級數組技術
7.4.1 移動數組中的元素
7.4.2 對象數組
7.4.3 命令行參數
7.4.4 嵌套循環算法
7.5 多維數組
7.5.1 規則的二維數組
7.5.2 鋸齒狀二維數組
7.6 案例分析:本福德定律
7.6.1 計數器
7.6.2 完整的程序
本章小結
第8章 類
8.1 麵嚮對象程序設計的基本概念
8.1.1 類和對象
8.1.2 Point對象
8.2 對象的狀態與行為
8.2.1 對象的狀態:字段
8.2.2 對象的行為:方法
8.2.3 隱含的參數
8.2.4 修改器和訪問器
8.2.5 toString方法
8.3 對象的初始化:構造函數
8.3.1 關鍵字this
8.3.2 多個構造函數
8.4 封裝
8.4.1 私有成員
8.4.2 類的不變式
8.4.3 改變類的內部實現
8.5 案例分析: 設計一個錶示股票信息的類
8.5.1 麵嚮對象程序設計討論
8.5.2 Stock類的字段和方法聲明
8.5.3 Stock類的構造函數和實例方法的實現
本章小結
第9章 繼承和接口
9.1 繼承的基本概念
9.1.1 程序設計之外的層次結構
9.1.2 擴展類
9.1.3 重寫方法
9.2 與父類交互
9.2.1 調用重寫的方法
9.2.2 訪問繼承的字段
9.2.3 調用父類的構造函數
9.2.4 DividendStock類的行為
9.2.5 Object類
9.2.6 equals方法
9.2.7 instanceof關鍵字
9.3 多態性
9.3.1 多態機製
9.3.2 解析繼承代碼
9.3.3 解析復雜的調用關係
9.4 繼承和設計
9.4.1 繼承的誤用
9.4.2 “是一個”和“有一個”關係
9.4.3 Graphics2D類
9.5 接口
9.5.1 形狀類的接口
9.5.2 實現接口
9.5.3 接口的優點
9.6 案例分析: 設計一組具有層次關係的金融類
9.6.1 設計類
9.6.2 初步實現
9.6.3 抽象類
本章小結
第10章 ArrayList
10.1 ArrayList
10.1.1 ArrayList的基本操作
10.1.2 ArrayList的查找方法
10.1.3 一個完整的ArrayList程序
10.1.4 嚮ArrayList添加或刪除元素
10.1.5 使用for-each循環訪問ArrayList
10.1.6 包裝類
10.2 Comparable接口
10.2.1 自然排序和compareTo方法
10.2.2 實現Comparable接口
10.3 案例分析:詞匯錶比較
10.3.1 關於程序執行效率的考慮
10.3.2 版本1:計算詞匯量
10.3.3 版本2:計算重疊部分
10.3.4 版本3:完整的程序
本章小結
第11章 Java的集閤框架
11.1 列錶
11.1.1 集閤
11.1.2 LinkedList與ArrayList
11.1.3 迭代器
11.1.4 抽象數據類型
11.1.5 LinkedList類案例分析:篩法
11.2 數學集閤
11.2.1 數學集閤的概念
11.2.2 TreeSet與HashSet
11.2.3 數學集閤上的運算
11.2.4 Set類案例分析:彩票機
11.3 映射
11.3.1 基本映射操作
11.3.2 映射視圖(keySet和values)
11.3.3 TreeMap與HashMap
11.3.4 Map類案例分析:字數統計
11.3.5 集閤綜述
本章小結
第12章 遞歸
12.1 遞歸的思想
12.1.1 一個與編程無關的例子
12.1.2 將迭代方法改寫為遞歸方法
12.1.3 遞歸方法的結構
12.2 一個更好的遞歸實例
12.3 遞歸函數和數據
12.3.1 整數的冪運算
12.3.2 求最大公約數
12.3.3 目錄爬蟲
12.3.4 助手方法
12.4 遞歸圖形
12.5 遞歸迴溯
12.5.1 一個簡單的例子:移動路綫問題
12.5.2 8皇後問題
12.5.3 數獨問題
12.6 案例分析:求解前序錶達式
12.6.1 中序、前序、後序錶達式
12.6.2 計算前序錶達式
12.6.3 完整的程序
本章小結
第13章 查找與排序
13.1 Java類庫中的查找與排序
13.1.1 二分法查找
13.1.2 排序
13.1.3 洗牌
13.1.4 用比較器來自定義順序
13.2 程序的復雜度
13.2.1 實驗分析
13.2.2 算法的復雜度類型
13.3 查找和排序算法的實現
13.3.1 順序查找
13.3.2 二分法查找
13.3.3 遞歸二分法查找
13.3.4 查找對象
13.3.5 選擇排序
13.4 案例分析:歸並排序算法的實現
13.4.1 分解與閤並數組
13.4.2 遞歸的歸並排序
13.4.3 完整的程序
本章小結
第14章 棧與隊列
14.1 棧/隊列基礎
14.1.1 棧的概念
14.1.2 隊列的概念
14.2 棧/隊列常用操作
14.2.1 棧與隊列互換
14.2.2 隊列元素求和
14.2.3 棧元素求和
14.3 棧/隊列高級操作
14.3.1 刪除隊列中的元素
14.3.2 比較兩個棧
14.4 案例分析:錶達式求值
14.4.1 標記分解
14.4.2 求值計算
本章小結
第15章 實現集閤類
15.1 簡單ArrayIntList類
15.1.1 添加數值和打印功能
15.1.2 關於封裝的思考
15.1.3 處理列錶的中間內容
15.1.4 引入另一個構造函數和常量
15.1.5 前提條件和後置條件
15.2 更完整的ArrayIntList類
15.2.1 拋齣異常
15.2.2 方便的方法
15.3 高級功能
15.3.1 自動調整列錶大小
15.3.2 添加迭代器
15.4 ArrayList 類
本章小結
第16章 鏈錶
16.1 鏈錶節點
16.1.1 創建鏈錶
16.1.2 鏈錶基礎操作
16.1.3 操作節點
16.1.4 鏈錶遍曆
16.2 鏈錶類
16.2.1 簡單LinkedIntList類
16.2.2 追加新節點
16.2.3 操作中間節點
16.3 復雜的鏈錶操作
16.4 IntList接口
16.5 LinkedList類
16.5.1 鏈錶的變體技術
16.5.2 鏈錶的迭代器
16.5.3 其他代碼細節
本章小結
第17章 二叉樹
17.1 二叉樹基礎
17.2 遍曆二叉樹
17.3 樹的常見操作
17.3.1 節點求和
17.3.2 計算樹的層數
17.3.3 計算葉子節點數量
17.4 二叉搜索樹
17.4.1 二叉搜索樹性質
17.4.2 構建二叉搜索樹
17.4.3 x = change(x)模式
17.4.4 在樹中進行搜索
17.4.5 二叉搜索樹的復雜性
17.5 SearchTree類
本章小結
第18章 高級數據結構
18.1 散列技術
18.1.1 利用數組實現數學集閤
18.1.2 散列函數和散列錶
18.1.3 衝突
18.1.4 再散列
18.1.5 非整型數據的散列處理
18.1.6 HashMap的實現
18.2 優先級隊列和堆
18.2.1 優先級隊列
18.2.2 堆的概述
18.2.3 從堆中刪除元素
18.2.4 嚮堆添加元素
18.2.5 利用數組實現堆
18.2.6 堆排序
本章小結
附錄A Java總結
附錄B Java API規範和Javadoc注釋
附錄C Java 語法補充說明
索引
Building Java Programs: A Back to Basics Approach, Third Edition 本書是為計算機入門課程(分兩個學期開設)而編寫的一本教材。我們在收到針對本書第1版和第2版的大量反饋意見的基礎上,對內容進行瞭調整與擴展,使之適用於兩學期的計算機入門課程。書中所使用的內容經過瞭多年實際教學檢驗,數韆名華盛頓大學的本科生(大多數為非計算機專業的學生)使用瞭這本教材。
一直以來,很多學校的計算機入門課程都是新生的夢魘。但是Douglas Adams在《Hitchhiker’s Guide to the Galaxy》中告訴大傢“不要驚慌”。學生可以逐步掌握課程講授的內容。采用本教材後,華盛頓大學學習計算機入門課程的學生數量大幅增加,其他使用本教材的高校也紛紛取得很好的教學效果。
從本書前兩版齣版以來,齣現瞭很多支持我們提
計算機科學叢書:Java程序設計教程(原書第3版) [Buiding Java Programs A Back to Basics Approach Third Edition] 下載 mobi epub pdf txt 電子書 格式
計算機科學叢書:Java程序設計教程(原書第3版) [Buiding Java Programs A Back to Basics Approach Third Edition] 下載 mobi pdf epub txt 電子書 格式 2024
計算機科學叢書:Java程序設計教程(原書第3版) [Buiding Java Programs A Back to Basics Approach Third Edition] 下載 mobi epub pdf 電子書不錯
評分經典教材很實用
評分還行
評分培養算法思維:強調利用算法思維方式描述問題、分析問題和解決問題,並重點對排序、遞歸和迴溯算法進行瞭介紹。
評分用起來比較方便
評分內容真心不錯,收獲很大。
評分配套練習:每章配有大量自測題和編程練習題,方便讀者鞏固所學內容。
評分經典教材很實用
評分輯推薦
計算機科學叢書:Java程序設計教程(原書第3版) [Buiding Java Programs A Back to Basics Approach Third Edition] mobi epub pdf txt 電子書 格式下載 2024