《JAVA课程设计超市收银系统课程超市系统超市收银javaJAVA课程设计Javajava吧》由会员分享,可在线阅读,更多相关《JAVA课程设计超市收银系统课程超市系统超市收银javaJAVA课程设计Javajava吧(30页珍藏版)》请在金锄头文库上搜索。
1、软 件 学 院课程设计报告书 2011 年 6 月目录1 设计时间32 设计目的33设计任务33.1任务说明33.2系统目标33.3使用范围34 设计内容34.1界面构建34.2详细设计34.2.1模块设计44.2.2运行调试44.2.3部分源程序85 总结与展望28参考文献29成绩评定291 设计时间2011年6月11日-2011年6月15日2 设计目的通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。3设计任务3.1任务说明设计出一个超市收银程序(1)使用
2、图形用户界面实现。信息返回给收银台,计算出该顾客所购商品的总价格。(3)每天营业结束把该收银台的销售总额进行统计汇总(要求包括商品种类、数量、销售总额、结账人次等信息,其余可自行丰富)并存储在数据库中。(4)所有持卡顾客的消费商品情况存储到文件以供查询。(5)对没有卡的消费情况不记录该顾客的消费情况等个人信息。如果一个未持卡顾客一次购物满200元,结完账后系统提示可为其发放一张会员卡3.2系统目标该软件开发的用途是用来方便超市的收银管理,提高办事效率。3.3使用范围本程序用于超市对会员和非会员的销售管理4 设计内容 4.1界面构建为了便于各种操作,软件采用多窗口的模式。用户可在不同窗口进行相应
3、操作。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部分源程序登录import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.BufferedReader;import java.io.FileReader;import java.io
4、.IOException;import java.util.StringTokenizer;import javax.swing.*;public class land public static void main(String args) landframe frame = new landframe();frame.setTitle(收营员登陆);frame.setLocation(300,300);frame.setSize(270, 170);frame.setVisible(true);class landframe extends JDialog implements Actio
5、nListener public landframe() label1 = new JLabel(JAVA超市收营系统 请登陆);label2 = new JLabel(用户名:);label3 = new JLabel(密码:);hbox1 = Box.createHorizontalBox();hbox2 = Box.createHorizontalBox();vbox = Box.createVerticalBox();jf1 = new JTextField();JPF= new JPasswordField();JPF.addActionListener(this);land = n
6、ew JButton(登陆);land.addActionListener(this);panel1 = new JPanel();panel2 = new JPanel();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.createVertic
7、alStrut(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);public void actionPerformed(ActionEvent evt) Object source = evt.getSource();if (source = land | source = JPF)
8、/ 登陆按纽及第二个文本输入框ENTER功能实现String a = , b, read;boolean denglusuccees = false;try FileReader fr = new FileReader(denglu.txt);BufferedReader br = new BufferedReader(fr);while (read = br.readLine() != null) StringTokenizer sto = new StringTokenizer(read);a = sto.nextToken();b = sto.nextToken();if (jf1.ge
9、tText().equals(a) & JPF.getText().equals(b) denglusuccees = true;break;/ 验证登陆员号码及密码 catch (IOException ie) System.err.println(ie.getMessage();if (denglusuccees = true) setVisible(false);mainview mw = new mainview();mw.setTitle(a + 为您服务);mw.setSize(850, 500);mw.setLocation(200, 180);mw.setVisible(tru
10、e); else jf1.setText();JPF.setText();JOptionPane.showMessageDialog(null, 非法用户);private JLabel label1, label2, label3;private Box hbox1, hbox2, vbox;private JTextField jf1;private JPasswordField JPF;private JButton land;private JPanel panel1, panel2;物价计算public class draw double a;double b;String c;pu
11、blic draw(double fnum, double all, String information) / 构造函数a = fnum;/ 获得指定商品当销售额b = all;/ 获得当天总销售额c = information;/ 获得指定商品的编号DrawJDialog frame = new DrawJDialog();frame.setSize(400, 300);frame.setLocation(400, 300);frame.setVisible(true);class DrawJDialog extends JDialog implements ActionListener/
12、 界面及功能实现JButton shut;JTextArea one = new JTextArea();DrawPanel panel = new DrawPanel();shut = new JButton(关闭);shut.addActionListener(this);double rate = 100 * a / b;DecimalFormat df = new DecimalFormat(#.00);rate = Double.parseDouble(df.format(rate);/ 格式化小数显示one.setText( + c + n + 占今天销售额 + rate + %)
13、;panel.add(one);panel.add(shut);Container contentPane = getContentPane();contentPane.add(panel);setTitle(销售情况);public void actionPerformed(ActionEvent evt) Object source = evt.getSource();setVisible(false);class DrawPanel extends JPanel/ 画饼图public void paintComponent(Graphics g) g.clearRect(30, 40, 150, 150);double x1 = a;double x2 = b;int angle;super.paintComponent(g);angle = (int) (360 * x1 / x2);g.setColor(Color.blue);g.drawArc(30, 100,