优秀的编程知识分享平台

网站首页 > 技术文章 正文

编写一个学生信息管理系统,掌握接口的定义方法

nanyue 2024-10-27 11:22:07 技术文章 2 ℃

定义学生类Student.java,该类有学号、姓名和系部三个成员变量,并用get和set方法进行属性的封装

定义接口IStudentDAO,其中包含下列数据操作方法

// 插入学生信息记录

public void insertStudent(Student stu);

// 删除指定学号学生信息记录

public void deleteStudent(String sno);

// 更新指定学生信息记录

public void updateStudent(Student stu);

// 按学号查询指定学生信息记录

public Student findStudentBySno(String sno);

// 显示指定学号学生信息记录

public void displayStudentBySno(String sno);

// 显示所有学生信息记录

public void displayAllStudent();

定义接口IStudentDAO的实现类StudentDAOImpl,其中包含一个静态的集合对象用来保存学生信息记录,以及接口的所有实现方法

static List<Student> students = new ArrayList<Student>();

ArrayList类是实现了List接口的动态数组,数组元素可以动态增加和减少。常用方法如下:

public int size()返回此列表中的元素数。

public boolean isEmpty()如果此列表中没有元素,则返回 true

public boolean add(E e)将指定的元素添加到此列表的尾部。

public boolean remove(Object o)移除此列表中首次出现的指定元素(如果存在)。

代码:

package stu;

public class Student {

private String sno;

private String sname;

private String sdept;

public Student(){};

public String getSno()

{

return sno;

}

public void setSno(String sno)

{

this.sno=sno;

}

public String getSname()

{

return sname;

}

public void setSname(String sname)

{

this.sname=sname;

}

public String getSdept()

{

return sdept;

}

public void setSdept(String sdept)

{

this.sdept=sdept;

}

}

package stu;

import java.util.ArrayList;

import java.util.LinkedList;

import java.util.List;

import java.util.*;

public class StudentDAOImpl implements IStudentDAO{

public static List<Student> students=new ArrayList<Student>();

public StudentDAOImpl(){};

public void insertStudent(Student stu)

{

students.add(stu);

}

public void deleteStudent(String sno)

{

boolean flag=false;

if(students.size()>0)

{

for(Student stu: students)

{

if(stu.getSno().equals(sno))

{

flag=true;

students.remove(stu);

System.out.println("该学号学生删除成功!");

}

}

if(!flag)

{

System.out.println("数据库中无该学生记录!");

}

}

else

{

System.out.println("数据库中暂无学生记录!");

}

}

public void updateStudent(Student stu)

{

for(int i=0;i<students.size();i++)

{

if(students.get(i).getSno().equals(stu.getSno()))

{

students.set(i,stu);

}

}

}

public Student findStudentBySno(String sno)

{

Student Stu=new Student();

Stu=null;


if (students.size() > 0)

{

for (Student stu : students)

{

if(stu.getSno().equals(sno))

Stu=stu;

}

}

return Stu;

}

public void displayStudentBySno(String sno)

{

boolean flag=false;

if (students.size() > 0)

{

for (Student stu : students)

{

if(stu.getSno().equals(sno))

{

flag=true;

System.out.println("学号: " + stu.getSno() + "\t姓名: "+ stu.getSname() + "\t系部: " + stu.getSdept());

}

}

if(!flag)

{

System.out.println("数据库中无该学生记录!");

}

}

else

{

System.out.println("数据库中暂无学生记录!");

}

}

public void displayAllStudent()

{

if (students.size() > 0)

{

for (Student stu : students)

{

System.out.println("学号: " + stu.getSno() + "\t姓名: "

+ stu.getSname() + "\t系部: " + stu.getSdept());

}

}

else

{

System.out.println("数据库中暂无学生记录!");

}


}

}

package stu;

import java.util.Scanner;

import java.util.*;

public class MainClass {

static public int menu_select(Scanner scanner) {

int menuchoice = -1;

System.out.printf("\n");

System.out.printf("\t\t\t 学生信息管理系统功能菜单 \n");

System.out.printf("\t\t\t 1.插入学生信息 \n");

System.out.printf("\t\t\t 2.删除学生信息 \n");

System.out.printf("\t\t\t 3.更新学生信息 \n");

System.out.printf("\t\t\t 4.显示所有学生信息 \n");

System.out.printf("\t\t\t 5.按学号查询指定学生信息 \n");

System.out.printf("\t\t\t 0.结束程序 \n");

System.out.printf("\t\t\t请输入您的选择: \n");

menuchoice = scanner.nextInt();

return menuchoice;

}

static void inputStudent(Student stu, Scanner scanner) {

System.out.println("请输入学生的学号:");

stu.setSno(scanner.next());

System.out.println("请输入学生的姓名:");

stu.setSname(scanner.next());

System.out.println("请输入学生的系部:");

stu.setSdept(scanner.next());

}

static void updateStudent(Student stu, Scanner scanner) {

System.out.println("请输入要更新的学生的姓名:");

stu.setSname(scanner.next());

System.out.println("请输入要更新的学生的系部:");

stu.setSdept(scanner.next());

}

public static void main(String[] args) {

String sno;

int menuChoice;

Scanner scanner = new Scanner(System.in);

StudentDAOImpl studentDAOImpl = new StudentDAOImpl();

do {

menuChoice = menu_select(scanner);

switch (menuChoice) {

case 1:

Student newStu = new Student();

inputStudent(newStu, scanner);

studentDAOImpl.insertStudent(newStu);

break;

case 2:

System.out.println("请输入要删除学生信息的学号:");

sno = scanner.next();

try

{

studentDAOImpl.deleteStudent(sno);

}

catch (Exception e)

{

System.out.println(" ");

}

break;

case 3:

System.out.println("请输入要更新学生信息的学号:");

sno = scanner.next();

Student updateStu = studentDAOImpl.findStudentBySno(sno);

if (updateStu != null) {

System.out.println("要更新的学生信息显示如下:");

studentDAOImpl.displayStudentBySno(updateStu.getSno());

updateStudent(updateStu, scanner);

studentDAOImpl.updateStudent(updateStu);

} else {

System.out.println("要更新的学生信息不存在!");

}

break;

case 4:

studentDAOImpl.displayAllStudent();

break;

case 5:

System.out.println("请输入查询学生信息的学号:");

sno = scanner.next();

studentDAOImpl.displayStudentBySno(sno);

break;

case 0:

break;

default:

System.out.println("对不起,您输入的功能编号有错!请重新输入!!!");

break;

}

} while (menuChoice != 0);

scanner.close();

}

}

结果:

Tags:

最近发表
标签列表