帮我用c语言设计一个学生信息管理系统学生通迅录数据信息包括:学号、班级、姓名、家庭地址、宿舍号、邮政编码、电话号码等。 1、系统以菜单方式工作 2、学生信息录入功能 3、学生信息浏览功能(按学号、班级、宿舍号排序三种方式) 4、学生信息查询功能 查询方式: 按学号查询 按姓名查询 5、学生信息删除、修改功能
时间: 2023-07-04 16:03:36 浏览: 134
好的,下面是一个简单的学生信息管理系统的 C 语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENTS 100
typedef struct {
char id[20];
char name[50];
char class[20];
char address[100];
char dorm[20];
char zipcode[10];
char phone[20];
} Student;
Student students[MAX_STUDENTS];
int num_students = 0;
void input_student() {
Student s;
printf("请输入学生信息:\n");
printf("学号:");
scanf("%s", s.id);
printf("姓名:");
scanf("%s", s.name);
printf("班级:");
scanf("%s", s.class);
printf("家庭地址:");
scanf("%s", s.address);
printf("宿舍号:");
scanf("%s", s.dorm);
printf("邮政编码:");
scanf("%s", s.zipcode);
printf("电话号码:");
scanf("%s", s.phone);
students[num_students++] = s;
printf("添加成功!\n");
}
void print_student(Student s) {
printf("学号:%s,姓名:%s,班级:%s,家庭地址:%s,宿舍号:%s,邮政编码:%s,电话号码:%s\n",
s.id, s.name, s.class, s.address, s.dorm, s.zipcode, s.phone);
}
void browse_students() {
int i, j;
printf("请选择浏览方式:\n");
printf("1. 按学号排序\n");
printf("2. 按班级排序\n");
printf("3. 按宿舍号排序\n");
scanf("%d", &i);
switch (i) {
case 1:
for (i = 0; i < num_students - 1; i++) {
for (j = 0; j < num_students - i - 1; j++) {
if (strcmp(students[j].id, students[j+1].id) > 0) {
Student tmp = students[j];
students[j] = students[j+1];
students[j+1] = tmp;
}
}
}
break;
case 2:
for (i = 0; i < num_students - 1; i++) {
for (j = 0; j < num_students - i - 1; j++) {
if (strcmp(students[j].class, students[j+1].class) > 0) {
Student tmp = students[j];
students[j] = students[j+1];
students[j+1] = tmp;
}
}
}
break;
case 3:
for (i = 0; i < num_students - 1; i++) {
for (j = 0; j < num_students - i - 1; j++) {
if (strcmp(students[j].dorm, students[j+1].dorm) > 0) {
Student tmp = students[j];
students[j] = students[j+1];
students[j+1] = tmp;
}
}
}
break;
default:
printf("无效的选项!\n");
return;
}
printf("学生信息如下:\n");
for (i = 0; i < num_students; i++) {
print_student(students[i]);
}
}
void search_student() {
int i;
char id[20];
char name[50];
printf("请选择查询方式:\n");
printf("1. 按学号查询\n");
printf("2. 按姓名查询\n");
scanf("%d", &i);
switch (i) {
case 1:
printf("请输入学号:");
scanf("%s", id);
for (i = 0; i < num_students; i++) {
if (strcmp(students[i].id, id) == 0) {
print_student(students[i]);
return;
}
}
printf("未找到该学生!\n");
break;
case 2:
printf("请输入姓名:");
scanf("%s", name);
for (i = 0; i < num_students; i++) {
if (strcmp(students[i].name, name) == 0) {
print_student(students[i]);
return;
}
}
printf("未找到该学生!\n");
break;
default:
printf("无效的选项!\n");
return;
}
}
void delete_student() {
int i;
char id[20];
printf("请输入要删除的学生的学号:");
scanf("%s", id);
for (i = 0; i < num_students; i++) {
if (strcmp(students[i].id, id) == 0) {
printf("删除学生信息如下:\n");
print_student(students[i]);
num_students--;
for (; i < num_students; i++) {
students[i] = students[i+1];
}
printf("删除成功!\n");
return;
}
}
printf("未找到该学生!\n");
}
void modify_student() {
int i;
char id[20];
printf("请输入要修改的学生的学号:");
scanf("%s", id);
for (i = 0; i < num_students; i++) {
if (strcmp(students[i].id, id) == 0) {
printf("当前学生信息如下:\n");
print_student(students[i]);
printf("请输入新的学生信息:\n");
printf("学号:");
scanf("%s", students[i].id);
printf("姓名:");
scanf("%s", students[i].name);
printf("班级:");
scanf("%s", students[i].class);
printf("家庭地址:");
scanf("%s", students[i].address);
printf("宿舍号:");
scanf("%s", students[i].dorm);
printf("邮政编码:");
scanf("%s", students[i].zipcode);
printf("电话号码:");
scanf("%s", students[i].phone);
printf("修改成功!\n");
return;
}
}
printf("未找到该学生!\n");
}
void print_menu() {
printf("\n请选择菜单项:\n");
printf("1. 添加学生信息\n");
printf("2. 浏览学生信息\n");
printf("3. 查询学生信息\n");
printf("4. 删除学生信息\n");
printf("5. 修改学生信息\n");
printf("0. 退出程序\n");
}
int main() {
int choice;
while (1) {
print_menu();
scanf("%d", &choice);
switch (choice) {
case 0:
printf("程序已退出!\n");
exit(0);
case 1:
input_student();
break;
case 2:
browse_students();
break;
case 3:
search_student();
break;
case 4:
delete_student();
break;
case 5:
modify_student();
break;
default:
printf("无效的选项!\n");
break;
}
}
return 0;
}
```
这个程序使用了结构体来存储学生信息,通过菜单方式提供各种功能,包括学生信息录入、浏览、查询、删除和修改。注意,因为我没有进行越界检查,所以请不要输入超过 `MAX_STUDENTS` 个学生。你可以根据需要对代码进行修改和优化。
阅读全文