超市收银程序(共14页).doc
精选优质文档-倾情为你奉上软 件 学 院课程设计报告书课程名称 面向对象程序设计 设计题目 超市收银程序 专业班级 学 号 姓 名 指导教师 2011年6月1 设计时间 2011.6.6-2011.06.102 设计目的面向对象程序设计是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。3设计任务超市收银程序(1)使用图形用户界面实现。(2)由收银员输入顾客的会员卡卡号(若有卡)、所购商品的货号等。从数据库中取出相关商品的价格信息,再把这些信息返回给收银台,计算出该顾客所购商品的总价格。(3)每天营业结束把该收银台的销售总额进行统计汇总(要求包括商品种类、数量、销售总额、结账人次等信息,其余可自行丰富)并存储在数据库中。(4)所有持卡顾客的消费商品情况存储到文件以供查询。(5)对没有卡的消费情况不记录该顾客的消费情况等个人信息。如果一个未持卡顾客一次购物满200元,结完账后系统提示可为其发放一张会员卡。4 设计内容 4.1 概要设计 超市收银系统4.1.1 体系结构设计 帐目结算商品管理会员管理消费者消费 4.2功能模块设计4.2.1 功能说明4.2.1.1消费者消费 普通消费者消费在超市收银的首界面显示,输入消费者购买商品的编号以及数量,算出消费总金额,如果消费者单次消费的金额达到了200元,系统提示此消费者可以成为会员。 会员消费在首界面输入会员卡号,然后显示会员姓名。4.2.1.2账目结算在本窗口中显示超市在该结账机上的当天的销售总额(包括会员消费总额以及非会员消费总额),同时还显示当天在该机上的出售的商品的情况。4.2.1.3会员管理如果消费者单次消费的金额达到了200元,系统提示此消费者可以成为会员,并且录入会员基本信息。4.2.1.4商品管理 输入商品编号会在面板内提示相应的价格。4.3 程序运行与调试4.3.1 运行界面 主界面 确定会员以及商品价格 消费总额满200发会员卡一张 总结全天账单 4.3.2 程序代码及解释import java.awt.*; import java.awt.event.*;import javax.swing.*;class shangpinString SId;String Smane;int jiage;public shangpin(String a,String b,int c)SId=a;Smane=b;jiage=c;class huiyuanString HId;String Hname;public huiyuan(String a,String b)HId=a;Hname=b;public class chaoshi extends JFrame static int key=0; /会员static int sum1=0; /总消费static int sum2=0; /当天合计static int huiyuansum=0; /会员人数static int Spinsum1=0; /商品1合计 static int Spinsum2=0; /商品2合计static int Spinsum3=0; /商品3合计static int Spinsum4=0; /商品4合计static int Spinsum5=0; /商品5合计public static void main(String agrs)JFrame frame =new JFrame("超市");frame.setSize(400,250);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Container c=frame.getContentPane(); c.add(pan(); frame.setVisible(true);/向窗口中添加面板和按钮static JPanel pan ()JPanel panel=new JPanel();JPanel part1=new JPanel();part1.add(new JLabel("会员卡号:");final JTextField text1=new JTextField();text1.setHorizontalAlignment(JTextField.RIGHT);text1.setColumns(11);JButton button1=new JButton("确定");part1.add(text1); part1.add(button1);part1.setVisible(true);final JLabel JLabel00 =new JLabel("非会员");part1.add(JLabel00); panel.add(part1);JPanel part2=new JPanel();part2.add(new JLabel("商品代号:");final JTextField text2=new JTextField();text2.setHorizontalAlignment(JTextField.RIGHT);text2.setColumns(15);JButton button2=new JButton("确定");part2.add(text2); part2.add(button2);panel.add(part2);JPanel part3=new JPanel();final JLabel JLabel0=new JLabel(" ");final JLabel JLabel1=new JLabel("000");final JLabel JLabel2=new JLabel("0000");part3.add(new JLabel("商品名"); part3.add(JLabel0);part3.add(new JLabel("商品价格"); part3.add(JLabel1);part3.add(new JLabel("元");part3.add(new JLabel("总价格"); part3.add(JLabel2);part3.add(new JLabel("元");part3.add(new JLabel(" "); panel.add(part3);JPanel part4=new JPanel();JButton button3=new JButton("结账");JButton button4=new JButton("总汇"); part4.add(button3);part4.add(new JLabel(" ");part4.add(button4); panel.add(part4);button1.addActionListener(new ActionListener() huiyuan huiyuan1=new huiyuan("001","小李");huiyuan huiyuan2=new huiyuan("002","小张");huiyuan huiyuan3=new huiyuan("003","小王"); /添加时间监听public void actionPerformed(ActionEvent e) String kahao=text1.getText(); if(kahao.equals(huiyuan1.HId) JLabel00.setText(huiyuan1.Hname); key=1; if(kahao.equals(huiyuan2.HId) JLabel00.setText(huiyuan2.Hname); key=1; if(kahao.equals(huiyuan3.HId) JLabel00.setText(huiyuan3.Hname); key=1;); button2.addActionListener(new ActionListener() shangpin shangpin1=new shangpin("001","商品1",50);shangpin shangpin2=new shangpin("002","商品2",100);shangpin shangpin3=new shangpin("003","商品3",30);shangpin shangpin4=new shangpin("004","商品4",60);shangpin shangpin5=new shangpin("005","商品5",200);/添加时间监听public void actionPerformed(ActionEvent e) String shangpinhao=text2.getText(); if(shangpinhao.equals(shangpin1.SId) JLabel0.setText(" "+shangpin1.Smane); String str = String.format("%04d",shangpin1.jiage); JLabel1.setText(str); sum1=sum1+shangpin1.jiage; sum2=sum2+shangpin1.jiage; String str1 = String.format("%04d",sum1); JLabel2.setText(str1); Spinsum1+; ; if(shangpinhao.equals(shangpin2.SId) JLabel0.setText(" "+shangpin2.Smane); String str = String.format("%04d",shangpin2.jiage); JLabel1.setText(str); sum1=sum1+shangpin2.jiage; sum2=sum2+shangpin2.jiage; String str1 = String.format("%04d",sum1); JLabel2.setText(str1); Spinsum2+; ; if(shangpinhao.equals(shangpin3.SId) JLabel0.setText(" "+shangpin3.Smane); String str = String.format("%04d",shangpin3.jiage); JLabel1.setText(str); sum1=sum1+shangpin3.jiage; sum2=sum2+shangpin3.jiage; String str1 = String.format("%04d",sum1); JLabel2.setText(str1); Spinsum3+; ; if(shangpinhao.equals(shangpin4.SId) JLabel0.setText(" "+shangpin4.Smane); String str = String.format("%04d",shangpin4.jiage); JLabel1.setText(str); sum1=sum1+shangpin4.jiage; sum2=sum2+shangpin4.jiage; String str1 = String.format("%04d",sum1); JLabel2.setText(str1); Spinsum4+; ; if(shangpinhao.equals(shangpin5.SId) JLabel0.setText(" "+shangpin5.Smane); String str = String.format("%04d",shangpin5.jiage); JLabel1.setText(str); sum1=sum1+shangpin5.jiage; sum2=sum2+shangpin5.jiage; String str1 = String.format("%04d",sum1); JLabel2.setText(str1); Spinsum5+; );button3.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e)if(sum1!=0) huiyuansum+;JDialog duox=new JDialog(); JPanel duoxP=new JPanel();duox.getContentPane().add(duoxP);duox.setTitle("消费总额"); duoxP.setVisible(true);duoxP.setLayout(new GridLayout(4,1,0,0);duox.setSize(200,300); duox.setVisible(true);JPanel panel1=new JPanel(); JPanel part11=new JPanel();JPanel part12=new JPanel();String str1 = String.format("%04d",sum1); JLabel Label11=new JLabel(str1); Label11.setText(str1);part11.add(new JLabel("消费总额:");part11.add(Label11);if(key!=1)&&sum1>=200) part12.add(new JLabel("消费达200元发放一张会员卡");panel1.add(part12);panel1.add(part11); duoxP.add(panel1);key=0; sum1=0;JLabel0.setText(" "); JLabel1.setText("000");JLabel2.setText("0000"); JLabel00.setText("非会员");text1.setText(""); text2.setText(""); ); button4.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e)JDialog duox=new JDialog(); JPanel duoxP=new JPanel();duox.getContentPane().add(duoxP); duox.setTitle("消费总额");duoxP.setVisible(true);duoxP.setLayout(new GridLayout(8,1,0,0);duox.setSize(200,400); duox.setVisible(true);JPanel part21=new JPanel();JPanel part22=new JPanel();JPanel part23=new JPanel();JPanel part24=new JPanel();JPanel part25=new JPanel();JPanel part26=new JPanel();JPanel part27=new JPanel();JButton button5=new JButton("全部清零");final JLabel label21=new JLabel();part21.add(new JLabel("总消费额");String str21 = String.format("%04d",sum2); label21.setText(str21); part21.add(label21);final JLabel label22=new JLabel();part22.add(new JLabel("商品1消费量");String str22 = String.format("%04d",Spinsum1); label22.setText(str22); part22.add(label22); final JLabel label23=new JLabel();part23.add(new JLabel("商品2消费量");String str23 = String.format("%04d",Spinsum2); label23.setText(str23); part23.add(label23); final JLabel label24=new JLabel();part24.add(new JLabel("商品3消费量");String str24 = String.format("%04d",Spinsum3); label24.setText(str24); part24.add(label24); final JLabel label25=new JLabel();part25.add(new JLabel("商品4消费量");String str25 = String.format("%04d",Spinsum4); label25.setText(str25); part25.add(label25); final JLabel label26=new JLabel();part26.add(new JLabel("商品5消费量");String str26 = String.format("%04d",Spinsum5); label26.setText(str26); part26.add(label26); final JLabel label27=new JLabel();part27.add(new JLabel("消费人次");String str27 = String.format("%04d",huiyuansum); label27.setText(str27); part27.add(label27); button5.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) sum2=0; Spinsum1=0; Spinsum2=0; Spinsum3=0; Spinsum4=0; Spinsum5=0; huiyuansum=0; label21.setText("0000");label22.setText("0000");label23.setText("0000"); label24.setText("0000");label25.setText("0000");label26.setText("0000"); label27.setText("0000"); ); duoxP.add(part21);duoxP.add(part22);duoxP.add(part23);duoxP.add(part24); duoxP.add(part25);duoxP.add(part26); duoxP.add(part27);duoxP.add(button5); ); return panel;5 总结与展望 通过本次课程设计使我受益匪浅,对课堂上所学的知识有了进一步的巩固加深,本次课程设计锻炼了我各个方面的能力,对java有了更深的理解,让我学会了如何用课堂上所学的知识与实际联系起来 ,使我更灵活的运用JAVA的各项功能,加深了我对代码的熟识度和理解度,为以后奠定了良好的基础。 参考文献1 刘万军主编.面向对象程序设计.北京:清华大学出版社,20062 宛延闿等编著.实用Java程序设计教程.北京:机械工业出版社,2006 3郑莉.王行言.马素霞编著.Java语言程序设计.北京:清华大学出版社,20064丁振凡主编.Java语言实用教程.北京:北京邮电大学出版社,2005成绩评定成绩 教师签字专心-专注-专业