对象数组题目

对象数组题目

定义类Student,包含三个属性:学号number(int),年级state(int),成绩score(int)。
 * 创建20个学生对象,学号为1到20,年级和成绩都由随机数确定。
 * 问题一:打印出3年级(state值为3)的学生信息。
 * 问题二:使用冒泡排序按学生成绩排序,并遍历所有学生信息
 * 

* 提示:
 * 1) 生成随机数:Math.random(),返回值类型double;  
 * 2) 四舍五入取整:Math.round(double d),返回值类型long。

StudentTest.java

public class StudentTest {
	public static void main(String[] args) {
		
		//声明一个student类型的数组
		Student[] stus = new Student[20];
		for(int i=0;i<stus.length;i++) {
			//给数组元素赋值
			stus[i] = new Student();
			//给Student对象的属性赋值
			stus[i].number = i+1;
			//年级:[1,6]
			stus[i].state = (int)(Math.random() * 6 + 1);
			//成绩[0,100]
			stus[i].score = (int)(Math.random() * 101);
			
		}
		
		StudentTest test = new StudentTest();
		
		test.print(stus);
		
		System.out.println("************************");
		//问题一:打印出3年级(state值为3)的学生信息。
		test.searchState(stus, 3);
		
		System.out.println("************************");
		//问题二:使用冒泡排序按学生成绩排序,并遍历所有学生信息
		test.sort(stus);
		test.print(stus);
		
	}
	
	//遍历Student[]数组的操作
	public void print(Student[] stus) {
		for(int i=0;i<stus.length;i++) {
			System.out.println(stus[i].info());
		}
	}
	
	
	//查找Student数组中指定年级的学生信息
	public void searchState(Student[] stus,int state) {
		for(int i=0;i<stus.length;i++) {
			if(stus[i].state ==3)
				System.out.println(stus[i].info());
		}
	}
	
	//给Student数组按照成绩排序
	public void sort(Student[] stus) {
		for(int i=0;i<stus.length;i++) {
			for(int j=0;j<stus.length-1-i;j++) {
				if(stus[j].score > stus[j+1].score) {
					Student temp = stus[j];
					stus[j] = stus[j+1];
					stus[j+1] =temp;
				}
			}
		}
	}
}


class Student{
	int number;//学号
	int state;//年级
	int score;//成绩
	
	public String info() {
		return "学号:" + number + ",年级:" + state + ",成绩:" + score;
	}
	
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
整理知识点(word) 1、定义一个int[] a ={4,2,0,-1,-8,23,9}求数组元素的最大值、最小值、平均数、总和、数组的复制、反转 2、数组元素的排序从键盘输入5个人的年龄,全部输入完后打印。 3、从键盘输入10个整数存入在一个数组中,计算所有元素之和及平均值,并找出最大值和最小值。 4、说明下面语句的错误原因并改正之? int numbers[]; int[] numbers; numbers = { 42, 84, 168 }; x数组常量只能在初始化时才能使用。 int[3] numbers = { 42, 84, 168 }; x数组常量只能在初始化时才能使用。 int[] numbers = new int[]; x变量必须提供尺寸表达式或数组的初始化 int[] numbers = new int[3] {};x在提供数组初始化器时不能定义维度表达式 int[] numbers = new int[3]; int[] numbers = new int[3]; numbers[numbers.Length] = 42; x int[][] numbers = {{ 42, 84 }, { 84, 42 }}; 5、已知数组为小学课程:(语文、数学、自然、社会 ),使用foreach循环遍历输出。 6、将一个字符串数组输出为|分割的形式,比如“梅西|卡卡|C罗|罗纳尔多|贝克汉姆”。   7、2 定义类Student,包含三个属性:学号number(int),年级state(int),成绩score(int)。 创建20个学生对象,学号为1到20,年级和成绩都由随机数确定,打印出3年级(state值为3)的学生信息。 提示:生成随机数:Math.random(),返回值类型double; 四舍五入取整:Math.round(double d),返回值类型long
PTA(Programming Test Assessment)是一个在线编程测试和评估平台,可以用于程序设计教学和招聘面试。在PTA上,可以练习各种编程题目,包括面向对象编程的题目。 要创建学生类和对象数组,可以按照以下步骤进行: 1. 定义学生类:首先需要定义一个学生类,包含学生的姓名、学号、年级、成绩等属性,以及相应的构造函数和成员函数。 ```cpp class Student { public: string name; int id; int grade; int score; Student(string name, int id, int grade, int score) { this->name = name; this->id = id; this->grade = grade; this->score = score; } void display() { cout << name << " " << id << " " << grade << " " << score << endl; } }; ``` 2. 创建对象数组:在主函数中创建对象数组,可以使用循环语句逐个输入学生信息,或者从文件中读取信息。 ```cpp int main() { const int MAX_STUDENT = 100; Student students[MAX_STUDENT]; int n; cin >> n; for (int i = 0; i < n; i++) { string name; int id, grade, score; cin >> name >> id >> grade >> score; students[i] = Student(name, id, grade, score); } for (int i = 0; i < n; i++) { students[i].display(); } return 0; } ``` 在上面的代码中,我们定义了一个常量MAX_STUDENT表示最大的学生数,创建了一个名为students的对象数组,并使用循环语句逐个输入学生信息。最后,我们调用每个学生对象的display()函数显示学生信息。 注意,当对象数组被创建时,每个对象都会自动调用构造函数,以初始化对象的属性。在本例中,我们将学生信息作为参数传递给构造函数,以便在创建对象时进行初始化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值