学了一段时间的Java,但是总有一些困惑,于是写了这篇文章,来帮助理解Java中的ArrayList,以及完成一个简单的学生管理系统
先看最终成果:
让我们先来分析一下学生管理系统的组成
作为一个学生管理系统来说,其作用就是为了管理学生,所以,我计划从以下几个方面来完成这个学生管理系统
-
主界面 -
添加学生 -
查看学生 -
修改学生 -
删除学生……
还有一些小bug的修复
关于主界面的编写
一、打开Java开发工具:IDEA,在里面创建一个学生类(Student),并填写好相关信息。
- 添加学生的
学
号
,
姓
名
\color{red}{学号},\color{red}{姓名}
学号,姓名,
年
龄
\color{red}{年龄}
年龄和
家
庭
住
址
\color{red}{家庭住址}
家庭住址信息,为了保证数据不被其他类更改,所以使用private关键字进行修饰。
2.由于使用了private关键字修饰了这个学生类,所以必须使用
(
g
e
t
/
s
e
t
)
方
法
\color{red}{(get/set)方法}
(get/set)方法 进行学生信息的设置和读取,这里以获取学生的年龄为例,获取学生其他信息类似:
public void setAge(String age) {
this.age = age;
}
public String getAge() {
return age;
}
3.无参构造方法和带参构造方法的编写(
构
造
方
法
主
要
用
于
创
建
对
象
\color{red}{构造方法主要用于创建对象}
构造方法主要用于创建对象)
无参构造方法
public Student(){}
带有参数的构造方法
public Student(String sid,String name,String age,String address){
this.sid=sid;
this.name=name;
this.age=age;
this.address=address;
}
二、新建一个学生测试类(Student Manager),用于编写主界面
1.写出学生管理系统的主界面
public static void main(String[] args) {
ArrayList<Student> arr=new ArrayList<Student>();
System.out.println("----欢迎进入学生管理系统----");
System.out.println("1.添加学生信息");
System.out.println("2.查看学生信息");
System.out.println("3.删除学生信息");
System.out.println("4.修改学生信息");
System.out.println("退出系统")
System.out.println("请输入您想要进行的操作,回车键进入:");
}
2.使用switch语句接收键盘录入的选项
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
switch (num) {
case 1:
System.out.println("添加学生信息成功");
break;
case 2:
System.out.println("查看学生信息成功");
break;
case 3:
System.out.println("删除学生信息成功");
break;
case 4:
System.out.println("修改学生信息成功");
break;
case 5:
System.out.println("退出系统成功");
break;
default:
System.out.println("该功能暂不支持,请等待后续版本更新");
}
3.至此主界面的编写就完成了,准备开始编写程序具体内容的实现代码
添加学生页面的编写
定义一个集合,用于存储学生对象,这个集合的名字是arr
ArrayList<Student> arr=new ArrayList<Student>();
定义一个方法(addStudent),用于添加学生功能的实现
分析一下问题,不难得出,由于是添加信息,所以
不
需
要
返
回
值
\color{#FF3030}{不需要返回值}
不需要返回值;又因为需要将信息添加到集合中,所以
需
要
一
个
集
合
类
型
的
参
数
a
r
r
\color{#FF3030}{需要一个集合类型的参数arr}
需要一个集合类型的参数arr ,方法写完之后,不要忘记调用方法哦
public static void addStudent(ArrayList<Student> arr){
Scanner sc=new Scanner(System.in);
System.out.println("请输入你要添加的学生的学号:");
String sid = sc.nextLine();
System.out.println("请输入你要添加的学生的姓名:");
String name = sc.nextLine();
System.out.println("请输入你要添加的学生的年龄:");
String age = sc.nextLine();
System.out.println("请输入你要添加的学生的家庭住址:");
String address = sc.nextLine();
Student s=new Student();
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAddress(address);
arr.add(s);
System.out.println("添加成功!");
查看学生页面的编写
分析思路如下:
1.首先使用输出语句,将表头进行输出
2.使用
a
r
r
.
s
i
z
e
(
)
\color{red}{arr.size()}
arr.size()和
a
r
r
.
g
e
t
(
)
\color{red}{arr.get()}
arr.get()方法获取集合的长度和指定索引处的元素值
3创建一个对象s用于保存获取到的索引处的元素值
4.使用循环将学生信息输出即可
public static void findAllStudent(ArrayList<Student> arr) {
System.out.println("学号\t\t姓名\t\t年龄\t\t家庭住址\t\t");
for (int i = 0; i < arr.size(); ++i) {
Student s = arr.get(i);
System.out.println(s.getSid() + "" + s.getName() + "" + s.getAge() + "" + s.getAddress());
}
}
删除学生页面的编写
分析思路如下:
1.输入提示信息提供用户输入要删除的学号
2.创建变量接收用户输入的数据
3.遍历集合,得到每一个学生对象
4.调用方法(
g
e
t
S
i
d
\color{red}{getSid}
getSid)获得学生对象中的学号信息,并与键盘输入的进行比较(
e
q
u
a
l
s
\color{red}{equals}
equals);如果相同,则进行删除操作
public static void deleteStudent(ArrayList<Student> arr) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入您需要删除学生的学号:");
String sid = sc.nextLine();
for (int i = 0; i < arr.size(); i++) {
Student s = arr.get(i);
if (s.getSid().equals(sid)) {
arr.remove(i);
}
System.out.println("删除成功!");
}
修改学生页面的编写
分析思路如下:
1.给出提示信息并保存用户输入的学生数据
2.使用
s
e
t
(
)
方
法
\color{red}{set()方法}
set()方法对学生信息进行修改
3.遍历学生对象,如果学生的学号和键盘录入的学生学号相同,则进行修改操作,并给出修改成功的提示
public static void updateStudent(ArrayList<Student> arr) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入您需要修改信息的学生的学号:");
String sid = sc.nextLine();
System.out.println("请输入学生新姓名:");
String name = sc.nextLine();
System.out.println("请输入学生新年龄:");
String age = sc.nextLine();
System.out.println("请输入学生新住址:");
String address = sc.nextLine();
Student s = new Student();
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAddress(address);
for (int i = 0; i < arr.size(); i++) {
Student student = arr.get(i);
if (student.getSid().equals(sid))
arr.set(i, s);
break;
}
System.out.println("修改成功!");
}
到这里,一个简单的学生管理系统大致就做好了,当然还有一些小bug,比如学号重复,学号不存在等等,我相信根据上面的案例,您应该也能将这些bug修复啦,有什么不理解的可以联系我,也欢迎您的批评指正,谢谢您了。
|