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. CheckListBox怎样得到多选值?

    一般认为:foreach (object obj in checkedListBox1.SelectedItems)即可遍历选中的值.其实这里遍历的只是高亮的值并不是打勾的值.遍历打勾的值要用下面的代 ...

  2. .net软件开发脚本规范-SQL脚本标准

    一. SQL脚本标准 各文件夹存放的脚本说明 存储过程:除“基础_”开头的所有存储过程,包含新增.修改.删除.列表.提交.审核. 基础数据:“基础_”开头的存储过程,用于下拉列表的数据加载公共方法. ...

  3. 写给新手的 Go 开发指南

    转眼加入蚂蚁已经三个多月,这期间主要维护一 Go 写的服务器.虽然用的时间不算长,但还是积累了一些心得体会,这里总结归纳一下,供想尝试 Go 的同学参考. 本文会依次介绍 Go 的设计理念.开发环境. ...

  4. 云片RocketMQ实战:Stargate的前世今生

    RocketMQ消息队列,专业消息中间件,既可为分布式应用系统提供异步解耦和削峰填谷的能力,同时也具备互联网应用所需的海量消息堆积.高吞吐.可靠重试等特性,是应对企业业务峰值时刻必备的技术. 云片由于 ...

  5. MySQL高可用架构:mysql+keepalived实现

    系统环境及架构 #主机名 系统版本 mysql版本 ip地址 mysqlMaster <a href="https://www.linuxprobe.com/" title= ...

  6. 以帧为存储单位的循环stack

    此stack主要是作为存储空间使用,主要的借口就是push和pop. stack frame的src以及例程位于stack_FrameTest这个库当中,其中有readme文件,可以快速上手. sta ...

  7. maven项目编译通过,测试用例卡住,断点也用不了

    maven项目编译通过,测试用例卡住,断点也用不了.如下图 maven的tomcat插件可以运行没报错,但是网页访问一直转圈 原因: 最后发现是typeAliasesPackage这里设置了别名,所以 ...

  8. 使用flask-restful搭建API

    最简单的例子 ---~~~~ 访问http://127.0.0.1:5000/ , 返回{"hello": "world"} from flask import ...

  9. Spring学习之旅(二)--容器

    在 Spring 应用中,所有的对象都在 Spring 容器(container) 里,容器负责对象的创建.配置.装配并管理它们的整个生命周期. Spring 容器 Spring 容器 并不是只有一个 ...

  10. 复习+dfs

    1.参考:https://www.cnblogs.com/ckxkexing/p/8466097.html 这道题自己写过,还写过blog,但是第二次写还是不会. (于是开坑,想做做dfs的整理.