学生管理系统——ArrayList集合
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集合的更多相关文章
- java基础: ArrayList集合应用, ArrayList增删改查详解,综合java基础实现学生管理系统,
1.ArrayList 集合和数组的区别 : 共同点:都是存储数据的容器 不同点:数组的容量是固定的,集合的容量是可变的 1.1 -ArrayList的构造方法和添加方法 public ArrayLi ...
- 史上最强学生管理系统之ArrayList版
其实不管是网上或者培训班,都会有学生管理系统的最基础版本,本人也不过是照猫画虎,在某些细节方面进行了一些渲染,使这个最基本的小程序更加人性化和便于利于操作一点,个人愚见,大牛勿喷,欢迎转载(请注明出处 ...
- 9.2ArrayList 集合 案例,学生管理系统
循环的使用 添加学生:while嵌套for,for设置变量,内嵌if更新变量.if语句判断变量值 修改学生:for循环内嵌if,获取循环中的某个值. package day9_ArrayList.AL ...
- Java基础进阶:学生管理系统数组方式分包源码实现,教师管理系统集合和数组两种方式源码实现,图书馆管理系统源码实现,现附重难点,代码实现源码,课堂笔记,课后扩展及答案
1.案例驱动模式 1.1案例驱动模式概述 (理解) 通过我们已掌握的知识点,先实现一个案例,然后找出这个案例中,存在的一些问题,在通过新知识点解决问题 1.2案例驱动模式的好处 (理解) 解决重复代码 ...
- 学生管理系统利用arrayList第二次优化
package StuManage; public class Student { private String name;//姓名 private String stuNum;//学号 privat ...
- JDBC学生管理系统--处理分页显示
分页的思想: 假设一共有104条数据,每页显示10条数据: select * from student limit 0,10; 页数是index,第index页,对应的sql语句是: select * ...
- 史上最强学生管理系统之IO版
既上一博发布的ArrayList版本之后,新一版的IO版又来了,其实只是在上一个版本里面添加了IO流的内容,将存入更改的信息更新到了文件中而已,这个版本网上仍然很多,本人只是在某些方面稍加修改,因为自 ...
- 第83节:Java中的学生管理系统分页功能
第83节:Java中的学生管理系统分页功能 分页功能一般可以做成两种,一种是物理分页,另一种是逻辑分页.这两种功能是有各自的特点的,物理分页是查询的时候,对数据库进行访问,只是查一页数据就进行返回,其 ...
- 模拟斗地主和学生管理系统 IO 版
1.模拟斗地主 public class PlayCards { public static void main(String[] args) { String[] color = {"黑桃 ...
随机推荐
- Mac如何前往文件夹 修改hosts文件 显示隐藏文件 Mac如何查看剪切板
Mac 如何前往文件夹 首先,回到桌面,或者点击Finder(访达) 然后输入快捷键 ⌘ Command + ⇧ Shift + G 或者在Finder上方状态栏中点击‘前往’>>> ...
- lnmp环境搭建方法
网上目前的一键搭建方法: 命令行安装: 1.源码编译安装:(个性化配置,安装配置过程繁琐) 2.使用yum或apt直接安装:(使用编译好的二进制文件安装,速度快) 3.军哥的lnmp一键脚本安装: 4 ...
- Linux - 通过expect工具实现脚本的自动交互
目录 1 安装expect工具 2 expect的常用命令 3 作用原理简介 3.1 示例脚本 3.2 脚本功能解读 4 其他脚本使用示例 4.1 直接通过expect执行多条命令 4.2 通过she ...
- Tomcat源码分析 (九)----- HTTP请求处理过程(二)
我们接着上一篇文章的容器处理来讲,当postParseRequest方法返回true时,则由容器继续处理,在service方法中有connector.getService().getContainer ...
- Day 05--最终修改(一)
1.今天大家集中交流了自己的的课程设计雏形,我们感到收获颇丰.在感慨别的同学设计的别出心裁的同时,我们也反思了自己的模型.通过与老师的讨论我们决定修改已有的首页格式,以及丰富用户的身份:即小程序不仅面 ...
- Log2Net的部署和运维
前面几节中,笔者介绍了Log2Net组件的方方面面.但是,有人说,我用不起来,各种头疼的小问题.下面,我们就具体的看一看要怎么把这个组件应用到实际的项目中吧. 一.Log2Net组件的发布 前文中,我 ...
- Python|队列Queue
一 前言 本文算是一次队列的学习笔记,Queue 模块实现了三种类型的队列,它们的区别仅仅是队列中元素被取回的顺序.在 FIFO 队列中,先添加的任务先取回.在 LIFO 队列中,最近被添加的元素先取 ...
- k好数(动态规划)
问题描述 如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数.求L位K进制数中K好数的数目.例如K = 4,L = 2的时候,所有K好数为11.13.20.22 ...
- 在vue.js引用图片的问题
<div id="img"> <img src="img.png" class="img"> </div> ...
- Liunx学习总结(三)--用户和用户组管理
用户和组的基本概念 用户和组是操作系统中一种身份认证资源. 每个用户都有用户名.用户的唯一编号 uid(user id).所属组及其默认的 shell,可能还有密码.家目录.附属组.注释信息等. 每个 ...