java控制台实现学生信息管理系统
作者:qq_45424990 发布时间:2023-11-29 02:05:20
标签:java,学生,管理系统
简介
最近学了java基础后对以前不会写的作业深有感触,想起以前各种在网上找资料找别人的代码参考,所以今天特地写了了简单的基于控制台的学生信息管理系统供还在学基础的同学参考,写的有问题的地方也希望能指出来,好了,下面开始进入正题。
环境
我使用的是idea编译器和1.8的jdk版本,有使用1.7以下jdk版本的同学运行会报错,解决方法是把ArrayLis<Student> arrayList=new Array<>();改成 ArrayLis<Student> arrayList=new Array<Student>(),下面开始讲解学生信息管理系统的实现过程。
系统分析
学生信息管理系统主要是实现让老师登入账号(账号和密码我设置的都是“123”,你们也可以改成其他的字符串)后可以对学生进行增删改查的操作和查看所有学生的信息,所以我各自定义了一个方法来实现它的功能。
代码实现
首先定义一个学生类Student.java,关于toString是重写了父类也就是Object的方法,是用于方便查看结果的,学生的属性可以按需求添加多个,这里我为了方便只写了四个。
public class Student {
//学号
private int sno;
//姓名
private String name;
//性别
private String xes;
//年龄
private int age;
//创建get/set方法
public int getSno() {
return sno;
}
public void setSno(int sno) {
this.sno = sno;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getXes() {
return xes;
}
public void setXes(String xes) {
this.xes = xes;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//重写toString方法方便打印
@Override
public String toString() {
return "Student{" +
"sno=" + sno +
", name='" + name + '\'' +
", xes='" + xes + '\'' +
", age=" + age +
'}';
}
}
然后定义一个结构类Structure.java,把需要实现的功能方法写出来。
import java.util.ArrayList;
import java.util.Scanner;
/**
* 老师进行登录操作后(老师的账号密码固定为123)
* 才能对学生进行增删改查
*/
public class Structure {
//用来给学生学号赋值自增
static int i=1;
//创建ArrayList集合对象用来存放学生对象
ArrayList<Student> arrayList=new ArrayList<>();
Scanner scanner=new Scanner(System.in);
public void enter(){
System.out.print("请输入用户名:");
if (scanner.next().equals("123")){
System.out.print("请输入密码:");
if (scanner.next().equals("123")){
System.out.println("登录成功!");
}else{
System.out.println("密码错误!请重新登入");
enter();
}
}else {
System.out.println("用户名错误!请重新登入");
enter();
}
}
//增加学生信息
public void add(){
//创建学生对象
Student student=new Student();
//System.out.print("学生ID自增");
student.setSno(i);
System.out.print("学生姓名:");
student.setName(scanner.next());
System.out.print("性别:");
student.setXes(scanner.next());
System.out.print("年龄:");
student.setAge(scanner.nextInt());
//把学生对象存入集合中
arrayList.add(student);
i++;
}
//查看所有学生信息
public void print(){
if (arrayList.size()==0){
System.out.println("没有学生!!!");
}else {
//使用增强for循环遍历集合
for (Student student:arrayList){
System.out.println(student.toString());
}
}
}
//通过学号查找指定的学生信息
public void inquiry(){
if (arrayList.size()==0){
System.out.println("没有学生!!!");
}else {
System.out.print("请输入想要查找的学生的学号:");
for (Student student:arrayList){
if (student.getSno()==scanner.nextInt()){
System.out.println(student.toString());
}
}
}
}
//删除指定学生的信息
public void delete(){
if (arrayList.size()==0){
System.out.println("没有学生!!!");
}else {
System.out.print("请输入想要删除的学生的学号:");
for (int i=0;i<=arrayList.size();i++){
if (arrayList.get(i).getSno()==scanner.nextInt()){
arrayList.remove(i);
System.out.println("删除成功!");
}
}
}
}
//修改指定学生的信息
public void revisesp(){
if (arrayList.size()==0){
System.out.println("没有学生!!!");
}else {
System.out.print("请输入想要修改的学生的学号:");
for (Student student:arrayList){
if (student.getSno()==scanner.nextInt()){
revisesp01(student);
System.out.println("修改成功!");
}
}
}
}
public void revisesp01(Student student) {
System.out.println("请根据序号选择指令");
System.out.println("1.修改姓名");
System.out.println("2.修改性别");
System.out.println("2.修改年龄");
switch (scanner.nextInt()){
case 1:
student.setName(scanner.next());
break;
case 2:
student.setXes(scanner.next());
break;
case 3:
student.setAge(scanner.nextInt());
break;
}
}
}
最后创建一个测试类Test.java用来测试功能的实现
import java.util.Scanner;
public class Test {
Structure structure=new Structure();
static Scanner scanner=new Scanner(System.in);
public static void main(String[] args) {
Test test=new Test();
test.a();
}
public void a(){
System.out.println("老师登录(账号密码固定123/123)");
structure.enter();
while (true){
print();
switch (scanner.nextInt()){
case 1:
structure.add();
break;
case 2:
structure.print();
break;
case 3:
structure.inquiry();
break;
case 4:
structure.delete();
break;
case 5:
structure.revisesp();
break;
case 0:
return;
default:
System.out.println("请输入正确的指令!");
}
}
}
public void print(){
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("0.退出");
}
}
最后我们就顺利的完成了一个简单的学生管理系统,能独立完成这个对我们巩固基础知识是能起到一定的帮助的。
来源:https://blog.csdn.net/qq_45424990/article/details/96469610


猜你喜欢
- 一、ObjectContext对象上下文Entity SQL 语言 - ADO.NET | Microsoft 官当文档ObjectCont
- 本文实例为大家分享了unity实现弧形移动的具体代码,自定角度,供大家参考,具体内容如下两点之间弧形移动using UnityEngine;
- 本文实例讲述了C#查找字符串所有排列组合的方法。分享给大家供大家参考。具体实现方法如下:// 1. remove first char //
- volatilevolatile是一种轻量同步机制。请看例子MyThread25类public class MyThread25 exten
- 1、Nacos config springboot starter包我们在springboot应用中集成nacos配置中心时,添加了以下依赖
- MapReduce的原理MapReduce由两个主要阶段组成:Map和Reduce。在Map阶段中,数据集被分成若干个小块,每个小块由Map
- 工具准备jdk, maven, tomcat9, vscode;上述软件的安装配置在百度就能找到很多教程, 所以此处不详述.(jdk使用1.
- 本文实例讲述了Android使用httpPost向服务器发送请求的方法。分享给大家供大家参考,具体如下:import java.util.L
- 最近做的一个小东西遇到这样的情况,我从一个页面MainActivity修改一些内容,需要跳转到一个新的EditActivity去做修改操作,
- 1.为什么要 token自动续期token中一般会包含用户的基本信息,为了保证token的安全性,一般会将token的过期时间设置的比较短,
- 前面我们已经学习了平时实际开发中用得较多的线性布局(LinearLayout)与相对布局(RelativeLayout), 其实学完这两个基
- 集合>队列Queue>创建队列System.Collections.Queue类提供了四种重载构造函数。using System
- 就网络和应用程序而言,键盘快捷键很重要,今天我们要谈的便是让这类快捷键得以在Flutter运作的小部件:Focus、Shortcuts和Ac
- 每一个应用都是具备一个功能,那就是版本更新,我记得我之前在面试的时候,面试官让我介绍一下应用版本更新的一些具体操作。我当时因为做过这个功能,
- 前言项目使用redis作为缓存数据,但面临着问题,比如,项目A,项目B都用到redis,而且用的redis都是一套集群,这样会带来一些问题。
- RestTemplate设计是为了Spring更好的请求并解析Restful风格的接口返回值而设计的,通过这个类可以在请求接口时直接解析对应
- Spring session 获取当前账户登录数一、登录校验成功时,向session加入关键信息,代码如下:session.setAttri
- 使用filter()取出自己所需数据java8的filter()方法是取出自己所需的数据,返回满足条件里的数据person.javapack
- 问题描述在应用MyBatis时,使用对象关系映射,将对象和Aliase映射起来。在Mybatis的文档明确写出,如果你没有明确定义实体类的A
- 本文实例讲述了Spring使用ClassPathResource加载xml资源。分享给大家供大家参考,具体如下:一 代码package le