题目要求: 一、定义结构体类型: 每个同学的信息:学号、姓名(英文、无重名)、性别(英文)、三门课程成绩(语文、数学、英语) 二、功能要求: 运行后,显示如下信息,提示输入数字,并运行数字所对应的功能,如:按1,执行“显示所有同学的信息”;按6,执行“删除一个同学”。 1.显示所有同学的信息 2.查找指定姓名的信息 (模糊查找:输入姓名中任何一个或多个文字,比如:输入“zhang”,就显示所有姓名中含“zhang”的信息) 3.显示有不及格同学的信息 4.按指定课程排序输出 5.增加一个新同学 6.修改指定姓名的信息 7.删除指定姓名的信息 0.退出
时间: 2024-03-14 20:43:02 浏览: 44
好的,这是一个比较完整的学生成绩管理系统,需要用到结构体、文件读写、排序等方面的知识。以下是简单的程序框架,您可以参考一下:
```c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX_STUDENT 100 // 最多100个学生
// 学生信息结构体
typedef struct {
int id; // 学号
char name[20]; // 姓名
char gender[10]; // 性别
int score[3]; // 三门课程成绩
} student;
// 学生信息数组
student stu[MAX_STUDENT];
// 学生数量
int count = 0;
// 读取学生信息
void read_students() {
// TODO
}
// 保存学生信息
void save_students() {
// TODO
}
// 显示所有同学的信息
void show_students() {
// TODO
}
// 查找指定姓名的信息
void search_student() {
// TODO
}
// 显示有不及格同学的信息
void show_fail_students() {
// TODO
}
// 按指定课程排序输出
void sort_students() {
// TODO
}
// 增加一个新同学
void add_student() {
// TODO
}
// 修改指定姓名的信息
void edit_student() {
// TODO
}
// 删除指定姓名的信息
void delete_student() {
// TODO
}
// 主函数
int main() {
read_students(); // 读取学生信息
while (1) {
// 显示菜单
printf("请选择功能:\n");
printf("1. 显示所有同学的信息\n");
printf("2. 查找指定姓名的信息\n");
printf("3. 显示有不及格同学的信息\n");
printf("4. 按指定课程排序输出\n");
printf("5. 增加一个新同学\n");
printf("6. 修改指定姓名的信息\n");
printf("7. 删除指定姓名的信息\n");
printf("0. 退出\n");
printf("请输入数字:");
int choice;
scanf("%d", &choice);
switch (choice) {
case 0: // 退出
save_students(); // 保存学生信息
printf("谢谢使用!\n");
return 0;
case 1: // 显示所有同学的信息
show_students();
break;
case 2: // 查找指定姓名的信息
search_student();
break;
case 3: // 显示有不及格同学的信息
show_fail_students();
break;
case 4: // 按指定课程排序输出
sort_students();
break;
case 5: // 增加一个新同学
add_student();
break;
case 6: // 修改指定姓名的信息
edit_student();
break;
case 7: // 删除指定姓名的信息
delete_student();
break;
default:
printf("输入错误,请重新输入!\n");
}
}
return 0;
}
```
以上是一个简单的程序框架,具体的实现需要根据题目要求进行编写。需要注意的是,这个程序需要读取和保存学生信息,可以使用文件进行读写。同时,需要实现各种功能函数,如排序、查找、增加、删除等。
阅读全文