栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

刚学java也能看懂的学生管理系统

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

刚学java也能看懂的学生管理系统

本人自学java一周,就可以写自己的一个小小项目了,不用感觉看不懂,全是白话,都能看懂,该程序主要实现对数据的增、删、改、查等功能,耐住性子往下看,相信你一定也能拿下!!!!

目录

一、需要掌握哪些知识点?

二、实施步骤

1.导包

2.创建学生类

3.测试

3.1  菜单

3.2 添加学生信息

3.3  修改学生信息

3.4  删除学生信息

 3.5  查看学生信息

3.6  main函数的调用

总结


一、需要掌握哪些知识点?

循环语句:for、do..while、while

判断语句:if

集合:ArrayList

类的定义

封装:private

二、实施步骤

1.导包

       什么导包啥的咱们也不用深入了解,都是小白,在这个管理系统,你们只需要记住,咱们只需要用到这两个包,键盘录入包,集合包;

代码如下(示例):

import java.util.Scanner;
import java.util.ArrayList;

2.创建学生类

       看不懂没事,在这我简单讲解一下这些关键字的含义,封装(private)的意思就是防止外部用户直接对系统内部的成员数据进行操作,说白了就是起到保护的作用,但难道这就意味着我们自己写的代码,自己也不能对数据进行操作吗,当然不行!!!,所以在该类中需要写成员方法:修改成员数据set成员名(),获取成员数据get成员名()。在这你可能会觉得总不能一个一个用set来给成员进行赋值吧,当然不是!!!,所以这里我们用带参构造方法public 类名(类型 成员变量){},在我们不写构造方法时,类中会自动默认我们写了一个无参构造方法,但我们写了带参构造时就一定要写无参,否则后续的bug你不可想象。至于this关键字就是当你的形参名和成员名一致时,起到一个指向的作用,可以理解为给成员加了一个标志,让你的形参名和成员名有些许不同;

代码如下:

//定义学生对象
public class Student {
    private String sid;//学号
    private String name;//姓名
    private String age;//年龄
    private String address;//居住地

    //无参、带参构造方法
    public Student(){

    }
    public Student(String sid,String name,String age,String address){
        this.sid=sid;
        this.name=name;
        this.age=age;
        this.address=address;
    }

    //成员方法
    public void setAge(String age) {
        this.age = age;
    }
    public void setName(String name) {
        this.name = name;
    }
    public void setSid(String sid) {
        this.sid = sid;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public String getName() {
        return name;
    }
    public String getAddress() {
        return address;
    }
    public String getAge() {
        return age;
    }
    public String getSid() {
        return sid;
    }
}
v

3.测试

3.1  菜单

       一个简单的输出语句即可完成!

代码如下:

public static void mean(){
        System.out.println("------------学生管理系统------------");
        System.out.println("------------1、添加学生信息----------");
        System.out.println("------------2、修改学生信息----------");
        System.out.println("------------3、删除学生信息----------");
        System.out.println("------------4、查看学生信息----------");
        System.out.println("------------5、退出----------------");
    }

3.2 添加学生信息

        实现思路:不知你有没有遇到过你的名字和别人的名字一样的情况,但在这我们考虑的不是这个,而是学号,名字可以相同,但学号不行,所以首先需要写一个方法来判断学号是否被使用,如果被使用,我们需要让用户重新输入,每次的数据我们都导入至我们的集合中;

 //检查学号是否存在
    public static boolean isUsed(ArrayList array,String sid){
        boolean temp = false;//未被使用
        for(int i=0;i< array.size();i++){
            Student s=array.get(i);
            if (s.getSid().equals(sid)){
                temp=true;
                break;
            }//学号存在
        }
        return temp;
    }
    //添加学生
    public static void AddStudent(ArrayList array){
        //创建录入对象
        Scanner sc = new Scanner(System.in);
        //创建学生对象
        Student s=new Student();
        String name,sid,age,address;
        do{
            //数据输入
            System.out.println("请输入学号:");
            sid=sc.nextLine();
            //判断学号是否被使用
            boolean temp=isUsed(array,sid);
            if (temp){
                System.out.println("该学号已被使用,请重新输入");
                continue;
            }
            else{
                System.out.println("请输入姓名:");
                name=sc.next();
                System.out.println("请输入年龄:");
                age=sc.next();
                System.out.println("请输入居住地址:");
                address=sc.next();
                //传入学生对象
       
                //采用成员方法传
                s.setAddress(address);
                s.setAge(age);
                s.setName(name);
                s.setSid(sid);
                //保存至集合中
                array.add(s);
                break;
            }
        }while(true);
            System.out.println("添加成功!");
    }

测试如下:

查看信息:

 

3.3  修改学生信息

        实现思路:首先让用户输入需要修改的学号,然后判断学号是否存在,如果不存在让用户重新输入,存在则让用户输入需要修改的位置,这里才用do..while循环是防止用户需要修改多处信息;(equals是判断字符串的是否相同!)

public static void SetStudent(ArrayList array){
        Scanner sc =new Scanner(System.in);
        System.out.println("输入你需要修改的学生学号:");
        String sid = sc.nextLine();

        //判断输入学号是否存在
        int index=-1;//不存在

        for (int i=0;i< array.size();i++){
            Student s = array.get(i);
            if (s.getSid().equals(sid)){
                index=0;
                break;
            }//学号存在
        }

        if (index==-1){
            System.out.println("你输入的学号不存在,请重新输入:");
        }
        else{
            Student s=array.get(index);
            do {
                System.out.println("请输入需要修改的位置:");
                String flag = sc.next();
                String choose;
                if (flag.equals("姓名")) {
                    System.out.println("输入新的姓名:");
                    String name = sc.next();
                    s.setName(name);
                    System.out.println("是否还有别的信息需要更改(需要/不需要)");
                    choose = sc.next();
                    if (choose.equals("需要")){
                        continue;
                    }else
                        break;
                } else if (flag.equals("年龄")) {
                    System.out.println("输入新的年龄:");
                    String age = sc.next();
                    s.setAge(age);
                    System.out.println("是否还有别的信息需要更改(需要/不需要)");
                    choose = sc.next();
                    if (choose.equals("需要")){
                        continue;
                    }else
                        break;
                } else if (flag.equals("居住地")) {
                    System.out.println("输入新的居住地:");
                    String address = sc.next();
                    s.setAddress(address);
                    System.out.println("是否还有别的信息需要更改(需要/不需要)");
                    choose = sc.next();
                    if (choose.equals("需要")){
                        continue;
                    }else
                        break;
                } else
                    System.out.println("输入错误,没有该信息,请重新输入!");
            }while(true);
            System.out.println("修改成功!");
        }
    }

测试如下:

  

查看信息:

3.4  删除学生信息

        实现思路:首先也需要判断学号是否存在,不然删除啥啊,啥也删除不了。如果存在,采用for循环返回其在集合中的位置,届时直接删除即可!

public static void DropStudent(ArrayList array){
        Scanner sc =new Scanner(System.in);
        System.out.println("请输入你需要删除的学号:");
        String sid = sc.nextLine();
        int index=-1;//学号不存在

        //检查学号是否被使用
            for (int i = 0; i < array.size(); i++) {
                Student s = array.get(i);
                if (s.getSid().equals(sid)) {
                    index = i;
                    break;
                }//学号存在
            }
            if (index == -1) {
                System.out.println("你删除的学号不存在,请重新输入:");
            } else {
                array.remove(index);
                System.out.println("删除成功!");
            }

    }

查看有那些信息:

 

 删除操作后:

 删除003并查看:

 3.5  查看学生信息

        实现思路:首先判断集合中是否有数据,没有就提示用户输入,有则一个for循环,切记切记!!!,我们在输出时必须将集合中的数据拿出来给到学生类,采用学生类中的成员方法进行数据的输出,不然拿出的数据将是一片,你都不明白哪个是哪个的;(这里涉及到集合的含义:我简单讲一下就是集合能够将你的一串信息放在一块儿,并保持原有的属性,你可以类比为你在讲一个学生对象的信息传到集合时,集合就给这个对象分配了一个小"房子",把这个对象存进去,当你取时,也是"房子"里的信息全取);

public static void PrintStudent(ArrayList array){
        if (array.size()==0){
            System.out.println("无信息,请先添加信息再查询!");
            return;
        }
        System.out.println("学号tt姓名tt年龄tt居住地");
        for (int i=0;i< array.size();i++){
            Student s = array.get(i);
            System.out.println(s.getSid()+"tt"+s.getName()+"tt"+s.getAge()+"岁"+"t"+s.getAddress());

        }
    }

3.6  main函数的调用
public static void main(String[] args) {
        //创建集合对象
        ArrayList array=new ArrayList();
        //创建录入对象
        Scanner sc = new Scanner(System.in);
        while(true){
            mean();
            System.out.println("请输入你的选择:");
            int choose = sc.nextInt();
            switch (choose){
                case 1:{
                    AddStudent(array);
                    break;
                }
                case 2:{
                    SetStudent(array);
                    break;
                }
                case 3:{
                    DropStudent(array);
                    break;
                }
                case 4:{
                    PrintStudent(array);
                    break;
                }
                default:
                    System.out.println("谢谢使用!");
                    System.exit(0);
            }
        }
    }

总结

        积少成多,不必好高骛远,认真完成一个个小小的项目,回过头来你才会发现你的转变!!!

        以上只是我的一些理解,希望多多指正,大家一起探讨编程!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/777241.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号