标签:style blog color os ar java for 数据 sp
//student.java package com.sran.www; import java.util.Arrays; import java.util.Scanner; public class Student implements Comparable<Student>{ int num; String name; int age; double[]s; double sum; //存储学生的总分 public Student() { s=new double[3]; } public static boolean insert() { Scanner sc=new Scanner(System.in); String str=null; boolean be=true; do { Student stud=new Student(); System.out.println("开始录入学生的相关信息....."); System.out.print("学号:"); stud.num=sc.nextInt(); System.out.print("姓名:"); stud.name=sc.next(); System.out.print("年龄:"); stud.age=sc.nextInt(); System.out.println("依次输入三门课的成绩:"); System.out.print("语文:"); stud.s[0]=sc.nextDouble(); System.out.print("数学:"); stud.s[1]=sc.nextDouble(); System.out.print("英语:"); stud.s[2]=sc.nextDouble(); stud.sum=stud.calculate_sum(); StudentTest.set.add(stud); System.out.println("如果继续录入,则输入%,否则输入 #"); System.out.print("请输入:"); str=sc.next(); if(!(str.equals("%")||str.equals("#"))) { be=false; System.out.println("你输入有误,已强制结束录入操作"); } }while(str.equals("%") && be); return be; } public static boolean delete() { String str=null; boolean be=true; System.out.println("开始删除学生的相关信息....."); do { System.out.print("请输入要删除的学生的学号:"); Scanner sc=new Scanner(System.in); int s=sc.nextInt(); boolean flag=false; //设一标志位 for(Student stud:StudentTest.set) { if(s==stud.num) { StudentTest.set.remove(stud); flag=true; System.out.println("已删除该学生的信息"); break; } } if(flag==false) { System.out.println("你要删除的学生的学号不存在"); } System.out.println("如果继续删除,则输入 %,否则输入#"); System.out.print("请输入:"); str=sc.next(); if(!(str.equals("%")||str.equals("#"))) { be=false; System.out.println("你输入有误,已强制结束删除操作"); } }while(str.equals("%") && be); return be; } public static boolean seek() { String str=null; boolean be=true; System.out.println("开始查找学生的相关信息....."); do { System.out.print("请输入要查找的学生的学号:"); Scanner sc=new Scanner(System.in); int s=sc.nextInt(); boolean flag=false; for(Student stud:StudentTest.set) { if(s==stud.num) { flag=true; //修改标志位 System.out.println("你要查找的学生的信息:"); System.out.println("学号:"+stud.num); System.out.println("姓名:"+stud.name); System.out.println("年龄:"+stud.age); System.out.println("语文成绩:"+stud.s[0]); System.out.println("数学成绩:"+stud.s[1]); System.out.println("英语成绩:"+stud.s[2]); break; } } if(flag==false) { System.out.println("你要查找的学生的学号不存在"); } System.out.println("如果继续查找,则输入 %,否则输入#"); System.out.print("请输入:"); str=sc.next(); if(!(str.equals("%")||str.equals("#"))) { be=false; System.out.println("你输入的有误,已强制结束查询操作"); } }while(str.equals("%") && be); return be; } public double calculate_sum() { sum=s[0]+s[1]+s[2]; return sum; } @Override public int compareTo(Student stud) { this.sum=this.calculate_sum(); stud.sum=stud.calculate_sum(); if(this.sum>stud.sum) return -1; else if(this.sum<stud.sum) return 1; else { if(this.name.compareTo(stud.name)>0) return -1; else if(this.name.compareTo(stud.name)<0) return 1; else return 0; } } public String toString() { System.out.println("学号"+"\t\t"+"姓名"+"\t\t"+"年龄"+"\t\t"+"语文"+"\t\t"+"数学"+"\t\t"+"英语"+"\t\t"+"总分"); return(num+"\t\t"+name+"\t\t"+age+"\t\t"+s[0]+"\t\t"+s[1]+"\t\t"+s[2]+"\t\t"+sum); } public static boolean update() { String str=null; boolean bot=true; System.out.println("开始更新学生信息....."); do { System.out.print("请输入要更新的学生的学号:"); Scanner sc=new Scanner(System.in); int s=sc.nextInt(); boolean be=false; boolean br=false; for(Student stud:StudentTest.set) { if(stud.num==s) { be=true; //修改标志位 System.out.println("请输入要更新的哪一项: 其中1代表学号,2代表姓名,3代表年龄,4代表语文成绩,5代表数学成绩,6代表英语成绩"); System.out.print("请输入:"); int n=sc.nextInt(); switch(n) { case 1: { System.out.print("请输入修改后的学号:"); stud.num=sc.nextInt(); System.out.println("修改成功"); break; } case 2: { System.out.print("请输入修改后的姓名:"); stud.name=sc.next(); System.out.println("修改成功"); break; } case 3: { System.out.print("请输入修改后的年龄:"); stud.age=sc.nextInt(); System.out.println("修改成功"); break; } case 4: { System.out.print("请输入修改后的语文成绩:"); stud.s[0]=sc.nextDouble(); System.out.println("修改成功"); stud.sum=stud.calculate_sum(); //重新更新总分 br=true; break; } case 5: { System.out.print("请输入修改后的数学成绩:"); stud.s[1]=sc.nextDouble(); System.out.println("修改成功"); stud.sum=stud.calculate_sum(); //重新更新总分 br=true; break; } case 6: { System.out.print("请输入修改后的英语成绩:"); stud.s[2]=sc.nextDouble(); System.out.println("修改成功"); stud.sum=stud.calculate_sum(); //重新更新总分 br=true; break; } } } } if(br==true) { Object[]obj=StudentTest.set.toArray(); Arrays.sort(obj); StudentTest.set.clear(); for(int i=0;i<obj.length;i++) { Student st=(Student)obj[i]; StudentTest.set.add(st); } } if(be==false) { System.out.println("你要修改的学生的学号不存在"); } System.out.println("如果继续修改,则输入 %,否则输入#"); System.out.print("请输入:"); str=sc.next(); if(!(str.equals("%")||str.equals("#"))) { bot=false; System.out.println("你输入有误,已强制结束更新操作"); } }while(str.equals("%") && bot); return bot; } }
//StudentTest
package com.sran.www;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;
public class StudentTest {
static Set<Student>set=null; //定义集合,存储学生信息
public void fun()
{
int i;
boolean b,bt;
set=new TreeSet<Student>();
do{
int flag=0;
System.out.println("请输入1,2,3,4,5 1代表录入,2代表删除,3代表查找,4代表显示学生总成绩排名,5代表更新某个学生数据");
System.out.print("请输入:");
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
switch(n)
{
case 1:
{
b=Student.insert();
if(b==true)
{
System.out.println("正常结束录入操作.....");
}
flag=1;
break;
}
case 2:
{
b=Student.delete();
if(b==true)
{
System.out.println("正常结束删除操作.....");
}
flag=1;
break;
}
case 3:
{
b=Student.seek();
if(b==true)
{
System.out.println("正常结束查询操作.....");
}
flag=1;
break;
}
case 4:
{
System.out.println("开始排名学生信息.....");
System.out.println("学生按总成绩排名:");
for(Student stud:set)
{
System.out.println(stud);
System.out.println();
}
System.out.println("正常结束排名操作.....");
flag=1;
break;
}
case 5:
{
b=Student.update();
if(b==true)
{
System.out.println("正常结束更新操作.....");
}
flag=1;
break;
}
}
if(flag==0)
{
System.out.println("你输入有误,请重新输入");
}
System.out.println();
do
{
bt=false;
System.out.println("继续所有学生信息操作,请输入1 退出学生信息系统 ,请输入0");
System.out.print("请输入:");
i=sc.nextInt();
if(i!=1 && i!=0)
{
bt=true;
System.out.println("输入有误,请重新输入");
}
}while(bt==true);
}while(i==1);
System.out.println("你已退出学生信息系统.....");
}
public static void main(String[] args) {
new StudentTest().fun();
}
}
标签:style blog color os ar java for 数据 sp
原文地址:http://www.cnblogs.com/zhangming-blog/p/4020545.html