黑马程序员技术交流社区
标题:
JAVA类集的问题,新手求解答
[打印本页]
作者:
478883662
时间:
2015-11-8 18:27
标题:
JAVA类集的问题,新手求解答
完成一个学生管理程序,使用学号作为键添加5个学生对象,并可以将全部的信息保存在文件中,可以实现对学生信息的学号查找、输出全部学生信息的功能。{:3_62:}
作者:
黑夜中那颗星
时间:
2015-11-8 18:45
这是我写的,你可以参考一下
import java.util.*;
import java.util.Scanner;
public class Test {
public static final Scanner s = new Scanner(System.in);
public static final ArrayList<Student> list = new ArrayList<Student>();
public static void main(String[] args) {
home();
}
public static void home(){ //主页
while(true){
System.out.println("1.录入学生信息 2.查询学生信息 3.删除学生信息 4.退出\n输入数字选择:");
int num = s.nextInt();
switch(num){
case 1:
inputInfo();
break;
case 2:
findInfo();
break;
case 3:
remove();
break;
case 4:
return;
}
}
}
public static void findInfo(){ //查询信息
System.out.println("1.升序 2.降序 3.返回\n输入数字选择查询方式(两科的总分):");
int num = 0;
while(true){
num = s.nextInt();
if(num==1){ //升序
Collections.sort(list,new Comparator<Student>(){
public int compare(Student s1, Student s2) {
int n = new Integer(s1.getChinese()+s1.getMath()).compareTo(new Integer(s2.getChinese()+s2.getMath()));
if(n==0)
return s1.getName().compareTo(s2.getName());
return n;
}
});
printAll();
}
else if(num==2){ //降序
Collections.sort(list,new Comparator<Student>(){
public int compare(Student s1, Student s2) {
int n = new Integer(s2.getChinese()+s2.getMath()).compareTo(new Integer(s1.getChinese()+s1.getMath()));
if(n==0)
return s2.getName().compareTo(s1.getName());
return n;
}
});
printAll();
}
else if(num==3)
break;
else
System.out.println("输入错误,重新输入:");
}
return;
}
public static void remove(){ //删除信息
System.out.print("输入需要删除的姓名:");
String name = s.next();
Iterator<Student> it = list.listIterator();
boolean flag = false;
while(it.hasNext()){
Student str = it.next();
if(name.equals(str.getName())){
it.remove();
flag = true;
}
}
if(flag)
System.out.println(name+" 删除成功!");
else
System.out.println("删除失败,未找到该名字!");
System.out.println("1.继续 2.返回\n输入数字选择:");
while(true){
int num = s.nextInt();
if(num==1){
remove();
return;
}
else if(num==2)
break;
else
System.out.println("输入错误,重新输入:");
}
return;
}
public static void printAll(){ //打印信息
int num = 1;
System.out.println("--------------(查询)----------------");
if(list.size()>0)
for(Student stu:list){
System.out.println(num++ +".姓名:"+stu.getName()+"|语文成绩:"+stu.getChinese()+"|数学成绩:"+stu.getMath()+"---|总分:"+(stu.getChinese
()+stu.getMath()));
}
else
System.out.println("没有学生信息!");
System.out.println("-----------------------------------");
}
public static void inputInfo(){ //输入信息
System.out.println("输入学生姓名:");
String name = s.next();
System.out.println("输入数学成绩:");
int Math = s.nextInt();
System.out.println("输入语文成绩:");
int chinese = s.nextInt();
list.add(new Student(name,Math,chinese));
System.out.println("1.返回 2.继续录入\n输入数字选择:");
while(true){
int num = s.nextInt();
if(num==1)
break;
else if(num==2){
inputInfo();
return;
}
else
System.out.println("输入错误,重新输入:");
}
return;
}
}
class Student{ //学生类
private String name;
private int chinese;
private int math;
Student(String name,int math,int chinese){
this.name = name;
this.chinese = chinese;
this.math = math;
}
public String getName(){
return name;
}
public int getChinese(){
return chinese;
}
public int getMath(){
return math;
}
}
复制代码
作者:
海角秋风
时间:
2015-11-8 20:01
没细看,只想说好牛,,,自己抓紧时间去学习吧。。。
作者:
我是大明星
时间:
2015-11-8 20:19
呵呵,有点难度啊,看看楼上代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2