mini学生管理系统 (Java)

mini系统主页面:

在这里插入图片描述

系统说明:

由于是mini系统,所以很多功能没有特别完善,整个信息保存至内存链表,没有利用IO流导出保存,所以实施各项功能的前提都是先进行2号功能,逐个添加学生信息,然后才可实现其它功能,否则会提示返回信息。一旦退出程序进程,所有信息都不被保存。(共四个文件,放至同一包下即可!)

在这里插入图片描述
2号功能,可连续录入,信息录入完毕后,根据相关提示,可进行不同选项。
在这里插入图片描述

1号功能,展示所有录入学生信息

在这里插入图片描述
其它功能分别安札提示,输入学号,完成其相应的功能操作,由于mini系统,所以要保证学号为主键(唯一性)的前提,否则可能会影响功能的实现

系统代码:

学生信息结构类

public class StuNode {
	public int id;         //学号
	public String name;    //姓名
	public String classid; //班级
	public double score;   //分数
	public StuNode next;
	//生成构造函数
	public StuNode(int id, String name, String classid, double score) {
		super();
		this.id = id;
		this.name = name;
		this.classid = classid;
		this.score = score;
	}
}

mini系统主页面及相关框架类

import java.util.Scanner;

public class Index {
	Scanner scanf = new Scanner(System.in);
	//创建头结点
	StuNode head = new StuNode(0,"","",0);
	//获取头结点的方法
	public StuNode getHead() {
		return head;
	}
	//主页面显示方法
	public void show_index() {
		System.out.println("---------------欢迎使用mini学生管理系统---------------");
		System.out.println("|                  1.查看学生总信息                               |");
		System.out.println("|                  2.添加学生信息                                   |");
		System.out.println("|                  3.修改学生成绩信息                            |");
		System.out.println("|                  4.删除学生信息                                   |");
		System.out.println("|                  5.查找学生信息                                   |");
		System.out.println("-----------------------------------------------------");
		System.out.print("请输入您需要的功能号:");
		//调用选择方法
		choice(scanf.nextInt());
	}
	public void choice(int n) {
		//生成StulistDemo对象,用于相关功能进行
		StulistDemo stu = new StulistDemo();
		//增强程序健壮性,排出其他乱码干扰程序进行(对于非法数字进行再输入)
		while(true) {
			if(n >= 1 && n <= 5)
				break;
			else {
				System.out.println("您所输入的号码无效,请重新输入!!!");
				System.out.print("请重新输入您需要的功能号:");
				n = scanf.nextInt();
			}
		}
		//开关语句选择相应的功能,然后调用其具体方法
		while(true){
			switch(n){
				case 1:stu.show(getHead());break;
				case 2:stu.add(getHead(),stu.create());break;
				case 3:stu.modifi(getHead());break;
				case 4:stu.delete(getHead());break;
				case 5:stu.find(getHead());break;
			}
			//创建死循环,完成功能后再次返回主页面
			show_index();
		}
	}
}

学生系统功能实现类


import java.util.Scanner;

public class StulistDemo {
	Scanner scanf = new Scanner(System.in);
	
	//学生信息展示
	public void show(StuNode head) {
		StuNode temp = head;
		//链表判空
		if(temp.next == null) {
			System.out.println("(还没有存储学生信息,链表为空,先试试功能2吧!!!)");
			return;
		}
		//遍历输出每一个结点信息
		else {
			System.out.println("-----------mini学生管理系统学生信息表-----------");
			System.out.println("                    学号     姓名      班级     总成绩                      ");
			System.out.println();
			while(temp.next != null) {
				temp = temp.next;
				System.out.println("            "+temp.id+"    "+temp.name+"    "+temp.classid+"     "+temp.score);
			}
		}
		System.out.println();
	}
	
	//添加学生信息方法
	public void add(StuNode head,StuNode pre) {
		//获取头结点
		StuNode temp = head;
		//遍历找到尾结点
		while(true) {
			if(temp.next == null)
				break;
			temp = temp.next;
		}
		temp.next = pre;
		temp = pre;
		temp.next = null;
		
		System.out.println("(该学生信息已录入完毕!!)                  是否继续录入?  0否  1是");
		int flag = -1;
		flag = scanf.nextInt();
		//增强程序健壮性,排出其他乱码干扰程序进行(对于非法数字进行再输入)
		if(flag == 1) 
			add(head,create());

	}
	public StuNode create() {
		System.out.println("请输入所要添加的学生信息");
		System.out.print("学号:");
		int id = scanf.nextInt();
		System.out.print("姓名:");
		String name = scanf.next();
		System.out.print("班级:");
		String classid = scanf.next();
		System.out.print("成绩:");
		double socer = scanf.nextInt();
		StuNode pre = new StuNode(id,name,classid,socer);
		return pre;
	}
	//学生成绩修改方法(保证学号为主键)
	public void modifi(StuNode head) {
		StuNode temp = head;
		//判空条件
		if(temp.next == null) {
			System.out.println("(还没有存储学生信息,链表为空,先试试功能2吧!!!)");
			return;
		}
		System.out.print("请输入要修改学生的学号:");
		int num = scanf.nextInt();
		boolean flag = false;
		//遍历寻找该学生信息
		while(temp.next != null) {
			temp = temp.next;
			if(temp.id == num) {
				flag = true;
				break;
			}
		}
		//若找到则修改并输出修改后结果
		if(flag) {
			System.out.print("请输入修改后的分数:");
			temp.score = scanf.nextInt();
			System.out.println("-----------mini学生管理系统学生信息表-----------");
			System.out.println("                    学号     姓名      班级     总成绩                      ");
			System.out.println();
			System.out.println("            "+temp.id+"    "+temp.name+"    "+temp.classid+"     "+temp.score+"                               (修改成功!!)");
			System.out.println();
		}
		else
			System.out.println("很抱歉!!没有查找到该学生信息。");
	}
	//学生信息删除方法
	public void delete(StuNode head) {
		StuNode temp = head;
		//判空条件
		if(temp.next == null) {
			System.out.println("(还没有存储学生信息,链表为空,先试试功能2吧!!!)");
			return;
		}
		System.out.print("请输入要删除学生的学号:");
		int num = scanf.nextInt();
		boolean flag = false;
		//遍历查找
		while(temp.next != null) {
			if(temp.next.id == num) {
				flag = true;
				break;
			}
			temp = temp.next;
		}
		//若找到则删除相关信息
		if(flag) {
			temp.next = temp.next.next;
			System.out.println("(该学生信息已删除!!!)");
			System.out.println();
		}
		else
			System.out.println("很抱歉!!没有查找到该学生信息。");
	}
	//单个学生信息查找方法
	public void find(StuNode head) {
		StuNode temp = head;
		//判空条件
		if(temp.next == null) {
			System.out.println("(还没有存储学生信息,链表为空,先试试功能2吧!!!)");
			return;
		}
		System.out.print("请输入要查找学生的学号:");
		int num = scanf.nextInt();
		boolean flag = false;
		//判空条件
		while(temp != null) {
			temp = temp.next;
			if(temp.id == num) {
				flag = true;
				break;
			}
		}
		if(flag) {
			System.out.println("-----------mini学生管理系统学生信息表-----------");
			System.out.println("                    学号     姓名      班级     总成绩                      ");
			System.out.println();
			System.out.println("            "+temp.id+"    "+temp.name+"    "+temp.classid+"      "+temp.score);
			System.out.println();
		}
		else
			System.out.println("很抱歉!!没有查找到该学生信息。");
	}
}

创建对象,开始生成系统


public class Main {
	public static void main(String[] args) {
	//生成系统主界面类对象
		Index index = new Index();
		index.show_index();
	}
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值