用C++实现:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
时间: 2024-10-01 18:08:48 浏览: 17
在C++中,你可以创建一个函数来根据学生的成绩映射等级。这通常涉及到使用条件语句(如if-else或switch-case)。下面是一个简单的示例,说明如何完成这个任务:
```cpp
#include <iostream>
using namespace std;
string gradeCalculator(int score) {
string grade;
if (score >= 90) {
grade = "A"; // 成绩大于等于90分,用'A'表示
} else if (score >= 60 && score < 90) {
grade = "B"; // 成绩在60-89分,用'B'表示
} else {
grade = "C"; // 成绩低于60分,用'C'表示
}
return grade;
}
int main() {
int studentScore;
cout << "请输入学生分数:";
cin >> studentScore;
cout << "对应的成绩等级是:" << gradeCalculator(studentScore) << endl;
return 0;
}
```
在这个例子中,用户会被提示输入学生的分数,然后`gradeCalculator`函数会根据输入的分数返回相应的字母等级。函数通过一系列if-else条件分支来确定等级。
相关问题
//7,利用条件运算符的嵌套编程实现下述功能:学习成》=90 分的同学用A表示,60-89分之间的用 B 表示,60 分以下的用 C 表示,并输出。
下面是使用条件运算符的嵌套编程实现该功能的代码:
```c++
#include <iostream>
using namespace std;
int main() {
int score;
char grade;
cout << "请输入你的成绩:";
cin >> score;
grade = (score >= 90) ? 'A' : ((score >= 60) ? 'B' : 'C');
switch (grade) {
case 'A':
cout << "你的成绩为 A,非常好!" << endl;
break;
case 'B':
cout << "你的成绩为 B,不错哦!" << endl;
break;
case 'C':
cout << "你的成绩为 C,需要努力哦!" << endl;
break;
}
return 0;
}
```
输入你的成绩后,程序会根据你的成绩输出相应的等级和评价。注意,这里使用了条件运算符的嵌套,使代码更加简洁和易读。
用c语言写一个学生成绩管理系统 该系统用于管理学生的课程成绩,要求实现以下功能: 1、计算每位同学的平均分,对所有同学的成绩按平均分排序,给出名次; 2、计算各课程分数段(90-100、80-89、60-79、60以下)的人数。 数据至少有10个学生的原始数据。原始数据如下: 学号 姓名 C程序设计 高等数学 英语 线性代数 3. 用户输入学生学号可直接查找到其各科分数以及名次
以下是一个简单的学生成绩管理系统的示例代码,包括上述功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENTS 10
#define MAX_NAME_LEN 20
typedef struct {
int id;
char name[MAX_NAME_LEN];
float scores[4];
float avg;
int rank;
} Student;
void read_scores(Student students[], int n_students);
void calculate_avg(Student students[], int n_students);
void calculate_rank(Student students[], int n_students);
void print_scores(Student students[], int n_students);
void print_rankings(Student students[], int n_students);
void print_score_segments(Student students[], int n_students);
void get_student_info(Student students[], int n_students, int id);
int main() {
Student students[MAX_STUDENTS];
int n_students = 0;
int choice;
while (1) {
printf("请选择操作:\n");
printf("1. 输入学生成绩\n");
printf("2. 计算平均分和名次\n");
printf("3. 按平均分排序并输出\n");
printf("4. 输出各科分数段的人数\n");
printf("5. 查找学生信息\n");
printf("0. 退出\n");
scanf("%d", &choice);
switch (choice) {
case 1:
read_scores(students, n_students);
n_students++;
break;
case 2:
calculate_avg(students, n_students);
calculate_rank(students, n_students);
printf("计算完成!\n");
break;
case 3:
qsort(students, n_students, sizeof(Student),
[](const void* a, const void* b) -> int {
const Student* s1 = (const Student*) a;
const Student* s2 = (const Student*) b;
return s2->avg - s1->avg;
});
print_scores(students, n_students);
break;
case 4:
print_score_segments(students, n_students);
break;
case 5:
printf("请输入要查找的学生学号:\n");
int id;
scanf("%d", &id);
get_student_info(students, n_students, id);
break;
case 0:
exit(0);
break;
default:
printf("无效的选择!\n");
}
}
return 0;
}
void read_scores(Student students[], int n_students) {
if (n_students >= MAX_STUDENTS) {
printf("学生数已达到最大值!\n");
return;
}
printf("请输入学号、姓名、C程序设计、高等数学、英语、线性代数的成绩:\n");
Student* s = &students[n_students];
scanf("%d %s %f %f %f %f", &s->id, s->name, &s->scores[0], &s->scores[1],
&s->scores[2], &s->scores[3]);
}
void calculate_avg(Student students[], int n_students) {
for (int i = 0; i < n_students; i++) {
float sum = 0;
for (int j = 0; j < 4; j++) {
sum += students[i].scores[j];
}
students[i].avg = sum / 4;
}
}
void calculate_rank(Student students[], int n_students) {
qsort(students, n_students, sizeof(Student),
[](const void* a, const void* b) -> int {
const Student* s1 = (const Student*) a;
const Student* s2 = (const Student*) b;
return s2->avg - s1->avg;
});
for (int i = 0; i < n_students; i++) {
if (i == 0 || students[i].avg < students[i - 1].avg) {
students[i].rank = i + 1;
} else {
students[i].rank = students[i - 1].rank;
}
}
}
void print_scores(Student students[], int n_students) {
printf("学号\t姓名\tC程序设计\t高等数学\t英语\t线性代数\t平均分\t名次\n");
for (int i = 0; i < n_students; i++) {
printf("%d\t%s\t%.1f\t\t%.1f\t\t%.1f\t%.1f\t\t%.1f\t%d\n",
students[i].id, students[i].name, students[i].scores[0],
students[i].scores[1], students[i].scores[2], students[i].scores[3],
students[i].avg, students[i].rank);
}
}
void print_rankings(Student students[], int n_students) {
printf("名次\t学号\t姓名\t平均分\n");
for (int i = 0; i < n_students; i++) {
printf("%d\t%d\t%s\t%.1f\n", students[i].rank, students[i].id,
students[i].name, students[i].avg);
}
}
void print_score_segments(Student students[], int n_students) {
int count[4] = {0, 0, 0, 0};
for (int i = 0; i < n_students; i++) {
float avg = students[i].avg;
if (avg >= 90) {
count[0]++;
} else if (avg >= 80) {
count[1]++;
} else if (avg >= 60) {
count[2]++;
} else {
count[3]++;
}
}
printf("90-100分段: %d\n", count[0]);
printf("80-89分段: %d\n", count[1]);
printf("60-79分段: %d\n", count[2]);
printf("60分以下: %d\n", count[3]);
}
void get_student_info(Student students[], int n_students, int id) {
for (int i = 0; i < n_students; i++) {
if (students[i].id == id) {
printf("学号\t姓名\tC程序设计\t高等数学\t英语\t线性代数\t平均分\t名次\n");
printf("%d\t%s\t%.1f\t\t%.1f\t\t%.1f\t%.1f\t\t%.1f\t%d\n",
students[i].id, students[i].name, students[i].scores[0],
students[i].scores[1], students[i].scores[2], students[i].scores[3],
students[i].avg, students[i].rank);
return;
}
}
printf("未找到该学生!\n");
}
```
在这个示例代码中,我们使用了一个 `Student` 结构体来表示学生信息,包括学号、姓名、四门课程的分数、平均分和名次。主函数中使用一个无限循环,让用户选择不同的操作。其中,`read_scores` 函数用于输入学生成绩,`calculate_avg` 函数用于计算平均分,`calculate_rank` 函数用于计算名次,`print_scores` 函数用于按平均分排序并输出学生信息,`print_rankings` 函数用于输出名次排序,`print_score_segments` 函数用于输出各科分数段的人数,`get_student_info` 函数用于根据学号查找学生信息。注意,为了方便排序,我们使用了 C++11 中的 Lambda 表达式来定义排序函数。
你可以根据自己的需求修改代码,并添加输入校验等功能,使其更加完善。