键盘录入姓名、成绩并把成绩排序 输出

具体思路:

  1. 创建学生实体类student,将输入的成绩和名字分别存入grade[i] name[i] 用set和get方法存储和获取 ,这是在数组中名字和成绩的下标是对应的
  2. 冒泡排序的方法名为Sort1,排序方法为:按照成绩的升序排列,对应的名字下标也改变
  3. 调用Sort1方法即可排序
    package comtedu.day05;

import java.util.Scanner;

public class Test01 {
public static void main(String[] args) {
String[] name = new String[4];
int[] grade = new int[4];

	for (int i = 0; i < 4; i++) {

		Scanner sc = new Scanner(System.in);
		Student st = new Student();
        System.out.println("请输入姓名:");
		st.setName(sc.next());
		System.out.println("请输入成绩:");
		st.setGrade( sc.nextInt());
		name[i] = st.getName();
		grade[i] = st.getGrade();

	}
	Test02 se = new Test02();
	se.Sort1(grade, name);
	}

}

package comtedu.day05;

public class Test02 {

	public static  void Sort1(int[] score, String[] name)
	{
		for (int i =0; i < score.length-1; i++) 
		{
			for (int j = 0; j < score.length-1-i; j++) 
			{
				if(score[j] > score[j+1])
				{
					int temp = score[j];
					String nametemp = name[j];
					score[j] = score[j+1];
					name[j] = name[j+1];
					score[j+1] = temp;
					name[j+1] = nametemp;
				}
			}
		}
		for (int k = 0; k < name.length; k++) {
			System.out.println("名字是:"+name[k]+"---"+"成绩是:"+score[k]);
		}
	}

}

package comtedu.day05;

public class Student {
private String name;
private int grade;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}

}

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,以下是程序的中文描述: 1. 首先,从键盘输入学生的姓名考核成绩,可以使用input()函数实现。 2. 将输入姓名成绩存储在一个字典中,可以使用字典的键值对来实现。 3. 将所有学生的字典存储在一个列表中,可以使用列表来实现。 4. 对列表中的字典按照成绩进行排序,可以使用sorted()函数来实现。 5. 输出排行榜,可以使用for循环遍历排序后的列表,依次输出每个学生的姓名成绩。 6. 最后,程序结束。 希望这个中文描述能够帮助您编写程序。 ### 回答2: 这道题目可以用Python来实现。首先,我们需要声明一个空字典,用来存储每个学生的姓名考核成绩。程序从用户输入开始,循环读入每个学生的信息,并将它们添加到字典中。读取完成后,我们可以对字典中的值进行排序,然后输出排行榜。 以下是代码实现: ``` python # 创建一个空字典来存储学生信息 students = {} # 读入学生信息并将他们添加到字典中 while True: name = input("请输入学生姓名(或者输入q退出程序):") if name == 'q': break score = float(input("请输入学生考核成绩:")) students[name] = score # 对字典中的值进行排序 sorted_students = sorted(students.items(), key=lambda x: x[1], reverse=True) # 输出排行榜 print("\n排行榜:") for i, student in enumerate(sorted_students): print("{0}. {1},成绩:{2}".format(i+1, student[0], student[1])) ``` 这个程序首先先创建一个空字典`students`,用于存储每个学生的信息。然后进入一个无限循环,每次循环读取一个学生的姓名考核成绩,并将它们添加到字典中。如果用户输入了`q`,则跳出循环。 读取完成后,我们使用`sorted`函数对字典中的值进行排序排序的关键字是每个元素的第二项(即考核成绩),降序排列。排序返回一个元素为元组的列表,其中每个元素的第一项是学生姓名,第二项是考核成绩。 最后,我们循环输出排行榜,使用`enumerate`函数获取每个列表元素的序号,并格式化输出学生姓名考核成绩。 ### 回答3: 首先,我们需要考虑排序算法的选择。常用的排序算法有冒泡排序、选择排序、插入排序、快速排序等。这里为了简单起见,我们选择插入排序算法。 程序首先需要定义一个学生类,包含学生姓名考核成绩两个属性。代码如下: class Student: def __init__(self, name, score): self.name = name self.score = score 接下来,我们需要从键盘依次输入每个学生的姓名考核成绩,并将其存储在一个列表中。代码如下: n = int(input("请输入学生人数:")) students = [] for i in range(n): name = input("请输入第{}个学生的姓名:".format(i + 1)) score = int(input("请输入第{}个学生的考核成绩:".format(i + 1))) student = Student(name, score) students.append(student) 接下来,我们使用插入排序算法对学生列表按照成绩进行排序。将每个学生插入已排序的子列表中,保持子列表有序。代码如下: for i in range(1, n): j = i - 1 while j >= 0 and students[i].score > students[j].score: j -= 1 students.insert(j + 1, students[i]) students.pop(i + 1) 最后,我们将成绩排行榜输出到控制台。代码如下: print("成绩排行榜") for i, student in enumerate(students): print("{}\t姓名:{}\t成绩:{}".format(i + 1, student.name, student.score)) 完整代码如下:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值