项目:完成一个电商系统的商品模块功能,商品类包含以下属性:商品ID, 商品名,类别名,单价,库存量,产地,计量单位等信息,要求实现商品管理功能以及管理员功能,具体如下:
1.管路员登录(账号密码固定admin/admin)
2.修改管理员密码
3.商品添加
4.商品列表
5.查询指定id商品
6.根据商品id删除商品
7.根据id修改商品价格
8.根据id修改指定商品库存
9.根据商品类别查询所有商品
10.查询指定价格区间的商品信息
根据项目要求,我们首先分析题目,知道此项目至少四个类:管理员类、商品类、系统类、测试类。
由于我们决定对此系统进行优化,要求能够对数据进行保存,所以我们用流的相关知识,将数据写入已经创建好的文档中,使其自动读写,以便管理,三个文档分别用于保存商品信息、id、user。
首先是user类,
package com01;
import java.io.Serializable;
@SuppressWarnings("serial")
public class User implements Serializable{
private String userName;
private String password;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User [userName=" + userName + ", password=" + password + "]";
}
}
然后是Goods类
package com01;
import java.io.Serializable;
@SuppressWarnings("serial")
public class Goods implements Serializable {
private int id;
private String name;
private String typeName;
private double price;
private int count;
// 产地
private String placeOrigin;
// 单位
private String units;
public Goods() {
}
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 String getTypeName() {
return typeName;
}
public void setTypeName(String typeName) {
this.typeName = typeName;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public String getPlaceOrigin() {
return placeOrigin;
}
public void setPlaceOrigin(String placeOrigin) {
this.placeOrigin = placeOrigin;
}
public String getUnits() {
return units;
}
public void setUnits(String units) {
this.units = units;
}
@Override
public String toString() {
return "Goods [id=" + id + ", name=" + name + ", typeName=" + typeName + ", price=" + price + ", count=" + count
+ ", placeOrigin=" + placeOrigin + ", units=" + units + "]";
}
}
GoodsSystem类:
package com01;
import java.io.BufferedReader;
import java.io.EOFException;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Scanner;
public class GoodsSystem {
private User user;
private Scanner scanner;
private ArrayList<Goods> goodss;
private int maxId;
public GoodsSystem() {
// TODO Auto-generated constructor stub
getSystemUser();
readMaxId();
readGoodss();
this.scanner = new Scanner(System.in);
}
// 登录
public void login() {
// TODO Auto-generated method stub
String userName;
String password;
System.out.println("欢迎来到德莱Store!");
System.out.print("请输入用户名:");
userName = scanner.nextLine();
System.out.print("请输入密码:");
password = scanner.nextLine();
if (user.getUserName().equals(userName) && user.getPassword().equals(password)) {
System.out.println("登录成功!!!");
menuFromSelect();
} else {
System.out.println("用户名和密码不匹配,请重新输入!");
login();
}
}
// 得到账户中的信息
public void getSystemUser() {
// TODO Auto-generated method stub
File file = new File("E:\\软帝培训\\user.txt");
FileInputStream fis = null;
ObjectInputStream ois = null;
try {
fis = new FileInputStream