import java.util.Scanner;
/**
* 学籍管理系统
* @author Tanker
* @version 4.6.0
*/
public class XueJiSystem {
//Java 入口
public static void main(String[] args) {
Scanner sc=new Scanner(System.in); //控制台输入
System.out.println("欢迎来到本学籍管理系统!");
for(;;){
System.out.println("请输入 1.添加学生信息 2.查询 3.修改姓名 4.删除 5.退出");
int num=sc.nextInt(); //接收用户输入
if(num==1){
Student s=new Student();//实例化一个学生对象
//分别给学生的属性赋值
System.out.println("请输入学生学号:");
s.setSid(sc.nextInt());
System.out.println("请输入学生姓名:");
s.setName(sc.next());
System.out.println("请输入学生年龄:");
s.setAge(sc.nextInt());
System.out.println("请输入学生地址:");
s.setAdd(sc.next());
//调用添加方法,并把学生对象传入里面,返回是否添加成功的标示
boolean flag=StudentOperator.addStudent(s);
//根据标示,判断是否添加成功
if(flag){
System.out.println("添加成功!");
}else{
System.out.println("添加失败!");
}
}
else if(num==2){
System.out.println("请输入学生学号:");
int sid=sc.nextInt();
//根据输入学号查询学生信息
Student s=StudentOperator.selectStudent(sid+"");
if(s==null){
System.out.println("该学生信息不存在!");
}else{
System.out.println(s.toString());toString 是默认的一个方法
}
}
else if(num==3){
System.out.println("请输入要修改姓名的学生学号:");
int sid=sc.nextInt();
//根据输入的学生ID。查询学生信息
Student s=StudentOperator.selectStudent(sid+"");
//如果学生信息存在
if(s!=null){
System.out.println("请设置新的姓名:");
String newName=sc.next();
//调用方法,并把学号、学生姓名、修改后的姓名传入里面,返回是否添加成功的标示
boolean flag=StudentOperator.updateStudent(sid,s.getName(),newName);
//判断修改是否成功
if(flag){
System.out.println("修改成功!");
}else{
System.out.println("修改失败!");
}
//如果学生信息不存在
}else{
System.out.println("该学生信息不存在!请添加");
}
}
else if(num==4){
System.out.println("请输入要删除的学生学号:");
int sid=sc.nextInt();
//根据输入的学生ID。查询学生信息
Student s=StudentOperator.selectStudent(sid+"");
if(s!=null){
//找到学生信息之后将学号传入删除方法并返回是否删除成功的标示
boolean flag=StudentOperator.deleteStudent(sid);
//判断是否删除成功
if(flag){
System.out.println("删除成功!");
}else{
System.out.println("删除失败!");
}
}else{
System.out.println("该学生信息不存在!");
}
}
else if(num==5){
System.out.println("系统已退出!");
break;
}else{
System.out.println("输入有误!请重输");
}
}
}
}
//学生类
public class Student {
private int sid;// 学号
private String name;// 姓名
private int age;// 年龄
private String add;// 家庭住址
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAdd() {
return add;
}
public void setAdd(String add) {
this.add = add;
}
//显示查询结果 每个类都有toString方法
@Override
public String toString() {
return "Student [sid=" + sid + ", name=" + name + ", age=" + age + ", add=" + add + "]";
}
}
//控制类,围绕数组展开增删改查四大方法
public class StudentOperator {
static Student stu[]=new Student[10];//用于存放学生对象
// 查询方法
public static Student selectStudent(String sid){
Student s=null;//定义一个学生类的变量s 定义为空
//遍历数组
for(int i=0;i<stu.length;i++){
//当数组元素不为空时
if(stu[i]!=null){
//判断该元素的sid跟外部传入的sid是否相等
if(stu[i].getSid()==Integer.parseInt(sid)){
s=stu[i];//如果相等就把该元素赋值给s
}
}
}
return s;//返回学生类s
}
// 添加学生信息
public static boolean addStudent(Student s){
//定义一个int类型的变量index,赋值为-1,用于标记数组下标
int index=-1;
//遍历数组,给要添加的学生找个空位
for(int i=1;i<stu.length;i++){
if(stu[i]==null){
index=i;//有空位就将下标赋值给index,并停止循环
break;
}
}
//通过index下标的值判断添加情况
if(index==-1){
return false; //位置满了添加失败
}else{
stu[index]=s; //将对象学生存入数组
return true; //添加成功
}
}
// 删除
public static boolean deleteStudent(int sid){
//定义一个布尔类型的变量flag 初始化为false
boolean flag=false;
//遍历数组
for(int i=0;i<stu.length;i++){
//当数组不为空时
if(stu[i]!=null){
//根据外部传入的sid判断数组中是否存在
if(stu[i].getSid()==sid){
stu[i]=null;//存在的话将数组元素清空(赋值为空)
flag=true;//flag变更为true,同时终止循环
break;
}
}
}
return flag; //返回布尔值flag
}
// 修改信息
public static boolean updateStudent(int sid,String field,String newValue){
//定义一个布尔类型的变量flag 初始化为false
boolean flag=false;
//遍历数组
for(int i=0;i<stu.length;i++){
//当数组不为空时
if(stu[i]!=null){
//根据外部传入的sid判断数组中是否存在
if(stu[i].getSid()==sid){
stu[i].setName(newValue);//存在的话将数组元素的name设置为新的值
flag=true;//flag变更为true,同时终止循环
break;
}
}
}
return flag;//返回布尔值flag
}
}
转载于:https://blog.51cto.com/12170190/1867655