学Java没多久,做一个小项目,能做到基本的查询,小编在努力的优化代码增加系统功能,有时间的小伙伴请指点一下。
class Student{
//学生名字
String name;
//学生5门课成绩
double[] grade = new double[5];
//Student的构造方法
public Student(String name,double cgrade,double javagrade,double mysqlgrade,double linuxgrade,double htmlgrade){
this.name=name;
this.grade[0]=cgrade;
this.grade[1]=javagrade;
this.grade[2]=mysqlgrade;
this.grade[3]=linuxgrade;
this.grade[4]=htmlgrade;
}
}
import java.util.*;
public class InquireScore{
static String[] className = new String[] {"c","java","mysql","linux","html"};
public static void averageClass(String str,ArrayList<Student> student){
double average,sum=0;
int temp=0;
for(int i=0;i<5;i++){
if(str.equals(className[i])){
temp=i;
break;
}
}
for(int i=0;i<student.size();i++){
sum+=student.get(i).grade[temp];
}
average = sum*1.0/student.size();
System.out.println("Java课程的平均成绩为:"+average);
}
public static void averageStudentGrade(String name,ArrayList<Student> student){
double average,sum=0;
for(int i=0;i<student.size();i++){
if(name.equals(student.get(i).name)){
for(int j=0;j<5;j++){
sum+=student.get(i).grade[j];
}
break;
}
}
average = sum*1.0/5;
System.out.println(name+"同学的平均成绩为:"+average);
}
public static double getStudentGrade(String name,String str,ArrayList<Student> student){
double num=0.0;
for(int i=0;i<student.size();i++){
if(name.equals(student.get(i).name)){
for(int j=0;j<5;j++){
if(str.equals(className[j])){
num=student.get(i).grade[j];
}
}
}
}
return num;
}
public static void sortClassGrade(String str,ArrayList<Student> student){
System.out.println("名次\t姓名\t"+str);
int temp=0;
for(int i=0;i<5;i++){
if(str.equals(className[i])){
temp=i;
break;
}
}
double[] a = new double[1000];
int[] c = new int[1000];
for(int i=0;i<student.size();i++){
a[i]=student.get(i).grade[temp];
c[i]=i;
}
for(int i=0;i<student.size()-1;i++){
double min = a[c[i]];
int k=c[i];
for(int j=i;j<student.size();j++){
if(min>a[c[j]]){
min=a[c[j]];
k=j;
}
}
int st = c[i];
c[i] = c[k];
c[k] = st;
}
for(int i=0;i<student.size();i++){
System.out.println(i+1+"\t"+student.get(c[i]).name+"\t"+student.get(c[i]).grade[temp]);
}
}
public static void main(String[] args){
ArrayList<Student> student = new ArrayList<>();
student.add(new Student("zhang",26,69,46,25,5));
student.add(new Student("wang",27,10,24,66,58));
student.add(new Student("li",44,58,0,82,75));
student.add(new Student("zhao",6,68,92,9,84));
student.add(new Student("liu",75,1,51,41,74));
student.add(new Student("song",23,38,65,1,55));
int temp=1;
String arr;
Scanner reader = new Scanner(System.in);
while(true){
System.out.println("请输入命令:");
arr = reader.nextLine();
if(arr.equals("exit")){
System.out.println("退出查询系统!byebye!");
System.exit(0);
}
for(int i=0;i<5;i++){
String arr1 = "avg"+" "+className[i];
if(arr.equals(arr1)){
averageClass(className[i],student);
break;
}
}
for(int i=0;i<student.size();i++){
String arr2 = "avg"+" "+student.get(i).name;
if(arr.equals(arr2)){
averageStudentGrade(student.get(i).name,student);
break;
}
}
for(int i=0;i<student.size();i++){
for(int j=0;j<5;j++){
String arr3 = "get" + " "+student.get(i).name+" "+className[j];
if(arr.equals(arr3)){
double average = getStudentGrade(student.get(i).name,className[j],student);
System.out.println(student.get(i).name+"的"+className[j]+"成绩是:"+average);
break;
}
}
}
for(int i=0;i<5;i++){
String arr4 = "sort"+" "+className[i];
if(arr.equals(arr4)){
sortClassGrade(className[i],student);
}
}
}
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/7e2003e10536026ab39701431695b9ea.png)
谢谢大家浏览!