Java基础---学生信息管理系统(借助Array List)

2019-12-17 17:26:21 浏览数 (2)

需求: 制作一个简单的学生信息管理系统

1、通过键盘选择操作进行添加学生(学号,姓名,性别,年龄,成绩)的信息,这些信息通过数组存储。

2、同时还可以进行:

(1)查询某个或全体学生信息;

(2)修改学生信息;

(3)删除学生信息的操作。

要求: 有一定的优化,例如对用户输入信息是否符合要求的处理。

1.首先对学生的学号,姓名,性别,年龄,成绩这五个信息进行定义,为了不让所有人都能访问到,所以权限都定义为private,通过getter、setter方法进行访问:

代码语言:javascript复制
/**
 * 
 * 设置学生信息
 * 
 * @author Incentancy
 *
 */
public class Student {
	
	private String stuName;
	
	private String stuNo;
	
	private String gender;
	
	private int age;
	
	private int score;

	public String getStuName() {
		return stuName;
	}

	public void setStuName(String stuName) {
		this.stuName = stuName;
	}

	public String getStuNo() {
		return stuNo;
	}

	public void setStuNo(String stuNo) {
		this.stuNo = stuNo;
	}

	public String getGender() {
		return gender;
	}

	public void setGender(String gender) {
		this.gender = gender;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public int getScore() {
		return score;
	}

	public void setScore(int score) {
		this.score = score;
	}
	
}

2.然后在一个新类中添加对学生信息的增删改查操作,并且要求能对用户输入的数据进行初步的判断:

代码语言:javascript复制
import java.util.ArrayList;
import java.util.Scanner;

import com.xt.eleventhHW.stu.Student;

public class StuData {
	
		private ArrayList stus = new ArrayList();
		
		//static int index = 0;
		
		Scanner scanner = new Scanner(System.in);

		

		/**
		 * 增加学生信息
		 * @param stu
		 */
		public void addStu(Student stu){		
			stus.add(stu);
		}
		
		//输入学生信息
		public void append(){
			
			Student stu = new Student();
			
			/**
			 * 通过封装方法,将学生信息赋给stus
			 */
			stu.setStuName(name());
			
			stu.setStuNo(stuNum());
			
			stu.setGender(gender());
			
			stu.setAge(age());
			
			stu.setScore(score());
			
			//将stu中的信息增添到stus中
			addStu(stu);
			
			System.out.println("学生信息已添加!");
			System.out.println();
		}
		
		
		//得到学生姓名
		public String name(){
			
			String name;
			
			System.out.println("请输入学生的姓名:");
			name = scanner.next();
			
			return name;
		}
		
		
		//得到学生学号
		public String stuNum(){
			
			String stuNum;
			
			System.out.println("请输入学生的学号:");
			stuNum = scanner.next();
			
			
			//如果学号不为11位,则重新输入,直到学号正确
			if(stuNum.length() != 11){
				System.out.println("您输入的学号有误!请重新输入!");
				stuNum();	
			}
					
			//如果学号已存在,则重新输入,直到不存在
			for(int i = 0; i < stus.size(); i  ){
				if(stuNum.equals(stus.get(i).getStuNo())){
					System.out.println("该学号已存在!请重新输入!");
					stuNum();
					break;
				}
			}
			
			return stuNum;
		}
		
		//得到学生的性别
		public String gender(){
			
			String stuGender;
			
			System.out.println("请输入学生的性别:");
			stuGender = scanner.next();
			
			if(!stuGender.equals("男") && !stuGender.equals("女") ){
				System.out.println("您输入的学生性别有误!请重新输入!");
				gender();
			}
			
			return stuGender;
		}
		
		//得到学生的年龄
		public int age(){
			
			int stuAge;
			
			System.out.println("请输入学生的年龄:");
			stuAge = scanner.nextInt();
			
			if(stuAge < 0 || stuAge >=  80){
				System.out.println("您输入的年龄有误!请重新输入!");
				age();
			}
			
			return stuAge;
		}
		
		//得到学生的成绩
		public int score(){
			int stuScore;
			
			System.out.println("请输入学生的成绩:");
			stuScore = scanner.nextInt();
			
			if(stuScore < 0 || stuScore > 100){
				System.out.println("您输入的成绩有误!请重新输入!");
				score();
			}
			
			return stuScore;
		}
		
		
		/**
		 * 
		 * 删除学生信息
		 * 
		 * @param stuNo
		 */
		public void delStu(){
			
			System.out.println("请输入您想删除的学号:");
			String stuNo = scanner.next();
			
			boolean isDel = false;
			
			for(int i = 0; i < stus.size(); i  ){
				if(stuNo.equals(stus.get(i).getStuNo())){
					isDel = true;
					stus.remove(i);
					break;
				}
			}
			
			if(isDel){
				System.out.println("删除操作已完成!");
			}else{
				System.out.println("无此学生信息!");
			}
		}
		
		
		/**
		 * 修改学生信息:
		 * 1.姓名
		 * 2.学号
		 * 3.性别
		 * 4.年龄
		 * 5.成绩
		 * @param stu
		 */
		public void updateStu(String stuNo){
			
			boolean flag = false;
			
			for(int i = 0; i < stus.size(); i   ){
				if(stuNo.equals(stus.get(i).getStuNo())){
					
					flag = true;
					
					information();
					
					switch(scanner.nextInt()){
						case 1:
							String name = name();
							stus.get(i).setStuName(name);;
							break;
						case 2:
							String stuNum = stuNum();
							stus.get(i).setStuNo(stuNum);
							break;
						case 3:
							String gender = gender();
							stus.get(i).setGender(gender);
							break;
						case 4:
							int age = age();
							stus.get(i).setAge(age);
							break;
						case 5:
							int score = score();
							stus.get(i).setScore(score);
							break;
						case 0:
							System.exit(0);
					}
					
					break;
				}
				
				if(!flag)
					System.out.println("您输入的学号不存在!");
			}
		}
		
		public void information(){
			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("0.退出");
			System.out.println("请输入序号:");
		}
		/**
		 * 根据学号查询学生信息
		 * 如果存在,输出学生信息
		 * @param stuNo
		 */
		public void queryStuByStuNo(String stuNo){
			
			boolean flag = false;
			
			for(int i = 0; i < stus.size(); i   ){
				if(stuNo.equals(stus.get(i).getStuNo())){
					System.out.println("姓名:"   stus.get(i).getStuName());
					System.out.println("学号:"   stus.get(i).getStuNo());
					System.out.println("性别:"   stus.get(i).getGender());
					System.out.println("年龄:"   stus.get(i).getAge());
					System.out.println("成绩:"   stus.get(i).getScore());
					
					System.out.println(" --------------- ------------------------------- --------------- --------------- --------------- ");
					System.out.println("|t姓名t|tt学号tt|t性别t|t年龄t|t成绩t|");
					System.out.println(" --------------- ------------------------------- --------------- --------------- --------------- ");
					System.out.println("|t"   stus.get(i).getStuName()   "t|t    "   stus.get(i).getStuNo()   "     t|t"   stus.get(i).getGender()   
							"t|t"    stus.get(i).getAge()   "t|t"   stus.get(i).getScore()   "t|");
					System.out.println(" --------------- ------------------------------- --------------- --------------- --------------- ");
					
					flag = true;
				}
			}
			
			if(!flag)
				System.out.println("该学号不存在!");
		}
}

3.再新建一个类,将这个类作为操作菜单,通过用户输入的数字调用之前的增删改查操作:

代码语言:javascript复制
import java.util.Scanner;

public class SystemService {
	
	Scanner scanner = new Scanner(System.in);
	
	
	public void bulletin(){
		System.out.println("1.添加学生信息");
		System.out.println("2.删除学生信息");
		System.out.println("3.修改学生信息");
		System.out.println("4.查询学生信息");
		System.out.println("0.退出系统");
		
		System.out.println("请输入序号:");
	}
	
	public void serviceChoose(){
		
		StuData sd = new StuData();
		
		System.out.println("-----欢迎使用学生信息管理系统-----");
		
		while(true){
			
			bulletin();
			
			switch(scanner.nextInt()){
				
				case 1:
					sd.append();
					System.out.println();
					break;
				case 2:
					sd.delStu();
					System.out.println();
					break;
				case 3:
					System.out.println("请输入要修改的学生的学号:");
					sd.updateStu(scanner.next());
					System.out.println();
					break;
				case 4:
					System.out.println("请输入要查询的学生的学号:");
					sd.queryStuByStuNo(scanner.next());
					System.out.println();
					break;
				case 0:
					System.exit(0);//退出系统
			}
		}
	}
}

4.最后写上主方法,就可以进行使用

0 人点赞