자바 상품 정보 관리 시스템 구현
제목 요구
슈퍼마켓 의 상품 은 식품,화장품,일용품,음료 등 네 가지 로 나 뉜 다.모든 상품 은 상품 명칭,가격,재 고량 과 생산 업 체,브랜드 등 정 보 를 포함한다.주로 상품 에 대한 판매,통계 와 간단 한 관 리 를 완성 한다.이 문 제 는 상대 적 으로 간단 해서 한 장의 표 로 정보의 저장 과 처 리 를 실현 할 수 있 기 때문에 데이터베이스 디자인 에 참고 하지 않 는 다.
기능 요구 사항
(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);
}
}
실행 결 과 는 그림 과 같 습 니 다.이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.