Java项目之超市收银系统分析-1
基于JAVA的C丨S架构超市收银系统

注:运行需要两台电脑处于同一局域网内南京信息工程大学实验(实习)报告实验(实习)名称需求分析实验(实习)日期 2013.11.30 得分指导教师李振宏专业软件工程年级三班次 1 姓名王琢学号 28 一、实验目的1.通过对超市收银系统的相关需求的分析,掌握需求分析的方法和过程;2.掌握需求分析相关文档的组织规范;3. 完成一个小型超市收银系统的需求分析。
4. 本系统的需求分析,总体设计以及详细设计编码,均由王琢本人独立完成。
二、实验准备1.熟悉需求分析的方法和过程。
2.对超市收货系统的应用领域进行调查与分析。
三、实验要求完成超市收银系统的需求分析,提交实验报告四、实验内容:1.项目背景通过软件开发的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能力。
具体如下:1.学习和实践在分析和设计计算机应用系统所需要的知识,包括面向对象的系统分析与设计,编码和测试方面的知识;2.熟悉自动化的软件开发工具eclipse,并将其运用于软件开发的过程中去;3.进一步加强和提高软件工程文档的编写能力。
2.任务概述2.1产品的描述本系统目标是实现超市售货系统所需的各种基本功能,包括客户端和服务器两部分:客户端的主要功能在于通过接收一个七位的条形码数字信息,向服务器发出查询对应商品号的商品信息,然后接收由服务器传回的数据包并解码显示在界面上为一条商品信息,当所有商品扫描完成以后,将商品信息统一打包向服务器发出结算请求,当商品总价值超过两百元是还提供办理会员的服务,对于已经是会员的顾客将享有9折的购物折扣。
服务器的主要功能是接收客户端传送来的请求,并与数据库直接相连,操作数据库取出或修改所需数据,然后将结果发送回客户端,并且能够实时显示数据库以及自身的运行状态。
2.2用户的特点本系统用户分为两部分,其一是客户端用户,主要是超市的售货员对于客户端软件的使用,没有技术上的要求;其二是服务器端技术人员,负责对服务器进行适当的维护,需要一定的计算机基础。
java课程设计超市收银系统

java课程设计 超市收银系统一、课程目标知识目标:1. 掌握Java面向对象编程的基本概念,包括类、对象、继承、封装和多态;2. 学会使用Java集合框架,如List、Map等,存储和管理超市商品数据;3. 理解异常处理机制,能够处理程序运行中可能出现的异常;4. 了解文件操作,实现对超市收银数据的持久化存储。
技能目标:1. 能够设计出结构合理的类和对象,建立超市收银系统的基本模型;2. 掌握使用集合框架对商品数据进行有效管理的方法;3. 学会编写异常处理代码,提高程序的健壮性;4. 通过文件操作,实现超市收银数据的存储和读取。
情感态度价值观目标:1. 培养学生的编程兴趣,激发他们学习Java的热情;2. 培养学生面对问题积极思考、分析问题、解决问题的能力;3. 增强学生的团队协作意识,培养他们在团队项目中分工合作、共同进步的精神;4. 引导学生关注信息技术在实际生活中的应用,认识到编程对生活的影响。
本课程针对高中年级学生,他们在之前的学习中已经具备了一定的Java基础,能够理解面向对象编程的基本概念。
通过本课程的学习,使学生能够将所学的Java知识应用于实际项目中,提高他们解决实际问题的能力。
在教学过程中,注重理论与实践相结合,鼓励学生动手实践,培养他们的编程兴趣和团队协作能力。
课程目标的设定旨在使学生在掌握Java编程技能的同时,提升他们的情感态度价值观。
二、教学内容1. 面向对象编程基础:- 类的定义与使用- 对象的创建与访问- 封装、继承和多态的概念与应用- 课本章节:第三章 面向对象编程基础2. Java集合框架:- List、Set、Map接口及其实现类的使用- 集合框架在超市收银系统中的应用- 课本章节:第五章 Java集合框架3. 异常处理:- 异常的概念与分类- try-catch-finally结构的使用- 自定义异常的创建与抛出- 课本章节:第七章 异常处理4. 文件操作:- File类的基本操作- 输入输出流的使用- 对象序列化与反序列化- 课本章节:第八章 文件与输入输出5. 超市收银系统设计与实现:- 系统需求分析- 类的设计与实现- 数据存储与读取- 系统测试与优化- 课本章节:项目实战教学内容安排与进度:第一周:面向对象编程基础,完成类的定义与使用学习;第二周:面向对象编程进阶,学习对象创建、封装、继承和多态;第三周:Java集合框架学习,掌握List、Set、Map的使用;第四周:异常处理学习,了解异常分类及处理方法;第五周:文件操作学习,掌握文件读写及对象序列化;第六周:项目实战,设计并实现超市收银系统;第七周:系统测试与优化,完善项目功能。
超市收银系统(Java语言实现)

if(e.getSource()==member) { rightPanelSon.removeAll();//事先先移除 rightPanelSon 中的所有的组件 this.paintAll(getGraphics());//相当于重画的功能,此部骤相当重要 rightPanelSon.setLayout(new FlowLayout()); rightPanelSon.add(new JPanel()); rightPanelSon.add(new JPanel()); final JTextArea goodsInfo=new JTextArea();//显示商品信息 rightPanelSon.add(goodsInfo); goodsInfo.setEditable(false);//不可编辑 goodsInfo.setText(good.toString()); String id=JOptionPane.showInputDialog("请输入会员卡卡号:"); try { number=Long.parseLong(id); } catch(NumberFormatException e1){ JOptionPane.showMessageDialog(null, "输入格式有误!"); return; } final HashMap<ClubCard,Customer> c1=SystemWindow.getHashMap(); if(c1==null) { JOptionPane.showMessageDialog(null, " 会 员 信 息 不 存 在 !",null, JOptionPane.WARNING_MESSAGE); return;} else { int flag=0; Customer customer1=null; ClubCard card2 = null; for(ClubCard card:c1.keySet()) { if(number.equals(card.getId())) { JTextArea area=new JTextArea(); rightPanelSon.add(area); area.setText(c1.get(card).toString());//输出顾客信息 customer1=c1.get(card);
java课程设计超市收银系统

java课程设计超市收银系统一、课程目标知识目标:1. 让学生掌握Java语言面向对象编程的基本概念,包括类、对象、继承、封装等;2. 使学生了解超市收银系统的业务流程,理解数据存储、处理和界面设计的相关知识;3. 帮助学生掌握Java集合框架、异常处理、文件操作等基本技能。
技能目标:1. 培养学生运用Java语言设计并实现超市收银系统的能力;2. 提高学生分析问题、解决问题的能力,使其能够根据实际需求进行系统设计;3. 培养学生团队协作、沟通交流的能力,以便在项目开发过程中更好地与他人合作。
情感态度价值观目标:1. 激发学生对编程的兴趣,培养其主动学习和探究的精神;2. 培养学生具备良好的编程习惯,注重代码规范和优化;3. 增强学生的实际操作能力,使其认识到理论知识与实践相结合的重要性;4. 培养学生的创新意识,鼓励他们在项目设计中提出新思路、新方法。
分析课程性质、学生特点和教学要求,本课程将目标分解为以下具体学习成果:1. 学生能够独立完成Java面向对象编程的基础知识学习,并通过相关练习巩固;2. 学生能够根据超市收银系统的实际需求,设计合理的类和对象,完成系统架构;3. 学生能够运用所学知识,实现超市收银系统的功能模块,如商品管理、购物车、结账等;4. 学生能够针对项目进行调试和优化,确保系统的稳定性和性能;5. 学生在项目开发过程中,能够与团队成员保持良好的沟通与协作,共同完成项目任务。
二、教学内容根据课程目标,教学内容主要包括以下几部分:1. Java面向对象编程基础:- 类与对象- 继承与多态- 封装与抽象- 接口与实现2. 超市收银系统业务流程分析:- 系统需求分析- 数据存储设计- 功能模块划分3. Java核心技术应用:- Java集合框架- 异常处理- 文件操作- 图形用户界面设计4. 项目实践:- 商品管理模块- 购物车模块- 结账模块- 系统测试与优化教学大纲安排如下:1. 第1周:Java面向对象编程基础,完成相关练习;2. 第2周:分析超市收银系统业务流程,进行系统设计;3. 第3周:学习Java核心技术应用,为项目实践打下基础;4. 第4-6周:分组进行项目实践,完成各功能模块开发;5. 第7周:项目测试、优化与总结。
java超市收银系统课程设计

java超市收银系统课程设计一、课程目标知识目标:1. 理解Java面向对象编程的基本概念,掌握类和对象的定义、属性和方法的使用;2. 学会使用Java编写简单的超市收银系统,理解其业务流程;3. 掌握Java集合框架的使用,如List、Map等,实现商品信息和交易记录的存储与查询;4. 学会使用Java异常处理机制,增强程序的健壮性。
技能目标:1. 能够运用面向对象的思想分析并解决实际问题,具备一定的编程实践能力;2. 熟练使用Java编程工具,如Eclipse或IntelliJ IDEA,进行代码编写、调试和优化;3. 能够设计合理的类和接口,实现模块化编程,提高代码的可维护性;4. 学会运用常用的设计模式,如单例模式、工厂模式等,优化程序结构。
情感态度价值观目标:1. 培养学生对编程的兴趣和热情,激发主动学习和探究的精神;2. 培养学生的团队协作意识,学会与他人共同分析问题、解决问题;3. 培养学生严谨的编程态度,注重细节,追求程序的高效与稳定;4. 培养学生具备良好的信息素养,关注现实生活中计算机技术的应用与发展。
本课程针对高中年级学生,结合学科特点和教学要求,以实际应用为导向,注重理论与实践相结合。
通过本课程的学习,学生将能够掌握Java面向对象编程的基本知识,具备实际编程能力,并培养良好的情感态度价值观。
为实现课程目标,教学过程中将采用案例分析、项目驱动、分组讨论等多种教学方法,以提高学生的实践操作能力和团队协作能力。
同时,课程评估将关注学生在知识、技能和情感态度价值观方面的具体学习成果。
二、教学内容1. Java面向对象编程基础:复习类与对象的概念,构造方法,封装,继承和多态;- 教材章节:第三章《面向对象编程》- 内容:类的定义,对象的创建,访问控制符,继承,方法重写,多态。
2. Java集合框架:学习List、Map等集合接口及其实现类;- 教材章节:第五章《集合框架》- 内容:ArrayList,LinkedList,HashSet,TreeSet,HashMap,TreeMap 的基本使用。
java-超市收银系统

package software; import java.awt.*;import java.awt.event.*;import javax.swing.*;class shangpin{String SId;String Smane;int jiage;public shangpin(String a,String b,int c){SId=a;Smane=b;jiage=c;}}class huiyuan{String 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("00001","会员甲");huiyuan huiyuan2=new huiyuan("00002","会员乙");huiyuan huiyuan3=new huiyuan("00003","会员丙");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",10);shangpin shangpin2=new shangpin("002","商品2",11);shangpin shangpin3=new shangpin("003","商品3",12);shangpin shangpin4=new shangpin("004","商品4",13);shangpin shangpin5=new shangpin("005","商品5",14); 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;}}。
Java第七组综合项目-超市管理系统实验报告

Java第七组综合项⽬-超市管理系统实验报告Tianjin TianShi CollegeJava课程设计(综合项⽬⽂档)院别:专业:年级班级:学⽣姓名:指导⽼师:完成⽇期:超市管理系统院别:专业:年级班级:学⽣姓名:指导⽼师:完成⽇期:院别:专业:年级班级:学⽣姓名:指导⽼师:完成⽇期:院别:专业:年级班级:学⽣姓名:指导⽼师:完成⽇期:院别:专业:年级班级:学⽣姓名:指导⽼师:完成⽇期:院别:信息科学与⼯程学院专业:计算机科学与技术班级: 2019级计科3班学⽣姓名:刘宇杰陶然覃世煜指导⽼师:李⼩红⼆〇⼆⼀年七⽉⽬录1 绪论 (1)1.1 项⽬概述 (1)1.2 项⽬意义 (1)2 开发⼯具和相关技术简介 (2)2.1 Eclipse简介 (2)2.2 Java语⾔介绍 (2)2.3 MySQL简介 (2)2.4 JDBC技术简介 (3)3 系统需求分析 (4)3.1 系统可⾏性分析 (4)3.2 系统需求分析 (4)3.3 组内成员分⼯ (4)3.4 项⽬进度安排 (5)4 系统设计 (6)4.1 系统设计 (6)4.2 数据库设计 (6)5 系统实现 (8)5.1 管理员登录界⾯实现 (8)5.2 管理⽤户信息界⾯实现 (8)6 系统测试 (10)7 结论和⼼得 (11)1 绪论1.1 项⽬概述本项⽬主要实现⼀个超市管理系统,本系统具有⼀个⽤户注册和登录的实现功能,并具有物品增删查改功能和⼀个⽇志功能。
1.2 项⽬意义本项⽬主要意义是实现信息管理化统⼀收集,项⽬界⾯整洁,具有多种功能,与⽤户进⾏交互都⼗分简洁⽅便,占⽤内存低,对硬件要求极低。
2 开发⼯具和相关技术简介本项⽬是超市管理系统。
开发环境:Eclipse;开发语⾔:Java语⾔;开发技术:JDBC等。
本章将对开发⼯具和相关技术进⾏简单介绍。
2.1 Eclipse简介eclipse-galileoEclipse 是⼀个的、基于 Java 的可扩展。
java超市管理系统课程设计分析报告

java超市管理系统课程设计报告————————————————————————————————作者:————————————————————————————————日期:湖南文理学院课程设计题目:超市管理系统系别计算机科学与技术班级计科12102学生姓名罗巍杨欢杨沁铠唐振学号 201217010223指导教师谭文学课程设计进行地点:第三实验楼A617任务下达时间: 2014 年5月21日起止日期:2014年5月21日起——至 2014年6月21日止摘要随着小型超市规模的发展不断扩大,商品数量急剧增加,有关商品的各种信息量也成倍增长,传统的人工记忆方式也慢慢的无法适应形势的变化。
随着信息技术的发展,计算机已被广泛的用于社会的各个领域,成为推动社会发展的技术动力。
而在计算机应用中,软件的作用十分突出,软件已经发展成为信息技术的核心,主导着信息产品的开发和信息技术市场的进一步的开拓。
软件产业已成为社会信息化进程中的一个战略性产业。
在软件技术的应用中软件的开发技术尤其是应用型软件产品的开发技术成了重中之重。
不断开发适应用户需求、市场需要的新型软件产品。
随着社会的发展,软件也在不断的更新换代。
由于有些超市里对商品的进货、售出及商品的基本信息等的一些繁琐处理都是通过手工进行记载并进行处理的,对商品信息的处理工作量特别大,不仅浪费大量的人力物力,而且还很容易出错,更重要的是为了方便顾客,超市需要时时刻刻对商品对各种信息进行统计分析。
一直以来人们使用传统人工的方式管理超市的各项工作, 这种管理方式存在着许多缺点, 如: 效率低、保密性差, 另外时间一长, 将产生大量的冗余文件和数据, 这给查找、统计、更新和维护工作都带来了很大的困难。
然而大型的超市管理系统功能过于强大而造成操作繁琐降低了小超市的工作效率。
如果有这样一套完整的小型超市管理系统软件,只需点击几下鼠标就可完成所需操作,那样就会大大的提高超市员工的工作效率和管理水平,并能进一步提高超市的工作效率并使超市实施规范化管理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3、用户层
主要是将用来显示的界面设计和事件管 理写到一个类中进行设计。
项目架构搭建-1
二、搭建过程
1. 新建Java项目。 2. 添加项目需要的第三方jar文件 。 3. 新建图片包,并添加图片素材。
项目架构搭建-2 三、项目公共类
1、数据源类:主要是负责项目中数据库的Connection对象的建立与相关 JDBC对象管理。 src -> com.tsing.base.dao -> DBConnection.java 2、BaseDAO类:主要封装JDBC接口和常用的数据库操作,提供给其它DAO组 件继承。 src -> com.tsing.base.dao ->BaseDAO.java 3、日期工具类:主要负责项目中日期对象的各种格式转换。 src -> com.tsing.base.util ->DateUtil.java
create table Goods --商品表 ( GId nvarchar(20) primary key,--条形码 CId int foreign key references GoodsClass(CId),--商品所属种类 create table GoodsPrivoder --商品供货商 商品名称 create table InStore --进货单(采购单) GName nvarchar(50),-( ( GSpec nvarchar(50),--商品规格 GPId int identity(1,1) key, InStoreId nvarchar(20) primary key,--进货流水号 GUId primary int foreign key references GoodsUnit(GUId),-商品单位 GPName nvarchar(20),-供货商名称 GMinNumber int,--报警数 GId nvarchar(20) foreign key references Goods(GId),GPPhone nvarchar(20),-电话 SalePrice money,--销售价格 GPId int foreign key references GoodsPrivoder(GPId), GPAddress nvarchar(50),-地址 会员价格 InStoreTime datetime,--进货时间 VipPrice money,-GPLinkman nvarchar(20),-联系人 InStoreAmount int,--进货数量 GAmount int --库存数量 ) ) PurchasePrice money, --进货价格 )
数据库脚本-2
create table ShopVip --会员表 ( VId nvarchar(20) primary key,--会员卡号 VName nvarchar(20),--姓名 VPhone nvarchar(20),--电话 ConsumeSum money,--消费总金额 ConsumeScore int,--积分 ConsumeCount int,--消费次数 ConsumeRate money,--积分率 VBirthday datetime,--生日 VBalance money --余额 )
2 3 4 5 6 7 8
供货管理 会员管理 用户管理 单位管理 类别管理 系统管理 收银
商品管理
商品信息维据
商品进货管理
供货管理
供货商管理
1、供货商添加 2、供货商列表与查询 3、供货商修改 4、供货商删除
会员管理
会员管理
1、会员显示与查询 2、会员添加 3、会员修改 4、会员冲值 5、会员删除 6、会员积分兑奖
单元测试
单元测试 BUG修正
数据库设计-1
数据库分析
1、系统实体 商品、会员、供货商、用户(管理员、收银员) 2、系统概念模型 商品、商品类型、商品计量单位 供货商、采购记录 会员、会员充值记录 收银员、销售订单、销售订单明细
数据库设计-2
销 售 明 数据库表设计 细 表
供 货 商 表
数据库设计
进 货 表充 值 记 录 表 Nhomakorabea数据库脚本-3
create table Sell --销售单 ( SId nvarchar(20) primary key,--销售流水号 VId int,--会员卡号,为空则是非会员购买 STime datetime,--销售时间 SCountPrice money,--销售总金额 SCount int, --销售总数(种类) UId nvarchar(10) foreign key references superMarketUser(Uid),--收银员 ) create table SellDetail --销售明细 ( SellDetailId int identity(1,1) primary key, SId nvarchar(20) foreign key references Sell(SId),--销售流水号 GId nvarchar(20) foreign key references Goods(GId),--商品编号 SQuantity int, --单品数量 SSalePrice money --销售单价 )
用户管理
用户管理
单位管理
单位管理
类别管理
类别管理
系统管理
系统设置与统计管理
系统收银
顾客收银管理
系统架构设计
一、项目结构
按分层设计与组件隔离原则主要分为 以下几层。 1、公共层
主要将数据源类、BaseDAO类、工具类 单独设计出来,作为公共类进行共享。
2、DAO层
主要将对数据库的操作,添加、修改、 删除、查询写到一个独立类中方便统一管理。
收银管理
数据库脚本-4
用户管理
create table SuperMarketUser --用户表 ( UId nvarchar(10) primary key,--账号 UPassword nvarchar(10),--密码 UName nvarchar(20),--真实姓名 URole nvarchar(10),--角色(两种:管理员、收银员) )
实现商品管理、销售业绩盘点、库存预警等功 能。 一般收银用户,进行收银、盘点等功能,管 理员可对库存、入库、用户设置、查询汇总等 能。
系统设计
系统预览
系统开发环境
操作系统:windows XP。 Java虚拟机:JDK1.6 开发工具:MyEclipse6.5 IDE插件:使用jigloo插件进行图形界面设计 数据库服务器:MS SQLServer2005
项目架构搭建-4
4、事件响应与处理过程 用户界面
注册事件监听 //查询监听 jButton3.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { selectGoodsByWord(); } }); 事件处理 /** * 按条码编号查询商品 */ private void selectGoodsByWord() { //处理查询。【代码略】 }
一学期项目实训
超市收银系统(1)
项目背景
超市系统发展背景
随着信息化应用的普及和超市商品种类不 断增加,人工管理超市也将越来越困难。
商品品种繁多,管理起来非常困难。 无法及时了解最新销售的商品库存信息。 供应商过多,无法及时有效管理。 工作效率低下,出错概率高,管理成本高。
系统分析
系统概要设计
销 售 表
商 品 表
会 员 表
用 户 表 单 位 表
商 品 类 型
数据库脚本-1
create table GoodsClass --商品类别 create table GoodsUnit --商品单位 ( ( CId int identity(1,1) primary key, GUId int identity(1,1) primary key, 数据库表创建。 CName nvarchar(40), GUName nvarchar(10) ) ) 注意:先创建主键表,再创建外键表。
系统主要功能模块
主要功能模块
序号 功能名称 描述
1
商品管理
主要对超市销售商品进行管理与维护,对不再销售 的下架,对新进货的商品进行添加,对新到货的商 品录入库存等操作。
主要是对超市商品供货商进行维护设置。 主要对超市会员进行管理,同时对会员进行积分兑 换、会员卡冲值等操作 主要对超市系统的使用用户进行管理,主要包括创 建新用户、修改用户信息等,主要是管理员来设置 管理员功能,主要是管理超市商品的计量单位。如: 个、支、袋、箱等。 主要对超市销售的商品进行分类设置,以便能更好 的对不同的商品进行分类销售和管理。 主要是统计、查询、汇总功能。
项目架构搭建-3 三、项目功能模块结构
1、XXX_DAO类:主要是负责该功能与数据库的常用操作,如查询、添加、修 改、删除等,继承BaseDAO类。 src -> com.tsinghua.goodsmanager.dao -> GoodsDao.java 2、model类:主要是负责封装数据,在用户层和DAO层进行数据传输,为属 性提供getter与setter封装方法。 src -> com.tsinghua.goodsmanager.model ->GoodsBean.java 3、用户窗体类:主要用户界面数据显示,并提供操作维护按钮。 src ->com.tsinghua.goodsmanger.jpanel ->GoodsMangerPanel.java
会员管理
create table VipSaveMoney --充值记录 ( vsid int identity(1,1) primary key, VId nvarchar(20) foreign key references ShopVip(VId), VTime datetime, --缴费时间 VMoney money, --缴费金额 UId nvarchar(10) foreign key references superMarketUser(Uid)--充值员 )