、编写一个程序,输入学生的姓名和成绩(可以输入多个学生),计算并输出所有学生的平均成绩
时间: 2024-10-14 13:17:35 浏览: 113
你可以使用Python编写一个简单的命令行程序来实现这个功能。下面是一个基本的示例:
```python
def calculate_average(scores):
total = sum(scores)
return total / len(scores)
def main():
students_data = []
while True:
name = input("请输入学生的姓名(输入'q'退出): ")
if name.lower() == 'q':
break
score = float(input(f"请输入{name}的成绩: "))
students_data.append(score)
average_score = calculate_average(students_data)
print(f"所有学生的平均成绩是: {average_score}")
if __name__ == "__main__":
main()
```
这个程序会提示你依次输入每个学生的名字和成绩,直到你输入 'q' 来表示退出。最后,它会计算并显示所有学生的平均成绩。
相关问题
编写一个Java程序,实现一个简单的学生成绩管理系统。 作业要求: 1.定义一个Student类,包含学生的姓名和成绩信息。 2.使用数组或集合来存储多个学生对象。 3.实现以下功能: ·添加学生:接受用户输入学生姓名和成绩,创建学生对象并将其添加到学生列表中。 ·显示所有学生:遍历学生列表,输出每个学生的姓名和成绩。 ·计算平均成绩:遍历学生列表,计算并输出学生的平均成绩。 ·查找学生:接受用户输入学生姓名,查找并输出该学生的成绩。 ·提供菜单选项,允许用户选择不同的操作,直到选择退出程序为止。 4.提供菜单选项,允许用户选择不同的操作,直到选择退出程序为止。
这是一个简单的学生成绩管理系统的Java程序实现:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
class Student {
private String name;
private double score;
public Student(String name, double score) {
this.name = name;
this.score = score;
}
public String getName() {
return name;
}
public double getScore() {
return score;
}
}
public class GradeManagementSystem {
private List<Student> students;
public GradeManagementSystem() {
students = new ArrayList<>();
}
public void addStudent() {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入学生姓名:");
String name = scanner.nextLine();
System.out.print("请输入学生成绩:");
double score = scanner.nextDouble();
students.add(new Student(name, score));
System.out.println("学生添加成功!");
}
public void displayAllStudents() {
for (Student student : students) {
System.out.println("姓名:" + student.getName() + ",成绩:" + student.getScore());
}
}
public void calculateAverageScore() {
double totalScore = 0;
for (Student student : students) {
totalScore += student.getScore();
}
double averageScore = totalScore / students.size();
System.out.println("平均成绩为:" + averageScore);
}
public void searchStudent() {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入要查找的学生姓名:");
String name = scanner.nextLine();
for (Student student : students) {
if (student.getName().equals(name)) {
System.out.println("姓名:" + student.getName() + ",成绩:" + student.getScore());
return;
}
}
System.out.println("未找到该学生!");
}
public static void main(String[] args) {
GradeManagementSystem system = new GradeManagementSystem();
Scanner scanner = new Scanner(System.in);
int choice;
do {
System.out.println("欢迎使用学生成绩管理系统");
System.out.println("1. 添加学生");
System.out.println("2. 显示所有学生");
System.out.println("3. 计算平均成绩");
System.out.println("4. 查找学生");
System.out.println("0. 退出程序");
System.out.print("请选择操作:");
choice = scanner.nextInt();
switch (choice) {
case 1:
system.addStudent();
break;
case 2:
system.displayAllStudents();
break;
case 3:
system.calculateAverageScore();
break;
case 4:
system.searchStudent();
break;
case 0:
System.out.println("程序已退出!");
break;
default:
System.out.println("无效的选择!");
break;
}
System.out.println();
} while (choice != 0);
}
}
```
在该程序中,首先定义了一个`Student`类,包含学生的姓名和成绩信息。然后使用`ArrayList`来存储多个学生对象。接着实现了添加学生、显示所有学生、计算平均成绩和查找学生的功能。最后提供了菜单选项,允许用户选择不同的操作,直到选择退出程序为止。
用C语言写出完整代码(11)编写函数,实现一个多功能计算器(功能自定义)。 五 (4)编写程序,输入50个学生的数学成绩并保存在数组中,计算并输出该门成绩的及格人数、平均分、最高分及其下标。. (5)编写程序,输入一个字符串,分别统计并输出其中的数字字符、空格字符和其他字符出现的次数。 (8)编写程序,输入一个字符串,统计并输出其中定冠词the的个数。 (9)设计一个具有进制转换功能的计算器,可将输入的一一个十进制、二进制、八进制或十六进制的整数转换为其他3种进制的整数后输出。 七 (6)一个班的学生的数据包含学号、姓名和4门课程的成绩。输入数据,计算学生的平均成绩,输出所有学生的学号、姓名、各门课程的成绩和平均成绩,输出平均成绩最高的学生数据。要求使用结构体实现。
对于问题五,以下是一个示例代码,实现了一个简单的多功能计算器:
```c
#include <stdio.h>
int add(int x, int y) {
return x + y;
}
int subtract(int x, int y) {
return x - y;
}
int multiply(int x, int y) {
return x * y;
}
int divide(int x, int y) {
if (y == 0) {
printf("Error: divide by zero\n");
return 0;
}
return x / y;
}
int main() {
int x, y;
char op;
printf("Please enter an expression (e.g. 1 + 2): ");
scanf("%d %c %d", &x, &op, &y);
switch (op) {
case '+':
printf("%d\n", add(x, y));
break;
case '-':
printf("%d\n", subtract(x, y));
break;
case '*':
printf("%d\n", multiply(x, y));
break;
case '/':
printf("%d\n", divide(x, y));
break;
default:
printf("Error: invalid operator\n");
}
return 0;
}
```
对于问题四,以下是一个示例代码,实现了输入50个学生的数学成绩并保存在数组中,计算并输出及格人数、平均分、最高分及其下标:
```c
#include <stdio.h>
#define N 50
int main() {
int scores[N];
int i, sum = 0, count = 0, max = 0, max_idx = 0;
for (i = 0; i < N; i++) {
printf("Please enter the score of student %d: ", i + 1);
scanf("%d", &scores[i]);
if (scores[i] >= 60) {
count++;
}
sum += scores[i];
if (scores[i] > max) {
max = scores[i];
max_idx = i;
}
}
printf("Number of students passed: %d\n", count);
printf("Average score: %.2f\n", (double) sum / N);
printf("Highest score: %d, index: %d\n", max, max_idx);
return 0;
}
```
对于问题五,以下是一个示例代码,实现了输入一个字符串,分别统计并输出其中的数字字符、空格字符和其他字符出现的次数:
```c
#include <stdio.h>
int main() {
char str[100];
int i, digit_cnt = 0, space_cnt = 0, other_cnt = 0;
printf("Please enter a string: ");
fgets(str, 100, stdin); // 使用 fgets 读取输入的字符串
for (i = 0; str[i] != '\0'; i++) {
if (str[i] >= '0' && str[i] <= '9') {
digit_cnt++;
} else if (str[i] == ' ') {
space_cnt++;
} else {
other_cnt++;
}
}
printf("Number of digits: %d\n", digit_cnt);
printf("Number of spaces: %d\n", space_cnt);
printf("Number of other characters: %d\n", other_cnt);
return 0;
}
```
对于问题八,以下是一个示例代码,实现了输入一个字符串,统计并输出其中定冠词 the 的个数:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int i, count = 0;
printf("Please enter a string: ");
fgets(str, 100, stdin); // 使用 fgets 读取输入的字符串
for (i = 0; str[i] != '\0'; i++) {
if (str[i] == 't' && str[i+1] == 'h' && str[i+2] == 'e' && (str[i+3] == ' ' || str[i+3] == '\0')) {
count++;
}
}
printf("Number of occurrences of 'the': %d\n", count);
return 0;
}
```
对于问题九,以下是一个示例代码,实现了一个具有进制转换功能的计算器:
```c
#include <stdio.h>
#include <string.h>
#include <math.h>
int to_decimal(char *num, int base) {
int i, len = strlen(num);
int result = 0, power = 1;
for (i = len - 1; i >= 0; i--) {
int digit;
if (num[i] >= '0' && num[i] <= '9') {
digit = num[i] - '0';
} else if (num[i] >= 'A' && num[i] <= 'F') {
digit = num[i] - 'A' + 10;
} else if (num[i] >= 'a' && num[i] <= 'f') {
digit = num[i] - 'a' + 10;
} else {
printf("Error: invalid input\n");
return 0;
}
if (digit >= base) {
printf("Error: invalid input\n");
return 0;
}
result += digit * power;
power *= base;
}
return result;
}
void to_other_bases(int num, int base) {
int digits[32], i, len = 0;
while (num > 0) {
digits[len++] = num % base;
num /= base;
}
for (i = len - 1; i >= 0; i--) {
if (digits[i] < 10) {
printf("%d", digits[i]);
} else {
printf("%c", digits[i] - 10 + 'A');
}
}
printf("\n");
}
int main() {
char num[100];
int from_base, to_base;
printf("Please enter a number: ");
scanf("%s", num);
printf("Please enter the base of the number: ");
scanf("%d", &from_base);
printf("Please enter the base to convert to: ");
scanf("%d", &to_base);
int decimal = to_decimal(num, from_base);
to_other_bases(decimal, to_base);
return 0;
}
```
对于问题六,以下是一个示例代码,使用结构体实现了一个班的学生的数据包含学号、姓名和4门课程的成绩。输入数据,计算学生的平均成绩,输出所有学生的学号、姓名、各门课程的成绩和平均成绩,输出平均成绩最高的学生数据:
```c
#include <stdio.h>
#include <string.h>
#define N 50
struct student {
char id[10];
char name[20];
int scores[4];
double avg_score;
};
int main() {
struct student students[N];
int n, i, j;
printf("Please enter the number of students: ");
scanf("%d", &n);
for (i = 0; i < n; i++) {
printf("Please enter the ID of student %d: ", i + 1);
scanf("%s", students[i].id);
printf("Please enter the name of student %d: ", i + 1);
scanf("%s", students[i].name);
printf("Please enter the scores of student %d (4 scores separated by space): ", i + 1);
for (j = 0; j < 4; j++) {
scanf("%d", &students[i].scores[j]);
students[i].avg_score += students[i].scores[j];
}
students[i].avg_score /= 4;
}
printf("ID\tName\tScore1\tScore2\tScore3\tScore4\tAvgScore\n");
for (i = 0; i < n; i++) {
printf("%s\t%s\t%d\t%d\t%d\t%d\t%.2f\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_score);
}
double max_avg_score = 0;
int max_idx = 0;
for (i = 0; i < n; i++) {
if (students[i].avg_score > max_avg_score) {
max_avg_score = students[i].avg_score;
max_idx = i;
}
}
printf("Student with highest average score: ID=%s, Name=%s, AvgScore=%.2f\n", students[max_idx].id, students[max_idx].name, students[max_idx].avg_score);
return 0;
}
```
阅读全文