1. 程式人生 > >java專案實戰-超市管理系統(三)頁面設計原始碼

java專案實戰-超市管理系統(三)頁面設計原始碼

一、duan.page.MainPage

package duan.page;

import java.util.ArrayList;

import duan.dao.GoodsDao;
import duan.dao.GsalesDao;
import duan.dao.SalesManDao;
import duan.entity.Goods;
import duan.entity.Gsales;
import duan.entity.SalesMan;
import duan.tools.Arith;
import duan.tools.QueryPrint;
import duan.tools.ScannerChoice;

/**
 * 商超購物管理系統主介面            
 * @author duan
 * @version 2.0
 */

public final class MainPage extends ScannerChoice
{

	/**
	 * 入口函式
	 */
	public static void main(String[] args)
	{
		MainPage.mainPage();
	}

	/**
	 * 主介面 已實現!已校驗!
	 */
		public static void  mainPage()
		{
			System.out.println("***************************\n");
			System.out.println("\t 1.商品維護\n");
			System.out.println("\t 2.前臺收銀\n");
			System.out.println("\t 3.商品管理\n");
			System.out.println("***************************");
			
			System.out.println("\n請輸入選項,或者按0退出.");
			do
			{
				 String choice = ScannerInfoString();
				 String regex = "[0-3]";//正則表示式
				 if (choice.matches(regex))
				 { 
					 int info = Integer.parseInt(choice);
					 switch (info)
					 {
					 case 0:
						 System.out.println("------------------");
						 System.out.println("您已經退出系統!");
						 System.exit(1);//退出程式,返回值隨便設定
						 break;
					 case 1:
						 MaintenancePage();
						 break;
					 case 2:
						 checkstandLogPage();
						 break;
					 case 3:
						 commodityManagementPage();
						 break;
					 default:
					 break;
					 }
				 }
				 System.err.println("!輸入有誤!");
				 System.out.println("重新選擇或者按0退出.");
			} while (true);
			
		}
		
	/**
	 * 1.商品維護介面
	 */
		public static void MaintenancePage()
		{
			
			System.out.println("***************************\n");
			System.out.println("\t 1.新增商品\n");
			System.out.println("\t 2.更改商品\n");
			System.out.println("\t 3.刪除商品\n");
			System.out.println("\t 4.查詢商品\n");
			System.out.println("\t 5.顯示所有商品\n");
			System.out.println("***************************");
			
			System.out.println("\n請輸入選項,或者按 0 返回上一級選單.");
			do
			{
				String choice = ScannerInfoString();
				String regex = "[0-5]";
				if (choice.matches(regex))
				{
					int info = Integer.parseInt(choice);
					switch (info)
					{
					case 0:
						mainPage();
						break;
					case 1:
						GoodsPage.addGoodsPage();
						break;
					case 2:
						GoodsPage.updateGoodsPage();
						break;
					case 3:
						GoodsPage.deleteGoodsPage();
						break;
					case 4:
						GoodsPage.queryGoodsPage();
						break;
					case 5:
						GoodsPage.displayGoodsPage();
						break;
					default:
						break;
					}
				}
				System.err.println("!輸入有誤!");
				System.out.println("重新輸入或按 0 返回上一級選單.");
			}while(true);
		}

	/**
	 * 2.前臺收銀登陸介面
	 */
		public static void checkstandLogPage()
		{
			System.out.println("\n*******歡迎使用商超購物管理系統*******\n");
			System.out.println("\t 1.登入系統\n");
			System.out.println("\t 2.退出\n");
			System.out.println("-----------------------------");
			System.out.println("請輸入選項,或者按 0 返回上一級選單.");
			
			do
			{
				 String choice = ScannerInfoString();
				 String regex = "[0-2]";
				 if (choice.matches(regex))
					{
					 	int info = Integer.parseInt(choice);
							switch (info)
							{
							case 0:
								mainPage();
								break;
							case 1:
								int loginTimes = 3;//3次登陸機會
								
								while (loginTimes!=0)
								{
									loginTimes--;
									System.out.println("---使用者名稱---");
									String sName = ScannerInfoString();
									System.out.println("---密碼---");
									String sPssWord = ScannerInfoString();
									
									ArrayList<SalesMan> salesManInfo = new SalesManDao().checkstandLog(sName); //以使用者名稱從資料庫中獲取使用者密碼.
									
									if (salesManInfo == null || salesManInfo.size() == 0)//沒有此使用者的情況!
									{
										System.err.println("\t!!使用者名稱輸入有誤!!\n");
										System.out.println("\n剩餘登陸次數:"+loginTimes);
									}else 
										{
											SalesMan salesMan = salesManInfo.get(0);//此地,只返回了一組數值,只遍歷1次即可
											
											if (sPssWord.equals(salesMan.getSPassWord()))//驗證密碼,登陸成功了!!
											{
												System.out.println("\t  ---賬戶成功登陸---");
												shoppingSettlementPage(salesMan.getSId());//引數為營業員編號sId
											}else 
												{
													System.err.println("\t!!密碼錯誤!!\n");
													System.out.println("\n剩餘登陸次數:"+loginTimes);
												}
										}
								}
								//loginTimes = 0
								System.out.println("------------------");
								System.err.println("\t!!您已被強制退出系統!!");
								System.exit(1);			
								break;
							case 2:
								System.out.println("------------------");
								System.out.println("您已經退出系統!");
								System.exit(-1);			
								break;
							default:
							break;
							}
					}
				 System.err.println("!輸入有誤!");
				 System.out.println("重新輸入或按 0 返回上一級選單");
			}while(true);
		}

	/**
	 * 3.商品管理介面
	 */
		public static void commodityManagementPage()
		{
			System.out.println("***************************\n");
			System.out.println("\t 1.售貨員管理\n");
			System.out.println("\t 2.列出當日賣出列表\n");
			System.out.println("***************************");
			
			System.out.println("\n請輸入選項,或者按 0 返回上一級選單.");
			do
			{
				String choice = ScannerInfoString();
				String regex  = "[0-2]";
				if (choice.matches(regex))
				{
					int info = Integer.parseInt(choice);
					switch (info)
					{
						case 0:
							mainPage();
							break;
						case 1:
							salesManManagementPage();
							break;
						case 2:
							GsalesPage.dailySaleGoodsPage();
							break;
						default:
							break;
					}
				}
				System.err.println("!輸入有誤!");
				System.out.println("重新輸入或按 0 返回上一級選單.");
			}while(true);
		}
					
	/**
	 * 購物結算介面
	 */
		public static void shoppingSettlementPage(int salesManSid)
		{
			System.out.println("\n\t*******購物結算*******\n");
			do
			{
				System.out.println("按 S 開始購物結算.按 0 返回賬戶登入介面");
				String choNext = ScannerInfoString();
				if ("0".equals(choNext))
				{
					checkstandLogPage();
					
				}else if ("s".equals(choNext) || "S".equals(choNext)) 
						{
							System.out.println("\n--請輸入商品關鍵字--");
							
							int gid = QueryPrint.querySettlement();//當商品件數有且只有一件時返回商品gid號,商品已售空時返回 -1. >1件時返回-2 . 查無此商品時返回-3
							
							switch (gid)
							{
							case -3:
								//無此商品,重新迴圈
								break;
							case -1:
								System.err.println("\t--抱歉,該商品已售空--");
								break;
								
							default:
								System.out.println("--按商品編號選擇商品--");
							 		
							 	//傳參gid,呼叫精確查詢商品
							 	int shoppingGid = ScannerNum();
								
							 	ArrayList<Goods> goodsList = new QueryPrint().queryGoodsKey(shoppingGid,null);
								if (goodsList == null || goodsList.size() == 0)
								{
									System.err.println("\t!!查無此商品 !!\n");
								}else 
									{
										Goods goods = goodsList.get(0);
										int gNum = goods.getGnum();	
										double gPrice = goods.getGprice(); 
										
										System.out.println("--請輸入購買數量--");
										do
										{
											int choicegoodsNum = ScannerNum();//獲取使用者要購買的數量
											
											if (choicegoodsNum > gNum)
											{
												System.err.println("\t!!倉庫儲備不足!!");
												System.out.println("--請重新輸入購買數量--");
											}else 
												{
													double allPrice = Arith.mul(choicegoodsNum, gPrice);//利用BigDecimal作乘法運算
													System.out.println("\t\t\t  購物車結算\n");
													System.out.println("\t\t商品名稱\t商品單價\t購買數量\t總價\n");
													System.out.println("\t\t"+goods.getGname()+"\t"+gPrice+" $\t"+choicegoodsNum+"\t"+allPrice+" $\n");
													
													do
													{
														System.out.println("確認購買:Y/N");
														String choShopping = ScannerInfoString(); 
														if ("y".equals(choShopping) || "Y".equals(choShopping))
														{
															System.out.println("\n總價:"+allPrice+" $");
															System.out.println("\n實際繳費金額");
															
															do
															{
																double amount = ScannerInfo();
																double balance = Arith.sub(amount, allPrice);  //使用者交錢與購買物品總價間的差額
																if (balance < 0)
																{
																	System.err.println("\t!!繳納金額不足!!");
																	System.out.println("\n請重新輸入繳納金額($)");
																}else{																
																	
		/*	這裡是購物結算操作資料庫!!!!!!----------------------	  1.更改goods表數量 
		  														  2.增加sales表數量
																原商品數量gNum。 結算員Id  salesManSid */
																
																	//對sales表操作
																	Gsales gSales = new Gsales(goods.getGid(),salesManSid,choicegoodsNum);
																	boolean insert = new GsalesDao().shoppingSettlement(gSales);
																	
																	//對goods表操作
																	int goodsNewNum = gNum - choicegoodsNum; //現在goods表中該商品數量
																	Goods newGoods = new Goods(goods.getGid(),goodsNewNum);
																	boolean update = new GoodsDao().updateGoods(3,newGoods);
											
																		if (update && insert)
																		{
																			System.out.println("找零:"+balance);
																			System.out.println("\n謝謝光臨,歡迎下次惠顧");
																		}else 
																			{
																				System.err.println("!支付失敗!"); //出現這個錯誤一定是資料庫操作有問題!
																			}
																	shoppingSettlementPage(salesManSid);//最後跳轉到到購物結算頁面
	   //	結束購物結算操作資料庫!!!!!!-----------------------------------
																	 }
															} while (true);	
															
														}else if ("N".equals(choShopping) || "n".equals(choShopping)) 
																{
																	shoppingSettlementPage(salesManSid);
																}
														System.err.println("\t!!請確認購物意向!!");
													} while (true);
												}
										} while (true);
									}					
								break;
							}
						}else
							{
								System.err.println("\t!!請輸入合法字元!!\n");
							}
			} while (true);
		}

	/**
	 * 售貨員管理介面
	 */
	public static void salesManManagementPage()
	{

		System.out.println("***************************\n");
		System.out.println("\t 1.新增售貨員\n");
		System.out.println("\t 2.更改售貨員\n");
		System.out.println("\t 3.刪除售貨員\n");
		System.out.println("\t 4.查詢售貨員\n");
		System.out.println("\t 5.顯示所有售貨員\n");
		System.out.println("***************************");
		
		System.out.println("\n請輸入選項,或者按 0 返回上一級選單.");
		do
		{
			String choice = ScannerInfoString();
			String regex  = "[0-5]";
			if (choice.matches(regex))
			{
				int info = Integer.parseInt(choice);
				switch (info)
				{
				case 0:
					commodityManagementPage();
					break;
				case 1:
					SalesManPage.addSalesManPage();
					break;
				case 2:
					SalesManPage.updateSalesManPage();
					break;
				case 3:
					SalesManPage.deleteSalesManPage();
					break;
				case 4:
					SalesManPage.querySalesManPage();
					break;
				case 5:
					SalesManPage.displaySalesManPage();
					break;
				default:
					break;
				}
			}
			System.err.println("\t!輸入有誤!");
			System.out.println("重新輸入或按 0 返回上一級選單.");
		}while(true);
	}
}

二、duan.page.GoodsPage

package duan.page;

import java.util.ArrayList;

import duan.dao.GoodsDao;
import duan.entity.Goods;
import duan.tools.QueryPrint;
import duan.tools.ScannerChoice;

/**
 * 操作商品介面
 * @author duan
 */

public final class GoodsPage extends ScannerChoice
{

	/**
	 * 1.新增商品介面
	 */
	public static void  addGoodsPage()
	{
		
		System.out.println("\t正在執行新增商品操作\n");
		
		System.out.println("\n請輸入新增商品-名稱");
		String goodsName = ScannerInfoString();
		
		System.out.println("\n請輸入新增商品-價格");
		double goodsPrice = ScannerInfo();
	
		System.out.println("\n請輸入新增商品-數量");
		int goodsNumber = ScannerNum();
		
		Goods goods  = new Goods(goodsName,goodsPrice,goodsNumber);
		boolean bool = new GoodsDao().addGoods(goods);
		
		if (bool)
		{
			System.out.println("\n\t!您已成功新增商品到資料庫!");			
		}else 
			{
				System.out.println("新增商品失敗");	
			}
	 changedInfoNext("addGoodsPage");//選擇下一步
	}

	/**
	 * 2.更改商品介面
	 */
	public static void  updateGoodsPage()
	{
		System.out.println("\t正在執行 更改商品 操作\n");
		System.out.println("請輸入想要更改的商品名字");
		
		//呼叫查詢商品函式,顯示將要更改的商品資訊
		int gid = QueryPrint.query("updateGoodsPage"); //return the goods gid

		System.out.println("\n--------請選擇您要更改的內容\n");
		System.out.println("\t1.更改商品-名稱");
		System.out.println("\t2.更改商品-價格");
		System.out.println("\t3.更改商品-數量");
		System.out.println("\n請輸入選項,或者按0返回上一級選單.");
		 do
		{
			 String choice = ScannerInfoString();
			 String regex = "[0-3]";
			 if (choice.matches(regex))
			 { 
				 int info = Integer.parseInt(choice);
				 switch (info)
				 {
				 case 0:
					 MainPage.MaintenancePage();
					 break;
				 case 1:
					 System.out.println("請輸入商品-新名稱");
					 String gname = ScannerInfoString();
					 Goods goodsName = new Goods(gid,gname);
					 boolean boolName = new GoodsDao().updateGoods(1, goodsName);
					 if (boolName)
					 {
						 System.out.println("\n\t!!成功更新商品名至資料庫!!\n");
					 }else 
					 	{
						 	System.err.println("\n\t!!更新商品名失敗!!");
					 	}
					 changedInfoNext("updateGoodsPage");
					 break;
				 case 2:
					 System.out.println("請輸入商品-新價格 ");
					 double gprice = ScannerInfo();
					 Goods  goodsPrice = new Goods(gid,gprice);
					 boolean boolPrice = new GoodsDao().updateGoods(2,goodsPrice);
					 
					 if (boolPrice)
					 {
						 System.out.println("\n\t!!成功更新商品價格至資料庫!!\n");
					 }else 
					 	{
						 	System.err.println("\n\t!!更新商品價格失敗!!");
					 	}
					 changedInfoNext("upateGoodsPage");
					 break;
				 case 3:
					 System.out.println("請輸入商品-新數量 ");
					 int gNum = ScannerNum();	
					 Goods  goodsNum= new Goods(gid,gNum);
					 boolean boolNum = new GoodsDao().updateGoods(3,goodsNum);
					 if (boolNum)
					 {
						 System.out.println("\n\t!!成功更新商品數量至資料庫!!\n");
					 }else 
					 	{
						 	System.err.println("\n\t!!更新商品數量失敗!!");
					 	}
					 	changedInfoNext("upateGoodsPage");
					 break;
				 default:
					 System.out.println("請輸入正確的選擇!");
				 break;
				 }
			 }
			 System.err.println("!輸入有誤!");
			System.out.println("請重新選擇,或者按0返回上一級選單.");
		 } while (true);	
	}
	
	/**
	 * 3.刪除商品介面
	 */
	public static void deleteGoodsPage()
	{
		System.out.println("\t正在執行 刪除商品 操作\n");
		System.out.println("請輸入想要刪除的商品名字");
		
		//呼叫查詢商品函式,顯示將要刪除的商品
		int gid = QueryPrint.query("deleteGoodsPage"); //return the goods gid
		
		//確認刪除!
			do
			{
				System.out.println("\n確認刪除該商品:Y/N");
				String choice = ScannerInfoString();
					if ("y".equals(choice) || "Y".equals(choice))
					{
						//進行刪除-資料庫操作
						boolean boolDeleteGoods = new GoodsDao().deleteGoods(gid);//呼叫刪除功能
						
						if (boolDeleteGoods)
						{
							System.err.println("\t!!已成功刪除該商品!!\n");
						}else 
							{
								System.err.println("\n\t!!刪除該商品失敗!!");
							}
						changedInfoNext("deleteGoodsPage"); 
					}else if ("N".equals(choice) || "n".equals(choice)) 
							{
								MainPage.MaintenancePage();
							}
				System.out.println("\t!!輸入有誤,請重新輸入!!\n");
			} while (true);
	}

	/**
	 * 4.查詢商品介面
	 */
	public static void queryGoodsPage()
	{
		System.out.println("\t\t  正在執行查詢商品操作\n");
		System.out.println("\t\t1.按照商品 數量升序 查詢");
		System.out.println("\t\t2.按照商品 價格升序 查詢");
		System.out.println("\t\t3.輸入商品  關鍵字  查詢");
		System.out.println("\n請輸入選項,或者按0返回上一級選單.");
			
		 do
		{
			 String info = ScannerInfoString();//使用者選擇上述提示資訊
			 String regex = "[0-3]";
			 if (info.matches(regex))
			 { 
				 int choice = Integer.parseInt(info);
				 switch (choice)
				 {
				 case 0:
					 MainPage.MaintenancePage();
					 break;
				 case 1:
				 case 2:
				 case 3:
					 if (choice == 3)//當用戶使用3(即關鍵字查詢)時,需要列印此專案。
					 {
						 System.out.println("\t\t正在執行商品  關鍵字  查詢操作\n");
						 System.out.println("\n請輸入商品關鍵字");
					 }
					 //呼叫查詢功能
					 ArrayList<Goods> goodsList = new GoodsDao().queryGoods(choice);
					 if (goodsList == null || goodsList.size() <= 0)
					 {
						 System.err.println("\n\t!!您查詢的商品不存在!!\n");
						 queryGoodsPage();
					 } else
					 	  {
							 if (choice == 1) //列印目錄,不要放在功能函式中,會影響其他方法呼叫
							 {	
								 System.out.println("\t\t\t\t\t商品按照 數量升序 列表\n\n");
							 }else if (choice == 2) 
									 {
										 System.out.println("\t\t\t\t\t商品按照 價格升序 列表\n\n");
									 }else
										 {
											 System.out.println("\t\t\t\t\t您所查詢的商品如下\n\n");
										 }
							 System.out.println("\t商品編號\t\t商品名稱\t\t商品價格\t\t商品數量\t\t備註\n");
							 
							 //遍歷陣列(存放使用者查詢的資訊) 
							 for (int i = 0,length = goodsList.size(); i < length; i++)
							 {
								 Goods goods = goodsList.get(i);
								 System.out.print("\t"+goods.getGid()+"\t\t"+goods.getGname()+"\t\t"+goods.getGprice()+"\t\t"+goods.getGnum());
								 int gnum = goods.getGnum();
								 if (gnum ==0)
								 {
									 System.out.println("\t\t該商品已售空!");
								 }else if (gnum<10)
										 {
											 System.out.println("\t\t該商品已不足10件");
										 }else 
											 {
												 System.out.println("\t\t-");
											 }
								 System.out.println("\t");
							 }
						 	System.out.println("---------------------");
							 do
							{
								 System.out.println("輸入 0 返回上一級選單");
								 String choiceNext = ScannerInfoString();
								
								 if ("0".equals(choiceNext))
								{
									 MainPage.MaintenancePage();
								}
								 System.err.println("輸入有誤!");
							} while (true);
					 	  }
					 break;
				 default:
				 break;
				 }
			 break;
			 }
		 System.err.println("輸入有誤!");
		 System.out.println("請重新選擇,或者按0返回上一級選單.");
		} while (true);

		 //使用者選擇操作完查詢後的下一步
		System.out.println("\n\n輸入 0 返回上一級選單");
		boolean boolNext = true;
		 do
		{
			 String choice = ScannerInfoString();
			 if ("0".equals(choice))
			 { 
				 boolNext = false;
				 queryGoodsPage();
			 }
			System.err.println("!輸入有誤!");
			System.out.println("請輸入 0 返回上一級選單");
		} while (boolNext);	
	}

	/**
	 * 5.展示所有商品介面
	 */
	public static void displayGoodsPage()
	{
		System.out.println("\t\t\t\t\t所有商品列表\n\n");
		ArrayList<Goods> goodsList = new GoodsDao().displayGoods();
		
		if (goodsList.size() <= 0)
		{
			System.err.println("!庫存為空!");
			MainPage.MaintenancePage();
		}else 
			{
				System.out.println("\t商品編號\t\t商品名稱\t\t商品價格\t\t商品數量\t\t備註\n");
				for (int i = 0,length = goodsList.size(); i < length; i++) //避免重複計算變數,浪費資源!
				{
					Goods goods = goodsList.get(i);
					System.out.print("\t"+goods.getGid()+"\t\t"+goods.getGname()+"\t\t"+goods.getGprice()+" $\t\t"+goods.getGnum());
					
					int gNum = goods.getGnum();
					if (gNum==0)
					{
						System.out.println("\t\t該商品已售空!");
					}else if (gNum<10) 
							{
								System.out.println("\t\t該商品已不足10件");
							}else
								{
									System.out.println("\t\t-");
								}
					System.out.println("\t");
				}
				//下一步
				System.out.println("---------------------");
				do
				{
					System.out.println("輸入 0 返回上一級選單");
					String choice = ScannerInfoString();
					if ("0".equals(choice))
					{
						MainPage.MaintenancePage();
					}
					System.out.println("輸入有誤!");
				} while (true);
			}
	}
}

三、duan.page.GsalesPage

package duan.page;

import java.util.ArrayList;

import duan.dao.GsalesDao;
import duan.entity.Gsales;
import duan.tools.ScannerChoice;

/**
 * 當日賣出商品列表介面
 * @author duan
 */

public final class GsalesPage
{
	public static void dailySaleGoodsPage()
	{
		System.out.println("\t正在執行列出當日售出商品列表操作\n");
		ArrayList<Gsales> GsalesList = new GsalesDao().dailyGsales();//當日售出商品陣列集

		if (GsalesList.size() <= 0)
		{
			System.err.println("\t!!今日無商品售出!!");
			MainPage.commodityManagementPage();
		}else 
			{
				System.out.println("\t\t\t\t今日售出商品列表\n");
				System.out.println("\t商品名稱\t\t商品價格\t\t商品數量\t\t銷量\t\t備註\n");
	
				for (int i = 0,length = GsalesList.size(); i < length; i++)
				{
					//獲取售出商品:gname,gprice,gnum
					Gsales gSales = GsalesList.get(i);
					System.out.print("\t"+gSales.getGName()+"\t\t"+gSales.getGPrice()+" $\t\t"+gSales.getGNum()+"\t\t");
					int gNUm = gSales.getGNum();
					if (gNUm==0)
					{
						System.out.println("\t\t該商品已售空");
					}else if (gNUm<10)
							{
								System.out.println("\t\t該商品已不足10件");
							}else 
								{
									System.out.println("\t\t-");
								}
				  System.out.println("\t");
				}
				do
				{
					System.out.println("\n\n輸入 0 返回上一級選單");
					String choice = ScannerChoice.ScannerInfoString();
					if ("0".equals(choice))
					{
						MainPage.salesManManagementPage();
					}
				 MainPage.commodityManagementPage();
				} while (true);
			}
	}
}

4、duan.page.SalesManPage

package duan.page;

import java.util.ArrayList;

import duan.dao.SalesManDao;
import duan.entity.SalesMan;
import duan.tools.QueryPrint;
import duan.tools.ScannerChoice;

/**
 * 操作售貨員介面           
 * @author duan
 */

public final class SalesManPage extends ScannerChoice
{
	/**
	 * 1.新增售貨員介面 
	 */
	public static void  addSalesManPage()
	{
		System.out.println("\t正在執行新增售貨員操作\n");
		
		System.out.println("\n新增售貨員-姓名");
		String sName = ScannerInfoString();
		
		System.out.println("\n新增售貨員-密碼");
		String sPssswd = ScannerInfoString();
		
		SalesMan salesMan = new SalesMan(sName,sPssswd);
		boolean bool = new SalesManDao().addSalesMan(salesMan);
		
		if (bool)
		{
			System.out.println("\n\t!您已成功新增售貨員到資料庫!");
		}else 
			{
				System.out.println("新增售貨員失敗");	
			}
	 choiceSalesManNext("addSalesMan");
	}
	
	/**
	 * 2.更改售貨員介面
	 */
	public static void updateSalesManPage()
	{
		System.out.println("\t正在執行更改售貨員操作\n");
		System.out.println("請輸入想要更改的售貨員名字");
		String sName = ScannerInfoString();

		//呼叫精確查詢售貨員函式
		ArrayList<SalesMan> salesManList = new QueryPrint().querySalesMan(sName);
			if (salesManList.size() <= 0)
			{
				System.err.println("\t!!查無此人!!");
				choiceSalesManNext("updateSalesMan");
			}else 
				{
					//顯示將要更改的售貨員資訊
					System.out.println("\t\t\t售貨員資訊\n\n");
					System.out.println("\t售貨員編號\t\t售貨員姓名\t\t售貨員密碼");
					
					SalesMan salesMan = salesManList.get(0); //上面的精確查詢中,只能返回一組數值。無需遍歷!
					System.out.println("\t"+salesMan.getSId()+"\t\t\t"+salesMan.getSName()+"\t\t\t"+salesMan.getSPassWord());
					System.out.println();
					
					//選擇更改售貨員內容
					System.out.println("\n--------請選擇您要更改的內容\n");
					System.out.println("\t1.更改售貨員-姓名");
					System.out.println("\t2.更改售貨員-密碼");
					do
					{
						String choice = ScannerInfoString();
						String regex  = "[0-2]";
						if (choice.matches(regex))
						{
							int info = Integer.parseInt(choice);
							switch (info)
							{
							case 0:
									MainPage.salesManManagementPage();
								break;
							case 1:
									System.out.println("更改售貨員-新姓名");
									String sNewName = ScannerInfoString();
									
									SalesMan salesManName = new SalesMan(salesMan.getSId(),sNewName,null);
									boolean boolsName = new SalesManDao().updateSalesMan(1, salesManName);
									
									if (boolsName)
									{
										System.out.println("\n\t!!成功更新售貨員名字至資料庫!!\n");
									}else 
										{
											System.err.println("\n\t!!更新售貨員名字失敗!!");
										}
									choiceSalesManNext("updateSalesMan");
								break;
							case 2:
									System.out.println("更改售貨員-新密碼");
									String sNewPasswd = ScannerInfoString();
									
									SalesMan salesManPasswd = new SalesMan(salesMan.getSId(),null,sNewPasswd);
									boolean boolsPasswd = new SalesManDao().updateSalesMan(2, salesManPasswd);
									
									if (boolsPasswd)
									{
										System.out.println("\n\t!!成功更新售貨員密碼至資料庫!!\n");
									}else 
										{
											System.err.println("\n\t!!更新售貨員密碼失敗!!");
										}
									choiceSalesManNext("updateSalesMan");
								break;
							default:
								break;
							}
						}
						System.out.println("\t!輸入有誤!");
						System.out.println("\n請選擇選項.或者按 0 返回上一級選單.");
					} while (true);
				}
	}

	/**
	 * 3.刪除售貨員介面
	 */
	public static void deleteSalesManPage()
	{
		
		System.out.println("\t正在執行 刪除售貨員 操作\n");
		System.out.println("請輸入想要刪除的售貨員名字");
		String sName = ScannerInfoString();
		
		//呼叫精確查詢售貨員函式
		ArrayList<SalesMan> salesManList = new QueryPrint().querySalesMan(sName);
			if (salesManList.size() <= 0)
			{
				System.err.println("\t!!查無此人!!");
				choiceSalesManNext("deleteSalesMan");
			}else 
				{
					//顯示將要刪除的售貨員資訊
					System.out.println("\t\t\t刪除售貨員資訊\n\n");
					System.out.println("\t售貨員編號\t\t售貨員姓名\t\t售貨員密碼");
					
					for (int i = 0,length = salesManList.size(); i < length; i++)
					{
						SalesMan salesMan = salesManList.get(i);
						System.out.println("\t"+salesMan.getSId()+"\t\t\t"+salesMan.getSName()+"\t\t\t"+salesMan.getSPassWord());
						System.out.println();
					}
					//確認是否真的刪除!
					do
					{
						System.out.println("\n確認刪除該售貨員:Y/N");
						String choice = ScannerInfoString();
						if ("y".equals(choice) || "Y".equals(choice))
						{
							//進行刪除-資料庫操作
							boolean boolDeleteSalesMan = new SalesManDao().deleteSalesMan(sName);//呼叫刪除功能
							
							if (boolDeleteSalesMan)
							{
								System.err.println("\t!!已成功刪除該售貨員!!\n");
							}else 
								{
									System.err.println("\t!!刪除該售貨員失敗!!");
								}
							choiceSalesManNext("deleteGoods"); 
						}else if ("N".equals(choice) || "n".equals(choice)) 
						{
							MainPage.salesManManagementPage();
						}
						System.err.println("\t!!輸入有誤,請重新輸入!!");
					} while (true);
				}
	}
	
	
	/**
	 * 4.查詢售貨員介面 已實現!
	 */
		public static void querySalesManPage()
		{
			System.out.println("\t\t  正在執行查詢售貨員操作\n");
			System.out.println("要查詢的售貨員關鍵字");
			String sName = ScannerInfoString();
			
			ArrayList<SalesMan> salesManList = new SalesManDao().querySalesMan(sName);
				
			if (salesManList.size() <=0)
			{
				System.err.println("\t!沒有人員符合查詢條件!");
			}else 
				{
					System.out.println("\t\t\t所有售貨員列表\n\n");
					System.out.println("\t售貨員編號\t\t售貨員姓名\t\t售貨員密碼");
					
					for (int i = 0,length = salesManList.size(); i < length; i++)
					{
						SalesMan salesMan = salesManList.get(i);
						System.out.println("\t"+salesMan.getSId()+"\t\t\t"+salesMan.getSName()+"\t\t\t"+salesMan.getSPassWord());
						System.out.println();
					}
				}
		 choiceSalesManNext("querySalesMan"); //param:呼叫者
		}
		
	/**
	 * 5.顯示所有售貨員介面
	 */
	public static void displaySalesManPage()
	{
		ArrayList<SalesMan> salesManList = new SalesManDao().displaySalesMan();
		if (salesManList.size() <= 0)
		{
			System.err.println("\t!!售貨員列表為空!!");
			MainPage.salesManManagementPage();
		}else 
			{
				System.out.println("\t\t\t所有售貨員列表\n\n");
				System.out.println("\t售貨員編號\t\t售貨員姓名\t\t售貨員密碼");
				
				for (int i = 0,length = salesManList.size(); i < length; i++)
				{
					SalesMan salesMan = salesManList.get(i);
					System.out.println("\t"+salesMan.getSId()+"\t\t\t"+salesMan.getSName()+"\t\t\t"+salesMan.getSPassWord());
					System.out.println();
				}
				do
				{
					System.out.println("\n\n輸入 0 返回上一級選單");
					String choice = ScannerInfoString();
					
					if ("0".equals(choice))
					{
						MainPage.salesManManagementPage();
					}
					System.err.print("\t輸入有誤!");
				} while (true);
			}
	}
}