java入门项目:学生管理系统(进阶版超详细搭建)

1、项目介绍

简介

学生管理系统是一个典型的信息管理系统,熟悉并掌握其需求和设计思想对于理解和学习数据操作和Java编程有非常大的帮助。

设计思路

**思路:**分为学生端和教师端

  1. 学生端的功能分为登录、注册、查看个人信息、查看成绩、申请修改信息
  2. 教师端的功能分为登录、注册、查看学生信息、修改学生信息、删除学生信息、添加学生信息、查看学生申请的修改信息

image-20231014195337098

2、项目搭建

IDEA新建java项目

点击文件 -->新建

image-20231014191547320

点击src右键新建–>软件包

image-20231014191717273

输入软件包名称,回车即可

image-20231014191744591

3、创建实体类

分析

因为实体类可以提供更好的代码组织和数据封装,提高代码的可读性、可维护性和可扩展性,使程序更加健壮和易于开发和维护。

  1. 我们有分学生端和教师端,所以我们需要创建两个实体类

    • Student
    • Teach
  2. 学生类和老师类都有自己的属性

    • 学生类

      信息变量名类型
      姓名NameString
      学号IdString
      年龄Ageint
      性别SexString
      密码PasswordString
      家庭住址AddressString
      电话PhoneString
      语文成绩Chinesedouble
      数学成绩Mathdouble
      英语成绩Englishdouble
      总分Scoredouble
    • 教师类

      信息变量名类型
      姓名NameString
      工号IdString
      年龄Ageint
      性别SexString
      密码PasswordString
      电话PhoneString
3.1、创建学生类

Student

package com.demo.studentsystem;

public class Student {
    private String Name; //姓名
    private String Id;  //学号
    private int Age;    //年龄
    private String Sex; //性别
    private String Password;    //密码
    private String Address;     //地址
    private String Phone;   //电话
    private double Chinese; //语文成绩
    private double Math;    //数学成绩
    private double English; //英语成绩
    private double Score;   //总分

    public Student() {
    }


    public Student(String Name, String Id, int Age, String Sex, String Password, String Address, String Phone, double Chinese, double Math, double English) {
        this.Name = Name;
        this.Id = Id;
        this.Age = Age;
        this.Sex = Sex;
        this.Password = Password;
        this.Address = Address;
        this.Phone = Phone;
        this.Chinese = Chinese;
        this.Math = Math;
        this.English = English;
    }

    /**
     * 获取
     * @return Name
     */
    public String getName() {
        return Name;
    }

    /**
     * 设置
     * @param Name
     */
    public void setName(String Name) {
        this.Name = Name;
    }

    /**
     * 获取
     * @return Id
     */
    public String getId() {
        return Id;
    }

    /**
     * 设置
     * @param Id
     */
    public void setId(String Id) {
        this.Id = Id;
    }

    /**
     * 获取
     * @return Age
     */
    public int getAge() {
        return Age;
    }

    /**
     * 设置
     * @param Age
     */
    public void setAge(int Age) {
        this.Age = Age;
    }

    /**
     * 获取
     * @return Sex
     */
    public String getSex() {
        return Sex;
    }

    /**
     * 设置
     * @param Sex
     */
    public void setSex(String Sex) {
        this.Sex = Sex;
    }

    /**
     * 获取
     * @return Password
     */
    public String getPassword() {
        return Password;
    }

    /**
     * 设置
     * @param Password
     */
    public void setPassword(String Password) {
        this.Password = Password;
    }

    /**
     * 获取
     * @return Address
     */
    public String getAddress() {
        return Address;
    }

    /**
     * 设置
     * @param Address
     */
    public void setAddress(String Address) {
        this.Address = Address;
    }

    /**
     * 获取
     * @return Phone
     */
    public String getPhone() {
        return Phone;
    }

    /**
     * 设置
     * @param Phone
     */
    public void setPhone(String Phone) {
        this.Phone = Phone;
    }

    /**
     * 获取
     * @return Chinese
     */
    public double getChinese() {
        return Chinese;
    }

    /**
     * 设置
     * @param Chinese
     */
    public void setChinese(double Chinese) {
        this.Chinese = Chinese;
    }

    /**
     * 获取
     * @return Math
     */
    public double getMath() {
        return Math;
    }

    /**
     * 设置
     * @param Math
     */
    public void setMath(double Math) {
        this.Math = Math;
    }

    /**
     * 获取
     * @return English
     */
    public double getEnglish() {
        return English;
    }

    /**
     * 设置
     * @param English
     */
    public void setEnglish(double English) {
        this.English = English;
    }

    /**
     * 获取
     * @return Score
     */
    public double getScore() {
        this.Score = (this.Math+this.English+this.Chinese) / 3;
        return this.Score;
    }
    

    public String toString() {
        return "Student{Name = " + Name + ", Id = " + Id + ", Age = " + Age + ", Sex = " + Sex + ", Password = " + Password + ", Address = " + Address + ", Phone = " + Phone + ", Chinese = " + Chinese + ", Math = " + Math + ", English = " + English + ", Score = " + Score + "}";
    }
    
    public void viewPerson(){
       System.out.println("姓名:"+getName());
       System.out.println("年龄:"+getAge());
       System.out.println("学号:"+getId());
       System.out.println("性别:"+getSex());
       System.out.println("密码:"+getPassword());
       System.out.println("住址:"+getAddress());
       System.out.println("电话:"+getPhone());
    }
    public void viewAchieve(){
       System.out.println("语文成绩:"+getChinese());
       System.out.println("数学成绩:"+getMath());
       System.out.println("英语成绩:"+getEnglish());
       System.out.println("总分:"+getScore());
    }
}

3.2、创建教师类

Teach

package com.demo.studentsystem;

public class Teach {
    private String name;
    private String Id;
    private int Age;
    private String Sex;
    private String Password;
    private String Phone;


    public Teach() {
    }

    public Teach(String name, String Id, int Age, String Sex, String Password, String Phone) {
        this.name = name;
        this.Id = Id;
        this.Age = Age;
        this.Sex = Sex;
        this.Password = Password;
        this.Phone = Phone;
    }

    /**
     * 获取
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     * @return Id
     */
    public String getId() {
        return Id;
    }

    /**
     * 设置
     * @param Id
     */
    public void setId(String Id) {
        this.Id = Id;
    }

    /**
     * 获取
     * @return Age
     */
    public int getAge() {
        return Age;
    }

    /**
     * 设置
     * @param Age
     */
    public void setAge(int Age) {
        this.Age = Age;
    }

    /**
     * 获取
     * @return Sex
     */
    public String getSex() {
        return Sex;
    }

    /**
     * 设置
     * @param Sex
     */
    public void setSex(String Sex) {
        this.Sex = Sex;
    }

    /**
     * 获取
     * @return Password
     */
    public String getPassword() {
        return Password;
    }

    /**
     * 设置
     * @param Password
     */
    public void setPassword(String Password) {
        this.Password = Password;
    }

    /**
     * 获取
     * @return Phone
     */
    public String getPhone() {
        return Phone;
    }

    /**
     * 设置
     * @param Phone
     */
    public void setPhone(String Phone) {
        this.Phone = Phone;
    }

    public String toString() {
        return "Teach{name = " + name + ", Id = " + Id + ", Age = " + Age + ", Sex = " + Sex + ", Password = " + Password + ", Phone = " + Phone + "}";
    }
}
4、功能实现

分析

  1. 首先我们需要先搭建起来登录界面,登录界面应该包含登录、注册功能
  2. 登录注册需要填写身份,判断是学生还是教师,再选择进入对应的界面

创建main函数

接下来的实现都是在主函数里面创建了,自行创建main函数

public class SystemDemo {
    public static void main(String[] args) {
    }
}
4.1、编写主界面
        /**
         * 主界面搭建
         */
        while (true) {
            System.out.println("_________________________________");
            System.out.println("        欢迎使用学生管理系统         ");
            System.out.println("          1、登录系统              ");
            System.out.println("          2、注册账号"              );
            System.out.println("          3、退出系统"              );
            System.out.println("_________________________________");

            //从键盘接受数据
            System.out.println("请输入您的选择:");
            Scanner scanner = new Scanner(System.in);
            int Number = scanner.nextInt();

            if (Number == 1){
                
                //调用登录界面
                LoginSystem();

            } else if (Number == 2){
                
                //调用注册界面
                RegisterSystem();
                
            } else if (Number == 3){
                System.out.println("感谢您的使用系统");
                //调出循环
                break;
            } else {
                System.out.println("输入错误,请选择序号里面的数字");
            }
        }
4.2、编写登录界面

分析

  • 登录界面需要验证身份,选择让进入学生端还是教师端
    //登录界面
    public static void LoginSystem() {

        System.out.println("欢迎进入登录界面");
        Scanner scanner = new Scanner(System.in);

        while (true){

            System.out.println("请输入您的身份(教师或者学生,输入0则返回上一级):");
            String identity = scanner.next();

            if ("教师".equals(identity)){

                System.out.println("请输入您的工号:");
                String id = scanner.next();

                System.out.println("请输入您的密码");
                String password = scanner.next();

                //调用判断是否存在
                boolean result = JudgmentExistTeach(id, password);
                
                if (result){
                    System.out.println("登录成功");
                    //跳转到教师端
                    TeachTerminal(id);

                } else {
                    System.out.println("登录失败,请检查你的工号和密码是否有问题");
                }


            } else if ("学生".equals(identity)){

                System.out.println("请输入您的学号:");
                String id = scanner.next();

                System.out.println("请输入您的密码");
                String password = scanner.next();
                
                //调用判断是否存在
                boolean result = JudgmentExistStudent(id, password);
                
                if (result){
                    System.out.println("登录成功");
                    //跳转到学生
                    StudentTerminal(id);

                } else {
                    System.out.println("登录失败,请检查你的工号和密码是否有问题");
                }
                
            } else {
                if (identity.equals("0")){
                    break;
                }
                System.out.println("您的输入有问题");
            }
        }
        
    }
  • 创建方法判断教师是否存在

    通过传进来的id和password和集合进行判断,id存在,password正确说明登录成功

    public static boolean JudgmentExist(String id,String password){
        //如果列表里面没有东西,那就不需要判断,直接返回不存在
        if (ArrayTeach.size() == 0){
            System.out.println("用户不存在,请注册");
            return false;
        }

        //循环判断用户是否存在
        for (int i = 0; i < ArrayTeach.size(); i++) {
            if (ArrayTeach.get(i).getId().equals(id)){
                if (ArrayTeach.get(i).getPassword().equals(password)){
                    return true;
                }
            }
        }

        return false;
    }
  • 创建方法判断学生是否存在
    //判断学生用户是否存在
    public static boolean JudgmentExistStudent(String id,String password){
        //如果列表里面没有东西,那就不需要判断,直接返回不存在
        if (ArrayStudent.size() == 0){
            System.out.println("用户不存在,请注册");
            return false;
        }

        //循环判断用户是否存在
        for (int i = 0; i < ArrayStudent.size(); i++) {
            if (ArrayStudent.get(i).getId().equals(id)){
                if (ArrayStudent.get(i).getPassword().equals(password)){
                    return true;
                }
            }
        }
        return false;
    }
4.3、编写教师端功能
  • 教师端是比较复杂的,需要实现功能有:增删改查和查看学生修改申请
4.3.1、教师端主界面编写
 public static void TeachTerminal(String id){

        System.out.println("你好老师,欢迎来到教师端管理系统");
        Scanner scanner = new Scanner(System.in);

        while (true){
            System.out.println("请输入你的选项");
            System.out.println("1、查询学生信息");
            System.out.println("2、添加学生信息");
            System.out.println("3、修改学生信息");
            System.out.println("4、删除学生信息");
            System.out.println("5、查询所有学生");
            System.out.println("6、查询所有学生");
            System.out.println("7、退出管理系统");

            int Number = scanner.nextInt();

            if (Number == 1){
                System.out.println("请输入学生学号");
                String checkId = scanner.next();
                StudentId(checkId);

            } else if (Number == 2){
                boolean result = AddStudent();
                if (result){
                    System.out.println("添加成功");
                } else {
                    System.out.println("添加失败");
                }
            } else if (Number == 3){
                System.out.println("请输入学生学号");
                String updateId = scanner.next();
                //调用更新方法
                boolean result = UpdateStudent(updateId);
                if (result){
                    System.out.println("修改成功");
                } else {
                    System.out.println("修改失败");
                }
            } else if (Number == 4){
                System.out.println("请输入要删除的学生学号");
                String delId = scanner.next();
                //调用删除方法
                boolean result = delStudent(delId);
                if (result){
                    System.out.println("删除成功");
                } else {
                    System.out.println("删除失败");
                }
            } else if (Number == 5){
                //调用查询方法
                selectStudent();
            } else if (Number == 6){
                //调用查看信息方法
                selectInformation();

            } else if (Number == 7){

                System.out.println("感谢使用,再见");
                System.exit(0);
            } else {
                System.out.println("输入错误请选择存在的序号");
            }
        }


    }
4.3.2、查询单个学生信息功能实现

通过id遍历数组实现

public static void StudentId(String id){
        for (int i = 0; i < ArrayStudent.size(); i++) {
            //如果id存在输出
            if (id.equals(ArrayStudent.get(i).getId())){
                System.out.println(ArrayStudent.get(i).toString());
            }
        }
    }
4.3.3、添加学生功能实现
    //添加学生
    public static boolean AddStudent(){
        Scanner scanner = new Scanner(System.in);
        while (true){
            System.out.println("请输入学生学号");
            String id = scanner.next();
            //调用查询id方法,查看id是否存在
            boolean flag = JudgmentId(id);
            if (flag) {

                System.out.println("请输入学生姓名");
                String name = scanner.next();
                System.out.println("请输入学生年龄");
                int age = scanner.nextInt();
                System.out.println("请输入学生性别");
                String sex = scanner.next();
                System.out.println("请输入学生密码");
                String password = scanner.next();
                System.out.println("请输入学生住址");
                String address = scanner.next();
                System.out.println("请输入学生电话");
                String phone = scanner.next();
                System.out.println("请输入学生语文成绩");
                double chinese = scanner.nextDouble();
                System.out.println("请输入学生数学成绩");
                double math = scanner.nextDouble();
                System.out.println("请输入学生英语成绩");
                double english = scanner.nextDouble();

                Student student = new Student();
                student.setId(id);
                student.setName(name);
                student.setSex(sex);
                student.setPassword(password);
                student.setAddress(address);
                student.setPhone(phone);
                student.setChinese(chinese);
                student.setMath(math);
                student.setEnglish(english);

                //添加进集合
                ArrayStudent.add(student);
                //跳出循环
                return true;

            } else {
                System.out.println("用户已经存在");
                return false;
            }

        }
    }
4.3.4、查询id是否存在

该方法用于判断集合里面是否有这个学生了,在增删改查都用的到

    public static boolean JudgmentId(String id){
        for (int i = 0; i < ArrayStudent.size(); i++) {
            if (ArrayStudent.get(i).getId().equals(id)){
                return false;
            }
        }
        return true;
    }
4.3.5、修改学生信息

通过id去确认学生信息进行修改

    //修改学生信息
    public static boolean UpdateStudent(String id){
        Scanner scanner = new Scanner(System.in);
        boolean flag = JudgmentId(id);
        if (!flag){
            //查询下标记位置
            int i = checkIndex(id);
            if (i>-1){
                System.out.println("请输入学生姓名");
                ArrayStudent.get(i).setName(scanner.next());
                System.out.println("请输入学生年龄");
                ArrayStudent.get(i).setAge(scanner.nextInt());
                System.out.println("请输入学生性别");
                ArrayStudent.get(i).setSex(scanner.next());
                System.out.println("请输入学生密码");
                String password = scanner.next();
                ArrayStudent.get(i).setPassword(scanner.next());
                System.out.println("请输入学生住址");
                ArrayStudent.get(i).setAddress(scanner.next());
                System.out.println("请输入学生电话");
                ArrayStudent.get(i).setPhone(scanner.next());
                System.out.println("请输入学生语文成绩");
                ArrayStudent.get(i).setChinese(scanner.nextDouble());
                System.out.println("请输入学生数学成绩");
                ArrayStudent.get(i).setMath(scanner.nextDouble());
                System.out.println("请输入学生英语成绩");
                ArrayStudent.get(i).setEnglish(scanner.nextDouble());
            }
            return true;
        } else {
            System.out.println("不存在此学生");
            return false;
        }
    }
4.3.6、查询学生所在下标位置

该方法可以精准确认学生存放顺序位置,在修改和删除方法会使用到

    //查询学生所在下标位置
    public static int checkIndex(String id){
        for (int i = 0; i < ArrayStudent.size(); i++) {
            if (ArrayStudent.get(i).getId().equals(id)){
                return i;
            }
        }
        return -1;
    }
4.3.7、删除学生信息

通过上述方法,确认下标之后用remove方法删除

    //删除学生信息
    public static boolean delStudent(String id){
        boolean flag = JudgmentId(id);
        //存在返回flag
        if (!flag){
            int i = checkIndex(id);
            ArrayStudent.remove(i);
            return true;
        } else {
            System.out.println("学生不存在");
            return false;
        }
    }

4.3.8、查询所有学生信息

    //查询所有学生
    public static void selectStudent(){
        for (int i = 0; i < ArrayStudent.size(); i++) {
            System.out.println(ArrayStudent.get(i).toString());
        }
    }
4.3.9、查询学生申请信息
    //查询学生申请信息
    public static void selectInformation(){
        for (int i = 0; i < ArrayInformation.size(); i++) {
            System.out.println(ArrayInformation);
        }
    }
4.4、编写学生端功能

分析

  • 学生端的功能有:查看个人信息、查看成绩、提交修改申请,这些功能比较简单,都是一些循环遍历
4.4.1、学生端主界面编写
    //学生端
    public static void StudentTerminal(String id){
        System.out.println("你好同学,欢迎使用学生管理系统");
        Scanner scanner = new Scanner(System.in);
        while (true){
            System.out.println("请输入您的选项:");
            System.out.println("1、查看个人信息");
            System.out.println("2、查看学业成绩");
            System.out.println("3、提交修改信息");
            System.out.println("4、退出管理系统");

            int index = scanner.nextInt();
            if (index == 1){
                viwePersonalInformation(id);
            } else if (index == 2){
                viweAchieveInformation(id);
            } else if (index == 3){
                submitUpdate();
                System.out.println("提交成功,等待老师审核");
            } else if (index == 4){
                System.out.println("感谢使用,再见");
                System.out.println("请选择登录或退出");
                break;
            } else {
                System.out.println("输入错误请选择存在的序号");
            }
        }
    }
4.4.2、查看个人信息功能实现
    //查看个人信息方法
    public static void viwePersonalInformation(String id){
        //查看学生所处下标
        int i = checkIndex(id);
        if (i > -1){
            ArrayStudent.get(i).viewPerson();
        }

    }
4.4.3、查看成绩信息功能实现
    //查看成绩
    public static void viweAchieveInformation(String id){
        int i = checkIndex(id);
        if (i > -1){
            ArrayStudent.get(i).viewAchieve();
        }
    }
4.4.4、提交申请功能实现
    //学生提交申请
    public static void submitUpdate(){
        Scanner scanner = new Scanner(System.in);
        System.out.println("请描述你要更改的信息,例如:原姓名:小林修改为小陈");
        String inform = scanner.next();
        ArrayInformation.add(inform);
    }
5、总结

有一段时间没写这种控制台版本的了,花了将近两个小时的时间,基本功能已经实现了,相信大家第一个项目基本上都是学生管理系统,不知道这样子写有没有写明白了,没啥文化不太会写,项目里面其实还有很多可以修改的部分,比如一些方法可以用重载,如果是新手可以再以后学习到IO,再用IO来存储账号信息,后面学到mysql,再用mysql,这样子慢慢进步上去。

写这个项目主要是锻炼自己对Java编程语言有了更深入的了解和运用,对软件开发的整个生命周期有了更清晰的认识。

如果需要源码和笔记可以私信我或添加公棕号:小林学编程,回复学生管理系统

  • 5
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: Uniapp是一种使用Vue.js开发跨平台应用的前端框架,可以同时为iOS、Android和Web平台提供一致性的用户体验。在搭建一个管理系统时,我们可以使用Uniapp来快速开发出功能强大的应用。 一个Uniapp管理系统的源码通常包含了以下几个主要模块: 1. 登录模块:用户可以通过输入账号和密码行登录,验证用户身份。登录成功后,会根据用户角色的不同,跳转到相应的系统首页。 2. 系统首页:显示用户的基本信息和系统的各种功能菜单。用户可以通过导航菜单访问不同的功能模块,例如用户管理、订单管理、数据统计等。 3. 用户管理模块:提供对用户行增删改查的功能,管理员可以对用户的权限行控制,例如设置用户的角色和权限。 4. 订单管理模块:用来管理系统中的订单数据,包括查看订单、编辑订单、删除订单等操作。管理员可以对订单行审核和处理,以及生成各种统计报表。 5. 数据统计模块:对系统中的各种数据行统计和分析,例如销售额统计、用户活跃度统计等。可以展示图表和报表,帮助管理员更好地了解业务状况。 在编写Uniapp管理系统源码时,我们可以使用Vue.js的组件化开发思想,将不同的功能模块拆分成独立的组件,提高代码的复用性和可维护性。同时,可以结合常用的UI框架如Element-UI、Vant等,使用户界面更加美观和易用。 总之,Uniapp管理系统源码可以帮助我们快速搭建功能完善、界面友好的管理系统。无论是对于初学者还是有一定开发经验的开发者来说,Uniapp都是一个值得学习和尝试的技术。 ### 回答2: UniApp是一款基于Vue.js开发的跨平台应用框架,可以用于同时开发iOS、Android和Web应用。管理系统是一种常见的应用场景,可以用来管理企业、学校、医院等机构的人员、资源、数据等。 UniApp管理系统案例源码是指一个已经开发完成的管理系统应用的代码,可以用作学习参考或直接用于实际项目中。这个案例源码通常包含了前端和后端的代码,前端部分使用UniApp框架开发,后端部分可以使用各种技术栈,如Node.js、Java、Python等。 UniApp管理系统案例源码可能包含以下功能和模块: 1. 用户管理:包括用户注册、登录、权限管理、信息修改等功能,用于管理系统的用户。 2. 数据管理:包括对数据库中数据的增删改查操作,用于管理系统中的各类数据。 3. 资源管理:包括对系统资源(如图片、视频、文件等)的上传、存储和管理。 4. 消息推送:包括向用户发送系统通知、消息提醒等功能。 5. 统计分析:对系统中的数据行统计和分析,生成各类报表和图表。 6. 授权认证:对用户行身份验证和授权管理,确保系统的安全性。 7. 日志管理:记录用户操作日志和系统日志,方便追踪和排查问题。 8. 界面布局:设计简洁、美观、易用的界面,提升用户体验。 9. 扩展性:考虑系统的可扩展性和可维护性,使其能够适应不同需求和升级迭代。 通过研究和运行UniApp管理系统案例源码,可以学习到UniApp框架的使用方法、前端开发技巧、接口调用、数据处理等方面的知识,也可以了解到管理系统的开发流程和常见功能的实现方式。 ### 回答3: Uniapp(基于Vue.js的跨平台开发框架)是一种非常流行的前端开发技术,其可以帮助开发者快速构建跨平台的应用程序。而Uniapp管理系统案例源码则是指基于Uniapp开发的管理系统的示例代码。 Uniapp管理系统案例源码可以作为开发者学习和参考的资源,通过查看源码,可以获取到实现管理系统所需的各种功能模块、组件、页面和数据处理等操作的具体实现方式。可以说,源码是学习深入理解Uniapp开发框架的一种重要途径。 通过阅读源码,可以帮助我们理解Uniapp开发中一些常见概念和技术,比如使用Vue.js的组件化开发思想、路由管理和数据绑定等。通过对源码的学习,可以更好地掌握Uniapp开发框架的使用方法,提高开发效率和代码质量。 Uniapp管理系统案例源码还可以为我们提供一些实际开发中常见的场景和问题的解决思路,比如权限管理、数据管理和用户交互等。通过阅读源码,我们可以了解到一些最佳实践和常见问题的解决方案,从而快速上手和开发一个高质量的管理系统应用。 综上所述,Uniapp管理系统案例源码是一个非常有价值的学习资源,通过学习源码,可以帮助我们快速入门和深入理解Uniapp开发框架,提高开发效率和代码质量,同时也能帮助我们解决实际开发中遇到的问题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小林学习编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值