镇江网站搜索排名,百度地图推广电话,电商网站 建社区,程序员开发软件被拿去违法本案例基于Java语言中的ArrayList集合来储存数据#xff0c;并建立两个类——学生类和用户类存储在集合中#xff0c;通过用户交互#xff0c;搭建简单的学生管理系统。
1、学生类 学生类利用set函数进行获取学生单个信息#xff0c;show函数负责获取全部信息。
package … 本案例基于Java语言中的ArrayList集合来储存数据并建立两个类——学生类和用户类存储在集合中通过用户交互搭建简单的学生管理系统。
1、学生类 学生类利用set函数进行获取学生单个信息show函数负责获取全部信息。
package test;
public class Student {private String name;private int age;private String sex;private String id;private int score;//构造函数public Student(){};//带参构造函数public Student(String name,String id,int age,String sex,int score){this.namename;this.ageage;this.sexsex;this.idid;this.scorescore;}//显示信息public void show(){System.out.println(this.name\tthis.id\tthis.age\tthis.sex\tthis.score);}//判断姓名是否相同是否相等public boolean judge(String name_){if(name_.equals(this.name))return true;elsereturn false;}//输出私有属性public String getname(){return this.name;}public String getid(){return this.id;}public int getage(){return this.age;}public int getscore(){return this.score;}public String getsex(){return this.sex;}
}
2、用户类 用户类与学生类一样get负责返回私有属性show负责显示类内所有信息。
package test;
public class User {private String username;private String password;private String id;private String phonenumber;public User(){};public User(String username,String password,String id,String phonenumber){this.usernameusername;this.passwordpassword;this.idid;this.phonenumberphonenumber;}public String getusername(){return this.username;}public String getpassword(){return this.password;}public String getid(){return this.id;}public String getphonenumber(){return this.phonenumber;}public void show() {System.out.println(this.username\tthis.password\tthis.id\tthis.phonenumber\t);}
}3、主类-登录系统 登录系统分别设置登录、注册、忘记密码功能后续可以添加文本数据库来进行储存。 ArrayListUser ulistnew ArrayList();boolean log_verifyfalse;while(true){System.out.println(------欢迎来到学生管理系统------);System.out.println(**\t 1、登录\t **);System.out.println(**\t 2、注册\t **);System.out.println(**\t 3、忘记密码\t **);System.out.println(--------------------------------);System.out.println(请输入你的选择);int choicenew Scanner(System.in).nextInt();switch(choice){case 0:showuser(ulist);break;case 1:log_verifylog(ulist);break;case 2:register(ulist);break;case 3:forget_password(ulist);break;default:System.out.println(输入指令错误请重试);}if(choice1log_verifytrue)break;}
3.1登录 登录中存在的问题用户名不存在密码错误问题
public static boolean log(ArrayListUserlist){boolean log_verifyfalse;System.out.println(请输入您的账号 );String usernamenew Scanner(System.in).next();System.out.println(请输入密码 );String passwordnew Scanner(System.in).next();if(list.size()0)System.out.println(用户名不存在 );for(int i0;ilist.size();i){if(list.get(i).getusername().equals(username)){if(list.get(i).getpassword().equals(password)){System.out.println(欢迎回来! );log_verifytrue;break;}else{System.out.println(密码错误请重试);break;}}else{System.out.println(用户名不存在 );break;}}return log_verify;} 3.2注册 用户信息中设置账号密码身份证号手机号四个信息密码需要进行重复输入若两次密码结果不一致将会被要求重新输入。用户名重复会被告知用户名存在。 //注册public static ArrayListUser register(ArrayListUserlist){System.out.println(请输入注册用户名);String usernamenew Scanner(System.in).next();String password,id,phonenumber;boolean flagfalse;for(int i0;ilist.size();i){if(list.get(i).getusername().equals(username)){System.out.println(此用户已存在);flagtrue;return list;}}if(flagfalse){while(true){System.out.println(请输入密码);passwordnew Scanner(System.in).next();System.out.println(请再次输入密码);String againnew Scanner(System.in).next();if(password.equals(again))break;elseSystem.out.println(密码前后不一致);}while(true){boolean flag_idtrue;System.out.println(请输入身份证号);idnew Scanner(System.in).next();if(id.length()!18){ System.out.println(身份证号错误);continue;}for(int i0;iid.length();i){if(id.charAt(i)0|id.charAt(i)9)flag_idfalse;if(i17(id.charAt(i)X|id.charAt(i)x))flag_idtrue;}if(flag_id)break;else{System.out.println(身份证号错误);continue;}}while(true){System.out.println(请输入手机号);phonenumbernew Scanner(System.in).next();boolean flag_phtrue;for(int i0;iphonenumber.length();i){if(phonenumber.charAt(i)0|phonenumber.charAt(i)9){System.out.println(手机号错误);flag_phfalse;break;}}if(flag_ph)break;elsecontinue;}User usernew User(username,password,id,phonenumber);list.add(user);}return list;} 3.3忘记密码 当忘记密码时需要输入账号若账号不存在则退回主菜单若账号存在则需要验证身份信息核实是否为本人然后进行二次重复输入新密码修改密码后保存至ArrayList回退主菜单。 //忘记密码public static void forget_password(ArrayListUserlist){System.out.println(请输入您的账号 );String usernamenew Scanner(System.in).next();boolean existfalse;int exist_index0;if(list.size()0)System.out.println(账号不存在 );for(int i0;ilist.size();i){if(list.get(i).getusername().equals(username)){exist_indexi;existtrue;break;}}if(existfalse){System.out.println(账号不存在 );}else{System.out.println(请输入身份证号);String idnew Scanner(System.in).next();if(list.get(exist_index).getid().equals(id)){boolean password_verifyfalse;while(true){System.out.println(请输入新密码 );String passwordnew Scanner(System.in).next();System.out.println(请再次输入新密码 );String password_new Scanner(System.in).next();if (password.equals(password_)){list.set(exist_index,new User(list.get(exist_index).getusername(),password,list.get(exist_index).getid(),list.get(exist_index).getphonenumber()));password_verifytrue;}else{System.out.println(两次密码不一致 );}if(password_verifytrue)break;}}else{System.out.println(身份信息验证错误 );}}
4、主类-学生系统 学生系统包括添加删除选择显示排序修改指令来进行简单的系统交互。
ArrayListStudent listnew ArrayList();while(true){boolean flagfalse; //不进行自动退出getmenu();String commandnew Scanner(System.in).next();switch(command){case 1:add(list);break;case 2:delete(list);break;case 3:select(list);;break;case 4:showinformation(list);break;case 5:sort(list);break;case 6:modify(list);break;case q:flagtrue;break;default:System.out.println(输入指令错误请重试 );}if(flagtrue)break;}System.out.println(再见欢迎下次使用); 表头信息 //打印表头public static void getmenu(){System.out.println(\n-----------学生管理系统---------);System.out.println(**\t1、添加学生信息 **);System.out.println(**\t2、删除学生信息 **);System.out.println(**\t3、查询学生信息 **);System.out.println(**\t4、显示所有信息 **);System.out.println(**\t5、排序所有信息 **);System.out.println(**\t6、修改学生信息 **);System.out.println(**\t退出系统请按q,谢谢! **);System.out.println(--------------------------------);System.out.println(请输入你的选择);}
4.1添加学生信息 学生信息包括姓名学号年龄性别分数五个变量若学生姓名存在则会提示存在该学生回退上一级菜单。 //添加学生信息public static ArrayListStudent add(ArrayListStudentlist){String name;String id;int age;String sex;int score;boolean flagfalse;System.out.println(请输入所要添加的学生姓名 );namenew Scanner(System.in).next();for(int i0;ilist.size();i){if(list.get(i).judge(name)){System.out.println(系统中存在该信息请重新输入信息);flagtrue;break;}}if(flagfalse){System.out.println(请输入所要添加的学生学号);idnew Scanner(System.in).next();System.out.println(请输入所要添加学生年龄);agenew Scanner(System.in).nextInt();System.out.println(请输入所要添加学生性别);sexnew Scanner(System.in).next();System.out.println(请输入所要添加学生分数);scorenew Scanner(System.in).nextInt();Student stunew Student(name,id,age,sex,score);list.add(stu);return list;}elsereturn list;}4.2删除学生信息 通过输入学生姓名删除该学生所有信息若不存在该学生则会提示查无此人。 //删除学生信息public static ArrayListStudent delete(ArrayListStudentlist){String name;boolean flagfalse;System.out.println(请输入删除学生姓名 );namenew Scanner(System.in).next();for(int i0;ilist.size();i){if(list.get(i).judge(name)){flagtrue;list.remove(i);break;}}if(flagfalse){System.out.println(查无此人);}return list;}
4.3查询学生信息 通过输入需要查询的姓名或者学号来获取该学生所有信息若不存在则警告查无此人。 //查找学生信息public static void select(ArrayListStudent list){boolean flagfalse;System.out.println(请问您要查询的是\n1、姓名\n2、学号);int numnew Scanner(System.in).nextInt();if(num1){System.out.println(请问您要查询的学生姓名 );String namenew Scanner(System.in).next();for(int i0;ilist.size();i){if(list.get(i).getname().equals(name)){flagtrue;list.get(i).show();break;}}}else if(num2){System.out.println(请问您要查询的学生学号 );String idnew Scanner(System.in).next();for(int i0;ilist.size();i){if(list.get(i).getid().equals(id)){flagtrue;list.get(i).show();break;}}}else{System.out.println(请输入正确的序号);return;}if(flagfalse){System.out.println(查无此人 );}}
4.4显示所有信息 循环调用类内的show函数来输出所有学生信息。 //显示所有信息public static void showinformation(ArrayListStudentlist){if(list.size()0)System.out.println(系统中未添加学生信息);System.out.println(姓名\t学号\t年龄\t性别\t分数);for(int i0;ilist.size();i){list.get(i).show();}}
4.5排序学生信息 可以针对姓名和学号两个变量进行排序并选择升序和降序的方法使用冒泡排序compareTo函数返回的是两个变量的ASCII码差值。 //排序学生信息public static ArrayListStudent sort(ArrayListStudentlist){System.out.println(请问您要排序的是\n1、姓名\n2、学号);int numnew Scanner(System.in).nextInt();if(num!1 num!2)System.out.println(输入错误命令);System.out.println(排序方式\n1、降序\n2、升序);int stylenew Scanner(System.in).nextInt();if(num!1 num!2)System.out.println(输入错误命令);switch(num){case 1:{for(int i0;ilist.size();i){for(int j0;jlist.size()-i-1;j){if (num2)if(list.get(j).getname().compareTo(list.get(j1).getname())0)swap(list,j,j1);elseif(list.get(j).getname().compareTo(list.get(j1).getname())0)swap(list,j,j1);}}break;}case 2:{for(int i0;ilist.size();i){for(int j0;jlist.size()-i-1;j){if(num2)if(list.get(j).getid().compareTo(list.get(j1).getid())0)swap(list,j,j1);elseif(list.get(j).getid().compareTo(list.get(j1).getid())0)swap(list,j,j1);}}}break;}return list;}
交换两个学生信息 //交换两个学生信息public static ArrayListStudent swap(ArrayListStudent list,int i,int j){Student tmpinew Student(list.get(i).getname(), list.get(i).getid(), list.get(i).getage(), list.get(i).getsex(), list.get(i).getscore());Student tmpjnew Student(list.get(j).getname(), list.get(j).getid(), list.get(j).getage(), list.get(j).getsex(), list.get(j).getscore());list.set(i,tmpj);list.set(j,tmpi);return list;}
4.6修改学生信息 用户输入要求修改的姓名若不存在该学生则警告查无此人若存在则依次输入学号年龄性别分数进行修改。 //修改学生信息public static ArrayListStudent modify(ArrayListStudent list){boolean flagfalse;int modicount0;System.out.println(请问您要修改的姓名是 );String namenew Scanner(System.in).next();for(int i0;ilist.size();i){if(list.get(i).getname().equals(name)){flagtrue;modicounti;break;}}if(flagfalse)System.out.println(查无此人 );else{System.out.println(请问修改后的学号是 );String idnew Scanner(System.in).next();System.out.println(请问修改后的年龄是 );int agenew Scanner(System.in).nextInt();System.out.println(请问修改后的性别是 );String sexnew Scanner(System.in).next();System.out.println(请问修改后的分数是 );int scorenew Scanner(System.in).nextInt();list.set(modicount,new Student(name, id, age, sex, score));}return list;}