试设计一学生成绩管理系统,使之能提供以下功能: 1.系统以菜单方式工作 2. 按学期、按班级完成对学生成绩的录入(学生成绩信息用文件保存),可不定时地增加学生信息。用c语言编写
时间: 2024-02-15 14:01:45 浏览: 84
好的,我可以为您设计一个学生成绩管理系统,以下是系统的功能及实现方式:
1. 系统以菜单方式工作
首先,我们需要设计一个菜单界面,用户可以通过菜单来选择需要执行的操作。菜单可以使用`switch-case`语句来实现,如下所示:
```c
int main() {
int choice;
do {
printf("学生成绩管理系统\n");
printf("1. 录入学生成绩\n");
printf("2. 修改学生成绩\n");
printf("3. 删除学生成绩\n");
printf("4. 查询学生成绩\n");
printf("5. 添加学生信息\n");
printf("6. 退出\n");
printf("请输入您的选择:");
scanf("%d", &choice);
switch (choice) {
case 1:
// 录入学生成绩
break;
case 2:
// 修改学生成绩
break;
case 3:
// 删除学生成绩
break;
case 4:
// 查询学生成绩
break;
case 5:
// 添加学生信息
break;
case 6:
// 退出
break;
default:
printf("无效的选择,请重新输入!\n");
break;
}
} while (choice != 6);
return 0;
}
```
2. 按学期、按班级完成对学生成绩的录入
我们可以使用文件来保存学生成绩信息,每个文件对应一个学期或一个班级。可以将每个学生成绩信息保存为一个结构体,如下所示:
```c
typedef struct {
char name[20]; // 学生姓名
int id; // 学生学号
int score; // 学生成绩
} Student;
```
然后,我们可以使用`fopen()`函数来打开文件,并使用`fprintf()`函数将学生成绩信息写入文件中,如下所示:
```c
void add_score() {
char filename[20];
int term, class;
printf("请输入学期和班级:");
scanf("%d %d", &term, &class);
sprintf(filename, "score_term%d_class%d.txt", term, class);
FILE *fp = fopen(filename, "a");
if (fp == NULL) {
printf("打开文件失败!\n");
return;
}
Student student;
printf("请输入学生姓名、学号和成绩:");
scanf("%s %d %d", student.name, &student.id, &student.score);
fprintf(fp, "%s %d %d\n", student.name, student.id, student.score);
fclose(fp);
printf("学生成绩录入成功!\n");
}
```
3. 可不定时地增加学生信息
可以使用链表来保存学生信息,每个节点对应一个学生。可以将每个学生信息保存为一个结构体,如下所示:
```c
typedef struct Node {
char name[20]; // 学生姓名
int id; // 学生学号
struct Node *next;
} StudentNode;
```
然后,我们可以使用`malloc()`函数动态分配节点,并使用`scanf()`函数从用户输入中读取学生信息,如下所示:
```c
void add_student() {
StudentNode *head = NULL;
StudentNode *tail = NULL;
int choice;
do {
StudentNode *node = (StudentNode *) malloc(sizeof(StudentNode));
printf("请输入学生姓名和学号:");
scanf("%s %d", node->name, &node->id);
node->next = NULL;
if (head == NULL) {
head = node;
tail = node;
} else {
tail->next = node;
tail = node;
}
printf("学生信息添加成功!\n");
printf("是否继续添加?(1为继续,0为退出)");
scanf("%d", &choice);
} while (choice == 1);
}
```
以上就是一个简单的学生成绩管理系统的设计及实现方式,您可以根据需要进行修改和完善。
阅读全文