?? 不爱生姜不吃醋
声明:
原创不易,转载请注明原链接 ??
看完之后觉得不错的话麻烦动动小手点个赞赞吧
如果本文有什么错误的话欢迎在评论区中指正哦
大家的支持就是我最大的动力!冲啊!
与其明天开始,不如现在行动!
Java案例 | 学籍管理系统(超详解 )
文章目录
- 一、购书系统
-
- 1.前言
- 2.功能介绍
- 3.分析
- 二、图书类(Book)
-
- 1.类名及属性
- 2.代码示例
- 三、订单项类(OrderItem)
-
- 1.类名及属性
- 2.代码示例
- 四、订单类(Order)
-
- 1.类名及属性
- 2.代码示例
- 五、测试类(Test)
-
- 1.编写打印图书信息的方法
- 2.编写购买图书的方法
- 3.编写打印订单信息方法
- 4.编写main方法
- 六、总结
一、购书系统 1.前言 伴随着互联网的飞速发展,网络购书系统作为电子商务的一种形式,正以其高效、低成本的优势逐步成为新兴的经营模式,人们已经不再满足互联网的用途仅仅局限于信息的浏览和发布,更渴望着能够充分享受互联网所带来的更多便利。网络购书系统正适应了当今社会的快节奏生活,使更多顾客可以足不出户就能方便快捷地购买自己喜欢的图书。
2.功能介绍 使用Java语言编写一个基于控制台的购书系统,实现购书功能。输出所有图书的信息:每本书的编号、书名、单价、库存。
在顾客购买书时,根据提示输入图书编号来选购需要的书,并根据提示输入购买书的数量。
购买完毕后输出顾客的订单信息,包括:订单号、订单明细、订单总额。
3.分析
- 需要创建三个实体类:图书类、订单项类、订单类。
- 由于购买图书时,需要选择图书的数量,所以需要在订单项类里定义获取图书对象以及图书数量的方法。
- 由于需要指定订单项以及获取订单的订单列表、订单号、订单总额等信息,所以需要有订单列表、订单号、订单总额指定订单项等方法。
- 图书编号(id)
- 图书名称(name)
- 图书单价(price)
- 库存数量(storage)
/*
定义图书类
*/
public class Book {
private int id;
private String name;
private double price;
private int stock;
//无参构造
public Book() {
}
//带四个参数的构造
public Book(int id, String name, double price, int stock) {
this.id = id;
this.name = name;
this.price = price;
this.stock = stock;
}public int getId() {
return id;
}public void setId(int id) {
this.id = id;
}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;
}public int getStock() {
return stock;
}public void setStock(int stock) {
this.stock = stock;
}
}
三、订单项类(OrderItem) 1.类名及属性
- 图书(book)
- 购买数量(num)
/*
定义订单项类
*/
public class OrderItem {
private Book book;
private int num;
public OrderItem() {
}
public OrderItem(Book book, int num) {
this.book = book;
this.num = num;
}public Book getBook() {
return book;
}public void setBook(Book book) {
this.book = book;
}public int getNum() {
return num;
}public void setNum(int num) {
this.num = num;
}
}
四、订单类(Order) 1.类名及属性
- 订单号(orderID)
- 订单总额(total)
- 订单项列表(items)
/*
订单类
*/
public class Order {
private String orderID;
private OrderItem[] items = new OrderItem[3];
private double totalMoney;
public Order() {
}public Order(String orderID) {
this.orderID = orderID;
}public String getOrderID() {
return orderID;
}public void setOrderID(String orderID) {
this.orderID = orderID;
}public OrderItem[] getItems() {
return items;
}public void setItems(int i,OrderItem item) {
items[i]=item;
}public double getTotalMoney() {
for (int i = 0;
i < items.length;
i++) {
totalMoney += items[i].getNum()*items[i].getBook().getPrice();
}
return totalMoney;
}
}
五、测试类(Test) 1.编写打印图书信息的方法
/*
打印图书信息的方法
*/
private static void printBooks(Book[] books) {
books[0]=new Book(1,"Java2实用教程",10,20);
books[1]=new Book(2,"计算机网络原理",20,20);
books[2]=new Book(3,"概率论数理统计",30,20);
System.out.println("图书编号\t图书名称\t\t\t图书单价\t图书库存");
for (int i = 0;
i < books.length;
i++) {
Book b=books[i];
System.out.println("\t"+b.getId() +"\t\t"+b.getName()+"\t\t"+b.getPrice()+"\t\t"+b.getStock());
}
}
2.编写购买图书的方法
/*
购买图书的方法
*/
private static Order buy(Book[] books) {
Order order = new Order("001");
Scanner sc=new Scanner(System.in);
for (int i = 0;
i < books.length;
i++) {
System.out.println("请输入图书的编号:");
int id = sc.nextInt();
System.out.println("请输入购买的数量:");
int num = sc.nextInt();
OrderItem item = new OrderItem(books[id-1],num);
order.setItems(i,item);
}
return order;
}
3.编写打印订单信息方法
/*
打印订单信息方法
*/
private static void printInfo(Order order) {
System.out.println("订单编号:"+order.getOrderID());
System.out.println("图书名称\t\t图书单价\t购买的数量");
OrderItem[] items = order.getItems();
for (int i = 0;
i < items.length;
i++) {
System.out.println(items[i].getBook().getName()+"\t"+items[i].getBook().getPrice()+"\t\t"+items[i].getNum());
}
System.out.println("----------------------------------");
System.out.println("总金额:"+order.getTotalMoney());
}
4.编写main方法
public static void main(String[] args) {
Book[] books = new Book[3];
//调用打印图书信息的方法
printBooks(books);
//调用购买图书的方法
Order order = buy(books);
//调用打印订单信息方法
printInfo(order);
}
六、总结 【Java基础案例|【Java案例】购书系统(超详细)】通过本实例学会分析“基于控制台的购书系统”程序任务实现的逻辑思路,掌握并理解面向对象的程序设计,包和访问控制修饰符的使用。
本文中若是有出现的错误请在评论区或者私信指出,我再进行改正优化,如果文章对你有所帮助,请给博主一个宝贵的三连,感谢大家!!!
文章图片
推荐阅读
- 多线程|关于可见性
- Java基础案例|Java基础案例 | 第二弹(持续更新...xdm冲啊)
- Java基础案例|Java案例 | 学籍管理系统(超详解 )
- Java基础案例|Java基础案例 | 第一弹(持续更新...冲冲冲)
- MATLAB学习|MATLAB运用——计算三维物体的质心(水花号)
- java|卷不动了(300 秒快速了解 Java 9 - 16 新特性,助你脱离内卷)
- 敏捷开发|先测试再开发(TDD测试驱动开发了解一下?)
- Linux|我所理解的CPU中断
- cgb2112 day01 2021.12.30 语言基础第一天(Java开发环境(编译期/运行期)、IDEA下载使用)