增删改查+排序的小系统

简介: 1、创建主播实体类(ps:实体类:存储信息和相关行为建模的类)2、创建主播管理类,显示操作菜单和操作主播数组,封装主播系统的核心业务3、在main方法中调用主播管理类

逻辑分析:

主播系统(增删改查+排序)

1、创建主播实体类(ps:实体类:存储信息和相关行为建模的类)

2、创建主播管理类,显示操作菜单和操作主播数组,封装主播系统的核心业务

3、在main方法中调用主播管理类

 

主播实体类:

基本属性:id、name、技能、介绍、粉丝数、颜值、头像

初始化(构造方法)、访问(set、get方法

+:控制主播对象打印格式toString

 

 

主播管理类:(封装主播核心业务)增删改查+排序

1、增减主播

2、查看主播信息(查看所有主播、或者:根据主播id查找主播)

3、主播粉丝排序

4、主播线上圈粉

5、主播拉黑(删除主播)

 

基本属性:管理的主播数组、当前数组主播数量、数组最大容量、主播系统名称、scanner、MaxOfShower(static final)

方法:1、addShower(){

      (1).输入(动作重复)--设置为一个变量(属性),并且其初始化,scanner = new Scanner(System.in);可以放在默认构造中

      (2).增加到主播数组中--初始化主播数组(默认构造初始化):showerArray = new Shower[MaxOfShower];--+static final变量

      (3)增加,因为考虑数组容量--判断一下数组容量问题--(且一开始增加前九应该先判断)

2、查看所有主播(显示)

测试驱动开发

      3、圈粉(生成随机数字(固定数字范围中)--主播类的粉丝)

测试驱动开发

4、排序:

(1)前提:数组中至少有一个元素,需要判断一下

测试驱动开发

      5、删除主播

测试驱动开发

 

增加:欢迎界面:欢迎进入**************--(初始化)放到管理类默认构造中

增加:整个程序的执行结构--上面方法测试成功后,在主方法中给出整个程序的执行结构,来完成整个程序:(循环+选择结构:while+switch

}        

代码:

主播实体类:


package com.xuetang9.kenny.showerdemo;
/**
* 类说明:anchor 主播实体类,基本属性+打印格式toString
* @author: Yu
* @version: 1.0
* 创建时间:2021年2月2日 下午6:57:13 
*/
public class anchor {
    private long id;        //主播id
    private String name;    //主播姓名
    private String skill;    //主播技能
    private String intro;    //主播介绍
    private long fansCount; //主播粉丝数
    private double face;    //主播颜值
    private String imagePath;//主播头像路径
    public anchor() {
        this(0, "默认主播", "天生我才", "我就是彪悍");
    }
    public anchor(long id, String name, String skill, String intro) {
        this.id = id;
        this.name = name;
        this.skill = skill;
        this.intro = intro;
        this.fansCount = (int)(Math.random() * 10000)% 1001 + 1000; 
    }
    //用来控制主播的打印格式
    public String toString() {
        String str = String.format("%d\t%s\t%s\t%s\t%d", id, name, skill, intro, fansCount);
        return str;
    }
    public long getId() {
        return id;
    }
    public void setId(long id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getSkill() {
        return skill;
    }
    public void setSkill(String skill) {
        this.skill = skill;
    }
    public String getIntro() {
        return intro;
    }
    public void setIntro(String intro) {
        this.intro = intro;
    }
    public long getFansCount() {
        return fansCount;
    }
    public void setFansCount(long fansCount) {
        this.fansCount = fansCount;
    }
    public double getFace() {
        return face;
    }
    public void setFace(double face) {
        this.face = face;
    }
    public String getImagePath() {
        return imagePath;
    }
    public void setImagePath(String imagePath) {
        this.imagePath = imagePath;
    }
}


主播管理类:


package com.xuetang9.kenny.showerdemo;
import java.util.Scanner;
/**
* 类说明: 主播管理类,用来实现主播管理的核心业务逻辑,操作主播数组和显示操作菜单
* @author: Yu
* @version: 1.0
* 创建时间:2021年2月2日 下午7:07:02 
*/
public class anchorManager {
    private anchor[] anchorArray;        //管理类管理的主播数组
    private int count;                    //主播数组中当前主播数
    private static final int MaxOfAnchor = 1024;//主播数组最大容量
    private String sysName;                //管理系统的名字
    Scanner scanner;
    public anchorManager() {
        anchorArray = new anchor[MaxOfAnchor];
        count = 0;
        scanner = new Scanner(System.in);
    }
    public anchorManager(String sysName) {
        this();
        this.sysName = sysName;
    }
    //1、增加主播
    //2、删除主播
    //3、查看所有主播
    //4、主播排序
    //5、主播圈粉
    /**
     * 1、增加主播
     */
    public void addAnchor() {
        //首先,判断主播数组空间容量
        if(count == MaxOfAnchor) {
            System.out.println("主播数组已经满了,添加主播失败!");
            return;
        }
        System.out.println("请输入主播信息:");
        System.out.println("主播id:");
        //输入动作重复,--设置为一个变量
        long id = scanner.nextLong();
        System.out.println("主播姓名:");
        String name = scanner.next();
        System.out.println("主播技能:");
        String skill = scanner.next();
        System.out.println("主播介绍:");
        String intro = scanner.next();
        anchorArray[count] = new anchor(id, name, skill, intro);
        //主播数量+1
        count++;
    }
    /**
     * 2、删除主播
     */
    public void deleteAnchor() {
        System.out.println("请输入要删除主播id:");
        long delId = scanner.nextLong();
        int deleteId = findId(delId);
        if(deleteId == -1) {
            System.out.println("当前主播已经下播,删除失败!");
            return;
        }
        //删除操作:删除数组元素,数组元素前移一位
        for(int i = deleteId; i < count; i++) {
            anchorArray[i] = anchorArray[i + 1];
        }
        //主播数量-1
        count--;
    }
    private int findId(long delId) {
        for(int i = 0; i < count; i++) {
            if(delId == anchorArray[i].getId()) {
                //找到了要主播数组下标
                return i;
            }
        }
        //循环正常结束,没有找到主播数组下标
        return -1;
    }
    /**
     * 3、查看所有主播
     */
    public void ShowAll() {
        System.out.println("查看当前主播系统:");
        System.out.println("编号\t姓名\t技能\t介绍\t粉丝数");
        for(int i = 0; i < count; i++) {
            System.out.println(anchorArray[i]);
        }
    }
    /**
     * 4、主播排序
     */
    public void SortById() {
        //首先,判断一下主播数组当前元素个数是否大于等于1
        if(count <= 0) {
            System.out.println("当前没有主播在线!");
            return;
        }
        //选择排序法
        long minFansCount = 0;
        int minIndex = -1;
        for(int i = 0; i < count; i++) {
            minFansCount = anchorArray[i].getFansCount();
            minIndex = i;
            for(int j = i + 1; j < count; j++) {
                if(minFansCount > anchorArray[j].getFansCount()) {
                    minIndex = j;
                    minFansCount = anchorArray[j].getFansCount();
                }
            }
            if(minIndex > i) {
                //交换
                anchor tempAnchor = anchorArray[i];
                anchorArray[i] = anchorArray[minIndex];
                anchorArray[minIndex] = tempAnchor;
            }
        }
    }
}


Main方法:


package com.xuetang9.kenny.showerdemo;
/**
* 类说明: 主方法调用管理类,实现测试驱动开发
* @author: Yu
* @version: 1.0
* 创建时间:2021年2月2日 下午7:39:07 
*/
public class Main {
    public static void main(String[] args) {
        anchorManager anchorManager = new anchorManager("soga");
        anchorManager.addAnchor();
//        anchorManager.addAnchor();
//        anchorManager.ShowAll();
//        anchorManager.deleteAnchor();
//        anchorManager.ShowAll();
        anchorManager.addAnchor();
        anchorManager.addAnchor();
        anchorManager.SortById();
        anchorManager.ShowAll();
    }
}


最后Main中需要自己写一下循环结构+选择结构啦

目录
相关文章
|
4月前
|
缓存 NoSQL Linux
在CentOS 7系统中彻底移除MongoDB数据库的步骤
以上步骤完成后,MongoDB应该会从您的CentOS 7系统中被彻底移除。在执行上述操作前,请确保已经备份好所有重要数据以防丢失。这些步骤操作需要一些基本的Linux系统管理知识,若您对某一步骤不是非常清楚,请先进行必要的学习或咨询专业人士。在执行系统级操作时,推荐在实施前创建系统快照或备份,以便在出现问题时能够恢复到原先的状态。
399 79
|
2月前
|
安全 关系型数据库 数据管理
阿里云数据库:构建高性能与安全的数据管理系统
阿里云数据库提供RDS、PolarDB、Tair等核心产品,具备高可用、弹性扩展、安全合规及智能运维等技术优势,广泛应用于电商、游戏、金融等行业,助力企业高效管理数据,提升业务连续性与竞争力。
|
7月前
|
前端开发 数据库
会议室管理系统源码(含数据库脚本)
会议室管理系统源码(含数据库脚本)
126 0
|
6月前
|
SQL 数据库 开发者
Python中使用Flask-SQLAlchemy对数据库的增删改查简明示例
这样我们就对Flask-SQLAlchemy进行了一次简明扼要的旅程,阐述了如何定义模型,如何创建表,以及如何进行基本的数据库操作。希望你在阅读后能对Flask-SQLAlchemy有更深入的理解,这将为你在Python世界中从事数据库相关工作提供极大的便利。
634 77
|
4月前
|
SQL 监控 安全
数据库安全审计系统
Next-DBM数据库审计系统助力企业解决数据安全难题,提供统一身份管理、全方位监控、智能风险识别、完整审计追溯及精细化权限管控,有效防范数据泄露与内部威胁,保障企业核心资产安全,满足合规要求,提升运维效率。
|
6月前
|
XML 数据库 Android开发
Android数据库的使用(增删改查)
本文介绍了一个简单的数据库操作Demo,包含创建数据库、增删改查功能。通过5个按钮分别实现创建数据库、插入数据、删除数据、更新数据和查询数据的操作。代码结构清晰,适合初学者学习Android SQLite数据库基础操作。
193 5
|
6月前
|
数据库 Android开发 开发者
Android常用的room增删改查语句(外部数据库)
本文分享了将一个原生数据库驱动的单词APP重构为使用Room库的过程及遇到的问题,重点解决了Room中增删改查的常用语句实现。文章通过具体示例(以“forget”表为例),详细展示了如何定义实体类、Dao接口、Database类以及Repository和ViewModel的设计与实现。同时,提供了插入、删除、更新和查询数据的代码示例,包括模糊查询、分页加载等功能。此外,针对外部数据库导入问题,作者建议可通过公众号“计蒙不吃鱼”获取更多支持。此内容适合有一定Room基础的开发者深入学习。
223 0
Android常用的room增删改查语句(外部数据库)
|
7月前
|
Java 数据库
jsp CRM客户管理系统(含数据库脚本以及文档)
jsp CRM客户管理系统(含数据库脚本以及文档)
160 10
|
8月前
|
前端开发 Java 关系型数据库
基于ssm的社区物业管理系统,附源码+数据库+论文+任务书
社区物业管理系统采用B/S架构,基于Java语言开发,使用MySQL数据库。系统涵盖个人中心、用户管理、楼盘管理、收费管理、停车登记、报修与投诉管理等功能模块,方便管理员及用户操作。前端采用Vue、HTML、JavaScript等技术,后端使用SSM框架。系统支持远程安装调试,确保顺利运行。提供演示视频和详细文档截图,帮助用户快速上手。
329 17
|
8月前
|
前端开发 Java 关系型数据库
基于ssm的超市会员(积分)管理系统,附源码+数据库+论文,包安装调试
本项目为简单内容浏览和信息处理系统,具备管理员和员工权限。管理员可管理会员、员工、商品及积分记录,员工则负责积分、商品信息和兑换管理。技术框架采用Java编程语言,B/S架构,前端使用Vue+JSP+JavaScript+Css+LayUI,后端为SSM框架,数据库为MySQL。运行环境为Windows,JDK8+Tomcat8.5,非前后端分离的Maven项目。提供演示视频和详细文档,购买后支持免费远程安装调试。
359 19

热门文章

最新文章