Java面向对象课程设计--类管理系统

简介: Java面向对象课程设计--类管理系统

是一个基于面向对象编程和Javase的管理系统

第1个课设是去年11月份写的

我记得当时在实验室写了一个下午,晚上写了两个小时去牛客刷题去了,第二天下午开始写,写到六点钟写完的

前天2024/2/20晚上和昨天2024/2/21下午我写了第2个课设

第二次写课设比第一次课设容易多了

一个晚上就写了300行用户页的操作

第二天下午先在论坛摸鱼搞组件,后来开始写到晚上6点吃饭还剩增删改三个功能,吃饭前把关于查的stream流方法写完,吃过饭半小时就写完了

课设介绍

其中包名为

有两个JavaBean类

三个工具类

第一个界面:登录系统

第二个界面食品

以下是改进

改进1

通过选择直接访问选项类里的静态方法

我选择通过类名.方法直接调用

这样可以确保进入每个界面的便捷性

因为在第一次写课设的时候

使用c语言结构体写的

而每个界面的退出我是用while循环实现的

而多重循环还需要用到loop标签

就容易出现不正常的运行,十分难写

例如,我们这里直接访问各个类里的静态方法

进入各个页面后

退出时,同样基于死循环一个唯一的出口,就是再访问先前类的方法

就像这样

选择正确的数字是唯一的出口,外面套着死循环

改进2

在JavaBean类里定义了关于类的方法

因为在第一次写课程设计时,JavaBean类只交代了成员属性,以及相关的空参构造,实参构造

所以这次要进行数据有关操作时,我们可以直接访问类里面的静态方法

来做到对数据的处理

食品类

用户类

改进3

优化数据结构

之前写的数据是存储在单列集合集合ArrayList里的

因为可读性差和使用起来太复杂

所以我优化了数据结构

采用双列集合 底层是哈希表

基于数组,链表,红黑树的高级数据结构

改进4

方法重写

主要体现在两个方面,使用了新的方法,例如正则表达式,Stream流,迭代器

主要是对字符串的操作和遍历集合

检验字符串是否符合规范

Stream流过滤数据

以下是创新

创新1

使用Java图形化组件

创新2

使用音频组件

创建一个工具类Music

里面静态方法里用音频组件写了歌曲的属性

可进行播放 其中采用了异常处理机制 防止进程出现问题

创新3

构建了图形化的虚拟购物

请注意这些数据在底层逻辑都是可以通过增加,删除去操作的

也就是在存储的时候不止会将数据存在查询那个最基本的集合里

同样也会存储到另一个名为购物的哈希表双列集合里去

大大提高了灵活性和可用性

以下是不足

每次写都有不足,我觉得代码永远也不会改成最最最完美的

所以我不太喜欢一直一直优化优化再优化

不足1

还需要优化数据结构

在每次打开模拟点餐时,数据都是无序的

就是各项数据不是按照存入集合的顺序排列的

这我就想到了是不是应该用LinkedHashList而不是HashList

不足2

没有使用继承和接口

我一直觉得作为接口的实现类重写接口里抽象方法好方便啊

但其实还不会用这些东西

不足3

功能不够完善

究竟什么时候才能完善,才能很很很完善,才能绝绝对对的完善呢

不足4

学长看完后说我代码耦合性太高了

一个类套着一个类

我特地去看了软件工程这本书,我记得是好像是第十页说软件开发最重要的一点要低耦合高内聚

我会改进的

目录
相关文章
|
12月前
|
设计模式 消息中间件 传感器
Java 设计模式之观察者模式:构建松耦合的事件响应系统
观察者模式是Java中常用的行为型设计模式,用于构建松耦合的事件响应系统。当一个对象状态改变时,所有依赖它的观察者将自动收到通知并更新。该模式通过抽象耦合实现发布-订阅机制,广泛应用于GUI事件处理、消息通知、数据监控等场景,具有良好的可扩展性和维护性。
857 8
|
存储 Java 索引
用Java语言实现一个自定义的ArrayList类
自定义MyArrayList类模拟Java ArrayList核心功能,支持泛型、动态扩容(1.5倍)、增删改查及越界检查,底层用Object数组实现,适合学习动态数组原理。
574 4
|
移动开发 监控 小程序
java家政平台源码,家政上门清洁系统源码,数据多端互通,可直接搭建使用
一款基于Java+SpringBoot+Vue+UniApp开发的家政上门系统,支持小程序、APP、H5、公众号多端互通。涵盖用户端、技工端与管理后台,支持多城市、服务分类、在线预约、微信支付、抢单派单、技能认证、钱包提现等功能,源码开源,可直接部署使用。
904 24
|
IDE JavaScript Java
在Java 11中,如何处理被弃用的类或接口?
在Java 11中,如何处理被弃用的类或接口?
479 5
|
安全 前端开发 Java
使用Java编写UDP协议的简易群聊系统
通过这个基础框架,你可以进一步增加更多的功能,例如用户认证、消息格式化、更复杂的客户端界面等,来丰富你的群聊系统。
415 11
|
机器学习/深度学习 人工智能 自然语言处理
Java与生成式AI:构建内容生成与创意辅助系统
生成式AI正在重塑内容创作、软件开发和创意设计的方式。本文深入探讨如何在Java生态中构建支持文本、图像、代码等多种生成任务的创意辅助系统。我们将完整展示集成大型生成模型(如GPT、Stable Diffusion)、处理生成任务队列、优化生成结果以及构建企业级生成式AI应用的全流程,为Java开发者提供构建下一代创意辅助系统的完整技术方案。
565 10
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
644 1
|
Java Go 开发工具
【Java】(8)正则表达式的使用与常用类分享
正则表达式定义了字符串的模式。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。
632 1
|
存储 Java 程序员
【Java】(6)全方面带你了解Java里的日期与时间内容,介绍 Calendar、GregorianCalendar、Date类
java.util 包提供了 Date 类来封装当前的日期和时间。Date 类提供两个构造函数来实例化 Date 对象。第一个构造函数使用当前日期和时间来初始化对象。Date( )第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。
417 0
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
570 1