开始分析
学生管理系统:
- 定义学生类(sid,age,name,address)
- 主页面代码的编写(while循环)
- 添加学生的功能
- 删除学生的功能
- 查看学生的功能
- 修改学生的功能
上代码
//学生类
public class Student{
private String sid;
private String name;
private String age;
private String address;
public Student(){}
public Student(String sid,String name,String age,String address){
this.sid=sid;
this.name=name;
this.age=age;
this.address=address;
}
public void setSid(String sid){
this.sid=sid;
}
public void setName(String name){
this.name=name;
}
public void setAge(String age){
this.age=age;
}
public void setAddress(String address){
this.address=address;
}
public String getSid(){
return sid;
}
public String getName(){
return name;
}
public String getAge(){
return age;
}
public String getAddress(){
return address;
}
}
//2.主页面代码编写
import java.util.Scanner;
import java.util.ArrayList;
//第二个类
public class StudentManageSystem{
public static void main(String[] args){
ArrayList<Student> array=new ArrayList<Student>();
Scanner sc=new Scanner(System.in);
while(true){
System.out.println("---------学生管理系统--------------");
System.out.println("1.添加学生。");
System.out.println("2.删除学生。");
System.out.println("3.查询学生。");
System.out.println("4.修改学生。");
System.out.println("0.退出系统。");
System.out.println("--------------------------");
System.out.print("请做出你的选择(0~4):");
int choice=sc.nextInt();
switch(choice){
case 0:
System.out.println("谢谢使用!");
System.exit(0);
case 1:
addStudent(array);
break;
case 2:
removeStudent(array);
break;
case 3:
showStudent(array);
break;
case 4:
alterStudent(array);
break;
default:
System.out.println("输入有误,请重新输入!");
break;
}
}
}
}
//添加学生的功能
public static void addStudent(ArrayList<Student> array){
Scanner sc=new Scanner(System.in);
System.out.println("请输入你要添加学生的学号:");
String sid=sc.nextLine();
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();
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAddress(address);
array.add(s);
System.out.println("添加成功!!!");
}
//删除学生的功能
public static void removeStudent(ArrayList<Student> array){
Scanner sc=new Scanner(System.in);
System.out.println("请输入你要删除的学号:");
String sid=sc.nextLine();
for(int i=0;i<array.size();i++){
Student s=array.get(i);
if(s.getSid().equals(sid)){
array.remove(i);
System.out.println("删除成功!!");
break;
}
}
}
//查询学生的功能
public static void showStudent(ArrayList<Student> array){
Scanner sc=new Scanner(System.in);
System.out.println("请输入你想要查询的学号:");
String sid=sc.nextLine();
System.out.println("学号\t"+"姓名\t"+"年龄\t"+"地址");
for(int i=0;i<array.size();i++){
Student s=array.get(i);
if(s.getSid().equals(sid)){
System.out.println(s.getSid()+"\t"+s.getName()+"\t"+s.getAge()+"岁\t"+s.getAddress);
}
}
}
//修改学生的功能
public static void alterStudent(ArrayList<Student> array){
Scanner sc=new Scanner(System.in);
System.out.println("请输入你要修改学生的学号:");
String sid=sc.nextLine();
if(array.size()==0){
System.out.println("无数据,请先添加数据。。。");
return;//返回主页面
}else{
for(int i=0;i<array.size();i++){
Student s=array.get(i);
if(s.getSid().equals(sid)){
System.out.println("请输入新名字:");
String name=sc.nextLine();
System.out.println("请输入新年龄:");
String age=sc.nextLine();
System.out.println("请输入新地址:");
String address=sc.nextLine();
s.setName(name);
s.setAge(age);
s.setAddress(address);
array.add(s);
System.out.println("修改成功!!!");
}
}
}
}
//#整合所有代码
import java.util.ArrayList;
import java.util.Scanner;
public class StudentManger {
public static void main(String[] args) {
// 创建集合对象,用于存储学生数据
ArrayList<Student> array=new ArrayList<Student>();
//用Scanner实现键盘录入数据
Scanner sc=new Scanner(System.in);
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.print("请做出你的选择(1~5):");
int choose=sc.nextInt();
System.out.println("----------------------------------------");
//用switch语句完成操作的选择
switch(choose) {
case 1:
addStudent(array);
break;
case 2:
deleteStudent(array);
break;
case 3:
updateStudent(array);
break;
case 4:
selectStudent(array);
break;
case 5:
System.out.println("谢谢使用!");
System.exit(0);
default:
System.out.println("您输入的数据有误,请重新输入!");
break;
}
}
}
// 定义一个方法,用来添加学生信息
public static void addStudent(ArrayList<Student> array) {
//键盘录入学生对象所需要的数据,显示提示信息,提示要输入何种信息
Scanner sc=new Scanner(System.in);
String sid;
//为了让程序能够回到这里,我们使用while循环
while(true) {
System.out.println("请输入你的学号:");
sid=sc.nextLine();
boolean flag=isUsed(array,sid);//调用isUsed()方法来检查学号
if(flag) {
System.out.println("你输入的学号已存在,请重新输入");
System.out.println("----------------------------------------");
}else {
break;
}
}
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();
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAddress(address);
// 将学生对象添加到集合中
array.add(s);
//输出添加成功提示
System.out.println("----------------------------------------");
System.out.println("添加成功!");
System.out.println("----------------------------------------");
// System.out.println(s.getSid()+","+s.getName()+","+s.getAge()+","+s.getAddress());
}
// 定义一个方法,判断学号是否被使用
public static boolean isUsed(ArrayList<Student> array,String sid) {
// 如果与集合中的某一个学生学号相同,返回true,如果不相同,返回false
boolean flag=false;
for(int i=0;i<array.size();i++) {
Student s=array.get(i);
if(s.getSid().equals(sid)) {
flag=true;
break;
}
}
return flag;
}
// 定义一个方法,来查询学生信息
public static void selectStudent(ArrayList<Student> array) {
// 判断集合中是否有数据,如果没有显示提示信息
if(array.size()==0) {
System.out.println("无数据,请先添加数据!!");
// 为了让程序不再往下执行,给出return;
return;
}
// 显示表头信息
System.out.println("学号 \t"+"姓名 \t"+"年龄 \t"+"地址 \t");
// 将集合中数据取出按照对应格式显示学生信息
for(int i=0;i<array.size();i++) {
Student s=array.get(i);
System.out.println(s.getSid()+"\t"+s.getName()+"\t"+s.getAge()+"岁\t"+s.getAddress());
}
}
// 定义一个方法,来删除学生信息
public static void deleteStudent(ArrayList<Student> array) {
if(array.size()==0) {
System.out.println("无数据,请先添加数据!!");
return;
}
System.out.println("请输入你要删除信息的学号:");
Scanner sc=new Scanner(System.in);
String id=sc.nextLine();
int index=-1;
// 遍历集合将对应学生对象从集合中删除
for(int i=0;i<array.size();i++) {
// 得到每一个学生对象,通过学生对象,来获取sid
Student s=array.get(i);
if(s.getSid().equals(id)) {
// 根据学生对应的索引删除
// int index=i;
index=i;
}
if(index == -1){
System.out.println("你输入的学号不存在!");
}else {
array.remove(i);
System.out.println("删除成功!");
}
}
}
// 定义一个方法,来修改学生信息 alterStudent
public static void updateStudent(ArrayList<Student> array) {
if(array.size()==0) {
System.out.println("无数据,请先添加数据!!");
return;
}
boolean flag=true;
while(flag) {
System.out.println("请输入你要修改信息的学号:");
Scanner sc=new Scanner(System.in);
String sid=sc.nextLine();
// 创建学生对象
Student s=new Student();
System.out.println("请输入新的姓名:");
String name=sc.nextLine();
System.out.println("请输入新的年龄:");
String age=sc.nextLine();
System.out.println("请输入新的地址:");
String address=sc.nextLine();
s.setSid(sid);
s.setAddress(address);
s.setAge(age);
s.setName(name);
// 遍历集合修改对应的学生信息
for(int i=0;i<array.size();i++) {
Student stu=array.get(i);
if(stu.getSid().equals(sid)) {
// 修改存储在对象中的数据
array.set(i, s);
flag=false;
// 给出修改成功提示
System.out.println("修改成功!!!");
break;
}else {
System.out.println("你输入的学号不存在,请重新输入:");
System.out.println("----------------------------------------");
// 返回修改,直到修改正确为止
}
}
}
}
}
补充
这个简陋的学生管理系统还是存在一些问题的,例如修改信息的填写,选择的数字输入,没有过多的判断,还是有许多未知的问题的。。。