前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java基础---学生信息管理系统(借助Array List)

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

作者头像
李志伟
发布2019-12-17 17:26:21
1.4K0
发布2019-12-17 17:26:21
举报
文章被收录于专栏:为学为学

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

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|\t\t学号\t\t|\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.最后写上主方法,就可以进行使用

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档