一个简单的学生管理系统

源码地址:一个简单的学生管理系统 ,提取码:1234

今天整理资料,突然发现上学时写的一个简单的学生管理系统,记录一下当初渣渣的代码。主要要求如下:
1:可以定义学生人数
2:添加一个学生
3:查找一个学生
4:根据编号更新学生的基本信息
5:根据编号删除学生
6:根据编号输入学生各科成绩
7:根据某门成绩进行排序
8:根据总分进行排序
9:退出系统

实现过程
一、随便建一个java project,左边是项目列表,右边是结果界面
一个简单的学生管理系统_第1张图片
二、新建一个Student类。

package com.studentmanage;

/**学生类
 * @author ZQL
 */
public class Student {
	private int id;//编号
	private String name;//姓名
	private int age;//年龄
	private int java;//java课程
	private int html;//html课程
	private int sql;//sql课和
	private int sum;//总分
	private int avg;//平均分
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return this.name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return this.age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public int getJava() {
		return this.java;
	}
	public void setJava(int java) {
		this.java = java;
	}
	public int getHtml() {
		return this.html;
	}
	public void setHtml(int html) {
		this.html = html;
	}
	public int getSql() {
		return this.sql;
	}
	public void setSql(int sql) {
		this.sql = sql;
	}
	public int getSum() {
		return this.sum;
	}
	public void setSum() {
		//设置总分
		this.sum = this.java+this.html+this.sql;
	}
	public int getAvg() {
		return this.avg;
	}
	public void setAvg() {
		//设置平均分
		this.avg = this.sum/3;
	}
	//重写toString方法
	public String toString(){
		String msg="\t"+this.id+"\t"+this.name +"\t"+this.age+"\t"+this.java+"\t"+
	this.html+"\t"+this.sql+"\t"+this.sum+"\t"+this.avg;
		return msg;
	}
}

三、新建一个Admin类。

package com.studentmanage;

/**系统功能管理类
 * @author ZQL
 */
public class Admin {
	//创建学生类并实例化
	Student stu=new Student();
	/**添加学生方法
	 * @param name 姓名
	 * @param age 年龄
	 * @param arr 学生类数组
	 */
	public void create(String name,int age,Student[] arr){
		stu.setName(name);
		stu.setAge(age);
		int i=setIndex(arr);
		if(i==-1){
			System.out.println("学生人数已添加满,不能再添加");
		}else{
			stu.setId(i+1);
			arr[i]=stu;
		}
	}
	/**判断剩余的学生空间
	 * @param arr 学生类数组
	 * @return 返回-1说明已添加满
	 */
	public int setIndex(Student[] arr){
		for(int i=0;i<arr.length;i++){
			if(arr[i]==null){
				return i;
			}
		}
		return -1;
	}
	/**按编号查询学生方法输出
	 * @param id 编号
	 * @param arr 学生类数组
	 */
	public void select(int id,Student[] arr){
		int i=selectIndex(id,arr);
		if(i==-1){
			System.out.println("\t没有该编号的学生");
		}else{
			System.out.println(arr[i]);
		}
	}
	/**按编号查询学生所在的数组下标
	 * @param id 编号
	 * @param arr 学生类数组
	 * @return
	 */
	public int selectIndex(int id,Student[] arr){
		for(int i=0;i<arr.length;i++){
			if(arr[i].getId()==id){
				return i;
			}
		}
		return -1;
	}
	/**按姓名查询学生方法
	 * @param name 姓名
	 * @param arr 学生类数组
	 */
	public void select(String name,Student[] arr){
		int j = 0;
		for(int i=0;i<arr.length;i++){
			if(arr[i].getName().equals(name)){
				break;
			}else{
				j++;
			}
		}
		if(j==arr.length){
			System.out.println("\t没有该姓名的学生");
		}else{
			for(int i=0;i<arr.length;i++){
				if(arr[i].getName().equals(name)){
					System.out.println(arr[i]);
				}
			}
		}	
	}
	/**按编号更新学生姓名
	 * @param id 编号
	 * @param name 姓名
	 * @param arr 学生类数组
	 */
	public void update(int id,String name,Student[] arr){
		for(int i=0;i<arr.length;i++){
			if(arr[i].getId()==id){
				arr[i].setName(name);
			}
			System.out.println(arr[i]);
		}
	}
	/**按编号更新学生年龄
	 * @param id 编号
	 * @param age 年龄
	 * @param arr 学生类数组
	 */
	public void update(int id,int age,Student[] arr){
		for(int i=0;i<arr.length;i++){
			if(arr[i].getId()==id){
				arr[i].setAge(age);
			}
			System.out.println(arr[i]);
		}
	}
	/**按编号删除学生方法
	 * @param id 编号
	 * @param arr 学生类数组
	 */
	public void delete(int id ,Student[] arr){
		boolean bl = true;//是否继续查询,同时也可以用来判断是否有删除
		for(int i=0;i<arr.length;i++){
			if(arr[i]!=null && arr[i].getId()==id && bl){
				Student[] stu=new Student[1];
				//被删除学生后面的人往前移
				for(int j=i+1;j<arr.length;j++,i++){
					arr[i]=arr[j];
					if(arr[j]!=null) {
						arr[i].setId(arr[j].getId()-1);
					}
				}
				arr[arr.length-1]=stu[0];
				bl = false;
			}
		}
		if(bl) {
			System.out.println("没有这个编号");
		}
	}
	/**按编号输入学生成绩方法
	 * @param id 编号
	 * @param java java成绩
	 * @param html html成绩
	 * @param sql sql成绩
	 * @param arr 学生类数组
	 */
	public void scoreUpdate(int id,int java,int html,int sql,Student[] arr){
		for(int i=0;i<arr.length;i++){
			if(arr[i].getId()==id){
				arr[i].setJava(java);
				arr[i].setHtml(html);
				arr[i].setSql(sql);
				arr[i].setSum();
				arr[i].setAvg();
			}
		}
	}
	/**按java成绩排序
	 * @param arr 学生类数组
	 */
	public void javaArrays(Student[] arr){
		if(arr.length>1) {
			for(int i=0;i<arr.length;i++){
				for(int j=i+1;j<arr.length;j++){
					if(arr[i].getJava()>arr[j].getJava()){//升序排序
						String name1=arr[i].getName();
						String name2=arr[j].getName();
						arr[i].setName(name2);
						arr[j].setName(name1);
						
						int age1=arr[i].getAge();
						int age2=arr[j].getAge();
						arr[i].setAge(age2);
						arr[j].setAge(age1);
						
						int java1=arr[i].getJava();
						int java2=arr[j].getJava();
						arr[i].setJava(java2);
						arr[j].setJava(java1);
						
						int html1=arr[i].getHtml();
						int html2=arr[j].getHtml();
						arr[i].setHtml(html2);
						arr[j].setHtml(html1);
						
						int sql1=arr[i].getSql();
						int sql2=arr[j].getSql();
						arr[i].setSql(sql2);
						arr[j].setSql(sql1);
					}
				}
				arr[i].setSum();
				arr[i].setAvg();
			}
		}else {
			System.out.println("至少需要2名学生排序才有意义");
		}
	}
	/**按html成绩排序
	 * @param arr 学生类数组
	 */
	public void htmlArrays(Student[] arr){
		if(arr.length>1) {
			for(int i=0;i<arr.length;i++){
				for(int j=i+1;j<arr.length;j++){
					if(arr[i].getHtml()>arr[j].getHtml()){
						String name1=arr[i].getName();
						String name2=arr[j].getName();
						arr[i].setName(name2);
						arr[j].setName(name1);
							
						int age1=arr[i].getAge();
						int age2=arr[j].getAge();
						arr[i].setAge(age2);
						arr[j].setAge(age1);
							
						int java1=arr[i].getJava();
						int java2=arr[j].getJava();
						arr[i].setJava(java2);
						arr[j].setJava(java1);
							
						int html1=arr[i].getHtml();
						int html2=arr[j].getHtml();
						arr[i].setHtml(html2);
						arr[j].setHtml(html1);
							
						int sql1=arr[i].getSql();
						int sql2=arr[j].getSql();
						arr[i].setSql(sql2);
						arr[j].setSql(sql1);
					}
				}
				arr[i].setSum();
				arr[i].setAvg();
			}
		}else {
			System.out.println("至少需要2名学生排序才有意义");
		}
	}
	/**按sql成绩排序
	 * @param arr 学生类数组
	 */
	public void sqlArrays(Student[] arr){
		if(arr.length>1) {
			for(int i=0;i<arr.length;i++){
				for(int j=i+1;j<arr.length;j++){
					if(arr[i].getSql()>arr[j].getSql()){
						String name1=arr[i].getName();
						String name2=arr[j].getName();
						arr[i].setName(name2);
						arr[j].setName(name1);
							
						int age1=arr[i].getAge();
						int age2=arr[j].getAge();
						arr[i].setAge(age2);
						arr[j].setAge(age1);
							
						int java1=arr[i].getJava();
						int java2=arr[j].getJava();
						arr[i].setJava(java2);
						arr[j].setJava(java1);
							
						int html1=arr[i].getHtml();
						int html2=arr[j].getHtml();
						arr[i].setHtml(html2);
						arr[j].setHtml(html1);
							
						int sql1=arr[i].getSql();
						int sql2=arr[j].getSql();
						arr[i].setSql(sql2);
						arr[j].setSql(sql1);
					}
				}
				arr[i].setSum();
				arr[i].setAvg();
			}
		}else {
			System.out.println("至少需要2名学生排序才有意义");
		}
	}
	/**根据总分进行排序
	 * @param arr 学生类数组
	 */
	public void sumArrays(Student[] arr){
		if(arr.length>1) {
			for(int i=0;i<arr.length;i++){
				for(int j=i+1;j<arr.length;j++){
					if(arr[i].getSum()>arr[j].getSum()){
						String name1=arr[i].getName();
						String name2=arr[j].getName();
						arr[i].setName(name2);
						arr[j].setName(name1);
							
						int age1=arr[i].getAge();
						int age2=arr[j].getAge();
						arr[i].setAge(age2);
						arr[j].setAge(age1);
							
						int java1=arr[i].getJava();
						int java2=arr[j].getJava();
						arr[i].setJava(java2);
						arr[j].setJava(java1);
							
						int html1=arr[i].getHtml();
						int html2=arr[j].getHtml();
						arr[i].setHtml(html2);
						arr[j].setHtml(html1);
							
						int sql1=arr[i].getSql();
						int sql2=arr[j].getSql();
						arr[i].setSql(sql2);
						arr[j].setSql(sql1);
					}
				}
				arr[i].setSum();
				arr[i].setAvg();
			}
		}else {
			System.out.println("至少需要2名学生排序才有意义");
		}
	}
}

四、新建一个ViewMain类。

package com.studentmanage;

import java.util.Scanner;

/**程序入口
 * @author ZQL
 *
 */
public class ViewMain {
	String msg="\t编号\t姓名\t年龄\tJAVA\tHTML\tSQL\t总分\t平均分";
	public static void main(String[] args) {
		new ViewMain();
	}
	//重写无参构造函数
	public ViewMain(){
		@SuppressWarnings("resource")
		Scanner in=new Scanner(System.in);	
		System.out.println("----------<  请定义学生人数  >----------");
		Student[] stu=new Student[in.nextInt()];
		//无限循环,除非退出系统
		while (true) {
			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("0:退出系统");
			int num = in.nextInt();
			Admin admin = new Admin();
			if (num == 1) {
				System.out.println("请输入学生姓名:");
				String name = in.next();
				System.out.println("请输入学生年龄:");
				int age = in.nextInt();
				admin.create(name, age, stu);
				output(stu);
			}else if(num==2){
				System.out.println("--你要执行的功能--");
				System.out.println("21:按编号查询");
				System.out.println("22:按姓名查询");
				int numSelect=in.nextInt();
				if(numSelect==21){
					System.out.println("请输入查找的学生编号:");
					int id=in.nextInt();
					System.out.println(msg);
					admin.select(id, stu);
				}else if(numSelect==22)
				{
					System.out.println("请输入查找的学生姓名:");
					String selectName=in.next();
					System.out.println(msg);
				    admin.select(selectName, stu);
				}
				
			}else if(num==3){
				output(stu);
				System.out.println("请输入编号:");
				int id=in.nextInt();
				if(id>stu.length){
					System.out.println("没有这个编号,请重新输入:");
					id=in.nextInt();
				}else{
					System.out.println("--你要修改的信息--");
					System.out.println("31:姓名");
					System.out.println("32:年龄");
					int numUpdate=in.nextInt();
					if(numUpdate==31){
						System.out.println("输入你要改的姓名:");
						String name=in.next();
						System.out.println(msg);
						admin.update(id, name, stu);
					}else if(numUpdate==32){
						System.out.println("输入你要改的年龄:");
						int age=in.nextInt();
						System.out.println(msg);
						admin.update(id, age, stu);
					}	
				}		
			}else if(num==4){
				System.out.println("请输入要删除的编号:");
				int id=in.nextInt();
				if(id>stu.length){
					System.out.println("没有这个编号,请重新输入:");
					id=in.nextInt();
				}else{
					admin.delete(id, stu);
					output(stu);
				}	
			}else if(num==5){
				System.out.println("请输入编号");
				int id=in.nextInt();
				System.out.println("请输入java成绩");
				int java=in.nextInt();
				System.out.println("请输入html成绩");
				int html=in.nextInt();
				System.out.println("请输入sql成绩");
				int sql=in.nextInt();
				admin.scoreUpdate(id,java,html,sql,stu);
				output(stu);
			}else if(num==6){
				System.out.println("请输入选择课程");
				System.out.println("61:JAVA");
				System.out.println("62:HTML");
				System.out.println("63:SQL");
				int numCourse=in.nextInt();
				if(numCourse==61){
					admin.javaArrays(stu);
					output(stu);
				}else if(numCourse==62){
					admin.htmlArrays(stu);
					output(stu);
				}else if(numCourse==63){
					admin.sqlArrays(stu);
					output(stu);
				}
			}else if(num==7){
				admin.sumArrays(stu);
				output(stu);
			}else if(num==0){
				System.exit(0);
			}
		}	
	}
	/**打印学生列表
	 * @param stu
	 */
	public void output(Student[] stu){
		System.out.println(msg);
		for(int i=0;i<stu.length;i++){
			if(stu[i]!=null){
				System.out.println(stu[i]);
			}	
		}
	}
}

测试结果截图

(1)添加学生测试结果
一个简单的学生管理系统_第2张图片

(2)查询测试结果
一个简单的学生管理系统_第3张图片

(3)更新测试结果
一个简单的学生管理系统_第4张图片

(4)输入成绩测试结果一个简单的学生管理系统_第5张图片

(5)排序测试结果
一个简单的学生管理系统_第6张图片

(6)删除测试结果
一个简单的学生管理系统_第7张图片

你可能感兴趣的:(java系列)