• 设计一个班级类和一个学生类:1.学生类属性:姓名,学号,成绩(整数即可),定义相关构造方法;定义返回学生信息字符串的方法;2.班级类属性:班级名,人数,成员;其中成员是一个学生类的数组;


    题目显示不全,完整题目描述:

    设计一个班级类和一个学生类:1.学生类属性:姓名,学号,成绩(整数即可);定义相关构造方法;定义返回学生信息字符串的方法;2.班级类属性:班级名,人数,成员;其中成员是一个学生类的数组;班级类中定义方法,(1)显示总分和平均分(2)显示最高分和最低分学生信息(3)向班级中添加学生,即向班级类中的成员数组中添加学生对象。3.在班级类中定义main方法,定义班级类对象,输入多个学生信息,然后输出这个班级的:总分,平均分,输出最高分学生信息,输出最低分学生信息。

    完整代码如下:

    package naizi;
    
    public class Class {
    
    private String ClassName;
    private int Number;
    private static int count=0;          //记录总人数
    Student[] mate = new Student[200];   //定义最多200个学生类对象
    
    Class(String ClassName,int Number){  //构造方法
    	this.ClassName=ClassName;
    	this.Number=Number;
    }
    
    public void append(Student p){
    	//因为编程的时候老是在这个地方报错,所以加了个异常
    	try{
    		mate[count++] = new Student(p.getName(),p.getSchoolNumber(),p.getScore());
    	}catch (Exception e) {
    		System.out.println("空指针异常");
    		System.exit(1);
    	}
    }
    
    public void totalAndaverage(){      //记录总分
    
    	int sum=0,i;
    	for(i=0;i<count;i++){
    		sum+=mate[i].getScore();
    	}
    	
    	System.out.println("total score:"+sum);   
    	System.out.println("average score:"+sum/count); 
    	} 
    
    public void maxAndmin(){            //找到并记录最高分最低分所在学生类数组的序列号
    
    	int max=0,min=0,MaxScore,MinScore,i;
    	MaxScore = mate[0].getScore();
    	MinScore = mate[0].getScore();
    	for(i=0;i<count;i++){
    		if(MaxScore<=mate[i].getScore()){
    			MaxScore = mate[i].getScore();
    			max=i;
    		}
    		if(MinScore>=mate[i].getScore()){
    			MinScore = mate[i].getScore();
    			min=i;
    		}
    	}
    	
    	System.out.println("max Info:"+mate[max].showInfo()); 
    	System.out.println("max Info:"+mate[min].showInfo());   
    	 }
    
    public static void main(String args[]){ 
    	Class c=new Class("class1",3); 
    	Student p=new Student("zhangsan","101",47); 
    	c.append(p); 
    	p=new Student("lisi","102",68); 
    	c.append(p); 
    	p=new Student("wanger","103",98); 
    	c.append(p); 
    	c.totalAndaverage(); 
    	c.maxAndmin(); 
    	} 
    
    }
    
    //定义学生类
    class Student{
    private String Name;
    private String SchoolNumber;
    private int Score;
    
    //定义构造方法
    Student(String Name,String SchoolNumber,int Score){
    	this.Name=Name;
    	this.SchoolNumber=SchoolNumber;
    	this.Score=Score;
    }
    
    //定义get和set方法
    public String getName() {
    	return Name;
    }
    public void setName(String name) {
    	Name = name;
    }
    public void setSchoolNumber(String schoolNumber) {
    	SchoolNumber = schoolNumber;
    }
    public void setScore(int score) {
    	Score = score;
    }
    public String getSchoolNumber() {
    	return SchoolNumber;
    }
    public int getScore() {
    	return Score;
    }
    //子类新定义的方法
    public String showInfo(){
    	return "name="+Name+";num="+SchoolNumber+";score="+Score+";";
    }	
    }
    

    测试如图:

  • 相关阅读:
    Creating a Simple Direct2D Application
    关于ssh加密方式的理解
    关于2147217913 从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界 的问题解决方法
    关于 win2003中ASP.Net 的edit configuration 无法使用的答疑
    vc 用ado访问Oracle数据库的代码示例
    手工移除vs6的VSS绑定
    关于:无法执行值从 char 到 char 的隐性转换,因为该值的排序规则因排序规则冲突而未能解决
    vs2003 无法进行调试的经历
    关于如何在VMware上安装Puppy Linux
    VB: DataGrid 的列可见问题
  • 原文地址:https://www.cnblogs.com/zqm-sau/p/9763288.html
Copyright © 2020-2023  润新知