(1)用C语言实现系统; (2)设计一个信息管理系统,比如设计一学生信息管理系统, 学生信息包括:学号,姓名,性别,出生年月,电话,英语,数学,总成绩等。使之能提供以下功能: 1) 系统以菜单方式工作 2) 学生信息录入功能(学生信息用文件保存)---输入 3) 学生信息浏览功能---输出 4) 根据输入英语、数学成绩,计算总成绩。 5) 按学号查询 6) 按姓名查询 7) 按照总成绩进行排序 8) 学生信息的删除与修改(可选项) 写出代码
时间: 2024-03-08 10:46:56 浏览: 68
好的,以下是一个简单的学生信息管理系统的C语言代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENTS 100 // 最大学生人数
#define MAX_LEN 20 // 最大字符串长度
// 定义学生结构体
typedef struct Student {
char id[MAX_LEN]; // 学号
char name[MAX_LEN]; // 姓名
char gender[MAX_LEN]; // 性别
char birth[MAX_LEN]; // 出生年月
char phone[MAX_LEN]; // 电话
int english; // 英语成绩
int math; // 数学成绩
int total; // 总成绩
} Student;
// 定义全局变量
Student students[MAX_STUDENTS]; // 学生数组
int count = 0; // 学生人数
// 定义函数
void showMenu(); // 显示菜单
void addStudent(); // 添加学生
void showStudents(); // 显示所有学生信息
void calcTotal(); // 计算学生总成绩
void searchById(); // 按学号查询学生信息
void searchByName(); // 按姓名查询学生信息
void sortByTotal(); // 按总成绩排序
void deleteStudent(); // 删除学生信息
void modifyStudent(); // 修改学生信息
int main() {
int choice;
while (1) {
showMenu();
printf("请输入您的选择:");
scanf("%d", &choice);
switch (choice) {
case 1:
addStudent();
break;
case 2:
showStudents();
break;
case 3:
calcTotal();
break;
case 4:
searchById();
break;
case 5:
searchByName();
break;
case 6:
sortByTotal();
break;
case 7:
deleteStudent();
break;
case 8:
modifyStudent();
break;
case 0:
printf("感谢使用本系统,再见!\n");
exit(0);
default:
printf("输入有误,请重新输入!\n");
break;
}
}
return 0;
}
void showMenu() {
printf("=====================\n");
printf("学生信息管理系统\n");
printf("1. 添加学生信息\n");
printf("2. 显示所有学生信息\n");
printf("3. 计算学生总成绩\n");
printf("4. 按学号查询学生信息\n");
printf("5. 按姓名查询学生信息\n");
printf("6. 按总成绩排序\n");
printf("7. 删除学生信息\n");
printf("8. 修改学生信息\n");
printf("0. 退出系统\n");
printf("=====================\n");
}
void addStudent() {
if (count >= MAX_STUDENTS) {
printf("学生人数已达上限,无法添加!\n");
return;
}
printf("请输入学生信息:\n");
printf("学号:");
scanf("%s", students[count].id);
printf("姓名:");
scanf("%s", students[count].name);
printf("性别:");
scanf("%s", students[count].gender);
printf("出生年月:");
scanf("%s", students[count].birth);
printf("电话:");
scanf("%s", students[count].phone);
printf("英语成绩:");
scanf("%d", &students[count].english);
printf("数学成绩:");
scanf("%d", &students[count].math);
students[count].total = students[count].english + students[count].math;
printf("添加成功!\n");
count++;
}
void showStudents() {
if (count == 0) {
printf("没有学生信息!\n");
return;
}
printf("学号\t姓名\t性别\t出生年月\t电话\t英语\t数学\t总成绩\n");
for (int i = 0; i < count; i++) {
printf("%s\t%s\t%s\t%s\t%s\t%d\t%d\t%d\n", students[i].id, students[i].name, students[i].gender, students[i].birth, students[i].phone, students[i].english, students[i].math, students[i].total);
}
}
void calcTotal() {
if (count == 0) {
printf("没有学生信息!\n");
return;
}
printf("请输入英语、数学成绩:");
int english, math;
scanf("%d%d", &english, &math);
printf("学号\t姓名\t性别\t出生年月\t电话\t英语\t数学\t总成绩\n");
for (int i = 0; i < count; i++) {
if (students[i].english == english && students[i].math == math) {
printf("%s\t%s\t%s\t%s\t%s\t%d\t%d\t%d\n", students[i].id, students[i].name, students[i].gender, students[i].birth, students[i].phone, students[i].english, students[i].math, students[i].total);
}
}
}
void searchById() {
if (count == 0) {
printf("没有学生信息!\n");
return;
}
printf("请输入学号:");
char id[MAX_LEN];
scanf("%s", id);
for (int i = 0; i < count; i++) {
if (strcmp(students[i].id, id) == 0) {
printf("学号\t姓名\t性别\t出生年月\t电话\t英语\t数学\t总成绩\n");
printf("%s\t%s\t%s\t%s\t%s\t%d\t%d\t%d\n", students[i].id, students[i].name, students[i].gender, students[i].birth, students[i].phone, students[i].english, students[i].math, students[i].total);
return;
}
}
printf("没有该学生信息!\n");
}
void searchByName() {
if (count == 0) {
printf("没有学生信息!\n");
return;
}
printf("请输入姓名:");
char name[MAX_LEN];
scanf("%s", name);
printf("学号\t姓名\t性别\t出生年月\t电话\t英语\t数学\t总成绩\n");
for (int i = 0; i < count; i++) {
if (strcmp(students[i].name, name) == 0) {
printf("%s\t%s\t%s\t%s\t%s\t%d\t%d\t%d\n", students[i].id, students[i].name, students[i].gender, students[i].birth, students[i].phone, students[i].english, students[i].math, students[i].total);
}
}
}
void sortByTotal() {
if (count == 0) {
printf("没有学生信息!\n");
return;
}
for (int i = 0; i < count - 1; i++) {
for (int j = i + 1; j < count; j++) {
if (students[i].total < students[j].total) {
Student temp = students[i];
students[i] = students[j];
students[j] = temp;
}
}
}
printf("学号\t姓名\t性别\t出生年月\t电话\t英语\t数学\t总成绩\n");
for (int i = 0; i < count; i++) {
printf("%s\t%s\t%s\t%s\t%s\t%d\t%d\t%d\n", students[i].id, students[i].name, students[i].gender, students[i].birth, students[i].phone, students[i].english, students[i].math, students[i].total);
}
}
void deleteStudent() {
if (count == 0) {
printf("没有学生信息!\n");
return;
}
printf("请输入学号:");
char id[MAX_LEN];
scanf("%s", id);
for (int i = 0; i < count; i++) {
if (strcmp(students[i].id, id) == 0) {
for (int j = i; j < count - 1; j++) {
students[j] = students[j + 1];
}
count--;
printf("删除成功!\n");
return;
}
}
printf("没有该学生信息!\n");
}
void modifyStudent() {
if (count == 0) {
printf("没有学生信息!\n");
return;
}
printf("请输入学号:");
char id[MAX_LEN];
scanf("%s", id);
for (int i = 0; i < count; i++) {
if (strcmp(students[i].id, id) == 0) {
printf("请输入修改后的学生信息:\n");
printf("学号:");
scanf("%s", students[i].id);
printf("姓名:");
scanf("%s", students[i].name);
printf("性别:");
scanf("%s", students[i].gender);
printf("出生年月:");
scanf("%s", students[i].birth);
printf("电话:");
scanf("%s", students[i].phone);
printf("英语成绩:");
scanf("%d", &students[i].english);
printf("数学成绩:");
scanf("%d", &students[i].math);
students[i].total = students[i].english + students[i].math;
printf("修改成功!\n");
return;
}
}
printf("没有该学生信息!\n");
}
```
因为涉及文件操作,所以还需要添加文件读写部分的代码。另外,这个代码只是一个比较简单的示例,实际应用中还需要考虑更多的细节和异常情况。
阅读全文