java最终考核项目(实现商品管理系统)
文章目錄
- 首先聲明一點,java這門語言其實博主是個小白,有很多小細節(jié)沒考慮進去,大家有需要的私下各自完善一下,還請各位大佬多多諒解,謝謝,祝大家取得好成績,沖沖沖,加油!!!
- 第一步:
- 第二步:
- 第三步:
- 第四步:
- 第五步:
- 第六步:
- 第七步:
- 第八步:
- 第九步:
首先聲明一點,java這門語言其實博主是個小白,有很多小細節(jié)沒考慮進去,大家有需要的私下各自完善一下,還請各位大佬多多諒解,謝謝,祝大家取得好成績,沖沖沖,加油!!!
題目:
1)選擇登陸要求輸入用戶名密碼和驗證碼,輸入錯誤要求給出相應的提示信息
2)選擇注冊要求輸入用戶名,密碼,確認密碼,驗證碼(4位)
如果兩次密碼不一致,或者驗證碼不正確都將導致注冊失敗,給出提示信息
如果用戶名已被使用,則該用戶注冊失敗,也應給與相應的提示信息
3)登錄成功進入主菜單,呈現(xiàn)如下:
1.熱門商品
2.商品查詢
3.后臺管理
4)選擇熱門商品將呈現(xiàn)銷量最高的10件商品的序號(從1開始顯示的序列)、商品名稱、銷量
用戶選擇序號后可以查看該商品的詳細信息(商品名稱、品牌、價格、類型)
5)選擇商品查詢可以顯示以下菜單:
1.品牌查詢
2.價格查詢
6)選擇品牌查詢,可以輸入品牌名稱,顯示該品牌的所有商品(序號、名稱、品牌),選擇序號可以查看詳細信息,參考4)
7)選擇價格查詢,可以輸入價格區(qū)間,顯示該價格范圍內的所有商品(序號、名稱、價格),選擇序號可以查看詳細信息,參考4)
8)選擇后臺管理,顯示以下菜單:
1.新增商品
2.修改價格
3.刪除商品
9)選擇新增商品,需要輸入商品名稱、價格、品牌、類型,該商品將保存至系統(tǒng)
10)選擇修改價格,呈現(xiàn)所有商品的品牌(序號、品牌名稱),選擇序號后呈現(xiàn)該品牌下所有商品信息(序號、商品名稱、價格),輸入新的價格,提示用戶是否需要保存該價格
11)選擇刪除商品,呈現(xiàn)所有商品的品牌(序號、品牌名稱),選擇序號后呈現(xiàn)該品牌下所有商品信息(序號、商品名稱),選擇序號后提示是否刪除,確認后刪除
12)所有菜單以及選項可以按0返回上一層
第一步:
package com.igeek.dao; import com.igeek.data.Database; import com.igeek.pojo.Brand; import com.igeek.pojo.Goods;import java.util.ArrayList; import java.util.List;package com.igeek.dao; import com.igeek.data.Database; import com.igeek.pojo.Brand; import com.igeek.pojo.Goods;import java.util.ArrayList; import java.util.List;public class BrandDao {Database dataBaseOne;List<Goods>goodsListTwo;public BrandDao(Database dataBaseOne) {this.dataBaseOne = dataBaseOne;}/*** 根據(jù)品牌名稱查詢* @param brandName* @return*/public List<Goods> findByName(int brandName){Goods goods=null;goodsListTwo=new ArrayList<>();List<Goods>goodsListOne=dataBaseOne.getGoods();for(int i=0;i<goodsListOne.size();i++){goods=goodsListOne.get(i);if(goods.getBrandNumber()==brandName){goodsListTwo.add(goods);}}return goodsListTwo;}public Brand findByID(int number){Brand brand=null;List <Brand> list1=dataBaseOne.getBrand();for(int i=0;i<list1.size();i++){if(list1.get(i).getBrandNumber()==number){brand=list1.get(i);break;}}return brand;}/*** 查詢所有品牌* @return*/public List<Brand> findAll(){List<Brand>brandListOne=new ArrayList<>();List<Goods>goodsListOne=dataBaseOne.getGoods();for(int i=0;i<goodsListOne.size();i++){if(reapeat(brandListOne,goodsListOne.get(i))==true){Goods goods=goodsListOne.get(i);String name = idChangeName(goods.getBrandNumber());Brand brand=new Brand(i+1,name);brandListOne.add(brand);}}return brandListOne;}public boolean reapeat(List<Brand>list,Goods goods){boolean a=true;for(int i=0;i<list.size();i++){if(list.get(i).getBrandNumber()==goods.getBrandNumber()){a=false;}}return a;}public int nameChangeID(String name){int n=0;for(int i=0;i<dataBaseOne.getBrand().size();i++){if(name.equals(dataBaseOne.getBrand().get(i).getName())){n=i+1;}}return n;}public String idChangeName(int ID){String name=null;for(int i=0;i<dataBaseOne.getBrand().size();i++){if(ID==dataBaseOne.getBrand().get(i).getBrandNumber()){name=dataBaseOne.getBrand().get(i).getName();}}return name;}}第二步:
package com.igeek.dao; import com.igeek.data.Database; import com.igeek.pojo.Goods; import java.util.ArrayList; import java.util.List;public class GoodsDao {Database dataBaseOne;List<Goods> goods=new ArrayList<>();List<Goods> goodsList = new ArrayList<>();public GoodsDao(Database database1) {this.dataBaseOne = database1;}/*** 查找銷量前10的商品** @return*/public List<Goods> findHotGoods() {List<Goods> goods2 = dataBaseOne.getGoods();for(int i=0;i<goods2.size()-1;i++){for(int j=0;j<goods2.size()-1-i;j++){Goods goods=new Goods();if(goods2.get(j).getConsume()<goods2.get(j+1).getConsume()){goods=goods2.get(j);goods2.set(j, goods2.get(j+1));goods2.set(j+1, goods);}}}return goods2;}/*** 根據(jù)品牌編號查詢商品** @param brandId* @return*/public List<Goods> findByBrandId(int brandId) {Goods goods3 = null;List<Goods> goodsList1 = dataBaseOne.getGoods();for (int i = 0; i < goodsList1.size(); i++) {goods3 = goodsList1.get(i);if (brandId == goods3.getBrandNumber()) {goods.add(goods3);}}return goods;}/*** 根據(jù)價格范圍查詢商品** @param minPrice* @param maxPrice* @return*/public List<Goods> findByPrice(int minPrice, int maxPrice) {Goods goods1 = null;List<Goods> goodsList1 = dataBaseOne.getGoods();for (int i = 0; i < goodsList1.size(); i++){goods1 = goodsList1.get(i);if (goods1.getPrice() > minPrice && goods1.getPrice() < maxPrice) {goodsList.add(goods1);}}return goodsList;}/*** 新增商品** @param goods*/public void insert(Goods goods) {dataBaseOne.getGoods().add(goods);}/*** 修改價格** @param goodsId* @param price*/public void modify(int goodsId, double price) {List<Goods> goodsList1 = dataBaseOne.getGoods();for (int i = 0; i < dataBaseOne.getGoods().size(); i++) {Goods goods1 = goodsList1.get(i);if (goods1.getGoodID() == goodsId) {goods1.setPrice(price);}}}/*** 刪除商品** @param goodsId*/public void delete(int goodsId) {List<Goods> goodsList = dataBaseOne.getGoods();for (int i = 0; i < dataBaseOne.getGoods().size(); i++) {Goods goods = goodsList.get(i);if(goods.getGoodID() == goodsId){goodsList.remove(goods.getBrandNumber()-1);}}}public void addDatabase(String name,int price,int brandNumber,String type){Goods goods=new Goods(name,price,brandNumber,type);goods.setGoodID(dataBaseOne.getGoods().size()+1);goods.setBrandNumber(1);dataBaseOne.getGoods().add(goods);}public List<Goods> findAllGoods(){List<Goods> list=dataBaseOne.getGoods();return list;}public Goods findByFoodID(int number){Goods goodsOne=null;for (int i = 0; i < dataBaseOne.getGoods().size(); i++) {if(number==dataBaseOne.getGoods().get(i).getGoodID()){goodsOne=dataBaseOne.getGoods().get(i);break;}}return goodsOne;}}第三步:
package com.igeek.dao;import com.igeek.data.Database; import com.igeek.pojo.User;public class UserDao {Database dataBaseOne;public UserDao(Database databaseOne) {this.dataBaseOne = databaseOne;}/*** 根據(jù)用戶名查找用戶* @param userName* @return*/public User findByName(String userName){User user =null;for (User users:dataBaseOne.getUser()) {if((users.getUser()).equals(userName)){ user=users;break;}}return user;}/*** 新增用戶* @param user*/public void inSert(User user){dataBaseOne.getUser().add(user);} }第四步:
package com.igeek.pojo;/*** 品牌*/ public class Brand {//品牌編號private int brandnumber;//品牌名稱private String name;public Brand(int brandnumber, String name) {this.brandnumber = brandnumber;this.name = name;}public int getBrandnumber() {return brandnumber;}public void setBrandnumber(int brandnumber) {this.brandnumber = brandnumber;}public String getName() {return name;}public void setName(String name) {this.name = name;} }第五步:
package com.igeek.pojo;/*** 商品類*/ package com.igeek.pojo;/*** 商品類*/ public class Goods {public Goods(int goodsNumber) {this.goodsID = goodsNumber;}//商品編號private int goodsID;//名稱private String name;//價格private double price;//銷量private int consume;public Goods() {}//品牌編號private int brandNumber;//類型private String type;public Goods(String name, double price, int brandNumber, String type) {goodsID=goodsID+1;this.name = name;this.price = price;this.brandNumber = brandNumber;this.type = type;}public Goods(int goodsNumber, String name, int price, int consume, int brandNumber, String type) {this.goodsID = goodsNumber;this.name = name;this.price = price;this.consume = consume;this.brandNumber = brandNumber;this.type = type;}public int getGoodID() {return goodsID;}public void setGoodID(int goodsNumber) {this.goodsID = goodsNumber;}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 getConsume() {return consume;}public void setConsume(int consume) {this.consume = consume;}public int getBrandNumber() {return brandNumber;}public void setBrandNumber(int brandNumber) {this.brandNumber = brandNumber;}public String getType() {return type;}public void setType(String type) {this.type = type;} }第六步:
package com.igeek.pojo;/*** 用戶類*/ public class User {//用戶名String user;//密碼String password;public void setUserID(int userID) {this.userID = userID;}//IDint userID;public User(String user, String password, int userID) {this.user = user;this.password = password;this.userID = userID;}public User(String user, String password) {this.user = user;this.password = password;}public String getUser() {return user;}public void setUser(String user) {this.user = user;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;} }第七步:
package com.igeek.data;import com.igeek.pojo.Brand; import com.igeek.pojo.Goods; import com.igeek.pojo.User;import java.util.ArrayList; import java.util.List;public class Database {//存儲所有的用戶信息List<User> user=new ArrayList<>();//存儲所有的商品信息List<Goods> goods=new ArrayList<>();//存儲所有的品牌信息List<Brand> brand=new ArrayList<>();public List<User> getUser() {return user;}public void setUser(List<User> user) {this.user = user;}public List<Goods> getGoods() {return goods;}public void setGoods(List<Goods> goods) {this.goods = goods;}public List<Brand> getBrand() {return brand;}public void setBrand(List<Brand> brand) {this.brand = brand;}public Database() {User a=new User("艾某","123",01);User b=new User("丘比特","456",02);Goods good1=new Goods(1,"蘋果",20,30,1,"水果");Goods good2=new Goods(2,"火龍果",30,40,1,"水果");Goods good3=new Goods(3,"香蕉",30,50,1,"水果");Goods good4=new Goods(4,"梨",30,60,1,"水果");Goods good5=new Goods(5,"玩具車",700,70,2,"玩具");Goods good6=new Goods(6,"玩具小飛機",550,55,2,"玩具");Goods good7=new Goods(7,"坦克",500,90,2,"玩具");Goods good8=new Goods(8,"華碩筆記本",5001,50,3,"電子產品");Goods good9=new Goods(9,"惠普筆記本",5000,49,3,"電子產品");Goods good10=new Goods(10,"華為 p30",3000,30,3,"電子產品");Goods good11=new Goods(11,"華為 p40",4000,35,3,"電子產品");Brand brand1=new Brand(1,"水果系列");Brand brand2=new Brand(2,"玩具系列");Brand brand3=new Brand(3,"電子產品系列");//初始化用戶信息user.add(a);user.add(b);//初始化品牌信息goods.add(good1);goods.add(good2);goods.add(good3);goods.add(good4);goods.add(good5);goods.add(good6);goods.add(good7);goods.add(good8);goods.add(good9);goods.add(good10);goods.add(good11);//初始化商品信息brand.add(brand1);brand.add(brand2);brand.add(brand3);} }第八步:
package com.igeek.service;import com.igeek.dao.BrandDao; import com.igeek.dao.GoodsDao; import com.igeek.dao.UserDao; import com.igeek.data.Database; import com.igeek.pojo.Brand; import com.igeek.pojo.Goods; import com.igeek.pojo.User;import java.awt.*; import java.util.*; import java.util.List;/*** 商品管理系統(tǒng)*/ public class GoodsService {private BrandDao brandDao;private UserDao userDao;private GoodsDao goodsDao;public GoodsService(Database dataBaseOne) {this.brandDao = new BrandDao(dataBaseOne);this.userDao = new UserDao(dataBaseOne);this.goodsDao = new GoodsDao(dataBaseOne);start();}private int userID = 100;Scanner scanners = new Scanner(System.in);/*** 構造方法** @param database*//*** 起始菜單*/public void start() {System.out.println("1. 登錄");System.out.println("2. 注冊");System.out.println("3. 退出系統(tǒng)");int choices = scanners.nextInt();switch (choices) {case 1:login();mainMenu();break;case 2:regist();start();break;default:System.exit(0);}}/*** 登陸*/public void login(){System.out.println("請輸入用戶名:");String userName = scanners.next();System.out.println("請輸入密碼:");String password = scanners.next();Random random=new Random(); //創(chuàng)建隨機數(shù)生成器String str="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";StringBuilder sb=new StringBuilder(4);for(int i=0;i<4;i++){char ch=str.charAt(new Random().nextInt(str.length()));sb.append(ch);}System.out.println(sb.toString());System.out.println("請輸入驗證碼:");String verification=scanners.next();//通過DAO根據(jù)用戶名查詢數(shù)據(jù)庫中對象User user = userDao.findByName(userName);//判斷用戶是否存在if(user != null){//將數(shù)據(jù)庫中找到的賬戶,再根據(jù)其密碼和輸入的密碼比較if(user.getPassword().equals(password)&&verification.equals(sb.toString())){System.out.println("登錄成功!");mainMenu();}else if(!(user.getPassword().equals(password))){System.out.println("密碼錯誤!");login();}else if(!(verification.equals(sb.toString()))){System.out.println("驗證碼錯誤!");login();}}else{System.out.println("用戶名不存在!請重新輸入");login();}}/*** 注冊*/public void regist() {System.out.println("請輸入注冊的用戶名:");String userName = scanners.next();System.out.println("請輸入注冊的密碼:");String password = scanners.next();System.out.println("請再次輸入密碼:");String passWord = scanners.next();if (passWord.equals(password)) {Random random = new Random(); //創(chuàng)建隨機數(shù)生成器String str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";StringBuilder sb = new StringBuilder(4);for (int i = 0; i < 4; i++) {char ch = str.charAt(random.nextInt(str.length()));sb.append(ch);}System.out.println(sb.toString());System.out.println("請輸入驗證碼:");String verification = scanners.next();//判斷用戶名是否被注冊User user = userDao.findByName(userName);if (user != null) {System.out.println("該用戶名已被注冊!輸入0返回上一層菜單,其他任意鍵繼續(xù)注冊");String result = scanners.next();if (result.equals("0")) {start();} else {regist();}} else {System.out.println("您已注冊成功!");//根據(jù)注冊的信息創(chuàng)建一個賬戶對象User registUser = new User(userName, password);registUser.setUser(userName);registUser.setPassword(password);//將注冊的信息寫入數(shù)據(jù)庫userDao.inSert(registUser);//返回起始菜單start();}}else{System.out.println("兩次密碼不一樣,請重新注冊");regist();}}/*** 主菜單*/public void mainMenu() {//顯示熱門商品、商品查詢、商品管理System.out.println("1.熱門商品");System.out.println("2.商品查詢");System.out.println("3.后臺管理");String input = scanners.next();do {if (input.equals("0"))start();switch (input) {case "1":hotGoods();System.out.println("待輸入");if (scanners.nextInt() == 0)mainMenu();break;case "2":search();System.out.println("待輸入");if (scanners.nextInt() == 0)mainMenu();break;case "3":goodsManage();System.out.println("待輸入");if (scanners.nextInt() == 0)mainMenu();break;default:if (scanners.nextInt() == 0)start();else {System.out.println("輸入有誤");mainMenu();}}} while(!input.equals("0")&&!input.equals("3"));}/*** 熱門商品*/public void hotGoods() {List<Goods> list = goodsDao.findHotGoods();for (int i = 0; i < 10; i++) {System.out.println("商品序號:" + (i + 1) +" 商品名稱:" + list.get(i).getName() +" 商品銷量:" + list.get(i).getConsume());}System.out.println("選擇序號可以查看詳細信息:");int input = scanners.nextInt();if (0 < input && input <= 10) {detailedInformation(list, input);}}/*** 商品查詢*/public void search() {System.out.println("1.品牌查詢");System.out.println("2.價格查詢");int input = scanners.nextInt();if(input==0)mainMenu();switch (input) {case 1:brandSearch();System.out.println("待輸入");if(scanners.nextInt()==0)search();break;case 2:priceSearch();System.out.println("待輸入");if(scanners.nextInt()==0)mainMenu();break;default:System.out.println("輸入錯誤");System.out.println("待輸入");if(scanners.nextInt()==0)mainMenu();}//顯示查詢菜單}/*** 品牌查詢*/public void brandSearch() {System.out.println("請輸入要查詢的品牌:");String input = scanners.next();int brand=brandDao.nameChangeID(input);List<Goods> list1 = brandDao.findByName(brand);if (list1.size() == 0) {System.out.println("無法操作,序列為空");}else{for (int i = 0; i < list1.size(); i++) {System.out.println("商品序號:" + (i + 1) +" 商品名稱:" + list1.get(i).getName() +" 商品銷量:" + list1.get(i).getConsume());}System.out.println("選擇序號可以查看詳細信息:");int input2 = scanners.nextInt();detailedInformation(list1, input2);}}/*** 價格查詢*/public void priceSearch() {System.out.println("請輸入價格范圍:(最小范圍,最大范圍)");int min = scanners.nextInt();int max = scanners.nextInt();List<Goods> goods = goodsDao.findByPrice(min, max);if (goods.size() == 0) {System.out.println("無法操作,序列為空");}else {for (int i = 0; i < goods.size(); i++) {System.out.println("商品序號:" + (i + 1) +" 商品名稱:" + goods.get(i).getName() +" 商品銷量:" + goods.get(i).getConsume()); }System.out.println("選擇序號可以查看詳細信息:");int input2 = scanners.nextInt();detailedInformation(goods, input2);}}/*** 商品管理*/public void goodsManage() {System.out.println("1.新增商品:");System.out.println("2.修改價格:");System.out.println("3.刪除商品:");int input2 = scanners.nextInt();switch (input2) {case 1:addGoods();System.out.println("待輸入:");if(scanners.nextInt()==0)goodsManage();break;case 2:modifyPrice();System.out.println("待輸入:");if(scanners.nextInt()==0)goodsManage();break;case 3:deleteGoods();System.out.println("待輸入:");if(scanners.nextInt()==0)goodsManage();break;case 0:mainMenu();break;}}/*** 新增商品*/public void addGoods() {System.out.println("請輸入商品名稱:");String name = scanners.next();System.out.println("請輸入商品價格:");int price = scanners.nextInt();System.out.println("請輸入商品品牌:");String brand = scanners.next();System.out.println("請輸入商品類型:");String type = scanners.next();int n = brandDao.nameChangeID(brand);goodsDao.addDatabase(name, price, n, type);for (Goods goods : goodsDao.findAllGoods())System.out.println(goods.getGoodID() + "\t\t" + goods.getName() + "\t\t" + goods.getPrice() + "\t\t" + goods.getConsume() + "\t\t" + goods.getType());}/*** 修改價格*/public void modifyPrice() {allBrand();System.out.println("請輸入要修改的商品序號:");int goodsId = scanners.nextInt();Goods goodsNew=goodsDao.findByFoodID(goodsId);Brand brandNew=brandDao.findByID(goodsNew.getBrandNumber());List <Goods> list=brandShows(brandNew);System.out.println("輸入新的價格:");int price = scanners.nextInt();System.out.println("是否保存:是按1,否按0");int bool = scanners.nextInt();if (bool == 1) {goodsDao.modify(goodsId, price);for (Goods goods : goodsDao.findAllGoods())System.out.println(goods.getGoodID() + "\t\t" + goods.getName() + "\t\t" + goods.getPrice() + "\t\t" + goods.getConsume() + "\t\t" + goods.getType());} else {return;}}/*** 刪除商品*/public void deleteGoods () {allBrand();System.out.println("選擇序號:");int input2 = scanners.nextInt();Goods good=goodsDao.findByFoodID(input2);Brand brand=brandDao.findByID(good.getBrandNumber());List <Goods> list1=brandShows(brand);for (int i = 0; i < list1.size(); i++) {Goods goods = list1.get(i);System.out.println("序號:" + goods.getGoodID() +" 商品名稱:" + goods.getName() +" 商品價格:" + goods.getPrice());}System.out.println("是否刪除:是按1,否按0");int bool = scanners.nextInt();if (bool == 1) {goodsDao.delete(input2);for (Goods goods : goodsDao.findAllGoods())System.out.println(goods.getGoodID() + "\t\t" + goods.getName() + "\t\t" + goods.getPrice() + "\t\t" + goods.getConsume() + "\t\t" + goods.getType());}}public void detailedInformation(List<Goods>list,int input){System.out.println(" 商品名稱:"+list.get(input-1).getName()+"" +" 商品品牌:"+brandDao.findByID(list.get(input-1).getBrandNumber()).getName()+" 價格:"+list.get(input-1).getPrice()+" 類型:"+list.get(input-1).getType());}public void allBrand(){List<Goods>list=goodsDao.findAllGoods();for (int i = 0; i <list.size(); i++) {String brand=brandDao.idChangeName(list.get(i).getBrandNumber());System.out.println("商品名稱:"+list.get(i).getName()+" 品牌序號:"+list.get(i).getBrandNumber()+" 品牌名稱:"+brand);}}List<Goods> brandShows( Brand brand) {List<Goods> listNew = new ArrayList<>();List<Goods> list=goodsDao.findAllGoods();for (int i = 0; i < list.size(); i++) {if(brandDao.nameChangeID(brand.getName())==list.get(i).getBrandNumber()){listNew.add(list.get(i));}}for (int i = 0; i < listNew.size(); i++) {Goods goods = listNew.get(i);System.out.println("序號:" + goods.getGoodID() +" 商品名稱:" + goods.getName() +" 商品價格:" + goods.getPrice());}return listNew;}}第九步:
package com.igeek.service; import com.igeek.data.Database;public class main {public static void main(String[] args) {Database database=new Database();GoodsService goodsService=new GoodsService(database);} }功能實現(xiàn)圖
總結
以上是生活随笔為你收集整理的java最终考核项目(实现商品管理系统)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java项目(注册和登录(成功后查看商品
- 下一篇: ARM处理器寻址方式 之 堆栈寻址