1、管理系统概述

此学生管理系统利用了集合ArrayList存储学生数据,实现了对学生的增删改查;利用数组中的方法实现分数排序;运用String类的equals实现登录功能的字符串比较。

2、代码分析

(1)管理员类:

package data;

public class Manger {
private String Manname;
private String Manpassword; public Manger(String Manname, String Manpassword) {
this.Manname = Manname;
this.Manpassword = Manpassword;
} public String getManname() {
return Manname;
} public void setManname(String manname) {
Manname = manname;
} public String getManpassword() {
return Manpassword;
} public void setManpassword(String manpassword) {
Manpassword = manpassword;
} @Override
public String toString() {
return "Manger [Manname=" + Manname + ", Manpassword=" + Manpassword
+ "]";
} }

定义管理员的属性和方法。

(2)学生类:

package data;

public class Student {
private String name;
private String stuno;
private String classno;
private double point;
int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getStuno() {
return stuno;
}
public void setStuno(String stuno) {
this.stuno = stuno;
}
public String getClassno() {
return classno;
}
public void setClassno(String classno) {
this.classno = classno;
}
public double getPoint() {
return point;
}
public void setPoint(double point) {
this.point = point;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student [name=" + name + ", stuno=" + stuno + ", classno="
+ classno + ", point=" + point + ", age=" + age + "]";
} }

定义学生的属性和方法。

(3)方法类:

package Way;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
import data.Student;
import data.Manger; public class Stuway {
ArrayList<Student> array = new ArrayList<Student>(); // ******************************登录************************
public void mainMenu() {
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("5:分数排序");
System.out.println("6:退出");
System.out.println("请您输入要操作的功能序号:");
} // ***************************功能选择*********************
public int chooseFunction() {
Scanner sc = new Scanner(System.in);
return sc.nextInt();
} // ****************************信息初始化*************************
public void init(ArrayList<Student> array) {
Student s1 = new Student();
s1.setName("张彬彬");
s1.setStuno("");
s1.setClassno("计科191");
s1.setPoint(345.0);
s1.setAge();
array.add(s1); Student s2 = new Student();
s2.setName("刘冰冰");
s2.setStuno("");
s2.setClassno("通信181");
s2.setPoint();
s2.setAge();
array.add(s2); Student s3 = new Student();
s3.setName("张明敏");
s3.setStuno("");
s3.setClassno("计科191");
s3.setPoint();
s3.setAge();
array.add(s3);
} // ***************************学生信息显示**************************
public void showStudents(ArrayList<Student> array) {
for (int i = ; i < array.size(); i++) {
Student s = array.get(i);
System.out.println(s);// 运行的是类中的toString
}
} // **************************增加学生信息**************************
public void addStudents(ArrayList<Student> array) {
System.out.println("请输入要添加的学生的信息");
Scanner sc = new Scanner(System.in);
System.out.println("请输入学生的姓名:");
String name = sc.nextLine();
System.out.println("请输入学生的学号");
String stuno = sc.next();
System.out.println("请输入学生的班级");
String classno = sc.next();
System.out.println("请输入学生的分数");
double point = sc.nextDouble();
System.out.println("请输入学生的年龄");
int age = sc.nextInt();
Student s = new Student();
s.setName(name);
s.setStuno(stuno);
s.setClassno(classno);
s.setPoint(point);
s.setAge(age);
array.add(s);
System.out.println("添加学生信息成功");
} // ****************************删除学生信息***********************
public void delectStudents(ArrayList<Student> array) {
System.out.println("选择的是删除功能");
System.out.println("请输入学生的学号");
Scanner sc = new Scanner(System.in);
String stuno = sc.next();
for (int i = ; i < array.size(); i++) {// 遍历集合
Student s = array.get(i);
if (s.getStuno().equals(stuno)) {
array.remove(i); // 集合的方法remove实现
System.out.println("删除成功");
return;
}
}
System.out.println("你输入的编号不存在");
} // ****************************修改学生信息************************
public void updataStudents(ArrayList<Student> array) {
System.out.println("选择的是修改功能");
System.out.println("请输入学生的的学号");
Scanner sc = new Scanner(System.in);
String stuno = sc.next();
for (int i = ; i < array.size(); i++) {
Student s = array.get(i);
if (s.getStuno().equals(stuno)) {
System.out.println("输入新的学生姓名");
s.setStuno(sc.next());
System.out.println("输入新的学生学号");
s.setName(sc.next());
System.out.println("输入新的学生班级");
s.setClassno(sc.nextLine());
System.out.println("输入新的学生分数");
s.setPoint(sc.nextDouble());
System.out.println("输入新的学生年龄");
s.setAge(sc.nextInt());
System.out.println("学生信息修改成功");
return;
}
}
} // *****************************分数排序***********************
public void scoreSort(ArrayList<Student> array) {
double[] score = new double[];
System.out.println("选择的是排序功能");
for (int i = ; i < array.size(); i++) {
Student s = array.get(i);
score[i] = s.getPoint();
Arrays.sort(score); }
for (int j = ; j < score.length; j++) {
for (int i = ; i < array.size(); i++) {
if (score[j] == array.get(i).getPoint()){
System.out.println(array.get(i));
} }
}
} // ***************************用户登录************************
public boolean Log() {
while (true) {
Manger Man = new Manger("manger", "");
System.out.println("***********欢迎进入学生管理系统**********");
System.out.println("请输入用户名");// manger
Scanner sc = new Scanner(System.in);
String manger = sc.nextLine();
System.out.println("请输入密码");
String password = sc.next(); if ((Man.getManname().equals(manger))
&& (Man.getManpassword().equals(password))) {
System.out.println("登录成功");
return true;
} else {
System.out.println("登录失败");
return false; }
} } }

该类是此学生管理系统的核心:

用户首先输入数字,然后利用switch...case语句来判断用户选择的功能。

初始化函数是先向集合中插入数据,确保刚登录系统的时候查询结果不为空。

添加学生信息是向集合中插入数据。

删除学生信息:遍历集合中学生的数据并根据学生的学号确定是否是要删除的学生的信息。

修改学生信息:遍历集合中学生的信息的同时确定要修改的学生的学号。

分数排序:将每一位学生的分数放到数组中,对数组中的分数进行排序,然后遍历数组,根据数组中的分数确定集合的学生信息进行学生信息的打印。

(4)测试类:

package main;

import java.util.ArrayList;
import Way.Stuway;
import data.Student; public class Test {
public static void main(String[] args) {
ArrayList<Student> array = new ArrayList<Student>();
Stuway way = new Stuway();
way.init(array);
boolean a=way.Log();
while(a){
way.mainMenu();
int choose = way.chooseFunction(); switch (choose) {
case :
way.showStudents(array);
break;
case :
way.addStudents(array);
break;
case :
way.delectStudents(array);
break;
case :
way.updataStudents(array);
break;
case :
way.scoreSort(array);
break;
default:
System.out.println("输入有误");
break;
} } } }

学生管理系统——ArrayList集合的更多相关文章

  1. java基础: ArrayList集合应用, ArrayList增删改查详解,综合java基础实现学生管理系统,

    1.ArrayList 集合和数组的区别 : 共同点:都是存储数据的容器 不同点:数组的容量是固定的,集合的容量是可变的 1.1 -ArrayList的构造方法和添加方法 public ArrayLi ...

  2. 史上最强学生管理系统之ArrayList版

    其实不管是网上或者培训班,都会有学生管理系统的最基础版本,本人也不过是照猫画虎,在某些细节方面进行了一些渲染,使这个最基本的小程序更加人性化和便于利于操作一点,个人愚见,大牛勿喷,欢迎转载(请注明出处 ...

  3. 9.2ArrayList 集合 案例,学生管理系统

    循环的使用 添加学生:while嵌套for,for设置变量,内嵌if更新变量.if语句判断变量值 修改学生:for循环内嵌if,获取循环中的某个值. package day9_ArrayList.AL ...

  4. Java基础进阶:学生管理系统数组方式分包源码实现,教师管理系统集合和数组两种方式源码实现,图书馆管理系统源码实现,现附重难点,代码实现源码,课堂笔记,课后扩展及答案

    1.案例驱动模式 1.1案例驱动模式概述 (理解) 通过我们已掌握的知识点,先实现一个案例,然后找出这个案例中,存在的一些问题,在通过新知识点解决问题 1.2案例驱动模式的好处 (理解) 解决重复代码 ...

  5. 学生管理系统利用arrayList第二次优化

    package StuManage; public class Student { private String name;//姓名 private String stuNum;//学号 privat ...

  6. JDBC学生管理系统--处理分页显示

    分页的思想: 假设一共有104条数据,每页显示10条数据: select * from student limit 0,10; 页数是index,第index页,对应的sql语句是: select * ...

  7. 史上最强学生管理系统之IO版

    既上一博发布的ArrayList版本之后,新一版的IO版又来了,其实只是在上一个版本里面添加了IO流的内容,将存入更改的信息更新到了文件中而已,这个版本网上仍然很多,本人只是在某些方面稍加修改,因为自 ...

  8. 第83节:Java中的学生管理系统分页功能

    第83节:Java中的学生管理系统分页功能 分页功能一般可以做成两种,一种是物理分页,另一种是逻辑分页.这两种功能是有各自的特点的,物理分页是查询的时候,对数据库进行访问,只是查一页数据就进行返回,其 ...

  9. 模拟斗地主和学生管理系统 IO 版

    1.模拟斗地主 public class PlayCards { public static void main(String[] args) { String[] color = {"黑桃 ...

随机推荐

  1. 学习Canvas这一篇文章就够了

    一.canvas简介 ​ <canvas> 是 HTML5 新增的,一个可以使用脚本(通常为JavaScript)在其中绘制图像的 HTML 元素.它可以用来制作照片集或者制作简单(也不是 ...

  2. java后端_百度二面

    参考: https://www.nowcoder.com/discuss/215891?type=2&order=0&pos=10&page=1 1. gc 2. java l ...

  3. vue中的v-if和v-show的区别

    v-if和v-show的区别是前端面试中常问的基础知识点,v-if.v-show顾名思义就是用来判断视图层展示效果的.那么具体是怎么展示呢?v-if和v-show的区别又是什么呢? 首先我们可以来看一 ...

  4. shell习题2

    1---------------->>>>输入一个设备文件,输出这个设备文件的基本信息: 2.------------->>>>显示一个如下的菜单,cp ...

  5. seq2seq通俗理解----编码器和解码器(TensorFlow实现)

    1. 什么是seq2seq 在⾃然语⾔处理的很多应⽤中,输⼊和输出都可以是不定⻓序列.以机器翻译为例,输⼊可以是⼀段不定⻓的英语⽂本序列,输出可以是⼀段不定⻓的法语⽂本序列,例如: 英语输⼊:&quo ...

  6. CentOS 7下安装配置搭建jdk+tomcat+MariaDB环境

    1.JDK安装 注意:rpm与软件相关命令 相当于window下的软件助手 管理软件 步骤: 1)查看当前Linux系统是否已经安装java 输入 rpm -qa | grep java 2)卸载两个 ...

  7. Mac迅雷瘦身精简教程

    迅雷是个大家很熟悉的工具了,尽管吐槽的人不少,但相信大家也都是口嫌体直,边骂边用. 其实 macOS 版迅雷在界面上,相比于 Windows 的客户端来说,已经很克制了,但有些功能仍然对用户造成了干扰 ...

  8. ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。

    报错 Traceback (most recent call last): File "D:/PyCharm 5.0.3/WorkSpace/2.NLP/2.获取数据源和规范化/4.word ...

  9. Bluetooth(蓝牙)连接过程分析

    一 基本概念 蓝牙的连接过程是十分重要的,特别是做蓝牙的技术人员来说,这个是十分重要的.理它的流程,是一件必修课.虽然进入蓝牙行业很久了,以前没怎么系统化的做一些事情,趁此机会,就梳理一下这里面的内容 ...

  10. D-Big Integer_2019牛客暑期多校训练营(第三场)

    题意 设A(n) = n个1,问有多少对i,j使得\(A(i^j)\equiv0(modp)\) 题解 \(A(n) = \frac{10^n-1}{9}\) 当9与p互质时\(\frac{10^n- ...