📄 xs_102.java
字号:
import java.io.*;
class student
{private String name;
private String sex;
private long number;
float Jscore,Cscore,Hscore;
float avs;
student(String cname,long cnumber,String csex,float cJscore,float cCscore,float cHscore)
//JAVA,C,汇编三项成绩
{name=cname;number=cnumber;sex=csex;
Jscore=cJscore;Cscore=cCscore;Hscore=cHscore;
}
String getName(){return name;}
long getNumber(){return number;}
String getSex(){return sex;}
float getJscore(){return Jscore;}
float getCscore(){return Cscore;}
float getHscore(){return Hscore;}
float averagescore(){avs=(Jscore+Cscore+Hscore)/3; return avs;}//计算平均成绩
void grade(){if(avs>=90)System.out.print(" 优");//判断成绩等级
else if(avs>=80)System.out.print(" 良");
else if(avs>=70)System.out.print(" 中");
else if(avs>=60)System.out.print(" 及格");
else System.out.print(" 不及格");
}
float maxscore(){float x=(Jscore>Cscore)?Jscore:Cscore;float max=(x>Hscore)?x:Hscore;
return max;
}//输出每人的最高分
float minscore(){float x=(Jscore<Cscore)?Jscore:Cscore;float min=(x<Hscore)?x:Hscore;
return min;
}//输出每人的最低分
}
class order
{static void sort(student arr1[],int m)//按平均分排序----选择法
{int i,j,k;student t;
for(i=0;i<(m-1);i++)
{k=i;
for(j=i+1;j<m;j++)
if(arr1[j].averagescore()>arr1[k].averagescore())k=j;
if(k>i)
{t=arr1[i];arr1[i]=arr1[k];arr1[k]=t;}
}
}
static void Am(student arr2[],int m)//按姓氏排序-------选择法
{int i,j,k;student t;
for(i=0;i<(m-1);i++)
{k=i;
for(j=i+1;j<m;j++)
{int q=arr2[j].getName().compareTo(arr2[k].getName());
if(q<0)k=j;
}
if(k>i)
{t=arr2[i];arr2[i]=arr2[k];arr2[k]=t;}
}
}
}
public class xs_102 extends order //主类
{
public static void main(String[] args)throws IOException
{int m=0;
BufferedReader keyin=new BufferedReader(new InputStreamReader(System.in));
int i,j;String c1;
student[] st=new student[200];
for(;;)//最外层循环,以实现程序跳转,达到插入的目的
{System.out.print("这是学生成绩管理系统,要输入数据吗?"+"y/n ");//输入模块开始
c1=keyin.readLine();
if(c1.equalsIgnoreCase("y"))//判断是否要输入数据
{for(;;)
{String n;int a;String b;int c,d,e;
String a1,c2,d1,e1;
System.out.print("请输入第"+(m+1)+"个学生的姓名:");
n=keyin.readLine();
System.out.print("请输入第"+(m+1)+"个学生的学号:");
a1=keyin.readLine();
a=Integer.parseInt(a1);
System.out.print("请输入第"+(m+1)+"个学生的性别:");
b=keyin.readLine();
System.out.print("请输入第"+(m+1)+"个学生的JAVA成绩:");
c2=keyin.readLine();
c=Integer.parseInt(c2);
System.out.print("请输入第"+(m+1)+"个学生的C语言成绩:");
d1=keyin.readLine();
d=Integer.parseInt(d1);
System.out.print("请输入第"+(m+1)+"个学生的汇编成绩:");
e1=keyin.readLine();
e=Integer.parseInt(e1);
st[m]=new student(n,a,b,c,d,e);
m=m+1;
System.out.print("终止输入请键入"+"end"+","+"否则直接按回车");//判断是否终止输入
String x1;
x1=keyin.readLine();
if(x1.equalsIgnoreCase("end")) break;//
}
} //输入模块结束
{System.out.print("需要查看平均分排序结果吗?"+"y/n ");//排序模块1---输出按平均分排序的结果
String x4;
x4=keyin.readLine();
if(x4.equalsIgnoreCase("y"))
{if(m==0)System.out.println("您还没有输入数据!");
order.sort(st,m);
for(i=0;i<m;i++)
{System.out.print("姓名:"+st[i].getName()+" 第"+(i+1)+"名"+" 学号:"+st[i].getNumber()+" 性别:"+st[i].getSex()+" Java:"+st[i].getJscore()+" C语言:"+st[i].getHscore()+" 汇编:"+st[i].getHscore()+"\n"+" 平均:"+st[i].averagescore()+" 最高:"+st[i].maxscore()+" 最低:"+st[i].minscore());
st[i].grade();
System.out.print("\n");
System.out.print("\n");
}
}//排序模块1结束
System.out.print("需要查看姓氏排序结果吗?"+"y/n ");//排序模块2---输出按姓氏排序的结果
String x5;
x5=keyin.readLine();
if(x5.equalsIgnoreCase("y"))
{if(m==0)System.out.println("您还没有输入数据!");
order.Am(st,m);
for(i=0;i<m;i++)
{System.out.print("姓名:"+st[i].getName()+" 第"+(i+1)+"名"+" 学号:"+st[i].getNumber()+" 性别:"+st[i].getSex()+" Java:"+st[i].getJscore()+" C语言:"+st[i].getHscore()+" 汇编:"+st[i].getHscore()+"\n"+" 平均:"+st[i].averagescore()+" 最高:"+st[i].maxscore()+" 最低:"+st[i].minscore());
st[i].grade();
System.out.print("\n");
System.out.print("\n");
}
}//排序模块2结束
}
//查找模块
{System.out.print("需要查找吗?"+"y/n ");
String x1;
x1=keyin.readLine();
if(x1.equalsIgnoreCase("y"))
for(;;)//该循环用来实现循环查找
{String c3;
order.sort(st,m-1);
System.out.print("请输入要查找的学生姓名: ");
c3=keyin.readLine();
if(m!=0)
{for(i=0;i<m;i=i+1)
{if(c3.equalsIgnoreCase(st[i].getName()))
{System.out.print("\n"+"姓名:"+st[i].getName());
System.out.print(" 学号:"+st[i].getNumber());
System.out.print(" 性别:"+st[i].getSex());
System.out.print("\n"+"Java:"+st[i].getJscore()+" C语言:"+st[i].getCscore()+" 汇编:"+st[i].getHscore());
System.out.print("\n"+"平均:"+st[i].averagescore());
System.out.print(" 最高:"+st[i].maxscore()+" 最低:"+st[i].minscore());
st[i].grade();
System.out.println(" 第"+(i+1)+"名");break;
}
}
if(i==m)
System.out.println("无此人!");
}
else System.out.println("您还没有输入数据!");
System.out.print("是否继续查找?"+"y/n ");//判断是否继续查找
String y2;
y2=keyin.readLine();
if(y2.equalsIgnoreCase("n")) break;
}
}//查找模块结束
//删除信息模块
{System.out.print("需要删除吗?"+"y/n ");
String x2;
x2=keyin.readLine();
if(x2.equalsIgnoreCase("y"))
for(;;)//该循环用来实现循环删除
{String c4;
System.out.print("输入姓名: ");
c4=keyin.readLine();
int w=m;
for(i=0;i<m;i=i+1)
{if(c4.equalsIgnoreCase(st[i].getName()))
{for(j=i;j<m;j++)
{st[j]=st[j+1];m=m-1;
}
System.out.println("删除完毕!");
break;
}
else
System.out.println("无此人!");
}
System.out.print("是否继续删除?"+"y/n ");//判断是否继续删除
String y3;
y3=keyin.readLine();
if(y3.equalsIgnoreCase("n")) break;
}//删除模块结束
}
//以下语句用来将程序跳转至输入模块开始,间接实现了插入新学生信息的功能
System.out.print("需要插入吗?"+"y/n ");
String y1;
y1=keyin.readLine();
if(y1.equalsIgnoreCase("n")) break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -