北大青鳥單元超市收銀管理系統(tǒng)_第1頁(yè)
北大青鳥單元超市收銀管理系統(tǒng)_第2頁(yè)
北大青鳥單元超市收銀管理系統(tǒng)_第3頁(yè)
北大青鳥單元超市收銀管理系統(tǒng)_第4頁(yè)
北大青鳥單元超市收銀管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩56頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

{店鋪管理}北大青鳥單元超市收銀管理系統(tǒng)包結(jié)構(gòu)四個(gè)包,九個(gè)類,一個(gè)資源文件客戶端類package.Client;/***客戶端界面*/import.SimpleDateFormat;import.ArrayList;import.Date;import.Scanner;import.;import.;import.;publicclassClient{//定義掃描器,用于鍵盤輸入publicstaticScannerinput=newScanner();//創(chuàng)建客戶端業(yè)務(wù)類對(duì)象,調(diào)用方法publicstaticClientBcb=newClientB();publicstaticvoidmain(String[]args){do{.println("***********歡迎使用青鳥超市系統(tǒng)*************");.println("1.登錄"+"\n2.退出");.println("***********請(qǐng)選擇1/2*************");Stringchoice=();if(("1")){//登錄視圖createLoginView();break;}elseif(("2")){//退出(0);}else{//輸入有誤,報(bào)錯(cuò).println("無此選項(xiàng)!");}}while(true);.println("***********謝謝使用青鳥超市系統(tǒng)*************");}/***登錄視圖*通過輸入的用戶名與密碼驗(yàn)證用戶身份,管理員則進(jìn)入管理界面,收銀員則進(jìn)入收銀界面,都不是則提示錯(cuò)誤,并重新進(jìn)行輸入*/publicstaticvoidcreateLoginView(){do{//提示登錄信息.println("請(qǐng)輸入用戶名:");Stringname=();.println("請(qǐng)輸入密碼:");Stringpassword=();//調(diào)用客戶端登錄方法,接收返回值,判斷登錄者的身份Datasdatas=(name,password);//判斷是管理員還是收銀員if(().equals(_ADMIN)){createAdminView();break;}elseif(().equals(_CASHIER)){createCashierView();break;}else{.println("用戶名或密碼有誤,請(qǐng)重新輸入");}}while(true);}/***管理員菜單*實(shí)現(xiàn)管理員功能:*1.商品入庫(kù)2.商品出庫(kù)3.新增商品4.查詢?nèi)可唐?.按編號(hào)查詢商品6.退出*/privatestaticvoidcreateAdminView(){//循環(huán)操作//管理員菜單.println("管理員登錄成功,進(jìn)入管理員界面");do{.println("***********歡迎進(jìn)入青鳥超市庫(kù)存管理系統(tǒng)*************");.println("1.商品入庫(kù)\t2.商品出庫(kù)\t3.新增商品\t4.查詢?nèi)可唐穃t5.按序號(hào)查詢商品\t6.退出");//提示用戶選擇.println("請(qǐng)輸入您的選擇");intchoice=();switch(choice){//商品入庫(kù),調(diào)入庫(kù)方法case1://提示輸入要入庫(kù)的編號(hào).println("請(qǐng)輸入入庫(kù)商品編號(hào):");//定義變量接收輸入的編號(hào)Stringgoodnum=();//調(diào)用方法判斷庫(kù)存中是否有要入庫(kù)的商品if((goodnum).getFlag().equals(_SUCCESS)){.println("請(qǐng)輸入入庫(kù)數(shù)量:");intcount=();if(count>=0){Datasdatas=(goodnum,count);if(().equals(_SUCCESS)){.println("入庫(kù)成功!");showList(());}}else{.println("入庫(kù)數(shù)量必須大于0");}}else{.println("無此商品,請(qǐng)選擇3新增");}break;//商品出庫(kù),調(diào)出庫(kù)方法case2:do{//提示輸入出庫(kù)商品編號(hào).println("請(qǐng)選擇出庫(kù)商品編號(hào):");//定義變量接收編號(hào)Stringgoodid=();//先查詢是否由此商品if((goodid).getFlag().equals(_SUCCESS)){//提示輸入出庫(kù)數(shù)量.println("請(qǐng)輸入出庫(kù)數(shù)量:");intcount=();if(count>0){Datasdatas=(goodid,count);if(().equals(_LACK)){.println("庫(kù)存不足!");showGood(datas);break;}else{.println("出庫(kù)成功!");showList(datas);break;}}else{.println("出庫(kù)數(shù)量必須大于0!");}}else{.println("庫(kù)存中無此商品,請(qǐng)選擇3新增");break;}}while(true);break;case3://新增商品,調(diào)新增方法do{//提示輸入新增商品編號(hào).println("請(qǐng)輸入新增商品的編號(hào):");Stringnewgoodid=();if((newgoodid).getFlag().equals(_SUCCESS)){.println("商品已存在");break;}else{.println("請(qǐng)輸入商品名稱:");Stringname=();.println("請(qǐng)輸入商品單價(jià):");doubleprice=();.println("請(qǐng)輸入商品單位:");Stringunit=();.println("請(qǐng)輸入商品數(shù)量:");intcount=();Goodsgood=newGoods(newgoodid,(name+"\t"),price,unit,count);//把要新增的商品通過調(diào)用方法傳給業(yè)務(wù)類,并接收返回值Datasdatas=(good);.println("新增商品成功!");//打印商品列表showList(());break;}}while(true);break;//查詢?nèi)可唐返姆椒╟ase4://查詢商品,調(diào)用showList方法參數(shù)為Datas類型,是FindAll傳回來的showList(());break;//按編號(hào)查詢商品,調(diào)按編號(hào)查詢方法case5://提示輸入編號(hào).println("請(qǐng)輸入要查詢的編號(hào):");//定義變量接收輸入Stringid=();//判斷庫(kù)存中是否存在編號(hào)為goodid的商品Datasdatas=(id);//如果存在,調(diào)用方法,打印商品if(().equals(_SUCCESS)){showGood(datas);}else{.println("沒有此商品");}break;case6://退出.println("管理員退出成功!");(0);default://提示無此選項(xiàng).println("無此選項(xiàng),請(qǐng)重新輸入:");}}while(true);}/***收銀員管理界面.*實(shí)現(xiàn)收銀員的功能:*1.掃描商品2.修改購(gòu)買商品的數(shù)量3.結(jié)賬4.退出*///收銀員管理界面privatestaticvoidcreateCashierView(){//循環(huán)操作收銀界面while(true){.println("收銀員登錄成功,進(jìn)入收銀員界面");.println("***********歡迎進(jìn)入青鳥超市收銀管理系統(tǒng)*************");.println("1.掃描商品\t2.修改數(shù)量\t3.結(jié)賬\t4.退出");//提示用戶輸入操作選項(xiàng).println("請(qǐng)輸入您的選擇:");intchoice=();switch(choice){case1://調(diào)用掃描方法do{//提示輸入掃描編號(hào).println("請(qǐng)輸入要掃描的商品編號(hào):");Stringscannum=();//如果查詢到編號(hào),說明商品存在,否則商品不存在if((scannum).getFlag().equals(_SUCCESS)){//如果商品存在,調(diào)用掃描的方法Datasdatas=(scannum);//判斷返回的標(biāo)識(shí)if(().equals(_SUCCESS)){.println("掃描成功");showScan(datas);break;}else{.println("掃描失敗");//showScan(datas);break;}}else{.println("商品不存在!");break;}}while(true);break;case2://修改數(shù)量的方法//判斷購(gòu)買列表是否為空if(().getFlag().equals(_ERROR)){.println("購(gòu)買列表中還沒有購(gòu)買物品!");continue;}//循環(huán)操作數(shù)據(jù)do{//提示用戶輸入要修改的編號(hào),并判斷購(gòu)買列表中是否存在此編號(hào).println("請(qǐng)輸入要修改的商品編號(hào):");Stringchangeid=();Datasdatas=newDatas();//調(diào)用方法判斷是否存在商品編號(hào)if(hasid(changeid)){//存在,提示修改數(shù)量.println("請(qǐng)輸入修改后的數(shù)量");intchangenum=();if(changenum>1){datas=(changeid,changenum);if(().equals(_LACK)){.println("數(shù)量不足,請(qǐng)確認(rèn)!");showGood((changeid));continue;}else{.println("修改成功!");showScan(());break;}}else{.println("購(gòu)買數(shù)量必須大于0!");break;}}//如果包含,提示修改數(shù)量.println("購(gòu)買列表中無此商品,請(qǐng)核實(shí)");continue;}while(true);break;case3://調(diào)用結(jié)賬方法creatOver();break;case4://退出.println("收銀員退出系統(tǒng)成功!");(0);default://錯(cuò)誤提示.println("輸入有問題,請(qǐng)重新輸入:");}}}/***打印商品列表的方法,參數(shù)是Datas類型,無返回值*通過調(diào)用客戶端業(yè)務(wù)類的方法得到返回值,打印商品列表*@paramdatas*///打印商品列表privatestaticvoidshowList(Datasdatas){.println("------------------------------------------------------------------------------------------------");.println("商品編號(hào)\t\t商品名稱\t\t\t\t商品單價(jià)\t\t單位\t\t數(shù)量");for(Goodsgood:()){.println(()+"\t\t"+()+"\t\t"+()+"\t\t"+()+"\t\t"+());}.println("------------------------------------------------------------------------------------------------");}/***按編號(hào)查詢商品的方法.得到返回值,直接打印返回值中的商品*@paramdatas*///打印單個(gè)商品privatestaticvoidshowGood(Datasdatas){.println("------------------------------------------------------------------------------------------------");.println("商品編號(hào)\t\t商品名稱\t\t\t\t商品單價(jià)\t\t單位\t\t數(shù)量");.println(().getGoodid()+"\t\t"+().getGoodname()+"\t\t"+().getGoodprice()+"\t\t"+().getGoodunit()+"\t\t"+().getGoodcount());.println("------------------------------------------------------------------------------------------------");}/***收銀員菜單中的掃描商品的方法后打印掃描商品列表的方法**@paramdatas*///打印掃描商品列表privatestaticvoidshowScan(Datasdatas){if(().equals(_SUCCESS)){//定義列表接收掃描后的購(gòu)買列表ArrayList<Goods>scanlist=();//輸出商品列表.println("商品編號(hào)\t商品名稱\t\t\t\t數(shù)量\t\t單價(jià)\t\t金額");.println("------------------------------------------------------------------------------------------------");for(Goodsgood:scanlist){.println(()+"\t"+()+"\t\t"+()+"\t\t"+()+"\t\t"+(()*()));}.println("------------------------------------------------------------------------------------------------");}}/***查詢購(gòu)買列表中是否存在要修改數(shù)量的商品*參數(shù)為商品編號(hào),如果存在,返回true.不存在則返回false*@paramid*@return*///查詢購(gòu)買列表中是否存在要修改數(shù)量商品的編號(hào)privatestaticbooleanhasid(Stringid){Datasdatas=newDatas();(().getBuylist());for(Goodsgood:()){if(().equals(id)){returntrue;}}returnfalse;}/***結(jié)賬方法,分為普通結(jié)賬和會(huì)員結(jié)賬*普通結(jié)賬和會(huì)員結(jié)賬,分別調(diào)用普通結(jié)賬方法和會(huì)員結(jié)賬方法*///結(jié)賬方法privatestaticvoidcreatOver(){//首先打印購(gòu)買列表,算出總金額.調(diào)用普通結(jié)賬,或vip結(jié)賬doublemoney=sum(());//.println("您的消費(fèi)金額是:"+money);//提示選擇結(jié)賬方法if(money!=0){.println("請(qǐng)選擇結(jié)賬方法:");.println("1.普通結(jié)賬\t2.會(huì)員結(jié)賬");intchoice=();if(choice==1){//普通會(huì)員結(jié)賬方法.println("您的消費(fèi)金額是:"+money);do{.println("請(qǐng)輸入金額:");intpay=();if(pay<0){.println("請(qǐng)輸入正確金額!");}elseif(pay<money){.println("金額不足,請(qǐng)確認(rèn)!");}elseif(pay>=money){//.println();//結(jié)賬成功.調(diào)用結(jié)賬方法,打印小票,并跳出結(jié)賬.Over(money,pay);break;}else{.println("請(qǐng)輸入正確格式:");}}while(true);}elseif(choice==2){//vip會(huì)員結(jié)賬方法,會(huì)員卡號(hào)2011..println("您的消費(fèi)金額是:"+money);.print("請(qǐng)輸入您的會(huì)員卡號(hào):");do{intvip=();if(vip==2013){.print("會(huì)員卡號(hào)正確,請(qǐng)輸入您要支付的金額:");intvippay=();if(vippay>0){if(vippay>money){//金額足夠時(shí)調(diào)用vip結(jié)賬方法VipOver(money,vippay);break;}else{.println("付款金額不足");}}else{.println("付款金額必須大于0!");}}else{.println("您的會(huì)員卡號(hào)不正確:");}}while(true);}else{.println("無此結(jié)賬方法");}}else{.println("您還沒有掃描商品");}}/***結(jié)賬時(shí)用到的計(jì)算購(gòu)買金額的方法,如果buylist不為空,則返回購(gòu)買金額.否則返回0.**@paramresult*@return*///算出購(gòu)買總金額的方法privatestaticdoublesum(Datasresult){//首先判斷購(gòu)買列表是否為空,不為空則算出購(gòu)買金額if(().getFlag().equals(_SUCCESS)){ArrayList<Goods>list=().getBuylist();doublesum=0;//購(gòu)買總額for(inti=0;i<();i++){sum+=(i).getGoodprice()*(i).getGoodcount();}returnsum;}elsereturn0;}//計(jì)算購(gòu)買數(shù)量的方法privatestaticintsumBuyListCount(Datasresult){if(().getFlag().equals(_SUCCESS)){ArrayList<Goods>list=().getBuylist();intgoodscount=0;for(inti=0;i<();i++){goodscount+=(i).getGoodcount();}returngoodscount;}else{return0;}}/***普通結(jié)賬方法.返回結(jié)賬視圖,并清空購(gòu)買菜單*@parammoney*@parampay*///普通用戶結(jié)賬的方法privatestaticvoidOver(doublemoney,intpay){//首先打印,小票的表頭.println("***************************************************************************************************");.println("\t\t\t\t青鳥超市");.println("收銀員:1001\t小票號(hào):"+ticket());//顯示購(gòu)買列表showbuylist();//顯示購(gòu)買金額和購(gòu)買的數(shù)量,結(jié)賬提示.println("總數(shù)量:"+sumBuyListCount(())+"\t\t\t應(yīng)收:"+money);.println("實(shí)收:"+pay+"\t\t找零:"+(pay-money));.println(Date());.println("此小票是您退換貨及核對(duì)積分的憑證,請(qǐng)妥善保存!");.println("***************************************************************************************************");//購(gòu)買列表清空();}/***Vip會(huì)員結(jié)賬方法.返回結(jié)賬視圖,累計(jì)會(huì)員積分,并清空購(gòu)買菜單*@parammoney*@parampay*///vip用戶結(jié)賬方法privatestaticvoidVipOver(doublemoney,intvippay){//首先打印,小票的表頭.println("***************************************************************************************************");.println("\t\t\t\t青鳥超市");.println("收銀員:1001\t小票號(hào):"+ticket());//顯示購(gòu)買列表showbuylist();//顯示購(gòu)買金額和購(gòu)買的數(shù)量,結(jié)賬提示.println("總數(shù)量:"+sumBuyListCount(())+"\t\t\t應(yīng)收:"+money);.println("實(shí)收:"+vippay+"\t\t找零:"+(vippay-money));//Vip積分提示.println("本次累計(jì)積分成功\t\t卡號(hào):2011");.println("消費(fèi)前積分+本次消費(fèi)積分=消費(fèi)后積分");.println(2000+"+"+(int)money+"="+(2000+(int)money));.println(Date());.println("此小票是您退換貨及核對(duì)積分的憑證,請(qǐng)妥善保存!");.println("***************************************************************************************************");//購(gòu)買列表清空();}/***打印購(gòu)買菜單的方法.*///打印購(gòu)買列表的方法privatestaticvoidshowbuylist(){ArrayList<Goods>buylist=().getBuylist();.println("序\t\t商品名稱(單位)\t\t\t\t數(shù)量\t\t單價(jià)\t\t金額");.println("------------------------------------------------------------------------------------------------");for(inti=0;i<();i++){.println((i+1)+"\t\t("+(i).getGoodid()+")"+(i).getGoodname()+(i).getGoodunit()+"\t\t\t"+(i).getGoodcount()+"\t\t"+(i).getGoodprice()+"\t\t"+(i).getGoodcount()*(i).getGoodprice());}.println("------------------------------------------------------------------------------------------------");}/***得到日期的方法,在結(jié)賬時(shí)顯示日期用*@return*///顯示日期的方法privatestaticStringDate(){Datedate=newDate();SimpleDateFormatsdf=newSimpleDateFormat("yyyydd/hh:mm:ss");Stringpaydate=(date);returnpaydate;}/***得到小票號(hào)的方法.日期+(1-1000)的隨機(jī)數(shù)*@return*///打印票據(jù)的方法privatestaticStringticket(){Datedate=newDate();SimpleDateFormatsdf=newSimpleDateFormat("yyyyMMddhhmm");Stringticket=(date)+(int)(()*1000);returnticket;}}客戶端業(yè)務(wù)類package.Client;/***客戶端業(yè)務(wù)類.*功能:客戶端調(diào)用業(yè)務(wù)類的方法,實(shí)現(xiàn)和服務(wù)器端的數(shù)據(jù)交互*/import.IOException;import.ObjectInputStream;import.ObjectOutputStream;import.Socket;import.UnknownHostException;import.;import.;import.;import.;import.;publicclassClientB{//創(chuàng)建Socket實(shí)例Socketsocket=null;//創(chuàng)建輸入輸出流ObjectOutputStreamoos=null;ObjectInputStreamois=null;/***初始化輸入輸出流的方法,每次調(diào)用方法時(shí)都要初始化輸入輸出流*///初始化流的方法publicvoidinitSocket(){try{//socket=newSocket(localhost,8888)socket=newSocket((_HOSTNAME),((_LISTENERPORT)));//獲得輸入輸出流oos=newObjectOutputStream(());ois=newObjectInputStream(());}catch(NumberFormatExceptione){//TODO自動(dòng)生成的catch塊e.printStackTrace();}catch(UnknownHostExceptione){//TODO自動(dòng)生成的catch塊e.printStackTrace();}catch(IOExceptione){//TODO自動(dòng)生成的catch塊e.printStackTrace();}}/***關(guān)閉輸入輸出流的方法.*每次調(diào)用方法之后都要關(guān)閉輸入輸出流*/publicvoidcloseSocket(){//關(guān)閉流的方法try{();();();}catch(IOExceptione){//TODO自動(dòng)生成的catch塊e.printStackTrace();}}/***客戶端登錄方法.*接收客戶端發(fā)送參數(shù),發(fā)送到服務(wù)器端驗(yàn)證,并接收服務(wù)器端返回的數(shù)據(jù)信息*@paramname*@parampassword*@return*///登錄方法publicDatasdoLogin(Stringname,Stringpassword){initSocket();Useruser=newUser();(name);(password);Datasdatas=newDatas();(_LOGIN);(user);//寫入流try{(datas);//接收服務(wù)器返回值datas=(Datas)();returndatas;}catch(IOExceptione){//TODO自動(dòng)生成的catch塊e.printStackTrace();}catch(ClassNotFoundExceptione){//TODO自動(dòng)生成的catch塊e.printStackTrace();}finally{closeSocket();}returnnull;}/***客戶端查詢?nèi)可唐返姆椒?@return*///查詢?nèi)可唐返姆椒╬ublicDatasFindAll(){initSocket();Datasdatas=newDatas();(_FINDALL);try{(datas);datas=(Datas)();returndatas;}catch(IOExceptione){//TODO自動(dòng)生成的catch塊e.printStackTrace();}catch(ClassNotFoundExceptione){//TODO自動(dòng)生成的catch塊e.printStackTrace();}finally{closeSocket();}returnnull;}/***客戶端實(shí)現(xiàn)按編號(hào)查詢商品的方法*功能:接收編號(hào),到服務(wù)器查詢,接收返回值*@paramgoodid*@return*///按編號(hào)查詢商品的方法publicDatasFind(Stringgoodid){initSocket();Goodsgood=newGoods();(goodid);Datasdatas=newDatas();(_FIND);(good);try{(datas);datas=(Datas)();returndatas;}catch(IOExceptione){//TODO自動(dòng)生成的catch塊e.printStackTrace();}catch(ClassNotFoundExceptione){//TODO自動(dòng)生成的catch塊e.printStackTrace();}finally{closeSocket();}returnnull;}/***客戶端管理員實(shí)現(xiàn)入庫(kù)商品的方法*@paramgoodid*@paramcount*@return*///入庫(kù)方法publicDatasRuKu(Stringgoodid,intcount){initSocket();Goodsgood=newGoods();(goodid);(count);Datasdatas=newDatas();(_RUKU);(good);try{(datas);datas=(Datas)();returndatas;}catch(IOExceptione){//TODO自動(dòng)生成的catch塊e.printStackTrace();}catch(ClassNotFoundExceptione){//TODO自動(dòng)生成的catch塊e.printStackTrace();}finally{closeSocket();}returnnull;}/***客戶端管理員實(shí)現(xiàn)商品出庫(kù)的方法*@paramgoodid*@paramcount*@return*/publicDatasChuKu(Stringgoodid,intcount){initSocket();//接收參數(shù)Goodsgood=newGoods();(goodid);(count);Datasdatas=newDatas();(_CHUKU);(good);try{(datas);datas=(Datas)();returndatas;}catch(IOExceptione){//TODO自動(dòng)生成的catch塊e.printStackTrace();}catch(ClassNotFoundExceptione){//TODO自動(dòng)生成的catch塊e.printStackTrace();}finally{closeSocket();}returnnull;}/***客戶端管理員實(shí)現(xiàn)商品新增的方法*@paramgood*@return*///新增商品方法publicDatasAdd(Goodsgood){initSocket();Datasdatas=newDatas();(_ADD);(good);try{(datas);datas=(Datas)();}catch(IOExceptione){//TODO自動(dòng)生成的catch塊e.printStackTrace();}catch(ClassNotFoundExceptione){//TODO自動(dòng)生成的catch塊e.printStackTrace();}finally{closeSocket();}returnnull;}/***客戶端收銀員實(shí)現(xiàn)掃描商品的方法*@paramscannum*@return*///掃描方法publicDatasscan(Stringscannum){//TODO自動(dòng)生成的方法存根initSocket();Goodsgood=newGoods();(scannum);Datasdatas=newDatas();(good);(_SCAN);try{(datas);datas=(Datas)();returndatas;}catch(IOExceptione){//TODO自動(dòng)生成的catch塊e.printStackTrace();}catch(ClassNotFoundExceptione){//TODO自動(dòng)生成的catch塊e.printStackTrace();}finally{closeSocket();}returnnull;}/***客戶端收銀員實(shí)現(xiàn)結(jié)賬時(shí)返回購(gòu)買列表的方法*@return*///結(jié)賬方法.返回購(gòu)買列表publicDatasresult(){initSocket();Datasdatas=newDatas();(_RESULT);try{(datas);datas=(Datas)();returndatas;}catch(IOExceptione){//TODO自動(dòng)生成的catch塊e.printStackTrace();}catch(ClassNotFoundExceptione){//TODO自動(dòng)生成的catch塊e.printStackTrace();}finally{closeSocket();}returnnull;}/***客戶端收銀員實(shí)現(xiàn)修改數(shù)量的方法*@paramchangeid*@paramchangenum*@return*///收銀員,修改數(shù)量的方法publicDatasChangeCount(Stringchangeid,intchangenum){initSocket();Goodsgood=newGoods();(changeid);(changenum);Datasdatas=newDatas();(_UPDATA);(good);try{(datas);datas=(Datas)();returndatas;}catch(IOExceptione){//TODO自動(dòng)生成的catch塊e.printStackTrace();}catch(ClassNotFoundExceptione){//TODO自動(dòng)生成的catch塊e.printStackTrace();}finally{closeSocket();}returnnull;}/***客戶端收銀員實(shí)現(xiàn)清空購(gòu)買列表的方法*@return*/publicDatasclear(){//TODO自動(dòng)生成的方法存根initSocket();Datasdatas=newDatas();(_CLEAR);try{(datas);datas=(Datas)();returndatas;}catch(IOExceptione){//TODO自動(dòng)生成的catch塊e.printStackTrace();}catch(ClassNotFoundExceptione){//TODO自動(dòng)生成的catch塊e.printStackTrace();}finally{closeSocket();}returnnull;}}商品類package.entity;/***商品類*實(shí)現(xiàn)序列化*屬性:Stringgoodid商品編號(hào)*Stringgoodname商品名稱*Stringgoodprice商品單價(jià)*Stringgoodunit商品單位*Stringgoodcount商品庫(kù)存(數(shù)量)*商品屬性和Set/Get方法*有參和無參的構(gòu)造方法*/import.Serializable;publicclassGoodsimplementsSerializable{privateStringgoodid;//商品編號(hào)privateStringgoodname;//商品名稱privatedoublegoodprice;//商品單價(jià)privateStringgoodunit;//商品單位privateintgoodcount;//商品數(shù)量//商品無參數(shù)構(gòu)造方法publicGoods(){}//商品有參數(shù)構(gòu)造方法publicGoods(Stringgoodid,Stringgoodname,doublegoodprice,Stringgoodunit,intgoodcount){=goodid;=goodname;=goodprice;=goodunit;=goodcount;}publicStringgetGoodid(){returngoodid;}publicvoidsetGoodid(Stringgoodid){=goodid;}publicStringgetGoodname(){returngoodname;}publicvoidsetGoodname(Stringgoodname){=goodname;}publicdoublegetGoodprice(){returngoodprice;}publicvoidsetGoodprice(doublegoodprice){if(goodprice>0){=goodprice;}else{.println("價(jià)格必須大于0");}}publicStringgetGoodunit(){returngoodunit;}publicvoidsetGoodunit(Stringgoodunit){=goodunit;}publicintgetGoodcount(){returngoodcount;}publicvoidsetGoodcount(intgoodcount){=goodcount;}}用戶類package.entity;/***用戶類*實(shí)現(xiàn)序列化*屬性:用戶名和密碼*方法:Set和Get方法*/import.Serializable;publicclassUserimplementsSerializable{privateStringusername;//用戶名privateStringpassword;//密碼/*publicUser(){//無參數(shù)構(gòu)造方法}//有參數(shù)構(gòu)造方法publicUser(Stringusername,Stringpassword){=username;=password;

}*///Set和Get方法publicStringgetUsername(){returnusername;}publicvoidsetUsername(Stringusername){=username;}publicStringgetPassword(){returnpassword;}publicvoidsetPassword(Stringpassword){=password;}}服務(wù)器類package.Server;/***服務(wù)器*繼承線程類,創(chuàng)建ServerService接口,監(jiān)聽客戶端請(qǐng)求*判斷客戶端傳遞的標(biāo)識(shí),通過標(biāo)識(shí)調(diào)用服務(wù)端業(yè)務(wù)類操作數(shù)據(jù)的方法,并給與客戶端響應(yīng)*/import.IOException;import.ObjectInputStream;

import.ObjectOutputStream;

import.ServerSocket;import.Socket;import.;import.;import.;publicclassServerListenerextendsThread{publicstaticvoidmain(String[]args){//TODO自動(dòng)生成的方法存根newServerListener().start();

}@Overridepublicvoidrun(){//服務(wù)器啟動(dòng).println("服務(wù)器啟動(dòng)");//創(chuàng)建ServerSocket,Socket服務(wù)器socket初始化ServerSocketserversocket=null;Socketsocket=null;ObjectOutputStreamoos=null;ObjectInputStreamois=null;try{//實(shí)例化ServerSocketsocket端口號(hào)8888serversocket=newServerSocket(((_LISTENERPORT)));//死循環(huán)監(jiān)聽請(qǐng)求while(true){socket=();oos=newObjectOutputStream(());

ois=newObjectInputStream(());

//接受客戶請(qǐng)求的對(duì)象Datasdatas=(Datas)();Stringflag=();//創(chuàng)建服務(wù)器服務(wù)類的對(duì)象ServerServicess=newServerService();

//判斷客戶端傳過來的標(biāo)識(shí)是想調(diào)用什么方法

if(().equals(_LOGIN)){datas=(datas);}elseif((_ADD)){datas=(datas);//商品出庫(kù)}elseif((_CHUKU)){datas=(datas);//商品入庫(kù)}elseif((_RUKU)){datas=(datas);//編號(hào)查看}elseif((_FIND)){datas=(datas);//查看所有}elseif((_FINDALL)){datas=(datas);//掃描商品}elseif((_SCAN)){datas=(datas);//修改商品}elseif((_UPDATA)){datas=(datas);//商品結(jié)賬}elseif((_RESULT)){datas=(datas);//商品清空}elseif((_CLEAR)){datas=();}else{(_ERROR);}//把datas作為返回值寫入客戶端(datas);();();}}catch(NumberFormatExceptione){//TODO自動(dòng)生成的catch塊e.printStackTrace();}catch(IOExceptione){//TODO自動(dòng)生成的catch塊e.printStackTrace();}catch(ClassNotFoundExceptione){//TODO自動(dòng)生成的catch塊e.printStackTrace();

}finally{//關(guān)閉流try{();();();}catch(IOExceptione){//TODO自動(dòng)生成的catch塊e.printStackTrace();}}.println("服務(wù)器終止服務(wù)!");}}服務(wù)器業(yè)務(wù)類package.Server;import.ArrayList;import.;import.;import.;import.;/***服務(wù)業(yè)務(wù)類.*用來初始化商品列表,創(chuàng)建管理員和收銀員對(duì)象

*存放服務(wù)器端調(diào)用的方法*@authorAdministrator**/publicclassServerService{/***初始化管理員對(duì)象和收銀員對(duì)象*管理員對(duì)象:用戶名:admin密碼:admin*收銀員對(duì)象:用戶名:user密碼:user*初始化商品列表和購(gòu)買列表*/privatestaticUserstockman;//庫(kù)管對(duì)象privatestaticUsercashier;//收銀對(duì)象privatestaticArrayList<Goods>goodslist=newArrayList<Goods>();//商品列表privatestaticArrayList<Goods>buylist=newArrayList<Goods>();//購(gòu)買列表static{//初始化庫(kù)管和收銀stockman=newUser();("1101");("1111");cashier=newUser();("1001");("0000");//初始化商品列表goodslist=newArrayList<Goods>();(newGoods("1001","吉百芝麻油\t",9.5,"125ml",200));(newGoods("1002","雀巢奶香咖啡\t",1.5,"13g",200));(newGoods("1003","脈動(dòng)水蜜桃\t",7.0,"1.5l",500));(newGoods("1004","旺仔蘋果Q糖\t",2.5,"70g",700));(newGoods("1005","桃李熟切片\t",6.5,"400g",150));(newGoods("1006","白玉黃豆芽\t",2.4,"350g",200));(newGoods("1007","白如內(nèi)酯豆腐\t",1.0,"400g",100));}/***登錄方法驗(yàn)證客戶端傳過來的信息,判斷登錄人員身份

*管理員,返回管理員標(biāo)識(shí)*收銀員,返回收銀員標(biāo)識(shí)*都不是則返回錯(cuò)誤標(biāo)識(shí)*@paramdatas*@return*///登錄方法.驗(yàn)證是管理員還是收銀員登錄,如果錯(cuò)誤,返回錯(cuò)誤標(biāo)識(shí)publicDatasdoLogin(Datasdatas){if(().getUsername().equals(())&&().getPassword().equals(())){

(_ADMIN);}elseif(().getUsername().equals(())&&().getPassword().equals(())){(_CASHIER);}else{(_ERROR);}returndatas;}/***倉(cāng)庫(kù)管理員的方法*//***管理員新增商品的方法,*@paramdatas*@return*///新增商品publicDatasadd(Datasdatas){//TODO自動(dòng)生成的方法存根(());(_SUCCESS);//(goodslist);returndatas;}/***管理員商品出庫(kù)的方法*判斷商品列表中是否存在,如果存在判斷庫(kù)存是否充足,充足,返回成功標(biāo)識(shí),并操作商品列表中的數(shù)量*如果庫(kù)存不充足,返回缺貨標(biāo)識(shí)*如果商品列表中沒有此商品,返回失敗標(biāo)識(shí)*@paramdatas*@return*///出庫(kù)方法publicDatasdown(Datasdatas){//TODO自動(dòng)生成的方法存根for(inti=0;i<();i++){if((i).getGoodid().equals(().getGoodid())){if((i).getGoodcount()>=().getGoodcount()){(i).setGoodcount((i).getGoodcount()-().getGoodcount());(goodslist);(_SUCCESS);returndatas;}else{(_LACK);returndatas;}}}(_ERROR);returndatas;}/***管理員商品入庫(kù)方法*在商品列表中查詢到商品的位置,并修改數(shù)量*@paramdatas*@return*///入庫(kù)的方法publicDatasup(Datasdatas){//TODO自動(dòng)生成的方法存根for(inti=0;i<();i++){if((i).getGoodid().equals(().getGoodid())){(i).setGoodcount((i).getGoodcount()+().getGoodcount());(goodslist);(_SUCCESS);returndatas;}

}returnnull;}/***管理員按編號(hào)查找商品的方法*查詢到返回成功標(biāo)識(shí)*否則返回錯(cuò)誤標(biāo)識(shí)*@paramdatas*@return*///按編號(hào)查找商品publicDatasfind(Datasdatas){//TODO自動(dòng)生成的方法存根for(inti=0;i<();i++){if((i).getGoodid().equals(().getGoodid())){(_SUCCESS);((i));returndatas;}}(_ERROR);returndatas;}/***管理員查詢?nèi)可唐返姆椒?@paramdatas*@return*///查詢?nèi)可唐妨斜淼姆椒╬ublicDatasfindAll(Datasdatas){//設(shè)置標(biāo)識(shí)為success,并設(shè)置商品列表.返回datas數(shù)據(jù)(_SUCCESS);(goodslist);returndatas;

}/***收銀員調(diào)用的方法*@paramdatas*@return*//***管理員掃描商品的方法*首先查詢購(gòu)買列表中是否存在掃描的商品,如果沒有則從商品列表中找到,修改數(shù)量后添加到購(gòu)買列表*如果購(gòu)買列表中存在掃描商品,則數(shù)量加1,商品列表中相對(duì)應(yīng)的商品數(shù)量-1;*@paramdatas*@return*///管理員掃描商品的方法publicDatasscan(Datasdatas){//TODO自動(dòng)生成的方法存根for(inti=0;i<();i++){//如果購(gòu)買列表中存在商品說明已經(jīng)掃描過了,數(shù)量加一并返回,商品列表中數(shù)量-1

if((i).getGoodid().equals(().getGoodid())){

(i).setGoodcount((i).getGoodcount()+1);

(_SUCCESS);(buylist);(i).setGoodcount((i).getGoodcount()-1);

//(buylist);returndatas;}}//遍歷之后如果沒有,說明商品還沒有掃描,在商品列表中掃描,并加入到購(gòu)買列表for(intj=0;j<();j++){//如果編號(hào)正確,判斷數(shù)量if((j).getGoodid().equals(().getGoodid())){if((j).getGoodcount()>0){//如果商品數(shù)量大于1,則掃描成功,把掃描的商品加入購(gòu)買列表,把商品列表中的數(shù)量-1,返

回datas.Goodsgood=newGoods();((j).getGoodid());((j).getGoodname());((j).getGoodprice());((j).getGoodunit());(1);(good);(_SUCCESS);(buylist);(j).setGoodcount((j).getGoodcount()-1);returndatas;}else{(_LACK);returndatas;}}}(_ERROR);returndatas;}/***收銀員修改商品數(shù)量的方法*首先在商品列表中找到商品,判斷數(shù)量是否足夠,夠則操作數(shù)量,返回成功標(biāo)識(shí)

*不夠則返回缺乏標(biāo)識(shí)*如果不存在則返回錯(cuò)誤標(biāo)識(shí)*@paramdatas*@return*/publicDatasupData(Datasdatas){//遍歷購(gòu)買列表得到購(gòu)買商品idfor(inti=0;i<();i++){if((i).getGoodid().equals(().getGoodid())){//得到id判斷庫(kù)存數(shù)量是否足夠if(().getGoodcount()<=(i).getGoodcount()+1){

(i).setGoodcount(().getGoodcount());(i).setGoodcount((i).getGoodcount()+1-().getGoodcount());(_SUCCESS);(buylist);returndatas;}else{(_LACK);returndatas;}}}//遍歷購(gòu)買列表后沒找到商品編號(hào),返回錯(cuò)誤標(biāo)識(shí)(_ERROR);returndatas;}/***收銀員返回購(gòu)買列表的方法*如果購(gòu)買列表不為空,返回列表和成功標(biāo)識(shí)*如果為空,返回錯(cuò)誤標(biāo)識(shí)*@paramdatas*@return*///產(chǎn)生購(gòu)買列表用以查詢

publicDatasresult(Datasdatas){

//TODO自動(dòng)生成的方法存根

if(()!=0){(buylist);(_SUCCESS);returndatas;}(_ERROR);re

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論