c语言结构体学生成绩管理系统
时间: 2023-12-18 15:28:51 浏览: 53
以下是一个简单的C语言结构体学生成绩管理系统的实现方法:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct Student {
char number[10];
char name[20];
char sex[5];
int Chinese;
int Math;
int English;
struct Student *next;
};
struct Student *head = NULL;
void Add() {
system("cls");
struct Student *p = (struct Student*)malloc(sizeof(struct Student));
printf("请输入学生学号:\n");
scanf("%s", p->number);
printf("请输入学生姓名:\n");
scanf("%s", p->name);
printf("请输入学生性别:\n");
scanf("%s", p->sex);
printf("请输入学生语文成绩:\n");
scanf("%d", &p->Chinese);
printf("请输入学生数学成绩:\n");
scanf("%d", &p->Math);
printf("请输入学生英语成绩:\n");
scanf("%d", &p->English);
p->next = head;
head = p;
printf("添加成功!\n");
system("pause");
}
void ViewAll() {
system("cls");
struct Student *VA;
if (head != NULL) {
printf("所有学生成绩如下:\n");
for (VA = head; VA != NULL;) {
printf("学号:%s\t姓名:%s\t性别:%s\n", VA->number, VA->name, VA->sex);
printf("语文:%d\t数学:%d\t英语:%d\n", VA->Chinese, VA->Math, VA->English);
VA = VA->next;
}
}
else {
printf("该系统中还未录入信息\n");
}
system("pause");
}
void View() {
system("cls");
struct Student *VS;
printf("输入要查询信息的学生学号:\n");
char num[10];
int flag = 1;
scanf("%s", &num);
for (VS = head; VS != NULL;) {
if (strcmp(VS->number, num) == 0) {
printf("成功找到!\n");
printf("学号:%s\t姓名:%s\t性别:%s\n", VS->number, VS->name, VS->sex);
printf("语文:%d\t数学:%d\t英语:%d\n", VS->Chinese, VS->Math, VS->English);
flag = 0;
break;
}
VS = VS->next;
}
if (flag) {
printf("不好意思,未找到!\n");
}
system("pause");
}
void Delete() {
system("cls");
struct Student *VD, *VP;
printf("输入要删除信息的学生学号:\n");
char num[10];
int flag = 1;
scanf("%s", &num);
for (VD = head, VP = head; VD != NULL;) {
if (strcmp(VD->number, num) == 0) {
if (VD == head) {
head = VD->next;
}
else {
VP->next = VD->next;
}
free(VD);
printf("删除成功!\n");
flag = 0;
break;
}
VP = VD;
VD = VD->next;
}
if (flag) {
printf("不好意思,未找到!\n");
}
system("pause");
}
void Modify() {
system("cls");
struct Student *VM;
printf("输入要修改信息的学生学号:\n");
char num[10];
int flag = 1;
scanf("%s", &num);
for (VM = head; VM != NULL;) {
if (strcmp(VM->number, num) == 0) {
printf("请输入学生姓名:\n");
scanf("%s", VM->name);
printf("请输入学生性别:\n");
scanf("%s", VM->sex);
printf("请输入学生语文成绩:\n");
scanf("%d", &VM->Chinese);
printf("请输入学生数学成绩:\n");
scanf("%d", &VM->Math);
printf("请输入学生英语成绩:\n");
scanf("%d", &VM->English);
printf("修改成功!\n");
flag = 0;
break;
}
VM = VM->next;
}
if (flag) {
printf("不好意思,未找到!\n");
}
system("pause");
}
void Exit() {
system("cls");
printf("感谢使用本系统!\n");
exit(0);
}
int main() {
while (1) {
system("cls");
printf("欢迎使用学生成绩管理系统!\n");
printf("1.添加学生信息\n");
printf("2.查看所有学生信息\n");
printf("3.查看指定学生信息\n");
printf("4.删除指定学生信息\n");
printf("5.修改指定学生信息\n");
printf("6.退出系统\n");
printf("请输入您的选择:\n");
int choice;
scanf("%d", &choice);
switch (choice) {
case 1:
Add();
break;
case 2:
ViewAll();
break;
case 3:
View();
break;
case 4:
Delete();
break;
case 5:
Modify();
break;
case 6:
Exit();
break;
default:
printf("输入有误,请重新输入!\n");
system("pause");
break;
}
}
return 0;
}
```