面向?qū)ο蟪绦蛟O(shè)計 商品銷售系統(tǒng) Java深入面向?qū)ο缶幊蘝第1頁
面向?qū)ο蟪绦蛟O(shè)計 商品銷售系統(tǒng) Java深入面向?qū)ο缶幊蘝第2頁
面向?qū)ο蟪绦蛟O(shè)計 商品銷售系統(tǒng) Java深入面向?qū)ο缶幊蘝第3頁
面向?qū)ο蟪绦蛟O(shè)計 商品銷售系統(tǒng) Java深入面向?qū)ο缶幊蘝第4頁
面向?qū)ο蟪绦蛟O(shè)計 商品銷售系統(tǒng) Java深入面向?qū)ο缶幊蘝第5頁
已閱讀5頁,還剩83頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

淮海工學院計算機工程學院實驗報告書課程名:《面向?qū)ο蟪绦蛟O(shè)計》實驗名稱:Java深入面向?qū)ο缶幊躺唐蜂N售系統(tǒng)班級:^^組長:組員:^^評語:評語:成績:指導教師:批閱時間:年月日編號:時間:2021年x月x日書山有路勤為徑,學海無涯苦作舟頁碼:第頁一.實驗目的1.

掌握Java面向?qū)ο缶幊痰某醪街R,理解類的定義和使用,會正確運用Java的非訪問控制符和訪問控制符來實現(xiàn)面向?qū)ο蟮木幊趟枷耄徽莆認ava類的修飾符、訪問控制符的使用;2.

培養(yǎng)團隊合作精神和溝通能力。二.實驗題目

以與大學生學習、生活、娛樂相關(guān)的信息服務(wù)為例,各團隊自選題目,用面向?qū)ο蟮姆椒ㄟM行需求分析,劃分功能模塊,每位成員負責其中某些模塊的設(shè)計與實現(xiàn)。

首先練習類的定義和使用,包括類、屬性和方法的各種修飾符的使用、方法與構(gòu)造函數(shù)的定義與使用,練習修飾符的使用。

三.要求1.

采用Application圖形界面顯示,請注意用戶界面的友好性;2.

源程序中必需對程序功能、方法、屬性等加適當?shù)淖⑨專?.

每個人一個包(即用英文命名的文件夾),所有類的命名都要用設(shè)計者姓名拼音縮寫加若干能表達功能意義的字符組成;4.

每組有一個組長,組長除完成本身任務(wù)外,還要負責設(shè)計作為程序入口的主類、系統(tǒng)總的說明文檔;每位成員負責編寫自己每次的說明文檔;5.

作業(yè)由組長以團隊形式提交到教學平臺上,壓縮包名為三個成員漢語名字合成,第一個為組長。6.提交時間:四、實驗步驟與源程序1.選題與團隊分工選題:商品銷售系統(tǒng)分工:角色姓名承擔的具體任務(wù)組長強余彬程序的主入口、客戶類、修改產(chǎn)品、修改客戶、下單及一些界面類組員李宏志產(chǎn)品類、銷添加刪除客戶、產(chǎn)品的類組員謝超初始化數(shù)據(jù)類、、查詢客戶、產(chǎn)品類、用戶類2.系統(tǒng)需求分析系統(tǒng)功能描述商品銷售系統(tǒng)系統(tǒng)管理員:添加客戶資料、刪除客戶資料、修改客戶資料、查詢客戶資料、添加商品、刪除商品、修改商品、查詢商品、下單、取消下單、修改密碼(包括銷售人員)銷售人員:添加客戶資料、修改客戶資料、查詢客戶資料、修改商品、下單、取消下單、修改密碼系統(tǒng)用例圖3.系統(tǒng)類圖設(shè)計系統(tǒng)類圖(強余彬)搜查實體類異常類(李宏志)(謝超)4.源程序五、測試數(shù)據(jù)與實驗結(jié)果 登陸界面輸入錯誤系統(tǒng)管理員主界面修改客戶(失?。? 修改客戶(成功)下單 下單失敗 添加產(chǎn)品刪除產(chǎn)品 修改產(chǎn)品修改密碼(輸入密碼錯誤) 未輸入修改密碼輸入密碼不一致 修改成功修改銷售人員密碼(賬號錯誤) 修改銷售人員密碼成功李宏志:

謝超六、結(jié)果分析與實驗體會(強余彬)本次實驗對系統(tǒng)的功能沒有做修改,主要是優(yōu)化了系統(tǒng)的結(jié)構(gòu)。首先是本次實驗大量運用了繼承,尤其是界面,大多數(shù)的界面繼承的是ReviseClientGUI這個界面,重復利用了界面上的布局以及標簽,大大簡化了工作量以及代碼的長度,有些界面是繼承的一些相似的界面,例如刪除客戶繼承了刪除產(chǎn)品的界面,而刪除產(chǎn)品又是繼承于修改客戶這個界面。其次,本次實驗添加了一個自定義異常類,當創(chuàng)建新用戶的時候密碼低于三位數(shù)會自動派出此異常。本次試驗還添加了一個Search類,里面有一些常用函數(shù),例如查找客戶、查找產(chǎn)品、比較字符串、刪除客戶等方法,在其他界面中要用可以調(diào)用此嘞的一些方法,實現(xiàn)了類的封裝。此外,本次實驗還將以前在輸入一些非法數(shù)據(jù)會產(chǎn)生的異常給補上了,例如有NullPointerException、NumberFormatException等等。有一些界面只需要接收一個用戶輸入的數(shù)據(jù),所以就是用了JOPtionPane類中的showInputDialog函數(shù)用來接收數(shù)據(jù),大大簡化了代碼量,優(yōu)化了系統(tǒng)性能。本次實驗畫了整體系統(tǒng)的類圖之間的關(guān)系,大大加深了我對此系統(tǒng)的了解,形成了一個嚴密的框架,對于今后的學習會有很大的幫助。老師的代碼對于我們的學習是有很大的幫助的,學習是一件長期的事,實踐著“痛并快樂著……”的感覺是非常好的,我會繼續(xù)堅持下去的。(李宏志)本次實驗主要運用了屬性以及函數(shù)的繼承,隱藏,重載等操作。通過遮羞方法的運用,能夠明顯簡化代碼的復雜度,尤其是繼承的運用,通過繼承其他屬性函數(shù)的操作,從而簡化程序的復雜度,此外還需要運用文本域的隱藏操作,對于新的操作需要重新定義標簽和文本域,另外在繼承操作時需要注意繼承的對象公共和私有,來避免錯誤。在編程時會出現(xiàn)一些異常,對于異常的處理,可以通過publicvoidp(intx){try{}catch(Exceptione){}finally{}}語句來捕獲異常,如果在try語句中出現(xiàn)異常,則會被拋出。對于處理不了的異?;蛘咭D(zhuǎn)型的異常,在方法的聲明處通過throws語句拋出異常。本次實驗還練習了通過visio軟件畫系統(tǒng)類圖和用例圖,包括實體類、界面類,特性與操作的參數(shù)的輸入,頂層包的加載等等。(謝超)第三次試驗是在第二次的基礎(chǔ)上的拓展,在這次試驗中我完成了我所有的包中的文件的測試,以及完成了相應(yīng)的文件的類圖的畫圖。在類圖的畫畫過程中還是有一些不懂得地方,對于系統(tǒng)中的集體的操作和特性有的區(qū)分的不是很清楚,在畫類圖的時候參考了老師的類圖的畫法,還有同學的幫助。這次試驗掌握了類圖的畫法,和對繼承的一些了解。源代碼/*一個簡單的校園卡系統(tǒng)設(shè)計示例版本:Ver2.0作者:強余彬時間:2010.5.1*//*對用戶商品進行查找操作的業(yè)務(wù)類*/packageSalesSystem.qyb;//定義系統(tǒng)所屬包名importSalesSystem.xc.*;//引入實體類所在包importSalesSystem.lhz.*;importjava.util.*;importjavax.swing.JOptionPane;publicclassSearch//定義一個業(yè)務(wù)類,實現(xiàn)查找操作{ //Clientclient; publicintclientflag; publicintgoodsflag; publicClientfindClient; publicGoodsfindGoods; publicSearch() { clientflag=0; goodsflag=0; } publicClientsearchClient(Stringname) { for(inti=0;i<Client.lth;i++) { try{if(Init.init.client[i].getId().equals(name)) findClient=Init.init.client[i]; clientflag=1; } catch(NullPointerExceptionee){} } if(clientflag==0)findClient=null; returnfindClient; }publicGoodssearchGoods(Stringtmp) { for(inti=0;i<Goods.lth;i++) { try{ if(Init.init.goods[i].getName().equals(tmp)) { findGoods=Init.init.goods[i]; goodsflag=1; }} catch(Exceptionee){} } if(goodsflag==0)findGoods=null; returnfindGoods; } publicvoiddeleteClient(Stringtmp) { intflag=0; for(inti=0;i<Client.lth;i++) { if(Init.init.client[i].getId().equals(tmp)) { intj; for(j=i;j<Client.lth;j++) Init.init.client[j]=Init.init.client[j+1]; Init.init.client[j]=null; Client.lth--; JOptionPane.showMessageDialog(null,"刪除成功!"); flag=1; } } if(flag==0) { JOptionPane.showMessageDialog(null,"不存在此顧客,無法刪除","警告",JOptionPane.WARNING_MESSAGE); JOptionPane.showInputDialog(null,"輸入客戶的名字","刪除客戶",JOptionPane.PLAIN_MESSAGE); } }publicvoiddeleteGoods(Stringtmp) { intflag=0; for(inti=0;i<Goods.lth;i++) { if(Init.init.goods[i].getName().equals(tmp)) { intj; for(j=i;j<Goods.lth;j++) Init.init.goods[j]=Init.init.goods[j+1]; Init.init.goods[j]=null; Goods.lth--; JOptionPane.showMessageDialog(null,"刪除商品成功!"); flag=1; } } if(flag==0) { JOptionPane.showMessageDialog(null,"不存在此商品,無法刪除"); tmp=JOptionPane.showInputDialog(null,"輸入產(chǎn)品的名字","刪除產(chǎn)品",JOptionPane.PLAIN_MESSAGE); } } publicstaticbooleanisEmpty(Stringtmp) { try{ if(tmp.length()==0) { JOptionPane.showMessageDialog(null,"您未輸入任何字符","錯誤",JOptionPane.ERROR_MESSAGE); returnfalse; } else returntrue; }catch(NullPointerExceptionee){} returnfalse; }}/*一個簡單的銷售系統(tǒng)設(shè)計示例版本:Ver2.0作者:強余彬時間:2010.4.25*//*銷售系統(tǒng)客戶實體類*/packageSalesSystem.qyb;importSalesSystem.xc.*;publicclassClientextendsUser//繼承了user實體類{ privateStringGender; publicStringGoods[]=newString[15];//購買的商品名稱 publicintPrice[]=newint[15];//相應(yīng)的價格 publicintAmount[]=newint[15];//買的數(shù)量 privateintgoodslth; static { lth=0; } publicClient(Stringid) { super(id); Id=id; Gender="男"; UserType="客戶"; lth++; goodslth=0; } publicClient(Stringid,Stringsex)//構(gòu)造用戶1,默認身份為銷售人員 { super(); Id=id; Gender=sex; UserType="客戶"; lth++; goodslth=0; } publicintgetGoodslth() { returngoodslth; } publicvoidalterGoodslth(inttmp) { goodslth=tmp; } publicStringgetGender() { returnGender; } publicvoidalterGender(Stringsex) { Gender=sex; } publicvoidbuyGoods(Stringgoods,intprice,intamount) { Goods[goodslth]=goods; Price[goodslth]=price; Amount[goodslth]=amount; goodslth++; } publicStringprintGoods() { Stringtmp="產(chǎn)品:"; for(inti=0;i<getGoodslth();i++) { tmp+=Goods[i]+"、"; } returntmp; } publicStringprintAmount() { Stringtmp="數(shù)量:"; for(inti=0;i<getGoodslth();i++) { tmp+=Amount[i]+"、"; } returntmp; }}/*一個簡單的銷售系統(tǒng)設(shè)計示例版本:Ver1.0作者:李宏志時間:2010.4.7*//*銷售系統(tǒng)產(chǎn)品實體類*/packageSalesSystem.lhz;importSalesSystem.qyb.*;importSalesSystem.xc.*;publicclassGoods{ privateStringName; privateintPrice; privateintTotalAmount; privateintLeft; publicstaticintlth; static { lth=0; } publicGoods(Stringname,intprice,inttotal,intleft) { Name=name; Price=price; TotalAmount=total; Left=left; lth++; } publicGoods(Stringname,intprice,inttotal)//初始化余量等于總量 { Name=name; Price=price; TotalAmount=total; Left=total; lth++; } publicStringgetName() { returnName; } publicvoidalterName(Stringtmp) { Name=tmp; } publicintgetPrice() { returnPrice; } publicvoidalterPrice(inttmp) { Price=tmp; } publicintgetTotalAmount() { returnTotalAmount; } publicvoidalterTotalAmount(inttmp) { TotalAmount=tmp; } publicintgetLeft() { returnLeft; } publicvoidalterLeft(inttmp) { Left=tmp; } publicStringtostring() { Strings; s="商品名:"+getName()+"\t價格:"+getPrice()+"\t總量:"+getTotalAmount()+"\t余量:"+getLeft(); returns; }}/*一個簡單的銷售系統(tǒng)設(shè)計示例版本:Ver1.0作者:謝超時間:2010.4.7*//*銷售系統(tǒng)初始化客戶、商品信息類*/packageSalesSystem.xc;importSalesSystem.lhz.*;importSalesSystem.qyb.*;publicclassInit{ publicUseruser1; publicUseruser2;publicUseruser4; publicUseruser3; publicClientclient[]=newClient[20]; publicGoodsgoods[]=newGoods[20]; publicstaticInitinit=newInit(); publicInit() { try{ user1=newUser("強余彬","0000","系統(tǒng)管理員"); user2=newUser("謝超","0000","銷售人員"); user3=newUser("李宏志","0000","銷售人員"); } catch(UnexpectedCreatee){System.out.println(ee.toString());} client[0]=newClient("張三","男"); client[0].buyGoods("鉛筆",1,50); client[0].buyGoods("文具盒",10,2); client[1]=newClient("李四","男"); client[1].buyGoods("鉛筆",1,10); client[1].buyGoods("本子",2,3); client[2]=newClient("王五","男"); client[2].buyGoods("鋼筆",9,8); client[2].buyGoods("文具盒",10,3); client[3]=newClient("小紅","女"); client[3].buyGoods("鋼筆",9,8); client[3].buyGoods("文具盒",10,3); client[4]=newClient("小明","男"); client[4].buyGoods("本子",2,10); client[4].buyGoods("鉛筆",1,20); client[4].buyGoods("鋼筆",9,2); goods[0]=newGoods("鉛筆",1,1000,800); goods[1]=newGoods("鋼筆",9,300,280); goods[2]=newGoods("本子",2,600,590); goods[3]=newGoods("文具盒",10,200,195); goods[4]=newGoods("橡皮",1,200,200); }}/*一個簡單的銷售系統(tǒng)設(shè)計示例版本:Ver2.0作者:強余彬時間:2010.5.1*//*系統(tǒng)管理員圖形界面類*///自定義異常類,當創(chuàng)建新用戶密碼過短時產(chǎn)生packageSalesSystem.qyb;importSalesSystem.xc.*;publicclassUnexpectedCreatextendsException{ privateUseruser;//產(chǎn)生當前錯誤的User對象的引用 privateStringIllegalPsd;//產(chǎn)生當前錯誤的非法的密碼 publicUnexpectedCreat(Usertmp,Stringpsd)//構(gòu)造函數(shù) { super("不合法的初始充值數(shù)額");//調(diào)用父類Exception的構(gòu)造函數(shù) user=tmp;//初始化兩個屬性 IllegalPsd=psd; } publicStringtoString()//重載父類的方法,給出詳細的錯誤信息 { Strings; s="創(chuàng)建用戶時出錯:"+user.getId() +"該、用戶的密碼" +IllegalPsd +"不合規(guī)定"; returns; } }/*一個簡單的銷售系統(tǒng)設(shè)計示例版本:Ver2.0作者:謝超時間:2010.5.1*//*銷售系統(tǒng)用戶實體類*/packageSalesSystem.xc;importSalesSystem.lhz.*;importSalesSystem.qyb.*;importjavax.swing.*;publicclassUser{ publicstaticintlth;//存的個數(shù) protectedStringId; privateStringPassword; protectedStringUserType;//用戶類型管理員、普通用戶 static { lth=0; } publicUser() { } publicUser(Stringid)//構(gòu)造用戶,默認身份為銷售人員,默認密碼為0000 { Id=id; Password="0000"; UserType="銷售人員"; lth++; } publicUser(Stringid,Stringpsd)throwsUnexpectedCreat//構(gòu)造用戶,默認身份為銷售人員 { //根據(jù)用戶名和密碼,聲明了拋出異常 this(id); if(psd.length()<4) throw(newUnexpectedCreat(this,psd)); Password=psd; UserType="銷售人員"; lth++; } publicUser(Stringid,Stringpsd,Stringtype)throwsUnexpectedCreat//構(gòu)造用戶 { this(id,psd); //Id=id; //Password=psd; UserType=type; lth++; } publicStringgetId() { returnId; } publicvoidalterId(Stringid) { Id=id; } publicStringgetPassword() { returnPassword; } publicbooleanalterPassword(Stringtmp)//密碼新添了判斷是否為空和限定密碼長度不能太短的功能 { if(tmp.length()==0) { JOptionPane.showMessageDialog(null,"您未輸入任何字符","錯誤",JOptionPane.ERROR_MESSAGE); returnfalse; } elseif(tmp.length()<=3) { JOptionPane.showMessageDialog(null,"您輸入的密碼過短","警告",JOptionPane.WARNING_MESSAGE); returnfalse; } else { Password=tmp; JOptionPane.showMessageDialog(null,"成功修改密碼!"); returntrue; } } publicStringgetUserType() { returnUserType; } publicvoidalterUserType(Stringtmp) { UserType=tmp; } publicbooleanuserTypeJudge(Stringname,Stringpwd,Stringtype){ if(Id.equals(name)&&Password.equals(pwd)&&UserType.equals(type)) returntrue; else returnfalse;} publicbooleanuserPsdJudge(Stringtmp,Stringpwd){ if(tmp.equals(pwd)) returntrue; else returnfalse;} publicStringtostring() { Strings; s="用戶名:"+getId()+" 密碼:"+getPassword()+" 用戶類型:"+getUserType(); returns; }}/*一個簡單的銷售系統(tǒng)設(shè)計示例版本:Ver1.0作者:強余彬時間:2010.4.7*//*銷售系統(tǒng)主入口類*/packageSalesSystem;importjava.io.*;importSalesSystem.xc.*;publicclassMain{ publicstaticvoidmain(Stringargs[]) { System.out.println(Init.init.user1.tostring()); System.out.println(Init.init.user2.tostring()); System.out.println(Init.init.user3.tostring()); System.out.println(Init.init.goods[0].tostring()); System.out.println(Init.init.goods[1].tostring()); System.out.println(Init.init.goods[2].tostring()); System.out.println(Init.init.goods[3].tostring()); System.out.println(Init.init.goods[4].tostring()); newGUI(); //構(gòu)造一個新窗體對 }}/*一個簡單的銷售系統(tǒng)設(shè)計示例版本:Ver1.0作者:強余彬時間:2010.4.7*//*銷售系統(tǒng)主登陸窗口圖形界面類*/packageSalesSystem;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importSalesSystem.lhz.*;importSalesSystem.xc.*;importSalesSystem.qyb.*;publicclassGUIextendsFrameimplementsActionListener,ItemListener{ TextFieldtxId;//一定一個寬度為10個字符的文本框,用于答案輸入 TextFieldtxPassword; LabellbTitle; LabellbId; LabellbPassword; ButtonbtOk; ButtonbtCancel; ButtonbtReset; Labeltype; ChoicetypeChoice; FontmyFont; Stringchtype; publicUseru; GUI()//構(gòu)造函數(shù),用來初始化 { super("主登陸界面");//調(diào)用父類構(gòu)造函數(shù) btOk=newButton("確定"); btCancel=newButton("退出"); btReset=newButton("重置"); chtype="銷售人員"; typeChoice=newChoice(); type=newLabel("身份:"); lbTitle=newLabel("商品銷售系統(tǒng)"); lbTitle.setFont(myFont); lbId=newLabel("用戶賬號"); txId=newTextField(10); lbPassword=newLabel("用戶密碼"); txPassword=newTextField(10); txPassword.setEchoChar('*'); myFont=newFont("黑體",Font.BOLD,20);//定義字體為黑體、加粗、字號18 GridBagLayoutgbl=newGridBagLayout(); GridBagConstraintsgbc=newGridBagConstraints(); setLayout(gbl); //設(shè)置標題控件的位置 gbc.anchor=GridBagConstraints.NORTH;//讓標題頂部居中 gbc.gridwidth=GridBagConstraints.REMAINDER;//讓標題成為所在行最后(也是唯一)一個組件 add(lbTitle,gbc); //設(shè)置姓名控件的位置 gbc.anchor=GridBagConstraints.WEST;//讓ID標簽位于左側(cè) gbc.gridwidth=1;//占一個單元格 add(lbId,gbc); gbc.gridwidth=GridBagConstraints.REMAINDER;//讓ID輸入框成為所在行最后一個組件 add(txId,gbc); //設(shè)置密碼控件的位置 gbc.gridwidth=1; add(lbPassword,gbc); gbc.gridwidth=GridBagConstraints.REMAINDER; add(txPassword,gbc); //設(shè)置身份控件的位置 gbc.gridwidth=1; add(type,gbc); add(typeChoice,gbc); typeChoice.add("銷售人員"); typeChoice.add("系統(tǒng)管理員"); gbc.gridwidth=GridBagConstraints.REMAINDER;//讓ID輸入框成為所在行最后一個組件 add(typeChoice,gbc); gbc.anchor=GridBagConstraints.SOUTH; gbc.gridwidth=1; add(btOk,gbc); gbc.gridwidth=1; add(btCancel,gbc); gbc.gridwidth=GridBagConstraints.REMAINDER;//讓ID輸入框成為所在行最后一個組件 add(btReset,gbc); btOk.addActionListener(this);//為輸入文本框注冊監(jiān)聽器對象 btReset.addActionListener(this);//為按鈕注冊監(jiān)聽器對象 btCancel.addActionListener(this); typeChoice.addItemListener(this); setBackground(Color.yellow);//設(shè)置背景色為黃色 setSize(300,260); setBounds(450,220,300,260); setVisible(true); validate();}publicvoiditemStateChanged(ItemEvente){if(e.getItemSelectable()instanceofChoice) { chtype=((Choice)e.getItemSelectable()).getSelectedItem();}}publicvoidactionPerformed(ActionEvente)//實現(xiàn)ActionListener接口的actionPerformed方法 { if(e.getSource()==btOk) {//判斷事件源,如果是輸入文本框 booleana,b,c; a=Init.init.user1.userTypeJudge(txId.getText(),txPassword.getText(),chtype); b=Init.init.user2.userTypeJudge(txId.getText(),txPassword.getText(),chtype); c=Init.init.user3.userTypeJudge(txId.getText(),txPassword.getText(),chtype); if(a||b||c) { if(chtype.equals("系統(tǒng)管理員")) { newManagerGUI("系統(tǒng)管理員:強余彬"); this.setVisible(false); } else { if(b)u=Init.init.user2; elseu=Init.init.user3; newSalesmanGUI("銷售人員:"+txId.getText(),u); this.setVisible(false); } } elseif(Init.init.user1.userPsdJudge(txId.getText(),txPassword.getText())||Init.init.user2.userPsdJudge(txId.getText(),txPassword.getText())||Init.init.user3.userPsdJudge(txId.getText(),txPassword.getText())) JOptionPane.showMessageDialog(null,"密碼輸入錯誤!"); elseJOptionPane.showMessageDialog(null,"此賬號不存在!","錯誤",JOptionPane.ERROR_MESSAGE); } elseif(e.getSource()==btReset) { txId.setText(""); txPassword.setText(""); } else System.exit(0);//系統(tǒng)正常退出,如果參數(shù)是1,則為異常退出 }}/*一個簡單的銷售系統(tǒng)設(shè)計示例版本:Ver2.0作者:強余彬時間:2010.4.25*//*系統(tǒng)管理員圖形界面類*/packageSalesSystem.qyb;importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;importjava.io.*;importjavax.swing.JOptionPane;importSalesSystem.lhz.*;importSalesSystem.xc.*;publicclassManagerGUIextendsJFrameimplementsActionListener /**這里定義了一個圖形用戶界面主要按鈕大類 */{//為了便于其它包繼承訪問把標簽都設(shè)為了公有的 publicFontmyFont=newFont("宋體",Font.BOLD,20); publicJButtonbtnQuit=newJButton("退出"); publicJRadioButtonradResetData;publicJRadioButtonradAddData;publicJRadioButtonradDeleatData;publicJRadioButtonradPrintData;publicJRadioButtonradOrder;publicJRadioButtonradCancelOrder; publicJRadioButtonradConsultProduct; publicJRadioButtonradAddProduct; publicJRadioButtonradDeleteProduct; publicJRadioButtonradResetProduct; publicJRadioButtonradResetPassword;publicJLabellbltittle=newJLabel("系統(tǒng)管理員",JLabel.CENTER); publicButtonGroupradioGroup=newButtonGroup(); FrameListenerfListener=newFrameListener();//響應(yīng)用戶的退出操作 publicManagerGUI(Strings) { super(s); radResetData=newJRadioButton("1.修改客戶資料",false); radAddData=newJRadioButton("2.添加客戶資料",false); radDeleatData=newJRadioButton("3.刪除客戶資料",false); radPrintData=newJRadioButton("4.查詢客戶資料",false); radOrder=newJRadioButton("5.下單",false); radCancelOrder=newJRadioButton("6.取消下單",false); radConsultProduct=newJRadioButton("7.查詢產(chǎn)品",false); radAddProduct=newJRadioButton("8.添加產(chǎn)品",false); radDeleteProduct=newJRadioButton("9.刪除產(chǎn)品",false); radResetProduct=newJRadioButton("10.修改產(chǎn)品",false); radResetPassword=newJRadioButton("11.修改密碼",false); Containerc=getContentPane(); c.setLayout(null);lbltittle.setFont(myFont);c.add(lbltittle); c.add(btnQuit); c.add(radResetData); c.add(radAddData); c.add(radDeleatData); c.add(radPrintData); c.add(radOrder); c.add(radCancelOrder); c.add(radConsultProduct); c.add(radAddProduct); c.add(radDeleteProduct); c.add(radResetProduct); c.add(radResetPassword); radioGroup.add(radResetData); radioGroup.add(radAddData); radioGroup.add(radDeleatData); radioGroup.add(radPrintData); radioGroup.add(radOrder); radioGroup.add(radCancelOrder); radioGroup.add(radConsultProduct); radioGroup.add(radAddProduct); radioGroup.add(radDeleteProduct); radioGroup.add(radResetProduct); radioGroup.add(radResetPassword); radResetData.addActionListener(this); radAddData.addActionListener(this); radDeleatData.addActionListener(this); radPrintData.addActionListener(this); radOrder.addActionListener(this); radCancelOrder.addActionListener(this); radConsultProduct.addActionListener(this); radAddProduct.addActionListener(this); radDeleteProduct.addActionListener(this); radResetProduct.addActionListener(this); radResetPassword.addActionListener(this); this.addWindowListener(fListener);//關(guān)閉系統(tǒng)監(jiān)聽器 //給各個界面元素定位 radResetData.setBounds(50,50,200,40); radAddData.setBounds(50,100,200,40); radDeleatData.setBounds(50,150,200,40); radPrintData.setBounds(50,200,200,40); radOrder.setBounds(50,250,200,40); radCancelOrder.setBounds(300,50,200,40); radConsultProduct.setBounds(300,100,200,40); radAddProduct.setBounds(300,150,200,40); radDeleteProduct.setBounds(300,200,200,40); radResetProduct.setBounds(300,250,200,40);radResetPassword.setBounds(300,300,200,40); lbltittle.setBounds(130,10,200,40); btnQuit.setBounds(200,350,100,40);btnQuit.addActionListener(this); setSize(500,500); setVisible(true); setResizable(false); setBounds(300,160,500,500); } publicvoidactionPerformed(ActionEvente) { if(e.getActionCommand().equals("1.修改客戶資料")) { newReviseClientGUI("修改客戶資料"); } elseif(e.getActionCommand().equals("2.添加客戶資料")) { newAddClientGUI(); //a.setTitle("添加客戶ahahahah"); } elseif(e.getActionCommand().equals("3.刪除客戶資料")) { newDeleteClient(); } elseif(e.getActionCommand().equals("4.查詢客戶資料")) { newInquiryClientGUI(); } elseif(e.getActionCommand().equals("5.下單")) { newDeliverGUI(); } elseif(e.getActionCommand().equals("6.取消下單")) { JOptionPane.showMessageDialog(null,"取消下單!"); } elseif(e.getActionCommand().equals("7.查詢產(chǎn)品")) { newInquiryGoodsGUI(); } elseif(e.getActionCommand().equals("8.添加產(chǎn)品")) { newAddGoods("添加產(chǎn)品"); } elseif(e.getActionCommand().equals("9.刪除產(chǎn)品")) { newDeleteGoods(); } elseif(e.getActionCommand().equals("10.修改產(chǎn)品")) { newReviseGoodsGUI(); } elseif(e.getActionCommand().equals("11.修改密碼")) { newChangePsd(); } if(e.getActionCommand()=="退出") { dispose(); System.exit(0); } }}/*一個簡單的銷售系統(tǒng)設(shè)計示例版本:Ver2.0作者:李宏志時間:2010.4.25*//*銷售系統(tǒng)銷售人員圖形界面類*/packageSalesSystem.lhz;importjava.awt.event.*;importjavax.swing.JOptionPane;importSalesSystem.qyb.*;importSalesSystem.xc.*;publicclassSalesmanGUIextendsManagerGUI//繼承了系統(tǒng)管理員的界面類大大簡化了代碼量優(yōu)化了系統(tǒng){ Useru; publicSalesmanGUI(Strings,Usertmp) { super(s); u=tmp; radResetData.setText("1.修改客戶資料"); radAddData.setText("2.添加客戶資料"); radOrder.setText("3.下單"); radCancelOrder.setText("4.取消下單"); radConsultProduct.setText("5.查詢產(chǎn)品"); radResetPassword.setText("6.修改密碼"); radResetData.setBounds(50,50,130,40); radAddData.setBounds(50,100,130,40); radOrder.setBounds(50,150,130,40); radCancelOrder.setBounds(180,50,130,40); radConsultProduct.setBounds(180,100,130,40); radResetPassword.setBounds(180,150,130,40); btnQuit.setBounds(130,200,70,40); lbltittle.setBounds(70,10,200,40); radDeleatData.removeActionListener(this); radPrintData.removeActionListener(this); radAddProduct.removeActionListener(this); radDeleteProduct.removeActionListener(this); radResetProduct.removeActionListener(this); lbltittle.setText("銷售人員"); radPrintData.setVisible(false); radDeleatData.setVisible(false); radDeleteProduct.setVisible(false); radAddProduct.setVisible(false); radResetProduct.setVisible(false); setSize(350,300); setBounds(300,160,350,300); } publicvoidactionPerformed(ActionEvente) { if(e.getActionCommand().equals("1.修改客戶資料")) newReviseClientGUI("修改客戶資料"); elseif(e.getActionCommand().equals("2.添加客戶資料")) newAddClientGUI(); elseif(e.getActionCommand().equals("3.下單")) newDeliverGUI(); elseif(e.getActionCommand().equals("4.取消下單")) JOptionPane.showMessageDialog(null,"取消下單!"); elseif(e.getActionCommand().equals("5.查詢產(chǎn)品")) newInquiryGoodsGUI(); elseif(e.getActionCommand().equals("6.修改密碼")) { try{ChangeSalesmanPsda=newChangeSalesmanPsd(u);} catch(NullPointerExceptionee){} } if(e.getActionCommand()=="退出") dispose(); }}/*一個簡單的銷售系統(tǒng)設(shè)計示例版本:Ver2.0作者:李宏志時間:2010.5.2*//*銷售系統(tǒng)添加客戶圖形界面類*/packageSalesSystem.lhz;importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;importSalesSystem.qyb.*;importSalesSystem.xc.*;publicclassAddClientGUIextendsAddGoods//繼承與AddGoods因為AddGoods與其界面比較相似{ Searchsearch=newSearch(); publicAddClientGUI() { super("添加客戶"); lbID.setText("客戶姓名"); lbGender.setText("客戶性別"); lbTitle1.setText("添加客戶"); lbGoodsamount1.setVisible(false); txtGoodsamount1.setVisible(false); btnOK.setBounds(30,130,80,40); btnQuit.setBounds(110,130,80,40); btnReset.setBounds(190,130,80,40); setSize(300,230); setBounds(300,160,300,230); } publicvoidactionPerformed(ActionEvente) { if(e.getSource()==btnQuit) dispose(); elseif(e.getSource()==btnOK) { Stringtmpname=txtGoodsname1.getText(); if(Search.isEmpty(tmpname))//是否輸入文字 { try{ search.searchClient(tmpname); if(search.findClient!=null) {JOptionPane.showMessageDialog(null,"此客戶已存在");} else { Init.init.client[Client.lth++]=newClient(tmpname,txtGoodsprice1.getText()); JOptionPane.showMessageDialog(null,"添加客戶資料成功"); this.setVisible(false); } } catch(NullPointerExceptionee){} } } else { txtID.setText(""); txtGender.setText(""); } }}/*一個簡單的銷售系統(tǒng)設(shè)計示例版本:Ver2.0作者:李宏志時間:2010.5.2*//*銷售系統(tǒng)添加產(chǎn)品圖形界面類*/packageSalesSystem.lhz;importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;importjavax.swing.JOptionPane;importSalesSystem.qyb.*;importSalesSystem.xc.*;publicclassAddGoodsextendsReviseClientGUI//界面繼承了ReviseClientGUI添加了異常處理若未輸入彈出錯誤對話框{ publicJTextFieldtxtGoodsname1;//引用 publicJTextFieldtxtGoodsprice1; publicJTextFieldtxtGoodsamount1; publicJLabellbGoodsname1; publicJLabellbGoodsprice1; publicJLabellbGoodsamount1; SearchsGoods; publicAddGoods(Strings) { super(s); sGoods=newSearch(); txtGoodsname1=txtID; txtGoodsprice1=txtGender; txtGoodsamount1=txtGoodsname; lbGoodsname1=lbID; lbGoodsprice1=lbGender; lbGoodsamount1=lbGoodsname; lbTitle1.setText("添加產(chǎn)品"); lbGoodsname1.setText("產(chǎn)品名稱"); lbGoodsprice1.setText("產(chǎn)品價格"); lbGoodsamount1.setText("產(chǎn)品總量"); btnOK.setBounds(30,170,80,40); btnQuit.setBounds(110,170,80,40); btnReset.setBounds(190,170,80,40); lbTitle1.setBounds(100,0,150,40); lbGoodsname1.setBounds(50,50,100,30); txtGoodsname1.setBounds(130,50,100,30); lbGoodsprice1.setBounds(50,90,100,30); txtGoodsprice1.setBounds(130,90,100,30); lbGoodsamount1.setBounds(50,130,100,30); txtGoodsamount1.setBounds(130,130,100,30); setSize(300,270); setBounds(300,160,300,270); lbGoodsprice.setVisible(false); txtGoodsprice.setVisible(false); lbGoodsamount.setVisible(false); txtGoodsamount.setVisible(false); } publicvoidactionPerformed(ActionEvente) { if(e.getSource()==btnQuit) dispose(); elseif(e.getSource()==btnOK) { Stringtmpname=txtGoodsname1.getText(); if(sGoods.isEmpty(tmpname)) { try{ sGoods.searchGoods(tmpname); if(sGoods.findGoods!=null) {JOptionPane.showMessageDialog(null,"此商品已存在");} else { try{ Init.init.goods[Goods.lth++]=newGoods(tmpname,Integer.parseInt(txtGoodsprice1.getText()),Integer.parseInt(txtGoodsamount1.getText()),Integer.parseInt(txtGoodsamount1.getText())); JOptionPane.showMessageDialog(null,"添加產(chǎn)品成功"); this.setVisible(false);} catch(NumberFormatExceptionee){JOptionPane.showMessageDialog(null,"請在價格、數(shù)量一欄輸入數(shù)字字符","警告",JOptionPane.WARNING_MESSAGE);} } } catch(NullPointerExceptioneee){} } } else { txtGoodsname1.setText(""); txtGoodsprice1.setText(""); txtGoodsamount1.setText(""); } }}/*一個簡單的銷售系統(tǒng)設(shè)計示例版本:Ver2.0作者:強余彬時間:2010.5.1*//*銷售系統(tǒng)系統(tǒng)管理員修改密碼圖形界面類*/packageSalesSystem.qyb;importjavax.swing.*;importjava.awt.event.*;importSalesSystem.lhz.*;importSalesSystem.xc.*;publicclassChangePsdextendsReviseClientGUI{ JLabellbTitle2; JLabellbPWD; JLabellbManagerPWD; JLabellbPWDAgain; JLabellbSalesmanID; JLabellbSalesmanPWD; JTextFieldtxtPWD;//原始密碼 JPasswordFieldtxtManagerPWD; JPasswordFieldtxtPWDAgain; JTextFieldtxtSalesmanID; JPasswordFieldtxtSalesmanPWD; publicChangePsd() { super("修改密碼"); lbPWD=lbID; lbManagerPWD=lbGender; lbPWDAgain=lbGoodsname; lbSalesmanID=lbGoodsprice; lbSalesmanPWD=lbGoodsamou

溫馨提示

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

評論

0/150

提交評論