用c语言写一个学生信息管理系统 1. 制作管理系统 2. 能实现信息录入、删除学生信息、修改信息、查询信息、排序。 3. 信息包括,学号、姓名、性别、班级、本学期三门以上学科成绩,平均成绩,总成绩、最高成绩、最低成绩。 4. 排序能够按照学号,姓名,或各科成绩进行排序,等级分组(abcpf等)。 5. 显示所有记录。 6. 文件系统读写。(可选)
时间: 2023-12-22 22:29:05 浏览: 61
好的,这是一个比较大的项目,需要比较多的代码量和时间,但是我可以给您提供一些实现思路:
首先,您需要定义一个学生的结构体,包含学号、姓名、性别、班级等基本信息,以及一个成绩的结构体,包含三门以上学科成绩、平均成绩、总成绩、最高成绩、最低成绩等信息。
接着,您需要定义一些函数,比如录入学生信息、删除学生信息、修改学生信息、查询学生信息等等。在每个函数中,您需要进行相应的操作,比如录入学生信息时,需要先输入学生的基本信息,然后再输入成绩信息,最后将学生信息保存到数组或链表中。
排序功能可以使用冒泡排序、快速排序等算法实现,按照学号、姓名、或各科成绩进行排序,等级分组(abcpf等)可以使用if语句实现。
最后,您需要定义一个函数来显示所有记录,并且可以使用文件系统读写来保存数据。
以上是一个大致的实现思路,具体实现过程可能会有所不同,需要根据您的具体需求来进行调整。如果您有具体的问题或疑问,可以随时向我咨询。
相关问题
学生信息管理系统C语言1.录入2.查询3.修改4.删除5.排序6.退出
好的,下面是一个简单的学生信息管理系统的 C 语言代码,包括录入、查询、修改、删除、排序和退出功能。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENT_NUM 100 // 最大学生数量
#define MAX_NAME_LENGTH 20 // 最大姓名长度
// 学生结构体
typedef struct {
char name[MAX_NAME_LENGTH]; // 姓名
int age; // 年龄
int id; // 学号
float score; // 成绩
} Student;
int studentNum = 0; // 学生数量
Student students[MAX_STUDENT_NUM]; // 学生数组
// 声明函数
void printMenu();
void inputStudentInfo();
void queryStudentInfo();
void modifyStudentInfo();
void deleteStudentInfo();
void sortStudentInfo();
// 主函数
int main() {
int choice;
do {
printMenu(); // 打印菜单
scanf("%d", &choice);
switch (choice) {
case 1:
inputStudentInfo(); // 录入学生信息
break;
case 2:
queryStudentInfo(); // 查询学生信息
break;
case 3:
modifyStudentInfo(); // 修改学生信息
break;
case 4:
deleteStudentInfo(); // 删除学生信息
break;
case 5:
sortStudentInfo(); // 排序学生信息
break;
case 6:
printf("退出程序!\n");
break;
default:
printf("请输入正确的选项!\n");
break;
}
} while (choice != 6);
return 0;
}
// 打印菜单
void printMenu() {
printf("1. 录入学生信息\n");
printf("2. 查询学生信息\n");
printf("3. 修改学生信息\n");
printf("4. 删除学生信息\n");
printf("5. 排序学生信息\n");
printf("6. 退出\n");
printf("请选择功能(输入数字):");
}
// 录入学生信息
void inputStudentInfo() {
if (studentNum >= MAX_STUDENT_NUM) {
printf("学生数量已达到上限!\n");
return;
}
printf("请输入学生姓名:");
scanf("%s", students[studentNum].name);
printf("请输入学生年龄:");
scanf("%d", &students[studentNum].age);
printf("请输入学生学号:");
scanf("%d", &students[studentNum].id);
printf("请输入学生成绩:");
scanf("%f", &students[studentNum].score);
studentNum++;
printf("录入成功!\n");
}
// 查询学生信息
void queryStudentInfo() {
int id;
printf("请输入要查询的学生学号:");
scanf("%d", &id);
int index = -1;
for (int i = 0; i < studentNum; i++) {
if (students[i].id == id) {
index = i;
break;
}
}
if (index == -1) {
printf("未找到学号为 %d 的学生!\n", id);
} else {
printf("姓名:%s\n", students[index].name);
printf("年龄:%d\n", students[index].age);
printf("学号:%d\n", students[index].id);
printf("成绩:%.2f\n", students[index].score);
}
}
// 修改学生信息
void modifyStudentInfo() {
int id;
printf("请输入要修改的学生学号:");
scanf("%d", &id);
int index = -1;
for (int i = 0; i < studentNum; i++) {
if (students[i].id == id) {
index = i;
break;
}
}
if (index == -1) {
printf("未找到学号为 %d 的学生!\n", id);
} else {
printf("请输入新的学生姓名:");
scanf("%s", students[index].name);
printf("请输入新的学生年龄:");
scanf("%d", &students[index].age);
printf("请输入新的学生学号:");
scanf("%d", &students[index].id);
printf("请输入新的学生成绩:");
scanf("%f", &students[index].score);
printf("修改成功!\n");
}
}
// 删除学生信息
void deleteStudentInfo() {
int id;
printf("请输入要删除的学生学号:");
scanf("%d", &id);
int index = -1;
for (int i = 0; i < studentNum; i++) {
if (students[i].id == id) {
index = i;
break;
}
}
if (index == -1) {
printf("未找到学号为 %d 的学生!\n", id);
} else {
for (int i = index; i < studentNum - 1; i++) {
students[i] = students[i+1];
}
studentNum--;
printf("删除成功!\n");
}
}
// 排序学生信息
void sortStudentInfo() {
// 冒泡排序
for (int i = 0; i < studentNum - 1; i++) {
for (int j = 0; j < studentNum - 1 - i; j++) {
if (students[j].score < students[j+1].score) {
Student temp = students[j];
students[j] = students[j+1];
students[j+1] = temp;
}
}
}
printf("排序成功!\n");
}
```
注意:以上代码只是一个简单的示例,实际上一个完整的学生信息管理系统需要考虑更多的功能和细节。
用c语言编译一个学生管理系统学生信息包括(名字学号成绩)实现录入,查询,排序,删除,修改
好的,以下是一个简单的学生管理系统的代码,包含了录入、查询、排序、删除和修改功能。请注意,这里使用了结构体来存储学生信息。代码中的注释可以帮助你更好地理解每个函数的功能和实现方法。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LENGTH 20 // 定义字符串最大长度
// 学生结构体
typedef struct {
char name[MAX_LENGTH];
char id[MAX_LENGTH];
int score;
} Student;
// 全局变量,存储所有学生信息
Student students[100];
int count = 0; // 学生数量
// 录入学生信息
void add_student() {
char name[MAX_LENGTH];
char id[MAX_LENGTH];
int score;
printf("请输入学生姓名:");
scanf("%s", name);
printf("请输入学生学号:");
scanf("%s", id);
printf("请输入学生成绩:");
scanf("%d", &score);
// 创建新的学生结构体并存储到全局变量中
Student new_student;
strcpy(new_student.name, name);
strcpy(new_student.id, id);
new_student.score = score;
students[count] = new_student;
count++;
printf("学生信息已添加!\n");
}
// 查询学生信息
void find_student() {
char id[MAX_LENGTH];
printf("请输入要查询的学生学号:");
scanf("%s", id);
// 遍历全局变量中的学生信息,查找匹配的学生
int i;
for (i = 0; i < count; i++) {
if (strcmp(students[i].id, id) == 0) {
printf("学生姓名:%s\n", students[i].name);
printf("学生学号:%s\n", students[i].id);
printf("学生成绩:%d\n", students[i].score);
return;
}
}
printf("未找到该学生信息!\n");
}
// 按成绩从高到低排序
void sort_by_score() {
int i, j;
Student temp;
for (i = 0; i < count; i++) {
for (j = i + 1; j < count; j++) {
if (students[i].score < students[j].score) {
temp = students[i];
students[i] = students[j];
students[j] = temp;
}
}
}
printf("学生信息已按成绩从高到低排序!\n");
}
// 删除学生信息
void delete_student() {
char id[MAX_LENGTH];
printf("请输入要删除的学生学号:");
scanf("%s", id);
// 遍历全局变量中的学生信息,查找匹配的学生并删除
int i;
for (i = 0; i < count; i++) {
if (strcmp(students[i].id, id) == 0) {
// 将该学生后面的所有学生依次向前移动一个位置
int j;
for (j = i; j < count - 1; j++) {
students[j] = students[j + 1];
}
count--;
printf("学生信息已删除!\n");
return;
}
}
printf("未找到该学生信息!\n");
}
// 修改学生信息
void modify_student() {
char id[MAX_LENGTH];
printf("请输入要修改的学生学号:");
scanf("%s", id);
// 遍历全局变量中的学生信息,查找匹配的学生并修改
int i;
for (i = 0; i < count; i++) {
if (strcmp(students[i].id, id) == 0) {
printf("请输入新的学生姓名:");
scanf("%s", students[i].name);
printf("请输入新的学生成绩:");
scanf("%d", &students[i].score);
printf("学生信息已修改!\n");
return;
}
}
printf("未找到该学生信息!\n");
}
int main() {
int choice;
while (1) {
printf("请选择操作:\n");
printf("1. 录入学生信息\n");
printf("2. 查询学生信息\n");
printf("3. 按成绩从高到低排序\n");
printf("4. 删除学生信息\n");
printf("5. 修改学生信息\n");
printf("0. 退出程序\n");
scanf("%d", &choice);
switch (choice) {
case 1:
add_student();
break;
case 2:
find_student();
break;
case 3:
sort_by_score();
break;
case 4:
delete_student();
break;
case 5:
modify_student();
break;
case 0:
printf("程序已退出!\n");
exit(0);
default:
printf("无效的操作!\n");
break;
}
}
return 0;
}
```