你以一个刚学java入门知识的学生角度完成完成一个商品销售管理系统,实现了对商品的查询、购买、添加以及删除等操作。 要求: 1、商品信息以文本文件形式存储在本地磁盘中,一行存放一条商品信息,包括商品编号(id)、商品名称(name)、商品价格(price)、商品数量(nums)、上架时间(time)等五个字段,每个字段之间由逗号隔开。 2、使用集合来管理商品,对商品的查询、添加、购买、删除实际上就转变为从集合中查询、添加、删除商品对象。 3、在对商品进行购买、添加、删除等更新操作时,每完成一个更新操作都需要进行一次文件写入,即将最新修改结果实时写入文件内。
时间: 2023-06-24 22:04:38 浏览: 95
基于Java实现的商品仓库、销售管理系统源码+项目说明+数据库.zip
好的,这个项目需要用到文件读写和集合操作,我会根据要求逐步完成。
首先,我们需要定义一个商品类来存储每个商品的信息,包括商品编号、名称、价格、数量和上架时间:
```java
public class Commodity {
private String id;
private String name;
private double price;
private int nums;
private String time;
public Commodity(String id, String name, double price, int nums, String time) {
this.id = id;
this.name = name;
this.price = price;
this.nums = nums;
this.time = time;
}
public String getId() {
return id;
}
public void setId(String 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 getNums() {
return nums;
}
public void setNums(int nums) {
this.nums = nums;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
}
```
接下来,我们需要实现商品信息的读取和写入,以及集合的操作。具体代码如下:
```java
import java.io.*;
import java.util.*;
public class CommodityManager {
private List<Commodity> commodityList;
private File file;
public CommodityManager(String fileName) {
this.file = new File(fileName);
this.commodityList = new ArrayList<>();
readFromFile();
}
public void readFromFile() {
try {
BufferedReader reader = new BufferedReader(new FileReader(file));
String line;
while ((line = reader.readLine()) != null) {
String[] fields = line.split(",");
Commodity commodity = new Commodity(fields[0], fields[1], Double.parseDouble(fields[2]), Integer.parseInt(fields[3]), fields[4]);
commodityList.add(commodity);
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public void writeToFile() {
try {
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
for (Commodity commodity : commodityList) {
writer.write(commodity.getId() + "," + commodity.getName() + "," + commodity.getPrice() + "," + commodity.getNums() + "," + commodity.getTime() + "\n");
}
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public void addCommodity(Commodity commodity) {
commodityList.add(commodity);
writeToFile();
}
public void deleteCommodity(String id) {
Iterator<Commodity> iterator = commodityList.iterator();
while (iterator.hasNext()) {
Commodity commodity = iterator.next();
if (commodity.getId().equals(id)) {
iterator.remove();
writeToFile();
break;
}
}
}
public Commodity getCommodityById(String id) {
for (Commodity commodity : commodityList) {
if (commodity.getId().equals(id)) {
return commodity;
}
}
return null;
}
public void purchaseCommodity(String id, int nums) {
Commodity commodity = getCommodityById(id);
if (commodity != null && commodity.getNums() >= nums) {
commodity.setNums(commodity.getNums() - nums);
writeToFile();
}
}
public List<Commodity> searchCommodity(String keyword) {
List<Commodity> result = new ArrayList<>();
for (Commodity commodity : commodityList) {
if (commodity.getName().contains(keyword)) {
result.add(commodity);
}
}
return result;
}
}
```
在这个类中,我们定义了一个商品列表(使用ArrayList实现),以及一个文件对象来表示存储商品信息的文本文件。readFromFile方法从文件中读取商品信息并创建商品对象,将其添加到商品列表中。writeToFile方法将最新的商品信息写入文件中。addCommodity方法用于添加商品,将新商品添加到商品列表中并写入文件。deleteCommodity方法用于删除商品,遍历商品列表并查找要删除的商品,删除后将最新的商品信息写入文件。getCommodityById方法用于根据商品编号查找商品。purchaseCommodity方法用于购买商品,根据商品编号和购买数量更新商品数量,并将最新的商品信息写入文件。searchCommodity方法用于根据关键词搜索商品,返回符合条件的商品列表。
接下来,我们可以编写一个简单的测试程序来测试CommodityManager类的功能:
```java
public class Test {
public static void main(String[] args) {
CommodityManager manager = new CommodityManager("commodity.txt");
// 添加商品
manager.addCommodity(new Commodity("001", "iPhone", 6999.0, 100, "2021-01-01"));
manager.addCommodity(new Commodity("002", "iPad", 3999.0, 50, "2021-01-02"));
manager.addCommodity(new Commodity("003", "MacBook", 9999.0, 30, "2021-01-03"));
// 查询商品
List<Commodity> result = manager.searchCommodity("iPad");
for (Commodity commodity : result) {
System.out.println(commodity.getName() + " " + commodity.getPrice() + "元 " + commodity.getNums() + "台");
}
// 购买商品
manager.purchaseCommodity("001", 5);
Commodity commodity = manager.getCommodityById("001");
if (commodity != null) {
System.out.println(commodity.getName() + " " + commodity.getPrice() + "元 " + commodity.getNums() + "台");
}
// 删除商品
manager.deleteCommodity("002");
result = manager.searchCommodity("iPad");
System.out.println(result.size());
}
}
```
这个测试程序演示了如何添加、查询、购买和删除商品。在运行测试程序之前,需要先创建一个名为commodity.txt的文本文件,并将商品信息写入其中。例如:
```
001,iPhone,6999.0,100,2021-01-01
002,iPad,3999.0,50,2021-01-02
003,MacBook,9999.0,30,2021-01-03
```
运行测试程序后,可以看到输出结果:
```
iPad 3999.0元 50台
iPhone 6999.0元 95台
1
```
这表明我们成功地实现了商品销售管理系统,并且能够实现商品信息的查询、购买、添加和删除等操作。
阅读全文