以上是文件组织结构
下面是个.java的具体代码:
1 package com.collection.students.pojo; 2 3 public class Student { 4 private String sno; 5 private String gender; 6 private String name; 7 private String clas; 8 9 public Student() { 10 11 } 12 public Student(String sno, String name, String gender, String clas) { 13 super(); 14 this.sno = sno; 15 this.gender = gender; 16 this.name = name; 17 this.clas = clas; 18 } 19 20 public String getSno() { 21 return sno; 22 } 23 public void setSno(String sno) { 24 this.sno = sno; 25 } 26 public String getGender() { 27 return gender; 28 } 29 public void setGender(String gender) { 30 this.gender = gender; 31 } 32 public String getName() { 33 return name; 34 } 35 public void setName(String name) { 36 this.name = name; 37 } 38 public String getClas() { 39 return clas; 40 } 41 public void setClas(String clas) { 42 this.clas = clas; 43 } 44 @Override 45 public String toString() { 46 return sno + "\t" + name + "\t" + gender 47 + "\t" + clas; 48 } 49 50 51 52 }
package com.collection.students.data; import java.util.HashSet; import com.collection.students.pojo.Student; public class StuDatas { private HashSet<Student> set; public StuDatas() { this.set = new HashSet<Student>(); } public HashSet<Student> getSet() { return set; } public void setSet(HashSet<Student> set) { this.set = set; } }
package com.collection.students.service; import java.util.Iterator; import com.collection.students.data.StuDatas; import com.collection.students.pojo.Student; public class StuSer { private Student tempStu; private StuDatas datas; private Iterator<Student> iterator; private boolean judge; public StuSer() { this.datas = new StuDatas(); judge = false; tempStu = null; } public void addStu(Student student) { iterator = datas.getSet().iterator(); System.out.println("添加前学生人数:"+datas.getSet().size()); datas.getSet().add(student); System.out.println("添加成功"); System.out.println("添加后学生人数:"+datas.getSet().size()); System.out.println(iterator.hasNext()); } public void delStu(Student student) { iterator = datas.getSet().iterator(); datas.getSet().remove(student); System.out.println("删除成功"); } public void editStu(Student student) { iterator = datas.getSet().iterator(); while (iterator.hasNext()) { tempStu = iterator.next(); if (tempStu.getSno().equals(student.getSno())) { tempStu.setGender(student.getGender()); tempStu.setClas(student.getClas()); tempStu.setName(student.getName()); judge = true; break; } } if (judge) { System.out.println("修改成功"); judge = false;// 恢复原值 } else { System.out.println("修改失败,未找到这样学号的学生"); } } public Student searchStuBySno(String str) { iterator = datas.getSet().iterator(); while (iterator.hasNext()) { tempStu = iterator.next(); if (tempStu.getSno().equals(str)) { System.out.println("查到该学号的同学"); System.out.println("该学生的信息如下:"); showStu(tempStu); judge = true; break; } } if (judge) { judge = false;// 恢复原值 return tempStu; } else { System.out.println("未找到这样学号的学生"); return null; } } public Student searchStuByName(String str) { iterator = datas.getSet().iterator(); while (iterator.hasNext()) { tempStu = iterator.next(); if (isNameAlike(tempStu.getName(), str)) { showStu(tempStu); judge = true; break; } } if (judge) { judge = false;// 恢复原值 return tempStu; } else { System.out.println("未找到姓名与输入文字相似的学生"); return null; } } public void showStu(Student student) { System.out.println(student.toString()); } public void showAllStu() { iterator = datas.getSet().iterator(); if (!iterator.hasNext()) { System.out.println("暂无学生,你可以选择添加学生"); return; } System.out.println("所有学生的信息如下:"); while (iterator.hasNext()) { tempStu = iterator.next(); showStu(tempStu); } } public Student creatStu(String string) { String[] tempString = string.split(","); return tempStu = new Student(tempString[0], tempString[1], tempString[2], tempString[3]); } // 按学号判断是否已经存在该学生 public boolean isStuPresent(Student student) { iterator = datas.getSet().iterator(); while (iterator.hasNext()) { if (iterator.next().equals(student)) { return true; } } return false; } public boolean isNameAlike(String s1, String s2) { for (int i = 0; i < s1.length(); i++) { for (int j = 0; j < s2.length(); j++) { if (s1.substring(i, i + 1).equals(s2.subSequence(j, j + 1))) { return true; } } } return false; } }
package com.collection.students.view; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; import com.collection.students.data.StuDatas; import com.collection.students.pojo.Student; import com.collection.students.service.StuSer; public class StuMain { public static void main(String[] args) { StuSer stuSer = new StuSer(); Scanner scanner = new Scanner(System.in); String choice; String input; Student student = null; while (true) { printMenu(); choice = scanner.nextLine(); if ("1".equals(choice)) { System.out.println("请输入学生的姓名,性别,班级(逗号隔开)"); String temp = "," + scanner.nextLine(); input = generateSno() + temp; if ((student = stuSer.creatStu(input)) != null) { while (stuSer.isStuPresent(student)) { //如果学号存在则重新产生学号 input = generateSno() + temp; student = stuSer.creatStu(input); } stuSer.addStu(student); System.out.println("该生的学号为:" + student.getSno()); } else { System.out.println("输入的信息不合法"); } } if ("2".equals(choice)) { System.out.println("请输入学生的学号"); input = scanner.nextLine(); student = stuSer.searchStuBySno(input); if (student==null) { System.out.println("删除失败"); }else{ stuSer.delStu(student); } } if ("3".equals(choice)) { stuSer.showAllStu(); } if ("4".equals(choice)) { System.out.println("输入要修改的学生的学号及新的学生姓名,性别,班级(逗号隔开)"); input = scanner.nextLine(); student = stuSer.creatStu(input); if (student != null) { stuSer.editStu(student); }else { System.out.println("输入不合法"); } } if ("5".equals(choice)) { System.out.println("请输入姓名"); input = scanner.nextLine(); stuSer.searchStuByName(input); } if ("6".equals(choice)) { System.out.println("已退出系统"); System.exit(0); } } } public static void printMenu() { System.out .println("请选择操作序号:\n1.添加学生\n2.删除学生\n3.显示所有学生\n4.更改学生信息\n5.姓名模糊查找\n6.退出\n"); } public static String generateSno() { Date date = new Date(); String str; SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd"); String ran = "" + (int) (Math.random() * 10000); StringBuffer sbf = new StringBuffer(""); for (int i = 0; i < 4 - ran.length(); i++) { sbf.append(‘0‘); } str = dateFormat.format(date); return str = str + sbf.toString() + ran; } }
执行结果:
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出
3
暂无学生,你可以选择添加学生
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出
1
请输入学生的姓名,性别,班级(逗号隔开)
sdfa,sdfa,asdf
添加前学生人数:0
添加成功
添加后学生人数:1
false
该生的学号为:201507319147
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出
3
所有学生的信息如下:
201507319147 sdfa sdfa asdf
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出
1
请输入学生的姓名,性别,班级(逗号隔开)
sdfa,dfa,dadf
添加前学生人数:1
添加成功
添加后学生人数:2
true
该生的学号为:201507315547
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出
3
所有学生的信息如下:
201507315547 sdfa dfa dadf
201507319147 sdfa sdfa asdf
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出
1
请输入学生的姓名,性别,班级(逗号隔开)
kfjdisf,sdf,as
添加前学生人数:2
添加成功
添加后学生人数:3
true
该生的学号为:201507311253
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出
3
所有学生的信息如下:
201507311253 kfjdisf sdf as
201507315547 sdfa dfa dadf
201507319147 sdfa sdfa asdf
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出
4
输入要修改的学生的学号及新的学生姓名,性别,班级(逗号隔开)
201507315547,sfs,男,iii
修改成功
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出
3
所有学生的信息如下:
201507311253 kfjdisf sdf as
201507315547 sfs 男 iii
201507319147 sdfa sdfa asdf
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出
2
请输入学生的学号
201507315547
查到该学号的同学
该学生的信息如下:
201507315547 sfs 男 iii
删除成功
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出
3
所有学生的信息如下:
201507311253 kfjdisf sdf as
201507319147 sdfa sdfa asdf
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出
6
已退出系统