Java学生管理系统
- 项目演示:
- 实现思路:
- 1、定义学生类
- 下面是学生类的源代码
- 2、主界面的代码编写
- 思路:
- 下面是主界面源代码
- 效果展示
- 3、添加学生的代码编写
- 思路
- 下面是添加学生的源代码
- 效果展示
- 4、查看学生的代码编写
- 思路:
- 下面是查看学生的源代码
- 效果展示
- 5、删除学生的代码编写
- 思路:
- 下面是删除学生的源代码
- 效果展示
- 6、修改学生的代码编写
- 思路:
- 下面是修改学生信息的源代码
- 效果展示
- 程序补充
- 解决添加学生学号重复问题
- 下面是源代码
- 注释
项目演示:
---------欢迎来到学生管理系统---------
1、 添加学生
2、删除学生
3、修改学生
4、查看所有学生
5、退出
请输入你的选择:
实现思路:
1、定义学生类
2、主界面的代码编写
3、添加学生的代码编写
4、查看学生的代码编写
5、删除学生的代码编写
6、修改学生的代码编写
每一个功能都定义一个方法,在方法里面来实现功能,再在main函数里面相应位置调用就可以。
1、定义学生类
学生类这里我们定义的一个标准学生类,里面设置了四个学生信息,都用private修饰。每一个学生成员变量都提供get/set方法。这里不是很清楚的可以去看一下我的 Java面向对象——封装 这篇文章
下面是学生类的源代码
public class Student {
private String xh; //学号
private String name; //姓名
private String age; //年龄
private String juzd; //居住地
public Student(){ //不带参数的构造方法
}
//带四个参数的构造方法
public Student(String xh,String name,String age,String juzd){
this.xh=xh;
this.name=name;
this.age=age;
this.juzd=juzd;
}
public void setXh(String xh) {
this.xh = xh;
}
public String getXh() {
return xh;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(String age) {
this.age = age;
}
public String getAge() {
return age;
}
public void setJuzd(String juzd) {
this.juzd = juzd;
}
public String getJuzd() {
return juzd;
}
}
2、主界面的代码编写
思路:
1、用输入语句完成主界面的编写
2、用Scanner实现键盘录入数据
3、用switch语句完成操作的选择
4、用循环完成再次回到主界面
下面是主界面源代码
public static void main(String[] args) {
ArrayList<Student> array=new ArrayList<>();
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("请输入你的选择:");
Scanner cs = new Scanner(System.in);
int a = cs.nextInt();
switch (a) {
case 1:
glxttjxs(array);//添加学生的方法
break;
case 2:
glxtscxs(array);//删除学生的方法
break;
case 3:
glxtxgxs(array);//修改学生的方法
break;
case 4:
glxtckxs(array);//查看所有学生的方法
break;
case 5:
System.out.println("退出");
System.exit(0);//死循环中退出Java虚拟机
}
System.out.println();//这里两个换行为了让界面更好看
System.out.println();
}
}
效果展示
3、添加学生的代码编写
思路
1、用键盘录入的选择添加学生
2、定义一个方法,用于添加学生
- 判断输入的学号是否被占用,如果被占用输出提示信息,如果没有被占用,继续下一步
- 显示提示信息,提示要输入何种信息
- 键盘录入学生对象所需要的信息
- 创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
- 将学生对象添加到集合中(保存)
- 给出添加成功提示信息
3、调用方法
下面是添加学生的源代码
public static void glxttjxs(ArrayList<Student> a){
Scanner tj=new Scanner(System.in);
String xh;
while (true) {
System.out.println("请输入学生学号:");
xh = tj.nextLine();
boolean flag = pdxhsfcf(a, xh);
if (flag) {
System.out.println("你输入的学号已经被占用,请重新输入");
} else {
break;
}
}
System.out.println("请输入学生姓名:");
String name=tj.nextLine();
System.out.println("请输入学生年龄:");
String age=tj.nextLine();
System.out.println("请输入学生家庭住址:");
String jtzu=tj.nextLine();
Student b=new Student();//创建学生对象,并把键盘录入的数据赋值给学生对象的成员变量
b.setXh(xh);
b.setName(name);
b.setAge(age);
b.setJuzd(jtzu);
a.add(b);//将学生对象添加到集合中
System.out.println("添加学生成功!");
}
效果展示
下面是输入没有被占用学生学号的效果
下面是学生学号被占用的效果
4、查看学生的代码编写
思路:
1、用键盘录入选择查看所有学生信息
2、定义一个方法,用于查看学生信息
1.1判定集合中是否有数据,如果没有显示提示信息
1.2显示表头信息
1.3将集合中数据取出按照对应格式显示学生信息,年龄补充“岁”
3、调用方法
下面是查看学生的源代码
public static void glxtckxs(ArrayList<Student> a){
if(a.size()==0){
System.out.println("无信息,请先添加信息再查看");
return;//为了不让程序继续往下执行
}
System.out.println("学号\t\t\t"+"姓名\t\t"+"年龄\t\t"+"地址");
for(int i=0;i<a.size();i++){
Student s=a.get(i);
System.out.println(s.getXh()+"\t"+s.getName()+"\t"+s.getAge()+"岁\t\t"+s.getJuzd());
}
}
效果展示
5、删除学生的代码编写
思路:
1、用键盘录入选择删除学生信息
2、定义一个方法,用于删除学生信息
2.1显示提示信息
2.2键盘录入要删除的学生学号
2.3在删除学生之前,对学号是否存在进行判断
2.31如果不存在,显示提示信息
2.32如果存在,执行删除
2.4遍历集合将对应学生对象从集合中删除
2.5给出删除成功提示
3、调用方法
下面是删除学生的源代码
public static void glxtscxs(ArrayList<Student> a){
System.out.println("请输入要删除学生的学号:");
Scanner x=new Scanner(System.in);
String xh=x.nextLine();
int j=-1;
for (int i=0;i<a.size();i++){
Student b=a.get(i);
if(b.getXh().equals(xh)){
j=i;
break;
}
}
if(j==-1){
System.out.println("该学生信息不存在,请重新输入");
}else {
a.remove(j);
System.out.println("删除成功!");
}
}
效果展示
下面是学生学号不存在的效果展示
下面是成功删除的效果展示
6、修改学生的代码编写
思路:
1、用键盘录入选择修改学生信息
2、定义一个方法,用来修改学生信息
2.1显示提示信息
2.2键盘录入要修改点的学生学号
2.3判断学生学号是否存在,不存在给出提示信息
2.4键盘录入要修改的学生信息
2.5遍历集合对应的学生信息
2.6给出修改成功提示
3、调用方法
下面是修改学生信息的源代码
public static void glxtxgxs(ArrayList<Student> a){
System.out.println("请输入要修改学生的学号:");
Scanner x=new Scanner(System.in);
String xh=x.nextLine();
int j=-1;
for(int i=0;i<a.size();i++){
Student s=a.get(i);
if(s.getXh().equals(xh)){
j=i;
break;
}
}
if(j==-1){
System.out.println("你输入的学号不存在,请重新输入");
}else {
System.out.println("请输入学生新姓名:");
String name=x.nextLine();
System.out.println("请输入学生新年龄:");
String age=x.nextLine();
System.out.println("请输入学生新家庭住址:");
String jtzu=x.nextLine();
Student s=new Student();
s.setXh(xh);
s.setName(name);
s.setAge(age);
s.setJuzd(jtzu);
for(int i=0;i<a.size();i++){
Student student=a.get(i);
if(student.getXh().equals(xh)){
a.set(i,s);
break;
}
}
System.out.println("修改成功!");
}
}
效果展示
下面是修改学生学号不存在的展示
下面是修改成功的展示
程序补充
解决添加学生学号重复问题
思路:
1、定义一个方法,对学号是否被使用进行判断
如果与集合中的某一个学生学号相同,返回true
如果都不相同,返回false
2、在添加学生录入学号后调用该方法
如果返回true,弹出提示,重新输入学号
如果返回false,正常添加学生对象
下面是源代码
public static boolean pdxhsfcf(ArrayList<Student> a,String xh){
boolean flag=false;
for(int i=0;i<a.size();i++){
Student sb= a.get(i);
if(sb.getXh().equals(xh)){
flag=true;
break;
}
}
return flag;
}
注释
不知道这样写你们看不看得懂,如果有什么问题欢迎 评论或者私信 问我。大家一起学习一起进步。
更多推荐
Java实现 学生管理系统项目 完整版,每个功能详细介绍,最后面完整源代码可直接执行
发布评论