21xrx.com
2025-03-27 18:53:14 Thursday
文章检索 我的文章 写文章
C++实现学生成绩排名输入功能
2023-07-01 05:43:10 深夜i     17     0
C++ 学生成绩 排名 输入功能

C++是一种非常流行的编程语言,它在学术领域和软件工程中得到了广泛的应用。在学生管理系统中,一个常见的需求是对学生的成绩进行排名,以便教师能够更好地评估每个学生的表现。在本文中,我们将介绍如何使用C++编写一个简单的学生成绩排名输入程序。

首先,我们需要定义一个Student结构体,用来存储每个学生的信息,包括姓名、学号和成绩。例如:

struct Student
  string name;
  int id;
  double score;
;

接下来,我们需要定义一个用于输入学生信息的函数,由于我们只需要输入成绩排名,所以我们只需要输入每个学生的姓名和成绩即可。例如:

void input_scores(vector<Student>& students) {
  for (int i = 0; i < students.size(); i++) {
    cout << "Enter the name of student #" << i+1 << ": ";
    cin >> students[i].name;
    cout << "Enter the score of student #" << i+1 << ": ";
    cin >> students[i].score;
  }
}

然后,我们需要定义一个用于排序的函数,将输入的学生成绩按照从高到低的顺序排列。继续使用C++ STL库的sort函数即可。例如:

bool compare(Student a, Student b)
  return a.score > b.score;
void sort_scores(vector<Student>& students) {
  sort(students.begin(), students.end(), compare);
}

最后,我们需要定义一个用于输出排名结果的函数,按照排名从高到低的顺序输出每个学生的信息。例如:

void output_scores(vector<Student>& students) {
  cout << "Rank\tName\tScore\n";
  for (int i = 0; i < students.size(); i++) {
    cout << i+1 << "\t" << students[i].name << "\t" << students[i].score << endl;
  }
}

完整的程序如下所示:

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
struct Student
  string name;
  int id;
  double score;
;
void input_scores(vector<Student>& students) {
  for (int i = 0; i < students.size(); i++) {
    cout << "Enter the name of student #" << i+1 << ": ";
    cin >> students[i].name;
    cout << "Enter the score of student #" << i+1 << ": ";
    cin >> students[i].score;
  }
}
bool compare(Student a, Student b)
  return a.score > b.score;
void sort_scores(vector<Student>& students) {
  sort(students.begin(), students.end(), compare);
}
void output_scores(vector<Student>& students) {
  cout << "Rank\tName\tScore\n";
  for (int i = 0; i < students.size(); i++) {
    cout << i+1 << "\t" << students[i].name << "\t" << students[i].score << endl;
  }
}
int main() {
  int n;
  cout << "Enter the number of students: ";
  cin >> n;
  vector<Student> students(n);
  input_scores(students);
  sort_scores(students);
  output_scores(students);
  return 0;
}

使用以上程序即可实现学生成绩排名输入功能。当然,这只是一个非常简单的例子,实际应用中可能还需要考虑更多的情况,比如如何处理相同分数的情况等等。但是,这个例子可以为初学者提供一个基础的学习框架。

  
  

评论区

请求出错了