版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、課程設(shè)計(jì)報(bào)告題目:網(wǎng)上商店銷售管理及統(tǒng)計(jì)分析系統(tǒng)專 業(yè) 信息管理與信息系統(tǒng)班 級(jí) 姓 名 學(xué) 號(hào) 指導(dǎo)教師 完成日期 年 學(xué)期面向?qū)ο蟪绦蛟O(shè)計(jì)(Java)課程設(shè)計(jì)成績評(píng)定 經(jīng)考核,給出如下評(píng)語: 并綜合評(píng)定該生課程設(shè)計(jì)成績?yōu)?。指導(dǎo)教師: 年 月 日目錄一、 系統(tǒng)需求分析3二、 系統(tǒng)實(shí)現(xiàn)目標(biāo)3三、 相關(guān)技術(shù)4四、 系統(tǒng)設(shè)計(jì)4五、 系統(tǒng)實(shí)現(xiàn)4六、 系統(tǒng)配置七、 系統(tǒng)維護(hù)與擴(kuò)展八、 心得體會(huì)九、 參考文獻(xiàn)一、 系統(tǒng)需求分析1. 設(shè)計(jì)題目網(wǎng)上商店銷售管理及統(tǒng)計(jì)分析系統(tǒng)2. 任務(wù)的描述隨著電子商務(wù)技術(shù)的不斷深入,在線購物已經(jīng)越來越受人們的歡迎,在生活中越來越普遍。在網(wǎng)上商店的后臺(tái)需要經(jīng)常對用戶,商品等
2、信息進(jìn)行統(tǒng)計(jì)修改處理,并且需要統(tǒng)計(jì)產(chǎn)品銷量及銷售額,從而為網(wǎng)站發(fā)展決策提供有用的數(shù)據(jù)。3. 系統(tǒng)中用戶的界面需求需要設(shè)計(jì)兩個(gè)用戶交互式界面,一個(gè)界面處理對銷售數(shù)據(jù)最基本的統(tǒng)計(jì)查詢,另一個(gè)界面處理基本信息的修改和查詢。4. 功能需求系統(tǒng)實(shí)現(xiàn)對在線銷售數(shù)據(jù)最基本的統(tǒng)計(jì)查詢和基本信息的修改和查詢。5. 性能需求網(wǎng)上信息處理要求準(zhǔn)確而迅速,并且信息流量大、更新速度快,所以要求系統(tǒng)能實(shí)現(xiàn)對大量數(shù)據(jù)的快處理能力,使用方便,操作簡單,易于維護(hù),安全性好,能將信息及時(shí)反饋給決策者。二、 系統(tǒng)實(shí)現(xiàn)目標(biāo)1. 主要用途對網(wǎng)上商店的后臺(tái)數(shù)據(jù)庫進(jìn)行統(tǒng)計(jì)修改等處理。2. 實(shí)現(xiàn)功能統(tǒng)計(jì)查詢各年各季度的銷售額及全年的商品銷售
3、情況;對基本信息,如會(huì)員,商品,配送點(diǎn)等信息的修改和查詢。三、 相關(guān)技術(shù)本系統(tǒng)完全使用Java語言編寫,在Java虛擬機(jī)上運(yùn)行。Java是一種高級(jí)的、嚴(yán)格檢查數(shù)據(jù)類型的、面向?qū)ο蟮某绦蛟O(shè)計(jì)語言。Java還是一種平臺(tái)無關(guān)的、健壯和安全的的程序設(shè)計(jì)語言。Java平臺(tái)由Java應(yīng)用編程接口(API)和Java虛擬機(jī)(JVM)構(gòu)成。這個(gè)平臺(tái)構(gòu)成了Java在不同計(jì)算機(jī)系統(tǒng)中編譯和運(yùn)行的環(huán)境。為了搭建Java平臺(tái),需要下載和安裝Java軟件開發(fā)工具箱(Java Development Kit,JDK),并設(shè)置Java編譯和運(yùn)行環(huán)境。 四、 系統(tǒng)設(shè)計(jì)1. 系統(tǒng)的框架數(shù)據(jù)庫基本信息管理界面銷售信息統(tǒng)計(jì)界面按時(shí)
4、間統(tǒng)計(jì)按產(chǎn)品統(tǒng)計(jì)信息查詢信息修改刪除添加2. 功能描述銷售信息統(tǒng)計(jì)界面提供按時(shí)間統(tǒng)計(jì)查詢各年各季度的銷售額及按產(chǎn)品查詢?nèi)甑纳唐蜂N售情況的功能;基本信息管理界提供面對基本信息會(huì)員信息,商品信息,配送點(diǎn)信息的修改,查詢和添加的功能。五、 系統(tǒng)實(shí)現(xiàn)1. 數(shù)據(jù)庫的設(shè)計(jì)主要數(shù)據(jù)庫結(jié)構(gòu)表設(shè)計(jì)(E_Business.mdb)會(huì)員表cons:(cnum,cname,sex,birth,add,eadd)時(shí)間碼表dates:(dat,yea,sea)商品表prods:(pnum,pname,a,b,supply)配送點(diǎn)表send:(snum,sname,sadd)銷售表sells:(cnum,pnum,onu
5、m,dat,num,price,snum)數(shù)據(jù)庫E-R圖商品會(huì)員購買 m1 n供應(yīng)商二級(jí)目錄一級(jí)目錄名稱時(shí)間碼數(shù)量編號(hào)性別訂單號(hào)注冊姓名單價(jià)日期碼年月地址郵箱配送點(diǎn)名稱編號(hào)編號(hào)地址 m2 m3邏輯結(jié)構(gòu)設(shè)計(jì)2. 系統(tǒng)詳細(xì)設(shè)計(jì)及代碼說明程序源代碼:/引入系統(tǒng)調(diào)用所需要的包:import javax.swing.*;import java.awt.event.*;import java.sql.*;/類Ecm繼承自JFramepublic class Ecm extends JFrame/定義Panel b1 的組件變量JButton c11;JButton c12;JButton c13;JBut
6、ton c14;JButton c15;JButton c16;JButton c17;JLabel c21;JLabel c22;JLabel c23;JLabel c24;JLabel c25;JLabel c26;JLabel c27;JLabel c28;JLabel c29;JLabel c211;JLabel c221;JLabel c231;JLabel c241;JLabel c251;JLabel c261;JTextArea c31;JScrollPane c41;JTextField c51;JTextField c52;JTextField c53;JTextField
7、 c54;JTextField c55;JTextField c56;JTextField c57;/定義Panel b2 的組件變量JButton c18;JButton c19;JButton c110;JButton c111;JButton c112;JButton c113;JLabel c210;JLabel c212;JLabel c213;JLabel c214;JLabel c215;JLabel c216;JLabel c217;JLabel c218;JLabel c219;JLabel c220;JLabel c222;JLabel c223;JLabel c224;J
8、Label c225;JLabel c226;JTextArea c32;JScrollPane c42;JTextField c58;JTextField c59;JTextField c510;/構(gòu)造函數(shù)public Ecm() setTitle("網(wǎng)上商店銷售管理及統(tǒng)計(jì)系統(tǒng)"); /設(shè)置標(biāo)題setSize(750,550); /設(shè)置大小setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/ 設(shè)置關(guān)閉窗口(1) 對“基本信息管理”界面進(jìn)行設(shè)計(jì),布局,對其中的組件的事件監(jiān)聽及處理。/定義Panel b1 并采用自由布局JPanel
9、 b1=new JPanel();b1.setLayout(null);c11=new JButton("會(huì)員信息"); /新建設(shè)組件對象并設(shè)置顯示標(biāo)志c11.setSize(100,25); / 設(shè)置組件大小c11.setLocation(10,50); / 設(shè)置組件在面板上的顯示坐標(biāo)c12=new JButton("商品信息");c12.setSize(100,25);c12.setLocation(10,100);c13=new JButton("配送點(diǎn)信息");c13.setSize(100,25);c13.setLocati
10、on(10,150);c21=new JLabel();c21.setSize(70,25);c21.setLocation(140,20);c22=newJLabel();c22.setSize(70,25);c22.setLocation(220,20); /將所有布局好的組件加進(jìn)面板Panel b1b1.add(c11);b1.add(c12);b1.add(c13);b1.add(c14);b1.add(c15);b1.add(c16);b1.add(c17);b1.add(c21);b1.add(c22);b1.add(c23);b1.add(c24);b1.add(c25);b1.
11、add(c26);b1.add(c27);b1.add(c28);b1.add(c29);b1.add(c211);b1.add(c221);b1.add(c231);b1.add(c241);b1.add(c251);b1.add(c261);b1.add(c41);b1.add(c51);b1.add(c52);b1.add(c53);b1.add(c54);b1.add(c55);b1.add(c56);b1.add(c57);對所有組件采用相同方式的布局,并根據(jù)顯示結(jié)果不斷調(diào)整參數(shù),得到最終布局如下所示:對面板上的所有組件添加事件監(jiān)聽及處理程序,代碼如下:/對c11按鈕添加事件監(jiān)聽c1
12、1.addActionListener(new ActionListener()/事件處理函數(shù)public void actionPerformed(ActionEvent e)/連接數(shù)據(jù)庫tryString strurl = "jdbc:odbc:Driver=Microsoft Access Driver (*.mdb);DBQ=D:E_Business.mdb"Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection conn = DriverManager.getConnection(str
13、url,"","");Statement stmt = conn.createStatement();/用SQL語句對數(shù)據(jù)庫進(jìn)行操作,查詢會(huì)員信息ResultSet rs = stmt.executeQuery("select * from cons");String s=""while(rs.next()s+=rs.getString(1)+"t"+rs.getString(2)+"t"+rs.getString(3)+"t"+rs.getString(
14、4)+"t"+rs.getString(5)+"t"+rs.getString(6)+"n"/將查詢到的數(shù)據(jù)顯示在文本域里c31.setText(s); /給查詢到的列加上列名c21.setText("會(huì)員編號(hào)");c22.setText("注冊名稱");c23.setText("性 別");c24.setText("出生年份");c25.setText("地 址");c26.setText("電子郵箱");/將所查
15、詢的表名顯示在c29標(biāo)簽中c29.setText("cons");c211.setText("會(huì)員編號(hào)");c221.setText("注冊名稱");c231.setText("性 別");c241.setText("出生年份");c251.setText("地 址");c261.setText("電子郵箱");catch (Exception e1)System.out.println(e1););/對c12按鈕添加事件監(jiān)聽c12.addActionLi
16、stener(new ActionListener()public void actionPerformed(ActionEvent e)/連接數(shù)據(jù)庫/c12按鈕使用的SQL語句,查詢產(chǎn)品信息String sql="select * from prods" );/對c13按鈕添加事件監(jiān)聽c13.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)/連接數(shù)據(jù)庫/c13按鈕使用的SQL語句,查詢配送點(diǎn)信息ResultSet rs = stmt.executeQuery(&
17、quot;select * from sends"););/對c14按鈕添加事件監(jiān)聽c14.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)/連接數(shù)據(jù)庫String t=c51.getText(); /從c51文本框中獲得輸入的內(nèi)容String s=c29.getText(); /從c29標(biāo)簽中獲得需要查詢的表名String sql;String s1="",s2="",s3="",s4="",
18、s5="",s6="",s7=""/根據(jù)從c29標(biāo)簽中獲得的表名選擇需要操作的表if(s.equals("cons")/根據(jù)從c51文本框中獲得的內(nèi)容構(gòu)造SQL語句sql="select * from cons where cnum='"+t+"'"ResultSet rs = stmt.executeQuery(sql);while(rs.next()s1+=rs.getString(1);s2+=rs.getString(2);s3+=rs.getStri
19、ng(3);s4+=rs.getString(4);s5+=rs.getString(5);s6+=rs.getString(6);/將查詢得到的結(jié)果顯示在對應(yīng)的文本框中c52.setText(s1);c53.setText(s2);c54.setText(s3); c55.setText(s4);c56.setText(s5);c57.setText(s6);else if(s.equals("prods")sql="select * from prods where pnum='"+t+"'"ResultSet r
20、s = stmt.executeQuery(sql);while(rs.next()s1+=rs.getString(1);s2+=rs.getString(2);s3+=rs.getString(3);s4+=rs.getString(4);s5+=rs.getString(5);c52.setText(s1);c53.setText(s2);c54.setText(s3);c55.setText(s4);c56.setText(s5);c57.setText("");else sql="select * from sends where snum='&
21、quot;+t+"'"ResultSet rs = stmt.executeQuery(sql);while(rs.next()s1+=rs.getString(1);s2+=rs.getString(2);s3+=rs.getString(3);c52.setText(s1);c53.setText(s2);c54.setText(s3);c55.setText("");c56.setText("");c57.setText("");catch (Exception e1)System.out.print
22、ln(e1););/對c16按鈕添加事件監(jiān)聽c16.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)/連接數(shù)據(jù)庫String t=c51.getText(); String s=c29.getText();String sql;/從文本框中獲取數(shù)據(jù),向數(shù)據(jù)庫中插入數(shù)據(jù)String s1=c52.getText();String s2=c53.getText();String s3=c54.getText();String s4=c55.getText();String s5=c56.
23、getText();String s6=c57.getText();if(s.equals("cons")sql="insert into cons(cnum,cname,sex,birth,add,eadd) values('"+s1+"','"+s2+"','"+s3+"','"+s4+"','"+s5+"','"+s6+"')"else
24、 if(s.equals("prods")sql="insert into prods(pnum,pname,a,b,supply) values('"+s1+"','"+s2+"','"+s3+"','"+s4+"','"+s5+"')"else sql="insert into sends(snum,sname,sadd) values('"+s
25、1+"','"+s2+"','"+s3+"')");/對c15按鈕添加事件監(jiān)聽與c16類似,所使用的SQL語句如下所示:/從數(shù)據(jù)庫中刪除數(shù)據(jù)String sql;if(s.equals("cons")sql="delete from cons where cnum='"+t+"'"else if(s.equals("prods")sql="delete from prods where pn
26、um='"+t+"'"else sql="delete from sends where snum='"+t+"'");/ c17所使用的SQL語句如下所示:對數(shù)據(jù)庫中數(shù)據(jù)進(jìn)行修改if(s.equals("cons")sql="update cons set cname='"+s2+"',sex='"+s3+"',birth='"+s4+"',add=
27、9;"+s5+"',eadd='"+s6+"' where cnum='"+t+"'"else if(s.equals("prods")sql="update prods set pname='"+s2+"',a='"+s3+"',b='"+s4+"',supply='"+s5+"' where pnum='
28、;"+t+"'"else sql="update sends set sname='"+s2+"',sadd='"+s3+"' where snum='"+t+"'"以對商品信息表操作為例,其它兩個(gè)表操作類似。運(yùn)行及測試結(jié)果如下圖所示:在“基本信息管理”界面里單擊“商品信息”顯示如圖所示:添加信息:單擊確定后,數(shù)據(jù)寫進(jìn)數(shù)據(jù)庫并立刻顯示出來:刪除信息的按鈕及文本框:輸入當(dāng)前所操作的表中的數(shù)據(jù)編號(hào),單擊刪除,數(shù)據(jù)從數(shù)據(jù)庫中刪除;修改時(shí)
29、必須先查詢,然后在文本框中修改后,單擊修改,更新數(shù)據(jù)庫中的數(shù)據(jù)。(2) 對“銷售信息統(tǒng)計(jì)”界面進(jìn)行設(shè)計(jì),布局,對其中的組件的事件監(jiān)聽及處理。/定義Panel b2并采用自由布局JPanel b2=new JPanel();b2.setLayout(null);/設(shè)置各組件的大小及位置c58=new JTextField("請輸入查詢的年份");c58.setSize(120,25);c58.setLocation(20,30);c210=new JLabel("年");c210.setSize(70,25);c210.setLocation(150,30
30、);c59=new JTextField("請輸入查詢的季度");c59.setSize(120,25);c59.setLocation(20,80);/將各組件加入Panel b2b2.add(c18);b2.add(c19);b2.add(c110);b2.add(c111);b2.add(c112);b2.add(c210);b2.add(c212);b2.add(c213);b2.add(c214);b2.add(c215);b2.add(c216);b2.add(c218);b2.add(c220);b2.add(c222);b2.add(c223);b2.add
31、(c224);b2.add(c225);b2.add(c226);b2.add(c42);b2.add(c58);b2.add(c59);/b2.add(c510);對所有組件采用相同方式的布局,并根據(jù)顯示結(jié)果不斷調(diào)整參數(shù),得到最終布局如下所示:對面板上的所有組件添加事件監(jiān)聽及處理程序,代碼如下:/對c18按鈕添加事件監(jiān)聽c18.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)/連接數(shù)據(jù)庫/根據(jù)文本框c58中的數(shù)據(jù)構(gòu)造嵌套查詢SQL語句,查詢年銷售詳單String sql="
32、;select um,cname,sells.dat,prods.pname,num,price from cons,sells,prods,dates where um=um and prods.pnum=sells.pnum and dates.dat=sells.dat and dates.yea='"+c58.getText()+"'"/顯示在文本域中c32.setText(s);/設(shè)置列標(biāo)題c220.setText("會(huì)員編號(hào)");c222.setText("注冊名稱");c223.setText(
33、"購買日期");c224.setText("商品名稱");c225.setText("購買數(shù)量");c226.setText("單價(jià)"););運(yùn)行結(jié)果如下圖所示:/c19按鈕構(gòu)造的SQL語句/根據(jù)文本框c58中的數(shù)據(jù)構(gòu)造統(tǒng)計(jì)嵌套查詢SQL語句,查詢年銷售總額String sql="select dates.yea,sum(sells.price*sells.num)as sum from sells,dates where sells.dat=dates.dat and dates.yea='&q
34、uot;+c58.getText()+"' group by dates.yea"運(yùn)行結(jié)果如下圖所示:/c110按鈕構(gòu)造的SQL語句/根據(jù)文本框c58和c59中的數(shù)據(jù)構(gòu)造條件嵌套查詢SQL語句,查詢季度銷售詳單String sql="select um,cname,sells.dat,prods.pname,num,price from cons,sells,prods,dates where um=um and prods.pnum=sells.pnum and dates.dat=sells.dat and dates.yea='"+
35、c58.getText()+"' and dates.sea='"+c59.getText()+"'"運(yùn)行結(jié)果如下圖所示:/c111按鈕構(gòu)造的SQL語句/根據(jù)文本框c58和c59中的數(shù)據(jù)構(gòu)造統(tǒng)計(jì)條件嵌套查詢SQL語句,查詢季度銷售額String sql="select dates.sea,sum(sells.price*sells.num)as sum from sells,dates where sells.dat=dates.dat and dates.yea='"+c58.getText()+&q
36、uot;' and dates.sea='"+c59.getText()+"' group by dates.sea"運(yùn)行結(jié)果如下圖所示:/c112按鈕構(gòu)造的SQL語句/根據(jù)文本框c58中的數(shù)據(jù)構(gòu)造統(tǒng)計(jì)條件嵌套查詢SQL語句,查詢?nèi)旮魃唐蜂N量及銷售額String sql="select sells.pnum,prods.pname,sum(sells.num)as tnum,sum(sells.num*sells.price)as t from sells,prods,dates where sells.pnum=prods.p
37、num and sells.dat=dates.dat and dates.yea='"+c58.getText()+"' group by prods.pname,sells.pnum order by sells.pnum"運(yùn)行結(jié)果如下圖所示:(3) 主框架剩余的代碼:/將所有 Panel 加入 TabbedPane dJTabbedPane d=new JTabbedPane();d.addTab("銷售信息統(tǒng)計(jì)",b2);d.addTab("基本信息管理",b1);/將TabbedPane d加入JF
38、rame,并將框架顯示出來setContentPane(d);setVisible(true);/Java主函數(shù)public static void main(String args) new Ecm();六、 系統(tǒng)配置1. 系統(tǒng)的代碼文件結(jié)構(gòu)源Java代碼只有一個(gè)Ecm.java,編譯后生成1個(gè)Ecm.class文件,和12 個(gè)帶編號(hào)的Ecm$*.class文件。與之相關(guān)聯(lián)的數(shù)據(jù)庫文件E_Business.mdb必須放在D驅(qū)動(dòng)器的根目錄下,方可讀取數(shù)據(jù)。2. 系統(tǒng)配置運(yùn)行時(shí)需要安裝Java虛擬機(jī)以jar及Java開發(fā)程序包jdk1.6.0_14,并在系統(tǒng)環(huán)境變量中加上.jdkbin的路徑。3. 訪問方法新建一個(gè)*.bat文件,編輯內(nèi)容為java Ecm,保存后于Ecm.class放在同一目
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 場滲濾液處理系統(tǒng)改擴(kuò)建工程項(xiàng)目可行性研究報(bào)告(編制大綱)
- 2024-2025年中國通信類PCB行業(yè)市場前景預(yù)測及投資戰(zhàn)略研究報(bào)告
- 2025有關(guān)勞動(dòng)合同內(nèi)容變更的情形
- 銅制飾品項(xiàng)目可行性研究報(bào)告
- 2024-2030年中國深圳市產(chǎn)權(quán)式酒店行業(yè)市場深度分析及發(fā)展趨勢預(yù)測報(bào)告
- 山西重點(diǎn)項(xiàng)目-太原西寨村城中村改造項(xiàng)目可行性研究報(bào)告
- 2025工廠內(nèi)部承包合同
- 2025挖掘機(jī)施工合同模板
- 2025出國定居(技術(shù)類)咨詢服務(wù)合同書
- erp財(cái)務(wù)崗位職責(zé)
- 四川省巴中市2023-2024學(xué)年高二上學(xué)期期末考試物理試題【含答案解析】
- 《兩小兒辯日》教學(xué)案例:培養(yǎng)學(xué)生的思辨能力
- 2024年廣東省普通高中學(xué)業(yè)水平考試化學(xué)試卷(修改+答案)版
- 2024年小學(xué)生中華經(jīng)典誦讀知識(shí)競賽參考題庫500題(含答案)
- 日拱一卒行穩(wěn)致遠(yuǎn)
- 培訓(xùn)內(nèi)驅(qū)力的課件
- 管理后臺(tái)策劃方案
- 人防、物防、技防工作措施
- 市場部培訓(xùn)課程課件
- 八年級(jí)歷史上冊論述題匯總
- 資產(chǎn)評(píng)估學(xué)教程(第八版)習(xí)題及答案 喬志敏
評(píng)論
0/150
提交評(píng)論