学生成绩管理系统_有问题

作者在 2017-07-14 13:18:31 发布以下内容

状态:未解决

关键:外层循环中 对字符串的整合

错误代码:不见了。。雾草找到了

public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("请输入学生的人数:");
int person = s.nextInt();
System.out.println("请输入学生的科目数:");
int a = s.nextInt();
String[] stu = new String[person];
String[] num = new String[a];
for(int i=0;i<person;i++){
System.out.println("请输入学生"+(i+1)+"的名字");
stu[i] = s.next();
}
for(int i=0;i<a;i++){
System.out.println("请输入科目"+(i+1)+"的名字");
num[i] = s.next();
}

int[][] score = new int[person][a];

String[] str1 = new String[person];
int[] sum = new int[person];

for(int i=0;i<person;i++){
for(int j=0;j<a;j++){
System.out.println("请输入学生"+stu[i]+"的"+num[j]+"成绩:");
score[i][j] = s.nextInt();
str1[i]+=score[i][j]+"\t";
sum[i]+=score[i][j];

}
}

System.out.print("学生\t");
for(int i=0;i<a;i++){
System.out.print(num[i]+"\t");
}
System.out.println();
String[] str = new String[person];
for(int i=0;i<person;i++){
str[i] = stu[i]+"\t"+str1[i]+"\t"+sum[i]+"\t"+sum[i]/a;
System.out.println(str[i]);
}
}


    问题描述:用str[i]整合成绩 + 之后会出现 null 不知原因

正确代码:

package example;//输入学生人数、科目数。每个学生的科目成绩 输出 排序(选择或冒泡2选1)并输出
import java.util.Scanner;
public class Score_management_system {
public static void main(String[]sumrgs){
Scanner s = new Scanner(System.in);
System.out.println("请输入学生人数:");
int m = s.nextInt();
System.out.println("请输入学习科目:");
int n = s.nextInt();
String[] per = new String[m];
for(int i=0;i<m;i++){
System.out.println("请输入学生"+(i+1)+"姓名");
per[i] = s.next();
}
String[] kemu = new String[n];
String acc = "";
for(int i=0;i<n;i++){
System.out.println("请输入科目"+(i+1)+"的名称");
kemu[i] = s.next();
acc +=kemu[i]+"\t";
}
int[][] score = new int[m][n];
int[] sum = new int[m];
String[] str = new String[m];
for(int i=0;i<m;i++){
String str11 = "";//外层循环中定义str11(为空),空字符串链接做整合
for(int j=0;j<n;j++){
System.out.println("请输入学生"+per[i]+kemu[j]+"的成绩");
score[i][j] = s.nextInt();
str11 += score[i][j]+"\t";
sum[i] +=score[i][j];
}
str[i] = per[i]+"\t"+str11+sum[i]+"\t"+sum[i]/kemu.length;
}
for(int i=0;i<m-1;i++){
for(int j=i+1;j<m;j++){
if(sum[i]>sum[j]){
int t = sum[i];String temp = str[i];
sum[i] = sum[j];str[i] = str[j];
sum[j] = t;str[j] = temp;
}
}
}
System.out.println("学生\t"+acc+"总分\t"+"平均分\t"+"名次");
for(int i=0;i<m;i++){
System.out.println(str[i]+"\t第"+(i+1)+"名");
}


}
}

问题描述:输出无法对齐

java 笔记 | 阅读 512 次
文章评论,共0条
游客请输入验证码
文章归档