Java学生成绩管理系统控制台版本

Java学生成绩管理系统控制台版本

源码:https://download.csdn.net/download/weixin_46683845/15232755

students类
Java集合进行排序有两种方法,这里使用实现comparable接口,重写其compareTo()方法实现

package com.llt.model;

import com.sun.org.apache.regexp.internal.recompile;

/**
 * 学生管理系统
 * Comparable实现排序
 * 
 *
 */

public class Students implements Comparable<Students>{
     private  int id; // 主键
	 private String classes;  //班级
	 private String number; // 学号
	 private String name; // 姓名
	 private String subject; // 科目
	 private int schoolYear; // 学年
	 private int grades; // 成绩
	public  int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getClasses() {
		return classes;
	}
	public void setClasses(String classes) {
		this.classes = classes;
	}
	public String getNumber() {
		return number;
	}
	public void setNumber(String number) {
		this.number = number;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSubject() {
		return subject;
	}
	public void setSubject(String subject) {
		this.subject = subject;
	}
	public int getSchoolYear() {
		return schoolYear;
	}
	public void setSchoolYear(int schoolYear) {
		this.schoolYear = schoolYear;
	}
	public int getGrades() {
		return grades;
	}
	public void setGrades(int grades) {
		this.grades = grades;
	}
	public Students() {
		
	}
	public Students(int id, String classes, String number, String name, String subject, int schoolYear, int grades) {
		this.id = id;
		this.classes = classes;
		this.number = number;
		this.name = name;
		this.subject = subject;
		this.schoolYear = schoolYear;
		this.grades = grades;
	}
	@Override
	public String toString() {
		return " [序号=" + id + " 班级=" + classes + " 学号=" + number + " 姓名=" + name + ", 科目="
				+ subject + " 学年=" + schoolYear + " 成绩=" + grades + "]"+"\n";
	}
	/**
	 * 重写排序方法
	 */
	@Override
	public int compareTo(Students o) {
		return (int)(o.grades-this.grades);
	}
	 
	 
}

StudentDao类

package com.llt.dao;

import java.util.List;

import com.llt.model.Students;

public interface StudentsDao {
	/**
	 * 显示学生信息
	 * @return
	 */
	// 查询列表
	 List<Students> findStudentsAll();
	 // 添加学生信息
	int addStudents(Students students);
	// 查询序列号是否已经存在
	int IdIsExist(int id);
	// 根据学号查询学生信息
	Students selectByNumber(String number);
	// 查询姓名是否已经存在
	int  nameIsExist(String name);
	// 根据学号删除学生信息
	int deleteByNumber(String number);
	// 修改学生信息
	int updaStudents(String sub,int grade,String number);
	// 排序
	List<Students> ordList();
}

StudentDaoImpl类

package com.llt.dao;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

import com.llt.model.Students;
import com.sun.org.apache.regexp.internal.recompile;
import com.sun.xml.internal.bind.v2.model.core.ID;


public class StudentsDaoImpl implements StudentsDao{

	static List<Students> students=new ArrayList<>();
	
	static{
		students.add(new Students(1, "软工18级", "20180100177", "黎明", "理论", 2020, 80));
		students.add(new Students(2, "软工18级", "20180100198", "刘德华", "机试", 2020, 82));
		students.add(new Students(3, "软工18级", "20180100199", "陈岚", "理论", 2020, 78));
		students.add(new Students(4, "软工18级", "20180100190", "吴峰", "机试", 2020, 90));
	}

	/**
	 * 返回学生信息列表
	 */
	@Override
	public List<Students> findStudentsAll() {
		return students;
	}

	/**
	 * 添加学生信息
	 */
	public int addStudents(Students student) {
		if(student!=null) {
			students.add(student);
			return 1;
		}
		return 0;
		
		
		
	}

	

	/**
	 * 根据学号查询学生
	 */
	@Override
	public Students selectByNumber(String number) {
		for(Students stu : students) {
			if (stu.getNumber().equals(number)) {
				return stu;
			}
		}
		return null;
	}

	/**
	 * 根据学号删除学生
	 */
	public int deleteByNumber(String number) {
		for(Students stu : students) {
			if (stu.getNumber().equals(number)) {
				students.remove(stu);
				return 1;
			}
		}
		return 0;
	}

	/**
	 * 查询姓名是否存在,默认为不存在返回1,如果存在则返回零
	 */
	@Override
	public int nameIsExist(String name) {
		for(Students stu : students) {
			if (stu.getName().equals(name)) {
				return 0;
			}
		}
		return 1;
	}

	/**
	 * 查询序列号是否存在,默认为不存在返回1,如果存在则返回零
	 */
	@Override
	public int IdIsExist(int id) {
		for(Students stu : students) {
			if (stu.getId()==id) {
				return 0;
			}
		}
		return 1;
	}

	/**
	 * 修改学生信息
	 */
	@Override
	public int updaStudents(String sub,int grade,String number) {
		for(Students stu : students) {
			if (stu.getNumber().equals(number)) {
				stu.setSubject(sub);
				stu.setGrades(grade);
				return 1;
			}
		}
		return 0;
	}

	/**
	 * 对成绩进行降序排序
	 */
	@Override
	public List<Students> ordList() {
		Collections.sort(students);
		return students;
	}
}

测试类


```java
package com.llt.test;


import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;


import com.llt.dao.StudentsDao;
import com.llt.dao.StudentsDaoImpl;
import com.llt.model.Students;



import java.util.Scanner;
/**
 * 学生管理测试类
 * @author LENOVO
 *
 */

public class StudentsTest{
	
	static Scanner in=new Scanner(System.in);
	public static void main(String[] args) {
		StudentsDao studentsDao=new StudentsDaoImpl();
		while (true) {
			System.out.println(studentsDao.findStudentsAll());
			System.out.println("请选择:添加 1  删除2  修改3  查询4   排序5  退出6");
			int input=in.nextInt();
			if(input==6){
				System.out.println("退出系统");
				System.exit(0);
			}
			switch(input){
			case 1:add();break;//添加学生信息
			case 2:delete();break;//删除学生信息
			case 3:change();break;//修改学生信息
			case 4:select();break;//查询学生信息
			case 5:order();break;//排序
			}
			
		}
	
		
	}

	/**
	 * 排序
	 */
	private static void order() {
		StudentsDao stuD=new StudentsDaoImpl();
		List<Students> sList= stuD.ordList();
		for(Students stu:sList) {
			System.out.println(stu.toString());
		}
	}

	/**
	 * 根据学号查询学生信息
	 */
	private static void select() {
		System.out.println("----查询学生信息-----");
		System.out.println("请输入要查询的学生学号");
		String inputNumber=in.next();
		StudentsDao stuD=new StudentsDaoImpl();
		// 调用dao层中的selectByNumber方法进行查询
		Students stu = stuD.selectByNumber(inputNumber);
		System.out.println("学生信息如下:");
		System.out.println(stu.toString());
	}

	/**
	 * 修改学生
	 * 因为序号跟学号姓名固定,故不可修改
	 */
	private static void change() {
		System.out.println("----修改学生信息-----");
		System.out.println("请输入要修改的学生学号");
		String inputNumber=in.next();
		// 根据学号查询学生信息
		StudentsDao stuD=new StudentsDaoImpl();
		Students stu = stuD.selectByNumber(inputNumber);
		System.out.println("该学生的信息如下:");
		System.out.println(stu.toString());
		// 查询该学生的姓名
		String oldName = stu.getName();
		System.out.println("----请输入科目与成绩-----");
		String sub=in.next();//科目
		int grade=in.nextInt();//成绩
		Students student = new Students();
		student.setSubject(sub);
		student.setGrades(grade);
		int res = stuD.updaStudents(sub,grade,inputNumber);
		if (res>0) {
			System.out.println("修改姓名:"+oldName+"学号:"+inputNumber+"的成绩信息成功");
			System.out.println("修改后的科目与成绩信息为:"+student.getSubject()+"\t"+student.getGrades());
		}else {
			System.out.println("修改姓名:"+oldName+"学号:"+inputNumber+"失败");
		}
	}

	/**
	 * 删除学生
	 */
	private static void delete() {
		String no;
		System.out.println("---删除学生---");
		System.out.println("请输入要删除的学生学号");
		String inputNumber=in.next();
		System.out.println("该学生信息如下");
		StudentsDao stuD=new StudentsDaoImpl();
		Students stu = stuD.selectByNumber(inputNumber);
		if (stu!=null) {
			int id = stu.getId();
			String number = stu.getNumber();
			int res = stuD.deleteByNumber(number);
			if (res>0) {
				System.out.println("删除学生学号为:"+stu.getNumber()+"姓名为:"+stu.getName()+"成功");
			}else {
				System.out.println("删除学生学号为:"+stu.getNumber()+"姓名为:"+stu.getName()+"失败");
			}
			
		}
			
	}

	/**
	 * 因为同一个学号只能有同一个姓名,故不允许有重名
	 */
	private static void add() {
		System.out.println("添加学生信息");
		System.out.println("----请输入学生信息(序号 班级 学号 姓名 科目 学年 成绩(中间用空格隔开))-----");
		int id=in.nextInt();//序号
		String tClass=in.next();//班级
		String number=in.next();//学号
		String name=in.next();//姓名
		String sub=in.next();//科目
		int year=in.nextInt();//学年
		int grade=in.nextInt();//成绩
		
		Students student = new Students(id, tClass, number, name, sub, year, grade);
		StudentsDaoImpl studentsDaoImpl = new StudentsDaoImpl();
		int nameIsExist = studentsDaoImpl.nameIsExist(name);
		int idIsExist = studentsDaoImpl.IdIsExist(id);
		if (nameIsExist>0&&idIsExist>0) {
			int addCount=studentsDaoImpl.addStudents(student);
			System.out.println(addCount>0?"添加姓名\t"+name+"\t学号\\t"+number+"成功":"添加"+name+"失败");
		}else if (nameIsExist<=0||idIsExist<=0) {
			System.out.println(name+"或"+id+"已经存在");
		}
		
		
	}



}




版权声明:本文为weixin_46683845原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。