java实现简单学生信息管理系统

本文介绍了一个使用Java实现的学生信息管理系统,包含学生信息的添加、查询、修改和删除等功能,通过六个步骤详细展示了系统的构建过程。

** ## java实现简单学生信息管理系统(6步) **

1、首先定义一个学生信息主体类

package project;

public class Stu_class {
	String name;
	String stu_id;
	String sex;
	String phone_num;
	int age;
		
	public Stu_class(String name,String stu_id, int age, String phone_num, String sex) {
		this.name = name;
	
		this.stu_id = stu_id;
		this.phone_num = phone_num;
		this.sex = sex;
		this.age = age;
	}
	public String getName() {
		return name;
	}

	public String getStu_id() {
		return stu_id;
	}
	public int getAge() {
		return age;
	}
	public void setName(String name) {
		this.name = name;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public void setId_num(String stu_id) {
		this.stu_id = stu_id;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public void setPhone_num(String phone_num) {
		this.phone_num = phone_num;
	}
	public void display() {
		System.out.println("姓名:"+name+"\n"+"年龄:"+age+"\n"+"性别:"+sex+"\n"+"学号:"+stu_id+"\n"+"手机号:"+phone_num);
	}
}

2、再定义一个工具类,在此类中有主页面的欢迎页面,各种功能的实现函数

package project;
import java.util.*;

public class Tool {
	Check_stu_info stu_choose;
	Chaneg_stu_info change_stu;
	Add_stu_info stu_info;
	LinkedList<Stu_class>stu;
	Scanner con ;
	public Tool(LinkedList<Stu_class>stu,Check_stu_info stu_choose,Chaneg_stu_info change_stu,Add_stu_info stu_info,Scanner con) {
		this.stu_choose = stu_choose;
		this.change_stu = change_stu;
		this.stu_info =stu_info;
		this.con = con;
		this.stu = stu;
	}
	public void welcome_custome() {
		String s = "***********************************";
		System.out.println(s);
		System.out.println("欢迎进入学生管理系统!"+"\n"+"您可以进行以下操作:\n1、查看学生信息\n2、修改个人信息\n3、注册新账号\n4、退出系统");
		System.out.println(s);
		System.out.print("请选择你需要进行的操作>>>");
	}
	public void check_choose(Tool tool) {
		int choose = con.nextInt();
		switch(choose) {
		case 1:
			stu_choose.welcome_check_choose();
			stu_choose.check_choose(stu,tool);
			//查看个人信息函数
			//con.close();
			break;
		case 2:
			change_stu.change_stu_info(stu,tool);
			//修改个人信息函数
			//con.close();
			break;
		case 3:
			stu_info.add_stu_info(stu,tool);
			//注册新账号
			//con.close();
			break;
		case 4:
			//退出系统
			System.out.println("退出系统成功!!!");
			con.close();
			System.exit(-1);
			break;
		default:
			System.out.print("输入有误,请重新输入>>>");
			check_choose(tool);
	}
	}
	public void return_last(Tool tool) {
		welcome_custome();
		check_choose(tool);
	}

}

3、 在上一个类中我们定义了查看个人信息函数,修改个人信息函数,注册新账号函数,退出系统.
接下来我们来写第一个查看个人信息函数.

package project;
import java.util.*;
/**查看信息
 * 1、提示用户所需
 * 2、查看所有学生信息
 * 3、查看个别学生信息
 * 4、当信息查询不到时,提醒并跳入注册学生信息函数界面.
 */
public class Check_stu_info {
	Scanner con;
	Add_stu_info stu_info;
	public Check_stu_info(Scanner con,Add_stu_info stu_info) {
		this.con = con;
		this.stu_info = stu_info;
	}
	public void welcome_check_choose() {	
			String s = "***********************************";
			System.out.println(s);
			System.out.println("欢迎进入校园卡查询信息界面,您可以进行以下操作:\n1、查看全部信息\n2、查看个人信息\n3、返回上一级目录\n4、退出");
			System.out.println(s);
			System.out.print("请选择你需要进行的操作>>>");
	}
	public  void check_choose(LinkedList<Stu_class>stu,Tool tool) {
		int choose = con.nextInt();
		switch(choose) {	
			case 1:
				//查看全部学生信息
				show_all_stu_info(stu,tool);
				//con.close();
				break;
			case 2:
				//查看个人信息
				one_stu_info(stu,tool,stu_info);
				//con.close();
				break;
			case 3:
				tool.return_last(tool);
				//返回上一级目录
				//con.close();
				break;
			case 4:
				System.out.println("退出系统成功!!!");
				System.exit(-1);
				//con.close();
				//退出系统
			default:
				System.out.println("输入有误,请重新输入>>>");
				check_choose(stu,tool);
		}
	}
	//检查一个人的信息
	public void one_stu_info(LinkedList<Stu_class>stu,Tool tool,Add_stu_info stu_info) {
		//Scanner con = new Scanner(System.in);
		System.out.println("请输人你需要查找学生的姓名>>>");
		String name = con.next();
		//con.close();
		boolean flag = false;
		if(stu.size() == 0) {
			System.out.println("未添加学生信息,请先添加学生信息!!!\n1、添加学生信息\t2、退出系统\n请输入>>>");
			int choose = con.nextInt();
			if(choose == 1)
				stu_info.add_stu_info(stu,tool);
			if(choose == 2)
				System.exit(-1);
				
		}
		if(stu.size() > 0)
			{
			for(int i = 0;i < stu.size();i++) {
				System.out.println("2");
				if(stu.get(i).getName()==name) {
					stu.get(i).display();
					flag = true;
					break;
			}
		}
		if(flag==true) {
			System.out.println("查找成功!!!\n1、继续查找学生信息\t2、返回上一级菜单\t3、退出系统");
			int choose = con.nextInt();
			switch(choose) {
				case 1:
					one_stu_info(stu, tool,stu_info);
					break;
				case 2:
					tool.return_last(tool);
					break;
				case 3:
					System.exit(-1);
			}
		}
			
			
		if(flag == false)
			{
			System.out.println("未查到学生信息,1、重新输入\t2、返回上一级菜单\n请输入>>>");
			int choose = con.nextInt();
			if(choose == 1)
				one_stu_info(stu, tool, stu_info);
			if(choose == 2)
				tool.return_last(tool);
			}
			}
	}
	//查询所有人的信息 
	public void show_all_stu_info(LinkedList<Stu_class>stu,Tool tool) {
		if(stu.size() == 0) {
			System.out.println("未添加学生信息,请先添加学生信息!!!\n1、添加学生信息\t2、退出系统\n请输入>>>");
			int choose = con.nextInt();
			if(choose == 1)
				stu_info.add_stu_info(stu,tool);
			if(choose == 2)
				System.exit(-1);
				
		}
		else {
		for(int i = 0;i<stu.size();i++)
			stu.get(i).display();
		System.out.println("请输入:\n1、返回上一级目录\t2、退出系统");
		int choose = con.nextInt();
		if(choose == 1) {
			tool.return_last(tool);
		}
		if(choose == 2) {
			System.out.println("退出系统成功!!!");
			System.exit(-1);
		}
		}
	}
}

4、 接下来写修改个人信息类

package project;
import java.util.*;
/**
 * 1、输入想要修改学生信息的名字
 * 2、将输入的名字在列表中查询
 * 3、查询不成功,提醒用户重新输入,查找成功后进行修改
 *
 */
public class Chaneg_stu_info {
	Scanner con;
	public Chaneg_stu_info(Scanner con) {
		this.con = con;
	}
	public void change_stu_info(LinkedList<Stu_class>stu,Tool tool) {
		System.out.print("请输入你想要修改学生信息的姓名>>>");
		String name = con.next();
		boolean flag = false;
		for(int i = 0;i<stu.size();i++) {
			if(name.equals(stu.get(i).getName())) {
			//	Scanner cox = new Scanner(System.in);
				flag = true;
				System.out.print("请输入修改后的姓名>>>");
				String change_name = con.next();
				System.out.println();
				System.out.print("请输入修改后的年龄>>>");
				int change_age = con.nextInt();
				System.out.println();
				System.out.print("请输入修改后的学号>>>");
				String change_id = con.next();
				System.out.println();
				System.out.print("请输入修改后的性别>>>");
				String change_sex = con.next();
				System.out.println();
				System.out.print("请输入修改后的手机号>>>");
				String change_phone = con.next();
				System.out.println();
				stu.get(i).setName(change_name);
				stu.get(i).setId_num(change_id);
				stu.get(i).setPhone_num(change_phone);
				stu.get(i).setAge(change_age);
				stu.get(i).setSex(change_sex);
				
			}
		}
		if(flag == true) {
			System.out.println("修改完成!!!\n1、返回上一级菜单\t2、退出系统");
			int choose = con.nextInt();
			if(choose == 1)
				tool.return_last(tool);
			if(choose == 2)
				System.exit(-1);
		}
		if(flag == false) {
			System.out.println("未找到该学生信息\n1、重新输入\t2、退出");
			int choose = con.nextInt();
			if(choose == 1)
				change_stu_info(stu, tool);
			if(choose == 2)
				System.exit(-1);
		}
	}
}

5、添加学生信息类

package project;
import java.util.*;

public class Add_stu_info {
	Scanner con;
	public Add_stu_info(Scanner con) {
		this.con = con;
	}
	public void add_stu_info(LinkedList<Stu_class>stu,Tool tool) {
		//Scanner con = new Scanner(System.in);
		String s = "***********************************";
		System.out.print(s+"\n请输入添加学生的姓名>>>");
		String name = con.next();
		System.out.print("请输入添加学生的性别>>>");
		String sex = con.next();
		System.out.print("请输入添加学生的年龄>>>");
		int age = con.nextInt();
		System.out.print("请输入添加学生的学号>>>");
		String id = con.next();
		System.out.print("请输入添加学生的手机号>>>");
		String phone_num = con.next();
		Stu_class student = new Stu_class(name, id, age, phone_num, sex);
		stu.add(student);
		System.out.println("添加完成!!!\n"+s);
		
		//返回上一级目录
		System.out.println("请输入:\n1、返回上一级目录\t2、退出系统");
		tool.welcome_custome();
		tool.check_choose(tool);
	
	}
}

6、最后定义主体类,对上面所有代码进行整合,创建所需要的对象,再将对象作为参数进行传递,就可实现简单的学生信息管理系统

package project;

import java.util.LinkedList;
import java.util.Scanner;

public class Stu_main {
		static LinkedList<Stu_class>stu;
	public static void main(String[] args) {
		//欢迎界面
		//创建存放学生信息的列表
		stu = new LinkedList<Stu_class>();
		//创建输入入口
		Scanner con = new Scanner(System.in);
		//创建添加学生信息的对象
		Add_stu_info stu_info = new Add_stu_info(con);
		//创建修改学生信息的对象
		Chaneg_stu_info change_stu = new Chaneg_stu_info(con);
		//创建查询学生信息的对象
		Check_stu_info stu_choose = new Check_stu_info(con,stu_info);
		//创建工具类对象
		Tool tool = new Tool(stu,stu_choose,change_stu,stu_info,con);
		tool.welcome_custome();
		tool.check_choose(tool);
		con.close();
	}

}

7、代码运行界面代码运行界面

package cn.com.dao.chivementdao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import cn.com.util.DBConnection; import cn.com.util.DBSql; import cn.com.vo.chivementvo.ChivementVo; public class ExamDao { private Connection conn = DBConnection.getConnectionOracle(); private ChivementVo examVo; public ExamDao() { } public ExamDao(ChivementVo examVo) { super(); this.examVo = examVo; } /** * 全部查询 */ public Object[][] selectAll() { Object date[][] = null; int max = 0; int i = 0; PreparedStatement ps = null; ResultSet rs = null; try { ps = conn.prepareStatement(DBSql.SELECT_ALL); rs = ps.executeQuery(); // 得到列数 max = rs.getMetaData().getColumnCount(); date = new Object[getnumberAll(DBSql.SELECT_ALL_COUNT)][max]; while (rs.next()) { for (int j = 0; j < max; j++) { date[i][j] = rs.getObject(j + 1); } i++; } // rs.close(); // ps.close(); // conn.close(); } catch (SQLException e) { e.printStackTrace(); } return date; } /** * 根据学号查询 */ public Object[][] selectBySid() { Object date[][] = null; int max = 0; int i = 0; PreparedStatement ps = null; ResultSet rs = null; try { ps = conn.prepareStatement(DBSql.SELECT_BY_S_ID); ps.setInt(1, examVo.getS_id()); rs = ps.executeQuery(); // 得到列数 max = rs.getMetaData().getColumnCount(); date = new Object[getnumber(DBSql.SELECT_BY_S_ID_COUNT, examVo .getS_id())][max]; while (rs.next()) { for (int j = 0; j < max; j++) { date[i][j] = rs.getObject(j + 1); } i++; } // rs.close(); // ps.close(); // conn.close(); } catch (SQLException e) { e.printStackTrace(); } return date; } /** * 根据组号查询 */ public Object[][] selectByGid() { Object date[][] = null; int max = 0; int i = 0; PreparedStatement ps = null; ResultSet rs = null; try { ps = conn.prepareStatement(DBSql.SELECT_BY_G_ID); ps.setInt(1, examVo.getG_id()); rs = ps.executeQuery(); // 得到列数 max = rs.getMetaData().getColumnCount(); date = new Object[getnumber(DBSql.SELECT_BY_G_ID_COUNT, examVo .getG_id())][max]; while (rs.next()) { for (int j = 0; j < max; j++) { date[i][j] = rs.getObject(j + 1); } i++; } // rs.close(); // ps.close(); // conn.close(); } catch (SQLException e) { e.printStackTrace(); } return date; } /** * 根据课程号查询 */ public Object[][] selectByCid() { Object date[][] = null; int max = 0; int i = 0; PreparedStatement ps = null; ResultSet rs = null; try { ps = conn.prepareStatement(DBSql.SELECT_BY_C_ID); ps.setInt(1, examVo.getC_id()); rs = ps.executeQuery(); // 得到列数 max = rs.getMetaData().getColumnCount(); date = new Object[getnumber(DBSql.SELECT_BY_C_ID_COUNT, examVo .getC_id())][max]; while (rs.next()) { for (int j = 0; j < max; j++) { // System.out.println( examVo.getG_id()); date[i][j] = rs.getObject(j+1); } i++; } // rs.close(); // ps.close(); // conn.close(); } catch (SQLException e) { e.printStackTrace(); } return date; } /** * 根据姓名模糊查询 * * @return */ public Object[][] selectByName() { Object date[][] = null; int max = 0; int i = 0; PreparedStatement ps = null; ResultSet rs = null; try { ps = conn.prepareStatement(DBSql.SELECT_BY_S_NAME); ps.setString(1, examVo.getS_name()); ps.setString(2, "%" + examVo.getS_name() + "%"); ps.setString(3, "%" + examVo.getS_name()); ps.setString(4, examVo.getS_name() + "%"); rs = ps.executeQuery(); // 得到列数 max = rs.getMetaData().getColumnCount(); date = new Object[getnumberByName(DBSql.SELECT_BY_S_NAME_COUNT, examVo.getS_name())][max]; while (rs.next()) { for (int j = 0; j < max; j++) { date[i][j] = rs.getObject(j + 1); } i++; } } catch (SQLException e) { e.printStackTrace(); } return date; } /** * 根据课程名称模糊查询 * * @return */ public Object[][] selectByClassName() { Object date[][] = null; int max = 0; int i = 0; PreparedStatement ps = null; ResultSet rs = null; try { ps = conn.prepareStatement(DBSql.SELECT_BY_CLASS_NAME); ps.setString(1, examVo.getClass_name()); ps.setString(2, "%" + examVo.getClass_name() + "%"); ps.setString(3, "%" + examVo.getClass_name()); ps.setString(4, examVo.getClass_name() + "%"); rs = ps.executeQuery(); // 得到列数 max = rs.getMetaData().getColumnCount(); date = new Object[getnumberByName(DBSql.SELECT_BY_CLASS_COUNT, examVo.getClass_name())][max]; while (rs.next()) { for (int j = 0; j < max; j++) { date[i][j] = rs.getObject(j + 1); } i++; } } catch (SQLException e) { e.printStackTrace(); } return date; } /** * 修改选中学生的成绩 * */ public void updatSelectClass() { PreparedStatement ps = null; ResultSet rs = null; try { ps = conn.prepareStatement(DBSql.UPDATE_EXAM_BY_STUID); ps.setInt(1, examVo.getClassExamChivement()); ps.setInt(2, examVo.getS_id()); ps.setInt(3, examVo.getC_id()); ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } } /** * 得到所有课程号和课程名 * * @return */ public String[] getClassNoName() { String[] classNoName = null; PreparedStatement ps = null; ResultSet rs = null; int j = 0; try { int i = getnumberAll(DBSql.SELECT_CLASS_NAME_COUNT); classNoName = new String[i + i]; ps = conn.prepareStatement(DBSql.SELECT_CLASS_NAME); rs = ps.executeQuery(); while (rs.next()) { classNoName[j] = rs.getString(1); classNoName[j + i] = rs.getString(2); j++; } } catch (SQLException e) { e.printStackTrace(); } return classNoName; } /** * 根据科目修改成绩 查询学号 姓名 成绩 * */ public void SelectClassStuName() { int i = 0; PreparedStatement ps = null; ResultSet rs = null; int j = getnumberBySelectClassName( DBSql.SELECT_CLASS_STU_SNO_SNAME_EXAM_COUNT, examVo.getC_id()); int[] sNum = new int[j]; String[] sName = new String[j]; int[] classExam = new int[j]; try { ps = conn.prepareStatement(DBSql.SELECT_CLASS_STU_SNO_SNAME_EXAM); ps.setInt(1, examVo.getC_id()); rs = ps.executeQuery(); while (rs.next()) { sNum[i] = rs.getInt(1); sName[i] = rs.getString(2); classExam[i] = rs.getInt(3); i++; } } catch (SQLException e) { e.printStackTrace(); } examVo.setSid(sNum); examVo.setSname(sName); examVo.setClassExam(classExam); } /** * 根据科目修改成绩 查询学号 姓名 成绩 后修改成绩 * */ public void UpdateClassStuName() { // int i = 0; PreparedStatement ps = null; ResultSet rs = null; int j = getnumberBySelectClassName( DBSql.SELECT_CLASS_STU_SNO_SNAME_EXAM_COUNT, examVo.getC_id()); try { ps = conn.prepareStatement(DBSql.UPDATE_CHIVEMENT_BY_CLASS); for(int i =0;i<j;i++){ ps.setInt(1, examVo.getClassExam()[i]); ps.setInt(2, examVo.getSid()[i]); ps.setInt(3, examVo.getC_id()); ps.executeUpdate(); } } catch (SQLException e) { e.printStackTrace(); } } /** * 全部查询获得行数 * * @return */ public int getnumberAll(String str) { int number = 0; PreparedStatement ps = null; ResultSet rs = null; try { ps = conn.prepareStatement(str); rs = ps.executeQuery(); rs.next(); number = rs.getInt(1); // rs.close(); // ps.close(); // conn.close(); } catch (SQLException e) { e.printStackTrace(); } return number; } /** * 根据学号 根据组号 根据课程号查询 获得行数 * * @return */ public int getnumber(String str, int i) { int number = 0; PreparedStatement ps = null; ResultSet rs = null; try { ps = conn.prepareStatement(str); ps.setInt(1, i); rs = ps.executeQuery(); rs.next(); number = rs.getInt(1); // rs.close(); // ps.close(); // conn.close(); } catch (SQLException e) { e.printStackTrace(); } return number; } /** * 根据姓名 课程名 查询 获得行数 * */ public int getnumberByName(String str, String i) { int number = 0; PreparedStatement ps = null; ResultSet rs = null; try { ps = conn.prepareStatement(str); ps.setString(1, i); ps.setString(2, "%" + i + "%"); ps.setString(3, "%" + i); ps.setString(4, i + "%"); rs = ps.executeQuery(); rs.next(); number = rs.getInt(1); } catch (SQLException e) { e.printStackTrace(); } return number; } // /** // * 根据课程名查询 获得行数 // * // */ // // public int getnumberByClassName(String str, String i) { // int number = 0; // PreparedStatement ps = null; // ResultSet rs = null; // try { // ps = conn.prepareStatement(str); // ps.setString(1, i); // ps.setString(2, "%" + i + "%"); // ps.setString(3, "%" + i); // ps.setString(4, i + "%"); // rs = ps.executeQuery(); // rs.next(); // number = rs.getInt(1); // } catch (SQLException e) { // e.printStackTrace(); // } // return number; // } /** * * 根据课程名修改成绩获得行数 * * @param str * @param i * @return */ public int getnumberBySelectClassName(String str, int i) { int number = 0; PreparedStatement ps = null; ResultSet rs = null; try { ps = conn.prepareStatement(str); ps.setInt(1, i); rs = ps.executeQuery(); rs.next(); number = rs.getInt(1); } catch (SQLException e) { e.printStackTrace(); } return number; } }
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

面向科研的小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值