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

来源:互联网 发布:游客人流量软件 编辑:程序博客网 时间:2024/05/22 15:17

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

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

               2、同时还可以进行:

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

                     (2)修改学生信息;

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

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



1.首先对学生的学号,姓名,性别,年龄,成绩这五个信息进行定义,为了不让所有人都能访问到,所以权限都定义为private,通过getter、setter方法进行访问:
/** *  * 设置学生信息 *  * @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.然后在一个新类中添加对学生信息的增删改查操作,并且要求能对用户输入的数据进行初步的判断:
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.再新建一个类,将这个类作为操作菜单,通过用户输入的数字调用之前的增删改查操作:

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