超市收银课程设计.docx

上传人:b****8 文档编号:9969098 上传时间:2023-05-22 格式:DOCX 页数:28 大小:111.47KB
下载 相关 举报
超市收银课程设计.docx_第1页
第1页 / 共28页
超市收银课程设计.docx_第2页
第2页 / 共28页
超市收银课程设计.docx_第3页
第3页 / 共28页
超市收银课程设计.docx_第4页
第4页 / 共28页
超市收银课程设计.docx_第5页
第5页 / 共28页
超市收银课程设计.docx_第6页
第6页 / 共28页
超市收银课程设计.docx_第7页
第7页 / 共28页
超市收银课程设计.docx_第8页
第8页 / 共28页
超市收银课程设计.docx_第9页
第9页 / 共28页
超市收银课程设计.docx_第10页
第10页 / 共28页
超市收银课程设计.docx_第11页
第11页 / 共28页
超市收银课程设计.docx_第12页
第12页 / 共28页
超市收银课程设计.docx_第13页
第13页 / 共28页
超市收银课程设计.docx_第14页
第14页 / 共28页
超市收银课程设计.docx_第15页
第15页 / 共28页
超市收银课程设计.docx_第16页
第16页 / 共28页
超市收银课程设计.docx_第17页
第17页 / 共28页
超市收银课程设计.docx_第18页
第18页 / 共28页
超市收银课程设计.docx_第19页
第19页 / 共28页
超市收银课程设计.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

超市收银课程设计.docx

《超市收银课程设计.docx》由会员分享,可在线阅读,更多相关《超市收银课程设计.docx(28页珍藏版)》请在冰点文库上搜索。

超市收银课程设计.docx

超市收银课程设计

目录

1设计时间3

2设计目的3

3设计任务3

3.1任务说明3

3.2系统目标3

3.3使用范围3

4设计内容3

4.1界面构建3

4.2详细设计3

4.2.1模块设计4

4.2.2运行调试4

4.2.3部分源程序8

5总结与展望28

参考文献29

成绩评定29

1设计时间

2011年6月11日-2011年6月15日

2设计目的

通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。

3设计任务

3.1任务说明

设计出一个超市收银程序

(1)使用图形用户界面实现。

信息返回给收银台,计算出该顾客所购商品的总价格。

(3)每天营业结束把该收银台的销售总额进行统计汇总(要求包括商品种类、数量、销售总额、结账人次等信息,其余可自行丰富)并存储在数据库中。

(4)所有持卡顾客的消费商品情况存储到文件以供查询。

(5)对没有卡的消费情况不记录该顾客的消费情况等个人信息。

如果一个未持卡顾客一次购物满200元,结完账后系统提示可为其发放一张会员卡

3.2系统目标

该软件开发的用途是用来方便超市的收银管理,提高办事效率。

3.3使用范围

本程序用于超市对会员和非会员的销售管理

4设计内容

4.1界面构建

为了便于各种操作,软件采用多窗口的模式。

用户可在不同窗口进行相应操作。

4.2详细设计

4.2.1模块设计

4.2.2运行调试

图1登录界面

图2操作界面

图3.1修改数量

图3.2填入要修改数量的商品号

图3.3输入新数量

图4.1普通结算

 

图4.2会员结算

图5销售情况

图6系统时间

4.2.3部分源程序

登录

importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.io.BufferedReader;importjava.io.FileReader;importjava.io.IOException;importjava.util.StringTokenizer;importjavax.swing.*;publicclassland{publicstaticvoidmain(String[]args){landframeframe=newlandframe();frame.setTitle("收营员登陆");frame.setLocation(300,300);frame.setSize(270,170);frame.setVisible(true);}}classlandframeextendsJDialogimplementsActionListener{publiclandframe(){label1=newJLabel("JAVA超市收营系统请登陆");label2=newJLabel("用户名:

");label3=newJLabel("密码:

");hbox1=Box.createHorizontalBox();hbox2=Box.createHorizontalBox();vbox=Box.createVerticalBox();jf1=newJTextField();JPF=newJPasswordField();JPF.addActionListener(this);land=newJButton("登陆");land.addActionListener(this);panel1=newJPanel();panel2=newJPanel();hbox1.add(label2);hbox1.add(Box.createHorizontalStrut(5));hbox1.add(jf1);hbox2.add(label3);hbox2.add(Box.createHorizontalStrut(18));panel2.add(land,"Center");hbox2.add(JPF);vbox.add(label1);vbox.add(Box.createVerticalStrut(10));vbox.add(hbox1);vbox.add(Box.createVerticalStrut(10));vbox.add(hbox2);vbox.add(Box.createVerticalStrut(10));vbox.add(panel2);panel1.add(vbox);getContentPane().add(panel1,"Center");}publicvoidactionPerformed(ActionEventevt){Objectsource=evt.getSource();if(source==land||source==JPF){//登陆按纽及第二个文本输入框ENTER功能实现Stringa="",b,read;booleandenglusuccees=false;try{FileReaderfr=newFileReader("denglu.txt");BufferedReaderbr=newBufferedReader(fr);while((read=br.readLine())!

=null){StringTokenizersto=newStringTokenizer(read);a=sto.nextToken();b=sto.nextToken();if(jf1.getText().equals(a)&&JPF.getText().equals(b)){denglusuccees=true;break;}}//验证登陆员号码及密码}catch(IOExceptionie){System.err.println(ie.getMessage());}if(denglusuccees==true){setVisible(false);mainviewmw=newmainview();mw.setTitle(a+"为您服务");mw.setSize(850,500);mw.setLocation(200,180);mw.setVisible(true);}else{jf1.setText("");JPF.setText("");JOptionPane.showMessageDialog(null,"非法用户");}}}privateJLabellabel1,label2,label3;privateBoxhbox1,hbox2,vbox;privateJTextFieldjf1;privateJPasswordFieldJPF;privateJButtonland;privateJPanelpanel1,panel2;}

物价计算

publicclassdraw{

doublea;

doubleb;

Stringc;

publicdraw(doublefnum,doubleall,Stringinformation){//构造函数

a=fnum;//获得指定商品当销售额

b=all;//获得当天总销售额

c=information;//获得指定商品的编号

DrawJDialogframe=newDrawJDialog();

frame.setSize(400,300);

frame.setLocation(400,300);

frame.setVisible(true);

}

classDrawJDialogextendsJDialogimplementsActionListener//界面及功能实现

{

JButtonshut;

{

JTextAreaone=newJTextArea();

DrawPanelpanel=newDrawPanel();

shut=newJButton("关闭");

shut.addActionListener(this);

doublerate=100*a/b;

DecimalFormatdf=newDecimalFormat("########.00");

rate=Double.parseDouble(df.format(rate));//格式化小数显示

one.setText(""+c+"\n"+"占今天销售额"+rate+"%");

panel.add(one);

panel.add(shut);

ContainercontentPane=getContentPane();

contentPane.add(panel);

setTitle("销售情况");

}

publicvoidactionPerformed(ActionEventevt){

Objectsource=evt.getSource();

setVisible(false);

}

}

classDrawPanelextendsJPanel//画饼图

{

publicvoidpaintComponent(Graphicsg){

g.clearRect(30,40,150,150);

doublex1=a;

doublex2=b;

intangle;

super.paintComponent(g);

angle=(int)(360*x1/x2);

g.setColor(Color.blue);

g.drawArc(30,100,150,150,0,angle);

g.fillArc(30,100,150,150,0,angle);

g.setColor(Color.GREEN);

g.drawArc(30,100,150,150,0+angle,360-angle);

g.fillArc(30,100,150,150,0+angle,360-angle);

}

}

}

应用操作

importjava.awt.event.*;

importjavax.swing.*;

importjavax.swing.event.*;

importjava.awt.*;

importjava.io.BufferedReader;

importjava.io.FileReader;

importjava.io.IOException;

importjava.util.*;

classmainviewextendsJFrameimplementsActionListener

{

DataManagementmydata=newDataManagement();

sellcountmysell=newsellcount();

judgemyjudge=newjudge();

intdcount=1;

publicmainview(){

changeButton1=newJButton("修改价格");

changeButton1.addActionListener(this);

changeButton1.setEnabled(false);

changeButton2=newJButton("修改数量");

changeButton2.addActionListener(this);

changeButton2.setEnabled(false);

deleteButton=newJButton("删除商品");

deleteButton.addActionListener(this);

deleteButton.setEnabled(false);

finishButton=newJButton("完成结算");

finishButton.addActionListener(this);

finishButton.setEnabled(false);

cheapButton=newJButton("会员结算");

cheapButton.addActionListener(this);

cheapButton.setEnabled(false);

recordButton=newJButton("记录清单");

recordButton.addActionListener(this);

recordButton.setEnabled(false);

moneyButton=newJButton("找零计算");

moneyButton.addActionListener(this);

moneyButton.setEnabled(false);

clearButton=newJButton("清除清单");

clearButton.addActionListener(this);

textAll=newJTextField(0);

textAll.setEditable(false);

textAll.setBorder(BorderFactory.createEtchedBorder());

textChange=newJTextArea(7,0);

textChange.setEditable(false);

textChange.setBorder(BorderFactory.createEtchedBorder());

hbox2=Box.createHorizontalBox();

vbox2=Box.createVerticalBox();

vbox2.add(Box.createVerticalStrut(9));

vbox2.add(changeButton1);

vbox2.add(Box.createVerticalStrut(9));

vbox2.add(changeButton2);

vbox2.add(Box.createVerticalStrut(9));

vbox2.add(deleteButton);

vbox2.add(Box.createVerticalStrut(9));

vbox2.add(finishButton);

vbox2.add(Box.createVerticalStrut(9));

vbox2.add(cheapButton);

vbox2.add(Box.createVerticalStrut(9));

vbox2.add(textAll);

vbox2.add(moneyButton);

vbox2.add(textChange);

vbox2.setBorder(BorderFactory.createEtchedBorder());

textArea=newJTextArea(24,37);

textArea.setMaximumSize(textArea.getPreferredSize());

textArea.setEditable(false);

scrollPane=newJScrollPane(textArea);

textAdd=newJTextField(20);

textAdd.addActionListener(this);

vbox1=Box.createVerticalBox();

hbox1=Box.createHorizontalBox();

label1=newJLabel("此处输入商品编号");

label2=newJLabel("商品信息显示:

");

drawButton=newJButton("单天商品销售情况");

drawButton.addActionListener(this);

vbox1.add(label1);

vbox1.add(textAdd);

hbox1.add(label2);

hbox1.add(drawButton);

vbox1.add(hbox1);

vbox1.add(scrollPane);

vbox1.setBorder(BorderFactory.createLoweredBevelBorder());

vbox3=Box.createVerticalBox();

hbox3=Box.createHorizontalBox();

label3=newJLabel("最终清单");

label4=newJLabel("版权所属");

label4.setBorder(BorderFactory.createEtchedBorder());

textFinish=newJTextArea(24,30);

textFinish.setEditable(false);

textFinish.setBorder(BorderFactory.createEtchedBorder(Color.WHITE,

Color.BLACK));

hbox3.add(recordButton);

hbox3.add(Box.createHorizontalStrut(10));

hbox3.add(clearButton);

hbox3.add(Box.createHorizontalStrut(10));

hbox3.add(label4);

vbox3.add(newclock());

vbox3.add(label3);

hbox3.setBorder(BorderFactory.createEtchedBorder());

vbox3.add(textFinish);

vbox3.add(hbox3);

vbox3.setBorder(BorderFactory.createLoweredBevelBorder());

hbox2.add(vbox1);

hbox2.add(vbox2);

hbox2.add(vbox3);

getContentPane().add(hbox2);

addWindowListener(newWindowAdapter(){

publicvoidwindowClosing(WindowEvente){

System.exit(0);

}

});

}

publicvoidactionPerformed(ActionEventevt){

Objectsource=evt.getSource();

if(source==textAdd){//商品添加

Stringlog=textAdd.getText();

StringTokenizersto=newStringTokenizer(log);

Stringdcode=sto.nextToken();

booleaninputwrite=true;

intdnum=1;

if(sto.hasMoreTokens())

try{

inttempnum=Integer.parseInt(sto.nextToken());

if(tempnum>0){dnum=Integer.parseInt(sto.nextToken());}

elseinputwrite=false;

}catch(NumberFormatExceptione){

JOptionPane.showMessageDialog(null,"请输入数字");

inputwrite=false;

}

if(inputwrite==true){

if(myjudge.find(dcode)==-1){

Stringwrong="Can'tfind"+dcode;

JOptionPane.showMessageDialog(null,wrong);

textAdd.setText("");

}else{

intlocation=myjudge.find(dcode);

Stringdname=myjudge.judgeData[location].getName();

doubledprice=myjudge.judgeData[location].getPrice();

mydata.add(dcode,dname,dprice,dnum);

textArea.setText("");

for(inti=0;i

textArea.insert("商品"+(i+1)+"编号:

"

+mydata.productData[i].getCode()+"商品名称:

"

+mydata.productData[i].getName()+"商品价格:

"

+mydata.productData[i].getPrice()+"元/单位"

+mydata.productData[i].getNum()+"个

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2