数据结构实践(一)——代码实现

学生信息管理

. 1. 数据类

	 DAO分层技术防止业务层直接干扰数据
	 主要初始化数据
	 代码如下`:
package Data;

import Readandwrite.Readandwrite;
import pojo.Account;
import pojo.Student;

import java.util.*;

/**
 * @author 莉莉安
 * @ClassName: IntelliJ IDEA
 * @Description: ${TODO}
 * @date 2021/3/1 14:44
 * ${tags}
 */
public class Database implements java.io.Serializable {

    //用户数据
    private List<Account> accountList = new ArrayList<>();
    private List<Student> studentsList = new ArrayList<>();
    Readandwrite f=new Readandwrite();

    /**
     * 在构造方法中对集合的数据进行初始化
     */
    public Database() {
        //初始化用户数据
        Account account = new Account(12345678, "admin", "0000");
        accountList.add(account);
        /**
        学生数据录入
         */
//            studentsList.add(new Student("刘杨","1922107","软件",70,80,90,100));
//            studentsList.add(new Student("刘","1922108","软件",70,81,91,70));
//            studentsList.add(new Student("杨","1922109","软件",60,80,90,100));
        List<String> slist=new ArrayList<>();
            slist=f.reader();//传入字符串的链表
            for(String s:slist) {
                String student[] = s.split(" ");
                studentsList.add(new Student(student[0], student[1], student[2],
                        Double.parseDouble(student[3]), Double.parseDouble(student[4]),
                        Double.parseDouble(student[5]), Double.parseDouble(student[6])));
            }
        for(int i=0;i<studentsList.size();i++)
        {
            studentsList.get(i).setRank(i+1);
        }
    }
    public List<Student> getStudentsList() {
        return studentsList;
    }

    public void setStudentsList(List<Student> studentsList) {
        this.studentsList = studentsList;
    }

    public List<Account> getAccountList(){
        return accountList;
    }

    public void setAccountList(List<Account> accountList) {
        this.accountList = accountList;
    }
}

. 2. Dao类用于跟业务层对接去修改后端的数据

	代码如下:
package Dao;

import Data.Database;
import pojo.Account;

public class Accountdao {
    //数据库
    private Database database;

    /**
     * 为了使每一个DAO对象访问到的数据库都是同一个数据库
     * 需要将数据库对象通过参数进行传递,以确保每个DAO访问到的是相同的数据库
     * @param database
     */
    public Accountdao(Database database) {
        this.database = database;
    }
    /**
     * 根据用户名查找用户
     * @param accountName
     * @return
     */
    public Account findByName(String accountName){
        Account account = null;
        for (Account user : database.getAccountList()) {
            //比较账户名
            if(user.getAccountName().equals(accountName)){
                account = user;
                break;
            }
        }
        return account;
    }
    /**
     *根据id查找用户名
     */
    public String findid(long id)
    {
        String s=null;
        for (Account account : database.getAccountList()) {
            if(account.getAccountId()==id)
            {
                s=account.getAccountName();
                break;
            }
        }
        return s;
    }
    /**
     增加用户
     */
    public void extra(String name,String password,long phone)//添加数据入数据库
    {
        Account s=new Account(phone,name,password);
        database.getAccountList().add(s);
    }
    /**
     修改密码
     */
    public void modicode(String password,String name)
    {
        for(int i=0;i<database.getAccountList().size();i++)
        {
            if(database.getAccountList().get(i).getAccountName().equals(name))
            {
                database.getAccountList().get(i).setPassword(password);
                break;
            }
        }
    }
}
package Dao;
import Data.Database;
import Readandwrite.Readandwrite;
import pojo.Student;

import java.util.ArrayList;
import java.util.List;


/**
 * @author 莉莉安
 * @ClassName: IntelliJ IDEA
 * @Description: ${学生内部层}
 * @date 2021/3/1 14:49
 * ${tags}
 */
public class Studentdao {
    private Database database;

    public Studentdao(Database database) {
        this.database = database;
    }

    /**
     * 新增
     */
    public void add(Student s) {
        database.getStudentsList().add(s);
    }

    /**
     * 浏览学生信息并选择排序方式
     */
    public void show() {
        for (int i = 0; i < database.getStudentsList().size(); i++) {
            System.out.print("学号:" + database.getStudentsList().get(i).getName()+"\t");
            System.out.print("姓名: " + database.getStudentsList().get(i).getNum()+"\t");
            System.out.print("专业:" + database.getStudentsList().get(i).getPro()+"\t");
            System.out.print("语文:" + database.getStudentsList().get(i).getChinese()+"\t");
            System.out.print("数学:" + database.getStudentsList().get(i).getMath()+"\t");
            System.out.print("英语:" + database.getStudentsList().get(i).getEng()+"\t");
            System.out.print("理综:" + database.getStudentsList().get(i).getScience()+"\t");
            System.out.print("总分:" + database.getStudentsList().get(i).getTotal()+"\t");
            System.out.print("名次:" + database.getStudentsList().get(i).getRank()+"\t");
            System.out.println();
        }
    }

    /**
     * 根据学号删除学生信息
     */
    public void delete(String s) {
        int flag = 0;
        for (int i = 0; i < database.getStudentsList().size(); i++) {
            if (database.getStudentsList().get(i).getNum().equals(s)) {
                database.getStudentsList().remove(i);
                flag = 1;
                break;
            }
        }
        if (flag == 1) {
            System.out.println("已删除");
        } else
            System.out.println("未查找到该学号学生");
    }

    /**
     * 根据学号查找学生信息
     */

    public void find(String s) {
        int flag = 0;
        Student a = new Student();
        for (int i = 0; i < database.getStudentsList().size(); i++) {
            if (database.getStudentsList().get(i).getNum().equals(s)) {
                a = database.getStudentsList().get(i);
                flag = 1;
                break;
            }
        }
        if (flag == 1) {
            System.out.print("\t姓名:\t" + a.getName());
            System.out.print("\t学号:\t" + a.getNum());
            System.out.print("\t专业:\t" + a.getPro());
            System.out.print("\t语文:\t" + a.getChinese());
            System.out.print("\t数学:\t" + a.getMath());
            System.out.print("\t英语:\t" + a.getEng());
            System.out.print("\t理综:\t" + a.getScience());
            System.out.print("\t总分:\t" + a.getTotal());
            System.out.print("\t名次:\t" + a.getRank());
        } else
            System.out.println("未查找到该学号学生");
    }
    /**
     * 根据学号返回学生
     */
    public Student findbynum(String s)
    {
        int flag = 0;
        Student a = new Student();
        for (int i = 0; i < database.getStudentsList().size(); i++) {
            if (database.getStudentsList().get(i).getNum().equals(s)) {
                a = database.getStudentsList().get(i);
                flag = 1;
                break;
            }
        }
        if (flag == 1) {
            return a;

        } else
            System.out.println("未查找到该学号学生");
        return null;
    }
    /**
     * 修改成绩
     */
    public void modi(String num,double s,int f)
    {
        Student s1=findbynum(num);
        if(s1!= null)
        {
                switch(f)
            {
                case 1:
                    s1.setChinese(s);
                    break;
                case 2:
                    s1.setEng(s);
                    break;
                case 3:
                    s1.setMath(s);
                    break;
                case 4:
                    s1.setScience(s);
                    break;
            }
        }
        else
            System.out.println("不存在该学生");
    }

    /**
     * 双向冒泡排序
     */
    public void shaker() {
        List<Student> list = database.getStudentsList();
        Student temp = null;
        int left = 0, right = list.size() - 1;
        while (left < right) {
            for (int i = left + 1; i <= right; i++) {
                if (list.get(left).getTotal() < list.get(i).getTotal()) {
                    temp = list.get(i);
                    list.set(i, list.get(left));
                    list.set(left, temp);
                }
            }
            left++;
            for (int i = right - 1; i >= left; i--) {
                if (list.get(right).getTotal() > list.get(i).getTotal()) {
                    temp = list.get(i);
                    list.set(i, list.get(right));
                    list.set(right, temp);
                }
            }
            right--;
        }
        for (int i = 0; i < list.size(); i++) {
            list.get(i).setRank(i + 1);
        }
    }

    /**
     * 希尔排序
     */
    public void shell() {
        List<Student> list = new ArrayList<>();
        list = database.getStudentsList();
        // 空链表 或 只有一个元素的链表,则什么都不做。
        if (list == null || list.size() <= 1) return;
        // 定义希尔增量。
        for (int gap = list.size() / 2; gap > 0; gap /= 2) {
            for (int i = gap; i < list.size(); i++) {
                for (int j = i - gap; j >= 0; j -= gap) {
                    if (list.get(j).getTotal() < list.get(j + gap).getTotal()) {
                        Student s = list.get(j);
                        list.set(j, list.get(j + gap));
                        list.set(j + gap, s);

                    }
                }
            }
        }
        for (int i = 0; i < list.size(); i++) {
            list.get(i).setRank(i + 1);
        }
    }

    /**
     * 快速排序
     */
    public void quicksort() {
        List<Student> list = database.getStudentsList();
        quick(list, 0, list.size() - 1);
        for (int i = 0; i < list.size(); i++) {
            list.get(i).setRank(i + 1);
        }
    }

    /**
     *利用递归从而使得基准值两边的都进行比大小
     */
    public void quick(List<Student> list, int left, int right) {
        if (left > right) {
            return;
        }
        Student base = list.get(left);
        double b = list.get(left).getTotal();
        int i = left;
        int j = right;
        while (i != j) {
            while (list.get(j).getTotal() <= b && i < j) {
                j--;
            }
            while (list.get(i).getTotal() >= b && i < j) {
                i++;
            }
            Student s = list.get(i);
            list.set(i, list.get(j));
            list.set(j, s);
        }
        list.set(left, list.get(i));
        list.set(i, base);
        quick(list, left, i - 1);
        quick(list, j + 1, right);
    }

    /**
     * 堆排序
     */
    public void heap() {
        List<Student> list = new ArrayList<>();
        list = database.getStudentsList();
        if (list.size() <= 1) {
            return;
        }
        creatheap(list);
        for (int i = list.size() - 1; i >= 1; i--) {
            Student s = list.get(0);
            list.set(0, list.get(i));
            list.set(i, s);
            maxheap(list, i, 0);
        }
        for (int i = 0; i < list.size(); i++) {
            list.get(i).setRank(i + 1);
        }
    }

    /**
     * 创建初始堆
     */
    public void creatheap(List<Student> list)
    {
        int parent=list.size()/2-1;
        for(int i=parent;i>=0;i--)
        {
            maxheap(list,list.size(),i);
        }
    }
    public void maxheap(List<Student> list,int length,int index)
    {
        int left =2*index+1;//左孩子
        int right =2*index+2;//右孩子
        int maxindex =index;//最大数
        if (left<length && list.get(left).getTotal() < list.get(maxindex).getTotal())
        {
            maxindex = left;
        }
        if (right<length && list.get(right).getTotal() < list.get(maxindex).getTotal())
        {
            maxindex = right;
        }
        if (maxindex!=index)
        {
            Student s = list.get(index);
            list.set(index, list.get(maxindex));
            list.set(maxindex, s);
            maxheap(list,length, maxindex);
        }

    }
    /**
     * 保存信息
     */
    public void save(){
        List<String> list1=new ArrayList<>();
        for(Student s:database.getStudentsList()){
            String s1=s.getNum()+" "+s.getName()+" "+s.getPro()+" "+s.getMath()+" "+
                    s.getEng()+" "+s.getChinese()+" "+s.getScience();
            list1.add(s1);
        }
        Readandwrite rw = new Readandwrite();
        rw.writer(list1);
    }
}

. 3. 用户类包括登录帐号类以及学生类的定义

	代码如下:
package pojo;

/**
 * @author 莉莉安
 * @ClassName: IntelliJ IDEA
 * @Description: ${TODO}
 * @date 2021/3/1 14:43
 * ${tags}
 */
public class Account {
    //账户编号
    private long accountId;
    //账户名称
    private String accountName;
    //密码
    private String password;

    public Account(long accountId, String accountName, String password) {
        this.accountId = accountId;
        this.accountName = accountName;
        this.password = password;
    }

    public Account() {
    }

    public long getAccountId() {
        return accountId;
    }

    public void setAccountId(long accountId) {
        this.accountId = accountId;
    }

    public String getAccountName() {
        return accountName;
    }

    public void setAccountName(String accountName) {
        this.accountName = accountName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}
package pojo;

/**
 * @author 莉莉安
 * @ClassName: IntelliJ IDEA
 * @Description: ${TODO}
 * @date 2021/3/1 14:38
 * ${tags}
 */
/**
创建学生类
 */
public class Student implements java.io.Serializable{
    private String num;//学号
    private String name;//姓名
    private double math;//数学
    private double chinese;//语文
    private double eng;//英语
    private double total;//总分
    private double science;//理科
    private int rank;//名次
    private String pro;//专业

    public Student(String num,  String name,  String pro,  double chinese, double math,  double eng,  double science) {
        this.num = num;
        this.name = name;
        this.math = math;
        this.chinese = chinese;
        this.eng = eng;
        this.science = science;
        this.total = this.chinese+this.math+this.eng+this.science;
        this.pro = pro;
    }
public Student()
{

}

    public String getNum() {
        return num;
    }

    public void setNum(String num) {
        this.num = num;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getMath() {
        return math;
    }

    public void setMath(double math) {
        this.math = math;
    }

    public double getChinese() {
        return chinese;
    }

    public void setChinese(double chinese) {
        this.chinese = chinese;
    }

    public double getEng() {
        return eng;
    }

    public void setEng(double eng) {
        this.eng = eng;
    }

    public double getTotal() {
        return total;
    }

    public void setTotal(double total) {
        this.total = total;
    }

    public double getScience() {
        return science;
    }

    public void setScience(double science) {
        this.science = science;
    }

    public int getRank() {
        return rank;
    }

    public void setRank(int rank) {
        this.rank = rank;
    }

    public String getPro() {
        return pro;
    }

    public void setPro(String pro) {
        this.pro = pro;
    }
}

. 4. 开始界面主界面用于界面的展示以及用户交互方法的实现

	代码如下:
package service;

import Dao.Accountdao;
import Dao.Studentdao;
import Data.Database;
import pojo.Account;
import pojo.Student;

import java.util.Random;
import java.util.Scanner;

/**
 * @author 莉莉安
 * @ClassName: IntelliJ IDEA
 * @Description: ${TODO}
 * @date 2021/3/1 14:53
 * ${tags}
 */
public class Studentsystem {
    private Scanner scanner = new Scanner(System.in);
    //DAO数据层对象
    private Accountdao accountDao;
    private Studentdao studentdao;
    int count = 0;

    public Studentsystem(Database database) {
        accountDao = new Accountdao(database);
        studentdao = new Studentdao(database);

    }

    public void start() {
        System.out.println("***************欢迎进入学籍管理系统***************");
        System.out.println("1. 登录");
        System.out.println("2. 注册");
        System.out.println("3. 退出系统");
        System.out.println("请选择:");

        int chooice = scanner.nextInt();
        switch (chooice) {
            case 1:
                //登录
                login();
                break;
            case 2:
                regist();
                break;
            //注册
            case 3:
                System.out.println("退出了系统!");
                break;
            default:
                System.out.println("无效的选项,请重新输入!");
                start();
        }
    }

    public void login() {
        System.out.println("***************登录***************");
        System.out.println("请输入用户名:");
        String userName = scanner.next();
        System.out.println("请输入密码:");
        String password = scanner.next();
        System.out.println("输入验证码");
        String code2 = captcha();
        System.out.println("验证码为:" + code2);
        String code = scanner.next();
        Account a = null;
        a = accountDao.findByName(userName);
        if (a != null) {
            if (a.getPassword().equals(password)) {
                if (code.equals(code2)) {
                    System.out.println("登录成功");
                    menu();
                } else {
                    System.out.println("验证码错误请重新输入");
                    count++;
                    if (count > 2) {
                        System.out.println("错误次数过多请稍后再试");
                        count = 0;
                        code();
                    } else
                        login();
                }
            } else {
                System.out.println("密码错误请重新输入");
                count++;
                if (count > 2) {
                    System.out.println("错误次数过多请稍后再试");
                    count = 0;
                    code();
                } else {
                    login();
                }

            }
        } else {
            System.out.println("用户名错误请重新输入");
            count++;
            if (count > 2) {
                System.out.println("错误次数过多请稍后再试");
                count = 0;
                code();
            } else
                login();
        }


    }

    /**
     * 密码管理页面
     */
    public void code() {
        System.out.println("***************用户界面***************");
        System.out.println("1.  忘记密码");
        System.out.println("2.  忘记用户名");
        System.out.println("3.  继续输入");
        System.out.println("0.  返回上一层");
        System.out.println("请选择!");
        int x = scanner.nextInt();
        switch (x) {
            case 0:
                start();
                break;
            case 1:
                findcode();
                break;
            case 2:
                findname();
                break;
            case 3:
                login();
                break;
            default:
                System.out.println("无效选项请重新输入");
                code();
        }
    }

    /**
     * 找回用户名方法
     */
    public void findname() {
        System.out.println("***************找回用户名***************");
        System.out.println("输入要找的用户名的id");
        long id = scanner.nextLong();
        String a = accountDao.findid(id);
        if (a == null) {
            System.out.println("此id不存在请重新输入");
            findname();
        } else {
            System.out.println("用户名为:" + a);
            start();
        }

    }

    /**
     * 找回密码方法
     */
    public void findcode() {
        System.out.println("***************找回密码***************");
        System.out.println("输入用户名");
        String name = scanner.next();
        Account a = accountDao.findByName(name);
        System.out.println("输入id");
        long i = scanner.nextLong();
        if (a != null) {
            if (a.getAccountId() == i) {
                System.out.println("输入要修改的密码");
                String code = scanner.next();
                System.out.println("请确认密码");
                String code1 = scanner.next();
                if (code.equals(code1)) {
                    String cap = captcha();
                    System.out.print("输入验证码:\t");
                    System.out.println(cap);
                    String code2 = scanner.next();
                    if (code2.equals(cap)) {
                        accountDao.modicode(code, name);
                        start();
                    } else {
                        System.out.println("验证码错误请重新输入");
                        findcode();
                    }

                } else {
                    System.out.println("密码不一致请重新输入");
                    findcode();
                }
            } else {
                System.out.println("id输入错误请重新输入");
                findcode();
            }
        } else {
            System.out.println("查无此id请重新确认");
            findcode();
        }
    }

    /**
     * 注册
     */
    public void regist() {
        System.out.println("***************账号注册***************");
        System.out.println("输入用户名");
        String name = scanner.next();
        Account a = null;
        a = accountDao.findByName(name);
        if (a == null) {
            System.out.println("输入id");
            long num = scanner.nextLong();
            System.out.println("输入密码");
            String password = scanner.next();
            System.out.println("请确认密码");
            String password2 = scanner.next();
            if (!(password2.equals(password))) {
                System.out.println("两次密码不一致请重新输入");
                regist();
            } else {
                System.out.println("输入验证码");
                String code2 = captcha();
                System.out.println("验证码为:" + code2);
                String code = scanner.next();
                if (code2.equals(code)) {
                    accountDao.extra(name, password, num);
                    System.out.println("注册成功!");
                    start();
                } else {
                    System.out.println("验证码错误请重新输入");
                    regist();
                }
            }
        } else {
            System.out.println("此用户名已被注册请重新输入");
            regist();
        }

    }

    /**
     * 生成验证码captcha(区分大小写)
     */

    public String captcha() {
        Random random = new Random();
        String code = "";
        for (int i = 0; i < 4; i++) {
            int x = random.nextInt(2);
            if (x == 0) {
                code = code + random.nextInt(10);
            } else {
                int a = random.nextInt(26) + 65;
                int q = random.nextInt(2);
                if (q == 0) {
                    a = a + 32;
                }
                char s = (char) a;
                code = code + s;
            }

        }
        return code;
    }

    /**
     * 菜单页面
     */
    public void menu() {
        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("0. 返回上一层");
        System.out.println("请选择:");

        int chooice = scanner.nextInt();
        switch (chooice) {
            case 1:
                add();
                break;
            case 2:
                show();
                break;
            case 3:
                delete();
                break;
            case 4:
                find();
                break;
            case 5:
                keep();
                menu();
                break;
            case 6:
                modi();
                break;
            case 0:
                start();
                break;
            default:
                System.out.println("无效的选项,请重新输入!");
                menu();
        }
    }

    /**
     * 写入文件(即加载)
     */
    private void keep() {
        studentdao.save();
    }

    /**
     * 查找学生信息业务层
     */
    private void find() {
        System.out.println("输入查找学生学号");
        String s = scanner.next();
        studentdao.find(s);
        menu();
    }

    /**
     * 删除学生信息业务层
     */
    private void delete() {
        System.out.println("请输入删除信息的学号");
        String s = scanner.next();
        studentdao.delete(s);
        menu();
    }

    /**
     * 浏览学生信息业务层
     */
    private void show() {
        System.out.println("请选择排序方法");
        System.out.println("1. 双向冒泡");
        System.out.println("2. 希尔排序");
        System.out.println("3. 快速排序");
        System.out.println("4. 堆排序");
        System.out.println("0. 返回上一层");
        System.out.println("请选择:");
        int choice = scanner.nextInt();
        switch (choice) {
            case 1:
                studentdao.shaker();
                break;
            case 0:
                menu();
                break;
            case 2:
                studentdao.shell();
                break;
            case 3:
                studentdao.quicksort();
                break;
            case 4:
                studentdao.heap();
                break;
            default:
                System.out.println("输入无效请重新输入");
                show();
        }
        studentdao.show();
        show();
    }

    /**
     * 新增学生信息业务层
     */
    private void add() {
        System.out.println("输入学号");
        String a = scanner.next();
        System.out.println("输入姓名");
        String b = scanner.next();
        System.out.println("输入专业");
        String c = scanner.next();
        System.out.println("输入语文成绩");
        double d = scanner.nextDouble();
        System.out.println("输入数学成绩");
        double e = scanner.nextDouble();
        System.out.println("输入英语成绩");
        double f = scanner.nextDouble();
        System.out.println("输入理综成绩");
        double g = scanner.nextDouble();
        Student s = new Student(a, b, c, d, e, f, g);
        studentdao.add(s);
        menu();
    }

    /**
     * 修改成绩
     */
    private void modi() {
        System.out.println("输入要修改学生的学号");
        String s=scanner.next();
        System.out.println("选择修改的学科");
        System.out.println("1. 语文");
        System.out.println("2. 外语");
        System.out.println("3. 数学");
        System.out.println("4. 理综");
        int f=scanner.nextInt();
        if(f==1||f==2||f==3||f==4)
        {
            System.out.println("输入修改的值");
            double x=scanner.nextDouble();
            studentdao.modi(s,x,f);
        }
        else{
            System.out.println("重新输入");
            modi();
        }
        menu();
    }
}

. 5 文件的读取与写入io流不是太会copy室友的。。

package Readandwrite;

import java.io.*;
import java.util.ArrayList;
import java.util.List;

/**
 * @author 莉莉安
 * @ClassName: IntelliJ IDEA
 * @Description: ${TODO}
 * @date 2021/3/3 15:26
 * ${tags}
 */
public class Readandwrite {
    public BufferedReader br;
    public BufferedWriter bw;
    public File file =new File("C:\\Users\\莉莉安\\Desktop\\java\\数据结构实践\\学籍管理\\src\\student.txt");

    public Readandwrite(){}

    public List<String> reader() {
        List<String> list = new ArrayList<>();
        //创建字符缓冲输入流
        try {
            br = new BufferedReader(
                    new InputStreamReader(new FileInputStream(file)));
            String line=null;
            while ((line = br.readLine()) != null) {
                list.add(line);
            }
            br.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return list;
    }

    public boolean writer(List<String> list){
        try {
            bw=new BufferedWriter(
                    new OutputStreamWriter(new FileOutputStream(file)));
            for(String s:list){
                bw.write(s);
                bw.newLine();
            }
            bw.close();
            return true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }
}

. 6.主类直接进行测试

package Test;

import Data.Database;
import service.Studentsystem;


/**
 * @author 莉莉安
 * @ClassName: IntelliJ IDEA
 * @Description: ${T主类提供测试}
 * @date 2021/3/1 15:37
 * ${tags}
 */
public class Test {
    public static void main(String[] args) {
        Database database = new Database();
        Studentsystem studentsystem=new Studentsystem(database);
        studentsystem.start();
    }


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值