java 程序问题 请问怎么修改??
import javax.swing.JOptionPane;
class Student{
int no,math,english,chengxu;
double zongfen;
int name;
void St(int no,int math,int english, int chengxu,int name)
{
this.no=no;
this.math=math;
this.english=english;
this.chengxu=chengxu;
this.name=name;
}
public double zongfen()
{
return(math+english+chengxu);
}
}
class banji extends Student
{ String name;
int number;
Student mate[];
void ban(String name,int number)
{ this.name=name;
this.number=number;
mate=new Student[number];
}
}
public class a {
public static void main(String args[]){
banji 软件工程=new banji();
软件工程.number=5;
for(int i=0;i<5;i++)
{
String stri=JOptionPane.showInputDialog("请输入学生学号: ");
软件工程.mate[i].no=Integer.parseInt(stri);
String str=JOptionPane.showInputDialog("请输入学生名字: ");
软件工程.mate[i].name=Integer.parseInt(str);
String st=JOptionPane.showInputDialog("请输入学生英语成绩: ");
软件工程.mate[i].english=Integer.parseInt(st);
String s=JOptionPane.showInputDialog("请输入学生数学成绩: ");
软件工程.mate[i].math=Integer.parseInt(s);
String m=JOptionPane.showInputDialog("请输入学生程序设计成绩: ");
软件工程.mate[i].chengxu=Integer.parseInt(m);
软件工程.zongfen();
}
for(int j=0;j<5;j++)
{
System.out.println(软件工程.mate[j].no+"/t"+软件工程.mate[j].name+"/t"+软件工程.mate[j].english+"/t"+软件工程.mate[j].math+"/t"+软件工程.mate[j].chengxu+"/t"+软件工程.zongfen());
}
}
}
[解决办法]
你这个程序的问题太多了,规范方面自己去注意吧!
public static void main(String args[]) { banji 软件工程 = new banji(); // 加上这句,初始化Student数组 软件工程.ban("123", 2); for (int i = 0; i < 2; i++) { // 每次用一个学生来存储数据 Student student = new Student(); String stri = JOptionPane.showInputDialog("请输入学生学号: "); student.no = Integer.parseInt(stri); String str = JOptionPane.showInputDialog("请输入学生名字: "); student.name = Integer.parseInt(str); String st = JOptionPane.showInputDialog("请输入学生英语成绩: "); student.english = Integer.parseInt(st); String s = JOptionPane.showInputDialog("请输入学生数学成绩: "); student.math = Integer.parseInt(s); String m = JOptionPane.showInputDialog("请输入学生程序设计成绩: "); student.chengxu = Integer.parseInt(m); // 将数据存到数组中 软件工程.mate[i] = student; } for (int j = 0; j < 2; j++) { // "\t" 或者是"//t" System.out.println(软件工程.mate[j].no + "\t" + 软件工程.mate[j].name + "//t" + 软件工程.mate[j].english + "//t" + 软件工程.mate[j].math + "//t" + 软件工程.mate[j].chengxu + "//t" + 软件工程.mate[j].zongfen()); } }
[解决办法]
班级为什么要继承学生?
[解决办法]
import javax.swing.JOptionPane;class Student { int no, math, english, chengxu; double zongfen; String name=""; public Student(){ } public void St(int no, int math, int english, int chengxu, String name) { this.no = no; this.math = math; this.english = english; this.chengxu = chengxu; this.name = name; } public double zongfen() { return (math + english + chengxu); }}class Banji{//继承去掉,逻辑就说不过去。要调用zongfen方法,直接调用mate中student对象的方法。 String name; int number; Student mate[]; public Banji(int number) { this.number = number; mate = new Student[number]; } public Banji(String name, int number) { this(number); this.name = name; }}public class a { public static void main(String args[]) { Banji 软件工程 = new Banji(5); for (int i = 0; i < 5; i++) { 软件工程.mate[i] = new Student();//初始化student实例 String stri = JOptionPane.showInputDialog("请输入学生学号: "); 软件工程.mate[i].no = Integer.parseInt(stri); String str = JOptionPane.showInputDialog("请输入学生名字: "); 软件工程.mate[i].name = str;//姓名也是int?倒是可以。。。 String st = JOptionPane.showInputDialog("请输入学生英语成绩: "); 软件工程.mate[i].english = Integer.parseInt(st); String s = JOptionPane.showInputDialog("请输入学生数学成绩: "); 软件工程.mate[i].math = Integer.parseInt(s); String m = JOptionPane.showInputDialog("请输入学生程序设计成绩: "); 软件工程.mate[i].chengxu = Integer.parseInt(m); } for (int j = 0; j < 5; j++) { System.out.println(软件工程.mate[j].no + "\t" + 软件工程.mate[j].name + "\t" + 软件工程.mate[j].english + "\t" + 软件工程.mate[j].math + "\t" + 软件工程.mate[j].chengxu + "\t" + 软件工程.mate[j].zongfen()+"\n"); } }}
[解决办法]
//格式我没有整理,看起来有点乱,但程序能正确运行,希望能帮到你
import javax.swing.JOptionPane;
class Student{
int no;
float math,english,chengxu,zongfen;//数据类型要考虑全面,分数有可能有小数
String name;
public Student(){ //此处Student类的构造方法为空,方便后面实例化
}
public float zongfen()
{
return(math+english+chengxu);
}
}
class banji extends Student
{
//String name;这个属性就可以不要了
int number;
Student mate;
public banji(int number){
for(int i=0;i<number;i++)
mate=new Student();
//实例化类的时候 必须与类的构造方法中的参数保持一致(类型,个数,次序)
}
}
public class Stud{
public static void main(String args[]){
banji 软件工程=new banji(3);
for(int i=0;i<3;i++)
{
String stri=JOptionPane.showInputDialog("请输入学生学号: ");
软件工程.mate.no=Integer.parseInt(stri);
String str=JOptionPane.showInputDialog("请输入学生名字: ");
软件工程.mate.name=str;//这里的name是String类型所以不用强制转换
String st=JOptionPane.showInputDialog("请输入学生英语成绩: ");
软件工程.mate.english=Float.parseFloat(st);
//除了String类型转换为int,还可以转换为float
String s=JOptionPane.showInputDialog("请输入学生数学成绩: ");
软件工程.mate.math=Float.parseFloat(s);
String m=JOptionPane.showInputDialog("请输入学生程序设计成绩: ");
软件工程.mate.chengxu=Float.parseFloat(m);
软件工程.mate.zongfen();//记住是类对象调用相应的方法
System.out.println(软件工程.mate.no+"\t"+软件工程.mate.name+"\t"+软件工程.mate.english+"\t"+软件工程.mate.math+"\t"+软件工程.mate.chengxu+"\t"+软件工程.mate.zongfen());
}
}
}