java實現商品信息管理系統,相關內容在附件
統構建類圖:
11.png (254.66 KB, 下載次數: 86)
下載附件
2019-11-10 01:27 上傳
一.控制臺實現:
0. 退出
1. 錄入商品基本信息
2. 顯示商品信息
3. 增加商品數量
4. 減少商品數量
5. 修改商品價格
6. 所有產品的總價格(單價*數量)
程序:
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("----商品管理系統----");
System.out.println("******************");
System.out.println("1.錄入商品基本信息");
System.out.println("2.顯示商品信息");
System.out.println("3.增加商品");
System.out.println("4.減少商品");
System.out.println("5.修改商品價格");
System.out.println("6.所有商品的總價格");
System.out.println("0.退出");
ArrayList<Goods> list=new ArrayList<>();
while(true) {
System.out.println("請選擇序號:");
int num=get.nextInt();
if(num==1) {//錄入商品基本信息
System.out.print("請輸入商品編號:");
serial=get.next();
System.out.print("請輸入商品名稱:");
name=get.next();
System.out.print("請輸入商品價格:");
price=get.nextFloat();
System.out.print("請輸入商品數量:");
number=get.nextInt();
Goods goods=new Goods(serial, name, price, number);
list.add(goods);//加入到商品信息庫里
}else if(num==2) {//顯示商品信息
System.out.println("編號\t名稱\t價格\t數量");
for(int i=0;i<list.size();i++) {
Goods g=list.get(i);
g.show();
}
}else if(num==3) {//商品入庫(增加數量)
System.out.print("請輸入要入庫的商品的編號:");
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("請輸入要入庫的商品的數量:");
int n=get.nextInt();
int number0=g.getNumber();
number0+=n;
g.setNumber(number0);//返回更改后的商品數量
flag=true;
break;
}else {
flag=false;
}
}
if(flag==false) {
System.out.println("商品不在庫中,請重新輸入:");
}
}else if(num==4) {//商品出庫(減少數量)
System.out.print("請輸入要減少的商品的編號:");
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("商品在庫中,數量為:"+number0);
System.out.print("請輸入要出庫的商品的數量:");
int n=get.nextInt();
number0-=n;
g.setNumber(number0);//返回更改后的商品數量
flag=true;
break;
}else {
flag=false;
}
}
if(flag==false) {
System.out.println("商品不在庫中,請重新輸入:");
}
}else if(num==5) {//修改商品價格
System.out.print("請輸入要修改價格的商品的編號:");
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("商品在庫中,價格為:"+price0);
System.out.print("請輸入要修改的商品的價格:");
float p=get.nextFloat();
g.setPrice(p);//返回修改后的價格
flag=true;
break;
}else {
flag=false;
}
}
if(flag==false) {
System.out.println("商品不在庫中,請重新輸入:");
}
}else if(num==6) {//所有產品的總價格(單價*數量)
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("編號為"+i+"的商品的總價格為:"+total[ i]);
Total+=total[ i];
}
System.out.println("所有商品的總價格為:"+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);
}
}
運行結果:
1.錄入商品信息和顯示商品信息的功能實現:
51hei.png (32.34 KB, 下載次數: 85)
下載附件
2019-11-10 01:28 上傳
2.一定要理解的概念
(開始做的時候,很發懵,看了好多資料,但是還是感覺什么都不懂,這時候應該看一些例題,查一下“XXX實驗報告”,弄清楚到底應該怎么寫。)
1、用design來理解panel
首先,程序會自己創建一個contentPane,這個就是一個主界面,就是你run了以后,出現的第一個界面。
可以在contentPane里邊加各種你需要的元素。
2、JPanel
如果你需要從主界面跳轉到另一個界面,那么你就需要再設置一個Jpanel,再用相關語法。可以這么理解,我們可視化了以后,就是從一個一個界面之間的跳轉,所以我們需要很多的panel來區別其他的展示界面。
3.時間的發生要怎么監聽
(即怎么判斷事情的發生,比如我按了一個按鈕,程序怎么就知道自己判斷,自己執行了呢)
4.怎么讀取文本框里邊的信息
如果文本框的名稱是textfile,則可以
textfile.getText(),注意這里得到的是一個String的信息,如果你想得到數字信息,比如說你在文本框輸入2,如果用上邊語句,你得到的是“2”,要想得到數字,比如double 類型應該是
Double.parseDouble(textField_4.getText());
舉一反三,得到int類型,應該是Integer.parseInt(textField_5.getText());
5.怎么樣從一個界面跳轉到另一個界面呢
首先不同的界面需要使用不同的panel!!!
然后在套用公式,在你需要監聽的事件那里寫:delectstudent();即調用這個函數
三.設計思路:
可以對超市商品進行管理的人員主要有超市的商家和顧客,商家可以對超市的商品進行增﹑刪﹑改﹑查操作,而顧客只能查詢和購買商品。增加商品時,要添加商品的全部信息(編號﹑類別﹑名稱﹑價格﹑庫存量﹑品牌﹑生產廠家),刪除時只需要輸入商品編號便可刪除該商品的全部信息,修改時要先輸入商品編號,然后再確定要修改該商品的哪一個值,以及要將該值修改為什么,查詢時只要輸入想要查詢商品的任意一個信息并選擇商品類別便可查出該商品的全部信息。
1.實現:
建立并連接數據庫與基本表
連接數據庫時需要用到JDBC,它由Java編程語言編寫的類和接口組成,是實現Java與各種數據庫連接的關鍵,提供了將Java與數據庫連接起來的程序接口,使用戶可以以SQL的形式編寫訪問請求,然后傳給數據庫,其結果再由這一接口返回,從而實現對數據庫中數據操作的目的。超市商品管理系統采用了MySQL作為數據庫,所建的系統數據庫名為“goods”。通過需求分析、概念設計與邏輯設計,可知該系統數據庫只需建立一個商品表即可
2.結構設計:
該系統用于對商品的基本信息進行管理,主要包括添加、修改、查詢和刪除商品基本信息,為了方便,全部操作均在界面中完成。由此,將該系統結構設計為登錄模塊、顧客模塊、商家模塊。由于涉及界面設計,因此調用了java.awt.、java.awt.event.、javax.swing.、java.util.、javax.swing.event.*、java.sql.*等包。
(一)實現登錄模塊:
要生成一個界面,可應用AWT知識。設置其名字為商品信息管理系統;設置布局管理器為(null)布局管理器,方便往其中放組件;設置窗口大小和位置,還要設置窗口可見性。
生成界面后,接下來就需要實現每個功能,第一個功能就是要對操作對象的身份進行選擇,這里要用下拉列表的形式進行選擇,也可以用單選按鈕來完成這個功能。在這項功能中,首先要選擇身份,所以要定義一個JLabel來說明,定義完JLabel后,就需要定義一個JComoBox,下拉列表框。
輸入用戶名和密碼。需要用兩個JLabel來指明需要輸入用戶名和密碼。輸入用戶名需要定義一個JTextField,單文本框。同時輸入文本,但輸入密碼和輸入用戶名是不一樣的,它需要定義成JPasswordField,它的輸出結果為“*****”這樣的形式。
創建兩個按鈕,一個是登錄按鈕,另一個是取消登錄按鈕,用來輸入的用戶名和密碼及選擇的身份進行提交,然后根據選擇的身份來選擇需要進入那個界面,其代碼如下:
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("商品信息管理系統");
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, "請輸入用戶名");
else if(name.length()!=0&&password.length()==0)
JOptionPane.showMessageDialog( null, "請輸入密碼");
else if(name.length()==0&&name.length()==0)
JOptionPane.showMessageDialog( null, "請輸入用戶名和密碼");
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);
}
}
(二)實現顧客操作界面
當選擇“顧客”時,單擊“登錄”按鈕就可以進入顧客操作系統了,然后就可以對摸個學生的信息進行輸入、修改和刪除,也能對同學的信息進行查詢和對程序進行查詢。當打算離開時,還要有一個選項用來退出學生信息管理系統。根據設計構想,首先要搭建一個界面,然后把顧客的操作分為2大塊,分別是商品信息查詢和退出登錄
完整的Word格式文檔51黑下載地址:
商品管理系統.docx
(1.7 MB, 下載次數: 9)
2019-11-9 21:11 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|