先定义一个接口StudentService
public interface StudentService {
// 定义一个学生对象是否存在的接口
int exists(int id);
// 添加的接口
boolean add(Student student);
// 删除的接口
boolean delect(int id);
// 修改的接口
boolean update(Student student);
// 查询一个人的接口
Student selectOne(int id);
// 查询所有人的接口
Student[] selectAll();
//状态查询的接口
Student[] StudentsByState(String state);
//登录页面的接口
boolean userServlet(String name,String miman);
}
然后写一个接口实现类StudentServiceimpl
import java.util.Arrays;
public class StudentServiceimpl implements StudentService{
// 先给学生类定义一个数组来装学生对象
Student[]students={};
// 定义一个数在装学生对象个数
int size=0;
// 判断该学生是否存在的方法
@Override
public int exists(int id) {
for (int i = 0; i < size; i++) {
if (id==students[i].getId()){//表示该学生存在
return i;
}
}
return -1;//表示学生不存在
}
//添加的方法
@Override
public boolean add(Student student) {
// 1.先判断该学生存不存在
int index=exists(student.getId());
if (index==-1){//表示不存在
return false;
}
// 2.判断数组装不装的下,是否需要扩容
if (students.length==size){//需要扩容
students= Arrays.copyOf(students,students.length+5);
}
// 3.添加学生对象
students[size]=student;
return true;
}
@Override
public boolean delect(int id) {
// 1.判断需要删除的学生是否存在
// 使用index接收是否存在的返回值
int index=exists(id);
if (index==-1) {
return false;
}
// 2.表示存在,然后在学生对象数组中删除该对象
System.arraycopy(students,index+1,students,index,size - index - 1);
// 3.学生个数减1
size--;
// 4.数组全部向前移之后,后面会有一个新的数组至于null
students[size]=null;
return true;
}
@Override
public boolean update(Student student) {
int index=exists(student.getId());
if (index==-1){//表示学生不存在
return false;
}//表示学生存在
students[index]=student;
return true;
}
@Override
public Student selectOne(int id) {
// 1.先判断要查询的学生是否存在
int index=exists(id);
if (index!=-1){//表示要查询的学生存在
return students[index];}
else{
return null;
}
}
@Override
public Student[] selectAll() {
return students;
}
@Override
public Student[] StudentsByState(String state) {
// 因为新的数组的长度我们是未知的 所以需要定义一个数去接收长度
int count=0;
for (int i = 0; i < students.length; i++) {
if (state.equals(students[i].getState())){
count++;
}
}
Student [] students1 = new Student[count];
int index=0;
for (int i = 0; i < size; i++) {
if (state.equals(students[i].getState())){
students1[index]=students[i];
index++;
}
}
return students1;
}
@Override
public boolean userServlet(String name, String miman) {
if (name.equals("任宇阳")){
if (miman.equals("renyuyang")) {
return true;
}else {
System.out.println("密码输入错误");}
}else{
System.out.println("用户名输入错误");}
return false;
}
}
写一个学生类
public class Student {
// 先定义一个学生类
// 学生类里有那些属性:学生id、姓名、年龄、性别、学分、状态..
private int id;
private String name;
private int age;
private String sex;
//定义一个无参构造方法
public Student() {
}
//定义一个有参构造方法
public Student(int id, String name, int age, String sex, double score, String state) {
this.id = id;
this.name = name;
this.age = age;
this.sex = sex;
this.score = score;
this.state = state;
}
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 getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
private double score;
private String state;
}
然后写一个假的前端展示
import java.util.Scanner;
public class StudentView {
// 创建一个成员变量键盘输入
Scanner scanner=new Scanner(System.in);
// 创建一个学生管理类,才能调用学生管理类的方法
StudentService studentService=new StudentServiceimpl();
// 首页
public void indexView() {
while (true) {
System.out.println("请输入功能序号:1.添加学生 2.删除学生 3.修改学生 4.查询学生 5.查询所有学生 6查询状态 7.退出系统");
switch (scanner.nextInt()) {
case 1:
addView();
break;
case 2:
deleteView();
break;
case 3:
updateView();
break;
case 4:
selectOneView();
break;
case 5:
selectAllView();
break;
case 6:
selectStateView();
break;
case 7:
return;
default:
System.out.println("没有该功能选项请重新输入");
break;
}
}
}
// 定义一个添加页面
public void addView(){
System.out.println("欢迎进入添加页面");
System.out.println("请输入添加的学生id");
int id = scanner.nextInt();
System.out.println("请输入添加的学生姓名");
String name = scanner.next();
System.out.println("请输入添加的学生性别");
String sex = scanner.next();
System.out.println("请输入添加的学生年龄");
int age = scanner.nextInt();
System.out.println("请输入添加的学生学分,学分百分制");
double score = scanner.nextDouble();
System.out.println("请输入添加的学生状态,在读、休学、毕业、退学、开除");
String state = scanner.next();
// 输入完后调用后端的添加方法
Student student=new Student(id,name,age,sex,score,state);
if (studentService.add(student)){
System.out.println("添加成功");
}else {
System.out.println("添加失败");
}
}
// 定义一个删除页面
public void deleteView(){
System.out.println("欢迎进入删除页面");
System.out.println("请输入你需要删除学生的id");
int id = scanner.nextInt();
System.out.println("你确定要删除该学生嘛(确定输入确定)");
String next = scanner.next();
if (next.equals("确定")){
if (studentService.delect(id)){
System.out.println("删除成功");
}else {
System.out.println("删除失败");
}
}else {
System.out.println("取消了删除操作");
}
}
// 定义一个修改页面
public void updateView(){
System.out.println("欢迎进入修改页面");
System.out.println("请输入你需要修改的学生id");
int id = scanner.nextInt();
// 先根据后端查询一个学生的方法把学生查询出来
Student student=studentService.selectOne(id);
if (student==null){
System.out.println("需要修改的学生不存在,无法修改");
}else {
System.out.println("id\t\t\t姓名\t\t性别\t\t年龄\t\tt学分\t\t状态");
showView(student);
System.out.println("请输入修改的姓名");
String name = scanner.next();
System.out.println("请输入修改的性别");
String sex = scanner.next();
System.out.println("请输入修改的年龄");
int age = scanner.nextInt();
System.out.println("请输入修改的学分");
double score =scanner.nextDouble();
System.out.println("请输入修改的状态");
String state = scanner.next();
student.setName(name);
student.setAge(age);
student.setSex(sex);
student.setState(state);
student.setScore(score);
// 然后调用后端的修改方法
if (studentService.update(student)){
System.out.println("修改成功");
}else{
System.out.println("修改失败");
}
}
}
// 定义一个查询一个人的页面
public void selectOneView(){
System.out.println("欢迎进入学生详情页面");
System.out.println("请输入需要查询的学生id");
int id=scanner.nextInt();
// 调用后端的查询方法
Student student=studentService.selectOne(id);
if (student==null){
System.out.println("查询失败");
}else {
System.out.println("查询到该学生");
System.out.println("id\t\t\t姓名\t\t性别\t\t年龄\t\tt学分\t\t状态");
showView(student);
}
}
// 定义一个查询所有学生的页面
public void selectAllView(){
// 调用后端的查询方法
Student[] students = studentService.selectAll();
if (students.length == 0) {//表示没有学生
System.out.println("暂无学生信息");
} else {
System.out.println("id\t\t\t姓名\t\t性别\t\t年龄\t\tt学分\t\t状态");
for (int i = 0; i < students.length; i++) {
if(students[i]!=null) {
showView(students[i]);
}
}
}
}
// 定义一个状态查询页面
public void selectStateView(){
System.out.println("请输入需要查询的学生状态");
String state=scanner.next();
Student[] students = studentService.StudentsByState(state);
if (students.length == 0) {//表示没有学生
System.out.println("暂无学生信息");
} else {
System.out.println("id\t\t\t姓名\t\t性别\t\t年龄\t\tt学分\t\t状态");
for (int i = 0; i < students.length; i++) {
if(students[i]!=null) {
showView(students[i]);
}
}
}
}
// 定义一个展示页面
public void showView(Student student){
System.out.println(student.getId()+"\t\t"+student.getName()+"\t\t"+student.getSex()+"\t\t"+student.getAge()+"\t\t"+student.getScore()+"\t\t"+student.getState());
}
// 定义一个用户登录界面
public void userServletView(){
System.out.println(" .::::.@");
System.out.println(" .::::::::.@");
System.out.println(" :::::::::::@");
System.out.println(" ..:::::::::::'@");
System.out.println(" '::::::::::::'@");
System.out.println(" .::::::::::@");
System.out.println(" '::::::::::::::..@");
System.out.println(" ..::::::::::::.@");
System.out.println(" ``::::::::::::::::@");
System.out.println(" ::::``:::::::::' .:::.@");
System.out.println(" ::::' ':::::' .::::::::.@");
System.out.println(" .::::' :::: .:::::::'::::.@");
System.out.println(" .:::' ::::: .:::::::::' ':::::.@");
System.out.println(" .::' :::::.:::::::::' ':::::.@");
System.out.println(" .::' ::::::::::::::' ``::::.@");
System.out.println(" ...::: ::::::::::::' ``::.@");
System.out.println(" ```` ':. ':::::::::' ::::..@");
System.out.println(" '.:::::' ':'````..@");
System.out.println(" ");
System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
System.out.println(" 老天保佑 永无BUG ");
System.out.println("***************************欢迎使用小治学生管理系统2.1*******************");
while (true){
System.out.println("欢迎进入小治学生管理系统登录页面");
System.out.println("请输入用户名");
String name = scanner.next();
System.out.println("请输入密码");
String mima = scanner.next();
if (studentService.userServlet(name,mima)){
System.out.println("登录成功");
StudentView studentView = new StudentView();
studentView.indexView();
}else {
System.out.println("登录失败");
}
}
}
}
然后创建一个测试类运行
public class Test {
public static void main(String[] args) {
StudentView studentView = new StudentView();
studentView.userServletView();
}
}