小言_互联网的博客

java 用数组和对象 做的 简易版的学生信息管理系统

307人阅读  评论(0)
package 数组作业;

public class Student {
    String stuName,stuSex;
    int stuAge,stuSno;
}
package 数组作业;


public class opreate {
	Student[] students = new Student[100];//创建一个放学生对象的数组
	Student stu = new Student();
	int index=0;
	//主菜单
		public  void menu() {
			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("6.根据学号删除某一个学生");
			System.out.println("7.根据学号升序排序");
			System.out.println("8.根据年龄降序排序");
			System.out.println("9.退出");
			System.out.println("请输入你的选择:");

		}
	//增加学生
	public boolean addstu(Student stu) {
//		for(int i = 0;i<students.length;i++) {
//			if(students[i]==null) {
//				students[i]=stu;
//				return true;
//			}
//		}
//		return false;
		if(index!=students.length) {
			students[index++]=stu;
			return true;
		}
		return false;
		
	}
    //查看所有学生信息
	public void show() {
		for(Student stu:students) {
		if(stu!=null) {
			System.out.println(stu.stuName+stu.stuAge+stu.stuSex+stu.stuSno);
		}else {
			break;
		}		
	  }
	}
	//
	//根据学号查看一个学生的信息
	public Student queryStudentById(int sno) {
		for(Student newstu : students) {
			if(newstu!=null) {
				if(newstu.stuSno==sno) {///判断当前学生的学号是否和待查询的学号一致
					return newstu;				
				}
			}else {
				return null;
			}
		
		}
		return null;
	}
	
	// 根据性别查看同性别的学生信息
	
	public Student[] queryStudentBySex(String sex) {
		//创建一个用于存储学生对象的数组
		Student[] stuSex = new Student[index];
		//循环遍历,查找同性别的学生,并将其添加到stuSex数组中
		for(int i=0,j=0;i<index;i++) {
			if(students[i].stuSex.equals(sex)) {
				stuSex[j]= students[j];
				j++;//表示同性别夫人学生数组的下标
			}
		}
		return stuSex;
	}
	
	
	//根据学号删除某一个学生
	public boolean deletStudentById(int sno) {
		//遍历数组查找待删除的元素
		for(int i =0;i<index;i++) {
				//使用数组已存储的学生的学号和传入的学号判断是否相等
				if(students[i].stuSno==sno) {
					//找到待删除的元素,i为待删除的下标
				for(int j= i;j<index;j++) {
					//循环移动待删除元素后的元素,向前移动
					students[j]=students[j+1];
				}
				index--;//待插入的下标前移
				return true;
			 }
		}
		return false;
	}
	
	//根据学号修改学生信息
	public boolean updateStudentById(Student stu) {
		//遍历数组查找待修改的元素
		for(int i =0;i<index;i++) {
			//使用数组已存储的学生的学号和传入的学号判断是否相等
			if(students[i].stuSno==stu.stuSno) {
				//为当前元素重新赋值
				students[i]=stu;
				return true;
			}
		}
		return false;
	}
	
	//根据学号升序排列
	public void studentByIdDesc() {
		for(int i=0;i<index-1;i++) {
			for(int j=0;j<index-i-1;j++) {
				if(students[j].stuSno>students[j+1].stuSno ){
					Student temp = students[j];
					students[j] = students[j+1];
					students[j+1] = temp;
				}
			}
		}
	}
	
	//根据年龄降序排列
	public  void studentByAgeDesc() {
		for(int i=0;i<index-1;i++) {
			for(int j=0;j<index-i-1;j++) {
				if(students[j].stuAge<students[j+1].stuAge ){
					Student temp = students[j];
					students[j] = students[j+1];
					students[j+1] = temp;
				}
			}
		}
	}
}
package 数组作业;

import java.util.Scanner;

public class test {

	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		opreate stuOp = new opreate();
		Scanner input = new Scanner(System.in);
		while(true) {
			stuOp.menu();
			int answer = input.nextInt();

		     switch(answer){
		         case 1 :
		        	 for(int i=0;i<2;i++) {
		     			System.out.println("请输入姓名");
		     			String name = input.next();
		     			System.out.println("请输入年龄");
		     			int  age = input.nextInt();
		     			System.out.println("请输入性别");
		     			String sex = input.next();
		     			System.out.println("请输入学号");
		     			int sno = input.nextInt();
		     			//将输入的变量存入到Student对象中
		     			Student stu = new Student();
		     			//为对象的属性赋值
		     			stu.stuName= name;
		     			stu.stuAge = age;
		     			stu.stuSex = sex;
		     			stu.stuSno = sno;
		     			
		     			//调用添加方法将student对象添加到数组中
		     			boolean boo = stuOp.addstu(stu);
		     			if(boo) {
		     				System.out.println("添加成功");
		     			}
		     		}
		        	 stuOp.menu();
		     		 break;
		        	 
		         case 2 :
		        	 System.out.println("请输入学号");
		     		 int no = input.nextInt();
		     		//根据学号查找到待修改的学生对象
		     		Student  stu= stuOp.queryStudentById(no);
		     		if(stu!=null) {
		     			System.out.print("请输入新的姓名:");
		     			String name = input.next();
		     			System.out.print("请输入新的年龄:");
		     			int age = input.nextInt();
		     			System.out.print("请输入新的性别:");
		     			String sex = input.next();
		     			//重新设置stu对象的值
		     			stu.stuName=name;
		     			stu.stuAge=age;
		     			stu.stuSex=sex;
		     			//调用修改方法进行修改
		     			boolean booo = stuOp.updateStudentById(stu);
		     			if(booo) {
		     				System.out.println("修改成功");
		     				System.out.println(stu.stuAge+" "+stu.stuName+" "+stu.stuSex+" "+stu.stuSex);
		     			}else {
		     				System.out.println("修改失败");
		     			}
		     		}
		     		stuOp.menu();
		     		 break;
		         case 3:
		        	 stuOp.show();
		        	 stuOp.menu();
		     		 break;
		         case 4:
		        		System.out.println("请输入学号");
		        		int newsno = input.nextInt();
		        		Student stu1  = stuOp.queryStudentById(newsno) ;
		        		if(stu1!=null) {
		        			System.out.println(stu1.stuAge+stu1.stuName+stu1.stuSex+stu1.stuSno);
		        		}else {
		        			System.out.println("该学生不存在");
		        		}
		        		stuOp.menu();
			     		 break;
		        		
		         case 5:
		        	    System.out.print("请输入性别:");
			     		String sex = input.next();
			     		stuOp.queryStudentBySex(sex);
			     		stuOp.show();
			     		stuOp.menu();
			     		 break;
		         case 6:
		        	 System.out.println("请输入学号");
		        		int nsno = input.nextInt();
		        		boolean boo = stuOp.deletStudentById(nsno);
		        		if(boo) {
		        			System.out.println("删除成功");
		        			stuOp.show();
		        		}else {
		        			System.out.println("删除失败");
		        		}
		        		stuOp.menu();
			     		 break;
		         case 7:
		        	 System.out.println("按学号降序排列");
		     		stuOp.studentByIdDesc();
		     		stuOp.show();
		     		stuOp.menu();
		     		 break;
		         case 8:
		        	 System.out.println("按年龄降序排列");
		     		stuOp.studentByAgeDesc();
		     		stuOp.show(); 
		     		stuOp.menu();
		     		 break;
		         case 9 :
		        	 System.out.println("谢谢你的使用");
		        	 stuOp.menu();
		     		 break;
		     	default:
		     		 System.out.println("你输入的代码有误,请重新输入");
		     		stuOp.menu();
		        	 break;
		     }

		}
		
	}
	
}

 


转载:https://blog.csdn.net/weixin_44285674/article/details/101843310
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场