找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3593|回復(fù): 0
收起左側(cè)

java實(shí)現(xiàn)商品信息管理系統(tǒng)構(gòu)建類圖等資料

[復(fù)制鏈接]
ID:638858 發(fā)表于 2019-11-9 21:13 | 顯示全部樓層 |閱讀模式
java實(shí)現(xiàn)商品信息管理系統(tǒng),相關(guān)內(nèi)容在附件

統(tǒng)構(gòu)建類圖:
11.png

一.控制臺(tái)實(shí)現(xiàn):
   0. 退出
   1. 錄入商品基本信息
   2. 顯示商品信息
   3. 增加商品數(shù)量
   4. 減少商品數(shù)量  
5. 修改商品價(jià)格
   6. 所有產(chǎn)品的總價(jià)格(單價(jià)*數(shù)量)
程序:
package test1;
import java.util.ArrayList;
import java.util.Scanner;

public class Demo1 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner get=new Scanner(System.in);
        String serial,name;
        float price;
        int number;
        System.out.println("----商品管理系統(tǒng)----");
        System.out.println("******************");
        System.out.println("1.錄入商品基本信息");
        System.out.println("2.顯示商品信息");
        System.out.println("3.增加商品");
        System.out.println("4.減少商品");
        System.out.println("5.修改商品價(jià)格");
        System.out.println("6.所有商品的總價(jià)格");
        System.out.println("0.退出");
        ArrayList<Goods> list=new ArrayList<>();
        
        while(true) {
            System.out.println("請(qǐng)選擇序號(hào):");
            int num=get.nextInt();
            if(num==1) {//錄入商品基本信息
                System.out.print("請(qǐng)輸入商品編號(hào):");
                serial=get.next();
                System.out.print("請(qǐng)輸入商品名稱:");
                name=get.next();
                System.out.print("請(qǐng)輸入商品價(jià)格:");
                price=get.nextFloat();
                System.out.print("請(qǐng)輸入商品數(shù)量:");
                number=get.nextInt();
                Goods goods=new Goods(serial, name, price, number);
                list.add(goods);//加入到商品信息庫里
               
            }else if(num==2) {//顯示商品信息
                System.out.println("編號(hào)\t名稱\t價(jià)格\t數(shù)量");
                for(int i=0;i<list.size();i++) {
                    Goods g=list.get(i);
                    g.show();
                }
            }else if(num==3) {//商品入庫(增加數(shù)量)
                System.out.print("請(qǐng)輸入要入庫的商品的編號(hào):");               
                String se=get.next();
                boolean flag=true;
                for(int i=0;i<list.size();i++) {
                    Goods g=list.get(i);               
                    if(se.equals(g.getSerial())) {
                        System.out.println("商品在庫中");
                        System.out.print("請(qǐng)輸入要入庫的商品的數(shù)量:");
                        int n=get.nextInt();
                        int number0=g.getNumber();
                        number0+=n;
                        g.setNumber(number0);//返回更改后的商品數(shù)量
                        flag=true;
                        break;
                    }else {
                        flag=false;
                    }
                }
                if(flag==false) {
                    System.out.println("商品不在庫中,請(qǐng)重新輸入:");
                }
                           
            }else if(num==4) {//商品出庫(減少數(shù)量)
                System.out.print("請(qǐng)輸入要減少的商品的編號(hào):");               
                String se=get.next();
                boolean flag=true;
                for(int i=0;i<list.size();i++) {
                    Goods g=list.get(i);               
                    if(se.equals(g.getSerial())) {
                        int number0=g.getNumber();
                        System.out.println("商品在庫中,數(shù)量為:"+number0);
                        System.out.print("請(qǐng)輸入要出庫的商品的數(shù)量:");
                        int n=get.nextInt();   
                        number0-=n;
                        g.setNumber(number0);//返回更改后的商品數(shù)量
                        flag=true;
                        break;
                    }else {
                        flag=false;
                    }
                }
                if(flag==false) {
                    System.out.println("商品不在庫中,請(qǐng)重新輸入:");
                }
            }else if(num==5) {//修改商品價(jià)格
                System.out.print("請(qǐng)輸入要修改價(jià)格的商品的編號(hào):");               
                String se=get.next();
                boolean flag=true;
                for(int i=0;i<list.size();i++) {
                    Goods g=list.get(i);               
                    if(se.equals(g.getSerial())) {
                        float price0=g.getPrice();
                        System.out.println("商品在庫中,價(jià)格為:"+price0);
                        System.out.print("請(qǐng)輸入要修改的商品的價(jià)格:");
                        float p=get.nextFloat();
                        g.setPrice(p);//返回修改后的價(jià)格
                        flag=true;
                        break;
                    }else {
                        flag=false;
                    }
                }
                if(flag==false) {
                    System.out.println("商品不在庫中,請(qǐng)重新輸入:");
                }
            }else if(num==6) {//所有產(chǎn)品的總價(jià)格(單價(jià)*數(shù)量)
                float total[]=new float[list.size()];
                float Total=0;
                for(int i=0;i<list.size();i++) {
                    Goods g=list.get(i);
                    total[ i]=g.getPrice()*g.getNumber();
                    System.out.println("編號(hào)為"+i+"的商品的總價(jià)格為:"+total[ i]);
                    Total+=total[ i];
                }
                System.out.println("所有商品的總價(jià)格為:"+Total);
               
            }else if(num==0) {
                System.out.println("退出成功!");
                break;
            }
        }
        get.close();
    }

}
class Goods{
    String serial,name;
    float price;
    int number;
    public Goods(String se,String n,float p,int num) {
        this.serial=se;
        this.name=n;
        this.price=p;
        this.number=num;
    }
    public String getSerial() {
        return serial;
    }
    public void setSerial(String serial) {
        this.serial = serial;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public float getPrice() {
        return price;
    }
    public void setPrice(float price) {
        this.price = price;
    }
    public int getNumber() {
        return number;
    }
    public void setNumber(int number) {
        this.number = number;
    }
   
    public void show() {
        System.out.println(serial+"\t"+name+"\t"+price+"\t"+number);
    }
}
運(yùn)行結(jié)果:
1.錄入商品信息和顯示商品信息的功能實(shí)現(xiàn):
51hei.png
2.一定要理解的概念
(開始做的時(shí)候,很發(fā)懵,看了好多資料,但是還是感覺什么都不懂,這時(shí)候應(yīng)該看一些例題,查一下“XXX實(shí)驗(yàn)報(bào)告”,弄清楚到底應(yīng)該怎么寫。)
1、用design來理解panel
首先,程序會(huì)自己創(chuàng)建一個(gè)contentPane,這個(gè)就是一個(gè)主界面,就是你run了以后,出現(xiàn)的第一個(gè)界面。
可以在contentPane里邊加各種你需要的元素。
2、JPanel
如果你需要從主界面跳轉(zhuǎn)到另一個(gè)界面,那么你就需要再設(shè)置一個(gè)Jpanel,再用相關(guān)語法。可以這么理解,我們可視化了以后,就是從一個(gè)一個(gè)界面之間的跳轉(zhuǎn),所以我們需要很多的panel來區(qū)別其他的展示界面。
3.時(shí)間的發(fā)生要怎么監(jiān)聽
(即怎么判斷事情的發(fā)生,比如我按了一個(gè)按鈕,程序怎么就知道自己判斷,自己執(zhí)行了呢)
4.怎么讀取文本框里邊的信息
如果文本框的名稱是textfile,則可以
textfile.getText(),注意這里得到的是一個(gè)String的信息,如果你想得到數(shù)字信息,比如說你在文本框輸入2,如果用上邊語句,你得到的是“2”,要想得到數(shù)字,比如double 類型應(yīng)該是
Double.parseDouble(textField_4.getText());
舉一反三,得到int類型,應(yīng)該是Integer.parseInt(textField_5.getText());
5.怎么樣從一個(gè)界面跳轉(zhuǎn)到另一個(gè)界面呢
首先不同的界面需要使用不同的panel!!
然后在套用公式,在你需要監(jiān)聽的事件那里寫:delectstudent();即調(diào)用這個(gè)函數(shù)
三.設(shè)計(jì)思路:
可以對(duì)超市商品進(jìn)行管理的人員主要有超市的商家和顧客,商家可以對(duì)超市的商品進(jìn)行增﹑刪﹑改﹑查操作,而顧客只能查詢和購買商品。增加商品時(shí),要添加商品的全部信息(編號(hào)﹑類別﹑名稱﹑價(jià)格﹑庫存量﹑品牌﹑生產(chǎn)廠家),刪除時(shí)只需要輸入商品編號(hào)便可刪除該商品的全部信息,修改時(shí)要先輸入商品編號(hào),然后再確定要修改該商品的哪一個(gè)值,以及要將該值修改為什么,查詢時(shí)只要輸入想要查詢商品的任意一個(gè)信息并選擇商品類別便可查出該商品的全部信息。
1.實(shí)現(xiàn):
建立并連接數(shù)據(jù)庫與基本表
連接數(shù)據(jù)庫時(shí)需要用到JDBC,它由Java編程語言編寫的類和接口組成,是實(shí)現(xiàn)Java與各種數(shù)據(jù)庫連接的關(guān)鍵,提供了將Java與數(shù)據(jù)庫連接起來的程序接口,使用戶可以以SQL的形式編寫訪問請(qǐng)求,然后傳給數(shù)據(jù)庫,其結(jié)果再由這一接口返回,從而實(shí)現(xiàn)對(duì)數(shù)據(jù)庫中數(shù)據(jù)操作的目的。超市商品管理系統(tǒng)采用了MySQL作為數(shù)據(jù)庫,所建的系統(tǒng)數(shù)據(jù)庫名為“goods”。通過需求分析、概念設(shè)計(jì)與邏輯設(shè)計(jì),可知該系統(tǒng)數(shù)據(jù)庫只需建立一個(gè)商品表即可
2.結(jié)構(gòu)設(shè)計(jì):
該系統(tǒng)用于對(duì)商品的基本信息進(jìn)行管理,主要包括添加、修改、查詢和刪除商品基本信息,為了方便,全部操作均在界面中完成。由此,將該系統(tǒng)結(jié)構(gòu)設(shè)計(jì)為登錄模塊、顧客模塊、商家模塊。由于涉及界面設(shè)計(jì),因此調(diào)用了java.awt.、java.awt.event.、javax.swing.、java.util.、javax.swing.event.*、java.sql.*等包。
(一)實(shí)現(xiàn)登錄模塊:
要生成一個(gè)界面,可應(yīng)用AWT知識(shí)。設(shè)置其名字為商品信息管理系統(tǒng);設(shè)置布局管理器為(null)布局管理器,方便往其中放組件;設(shè)置窗口大小和位置,還要設(shè)置窗口可見性。
生成界面后,接下來就需要實(shí)現(xiàn)每個(gè)功能,第一個(gè)功能就是要對(duì)操作對(duì)象的身份進(jìn)行選擇,這里要用下拉列表的形式進(jìn)行選擇,也可以用單選按鈕來完成這個(gè)功能。在這項(xiàng)功能中,首先要選擇身份,所以要定義一個(gè)JLabel來說明,定義完JLabel后,就需要定義一個(gè)JComoBox,下拉列表框。 
輸入用戶名和密碼。需要用兩個(gè)JLabel來指明需要輸入用戶名和密碼。輸入用戶名需要定義一個(gè)JTextField,單文本框。同時(shí)輸入文本,但輸入密碼和輸入用戶名是不一樣的,它需要定義成JPasswordField,它的輸出結(jié)果為“*****”這樣的形式。 
創(chuàng)建兩個(gè)按鈕,一個(gè)是登錄按鈕,另一個(gè)是取消登錄按鈕,用來輸入的用戶名和密碼及選擇的身份進(jìn)行提交,然后根據(jù)選擇的身份來選擇需要進(jìn)入那個(gè)界面,其代碼如下:
package sangpin;
import java.awt.*;
import  javax.swing.*;
import java.awt.event.*;
public class info_Manage extends JFrame implements ActionListener{
    private JLabel username = new JLabel("用戶名");
    private JTextField userName = new JTextField();        
    private JLabel psw = new JLabel("密碼");   
    private JPasswordField Psw = new JPasswordField();
    JLabel jlp=new JLabel("身份");
    String str[]={"顧客","商家"};
    JComboBox jcb=new JComboBox(str);   
    private JButton jb1 = new JButton("登錄");
    private JButton jb2 = new JButton("取消");   
    public info_Manage(){        
        this.setTitle("商品信息管理系統(tǒng)");
        this.setLayout(null);
        username.setBounds(100,50,100,20);
        this.add(username);        
        userName.setBounds(150,50,100,20);
        this.add(userName);
        psw.setBounds(100,100,100,20);
        this.add(psw);
        Psw.setBounds(150,100,100,20);
        this.add(Psw);
        jlp.setBounds(100,150,100,20);
        this.add(jlp);
        jcb.setBounds(150,150,100,20);
        this.add(jcb);
        jcb.addActionListener(this);
        jb1.setBounds(100,210,60,20);
        this.add(jb1);
        jb1.addActionListener(this);
        jb2.setBounds(200,210,60,20);
        this.add(jb2);     
        jb2.addActionListener(this);
        this.setVisible(true);
        this.setBounds(10,10,390,330);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    public static void main(String[] args) {
        new info_Manage();
    }
    public void actionPerformed(ActionEvent e) {        
        if (e.getSource() == jb1) {
            String name=userName.getText();
            String password = new String(Psw.getPassword());
            if(name.length()==0&&password.length()!=0)
                JOptionPane.showMessageDialog( null, "請(qǐng)輸入用戶名");
            else  if(name.length()!=0&&password.length()==0)
                JOptionPane.showMessageDialog( null, "請(qǐng)輸入密碼");
            else if(name.length()==0&&name.length()==0)
                    JOptionPane.showMessageDialog( null, "請(qǐng)輸入用戶名和密碼");
            else if(jcb.getSelectedIndex()==0&&name.length()!=0&&name.length()!=0)
                new custom_Manage();
            else if(jcb.getSelectedIndex()==1&&name.length()!=0&&password.length()!=0)
                new seller_Manage();
        }
        else if(e.getSource()==jb2)
            System.exit(0);
    }
}

(二)實(shí)現(xiàn)顧客操作界面
當(dāng)選擇“顧客”時(shí),單擊“登錄”按鈕就可以進(jìn)入顧客操作系統(tǒng)了,然后就可以對(duì)摸個(gè)學(xué)生的信息進(jìn)行輸入、修改和刪除,也能對(duì)同學(xué)的信息進(jìn)行查詢和對(duì)程序進(jìn)行查詢。當(dāng)打算離開時(shí),還要有一個(gè)選項(xiàng)用來退出學(xué)生信息管理系統(tǒng)。根據(jù)設(shè)計(jì)構(gòu)想,首先要搭建一個(gè)界面,然后把顧客的操作分為2大塊,分別是商品信息查詢和退出登錄


完整的Word格式文檔51黑下載地址:
商品管理系統(tǒng).docx (1.7 MB, 下載次數(shù): 9)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表