简单的学生信息管理系统--一个包四个class

  • 在家想尝试下用java写一个简单学生信息管理系统,由于java都是自己学的,也没写过这种大点但是不难的对象程序,就在网上先看了一个比较简单的。

  • 我看的原文是 课设

  • 毕竟简单的管理系统也不会有什么太多花样,无非就是增删改查,所以很多东西都一样,参考和借鉴那位大佬。

  • 直接用一个package,4个class。

Main

package com.Student;

import java.text.DecimalFormat;
import java.util.ArrayList;//有些是没有必要的,就是平时做题会用的
import java.util.List;
import java.util.Scanner;
import java.io.UnsupportedEncodingException;
import java.lang.Math;

@SuppressWarnings("unused")
public class Main {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		Main main = new Main();
		StuSys st = new StuSys();
		
		while(true) {
			main.showMenu();
			switch(in.nextInt()) {
			case 0:
				System.exit(0);
			case 1:
				st.insertstu(in);
				break;
			case 2:
				st.delStu(in);
				break;
			case 3:
				st.changestu(in);
				break;
			case 4:
				st.showstu(in);
				break;
			case 5:
				st.showall();
				break;
				
			default:
				System.out.println("输入不合法!");
			}
		}
		
		
		
	}
	void showMenu(){//显示界面,要在main外,,因为方法不能嵌套方法
		
		System.out.println("    请选择操作:\n");
		System.out.println("  1:增加学生信息");
		System.out.println("  2:删除学生信息");
		System.out.println("  3:修改学生信息");
		System.out.println("  4:根据学号查看学生信息");
		System.out.println("  5:查看所有学生信息");
		System.out.println("  0:退出系统");
		
	}
	
	
	

}

Student学生信息类

package com.Student;

public class student {
	
	//构造函数
	student() {
		
	}
	student(String stuno,String stuname,String sex,int age,int score){
		this.stuno=stuno;
		this.stuname=stuname;
		this.sex=sex;
		this.age=age;
		this.score=score;
		
	}
	
	String stuno;//学号
	String stuname;//Name
	String sex;
	int age;
	int score;
	
	
	
}

Studate每个操作的具体代码

package com.Student;

public class Studate {
		student stuArray[] = new student[10];//创建对象为studnet的列表
		int index=0;//下标
		
		void insert(student stu) {
			//如果满的话要扩容
			if(index==stuArray.length) {
				student newstuarr[]= new student[stuArray.length*2];
				for(int i=0;i<stuArray.length;i++) {
					newstuarr[i] = stuArray[i];//转移数据
				}
				stuArray = newstuarr;//将满的array更新为新的array
			}
			stuArray[index]=stu;//增
			index++;
			
		}
		void delstu(String stuno) {
			//要先判断有没有那个学生
			int flag=0;
			for(int i=0;i<index;i++) {
				if(stuArray[i].stuno.equals(stuno)) {
					flag=1;
					for(int j=i;j<index-1;j++) {
						stuArray[j]=stuArray[j-1];
					}
				}
			}
			//判断是否进行了删除操作
			if(flag==1)
				index--;//删除了一个,所以总数减一
		}
		student checkStudent(String stuno) {//根据学号查找学生
			for(int i=0;i<index;i++) {
				if(stuArray[i].stuno.equals(stuno)) {
					return stuArray[i];
				}
			}
			return null;
		}
		void changestu(student stu) {//更新学生信息
			//System.out.print(stu.stuname+stu.sex+stu.age);
			for(int i=0;i<index;i++) {
				//System.out.print(stu.stuno+stu.stuname+stu.sex+stu.age);这里开始有错误,因为上一个只对stu进行的除stuno以外的定义,所以此时stu.stuno为空
				if(stuArray[i].stuno.equals(stu.stuno)) {
					
					stuArray[i]=stu;
					
				}
			}
		}
		void printstu(student stu) {
			//打印这个学生的信息
			System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
			System.out.print("学生编号 " + stu.stuno+ "  ");
			System.out.print("学生姓名 " + stu.stuname + "  ");
			System.out.print("学生性别 " + stu.sex + "  ");
			System.out.print("学生年龄 " + stu.age + "  ");
			System.out.println("学生成绩 " + stu.score + "  ");
			System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
		}
		void printallstu() {
			//打印出所有的学生信息
			if(index==0) {
				System.out.println("学生列表为空");
			}
			else {
				for(int i=0;i<index;i++) {
					printstu(stuArray[i]);
				}
			}
			
		}
		
		
		
		
		
}

StuSys

  • 主要用来判断是哪一个操作,并引用studate中那个具体的函数
  • 还有一些信息的返回,就是继续还是结束或者一些提示语
package com.Student;

import java.util.Scanner;

public class StuSys {
	Studate stud= new Studate();
	//Scanner in = new Scanner(System.in);
	void insertstu(Scanner in) {
	 System.out.println("请输入学生的学号 姓名 性别 年龄 成绩(输入出用空格分开):");
	 String stuno = in .next();
	 String stuname = in.next();
	 String sex = in.next();
	 int age = in.nextInt();
	 int score = in .nextInt();
	 if(stud.checkStudent(stuno)==null) {//这个同学是未添加过的
		 student stu = new student(stuno, stuname, sex, age, score);
		 stud.insert(stu);
		 System.out.println("学生信息添加成功");
		 
		 
	 }else {//已经存在
		 System.out.println("学生信息已存在,请选择下一步操作。  1:继续添加 2:退出");
		 int next_int = in.nextInt();
		 if(next_int==1) {
			 insertstu(in);//继续输入继续添加
		 }else if(next_int==2) {
			 return ;//重新选择操作
		 }
		 else {
			 System.out.println("输入有误");
		 }
		 
	 }
		
	}//输入
	void delStu(Scanner in) {//删除操作
		System.out.println("请输入要删除学生的学号");
		String stuno = in.next();
		if(stud.checkStudent(stuno)!=null) {
			stud.delstu(stuno);
			System.out.println("删除成功");
		}
		else {
			System.out.println("输入学号有误,请输入1 继续输入,或者输入2结束。");
			int i=in.nextInt();
			if(i==1) {
				delStu(in);
			}
			else if(i==2) {
				return;
			}
			else {
				System.out.println("输入有误,");
			}
		}
		
	}
	void changestu(Scanner in) {//修改学生信息
		System.out.println("请输入要修改学生的学号:");
		String stuno = in.next();
		student stu= new student();
		stu.stuno=stuno;
		if(stud.checkStudent(stuno)!=null) {
			System.out.println("请依次输入学生的姓名 性别 年龄 成绩");
			stu.stuname=in.next();
			stu.sex=in.next();
			stu.age= in.nextInt();
			stu.score = in.nextInt();
			stud.changestu(stu);
			//System.out.print(stu.stuname+stu.sex+stu.age);
			System.out.println("修改信息成功");
		}
		else {
			System.out.println("输入学号有误,请输入1重新输入或者输入2返回主界面");
			int n= in.nextInt();
			if(n==1) {
				changestu(in);
			}
			else if(n==2){
				return;
				
			}
			else {
				System.out.println("输入有误");
			}
			
		}
		
		
		
	}
	void showstu(Scanner in) {
		System.out.println("请输入要查看学生学号:");
		String stu=in.next();
		if(stud.checkStudent(stu)!=null) {
			stud.printstu(stud.checkStudent(stu));
		}
		else {
			System.out.println("没有找到,请输入1继续或者输入2返回主界面");
			int i = in.nextInt();
			if(i==1) {
				showstu(in);
			}
			else if(i==2) {
				return;
			}
			else {
				System.out.println("输入有误");
			}
		}
		
		
		
		
	}
	void showall() {
		stud.printallstu();
	}
	
	
	
	
}

  • 还是希望自己写写,把文件放在文末了
    下载
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值