增删改查+排序的小系统

简介: 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中需要自己写一下循环结构+选择结构啦

目录
相关文章
|
2月前
|
自然语言处理 关系型数据库 MySQL
如何在mysql数据库里进行文本的相似度排序?
【8月更文挑战第28天】如何在mysql数据库里进行文本的相似度排序?
217 62
|
2月前
|
关系型数据库 OLAP 分布式数据库
核心系统转型问题之Gartner分析师对阿里云数据库的评价是啥样的
核心系统转型问题之Gartner分析师对阿里云数据库的评价是啥样的
|
2月前
|
Cloud Native 数据管理 数据挖掘
核心系统转型问题之阿里云数据库用户需求的通用性和差异性如何平衡
核心系统转型问题之阿里云数据库用户需求的通用性和差异性如何平衡
|
7天前
|
JavaScript Java 关系型数据库
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
本文介绍了一个基于Spring Boot和Vue.js实现的在线考试系统。随着在线教育的发展,在线考试系统的重要性日益凸显。该系统不仅能提高教学效率,减轻教师负担,还为学生提供了灵活便捷的考试方式。技术栈包括Spring Boot、Vue.js、Element-UI等,支持多种角色登录,具备考试管理、题库管理、成绩查询等功能。系统采用前后端分离架构,具备高性能和扩展性,未来可进一步优化并引入AI技术提升智能化水平。
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
|
9天前
|
Java 关系型数据库 MySQL
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
本文介绍了一款基于Spring Boot和JSP技术的房屋租赁系统,旨在通过自动化和信息化手段提升房屋管理效率,优化租户体验。系统采用JDK 1.8、Maven 3.6、MySQL 8.0、JSP、Layui和Spring Boot 2.0等技术栈,实现了高效的房源管理和便捷的租户服务。通过该系统,房东可以轻松管理房源,租户可以快速找到合适的住所,双方都能享受数字化带来的便利。未来,系统将持续优化升级,提供更多完善的服务。
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
|
19天前
|
SQL 关系型数据库 MySQL
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
课程分类查询、课程新增、统一异常处理、统一封装结果类、JSR303校验、修改课程、查询课程计划、新增/修改课程计划
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
|
1天前
|
关系型数据库 Unix MySQL
MySQL是一种关系型数据库管理系统
MySQL是一种关系型数据库管理系统
8 2
|
6天前
|
SQL 关系型数据库 MySQL
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
本文介绍了在ThinkPHP6框架中如何连接和使用数据库进行增删改查操作。内容包括配置数据库连接信息、使用Db类进行原生MySQL查询、find方法查询单个数据、select方法查询数据集、save方法添加数据、insertAll方法批量添加数据、insertGetId方法添加数据并返回自增主键、delete方法删除数据和update方法更新数据。此外,还说明了如何通过数据库配置文件进行数据库连接信息的配置,并强调了在使用Db类时需要先将其引入。
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
|
1月前
|
自然语言处理 关系型数据库 MySQL
match如何在mysql数据库里进行文本的相似度排序?
【9月更文挑战第1天】match如何在mysql数据库里进行文本的相似度排序?
49 1
|
2月前
|
前端开发 数据库 虚拟化
太6了!用Python快速开发数据库入库系统
太6了!用Python快速开发数据库入库系统
下一篇
无影云桌面