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. PostgreSQL入门教程(命令行)

    初次安装完成后 1.默认生成一个名为postgres的数据库 2.一个名为postgres的数据库用户 3.这里需要注意的是,同时还生成了一个名为postgres的Linux系统用户. 下面,我们使用 ...

  2. Apache 配置 https

    本人当前的Apache版本是: ​ 由于我是yum安装的http,默认的http配置文件我就不多说了, 下面开始记录一下自己的线上配置过程: 1,进入/etc/httpd/conf.d目录,新建证书放 ...

  3. Java连载21-switch练习

    一.switch练习 public class d21_{ public static void main(String[] args) { java.util.Scanner s = new jav ...

  4. ionic App 解决android端在真机上 tab处于顶部的Bug

    在app.js 页面中添加以下代码 .config(function($stateProvider, $urlRouterProvider,$ionicConfigProvider) { $ionic ...

  5. 支持向量机 (一): 线性可分类 svm

    支持向量机(support vector machine, 以下简称 svm)是机器学习里的重要方法,特别适用于中小型样本.非线性.高维的分类和回归问题.本系列力图展现 svm 的核心思想和完整推导过 ...

  6. Codeforces 936C

    题意略. 思路: 这个题目没做出来是因为缺少一个整体的构造思路. 正确的构造思路是不断地在s中去构造并且扩大t的后缀,构造好的后缀总是放在前面,然后不断地把它往后挤,最后将s构造成t. 比如: 现在在 ...

  7. runnable和thread实现多线程的区别

    下面以典型的买票程序(基本都是以这个为例子)为例,来说明二者的区别. 首先通过继承Thread类实现,代码如下: class MyThread extends Thread{ private int ...

  8. 用故事解析setTimeout和setInterval(内含js单线程和任务队列)

    区别: setTimeout(fn,t): 延迟调用,超过了时间就调用回调函数,返回一个id,使用clearTimeout(id)取消执行. 注意:取消了里面的回调函数就不执行了哦,而不是取消的时候就 ...

  9. 新手学习FFmpeg - 调用API完成录屏并进行H.264编码

    Screen Record H.264 目前在网络传输视频/音频流都一般会采用H.264进行编码,所以尝试调用FFMPEG API完成Mac录屏功能,同时编码为H.264格式. 在上一篇文章中,通过调 ...

  10. 第10章 文档对象模型DOM 10.2 Document类型

    Document 类型 JavaScript 通过 Document 类型表示文档.在浏览器中, document 对象是 HTMLDocument (继承自 Document 类型)的一个实例,表示 ...