iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >java实现简易超市管理系统 附源码下载
  • 645
分享到

java实现简易超市管理系统 附源码下载

2024-04-02 19:04:59 645人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

java超市管理系统 1.0(含源文件,后续会继续优化~) 前言 一个月零零散散的时间学习了java,通过这次“超市管理系统”的练习,希望可以给一同开始学习java的朋友一些参考,更

java超市管理系统 1.0(含源文件,后续会继续优化~)

前言

一个月零零散散的时间学习了java,通过这次“超市管理系统”的练习,希望可以给一同开始学习java的朋友一些参考,更希望大佬们多多指点和批评~


一、确定需求

程序概述:
小型超市商品销售管理系统选择小型超市的四类商品进行管理。
这四类商品是:食品、化妆品、生活用品和饮料(四个类)。
每类商品都包含有商品名和商品利润 (其中包括商品的售价、进价、库存量)。(五个属性)
每类不同的商品还有区别于其他商品的特殊信息(子类特有属性)例如,食品有批发商,化妆品有品牌,饮料有生产厂家。

上述文字可以确定以下几点

程序要实现“增,删,改,查”这四个基本功能 + 显示利润本程序要求对四类商品进行操作,因此分类很明确,只需要创建四个类分别表示四类商品即可本程序中要求商品有(以下属性)商品名、商品利润、售价、进价、库存量(我们当然可以额外加入一个属性:商品id,以实现更加明确的equals比较,后文会提及)。本程序中要求对于不同类的商品还要有自己特有的信息(食品有批发商,化妆品有品牌,饮料有生产厂家)

通过以上内容,我们大概对这个程序有了初步的想法和思路,下面我们深入分析一下需要哪些类以及哪些方法

二、确定类、接口、方法实现

1.确定类

上文提及到:我们需要定义四个类分别表示四类商品,那么我们在写之前是否可以从四个类抽取它们相同的特点(属性)来引入继承的思想呢?

显然是可以的,我们可以定义一个商品类Wares作为父类,(并且使用多态来切换父类引用的不同指向)Wares父类包含了四个类商品的共性(具有商品名、售价、进价、库存量、商品编号id这五个属性),而其子类当然就是食品Food、化妆品Cosmetic、生活用品DailyUsing和饮料Drinking,这样程序中的类就确定下来了

我们可以再深入思考一下:Wares可以是普通类、可以是抽象类,我们如何去选择呢?

其实两者在功能实现上都是可以的,但是普通类实现接口的时候,是一定要重写接口中每一个方法的,而抽象类却不需要;况且Wares是四类商品的父类,我们在对商品进行操作的时候,只需要操作其子类的对象即可,没有必要实例化Wares对象,因此我们选择将Wares定义为抽象类。

关于四个子类:食品类Food、饮料类Drinking、化妆品类Cosmetic、生活用品类DailyUsing的确定

四个子类只需要继承父类Wares即可,共性属性自然而然的继承了下来,特性属性在每个类中单独编写即可。


//Wares类中的属性
//商品名字
private String name;
//商品编号
private int id;
//商品进价
private double inPrice;
//商品售价
private double outPrice;
//库存量
private int Count;

注:Wares及其子类的属性我们最好都设为私有属性,再去通过settergetter方法进行存取,养成封装的好习惯~

2.确定接口

商品类Wares会包含所以商品类及其子类所共有的静态特征(属性)和对商品的动态操作(方法),属性在类中一一初始化即可,但是方法我们也要在此类中一一写出方法体吗?

我们可以利用接口,把我们程序所需要的方法都一一声明到接口内,不需实现,只需等待父类Waresimplement接口,再让其子类中对接口内的方法一一实现(重写)即可

3.确定方法

下面我们来根据程序需求来确定方法(需求:增删改查、显示利润)

我们还可以加入“遍历所有商品”功能,这样还可以在程序调试的时候,判断是否可以真正实现增删改查功能,起到验证作用

因此我们确定下来了有以下几个方法:


public interface Operations {
 
 void addWareInfo(ArrayList<Wares> arrayList);
 
 void printWareInfo(ArrayList<Wares> arrayList);

 
 void findWareInfo(ArrayList<Wares> arrayList);
 
 void countWarePrice(ArrayList<Wares> arrayList);
 
 void delWareInfo(ArrayList<Wares> arrayList);
 
 void updateWareInfo(ArrayList<Wares> arrayList);
}

三、敲代码前再分析一波~

1.重写equals()吗?

重写equals()的目的是用于比较两个不同对象在其本身内容相同时,希望equals方法判定结果是true而非false,这时我们需要重写equals()

本程序我们自定义equals()判定规则为:当对象的编号和名称同时相同时,判定两个对象为同一个对象
很显然,本程序无论是“增删改查”操作这四个基本功能,还是验证用户是否重复添加同一商品这一功能,都需要两个对象进行equals比较,因此重写equals()是必须的。

那么是否每一个类都需要重写equals方法呢?

显然,Wares抽象类是不需要的,因为我们在比较的时候,是比较其子类的对象是否是同一对象,而并非父类对象(况且该父类是抽象类,无法实例化对象,更别谈可以调用其equals()了)因此我们可以确定:要重写Food类、Drinking类、DailyUsing类、Cosmetic类中的equals()要进行重写



@Override
public boolean equals(Object o) {
 if (this == o) return true;
 if (o == null || !(o instanceof Wares)) return false;
 Cosmetic cosmetic = (Cosmetic) o;
 return super.getName().equals(cosmetic.getName()) && super.getId()==cosmetic.getId();
}

2.重写toString吗?

由于需要清晰的显示商品信息,每一次需要输出信息的时候,可以System.out.print(“…” + 属性1 + “…” + 属性2);来显示每一条信息。

但是鉴于本程序输出的次数很多,而且System.out.print()方法在内部调用toString()

因此我们可以重写(父类)toString方法,使得每次的输出都有一套固定的输出格式,实现了System.out.print(实例化的对象名);即可完成格式化输出。

那么是否每一个类都需要重写toString()呢?

显然,Wares抽象类是不需要的,因为我们输出信息的时候,是要输出四个子类对象的信息(父类Wares是抽象类,无法实例化对象,更别谈可以调用其toString()了)因此我们可以确定:要重写Food类、Drinking类、DailyUsing类、Cosmetic类中的toString()要进行重写



@Override
public String toString() {
 return "化妆品 {\t " + super.getId() +
   "\t " + super.getName() +
   "\t\t" + super.getInPrice() + "元" +
   "\t\t" + super.getOutPrice() + "元" +
   "\t\t" + super.getCount() + "件" +
   "\t}";
}

3.重写hashCode()吗?

Java中规定:如果两个对象相同,那么它们的hashCode值一定要相同;如果两个对象的hashCode相同,它们对象本身equals比较并不一定相同。
因此如果改写了equals方法,令两个实际不是一个对象的两个实例在逻辑上相等了,但是hashcode却是不等,这是有矛盾的。

这种矛盾会在HashMap集合中造成实际运行结果和预期运行结果的不一致产生。
(个人理解:equals()返回true表示两个对象相同,在同一个单向链表上比较那么对于同一个单向链表上的结点来说,他们的哈希值都应该是相同的所以hashCode()的返回值也应该相同)。

就本程序来说没有用到hashMap这样集合底层的数据结构来存储每一个对象(而是用的arrayList),因此是否重写hashCode方法对本程序的影响不大,但是鉴于程序的规范性,还是应该遵循以下原则:

如果一个类的equals方法重写了,那么hashCode方法必须重写。并且equals方法返回如果是true,hashCode方法返回的值必须一样。



@Override
public int hashCode() {
 return Objects.hash(brand);
}

4.存储结构的确定

类、接口、方法、属性、数据类型以及实现方法都已经确定了,现在需要把实例化的对象以什么样的形式存储到一起呢?

一种是数组、一种是集合

很显然,我们在进行初始化的时候,不知道需要存入多少商品,无法对数组进行预估计容量;数组只能存放单一数据类型的元素,在对其操作的时候(相比较集合中已提供了对集合的很多操作而言)很不方便,而且数组虽然检索效率高,但是插入查找效率很低。

本程序我们选择arrayList集合进行对象的存储。

注:就本程序而言,个人感觉还是使用hashMap(查询更加快捷)或hashSet排序更加便捷),且两者都可以自动控制存储的信息无重复的特点。这是本程序需要改进的地方之一

四、总结以及源代码

希望通过这篇文章可以帮助到初学java的你!
如果在文章中的描述或者想法不正确或不恰当,希望路过的大佬们可以多多指正!

链接: https://pan.baidu.com/s/167ee8r1IMW80y3-MKq4aoQ

提取码: i4bk

到此这篇关于java实现简易超市管理系统 附源码下载的文章就介绍到这了,更多相关java实现超市管理系统内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: java实现简易超市管理系统 附源码下载

本文链接: https://www.lsjlt.com/news/122204.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java实现简易超市管理系统 附源码下载
    java超市管理系统 1.0(含源文件,后续会继续优化~) 前言 一个月零零散散的时间学习了java,通过这次“超市管理系统”的练习,希望可以给一同开始学习java的朋友一些参考,更...
    99+
    2024-04-02
  • Python实现简易超市管理系统
    目录一:购物车管理功能二:用户管理功能三:AI客服对话一:购物车管理功能 1.添加商品(不重复添加)、 2.删除商品(购物车中有的才能删除)、 3.查看购物车 4.退出系统 产品列表...
    99+
    2024-04-02
  • 基于Java+Mysql的超市管理系统(附源码)
    文章目录 一、项目介绍1.开发环境2.功能3.项目运行截图 二、使用步骤1.用idea导入项目2.配置项目jdk版本3.配置数据库4.运行项目 三、项目优点1.单例模式2.封装了数据库连接类3.用户信息读取保存 四、个人...
    99+
    2023-12-23
    java mysql idea
  • 使用java如何实现简易超市管理系统
    这篇文章给大家分享的是有关使用java如何实现简易超市管理系统的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、确定需求程序概述:小型超市商品销售管理系统选择小型超市的四类商品进行管理。这四类商品是:食品、化妆品...
    99+
    2023-06-14
  • Python超市管理系统 毕业设计-附源码111042
    目 录 摘要 1 1 绪论 1 1.1研究背景 1 1.2研究现状 1 1.3系统开发技术的特色 1 1.4论文结构与章节安排 1 2 基于Python的 超市管理系统 系统分析 3 2.1 可行...
    99+
    2023-09-01
    python mysql java spring boot php Powered by 金山文档
  • (附源码)springboot超市仓库管理系统 毕业设计164555
    摘要 本论文主要论述了如何使用java语言开发一个springboot超市仓库管理系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述超市仓库管理...
    99+
    2023-09-13
    python java spring boot php html Powered by 金山文档
  • [附源码]java毕业设计超市收银系统
    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: S...
    99+
    2023-09-26
    java 开发语言 mysql
  • Java实现超市会员管理系统
    本文实例为大家分享了Java实现超市会员管理系统的具体代码,供大家参考,具体内容如下 要求:借助集合框架及实用类实现该系统 1、积分累计2、积分兑换3、查询剩余积分4、修改密码5、开...
    99+
    2024-04-02
  • 基于python+mysql超市信息管理系统(附完整源代码)
    (参考的是这篇文章(5条消息) 数据库课程设计—超市零售信息管理系统(Python实现)_小桃在改bug的博客-CSDN博客_超市管理系统数据库设计但是这篇文章里没有完整的代码,所以我自己补全了ui界面和相关的代码,并进行了二创,框架也有改...
    99+
    2023-09-28
    数据库 课程设计 mysql python
  • 用Java实现简易的图书管理系统(超详细)
    目录 1.设计背景 2.设计思路 3.模块展示及代码演示 3.1 Book类的实现 3.2 BookList类的实现(书架) 3.3 异常类的实现(OperationException) 3.4 用户类的实现 3.5 操作接口的实现(定义...
    99+
    2023-09-01
    java 开发语言
  • JSP+Servlet+MySql超市管理系统项目源码
    一、 开发背景 软件名称:超市管理系统(servlet+jsp) 使用对象:学习或了解过 java 基础课程,开始接触 javaWeb 的学生和软件爱好者 源码链接:超市管理系统: 超市管理系统 Sql文件https://pan.baid...
    99+
    2023-09-21
    java 后端
  • Java实现简易学籍管理系统
    本文实例为大家分享了Java实现简易学籍管理系统的具体代码,供大家参考,具体内容如下 1、我们先来讲讲什么是泛型化编程 package 学生管理系统;   import java.u...
    99+
    2024-04-02
  • Java实现简易学生管理系统
    本文实例为大家分享了Java实现学生管理系统的具体代码,供大家参考,具体内容如下 1.学生管理系统(控制台界面实现) //学生类,继承Serializeable接口,将其序列化写入文...
    99+
    2024-04-02
  • Java如何实现超市会员管理系统
    这篇文章主要介绍了Java如何实现超市会员管理系统的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java如何实现超市会员管理系统文章都会有所收获,下面我们一起来看看吧。要求:借助集合框架及实用类实现该系统积分累...
    99+
    2023-06-29
  • 超市商品信息管理系统/超市管理系统的设计与实现
    摘  要 随着现在网络的快速发展,网上管理系统也逐渐快速发展起来,网上管理模式很快融入到了许多国家的之中,随之就产生了“超市商品信息管理系统”,这样就让超市商品信息管理系统更加方便简单。 对于本超市商品信息管理系统的设计来说,系统开发主要...
    99+
    2023-10-08
    java 开发语言
  • 使用Python实现管理系统附源码
    目录0. 前言1. 题目要求2. 要求分析3.效果展示3.1 主界面3.2 注册界面3.3 管理员3.3.1 管理员登陆界面3.3.2 管理员——疫苗信息管理...
    99+
    2024-04-02
  • SMBMS超市订单管理系统的网站源码
    目录MVC三层架构(代码整体以此分层编写)基本架构项目搭建准备工作1- 45 创建项目包结构6-78 导致静态资源登录功能实现1.编写前端页面 login.jsp2.设置首页3.编写...
    99+
    2024-04-02
  • Java Web实现简易图书管理系统
    本文实例为大家分享了Java Web实现简易图书管理系统的具体代码,供大家参考,具体内容如下 前言 首先实现的是用户的登录注册,注册成功后自动跳转到图书列表页面,之后实现图书的增删改...
    99+
    2024-04-02
  • java实现简易的学籍管理系统
    本文实例为大家分享了java实现简易的学籍管理系统的具体代码,供大家参考,具体内容如下 一、 代码 import java.awt.*; import java.awt.event....
    99+
    2024-04-02
  • Java实战之超市收银管理系统的实现
    目录一、项目简述二、项目运行三、效果图四、核心代码品类信息控制层用户信息控制层商品信息控制层一、项目简述 本系统主要实现的功能有:收银、报表、用户管理、商品管理、销售管理、进货退货管...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作