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. Appium+python自动化(三十二)- 代码写死一时爽,框架重构火葬场 - PageObject+unittest(超详解)

    简介 江湖有言:”代码写死一时爽,框架重构火葬场“,更有人戏言:”代码动态一时爽,一直动态一直爽

  2. 前端利器躬行记(1)——npm

    npm(Node Package Manager)是Node.js的包管理工具,相当于一个在线仓库.它提供了一个公共的平台,将分散在世界各地的包集中起来,能轻松的安装.分享和管理相关的包,不用再为搜索 ...

  3. insertSql语句中的trim标签的使用

    insert into MB_BATCH_DIS_DETAILS    <trim prefix="(" suffix=")" suffixOverrid ...

  4. Oracle笔记_多表查询

    1 执行sql文件 @文件地址名 --执行某个sql文件: 2 多表查询 想要的数据不在同一张表,就需要多个表进行联查. 多表查询也叫做表连接查询,其中的where条件就是连接条件. 可以使用join ...

  5. Condition控制线程通信

    Condition控制线程通信 一.前言 java.util.concurrent.locks.Condition 接口描述了可能会与锁有关联的条件变量.这些变量在用法上与使用Object.wait ...

  6. (一)配置linux环境实现持续集成

    目录 1.Centos7操作系统 2.Gnome 可视化桌面 3.远程shell工具 4.远程桌面工具 5.Jdk 6..Net Core 7.Git 8.Docker 容器 9.Kubernetes ...

  7. PHP工程师学Python数据类型

    一.背景 继上篇文章比较了PHP与Python语法之后,这周又学习了Python数据类型,准备从通过这篇文章给自己进行一些总结,也给其他读者一些参考. 二.内容概要 字符串(str) 列表(list) ...

  8. liunx安装jdk

    jdk 安装包  https://pan.baidu.com/s/1cKnUQGU2Sk2nsARAzzVAHw [root@localhost ~]# tar -zxvf jdk-8u152-lin ...

  9. WebApi使用OAuth2认证

    本篇文章实现了四种认证方式中的客户端模式和密码模式,未实现token持久化 未介绍OAuth2的相关概念,全部是干货,可自己在网上搜索OAuth2相关知识,在这不做过多阐述 一.引用OAuth2所需的 ...

  10. Jira更改工作流后,敏捷看板里无法显示sprint对应的问题列表

    转自:http://blog.csdn.net/computerheart/article/details/68924295 Jira更改工作流后,敏捷看板里无法显示sprint对应的问题列表 原创  ...