文章目录
前言
因为一些可控不可控的原因(每天的课程作业实在是太多)
所以,一直打算的笔记和学生管理系统的项目实现和知识点的总结也就一拖再拖〒▽〒
同时看到一些大佬的项目实现的高大上,身为初学者的我诚惶诚恐
w(゚Д゚)w
但是我有信心一直走下去(ง •_•)ง一起进步,共同加油!!!
一、学生管理系统的实现准备
要实现学生管理系统,需要有这么几方面的功能:
1. 添加学生
2. 删除学生
3. 修改学生
4. 查看所有学生
加上华丽的主界面和退出选项,就出现了这样的一幕:
这不过是我的幻想罢了╥﹏╥…
收回幻想,面对初学者的idea控制栏吧!
要进行增删功能的实现,必须引入ArrayList一个
“可以自动扩充自身尺寸的数组”
二、ArrayList的使用
java实用类库提供了List,Set,Queue和Map相当完整的容器类来解决数组需要固定字符类型和大小这一基本问题,这些对象也被称为集合类
ArrayList的创建
import java.util.ArrayList;//ArrayList的导包
ArrayList<String>array = new ArrayList<String>();
这样表示了已经创建了一个名叫array可以自动扩充自身尺寸的数组了
然后我们可以使用
add()方法来在数组中添加对象
get()在数组中访问所添加的对象
size()可以查看数组的对象的多少
ArrayList<String>array = new ArrayList<>();
array.add("NotError");
System.out.println(array.get(0));
System.out.println(array.size());
输出Noterror
输出1
三、学生管理系统的实现
1,构造方法的实现
为什么要使用构造方法:
1.面向对象的强制性要求
(1)构造方法是对象时用new关键字必须要调用的
(2)自己不定义任何构造方法时,编译器默认生成一个
2.初始化对象或其他任务
(1)完成对象属性初始化
(2)传递参数
(3)还可以完成信息的读取,或其他对象的初始化等任务
3.多个构造方法之间的调用问题
(1)使用:this(参数)方式
(2)避免代码重复,展示编程水平,体现编程之美
(3)继承中base关键字
public class StudentDemo {//我创建构造方法类StudentDemo
private String sid;//学号
private String name;//姓名
private String age;//年龄
private String adress;//居住地
public StudentDemo(){}
//alt+ins可以直接生成get,set方法
public String getSid() {
return sid;
}
public void setSid(String sid) {
this.sid = sid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getAdress() {
return adress;
}
public void setAdress(String adress) {
this.adress = adress;
}
//带参构造方法
public StudentDemo(String sid, String name, String age, String adress) {
this.sid = sid;
this.name = name;
this.age = age;
this.adress = adress;
}
}
2,主界面的实现
要实现idea控制栏的主界面,必须使用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("请做出你的选择:");
为了主界面不那么快的消失,也就是让其循环,我们要使用while函数来实现,然后就加上主函数,数组的创建,就可以攒出如下代码
import java.util.ArrayList;
import java.util.Scanner;
public class StudentMassage {
public static void main(String[] args) {
ArrayList<StudentDemo> array = new ArrayList<StudentDemo>();
//StudentDemo是我创建的构造方法类
while (true) {
//创建集合对象,用于储存学生数据
//主界面
//用输出来搞主界面
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("请做出你的选择:");
然后就要使用switch函数和Scanner函数实现关于主界面的选择问题了。
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
switch (line) {
case "1":
addstudent(array);//关于学生增加的方法引用
break;
case "2":
delstudent(array);//关于学生删除的方法引用
break;
case "3":
changestudent(array);//关于学生修改的方法引用
break;
case "4":
searchstudent(array);//关于学生展示的方法引用
break;
case "5":
System.out.println("谢谢使用");
System.exit(0);//关于学生管理系统退出的方法
}
3,添加学生的方法实现
实现思路
- 要使用System.out.println打印提示语句
- 要使用Scanner将键盘输入数据存储
- 要使用构造方法类中将Scanner方法存储数据存储到ArrayList中
public static void addstudent(ArrayList<StudentDemo> array) {
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 adress = sc.nextLine();
//创建学生对象,把键盘录入数据赋值给学生对象的成员变量
StudentDemo s = new StudentDemo();
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAdress(adress);
//将学生对象添加到集合中
array.add(s);
//给出添加成功的提示
System.out.println("添加成功!");
}
4,删除学生的方法实现
实现思路
- 要使用System.out.println打印提示语句
- 要使用Scanner将键盘输入数据存储
- 遍历数组寻找所需删除字符,用if语句判断是否存在
- 使用move直接删除
public static void delstudent(ArrayList<StudentDemo> array) {
System.out.println("请输入要删除学生学号:");
Scanner sc = new Scanner(System.in);
String sid = sc.nextLine();//sid接收想删除学号
for (int i = 0; i < array.size(); i++) {
StudentDemo s = array.get(i);//遍历寻找
if (s.getSid().equals(sid)) {//equlas函数判断数组字符是否相等
array.remove(i);//使用remove函数删除该字符
System.out.println("删除成功!");
break;
} else {
System.out.println("删除失败!");
}
}
5,修改学生的方法实现
实现思路
- 要使用System.out.println打印提示语句
- 要使用Scanner将键盘输入数据存储
- 遍历寻找符合条件字符,使用equals函数判断是否存在
- 若存在使用set将其修改
public static void changestudent(ArrayList<StudentDemo> array) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入要的学生学号:");
String sid = sc.nextLine();
StudentDemo s = new StudentDemo();//创建学生对象
s.setSid(sid);
for (int i = 0; i < array.size(); i++) {
//遍历寻找符合条件字符
StudentDemo student = array.get(i);
if (student.getSid().equals(sid)) {
//使用equals函数判断是否存在
System.out.println("请输入新的学生名字:");
String name = sc.nextLine();
System.out.println("请输入新的学生年龄:");
String age = sc.nextLine();
System.out.println("请输入新的学生地址:");
String adress = sc.nextLine();
s.setName(name);//传入构造方法中
s.setAge(age);
s.setAdress(adress);
array.set(i, s);
break;
} else {
System.out.println("你输入学号不存在");//不存在输出
break;
}
}
}
6,展示所有学生的方法实现
实现思路
- 先判断数组是否存在字符
- 遍历打印
public static void searchstudent(ArrayList<StudentDemo> array) {
if (array.size() == 0) {
System.out.println("无信息,请输入");
}else{
System.out.println("学号\t\t\t姓名\t\t年龄\t\t住址\t\t");
for (int i = 0; i < array.size(); i++) {
StudentDemo s1 = array.get(i);
System.out.println(s1.getSid() + "\t" + s1.getName() + "\t\t" + s1.getAge() + "\t\t" + s1.getAdress());
}
}
}
四,代码汇总
import java.util.ArrayList;
import java.util.Scanner;
public class StudentMassage {
public static void main(String[] args) {
ArrayList<StudentDemo> array = new ArrayList<StudentDemo>();
while (true) {
//创建集合对象,用于储存学生数据
//主界面
//用输出来搞主界面1
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("请做出你的选择:");
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
switch (line) {
case "1":
addstudent(array);
break;
case "2":
delstudent(array);
break;
case "3":
changestudent(array);
break;
case "4":
searchstudent(array);
break;
case "5":
System.out.println("谢谢使用");
System.exit(0);
}
}
}
//添加学生的方法实现
public static void addstudent(ArrayList<StudentDemo> array) {
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 adress = sc.nextLine();
//创建学生对象,把键盘录入数据赋值给学生对象的成员变量
StudentDemo s = new StudentDemo();
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAdress(adress);
//将学生对象添加到集合中
array.add(s);
//给出添加成功的提示
System.out.println("添加成功!");
}
//删除学生的方法实现
public static void delstudent(ArrayList<StudentDemo> array) {
System.out.println("请输入要删除学生学号:");
Scanner sc = new Scanner(System.in);
String sid = sc.nextLine();
for (int i = 0; i < array.size(); i++) {
StudentDemo s = array.get(i);
if (s.getSid().equals(sid)) {
array.remove(i);
System.out.println("删除成功!");
break;
} else {
System.out.println("删除失败!");
}
}
}
//查看学生方法的实现
public static void searchstudent(ArrayList<StudentDemo> array) {
if (array.size() == 0) {
System.out.println("无信息,请输入");
}else{
System.out.println("学号\t\t\t姓名\t\t年龄\t\t住址\t\t");
for (int i = 0; i < array.size(); i++) {
StudentDemo s1 = array.get(i);
System.out.println(s1.getSid() + "\t" + s1.getName() + "\t\t" + s1.getAge() + "\t\t" + s1.getAdress());
}
}
}
//修改学生方法实现
public static void changestudent(ArrayList<StudentDemo> array) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入要的学生学号:");
String sid = sc.nextLine();
StudentDemo s = new StudentDemo();//创建学生对象
s.setSid(sid);
for (int i = 0; i < array.size(); i++) {
StudentDemo student = array.get(i);
if (student.getSid().equals(sid)) {
System.out.println("请输入新的学生名字:");
String name = sc.nextLine();
System.out.println("请输入新的学生年龄:");
String age = sc.nextLine();
System.out.println("请输入新的学生地址:");
String adress = sc.nextLine();
s.setName(name);
s.setAge(age);
s.setAdress(adress);
array.set(i, s);
break;
} else {
System.out.println("你输入学号不存在");
break;
}
}
}
}
一起学习,共同进步!ㄟ(≧◇≦)ㄏ