练习一个简单的学生管理系统,不成熟,但是综合性很强
2017-08-29 23:38
435 查看
考试顺利通过
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/tongue.gif)
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/smile.gif)
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/smile.gif)
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/smile.gif)
今天反复的练习了几遍整个代码,现在基本上已经根据题意就可以敲出来了,现在分享给大家,可能内容有点多,但是含金量报表哦
import java.util.ArrayList;
import java.util.Scanner;
/*
分析学生管理系统的实现。
1. 要管理的是学生,要先创建学生类。
2. 要管理的学生不只一个,可以使用集合去存储。
3. 给出欢迎提示。
4. 给出菜单
5. 键盘录入一个选择,去和菜单进行匹配。
如果输入的是1. 查看所有学生
如果输入的是2,添加学生
如果输入的是3,删除学生
如果输入的是4,就是修改学生
如果输入的是5,就是退出程序
因为3,4,5可能需要不停的去执行,所以要放入到一个死循环中。
*/
public class StudentManager {
public static void main(String[] args) {
//定义集合, 用来存储学生
ArrayList<Student> list = 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 sc = new Scanner(System.in);
int choose = sc.nextInt();
//去和菜单进行匹配。 switch
switch(choose) {
case 1:
//查看所有学生
findAllStudent(list);
break;
case 2:
//添加学生
addStudent(list);
break;
case 3:
//删除学生
deleteStudent(list);
break;
case 4:
//修改学生
updateStudent(list);
break;
case 5:
//退出程序
//直接终止Java虚拟机 JVM
System.out.println("程序结束");
System.exit(0);//0 代表正常退出
//break;
default:
System.out.println("您输入有误,请回去重新选择");
break;
}
}
}
/*
* 定义方法,修改学生
* 参数:ArrayList<Student> list
* 返回值类型:void
*/
public static void updateStudent(ArrayList<Student> list) {
/*
* 一般修改也会根据唯一标识去修改,在这里根据id去修改学生的信息。
*
* 思路:
* 1. 键盘录入一个要修改学生的id。
* 2. 定义一个变量index,记录要修改学生的索引。最开始给出初始值-1,代表这个id是不存在的
* 3. 遍历集合,拿到集合中的每一个学生
* 4. 拿我们录入的id和遍历到的学生的id进行比较。如果相同,代表存在,就把这个学生的索引赋值给index。break
* 5. index 为-1,代表这个id是不存在的, 返回菜单
* 不为-1,id是存在的,就可以修改了
* a. 键盘录入其他的信息
* b. 根据这些信息创建学生对象。
* c. 把刚刚创建的学生对象替换掉原来的学生对象就可了
*/
//键盘录入一个要修改学生的id。
Scanner sc = new Scanner(System.in);
System.out.println("请您录入要修改学生的id");
String id = sc.nextLine();
//定义一个变量index,记录要修改学生的索引。最开始给出初始值-1,代表这个id是不存在的
int index = -1;
//遍历集合,拿到集合中的每一个学生
for(int i = 0; i < list.size(); i++) {
//拿到集合中的每一个学生对象
Student stu = list.get(i);
//拿我们录入的id和遍历到的学生的id进行比较。如果相同,代表存在,就把这个学生的索引赋值给index。break
if(id.equals(stu.getId())) {
//如果相同,代表存在,就把这个学生的索引赋值给index
index = i;
break;//找到之后,没有必要找了,就break中断for循环
}
}
//index 为-1,说明这个id是不存在的,就返回主菜单
if(index == -1) {
System.out.println("您输入的学号不存在,请您返回菜单重新选择");
} else {
//不为-1,说明这个id是存在的,就可以进行修改了
//键盘录入其他的信息
System.out.println("请您录入姓名");
String name = sc.nextLine();
System.out.println("请您录入年龄");
String age = sc.nextLine();
System.out.println("请您录入地址");
String address = sc.nextLine();
//根据这些信息创建学生对象。
Student stu = new Student(id, name, age, address);//这个就是要修改后的学生对象
4000
//把stu替换原来的学生对象就可以了
//要替换掉的学生的索引index,已经记录到了
//set 直接拿新的替换掉旧的就可以了
list.set(index, stu);
System.out.println("修改成功");
}
}
/*
* 定义方法,根据学号去删除
* 参数: ArrayList<Student> list
* 返回值类型:void
*/
public static void deleteStudent(ArrayList<Student> list) {
//效果,假如录入的id不存,就返回主菜单
/*
* 思路:
* 1. 删除会根据唯一标识去删除,在这里唯一标识是id,所以要键盘录入一个id去删除
* 2. 定义index,记录这个id这个学生在集合中的索引。最开始给出初始值 -1
* 3. 遍历集合,拿到集合中的每一个学生
* 4. 判断我们输入的这个id和当前拿到的这个学生的id是否相等,如果相等代表这个id是存在,把这个学生所在的索引赋值index。break中断循环
* 5. 如果index为-1,代表这个id在集合中不存在,返回功能菜单
* 不为-1,说明这个id在集合中是存在的,就删除。根据索引删除。
*/
//键盘录入一个id去删除
Scanner sc = new Scanner(System.in);
//请输入您要删除学生的学号
System.out.println("请您录入一个要删除的学号");
String id = sc.nextLine();
//定义index,记录我们录入的id这个学生在集合中的索引
int index = -1;//如果为-1代表不存在
//遍历集合,拿到集合中的每一个学生
for(int i = 0; i < list.size(); i++) {
//拿到集合中的每一个学生
Student stu = list.get(i);
//判断我们输入的id和这个学生的id是否相等,如果相等代表这个id是存在的。就把当前学生的索引赋值index
if(id.equals(stu.getId())) {
index = i;
break;//找到之后,没有必要再找了,使用break退出循环
}
}
//index 为-1 代表没有此id,这个id不存在,就返回主菜单
// 不为-1 id是存在,可以把这个id的学生給删除掉。根据索引删除
if(index == -1) {
System.out.println("这个id不存在,返回重试");
//程序往下执行就会把方法执行完,执行完就会回到主菜单
} else {
//index 不为-1.id是存在,可以把这个id的学生給删除掉。根据索引删除
//这个id的学生在集合中的索引是index
//直接根据索引index删除就可以了,index就是我们录入id这个学生在集合中的索引
list.remove(index);
System.out.println("删除成功");
}
}
/*
* 定义方法,往集合中添加学生
* 参数:ArrayList
* 返回值:void
*/
public static void addStudent(ArrayList<Student> list) {
//往list集合添加学生对象就可以了
/*
* 思路:
* 1. 键盘录入学生的信息
* 2. 根据这些信息创建学生对象
* 3. 把这个学生对象添加到集合
*/
/*
* 解决这个学号可以重复的问题。
* 把键盘录入学号的操作放入到一个循环,因为不知道可能录入多少次,所以要把键盘录入学号的操作放入到死循环。
* 1. 键盘录入学号
* 2. 定义一个boolean类型标记flag,代表这个键盘录入的id是否存在,如果是true代表存在,给出初始值false
* 3. 遍历集合,拿到集合中的每一个学生
* 4. 判断这个学生的学号和我们录入的学号是否相等,如果相等,代表有重复的,就把flag改成true。break结束循环。
* 5. 判断flag,如果为true代表有重复的,给出提示,再继续录入学号
* false 代表这个学号不重复,可以键盘录入其他的一些数据
*/
//键盘录入学生的信息
Scanner sc = new Scanner(System.in);
String id;//提取到外面
while(true) {
System.out.println("请您录入学号");
id = sc.nextLine();
//定义一个boolean类型标记flag,代表这个键盘录入的id是否存在,如果是true代表存在,给出初始值false
boolean flag = false;//记录id是否重复
//遍历集合,拿到集合中的每一个学生
for(int i = 0; i < list.size(); i++) {
//拿到集合中的每一个学生
Student stu = list.get(i);
//判断这个学生的学号和我们录入的学号是否相等
if(id.equals(stu.getId())) {
//如果相等,代表有重复的,就把flag改成true。break结束循环。
flag = true;
break;//如果找到,就没有必要再找下去了
}
}
//如果flag 是true代表有相同的.否则,就是没有重复
if(flag) {//true
System.out.println("您输入的id是重复的,请您重新录入");
} else {
break;//因为id不重复,我们没有必要下次循环录入id,直接break跳出while循环
}
}
System.out.println("请您录入姓名");
String name = sc.nextLine();
System.out.println("请您录入年龄");
String age = sc.nextLine();
System.out.println("请您录入地址");
String address = sc.nextLine();
//根据学生信息创建学生对象
Student s = new Student(id, name, age, address);
//把这个学生对象添加到集合
list.add(s);
}
/*
* 定义方法,用来查看所有的学生
* 参数: ArrayList
* 返回值: void
*/
public static void findAllStudent(ArrayList<Student> list) {
//查看所有的学生,其实就是遍历集合
//如果没有元素,给出提示,退出方法。
if(list.size() == 0) {
System.out.println("里面没有任何学生,请您回去添加数据");
return;//结束这个方法。
}
System.out.println("学号\t姓名\t年龄\t地址");
//如果有元素,就遍历集合,看一下集合中的每一个学生
for(int i = 0; i < list.size(); i++) {
//拿到每一个学生
Student s = list.get(i);
//输出学生对象的属性
System.out.println(s.getId() + "\t" + s.getName() + "\t" + s.getAge() + "\t" + s.getAddress());//\t代表一个制表符,也就是一个tab键
}
}
}
============================================================================
package cn.itcast.demo05;
/*
* 学生类
* 属性
* 学号
* 姓名
* 年龄
* 地址
*/
public class Student {
private String id;
private String name;
private String age;
//批量改名 ctrl + 2 松手 按r
private String address;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
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 getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Student(String id, String name, String age, String address) {
this.id = id;
this.name = name;
this.age = age;
this.address = address;
}
public Student() {
}
}
==============================================================================
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/tongue.gif)
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/smile.gif)
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/smile.gif)
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/smile.gif)
今天反复的练习了几遍整个代码,现在基本上已经根据题意就可以敲出来了,现在分享给大家,可能内容有点多,但是含金量报表哦
import java.util.ArrayList;
import java.util.Scanner;
/*
分析学生管理系统的实现。
1. 要管理的是学生,要先创建学生类。
2. 要管理的学生不只一个,可以使用集合去存储。
3. 给出欢迎提示。
4. 给出菜单
5. 键盘录入一个选择,去和菜单进行匹配。
如果输入的是1. 查看所有学生
如果输入的是2,添加学生
如果输入的是3,删除学生
如果输入的是4,就是修改学生
如果输入的是5,就是退出程序
因为3,4,5可能需要不停的去执行,所以要放入到一个死循环中。
*/
public class StudentManager {
public static void main(String[] args) {
//定义集合, 用来存储学生
ArrayList<Student> list = 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 sc = new Scanner(System.in);
int choose = sc.nextInt();
//去和菜单进行匹配。 switch
switch(choose) {
case 1:
//查看所有学生
findAllStudent(list);
break;
case 2:
//添加学生
addStudent(list);
break;
case 3:
//删除学生
deleteStudent(list);
break;
case 4:
//修改学生
updateStudent(list);
break;
case 5:
//退出程序
//直接终止Java虚拟机 JVM
System.out.println("程序结束");
System.exit(0);//0 代表正常退出
//break;
default:
System.out.println("您输入有误,请回去重新选择");
break;
}
}
}
/*
* 定义方法,修改学生
* 参数:ArrayList<Student> list
* 返回值类型:void
*/
public static void updateStudent(ArrayList<Student> list) {
/*
* 一般修改也会根据唯一标识去修改,在这里根据id去修改学生的信息。
*
* 思路:
* 1. 键盘录入一个要修改学生的id。
* 2. 定义一个变量index,记录要修改学生的索引。最开始给出初始值-1,代表这个id是不存在的
* 3. 遍历集合,拿到集合中的每一个学生
* 4. 拿我们录入的id和遍历到的学生的id进行比较。如果相同,代表存在,就把这个学生的索引赋值给index。break
* 5. index 为-1,代表这个id是不存在的, 返回菜单
* 不为-1,id是存在的,就可以修改了
* a. 键盘录入其他的信息
* b. 根据这些信息创建学生对象。
* c. 把刚刚创建的学生对象替换掉原来的学生对象就可了
*/
//键盘录入一个要修改学生的id。
Scanner sc = new Scanner(System.in);
System.out.println("请您录入要修改学生的id");
String id = sc.nextLine();
//定义一个变量index,记录要修改学生的索引。最开始给出初始值-1,代表这个id是不存在的
int index = -1;
//遍历集合,拿到集合中的每一个学生
for(int i = 0; i < list.size(); i++) {
//拿到集合中的每一个学生对象
Student stu = list.get(i);
//拿我们录入的id和遍历到的学生的id进行比较。如果相同,代表存在,就把这个学生的索引赋值给index。break
if(id.equals(stu.getId())) {
//如果相同,代表存在,就把这个学生的索引赋值给index
index = i;
break;//找到之后,没有必要找了,就break中断for循环
}
}
//index 为-1,说明这个id是不存在的,就返回主菜单
if(index == -1) {
System.out.println("您输入的学号不存在,请您返回菜单重新选择");
} else {
//不为-1,说明这个id是存在的,就可以进行修改了
//键盘录入其他的信息
System.out.println("请您录入姓名");
String name = sc.nextLine();
System.out.println("请您录入年龄");
String age = sc.nextLine();
System.out.println("请您录入地址");
String address = sc.nextLine();
//根据这些信息创建学生对象。
Student stu = new Student(id, name, age, address);//这个就是要修改后的学生对象
4000
//把stu替换原来的学生对象就可以了
//要替换掉的学生的索引index,已经记录到了
//set 直接拿新的替换掉旧的就可以了
list.set(index, stu);
System.out.println("修改成功");
}
}
/*
* 定义方法,根据学号去删除
* 参数: ArrayList<Student> list
* 返回值类型:void
*/
public static void deleteStudent(ArrayList<Student> list) {
//效果,假如录入的id不存,就返回主菜单
/*
* 思路:
* 1. 删除会根据唯一标识去删除,在这里唯一标识是id,所以要键盘录入一个id去删除
* 2. 定义index,记录这个id这个学生在集合中的索引。最开始给出初始值 -1
* 3. 遍历集合,拿到集合中的每一个学生
* 4. 判断我们输入的这个id和当前拿到的这个学生的id是否相等,如果相等代表这个id是存在,把这个学生所在的索引赋值index。break中断循环
* 5. 如果index为-1,代表这个id在集合中不存在,返回功能菜单
* 不为-1,说明这个id在集合中是存在的,就删除。根据索引删除。
*/
//键盘录入一个id去删除
Scanner sc = new Scanner(System.in);
//请输入您要删除学生的学号
System.out.println("请您录入一个要删除的学号");
String id = sc.nextLine();
//定义index,记录我们录入的id这个学生在集合中的索引
int index = -1;//如果为-1代表不存在
//遍历集合,拿到集合中的每一个学生
for(int i = 0; i < list.size(); i++) {
//拿到集合中的每一个学生
Student stu = list.get(i);
//判断我们输入的id和这个学生的id是否相等,如果相等代表这个id是存在的。就把当前学生的索引赋值index
if(id.equals(stu.getId())) {
index = i;
break;//找到之后,没有必要再找了,使用break退出循环
}
}
//index 为-1 代表没有此id,这个id不存在,就返回主菜单
// 不为-1 id是存在,可以把这个id的学生給删除掉。根据索引删除
if(index == -1) {
System.out.println("这个id不存在,返回重试");
//程序往下执行就会把方法执行完,执行完就会回到主菜单
} else {
//index 不为-1.id是存在,可以把这个id的学生給删除掉。根据索引删除
//这个id的学生在集合中的索引是index
//直接根据索引index删除就可以了,index就是我们录入id这个学生在集合中的索引
list.remove(index);
System.out.println("删除成功");
}
}
/*
* 定义方法,往集合中添加学生
* 参数:ArrayList
* 返回值:void
*/
public static void addStudent(ArrayList<Student> list) {
//往list集合添加学生对象就可以了
/*
* 思路:
* 1. 键盘录入学生的信息
* 2. 根据这些信息创建学生对象
* 3. 把这个学生对象添加到集合
*/
/*
* 解决这个学号可以重复的问题。
* 把键盘录入学号的操作放入到一个循环,因为不知道可能录入多少次,所以要把键盘录入学号的操作放入到死循环。
* 1. 键盘录入学号
* 2. 定义一个boolean类型标记flag,代表这个键盘录入的id是否存在,如果是true代表存在,给出初始值false
* 3. 遍历集合,拿到集合中的每一个学生
* 4. 判断这个学生的学号和我们录入的学号是否相等,如果相等,代表有重复的,就把flag改成true。break结束循环。
* 5. 判断flag,如果为true代表有重复的,给出提示,再继续录入学号
* false 代表这个学号不重复,可以键盘录入其他的一些数据
*/
//键盘录入学生的信息
Scanner sc = new Scanner(System.in);
String id;//提取到外面
while(true) {
System.out.println("请您录入学号");
id = sc.nextLine();
//定义一个boolean类型标记flag,代表这个键盘录入的id是否存在,如果是true代表存在,给出初始值false
boolean flag = false;//记录id是否重复
//遍历集合,拿到集合中的每一个学生
for(int i = 0; i < list.size(); i++) {
//拿到集合中的每一个学生
Student stu = list.get(i);
//判断这个学生的学号和我们录入的学号是否相等
if(id.equals(stu.getId())) {
//如果相等,代表有重复的,就把flag改成true。break结束循环。
flag = true;
break;//如果找到,就没有必要再找下去了
}
}
//如果flag 是true代表有相同的.否则,就是没有重复
if(flag) {//true
System.out.println("您输入的id是重复的,请您重新录入");
} else {
break;//因为id不重复,我们没有必要下次循环录入id,直接break跳出while循环
}
}
System.out.println("请您录入姓名");
String name = sc.nextLine();
System.out.println("请您录入年龄");
String age = sc.nextLine();
System.out.println("请您录入地址");
String address = sc.nextLine();
//根据学生信息创建学生对象
Student s = new Student(id, name, age, address);
//把这个学生对象添加到集合
list.add(s);
}
/*
* 定义方法,用来查看所有的学生
* 参数: ArrayList
* 返回值: void
*/
public static void findAllStudent(ArrayList<Student> list) {
//查看所有的学生,其实就是遍历集合
//如果没有元素,给出提示,退出方法。
if(list.size() == 0) {
System.out.println("里面没有任何学生,请您回去添加数据");
return;//结束这个方法。
}
System.out.println("学号\t姓名\t年龄\t地址");
//如果有元素,就遍历集合,看一下集合中的每一个学生
for(int i = 0; i < list.size(); i++) {
//拿到每一个学生
Student s = list.get(i);
//输出学生对象的属性
System.out.println(s.getId() + "\t" + s.getName() + "\t" + s.getAge() + "\t" + s.getAddress());//\t代表一个制表符,也就是一个tab键
}
}
}
============================================================================
package cn.itcast.demo05;
/*
* 学生类
* 属性
* 学号
* 姓名
* 年龄
* 地址
*/
public class Student {
private String id;
private String name;
private String age;
//批量改名 ctrl + 2 松手 按r
private String address;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
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 getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Student(String id, String name, String age, String address) {
this.id = id;
this.name = name;
this.age = age;
this.address = address;
}
public Student() {
}
}
==============================================================================
相关文章推荐
- 一个简单的学生管理系统 能添加学生 查询学生
- 一个简单关于学生成绩管理的C++程序代码,但是对于拷贝析构函数目前还是不知其作用何在
- 用JAVA实现一个简单的学生管理系统
- Java写一个简单学生管理系统
- c++简单的学生管理系统----继承练习
- 使用Java模拟一个简单的Dos学生成绩管理系统:
- 使用python实现一个简单的学生信息管理系统
- 面向对象写一个简单的学生管理系统
- 简单实现了一个学生成绩信息管理系统
- 一个简单的学生管理系统
- 一个简单的学生信息管理系统(循环双向链表)
- 一个简单的学生管理系统
- 使用List集合写的一个简单的学生信息管理系统!
- 【python新手入门】一个python List 的简单运用 -----班级学生管理系统
- 使用python实现一个简单的学生信息管理系统
- java写的一个简单学生管理系统[改进]
- php--实现一个简单的学生管理系统
- 【十二】一个简单的学生成绩管理系统
- 用java实现一个简单的学生管理系统
- 一个简单的学生信息管理系统