21xrx.com
2024-11-10 00:35:06 Sunday
登录
文章检索 我的文章 写文章
C++实现学生成绩排名输入功能
2023-07-01 05:43:10 深夜i     --     --
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;

}

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

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复