자바 상품 정보 관리 시스템 구현

슈퍼마켓 상품 관리 시스템 은 여러분 이 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 아래 와 같 습 니 다.
제목 요구
슈퍼마켓 의 상품 은 식품,화장품,일용품,음료 등 네 가지 로 나 뉜 다.모든 상품 은 상품 명칭,가격,재 고량 과 생산 업 체,브랜드 등 정 보 를 포함한다.주로 상품 에 대한 판매,통계 와 간단 한 관 리 를 완성 한다.이 문 제 는 상대 적 으로 간단 해서 한 장의 표 로 정보의 저장 과 처 리 를 실현 할 수 있 기 때문에 데이터베이스 디자인 에 참고 하지 않 는 다.
기능 요구 사항
(1)판매 기능.
상품 을 구 매 할 때 카 테 고 리 를 먼저 입력 한 다음 상품 명 을 입력 하고 재고 에서 해당 상품 의 관련 정 보 를 찾 습 니 다.재 고량 이 있 으 면 구 매 수량 을 입력 하여 상응하는 계산 을 한다.재 고량 이 부족 하면 안내 메 시 지 를 주 고 구 매 를 종료 합 니 다.
(2)상품 의 단순 관리 기능.
추가 기능:주로 상품 정보의 추 가 를 완성 합 니 다.
조회 기능:상품 유형,상품 명칭,생산 업 체 에 따라 조회 할 수 있 습 니 다.해당 정보 가 존재 하면 검색 한 정 보 를 출력 하고 이 기록 이 존재 하지 않 으 면'이 기록 이 존재 하지 않 습 니 다!'라 고 알려 줍 니 다.
수정 기능:조회 결과 에 따라 해당 하 는 기록 을 수정 할 수 있 습 니 다.
삭제 기능:주로 상품 정보의 삭 제 를 완성 합 니 다.상품 카 테 고 리 를 먼저 입력 하고 삭제 할 상품 명 을 입력 해 조회 결과 에 따라 해당 물품 의 기록 을 삭제 하고,해당 상품 이 아 이 템 라 이브 러 리 에 없 으 면'해당 상품 은 존재 하지 않 는 다'고 안내 한다.
(3)통계 기능.
현재 재고 중의 모든 상품 의 총수 와 상세 한 정 보 를 수출 합 니 다.상품 의 가격,재 고량,생산 업 체 에 따라 통 계 를 할 수 있 고 통계 정 보 를 수출 할 때 큰 것 에서 작은 것 으로 순 위 를 매 겨 야 한다.
(7)상품 정보 저장 소:현재 프로그램의 상품 정 보 를 파일 에 저장 합 니 다.
(8)정보 읽 기:파일 에서 상품 정 보 를 읽 는 프로그램.
문제 의 해결 방안
시스템 기능 의 요구 에 따라 문제 해결 을 다음 과 같은 절차 로 나 눌 수 있다.
(1)응용 시스템 분석 을 통 해 이 시스템 의 기능 모듈 구조 와 인터페이스의 조직 과 디자인 을 구축한다.
(2)시스템 중의 각 실체 와 그들의 관 계 를 분석한다.
(3)문제 설명 에 따라 디자인 시스템 의 유형 차원;
(4)클래스 차원 의 각 유형의 설명 을 완성 한다.
(5)클래스 의 각 구성원 함수 의 정 의 를 완성 합 니 다.
(6)시스템 의 응용 모듈 완성;
(7)기능 디 버 깅;
디자인 아이디어
슈퍼마켓 상품 을 관리 할 수 있 는 인원 은 주로 슈퍼마켓 의 업 체 와 고객 이 있 고 업 체 는 슈퍼마켓 의 상품 에 대해 p 삭제 p 변경 p 검 사 를 할 수 있 으 며 고객 은 상품 을 조회 하고 구 매 할 수 밖 에 없다.상품 을 추가 할 때 상품 의 모든 정보(번호 p 종류 p 이름 p 가격 p 라 이브 러 리 저장량 p 브랜드 p 생산 업 체)를 추가 해 야 합 니 다.삭제 할 때 상품 번 호 를 입력 하면 이 상품 의 모든 정 보 를 삭제 할 수 있 습 니 다.수정 할 때 상품 번 호 를 입력 한 다음 에 이 상품 의 어떤 값 을 수정 해 야 하 는 지,그리고 이 값 을 왜 수정 해 야 하 는 지 확인 해 야 합 니 다.조회 시 상품 을 조회 하고 자 하 는 임의의 정 보 를 입력 하고 상품 유형 을 선택 하면 이 상품 의 모든 정 보 를 찾 을 수 있다.
실현:
데이터베이스 와 기본 표를 만 들 고 연결 합 니 다.
데이터 베 이 스 를 연결 할 때 JDBC 를 사용 해 야 합 니 다.자바 프로 그래 밍 언어 로 작 성 된 클래스 와 인터페이스 로 구성 되 어 있 습 니 다.자바 와 각종 데이터 베 이 스 를 연결 하 는 관건 입 니 다.자바 와 데이터 베 이 스 를 연결 하 는 프로그램 인 터 페 이 스 를 제공 하여 사용자 가 SQL 형식 으로 접근 요청 을 작성 한 다음 데이터 베 이 스 를 전송 할 수 있 도록 합 니 다.그 결 과 는 이 인터페이스 에서 되 돌 아 옵 니 다.데이터베이스 에서 데이터 조작 에 대한 목적 을 실현 한다.슈퍼마켓 상품 관리 시스템 은 MySQL 을 데이터베이스 로 사용 하고 구축 한 시스템 데이터 베 이 스 는'goods'라 고 부른다.수요 분석,개념 디자인 과 논리 디자인 을 통 해 이 시스템 데이터 베 이 스 는 하나의 상품 표를 만 들 면 된다 는 것 을 알 수 있다.
구조 설계
이 시스템 은 상품 의 기본 정 보 를 관리 하 는 데 사용 되 는데 주로 상품 의 기본 정 보 를 추가,수정,조회 와 삭제 하 는 것 을 포함한다.편 의 를 위해 모든 조작 은 인터페이스 에서 이 루어 진다.이로써 이 시스템 구 조 를 로그 인 모듈,고객 모듈,업 체 모듈 로 설계 했다.인터페이스 디자인 과 관련 되 어 있 기 때문에 java.awt.,java.awt.event.,javax.swing.,java.util.,javax.swing.event.*,java.sql.*등 패 키 지 를 호출 하 였 습 니 다.
로그 인 모듈 구현
하나의 인 터 페 이 스 를 만 들 려 면 AWT 지식 을 응용 할 수 있 습 니 다.상품 정보 관리 시스템 으로 이름 설정 하기;레이아웃 관리 자 를(null)레이아웃 관리자 로 설정 하여 구성 요 소 를 넣 기 편리 합 니 다.창 크기 와 위 치 를 설정 하고 창 보이 기 를 설정 합 니 다.
인 터 페 이 스 를 생 성 한 후에 그 다음 에 모든 기능 을 실현 해 야 한다.첫 번 째 기능 은 조작 대상 의 신분 을 선택 하 는 것 이다.여 기 는 드 롭 다운 목록 의 형식 으로 선택 하고 단일 선택 단추 로 이 기능 을 완성 할 수 있다.이 기능 에 서 는 먼저 신분 을 선택해 야 하기 때문에 JLabel 을 정의 하여 설명 하려 면 JLabel 을 정의 한 후 JComoBox,드 롭 다운 목록 상 자 를 정의 해 야 합 니 다. 
사용자 이름과 비밀 번 호 를 입력 하 십시오.사용자 이름과 비밀 번 호 를 입력 해 야 한 다 는 것 을 JLabel 두 개 로 표시 해 야 합 니 다.사용자 이름 을 입력 하려 면 JTextField,단일 텍스트 상 자 를 정의 해 야 합 니 다.텍스트 를 동시에 입력 하지만 비밀 번 호 를 입력 하 는 것 과 사용자 이름 을 입력 하 는 것 은 다 릅 니 다.JPasswordField 로 정의 해 야 합 니 다.출력 결 과 는'***'와 같은 형식 입 니 다. 
두 개의 단 추 를 만 듭 니 다.하 나 는 로그 인 단추 이 고 다른 하 나 는 로그 인 취소 단추 입 니 다.입력 한 사용자 이름과 비밀번호 및 선택 한 신분 에 따라 제출 한 다음 에 선택 한 신분 에 따라 그 인터페이스 에 들 어가 야 합 니 다.그 코드 는 다음 과 같 습 니 다.

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 대 블록 으로 나 누 어야 한다.그것 이 바로 상품 정보 조회 와 로그 인 탈퇴 이다.그 부분 코드 는 다음 과 같다.

class custom_Manage extends JFrame implements ActionListener{
 JMenu cm=new JMenu("         :");
 JButton cm1=new JButton("      ");
 JButton cm2=new JButton("    ");
 public void actionPerformed(ActionEvent e){
 if(e.getSource()==cm1)new SetGoods();
 else if(e.getSource()==cm2) this.setVisible(false);
 }
}
실행 결과

업 체 의 조작 인터페이스 에 비해 고객 조작 인터페이스 가 상품 정보의 증가 p 삭제 와 수정 기능 이 많 고 그 실현 방법 은 고객 조작 인터페이스 와 유사 하 므 로 여기 서 더 이상 군말 하지 않 는 다.
상품 정보 추가
모든 단 추 는 하나의 조작 인터페이스 에 대응 합 니 다.업 체 가 조작 하 는'상품 정보 추가'단 추 를 누 르 면 그림 과 같은 인터페이스 가 팝 업 됩 니 다.이 는 AddGoods.자바 류 를 호출 하여 이 기능 을 실현 합 니 다.'정보 추가'라 는 하위 메뉴 에 감청 을 설정 하여 화면 을 팝 업 합 니 다.AddGoods.java 의 일부 코드 는 다음 과 같 습 니 다.

class AddGoods extends JFrame implements ActionListener {
 JLabel JL = new JLabel("      :");
 JLabel number = new JLabel("    ");
 JTextField Number = new JTextField();
 
 JLabel JClass=new JLabel("  ");
 String str[]={"  ","   ","   ","  "};
 JComboBox jcb=new JComboBox(str);
 
 JLabel name = new JLabel("    ");
 JTextField Name = new JTextField();
 JLabel price=new JLabel("    ");
 JTextField Price = new JTextField();
 JLabel storage= new JLabel("   ");
 JTextField Storage = new JTextField();
 JLabel brand= new JLabel("  ");
 JTextField Brand = new JTextField();
 JLabel vender = new JLabel("    ");
 JTextField Vender = new JTextField();
 
 JTextField jt=new JTextField(10);
 JButton Add = new JButton("  ");
 JButton Reset = new JButton("  ");
 JButton Exit = new JButton("  ");
 String sql = "";

 public void actionPerformed(ActionEvent e) {
 if(e.getSource()==Add) {
 String snumber=Number.getText();
 String svender=Vender.getText();
 String sname=Name.getText();
 String sprice=Price.getText();
 String sstorage=Storage.getText();
 String sbrand=Brand.getText();
 try {
 Connection cot=ConnectionFactory.getConnection();
 Statement stm=cot.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE ,ResultSet.CONCUR_UPDATABLE );
 int s=jcb.getSelectedIndex();
 String jc=null;
 if(s==0)jc="  ";
 else if(s==1)jc="   ";
 else if(s==2)jc="   ";
 else if(s==3)jc="  ";
sql="insert into goods values('"+snumber+"','"+jc+"','"+sname+"',"+sprice+","+sstorage+",'"+sbrand+"','"+svender+"')";
 int n=stm.executeUpdate(sql);
 if(n!=0)JOptionPane.showMessageDialog(null,"    !");
 else JOptionPane.showMessageDialog(null,"      !");
 }catch(Exception ee) {
 ee.printStackTrace();
 }
 }
 if(e.getSource()==Reset) {
 Number.setText(null);
 Name.setText(null);
 Vender.setText(null);
 Price.setText(null);
 Storage.setText(null);
 Brand.setText(null);
 }
 if(e.getSource()==Exit) {
 this.setVisible(false);
 }
 }
}
실행 효과:

상품 정보 삭제
업 체 운영 체제 에서 상품 정 보 를 삭제 하 는 단 추 를 선택 하면 그림 4-4 의 화면 이 팝 업 됩 니 다.deleteGoodst.자바 류 를 호출 하여 이 기능 을 실현 합 니 다.일부 코드 는 다음 과 같 습 니 다.

class DeleteGoods extends JFrame implements ActionListener {
 JMenu JL = new JMenu("      ");
 JLabel number = new JLabel("    ");
 JTextField Number = new JTextField();
 JButton Del = new JButton("  ");
 JButton Reset = new JButton("  ");
 JButton Exit = new JButton("  ");
 String sql = "";

public void actionPerformed(ActionEvent e) {
 if (e.getSource() == Del) {
 Statement stm=null;
 Connection cot;
 try {
 cot=ConnectionFactory.getConnection();
 stm= cot.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE ,ResultSet.CONCUR_UPDATABLE );
 sql ="delete from goods where number='"+Number.getText()+"'";
 int n = stm.executeUpdate(sql);
 if (n!=0)
 JOptionPane.showMessageDialog(null, "    !");
 else
 JOptionPane.showMessageDialog(null, "    !");
 } catch (SQLException e1) {
 JOptionPane.showMessageDialog(null, "      !");
 e1.printStackTrace();
 }
 }
 if (e.getSource() == Reset) {
 Number.setText(null);
 }
 if (e.getSource() == Exit)
 this.setVisible(false);
 }
}
그림 과 같이 상품 번 호 를 입력 하면 이 상품 의 모든 정 보 를 삭제 할 수 있다.

상품 정보 수정
업 체 운영 체제 에서'정보 수정'단 추 를 선택 하면 팝 업 창 이 뜨 고 상품 의 번 호 를 입력 한 다음 수정 할 이 번호 상품 의 열 이름 을 선택 하고 마지막 으로 수정 하고 자 하 는 값 을 입력 하면 해당 상품 의 정 보 를 수정 할 수 있다.GetGoods.java 클래스 를 사용 하여 이 기능 을 실현 하 였 습 니 다.그 부분 코드 는 다음 과 같다.

class GetGoods extends JFrame implements ActionListener{
 JLabel JL = new JLabel("      ", JLabel.CENTER);
 JLabel number = new JLabel("            ");
 JTextField Number = new JTextField(); 
 JLabel massage = new JLabel("            ");
 JTextField Massage = new JTextField(); 
 JLabel afterget=new JLabel("           :");
 JTextField Afterget = new JTextField(); 
 JTextField jt=new JTextField(10);
 JButton Get = new JButton("  ");
 JButton Reset = new JButton("  ");
 JButton Exit = new JButton("  ");
 String sql = "";
public void actionPerformed(ActionEvent e){
 if(e.getSource()==Get){
 Statement stm=null;
 Connection cot;
 try{
 cot=ConnectionFactory.getConnection(); stm=cot.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE ,ResultSet.CONCUR_UPDATABLE );
 sql="update goods set "+Massage.getText()+"='"+Afterget.getText()+"' where number='"+Number.getText()+"'";
 int n=stm.executeUpdate(sql);
 if(n!=0)JOptionPane.showMessageDialog(null,"    !");
 else JOptionPane.showMessageDialog(null,"    !");
 }catch(Exception er){
 er.printStackTrace();
 }
 }
 if(e.getSource()==Reset){
 Number.setText(null);
 Massage.setText(null);
 Afterget.setText(null);
 }
 if(e.getSource()==Exit) {
 this.setVisible(false);
 }
 }
}
실행 결과

상품 정보 조회
고객 이나 업 체 운영 체제 에서'상품 정보 조회'단 추 를 선택 하면 그림 과 같은 화면 이 팝 업 됩 니 다.SetGoods.자바 류 를 호출 하여 이 기능 을 실현 합 니 다.일부 코드 는 다음 과 같 습 니 다.

class SetGoods extends JFrame implements ActionListener {
 JLabel JL = new JLabel("                  ", JLabel.CENTER);
 JLabel number = new JLabel("    ");
 JTextField Number = new JTextField(); 
 JLabel JClass=new JLabel("  ");
 String str[]={" ","  ","   ","   ","  "};
 JComboBox jcb=new JComboBox(str); 
 JLabel name = new JLabel("    ");
 JTextField Name = new JTextField();
 JLabel price=new JLabel("    ");
 JTextField Price = new JTextField();
 JLabel brand= new JLabel("  ");
 JTextField Brand = new JTextField();
 JLabel vender = new JLabel("    ");
 JTextField Vender = new JTextField(); 
 JTextField jt=new JTextField(10);
 JButton Set = new JButton("  ");
 JButton purchase = new JButton("  ");
 JButton Reset = new JButton("  ");
 JButton Exit = new JButton("  ");
 String sql = "";
public void actionPerformed(ActionEvent e) {
 if (e.getSource() == Set) {
 Statement stm=null;
 Connection cot;
 try{
 cot=ConnectionFactory.getConnection();
stm=cot.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE ,ResultSet.CONCUR_UPDATABLE );
 if(Number.getText()!=null)
 sql="select * from goods where number='"+Number.getText()+"'";
 else if(Name.getText()!=null)
 sql="select * from goods where name='"+Name.getText()+"'";
 else if(Price.getText()!=null)
 sql="select * from goods where price='"+Price.getText()+"'";
 else if(Brand.getText()!=null)
 sql="select * from goods where brand='"+Brand.getText()+"'";
 else if(Vender.getText()!=null)
 sql="select * from goods where vender='"+Vender.getText()+"'";
 ResultSet rs=stm.executeQuery(sql);
 while(rs.next()) {
 System.out.println("    : "+Number.getText());
 int s=jcb.getSelectedIndex();
 if(s==0)
 JOptionPane.showMessageDialog( null, "       !" );
 else if(s==1)System.out.println("    :   ");
 else if(s==2)System.out.println("    :    ");
 else if(s==3)System.out.println("    :    ");
 else if(s==4)System.out.println("    :   ");
 System.out.println("    : "+rs.getString("name"));
 System.out.println("  : "+rs.getString("price"));
 System.out.println("   : "+rs.getString("storage"));
 System.out.println("  : "+rs.getString("brand"));
 System.out.println("    : "+rs.getString("vender"));
 }
 }catch(Exception ee){
 JOptionPane.showMessageDialog( null, "      !" );
 ee.printStackTrace();
 }
 }
 else if(e.getSource()==purchase){new Purchase();}
 else if(e.getSource()==Reset){
 Number.setText(null);
 Name.setText(null);
 Vender.setText(null);
 Price.setText(null);
 Brand.setText(null);
 }
 else if(e.getSource()==Exit) {
this.setVisible(false);
}}}
실행 결과

시스템 종료
상품 에 대해 p 삭제 p 수정 과 조 회 를 추가 할 때'종료'단 추 를 누 르 면 그림 4-7 과 같은 화면 이 팝 업 됩 니 다.호출 되 었 습 니 다.

UsingExit.java      ,      :

class UsingExit extends JFrame implements ActionListener{
 JLabel Info=new JLabel("    ?");
 JButton JExit=new JButton("  ");
 JButton Cancel=new JButton("  ");
public void actionPerformed(ActionEvent e){
 if(e.getSource()==JExit)
 System.exit(0);
 else if(e.getSource()==Cancel)
 setVisible(false);
 }
}
실행 결 과 는 그림 과 같 습 니 다.

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기