Tên sinh viên đạt điểm cao nhất trong python

Thiết kế thuật toán trong python cho chương trình giúp giáo viên tính điểm trung bình cho học sinh của mình. Với mỗi học sinh trong lớp, giáo viên sẽ nhập tên và 3 điểm kiểm tra của học sinh đó [dùng vòng lặp for để nhập 3 điểm kiểm tra]. Chương trình nên sử dụng vòng lặp xác thực đầu vào tương tự như trong Progam 3. 1 để đảm bảo rằng các điểm đã nhập nằm trong khoảng từ 0 đến 100, bao gồm. Chương trình sẽ tính điểm trung bình của học sinh và hiển thị tên và điểm trung bình của học sinh. Tên học sinh là “XX” có nghĩa là kết thúc quá trình xử lý điểm của học sinh. Khi tất cả thông tin của học sinh đã được nhập, chương trình sẽ hiển thị số lượng học sinh và điểm trung bình chung cho tất cả các học sinh sẽ được hiển thị

Viết chương trình Java chấp nhận tên, id và điểm của sinh viên và hiển thị điểm cao nhất và điểm thấp nhất

Tên và id sinh viên đều là chuỗi không quá 10 ký tự. Điểm là một số nguyên từ 0 đến 100

Giải pháp mẫu

Mã Java

import java.util.Scanner;

class Student {
	String name;
	String stu_id;
	int score;
	public Student[] {
		this[" ", " ", 0];
	}
	public Student[String initName, String initId, int initScore] {
		name = initName;
		stu_id = initId;
		score = initScore;
	}
}

public class Main {
	public static void main[String[] args] {
		Scanner in = new Scanner[System.in];
		System.out.println["Input number of students:"];
		int n = Integer.parseInt[in.nextLine[].trim[]];
		System.out.println["Input Student Name, ID, Score:"];
		Student stu = new Student[];
		Student max = new Student[];
		Student min = new Student[" ", " ", 100];
		for [int i = 0; i < n; i ++] {
			stu.name = in.next[];
			stu.stu_id = in.next[];
			stu.score = in.nextInt[];
			if [max.score < stu.score] {
				max.name = stu.name;
				max.stu_id = stu.stu_id;
				max.score = stu.score;
			}
			if [min.score > stu.score] {
				min.name = stu.name;
				min.stu_id = stu.stu_id;
				min.score = stu.score;
			}
		}
		System.out.println["name, ID of the highest score and the lowest score:"];
		System.out.println[max.name + " " + max.stu_id];
		System.out.println[min.name + " " + min.stu_id];
		in.close[];
	}
}

Đầu ra mẫu

Input number of students:
3
Input Student Name, ID, Score:
Devid v1 72
Peter v2 68
Johnson v3 85
name, ID of the highest score and the lowest score:
Johnson v3
Peter v2

Trình bày bằng hình ảnh


Sơ đồ


Trình soạn thảo mã Java

Đóng góp mã và nhận xét của bạn thông qua Disqus

Trước. Viết chương trình Java đọc danh sách các cặp từ và số trang, rồi in từ đó và danh sách các số trang tương ứng.
Tiếp theo. Viết chương trình Java để chuyển đổi số dương có 3 chữ số ở định dạng trên. Ví dụ: 234 phải được xuất ra dưới dạng BBSSS1234 vì nó có 2 "hàng trăm", 3 "mười" và 4 trong số hàng đơn vị.

Mức độ khó của bài tập này là gì?

Dễ dàng trung bình khó

Kiểm tra kỹ năng Lập trình của bạn với bài kiểm tra của w3resource



Java. Lời khuyên trong ngày

có thể so sánh được

Phương thức so sánh [] trả về một giá trị âm, 0 hoặc dương tùy theo đối tượng được đề cập sẽ so sánh trước, bằng hoặc sau đối số được truyền vào. Không cần thiết phải trả về -1 hoặc 1;

Phương thức so sánh [] sẽ đưa ra một ClassCastException nếu đối số được truyền vào không phải là loại thích hợp và nó sẽ ném NullPulumException nếu đối số được truyền vào là null. Do đó, không cần thiết phải kiểm tra các điều kiện này

Một thẻ đã tồn tại với tên chi nhánh được cung cấp. Nhiều lệnh Git chấp nhận cả tên thẻ và tên nhánh, vì vậy việc tạo nhánh này có thể gây ra hành vi không mong muốn. Bạn có chắc chắn muốn tạo nhánh này không?

Có một vài điều bạn có thể làm để cải thiện nó. Bạn tìm thấy điểm tối thiểu nhưng không sử dụng nó, vì vậy tôi không chắc chắn nếu bạn cần nó. Nếu bạn thực sự cần nó, bạn có thể thêm nó vào câu lệnh return của mình. Đây là một cách được đề xuất để làm điều đó nên dễ làm theo

students = [["steve", 9.0], ["ben", 9.5], ["Caroline", 9.6], ["Tim", 9.1]]


def best[students]:
    highest_grade_name = None
    lowest_grade_name = None
    my_max_score = -float["inf"]
    my_min_score = float["inf"]
    for name, score in students:
        if score > my_max_score:
            my_max_score = score
            highest_grade_name = name
        if score < my_min_score:
            my_min_score = score
            lowest_grade_name = name
    return my_max_score, highest_grade_name


best_name, best_score = best[students]
print[f"The best student is {best_name} with a score of {best_score}"]

Chủ Đề