请利用C语言的知识,运用结构、数组、链表等手段编帮我编写一段写程序。具体要求如下: 1. 该程序可以实现学生成绩管理。 2. 建立结构体保存单个数据的信息,建立线性表(数组或链表)存储全部数据的信息。 3. 信息的基本操作包括:添加、删除、查找、修改、排序、插入、打印等功能。 4. 通过菜单组织全部功能,提供良好的界面,方便用户使用。
时间: 2024-04-07 13:30:14 浏览: 72
当然,我可以帮你编写这段程序。以下是一个示例程序,实现了学生成绩管理的功能,使用结构体和链表进行存储和操作。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义学生成绩结构体
typedef struct {
char name[50];
int score;
} Student;
// 定义链表节点结构体
typedef struct node {
Student data;
struct node* next;
} Node;
// 全局变量,指向链表头节点
Node* head = NULL;
// 添加学生信息
void addStudent() {
Node* newNode = (Node*)malloc(sizeof(Node));
printf("请输入学生姓名:");
scanf("%s", newNode->data.name);
printf("请输入学生分数:");
scanf("%d", &newNode->data.score);
newNode->next = head;
head = newNode;
printf("添加成功!\n");
}
// 删除学生信息
void deleteStudent() {
char name[50];
printf("请输入要删除的学生姓名:");
scanf("%s", name);
Node* current = head;
Node* previous = NULL;
while (current != NULL) {
if (strcmp(current->data.name, name) == 0) {
if (previous == NULL) {
head = current->next;
} else {
previous->next = current->next;
}
free(current);
printf("删除成功!\n");
return;
}
previous = current;
current = current->next;
}
printf("未找到该学生!\n");
}
// 查找学生信息
void findStudent() {
char name[50];
printf("请输入要查找的学生姓名:");
scanf("%s", name);
Node* current = head;
while (current != NULL) {
if (strcmp(current->data.name, name) == 0) {
printf("姓名:%s,分数:%d\n", current->data.name, current->data.score);
return;
}
current = current->next;
}
printf("未找到该学生!\n");
}
// 修改学生信息
void modifyStudent() {
char name[50];
printf("请输入要修改的学生姓名:");
scanf("%s", name);
Node* current = head;
while (current != NULL) {
if (strcmp(current->data.name, name) == 0) {
printf("请输入新的学生分数:");
scanf("%d", &
阅读全文