一个JAVA小程序 帮帮忙哎~~~

/**题目:使用多维数组存储学生成绩,第一维是学生编号(253068****),第二维是每个学生的成绩。显示全部学生的平均成绩以及没个学生的平均成绩*/importjav... /**题目:使用多维数组存储学生成绩,第一维是学生编号(253068****),第二维是每个学生的成绩。
显示全部学生的平均成绩以及没个学生的平均成绩*/
import java.io.*;
class student
{
public static void main (String[] arguments)
{
System.out.println("请输入班级人数:");
int num;
System.in.read(num);
int i;
i=num;
int c=0;
int[][] data=new int[i][4];
if(num>0)
{
for(i=0;i<num;i++)
{
int a,b;
System.out.println("请输入学生的学号:");
System.in.read(data[i][0]);
System.out.println("请输入该学生的java成绩:");
System.in.read(a);
data[i][1]=a;
System.out.println("请输入该学生的c#成绩:");
System.in.read(b);
data[i][2]=b;
data[i][3]=a+b;
System.out.println("学生"+data[i][0]+"平均成绩为"+data[i][1]/2);
c+=data[i][3];
}
}
System.out.println("全部学生的平均成绩为:"+c/num);
}
}
这是我写的一个JAVA练习题 但是System.in.read()有错 而且如果学号输入为:“2530680132”的话 会报“输入过大整数”的错误
如果把数组改为“string”类型的话 该怎么做呢?
请各位帮我指点指点 谢谢了先
同时 我是个初学者 也希望大家帮我多提提这程序的缺点
我好改进改进 尽量把它做得更好 这样才能慢慢的完善自己的知识
展开
 我来答
方杭尽
2007-09-06 · TA获得超过1万个赞
知道大有可为答主
回答量:1296
采纳率:0%
帮助的人:676万
展开全部
  //我改的,基本上已经面目全非了,呵呵,拿去参考参考

  //Student.java
  import java.io.*;
  public class Student
  {
  public static int read()//对输入的读取,获取输入的数字信息
  {
  int num=0;
  boolean bo=true;
  while(bo)
  {
  try
  {
  byte[] b1=new byte[20];
  System.in.read(b1);
  String s1=new String(b1,0,20).trim();
  num=Integer.parseInt(s1);
  }
  catch (IOException e)
  {
  System.err.println("设备异常,被迫中断退出!");
  System.exit(1);
  }
  catch(NumberFormatException e)
  {
  System.err.println("对不起,您输入的不是要求的数字格式或数字太长,\n 请核对后再输入!");
  bo=true;
  continue;
  }
  bo=false;
  }
  return num;
  }

  public static void printScore(EveryStudent[] es)
  //打印出成绩单,虽然不是很工整,输入的时候照顾一下就可以了。
  {
  System.out.println("学号--------JAVA成绩----------c#成绩");
  for(int j=0;j<es.length;j++)
  System.out.println(es[j].getClassnumber()+"--------"+es[j].getJava()+"--------"+es[j].getC_());
  System.out.println("平均"+"--------"+getEver(es,"java")+"--------"+getEver(es,"c#"));
  }

  public static int getEver(EveryStudent[] es,String score)//从 es 里获取score所表示成绩的平均值
  {
  int he=0;
  if(score.toLowerCase().equals("java"))
  {
  for(int i=0;i<es.length;i++)
  {
  he+=es[i].getJava();
  }
  }
  else if(score.toLowerCase().equals("c#"))
  {
  for(int i=0;i<es.length;i++)
  {
  he+=es[i].getC_();
  }
  }
  else
  {
  System.out.println("没有该门课程");
  return 0;
  }
  return he/es.length;
  }//end of getEver

  public static void main (String[] args) //主函数
  {
  System.out.println("请输入班级人数:");
  int num=read();
  int i=num;
  int c=0;
  EveryStudent[] es=new EveryStudent[i];//创建可以容纳所有学生的学生数组
  if(num>0)
  {
  for(i=0;i<num;i++)
  {
  System.out.println("请输入学生的学号:");
  byte[] buf=new byte[1024];
  String classnumber="";
  try
  {
  System.in.read(buf);
  classnumber=new String(buf,0,1024).trim();
  }
  catch (IOException e)
  {
  e.printStackTrace();
  System.exit(0);
  }
  System.out.println("请输入学生"+classnumber+"的java成绩:");
  int java=read();
  System.out.println("请输入该学生的c#成绩:");
  int c_=read();
  System.out.println("学生"+classnumber+"平均成绩为"+(java+c_)/2);
  c+=java;
  c+=c_;
  es[i]=new EveryStudent(classnumber,java,c_);
  }
  }
  System.out.println("\n");
  printScore(es);
  System.out.println("\n");
  System.out.println("全部学生的平均成绩为:"+c/(num*2));
  }//end of main
  }
  class EveryStudent//为单个学生创建的类,有每个学生的所有信息
  {
  private String classnumber;
  private int java;
  private int c_;
  public EveryStudent(String classnumber, int java, int c_) {
  super();
  // TODO Auto-generated constructor stub
  this.classnumber = classnumber;
  this.java = java;
  this.c_ = c_;
  }
  public int getC_() {
  return c_;
  }
  public void setC_(int c_)
  {
  this.c_ = c_;
  }
  public String getClassnumber()
  {
  return classnumber;
  }
  public void setClassnumber(String classnumber)
  {
  this.classnumber = classnumber;
  }
  public int getJava()
  {
  return java;
  }
  public void setJava(int java)
  {
  this.java = java;
  }
  }//end of EveryStudent
  //end of Student.java
折灵雨0p
2007-09-05 · 超过33用户采纳过TA的回答
知道答主
回答量:132
采纳率:0%
帮助的人:116万
展开全部
学号不要int型的数据,用String的,还有数据最好别公有,用私有
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式