Java中的数据录入管理系统01

目录

一、什么是数据库

二、数据库的镜像:数据录入管理系统

1.数据录入管理系统可以实现的一些操作

1)新增(录入)——add

2)查询——consult

3)移除——remove

4)更新——update

5)退出(系统)——exit

2.待完善的功能与逻辑

三、数据录入管理系统的代码实现

1.用户类

2.用户数据管理类 


本篇博客以提供代码和讲解为主。

首先先帮助大家弄明白这个数据录入管理系统是用来干什么的、有什么具体的功能,并且尝试阅读熟悉代码,提出一些困惑。

我们的数据录入管理系统可以理解为一个简易版的数据库,可以实现对数据的存储、录入、删除、更新、等等操作。

再说简单点就是存储数据到一个“库”中(在这里我们存到数组里),然后可以进行查询。

一、什么是数据库

简单介绍一下数据库,因为我们的数据录入管理系统就是用来模拟数据库的一些基本操作。

数据库(Database)是一个有组织的、集中存储和管理数据的系统。

在计算机科学中,数据库被用来存储数据并提供对数据的高效访问、管理和更新。

数据库系统可以看作是一个大型的电子文件柜,用于存储和组织大量相关数据,以便用户可以方便地访问、查询和操作这些数据。

数据库通常包括以下几个重要组成部分:

数据被存储、组织和管理的信息
数据库管理系统(Database Management System,DBMS)用于管理数据库的软件系统,提供数据的存储、检索、更新、删除等功能,并确保数据的安全性、完整性和一致性。
数据库模型用来描述数据的结构、关系和约束条件的模型,常见的包括关系型数据库模型(如SQL数据库)、文档型数据库模型、图形数据库模型等
查询语言(Query Language)用于与数据库进行交互、查询和操作数据的语言,如SQL(Structured Query Language)是一种常用的数据库查询语言

数据库的一些作用如下:
- 提供数据存储:将数据存储在数据库中,便于组织、管理和访问。
- 数据共享:多个用户可以同时访问数据库中的数据,实现数据共享和协作。
- 数据一致性和完整性:数据库系统可以确保数据的一致性和完整性,避免数据冗余和不一致。
- 数据安全:通过权限控制和加密等手段保护数据库中的数据安全。
- 数据备份和恢复:数据库系统提供备份和恢复机制,以防止数据丢失或损坏。

二、数据库的镜像:数据录入管理系统

1.数据录入管理系统可以实现的一些操作

1)新增(录入)——add

这里的功能类似于用户的注册:新建账号用户名、密码,系统根据注册前后自动分配ID

2)查询——consult

可以根据指令要求输出出来部分或全部已经录入的信息,包括ID、用户名、密码

查询之前我们可以多add几次,这样数据库数据更多更加完善

3)移除——remove

可以根据输入的ID删除该ID所在的所有相关信息最后输出删除后的全部信息

4)更新——update

根据输入的ID,对相对应的用户名、或者密码进行修改操作,最后输出修改后的信息

5)退出(系统)——exit

不执行对数据的操作,直接退出

2.待完善的功能与逻辑

1)扩容机制

2)remove功能中当出现重名或重密码时该如何改进代码

3)update仍然缺少进一步的逻辑,比如更新用户名可以直接输入,但更新密码其实按照人的行为习惯应该先输入用户名再输入密码,但这样代码就比较冗杂,可以思考如何提高代码的效率

这是一个简易版的数据库,有一些功能还不算特别完善,可能逻辑不是特别严谨,如有意见可在评论区提出。

三、数据录入管理系统的代码实现

1.用户类

public class User {
        int ID;
        String userName;
        String password;

        public String toString(){
            String userInfo = "{ID:"+ID+"  用户名:"+userName+"  密码:"+password+"}";
            return userInfo;
        }

}

2.用户数据管理类 

public class ManageUserData {
    //最大数据量maxSize、用来存储的数组length、实时数据量dynamicSize
    final int maxSize = 50;//final修饰后其值不可变
    User[] userList = new User[maxSize];//和上一步是否可以融合
    int size;

    public void welcome(){
        while (true) {
            Scanner sc = new Scanner(System.in);
            System.out.println("--------------------");
            System.out.println("---欢迎使用数据录入管理系统,WELCOME!---");
            System.out.println("--------------------");
            System.out.println("请按照要求选择指令:\n新增-add \n查询-consult \n删除-remove \n更新-update \n退出-exit ");
            //一些其他功能:如退出系统、输入错误等等
            String enter1 = sc.nextLine();
            if (enter1.equals("add")) {
                add(sc);
            } else if (enter1.equals("consult")) {
                consult(sc);
            } else if (enter1.equals("remove")) {
                remove(sc);
            } else if (enter1.equals("update")) {
                update(sc);
            } else if (enter1.equals("exit")) {
                System.exit(0);//退出程序
            } else {
                System.err.println("非法输入!");
            }
        }
    }

    public void add(Scanner sc){
        //是否还有空闲[],若无则需考虑扩容(扩容机制)
        //用户输入用户名(检测是否重复)——有难度
        //输入密码
        //将账号密码存入一个新的用户对象?思考与理解!!
        //再将该用户对象赋值一个ID后存入userList中
        //size++;
        if(size>maxSize){
            System.out.println("系统火爆,无法新建账号,请联系管理员!");
            return;
        }
        System.out.println("请输入姓名:");
        String name = sc.nextLine();
        System.out.println("请输入密码:");
        String pwd = sc.nextLine();//到这一步name和pwd都是灰色的,如何使他们变色呢
        User user = new User();
        user.userName=name;
        user.password=pwd;
        user.ID=size;
        userList[size]=user;//不太理解
        size++;
        System.out.println("成功录入系统!");

    }

    public void consult(Scanner sc){
        System.out.println("请选择需要查询的信息类型:ID ———— name ———— all");
        String action = sc.nextLine();

        if(action.equals("ID")){
            System.out.println("请输入需要查询的ID");
            int ID = sc.nextInt();//回顾此方法
            sc.nextLine();//吸收多余字符,防止报错!!!!!!!!!
            for (int i = 0; i<size;i++){
                User user1 = userList[i];
                if (user1.ID==ID){
                    System.out.println(user1.toString());
                    System.out.println("查找完成");
                    return;//感觉貌似没有这个return也可以???
                }
            }
            System.err.println("找不到相应数据");
        }

        else if(action.equals("name")){
            System.out.println("请输入需要查询的name");
            String name = sc.nextLine();//与上面的注意区分开来
            for (int i = 0; i<size;i++){
                User user2 = userList[i];
                if (user2.userName.equals(name)){
                    System.out.println(user2.toString());
                    System.out.println("查找完成");
                    return;//感觉貌似没有这个return也可以???
                }
            }
            System.err.println("找不到相应数据");
        }

        else if(action.equals("all")){
            //不需要查找,直接拼接所有信息,思考数组的存与放,为什么此处还需要循环
            String all ="";
            for (int i = 0; i<size;i++ ){
                User user2 = userList[i];
                all += user2.toString()+"\n";
            }
            System.out.println(all);
        }

        else {
           System.err.println("非法输入!!!");
        }
    }

    public void remove(Scanner sc){
        System.out.println("请选择需要删除的数据的ID");
        int ID = sc.nextInt();
        if (ID<=size){
            for (int i=0;i<size;i++){
                User user3 = userList[i];
                if(user3.ID==ID){
                    for (int j = ID;j<size;j++){ //小于size-1
                        userList[j]=userList[j+1];
                    }
                    size--;
                    System.out.println("删除成功!");
                    System.out.println("删除后的全部信息:");
                    for (int k = 0; k < size; k++) {
                        System.out.println(userList[k].toString());
                    }

                    return;

                }
            }
        }else {
            System.err.println("提供的ID有误,请重新输入!");
        }


    }

    public void update(Scanner sc){
    System.out.println("请输入需要更新的用户数据:姓名or密码");
    String update = sc.nextLine();
    if(update.equals("姓名")){
        System.out.println("请输入需要修改的原姓名:");
        String oriName = sc.nextLine();
        for (int i=0; i<size;i++){
            User user4 = userList[i];
            if(user4.userName.equals(oriName)){
                System.out.println("请输入新的姓名:");
                String updateName = sc.nextLine();
                user4.userName=updateName;
                System.out.println("姓名已更改成功!");
                System.out.println("更改后如下:"+user4);
                return;
            }
        }
    }else if(update.equals("密码")){
            System.out.println("请输入需要修改的原密码:");//考虑一些内在的逻辑,更改密码是否需要先输入姓名
            String oriPwd = sc.nextLine();
            for (int i=0; i<size;i++){
                User user4 = userList[i];
                if(user4.password.equals(oriPwd)){
                    System.out.println("请输入新的密码:");
                    String updatePwd = sc.nextLine();
                    user4.password=updatePwd;
                    System.out.println("密码已更改成功!");
                    System.out.println("更改后如下:"+user4);
                    return;
                }
            }
        }else {
        System.err.println("需要更改的1信息有误,请重新输入!!");
        }


    }


    public static void main(String[] args){
       new ManageUserData().welcome();
    }
}

  • 28
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值