
一个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”类型的话 该怎么做呢?
请各位帮我指点指点 谢谢了先
同时 我是个初学者 也希望大家帮我多提提这程序的缺点
我好改进改进 尽量把它做得更好 这样才能慢慢的完善自己的知识 展开
显示全部学生的平均成绩以及没个学生的平均成绩*/
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”类型的话 该怎么做呢?
请各位帮我指点指点 谢谢了先
同时 我是个初学者 也希望大家帮我多提提这程序的缺点
我好改进改进 尽量把它做得更好 这样才能慢慢的完善自己的知识 展开
2个回答
展开全部
//我改的,基本上已经面目全非了,呵呵,拿去参考参考
//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
//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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询