我的第一个独立看需求完成项目,虽然很简单(笑)
建立一个可以增加,修改,删除,展示学生信息的系统
首先是一个界面,让你决定进行哪个操作
1.2.3.4.5分别对应不同的操作,switch与这一操作完美契合,在switch语句里调用对应操作的函数
Scanner sc = new Scanner(System.in);
String choose = sc.next();
switch (choose){
case "1": addStudent(list);break;
case "2": deleteStudent(list);break;
case "3": change(list);break;
case "4": look(list);break;
case "5": System.out.println("退出成功");break quit;
default:
System.out.println("你输入的什么玩意");
}
接着考虑用什么盛装对应的学生信息,如果用数组的话不确定有多少个学生信息,所以集合ArrayList是最好的选择。
ArrayList<student> list = new ArrayList<>();
然后就是界面了很简单,想做成什么样式的就做成什么什么样式的,我就做成了百晓生,啊不,丁小喜的兵器谱(笑)
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("请做出你的选择吧!");
再就是不能只进行一次操作吧?所以加上while true循环。那怎么退出呢?自然是用break跳出指定循环的办法了呀。所以最好main函数是长这样的:
public static void main(String[] args) {
ArrayList<student> list = new ArrayList<>();
quit: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);
String choose = sc.next();
switch (choose){
case "1": addStudent(list);break;
case "2": deleteStudent(list);break;
case "3": change(list);break;
case "4": look(list);break;
case "5": System.out.println("退出成功");break quit;
default:
System.out.println("你输入的什么玩意");
}
}
}
然后是操作的写法
3展示学生编号:
当集合里没有对象时,直接返回,没有学生信息还展示个锤子
public static void look(ArrayList<student> list){
if(list.size()==0) {
System.out.println("还有没有高手你心里没有点ac数?");
return;
}
System.out.println("绰号"+'\t'+'\t'+"姓名"+'\t'+'\t'+"年龄"+'\t'+'\t'+"籍贯");
for (int i = 0; i < list.size(); i++) {
System.out.printf(list.get(i).getId()+"\t\t");
System.out.printf(list.get(i).getName()+"\t\t");
System.out.printf(list.get(i).getAge()+"\t\t");
System.out.printf(list.get(i).getPlace()+"\t\t");
System.out.println("");
}
}
1添加学生对象:
进来首先判断输入的id是否之前有过,就像武林高手不能有同一个绰号,如果之前有过就让他从新添加,判断是否相同就用list.get(i).getId().equals(id)就行了。首先list.get(i)获取编号为i的student对象。list.get(i).getId()获取该对象的id值再.equals(id)就比较了两个id是否相同。
不同就创建一个新的对象。
public static void addStudent(ArrayList<student> list){
Scanner sc = new Scanner(System.in);
String id = null;
re:while (true) {
System.out.println("请输入高手的绰号:");
id = sc.next();
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getId().equals(id)) {
System.out.println("已经有高手起这个绰号了,给爷重新起");
continue re;
}
}
break;
}
System.out.println("请输入高手的姓名:");
String name = sc.next();
System.out.println("请输入高手的籍贯:");
String place = sc.next();
System.out.println("请输入高手的年龄:");
int age = sc.nextInt();
student a = new student(name,id,age,place);
list.add(a);
}
2删除一个学生信息:
和之前一样先判断有没有学生信息。如果有直接list.remove(i)就完事了。
如果输错id怎么办呢?很简单,在for循环的过程中如果发现id相同,直接删除跑路了,那没跑路说明就没有你提供的id!!!
public static void deleteStudent(ArrayList<student> list){
if(list.size()==0){
System.out.println("一个高手也没,你除个锤子名");
return;
}
System.out.println("请输入要除名的高手绰号:");
Scanner sc = new Scanner(System.in);
String id = sc.next();
for (int i = 0; i < list.size(); i++) {
if(list.get(i).getId().equals(id)) {
list.remove(i);
System.out.println("除名成功");
return;
}
}
System.out.println("你tm故意找茬是吧!!!");
}
4修改学生编号:
和删除大差不差,简直就是删除和插入的拼接操作
public static void change(ArrayList<student> list){
Scanner sc = new Scanner(System.in);
if(list.size()==0){
System.out.println("一个高手也没,你改个锤子名");
return;
}
System.out.println("请输入要替换的高手绰号:");
String id = sc.next();
for (int i = 0; i < list.size(); i++) {
if(list.get(i).getId().equals(id)) {
System.out.println("请输入高手的新绰号:");
id = sc.next();
System.out.println("请输入高手的姓名:");
String name = sc.next();
System.out.println("请输入高手的籍贯:");
String place = sc.next();
System.out.println("请输入高手的年龄:");
int age = sc.nextInt();
student stu = new student(name,id,age,place);
list.set(i,stu);
System.out.println("替换成功");
return;
}
}
System.out.println("查无此人");
}
最后别忘了写student的JavaBean类哦。
最后把相同代码段合并写成一个函数就可以了:
public class studentTest {
public static void main(String[] args) {
ArrayList<student> list = new ArrayList<>();
quit: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);
String choose = sc.next();
switch (choose){
case "1": addStudent(list);break;
case "2": deleteStudent(list);break;
case "3": change(list);break;
case "4": look(list);break;
case "5": System.out.println("退出成功");break quit;
default:
System.out.println("你输入的什么玩意");
}
}
}
public static void addStudent(ArrayList<student> list){
Scanner sc = new Scanner(System.in);
String id = null;
re:while (true) {
System.out.println("请输入高手的绰号:");
id = sc.next();
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getId().equals(id)) {
System.out.println("已经有高手起这个绰号了,给爷重新起");
continue re;
}
}
break;
}
list.add(gai(list,id));
}
public static void deleteStudent(ArrayList<student> list){
if(list.size()==0){
System.out.println("一个高手也没,你除个锤子名");
return;
}
System.out.println("请输入要除名的高手绰号:");
Scanner sc = new Scanner(System.in);
String id = sc.next();
for (int i = 0; i < list.size(); i++) {
if(list.get(i).getId().equals(id)) {
list.remove(i);
System.out.println("除名成功");
return;
}
}
System.out.println("你tm故意找茬是吧!!!");
}
public static void look(ArrayList<student> list){
if(list.size()==0) {
System.out.println("还有没有高手你心里没有点ac数?");
return;
}
System.out.println("绰号"+'\t'+'\t'+"姓名"+'\t'+'\t'+"年龄"+'\t'+'\t'+"籍贯");
for (int i = 0; i < list.size(); i++) {
System.out.printf(list.get(i).getId()+"\t\t");
System.out.printf(list.get(i).getName()+"\t\t");
System.out.printf(list.get(i).getAge()+"\t\t");
System.out.printf(list.get(i).getPlace()+"\t\t");
System.out.println("");
}
}
public static void change(ArrayList<student> list){
Scanner sc = new Scanner(System.in);
if(list.size()==0){
System.out.println("一个高手也没,你改个锤子名");
return;
}
System.out.println("请输入要替换的高手绰号:");
String id = sc.next();
for (int i = 0; i < list.size(); i++) {
if(list.get(i).getId().equals(id)) {
System.out.println("请输入高手的新绰号:");
id = sc.next();
list.set(i,gai(list,id));
System.out.println("替换成功");
return;
}
}
System.out.println("查无此人");
}
public static student gai(ArrayList<student> list,String id){
Scanner sc = new Scanner(System.in);
System.out.println("请输入高手的姓名:");
String name = sc.next();
System.out.println("请输入高手的籍贯:");
String place = sc.next();
System.out.println("请输入高手的年龄:");
int age = sc.nextInt();
student a = new student(name,id,age,place);
return a;
}
}