1 图书管理系统项目演示
图书管理系统分析:
定义Book类完成主界面和选择完成查询所有图书完成添加图书完成删除图书完成修改图书使用Debug追踪调试
2 图书管理系统之标准Book类
我们发现每一本书都有书名和价格,定义一个Book类表示书籍
public class Book {private String name; private double price; public Book() { } public Book(String name, double price) { this.name = name; this.price = price; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; }}
3 图书管理系统之主界面和选择的实现
主界面的内容其实就是通过打印语句打印出来的.但是要注意因为每个操作过后都会重新回到主界面,所以使用while(true)死循环的方式.
public class BookManager {public static void main(String[] args) { while (true) { //这是学生管理系统的主界面 System.out.println("--------欢迎来到学生管理系统--------"); System.out.println("1.查看所有书籍"); System.out.println("2.添加书"); System.out.println("3.删除书"); System.out.println("4.修改书"); System.out.println("5.退出"); System.out.println("请输入你的选择:"); //创建键盘录入对象 Scanner sc = new Scanner(System.in); int num = sc.nextInt(); switch (num) { case 1: // 查看所有书籍 break; case 2: // 添加书籍 break; case 3: // 删除书 break; case 4: // 修改书 break; case 5: // 退出 break; default: System.out.println("输入错误,请重新输入"); break; } } }}
4 图书管理系统之查询所有图书
public class BookManager {public static void main(String[] args) { Map<String, ArrayList<Book>> map = new HashMap<>(); // 创建集合对象,用于存储学生数据 ArrayList<Book> it = new ArrayList<Book>(); it.add(new Book("Java入门到精通", 99)); it.add(new Book("PHP入门到精通", 9.9)); map.put("it书籍", it); ArrayList<Book> mz = new ArrayList<Book>(); mz.add(new Book("西游记", 19)); mz.add(new Book("水浒传", 29)); map.put("名著", mz) while (true) { //这是学生管理系统的主界面 System.out.println("--------欢迎来到学生管理系统--------"); System.out.println("1.查看所有书籍"); System.out.println("2.添加书"); System.out.println("3.删除书"); System.out.println("4.修改书"); System.out.println("5.退出"); System.out.println("请输入你的选择:"); //创建键盘录入对象 Scanner sc = new Scanner(System.in); int num = sc.nextInt(); switch (num) { case 1: // 查看所有书籍 findAllBook(map); break; case 2: // 添加书籍 break; case 3: // 删除书 break; case 4: // 修改书 break; case 5: // 退出 System.out.println("谢谢你的使用"); System.exit(0); // JVM退出 break; default: System.out.println("输入错误,请重新输入"); break; } } } private static void findAllBook(Map<String, ArrayList<Book>> map) { System.out.println("类型\t\t书名\t价格"); Set<Map.Entry<String, ArrayList<Book>>> entries = map.entrySet(); for (Map.Entry<String, ArrayList<Book>> entry : entries) { String key = entry.getKey(); System.out.println(key); ArrayList<Book> value = entry.getValue(); for (Book book : value) { System.out.println("\t\t" + book.getName() + "\t" + book.getPrice()); } } }}
5 图书管理系统之添加图书
private static void addBook(Map<String, ArrayList<Book>> map) {// 创建键盘录入对象 Scanner sc = new Scanner(System.in); System.out.println("请输入要添加书籍的类型:"); String type = sc.next(); System.out.println("请输入要添加的书名:"); String name = sc.next(); System.out.println("请输入要添加书的价格:"); double price = sc.nextDouble(); Book book = new Book(name, price); // 拿到书籍列表 ArrayList<Book> books = map.get(type); if (books == null) { // 如果书籍列表不存在创建一个书籍列表 books = new ArrayList<>(); map.put(type, books); } // 将书添加到集合中 books.add(book); System.out.println("添加" + name + "成功");}
6 图书管理系统之删除图书
private static void deleteBook(Map<String, ArrayList<Book>> map) {// 创建键盘录入对象 Scanner sc = new Scanner(System.in); System.out.println("请输入要删除书籍的类型:"); String type = sc.next(); System.out.println("请输入要删除的书名:"); String name = sc.next(); // 拿到书籍列表 : 用Map集合的 ArrayList<Book> books = map.get(type); if (books == null) { System.out.println("您删除的书籍类型不存在"); return; } for (int i = 0; i < books.size(); i++) { Book book = books.get(i); if (book.getName().equals(name)) { books.remove(i); // 找到这本书,删除这本书 System.out.println("删除" + name + "书籍成功"); return; // 删除书籍后结束方法 } } System.out.println("没有找到" + name + "书籍");}
7 图书管理系统之修改图书
private static void editBook(Map<String, ArrayList<Book>> map) {// 创建键盘录入对象 Scanner sc = new Scanner(System.in); System.out.println("请输入要修改书籍的类型:"); String type = sc.next(); System.out.println("请输入要修改的书名:"); String oldName = sc.next(); System.out.println("请输入新的书名:"); String newName = sc.next(); System.out.println("请输入新的价格:"); double price = sc.nextDouble(); // 拿到书籍列表 ArrayList<Book> books = map.get(type); // 根本不不像一个技术人员 if (books == null) { System.out.println("您修改的书籍类型不存在"); return; } for (int i = 0; i < books.size(); i++) { Book book = books.get(i); if (book.getName().equals(oldName)) { // 找到这本书,修改这本书 book.setName(newName); book.setPrice(price); System.out.println("修改成功"); return; // 修改书籍后结束方法 } } System.out.println("没有找到" + oldName + "书籍");}
8 Debug追踪调试
之前我们看程序的执行流程都是通过System.out.println();但是有不能让程序执行到某条语句后停下来,也不能看到程序具体的执行步骤.而是执行完所有的语句程序结束了。
断点调试可以查看程序的执行流程和暂停程序.可以快速解决程序中的bug
Debug调试窗口介绍
举报/反馈

黑马程序员

6.7万获赞 2.3万粉丝
国内公认的好口碑IT教育培训机构。
黑马程序员官方账号,优质教育领域创作者
关注
0
0
收藏
分享