超市收银系统(Java语言实现)

合集下载

基于JAVA的C丨S架构超市收银系统

基于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_课程设计_超市管理系统—报告含代码

软件学院课程设计报告书课程名称JAVA课程设计设计题目超市收银程序(含会员管理)专业班级计HR08-4学号姓名指导教师2010年12月1.设计时间2010.12.20~2010.12.312.设计目的《面向对象程序设计课程设计》的教学目的是培养学生软件系统开发方案综合设计能力和创新精神。

3.设计任务在教师的启发和引导下,学生能自主地进行科技文献检索,进行方案设计、编写代码、调试程序,对方案进行综合分析与评述等。

10、超市收银程序。

要求如下:(1)使用图形用户界面实现。

(2)由收银员输入顾客的会员卡卡号(若有卡)、所购商品的货号等。

从数据库中取出相关商品的价格信息,再把这些信息返回给收银台,计算出该顾客所购商品的总价格。

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

(4)所有持卡顾客的消费商品情况交数据库存储以供查询。

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

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

(6)系统使用的GUI组件不得少于5种,越全面越好,但要合适(和谐界面)4.设计内容4.1概要设计4.1.1主窗口类本软件全部功能采用GUI设计,直观方便,功能简单全面。

主类为EventDemo类,用来设计了主窗口。

主窗口提供四个按钮,来激活4个主要类(主要功能)分别为:shangpin 、huiyuaninsert、MySQLCha、zhangwuguanli四个类对应“物品消费”、“会员添加”、“会员信息”、“账务管理”。

4.1.2物品消费功能主要功能完成用户填入商品编号,软件查询数据库返回商品价格,然后将商品价格累积,并在GUI窗口显示。

提供结账按钮,触发下属结账类。

4.1.2.1结账类功能通过GUI窗口显示应收款,用户收取实收款,填入实收款text,程序会自动计算出找零,并显示。

java课程设计超市收银系统

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 收银项目描述

java 收银项目描述

java 收银项目描述Java 收银项目描述Java 是一种高级编程语言,具有跨平台、面向对象、语法简洁等诸多特点,广泛应用于各种软件开发领域。

收银项目是指通过计算机软件实现收款、找零等现金交易操作的系统。

Java 收银项目基于 Java 语言开发,采用 MVC(Model-View-Controller)模式组织代码结构,拥有良好的可读性、可扩展性、可维护性。

Java 收银项目的主要功能包括:1. 商品管理:管理员可以添加、修改、删除商品,包括商品名、价格、库存等信息。

2. 员工管理:管理员可以添加、修改、删除员工,包括姓名、联系方式等信息。

3. 销售管理:收银员登录后可以浏览商品、修改购物车、结算、生成销售记录等操作。

管理员可以查看所有销售记录,包括商品名称、数量、金额、销售员等信息。

4. 库存管理:管理员可以查看当前库存、商品进货记录等信息。

5. 报表管理:管理员可以生成各种销售、库存、员工等方面的报表,帮助管理者更好地了解业务状况。

Java 收银项目的优点包括:1. 层次清晰:MVC 模式将数据、业务逻辑、视图分离,降低了代码复杂性,增强了代码可读性和可维护性。

2. 扩展方便:项目具有良好的可扩展性,可以方便地添加新的功能,修改业务逻辑。

3. 代码复用:Java 提供了许多开源的类库和工具,开发者可以轻松使用这些类库,提高代码复用率和开发效率。

4. 跨平台性:Java 代码可以在多种操作系统和硬件平台上运行,具有良好的跨平台性。

5. 安全性:Java 具有较强的安全性,可以通过数字签名、加密等方式保护代码和数据的安全。

Java 收银项目的开发过程包括需求分析、设计、编码、测试等多个阶段。

在开发过程中应注意代码规范、注释、异常处理、安全等方面的问题,保证项目的质量和可靠性。

总之,Java 收银项目是一个功能完备、易于维护、安全可靠的软件系统,有望得到广泛应用和推广。

超市管理系统java程序设计报告(图文完整)

超市管理系统java程序设计报告(图文完整)

超市管理系统java程序设计报告(图文完整)xx学院程序设计课程设计(C)报告项目名称:超市项目管理系统学生姓名:xxx学号: xxx班级: xxx指导老师: xxx日期: xxx(2) 数据需求需要输入什么类型的数据、什么值的数据,即数据模型的建立。

是由项目内容及软件设计者决定的。

以数据描述的清晰、数据意义的完整为目标。

出库表:入库表:收银员表:商品信息表:会员表:(3) 功能需求系统应该具有哪些功能,与项目描述以及设计者的理解直接相关。

对一般的管理软件来说,必须包括数据的输入输出、增删改查、排序、统计等功能。

请按实际项目需求填写用例。

一般按动作(动词)结果(名词)的形式书写。

1、登录功能:Action1:输入库里存有的用户和密码,输入正确,登录成功,输入错误,登录失败;Action2:点击重置按钮,刷新用户名和密码。

2、主窗体菜单功能Action1:下拉菜单模块,菜单模块里面有子菜单。

分为,收银员信息、收银员信息管理;商品、商品信息管理;商品出入库管理,商品交易管理;会员信息菜单、会员信息管理菜单;设置菜单、联系我们选项、退出系统选项。

3、收银员添加信息功能Action1:填入收银员的编号、姓名、密码,信息入库,并可做登录名和密码。

4、收银员信息排列Action1:可以列出收银员名单、点击表格某一行,可以显示对于的信息填入对应的文本里。

5、收银员的信息查询Action1:可以通过对姓名的模糊查询,查询到收银员。

6、收银员信息的修改Action1:通过修改对应得文本框,然后点击修改按钮完成信息修改。

7、商品添加信息功能Action1:填入商品的编号、名称等,信息入库,并可做登录名和密码。

8、商品信息排列Action1:可以列出商品名单、点击表格某一行,可以显示对于的信息填入对应的文本里。

9、商品的信息查询Action1:可以通过对商品名称的模糊查询,查询到商品。

10、商品信息的修改Action1:通过修改对应得文本框,然后点击修改按钮完成信息修改。

超市收银系统(Java语言实现)

超市收银系统(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课程设计超市收银系统

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超市收银系统课程设计

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 的基本使用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

rightPanel=new JPanel(); showTime=new JTextField(12); rightPanelSon=new JPanel(); showTime.setEditable(false); rightPanel.setLayout(new BorderLayout(1,1)); rightPanel.add(showTime,BorderLayout.NORTH); rightPanel.add(BorderLayout.CENTER,rightPanelSon); this.add(leftPanel); this.add(rightPanel); this.setSize(600,500); this.setLocation(500,127); this.setVisible(true); } /** * * @return 返回文件中的记录 */ @SuppressWarnings({ "unchecked", "static-access" }) public static HashMap<ClubCard,Customer> getHashMap(){ File file=Checkstand.file; if(file.length()==0) { checkstand=new Checkstand(); checkstand.definedForSystemWindow(); } else try { ObjectInputStream in=new ObjectInputStream(new FileInputStream(file)); checkstand.cardAndCustomer=(HashMap<ClubCard,Customer>)in.readObject(); in.close(); } catch(IOException e){System.err.println(e.getMessage());} catch(ClassNotFoundException e1){System.err.println("文件未找到!");}
return checkstand.cardAndCustomer; } /** * 保存柜台信息 对象串行化 */ public static void AddCheckstandInfo() { try { if(c==null) c=new Checkstand(); ObjectOutputStream out=new ObjectOutputStream(new FileOutputStream(file)); out.writeObject(c); out.close(); } catch(IOException e){System.out.println(e.getMessage());} } /** * 从文件中读取柜台信息 对象串行化 * @throws ClassNotFoundException */ public static void readCheckstandInfo() { try { ObjectInputStream in=new ObjectInputStream(new FileInputStream(file));null) c=(Checkstand)o; else c=new Checkstand();//在此处生成柜台对象再合适不过来 in.close(); } catch(IOException e){System.out.println(e.getMessage());} catch(ClassNotFoundException e1){System.out.println("文件未找到!");} } public static void main(String[] args) { new SystemWindow(); } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub
JPanel rightPanel; JTextField showTime; JPanel rightPanelSon; public SystemWindow() { super("欢迎使用超市收银系统"); file=new File("checkstand.dat"); SystemWindow.readCheckstandInfo();//读取柜台信息 Goods.getSurplusFromFile();//这一步很重要! good=new Goods(); time=new Timer(1000,this);//时间 time.start(); this.setLayout(new GridLayout(1,2,4,4)); leftPanel=new JPanel(); leftPanel.setLayout(new GridLayout(6,1,4,4)); member=new JButton("会员服务"); common=new JButton("普通服务"); findMemberInfo=new JButton("查找会员信息"); findAllMemberInfo=new JButton("查看所有会员信息"); findGoodsSurplus=new JButton("查看商品剩余量"); findSaleroom=new JButton("查看柜台销售额"); member.addActionListener(this); common.addActionListener(this); findMemberInfo.addActionListener(this); findAllMemberInfo.addActionListener(this); findGoodsSurplus.addActionListener(this);
package cashier; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.Timer; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; @SuppressWarnings("serial") public class SystemWindow extends JFrame implements ActionListener{ static Checkstand checkstand;//此变量单纯为了保存读至保存 HashMap 文件中的数据, 相 当于一个中间媒介 /** * 供显示的商品信息 */ Goods good; /** * 保存收银台信息的文件 */ static File file; static Checkstand c;//放在此处并不和前面的 checkstand 相矛盾,此变量是为了读取、保存 柜台信息 static Long number;//输入的卡号
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);
相关文档
最新文档