利用Java写一个学生管理系统

作者:苏幕遮 时间:2023-09-24 17:06:54 

利用Java写一个学生管理系统

前言:

其实作为一名Java的程序猿,无论你是初学也好,大神也罢,学生管理系统一直都是一个非常好的例子,初学者主要是用数组、List等等来写出一个简易的学生管理系统,二、牛逼一点的大神则用数据库+swing来做一个有界面的学生管理系统。其实都并不会太难。

我先写一个简单的用List来实现学生管理系统:

首先,管理系统是针对学生对象的,所以我们先把学生对象写出来:


package bean;
public class Student {
String name;
String studentId;
String sex;
int grade;
public Student(String name,String studentId,String sex,int grade){
this.name= name;
this.studentId= studentId;
this.sex = sex;
this.grade = grade;
}
public int getGrade(){
return grade;
}
public String getName(){
return name;
}
public String getSex(){
return sex;
}
public void setGrade(int g){
this.grade = g;
}
public String getStudentId(){
return studentId;
}
}

这里面定义了一些得到当前学生对象数据的一些get方法,和成绩修改的set方法,代码很简单,不做详细的解答。

下来是我们的正文了。

虽然我们暂时不用swing来做界面,但是总得要看的过去吧,所以,先做了一个比较简单的界面:


System.out.println("***************");
  System.out.println("*欢迎来到学生管理系统 *");
  System.out.println("*1:增加学生                    *");
  System.out.println("*2:删除学生                    *");
  System.out.println("*3: *                    *");
  System.out.println("*4:查询成绩                    *");
  System.out.println("***************");
  System.out.println("您想选择的操作是:");

这里可以看到,我们的是用一个1234来选择项目,说以不得不讲一下Java如何获取到键盘所输入的数据---------Scanner ,要使用这个,首先需要import进来一个包:

例如这里:

import java.util.*;

之后的两行代码搞定输入:

Scanner sc = new Scanner(http://System.in); int choice = sc.nextInt();

接下来是各个功能的实现:


package test;
import java.util.*;
import bean.Student;
public class Manager {
static List<Student> StudentList = new LinkedList<Student>();
public static void main(String[] agrs){
select(StudentList);
}
private static void select(List<Student> StudentList ){
System.out.println("***************");
System.out.println("*欢迎来到学生管理系统 *");
System.out.println("*1:增加学生                    *");
System.out.println("*2:删除学生                    *");
System.out.println("*3: *                    *");
System.out.println("*4:查询成绩                    *");
System.out.println("***************");
System.out.println("您想选择的操作是:");
Scanner sc = new Scanner(System.in);
int choice = sc.nextInt();
switch(choice){
//增加学生
case 1:
System.out.print("请输入学生的姓名:");
Scanner Sname = new Scanner(System.in);
String name = Sname.nextLine();
System.out.print("请输入学生的性别:");
Scanner Ssex = new Scanner(System.in);
String sex = Ssex.nextLine();
System.out.print("请输入学生的学号:");
Scanner SId = new Scanner(System.in);
String studentId = SId.nextLine();
System.out.print("请输入学生的成绩:");
Scanner Sgrade = new Scanner(System.in);
int grade = Sgrade.nextInt();
StudentList.add(new Student(name,studentId,sex,grade));
System.out.println("添加成功!!!!!");
select(StudentList);
break;
//删除学生成绩
case 2:
System.out.print("请告诉我需要删除学生的学号:");
Scanner Sid = new Scanner(System.in);
String SstudentId = Sid.nextLine();
boolean isfindDelete = false;
for (int i = 0; i < StudentList.size(); i++) {
if(SstudentId.equals(StudentList.get(i).getStudentId())){
System.out.println("发现了该学生,正在删除...");
StudentList.remove(i);
System.out.println("删除成功!!!");
isfindDelete =true;
}
}
if(!isfindDelete){
System.out.println("抱歉,没有找到");
}
select(StudentList);
break;
//修改学生成绩
case 3:
System.out.print("请告诉我需要 * 学生的学号:");
Scanner GId = new Scanner(System.in);
String GstudentId = GId.nextLine();
boolean isfindChange = false;
for (int j = 0; j < StudentList.size(); j++) {
if(GstudentId.equals(StudentList.get(j).getStudentId())){
System.out.println("发现了该学生,正在修改...");
System.out.println("学生原成绩为"+StudentList.get(j).getGrade());
System.out.print("请输入修改后学生的成绩:");
Scanner Ggrade = new Scanner(System.in);
int grade2 = Ggrade.nextInt();
StudentList.get(j).setGrade(grade2);
System.out.println("修改成功!!!");
isfindChange =true;
}else{
}
}
if(!isfindChange){
System.out.println("抱歉,没有找到");
}
select(StudentList);
break;
//查看学生成绩
case 4:
System.out.print("请告诉我需要查询学生的学号:");
Scanner CId = new Scanner(System.in);
String CstudentId = CId.nextLine();
boolean isfindData = false;
for (int i = 0; i < StudentList.size(); i++) {
if(CstudentId.equals(StudentList.get(i).getStudentId())){
System.out.println("名字:"+StudentList.get(i).getName());
System.out.println("性别:"+StudentList.get(i).getSex());
System.out.println("学号:"+StudentList.get(i).getStudentId());
System.out.println("成绩:"+StudentList.get(i).getGrade());
isfindData = true;
}
}
if(!isfindData){
System.out.println("抱歉,没有找到");
}
select(StudentList);
break;
default:
System.out.println("您输入的数字有误,请重新输入:");
break;
}
}
}

可以看见,我把所有的实现过程全部放在select();方法中了,这样可以避免我选择完了一个操作后不能继续其他操作。大部分的操作都是依靠for循环来遍历操作,方便快捷。

来源:https://zhuanlan.zhihu.com/p/123936625

标签:Java,学生管理系统
0
投稿

猜你喜欢

  • android 大图片拖拽并缩放实现原理

    2022-11-10 05:59:55
  • java向文件中追加内容与读写文件内容源码实例代码

    2021-11-15 11:45:13
  • C#利用子线程刷新主线程分享教程

    2023-05-16 13:25:46
  • Android实现波浪球效果

    2021-09-02 16:07:53
  • Spring使用ThreadPoolTaskExecutor自定义线程池及异步调用方式

    2022-07-22 21:53:32
  • java实现客房管理系统

    2022-10-15 23:56:33
  • 通过代码快速理解Java的三种代理模式

    2023-03-28 01:13:57
  • Java中锁的实现和内存语义浅析

    2021-06-04 01:09:49
  • Android中使用Service实现后台发送邮件功能实例

    2022-01-26 16:56:05
  • Spring Boot整合mybatis使用注解实现动态Sql、参数传递等常用操作(实现方法)

    2023-03-17 07:09:32
  • android service实现循环定时提醒功能

    2023-02-27 06:03:45
  • C#Winform窗口移动方法

    2023-04-10 04:46:18
  • Android使用系统自带的相机实现一键拍照功能

    2023-06-05 10:27:23
  • C#多线程系列之资源池限制

    2022-01-02 17:11:04
  • Android仿开心消消乐大树星星无限循环效果

    2021-10-04 07:19:06
  • mybatis insert foreach循环插入方式

    2023-10-15 22:32:53
  • seata的部署和集成详细介绍

    2023-06-05 08:33:24
  • @Configuration与@Component作为配置类的区别详解

    2023-03-09 19:50:15
  • java线程池:获取运行线程数并控制线程启动速度的方法

    2022-06-30 23:22:57
  • 使用注解@Validated和BindingResult对入参进行非空校验方式

    2022-09-16 11:30:44
  • asp之家 软件编程 m.aspxhome.com