c语言成绩管理系统不用结构体,不用指针链表和结构体数组怎么编学生成绩管理系统啊...
时间: 2023-09-23 13:05:34 浏览: 113
### 回答1:
不使用结构体、指针链表和结构体数组,可以使用简单的数组来存储学生信息和成绩,下面是一个示例代码:
```
#include <stdio.h>
#define MAX_STUDENTS 100
int main() {
int num_students, i;
char names[MAX_STUDENTS][50];
int scores[MAX_STUDENTS];
printf("Enter the number of students: ");
scanf("%d", &num_students);
for (i = 0; i < num_students; i++) {
printf("Enter the name of student %d: ", i+1);
scanf("%s", names[i]);
printf("Enter the score of student %d: ", i+1);
scanf("%d", &scores[i]);
}
printf("\nStudent Scores:\n");
for (i = 0; i < num_students; i++) {
printf("%s: %d\n", names[i], scores[i]);
}
return 0;
}
```
该示例代码中,使用二维字符数组 `names` 存储学生姓名,一维整数数组 `scores` 存储学生成绩。在输入学生信息时,依次输入学生姓名和成绩,分别存储到相应的数组中。最后输出学生信息时,遍历数组,依次输出姓名和成绩即可。
### 回答2:
在不使用结构体、指针链表和结构体数组的情况下,可以使用简单的数组和函数来实现C语言成绩管理系统。
一种可能的实现方式是,可以定义两个一维数组,一个用于存储学生的姓名,一个用于存储学生成绩。数组的大小可以根据实际情况进行调整。
然后,可以编写一些函数来实现不同的功能,比如添加学生信息、删除学生信息、查询学生成绩等。
例如,假设最多可以存储100个学生的信息,可以定义以下数组:
```
char names[100][50]; // 用于存储学生姓名
float scores[100]; // 用于存储学生成绩
int count = 0; // 记录当前已存储的学生数量
```
下面是一些可能用到的功能函数的伪代码:
1. 添加学生信息:
```C
void addStudent(char name[], float score) {
if (count < 100) {
// 将姓名和成绩分别存储到对应的数组中
strcpy(names[count], name);
scores[count] = score;
count++;
printf("添加成功!\n");
} else {
printf("无法添加,学生数量已达到上限!\n");
}
}
```
2. 删除学生信息:
```C
void deleteStudent(char name[]) {
int index = -1;
for (int i = 0; i < count; i++) {
if (strcmp(names[i], name) == 0) {
index = i;
break;
}
}
if (index >= 0) {
for (int i = index; i < count - 1; i++) {
strcpy(names[i], names[i + 1]);
scores[i] = scores[i + 1];
}
count--;
printf("删除成功!\n");
} else {
printf("未找到该学生信息!\n");
}
}
```
3. 查询学生成绩:
```C
void queryScore(char name[]) {
int index = -1;
for (int i = 0; i < count; i++) {
if (strcmp(names[i], name) == 0) {
index = i;
break;
}
}
if (index >= 0) {
printf("%s的成绩是%.2f\n", names[index], scores[index]);
} else {
printf("未找到该学生信息!\n");
}
}
```
这只是一个简单的示例,实际上还可以根据需求添加其他功能函数。需要注意的是,由于没有使用结构体和指针链表,需要手动维护数组的顺序和数量。
### 回答3:
如果不使用结构体、指针链表和结构体数组,我们可以考虑使用基本的变量和数组来实现C语言成绩管理系统。
首先,我们可以使用一个二维数组来保存学生的成绩信息。假设有n个学生和m门课程,那么我们可以定义一个n行m列的二维数组来存储成绩。例如,用scores[n][m]来表示。
然后,我们可以使用一个一维数组来保存每个学生的姓名。例如,用names[n]来表示。
接下来,我们可以通过循环来输入学生的成绩和姓名,将它们分别保存到相应的数组中。我们可以使用for循环来遍历每个学生和每门课程,然后使用scanf函数来输入成绩。同样地,我们可以使用for循环来输入学生的姓名。
在输入完成绩和姓名后,我们可以进行一些简单的操作,比如计算每个学生的总分和平均分,以及每门课程的平均分。
最后,我们可以使用循环来输出学生的成绩和相关统计信息,比如总分和平均分。同样地,我们可以使用循环来输出每门课程的平均分。
需要注意的是,不使用结构体、指针链表和结构体数组可能会增加代码的复杂度和可读性。这种方法适用于简单的学生成绩管理系统,但对于更复杂的情况,使用结构体、指针链表和结构体数组会更加方便和灵活。
阅读全文