# 1.1 項目目標
## 1.1.1 知識目標
1.面向對象設計的思想
2.流程控制的合理運用
3.數組存儲數據
## 1.1.2 能力目標
該案例著重訓練點在Java中的數組應用,項目綜合面向對象設計的思想,把集合和流程控制結合起來綜合應用;使用對象存儲汽車信息,以提升學生實際編程能力和算法處理能力。
## 1.1.3 素養目標
1.明確數組的創建和使用
2.明確數組是如何存儲數據的
# 1.2 案例描述
汽車銷售系統中,像商城和超市這樣的地方一樣,都需要有自己的產品管理,并且產品的庫存變化有專人記錄管理,這樣才能保證商城和超市正常運轉。
本例要求編寫一個程序實現汽車銷售系統,該系統主要包括用戶和管理員角色。普通用戶可以查詢所有汽車信息、按照品牌查詢汽車信息,購買汽車,查詢賬戶余額,修改賬戶信息,退出系統,管理員可以進行汽車信息查詢、用戶信息查詢、添加汽車信息、刪除用戶信息、修改和刪除汽車信息、退出系統功能。
# 1.3 實現效果
:-: 
:-: 圖1 普通用戶登錄及功能
:-: 
:-: 圖2 管理員登錄及主要功能
:-: 
:-: 圖3 管理員查看所有汽車信息
:-: 
:-: 圖4 管理員查看所有用戶信息
:-: 
:-: 圖5 管理員添加汽車信息
:-: 
:-: 圖6 刪除用戶信息及修改汽車信息
:-: 
:-: 圖7 刪除汽車信息及退出系統
# 1.4 知識點
(1)面向對象設計的思想
(2)流程控制的合理運用
(3)集合框架存儲數據,重點是ArrayList的數據存取操作。
# 1.5 案例分析
## 1.5.1 功能劃分
系統角色劃分為普通用戶和管理員,基本模塊包括:
| 功能點 | 難度| 備注 |
| --------------- | ---------- | ------------------- |
| 用戶登錄 | ★★ | 賬號和密碼判斷是否同時滿足條件 |
| 管理員登錄 | ★★ | 和普通用戶的區分 |
| 普通用戶:查詢所有汽車信息 | ★★★ | 增強型循環遍歷 |
| 普通用戶:按品牌查詢汽車信息 | ★★★★ | 循環遍歷加條件判斷 |
| 普通用戶:購買汽車 | ★★ | 向列表中添加元素 |
| 普通用戶:查詢賬戶余額 | ★★ | 列表單個元素查詢 |
| 普通用戶:修改賬戶信息和退出 | ★★★ | 修改列表元素 |
| 管理員:查看所有汽車信息 | ★★★ | 增強型循環遍歷 |
| 管理員:查看所有用戶信息 | ★★★ | 增強型循環遍歷 |
| 管理員:添加汽車信息 | ★★ | 向列表中添加元素 |
| 管理員:刪除某個用戶信息 | ★★ | 從列表中刪除某個元素 |
| 管理員:修改某個汽車信息 | ★★★ | 更新列表中的某個元素 |
| 管理員:刪除某個汽車信息及退出 | ★★ | 從列表中刪除某個元素 |
| 退出系統 | ★ | 退出循環 |
## 1.5.2 概要設計
純Java版汽車管理銷售系統(eclipse編譯后控制臺運行),分為管理員登陸和用戶登陸,數據用數組存儲,Java控制臺運行管理。
需要創建模型層和服務層,模型層有管理員類Admin、汽車類Car,普通用戶類User和存取用戶模型的數組。在服務層需要創建存儲汽車模型的數組和主類Main。
## 1.5.3 詳細設計
本項目中需要創建的實體類有Cars類、User類和Admin類,然后再服務層創建Main類
:-: 
:-: 圖1 系統類圖
# 1.6 實現要點
本項目中核心要點是實現UserList和CarsList兩個類,分別在對應的類中實現對數據的增刪改查操作,重點是完成功能的實現。每個類核心要點方法如下所示:
:-: 
:-: 圖1 UserList中的核心業務方法
:-: 
:-: 圖2 CarsList中的核心業務方法
?
# 1.7 重難點解析
1.數組可以存儲基本數據類型和對象
2. 數組長度固定
3. 定義數組時必須指定數組元素類型
4. 不能直接獲取數組中實際存儲元素的個數,length用來獲取數組的長度。
本系統沒有涉及太復雜的業務邏輯,只是實現簡單的增刪改查操作。
# 1.8 關鍵代碼
# 1.9 案例總結
本案例是基于數組實現對數據在內存中的存儲,相當來說比較簡單,需要每位同學都能熟練掌握,里面涉及流程控制和面向對象程序設計的思想,比較容易掌握。
::::tabs
:::tab[汽車銷售系統]
汽車銷售系統
:::
:::tab[參考代碼]
暫無提供代碼
:::
::::
- Java基礎企業實踐篇
- 一、Java開發環境搭建
- 1.Java的前世今生
- 2.JVM、JRE和JDK的概念及關系
- 3.Java的跨平臺特性
- 4.Java運行機制
- 5.環境搭建
- 二、程序設計基礎
- 1.掌握代碼基本結構
- 2.熟練寫注釋
- 3.掌握標識符的使用
- 4.掌握關鍵字的使用
- 5.掌握常量的使用
- 6.認識變量
- 7.掌握數據類型的使用
- 8.掌握類型轉換
- 9.掌握作用域
- 10.掌握運算符的使用
- 11.掌握順序結構的使用
- 13.掌握循環結構的使用
- 14.掌握方法的使用
- 15.掌握數組的使用
- 16.掌握修飾符的使用
- 三、面向對象語言基礎
- 1.對象的概念
- 2.類的概念
- 3.類和對象的關系
- 4.面向過程和面向對象的區別
- 5.實訓項目:五子棋游戲設計與實現
- 6.案例練習
- 案例一:地址類
- 案例二:員工類
- 案例三:動物狗類
- 案例四:銀行賬戶類
- 案例五:圖書類
- 四、面向對象概念的理解,類和對象
- 1.類的構成
- 2.屬性
- 3.方法和構造方法
- 4.重載和重寫
- 5.變量的作用域
- 6.成員變量和局部變量
- 7.靜態塊的作用和加載機制
- 8.類生成對象的過程
- 9.對象參數傳遞過程
- 五、封裝,繼承,多態
- 1.理解封裝、繼承、多態的概念和目的
- 2.理解封裝、繼承、多態的實現方法和步驟
- 3.掌握Java訪問修飾符
- 4.理解什么是內部類
- 5.理解this、static、final關鍵字
- 6.實訓項目:租車系統設計與實現
- 六、抽象類和接口
- 1.理解抽象類的概念,為什么要有抽象類
- 2.掌握抽象類的聲明格式
- 3.理解什么是接口,為什么要有接口
- 4.掌握接口的定義與實現
- 5.理解接口和抽象類的區別
- 6.實訓案例
- 案例一:電腦模型(OO實現)
- 案例二:銀行轉賬(OO實現)
- 七、Object類和常用API
- 1.理解什么是API
- 2.掌握Java?API文檔的使用
- 3.理解Java類庫的概念
- 4.掌握Object類并掌握該類中的方法
- 5.掌握String類的應用
- 6.掌握StringBuffer、StringBuilder類的應用
- 7.掌握基本數據類型及其包裝類
- 8.掌握Java日期類
- 八、泛型、集合
- 1.理解泛型的概念和實現語法
- 2.理解Java集合框架三大接口:List、Set、Map
- 3.掌握List接口的實現類ArrayList、LinkedList的使用
- 4.掌握HashSet的使用
- 5.掌握HashMap的使用
- 6.掌握Collections類中提供的靜態方法
- 九、異常和IO技術
- 1.理解異常的概念
- 2.掌握異常的分類和Java常見的異常
- 3.理解掌握Java的異常處理機制
- 4.掌握自定義異常
- 5.理解文件系統和File類
- 6.理解I/O概念和分類
- 7.掌握常見的I/O流對象
- 8.掌握文件流與緩沖流
- 十、泛型的延伸
- 1.理解并掌握泛型的基本原理與具體運作過程
- 2.掌握泛型類的定義
- 3.掌握泛型方法的定義
- 十一、流的延伸
- 1.理解數據流的作用
- 2.掌握對象流的作用
- 3.理解對象序列化的概念
- 5.理解線程死鎖
- 4.理解對象反序列化的概念
- 十二、反射技術
- 1.理解反射的概念
- 2.理解反射的工作原理
- 3.理解Reflection API中相關類的作用
- 十三、多線程技術
- 1.理解多線程的概念
- 2.理解線程的狀態與生命周期
- 3.理解多線程通信
- 4.理解線程同步
- 十四、網絡編程技術
- 1.理解網絡編程常用協議TCP/UDP/HTTP/FTP等基礎知識
- 2.掌握TCP網絡編程連接建立的3次握手和4次揮手的具體過程
- 3.掌握UDP網絡通信工作原理
- 4.掌握Socket通信模型的工作原理
- 十五、圖形化界面
- 5.理解線程死鎖
- 十六、JDBC技術
- 1.熟練掌握JDBCAPI中常用接口的基本概念
- 2.理解JDBC連接數據庫的思路和實現方法
- 3.熟練掌握JDBC連接數據庫的基本步驟
- 4.理解并掌握數據庫連接公共類的設計思路和方法
- 5.熟練掌握JDBC使用公共類連接數據庫的基本步驟
- 6.熟練掌握JDBC操作數據庫的基本步驟
- 7.熟練掌握JDBC操作數據庫的SQL語句
- 8.熟練掌握JDBC操作單表的方法及SQL語句
- 9.熟練掌握JDBC操作多表的方法及SQL語句
- 10.理解事務的基本概念
- 11.熟練掌握JDBC在綜合項目的使用方法(包含:基本數據、業務處理等)
- 十七、課外補充
- 附錄1.各種字符集和編碼詳解
- 項目實訓
- 項目2:汽車銷售系統