如下就是要完成的效果:
根据输入编号完成对应的功能,输入有误则出现在主菜单中重新提示输入操作数
- 添加
无限添加,根据是否继续进行无限添加成绩,不添加则显示成绩表格:
编号 成绩
编号则是添加的成绩第几个,第一个则编号1
- 12
- 22
- 33
2.删除
入删除位置删除数据信息,显示出删除后的数据要求表格:编号 成绩
3. 修改:
输入修改值,修改为:修改成功后输出成绩表格
4.查询
输入编号,查询成绩
5.插入
输入要插入的位置,插入数,然后插入输出成绩表格
6.成绩统计信息
输出成绩表格的最高分,最低分,总分,平均分
7.等级详细信息
根据成绩的范围判断成绩等级(优秀,良好,一般,及格,不及格),列出成绩表:
编号 成绩 等级
1 80 良好
2 90 优秀
8.排序:将成绩升序排序
9.退出程序:
注:整个程序操作了每个编号后要求回到主菜单,重新选择操作数可以操作
while(true){
输出菜单
输入编号
判断编号:
1 //添加
}
根据上面的要求来写吧!
public class Xxm {
private static int[] str = null;
private static Scanner sc = new Scanner(System.in);
private static boolean flag = true;
public static void main(String[] args) {
int xx=0;
while(flag){
//初始化主菜单
ZhuDish();
String caoZou=sc.next();
//添加
if(caoZou.equals("1")){
System.out.println("你要储存多少条同学数据:");
int tx=sc.nextInt();
str = new int[50];
for(int i=1;i<str.length+1;i++){
System.out.println("您正在添加学号为[" + i + "]的同学成绩:");
str[i-1]=sc.nextInt();
System.out.println("是否要继续添加y(继续)/n(退出):");
String jx=sc.next();
if(jx.equalsIgnoreCase("n")){
break;
}
xx++;//记录添加个数
}
}
//删除
if(caoZou.equals("2")){
System.out.print("请输入待删除同学学号:");
int sc1=sc.nextInt();
if(sc1>-1){
for (int i = sc1-1; i <xx ; i++) {
str[i]=str[i+1];
}
xx--;
System.out.println("删除成功!!!");
}
}
if(caoZou.equals("3")){
System.out.print("请输入待修改同学学号:");
int sc2=sc.nextInt();
if(sc2>-1){
System.out.print("请输入待修改成绩:");
str[sc2-1]=sc.nextInt();
System.out.println("修改成功!!!");
}
}
//查询
if(caoZou.equalsIgnoreCase("4")){
System.out.println("学号\t成绩");
for(int j=0;j<=xx;j++){
System.out.println((j+1)+"\t"+(str[j]));
}
}
//插入
if(caoZou.equalsIgnoreCase("5")){
System.out.print("请输入待插入同学学号:");
int sc3=sc.nextInt();
System.out.print("请输入待插入同学成绩:");
int sc4=sc.nextInt();
if(sc3>-1){
for(int i=xx;i>=sc3-1;i--){//xx是存入了多少同学数据
str[i+1]=str[i];
}
str[sc3-1]=sc4;
xx++;
System.out.println("学号\t成绩");
for(int a=0;a<=xx;a++){
System.out.println((a+1)+"\t"+str[a]);
}
System.out.println("插入成功!!");
}
}
//成绩统计信息
if(caoZou.equalsIgnoreCase("6")){
int zf=0,zgf=0,zdf=str[0],q1=0;//总分,最高分,最低分
System.out.println("成绩统计信息");
System.out.println("学号\t成绩");
//cj是为了获取str[]的下标!
for(int cj=0;cj<=xx;cj++){
zf+=str[cj];
System.out.println((cj+1)+"\t"+(str[cj]));q1++;
}
for (int i = 0; i <=xx; i++) {
if (zgf<str[i]) {
zgf=str[i];
}
if (zdf>str[i]) {
zdf=str[i];
}
}
System.out.print("总分:"+zf);
System.out.print("\t平均分:"+((double)zf/q1));
System.out.print("\t最高分:"+zgf);
System.out.println("\t最低分:"+zdf);
}
//等级详细信息
if(caoZou.equalsIgnoreCase("7")){
System.out.println("等级详细信息");
System.out.println("学号\t成绩\t等级");
for (int i = 0; i <=xx; i++) {
if (str[i]>=60&&str[i]<70) {
System.out.println((i+1)+"\t"+str[i]+"\t及格");
}else if(str[i]>=70&&str[i]<80){
System.out.println((i+1)+"\t"+str[i]+"\t一般");
}else if(str[i]>=80&&str[i]<90){
System.out.println((i+1)+"\t"+str[i]+"\t良好");
}else if(str[i]>=90){
System.out.println((i+1)+"\t"+str[i]+"\t优秀");
}else{
System.out.println((i+1)+"\t"+str[i]+"\t不及格");
}
}
}
//排序
if (caoZou.equalsIgnoreCase("8")) {
for (int i = 0; i <xx; i++) {
for (int j = 0; j <=xx-1-i; j++) {
if (str[j]<str[j+1]) {
int temp=str[j];
str[j]=str[j+1];
str[j+1]=temp;
}
}
}
System.out.println("学号\t成绩");
for (int k = 0; k <=xx; k++) {
System.out.println((k+1)+"\t"+str[k]);
}
}
if (caoZou.equalsIgnoreCase("9")) {
System.out.println("程序已经退出!");
break;
}
}
}
public static void ZhuDish(){
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(" 6.成绩统计信息");
System.out.println(" 7.等级详细信息");
System.out.println(" 8.排序");
System.out.println(" 9.退出程序");
System.out.println("**************************");
System.out.println("请输入需要操作的键:");
}
}