JAVA之电商系统!!
学习之初,没有什么比自己动手写出一个简单较完整的程序来的实在、兴奋。这次的电商系统,结合了之前所学的一大部分知道,方法的封装,调用再实现,实现了管理者登录页面,同时丰富了更多客户端的选择。
如下图所示:
熟练运用到了增、删、查、改,同时在设计程序时,要时刻有面对对象的思维。今后还会持续更新更多的类容。
实现代码如下:
Store.java
public class Store {
private int sid;
private String sname;
private String type;
private double price;
private int snumber;
private String address;
private String unit;
public Store() {
}
public Store(int sid, String sname, String type, double price, int snumber, String address, String unit) {
super();
this.sid = sid;
this.sname = sname;
this.type = type;
this.price = price;
this.snumber = snumber;
this.address = address;
this.unit = unit;
}
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public int getSnumber() {
return snumber;
}
public void setSnumber(int snumber) {
this.snumber = snumber;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
@Override
public String toString() {
return sid +"\t"+ sname + "\t"+ type +"\t"+ price + "\t"+ snumber +"\t"+ address + "\t"+unit;
}
}
StoreManager.java
import java.util.ArrayList;
public class StoreManager {
static ArrayList<Store> list = new ArrayList<>();
/**1商品添加*/
public void addStore(Store sto){
list.add(sto);
}
/**2商品列表*/
public ArrayList<Store> findAll(){
return list;
}
/**3查询指定Id的商品*/
public Store findBySid(int sid){
Store sto = null;
for(Store s:list){
if(s.getSid()==sid){
sto = s;
break;
}
}
return sto;
}
/**4根据商品id删除商品*/
public boolean delete(int sid){
Store sto = findBySid(sid);
if(sto != null){
return list.remove(sto);
}
return false;
}
/**5修改指定商品的价格*/
public boolean updateByPrice(int sid,double price){
Store sto = findBySid(sid);
if(sto != null){
sto.setPrice(price);
return true;
}
return false;
}
/**6修改指定商品的库存*/
public boolean updateBySnumber(int sid,int snumber){
Store sto = findBySid(sid);
if(sto != null){
sto.setSnumber(snumber);
return true;
}
return false;
}
/**7根据商品类别查询所有商品*/
public ArrayList<Store> findByType(String type){
ArrayList<Store> sto = new ArrayList<Store>();
for(Store s:list){
if(s.getType().equals(type)){
sto.add(s);
}
}
return sto;
}
/**8查询指定价格区间的商品信息*/
public ArrayList<Store> findByPrice(double price1,double price2){
ArrayList<Store> sto = new ArrayList<Store>();
for(Store s:list){
if(s.getPrice()>price1&& s.getPrice()<price2){
sto.add(s);
}
}
return sto;
}
}
User.java
public class User {
private String username;
private String password;
public User() {
username = "admin";
password = "admin";
}
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;
}
}
StoreClient.java
import java.util.ArrayList;
import java.util.Scanner;
public class StoreClient {
StoreManager sm = new StoreManager();
User u = new User();
private Scanner sc;
public void denglu(){
msg("请输入你的选择:");
msg("[1]管理员登录");
msg("[2]退出");
sc = new Scanner(System.in);
int i = sc.nextInt();
switch(i){
case 1:
user();
break;
case 2:
default:
msg("谢谢使用!");
System.exit(0);
break;
}
}
public void mune(){
msg("----------------------------------");
msg("---------欢迎来到电商系统----------");
msg("--------【1】商品添加---------------");
msg("--------【2】商品列表-----------------");
msg("--------【3】查看指定ID的商品---------");
msg("--------【4】删除指定ID的商品------------");
msg("--------【5】修改指定商品的价格---------");
msg("--------【6】修改指定商品的库存-----------");
msg("--------【7】根据商品类别查询所有商品--------");
msg("--------【8】查询指定价格区间的商品信息-----");
msg("--------【9】修改管理员密码-------------------");
msg("--------【0】退出-------------------");
msg("请选择");
start();
}
public void start(){
sc = new Scanner(System.in);
int i = sc.nextInt();
switch(i){
case 1://商品添加
add();
break;
case 2://商品列表
list();
break;
case 3://查看指定ID的商品
queryBySid();
break;
case 4://删除指定ID的商品
delete();
break;
case 5://修改指定商品的价格
queryByPrice();
break;
case 6://修改指定商品的库存
queryBySnumber();
break;
case 7://根据商品类别查询所有商品
findTpye();
break;
case 8://查询指定价格区间的商品信息
findPrice();
break;
case 9://修改管理员密码
setPassword();
break;
case 0://退出
default:
msg("谢谢使用!");
System.exit(0);
break;
}
mune();
}
public void add(){
sc = new Scanner(System.in);
msg("请按指定格式输入商品信息:商品ID/名称/类型/单价/库存/生产地/单位");
String s = sc.nextLine();
String[] info = s.split("/");
if(sm.findBySid(Integer.parseInt(info[0]))!=null){
msg("此商品已存在,请重新输入!");
add();
return;
}else{
Store sto = new Store(Integer.parseInt(info[0]), info[1], info[2], Double.parseDouble(info[3]), Integer.parseInt(info[4]), info[5], info[6]);
sm.addStore(sto);
msg("添加成功");
}
}
public void list(){
msg("商品ID\t名称\t类型\t单价\t库存\t生产地\t单位");
for(Store sto:sm.findAll()){
msg(sto);
}
}
public void queryBySid(){
sc = new Scanner(System.in);
msg("请输入需要查询的商品ID:");
int sid = sc.nextInt();
Store sto = sm.findBySid(sid);
if(sto == null){
msg(sid+"号员工不存在,请重新输入");
queryBySid();
return;
}
msg("商品ID\t名称\t类型\t单价\t库存\t生产地\t单位");
msg(sto);
}
public void delete(){
sc = new Scanner(System.in);
msg("请输入需要删除的商品ID:");
int sid = sc.nextInt();
if(sm.delete(sid)){
msg("删除成功");
}else{
msg("删除失败");
}
}
public void queryByPrice(){
sc = new Scanner(System.in);
msg("请输入需要修改的商品ID:");
int sid = sc.nextInt();
msg("输入修改后的金额");
double price = sc.nextDouble();
if(sm.updateByPrice(sid, price)){
msg("修改成功");
}else{
msg("修改失败");
}
}
public void queryBySnumber(){
sc = new Scanner(System.in);
msg("请输入需要修改的商品ID:");
int sid = sc.nextInt();
msg("输入修改后的库存");
int snumber = sc.nextInt();
if(sm.updateBySnumber(sid, snumber)){
msg("修改成功");
}else{
msg("修改失败");
}
}
public void findTpye(){
sc = new Scanner(System.in);
msg("请输入需要查询商品的类别:");
String type = sc.nextLine();
ArrayList<Store> list = sm.findByType(type);
msg("商品ID\t名称\t类型\t单价\t库存\t生产地\t单位");
if(list.size()>0){
for(Store sto:list){
msg(sto);
}
}
}
public void findPrice(){
sc = new Scanner(System.in);
msg("请输入需要查询商品的金额范围:");
double price1 = sc.nextDouble();
double price2 = sc.nextDouble();
ArrayList<Store> list = sm.findByPrice(price1, price2);
msg("商品ID\t名称\t类型\t单价\t库存\t生产地\t单位");
if(list.size()>0){
for(Store sto:list){
msg(sto);
}
}
}
public void setPassword(){
sc = new Scanner(System.in);
msg("请输入需要修改的密码:");
String password = sc.nextLine();
u.setPassword(password);
msg("修改成功!");
msg("请重新输入用户名和密码!");
user();
}
public void user(){
msg("用户名:");
sc = new Scanner(System.in);
String username = sc.nextLine();
msg("密码:");
String password = sc.nextLine();
if(username.equals(u.getUsername()) && password.equals(u.getPassword())){
msg("登陆成功");
mune();
}
msg("登陆失败,请重新输入!");
user();
}
public void msg(Object obj){
System.out.println(obj);
}
public static void main(String[] args) {
new StoreClient().denglu();
}
}