通过学习的一系列知识点综合的小案例,通过控制台来完成一系列的增删查改的操作。
准备工作
开发工具IDEA2019.1.4,jdk13
思路
一共三个类,一个接口
存放学生数据用我们学过的ArrayList,由于类是一种引用数据类型,所以我们可以将泛型指代成Student
编写逻辑
业务层调用逻辑层,逻辑层调用数据层
知识点
面向对象,ArrayList,泛型,循环,迭代,switch
具体代码实现
Student.java
package com.zxy.bean;
public class Student {
private int id;
private String name;
private int age;
private String addr;
public Student(){
// 无参构造方法,防止出错
}
public Student(int id,String name,int age,String addr){
this.id=id;
this.name=name;
this.age=age;
this.addr=addr;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
@Override
public String toString() {
return "{ID: "+this.id+",name: "+this.name+",age: "+this.age+",addr: "+this.addr+"}";
}
}
StudentManager.java
package com.zxy.bean;
import java.util.ArrayList;
import java.util.Scanner;
public class StudentManager implements StudentInterface {
@Override
public void addStudent(ArrayList<Student> list) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入学号:");
int id=sc.nextInt();
System.out.println("请输入姓名:");
String name=sc.next();
System.out.println("请输入年龄:");
int age=sc.nextInt();
System.out.println("请输入地址:");
String addr=sc.next();
list.add(new Student(id,name,age,addr));
System.out.println("添加完成");
}
@Override
public void delStudent(ArrayList<Student> list) {
// 首先删除之前还是要判断一下有没有信息
Scanner sc=new Scanner(System.in);
if (list.size()==0){
// 如果为0,则说明list中没有学生信息
System.out.println("没有学生信息");
return;
}
findStudent(list);
System.out.println("输入要删除的学号:");
// 输入要删除的学号
int id=sc.nextInt();
// 判断要删除的id是不是在list中
for (int i=0;i<list.size();i++){
if (list.get(i).getId()==id){
Object string = list.remove(i);
System.out.println("删除成功,你删除的是:"+string);
}
}
}
@Override
public void findStudent(ArrayList<Student> list) {
if (list.size()==0){
System.out.println("没有学生信息");
}
// 查询全部学生信息
for (Student student:list){
System.out.println(student.toString());
System.out.println("信息已展示");
}
return;
}
@Override
public void changeStudent(ArrayList<Student> list) {
// 修改学生信息
Scanner sc=new Scanner(System.in);
if (list.size()==0){
System.out.println("当前没有学生信息");
return;// 这样会直接终止当前语句,不会执行下面的语句了
}
System.out.println("输入要修改的学生的学号:");
int id=sc.nextInt();
// 判断id是否在list中,如果在,就修改
boolean flag=false;// 如果boolean为false,那么说明没有在这个人
for (int i=0;i<list.size();i++){
if (list.get(i).getId()==id){
// 如果存在,就输入新的学号、姓名、年龄、地址
System.out.println("输入新的学号:");
int idNew=sc.nextInt();
System.out.println("输入新的姓名:");
String nameNew=sc.next();
System.out.println("输入新的年龄:");
int ageNew=sc.nextInt();
System.out.println("输入新的地址:");
String addrNew=sc.next();
list.set(i,new Student(idNew,nameNew,ageNew,addrNew));
System.out.println("修改成功");
return;
}
}
if (flag==false){
System.out.println("没有找到该学生呢,亲");
}
}
@Override
public void findOnlyStudent(ArrayList<Student> list) {
Scanner sc=new Scanner(System.in);
System.out.println("输入要查找的学生id:");
int id=sc.nextInt();
for (Student stu:list){
if (stu.getId()==id){
System.out.println(stu.toString());
}else {
System.out.println("你输入的id不存在");
return;
}
}
}
}
StudentView.java
package com.zxy.bean;
import java.util.ArrayList;
import java.util.Scanner;
public class StudentView {
public static void main(String[] args) {
menu();
}
// 封装一个主菜单的方法
public static void menu(){
// 数组保存学生信息,类型使用Student类型
ArrayList<Student> list=new ArrayList<>();
StudentManager stu=new StudentManager();
boolean flag=true;
while (flag){
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("**********************************");
System.out.println("请输入您要操作的序号: ");
// 序号选择
int choice=new Scanner(System.in).nextInt();
switch (choice){
case 1:
// 查询学生
stu.findStudent(list);
break;
case 2:
// 查询单个学生
stu.findOnlyStudent(list);
break;
case 3:
// 添加学生
stu.addStudent(list);
break;
case 4:
// 修改学生
stu.changeStudent(list);
break;
case 5:
// 删除学生
stu.delStudent(list);
break;
case 6:
// 退出程序
flag=false;
System.out.println("程序退出成功,欢迎下次使用");
break;
}
}
}
}
StudentInterface.java
package com.zxy.bean;
import java.util.ArrayList;
public interface StudentInterface {
void addStudent(ArrayList<Student> list);
void delStudent(ArrayList<Student> list);
void findStudent(ArrayList<Student> list);
void changeStudent(ArrayList<Student> list);
void findOnlyStudent(ArrayList<Student> list);
}
运行截图
关于管理系统的更多内容请点击《管理系统专题》进行学习
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持亿速云。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。