学生信息管理系统用c语言编写
时间: 2023-10-24 07:05:00 浏览: 35
对于学生信息管理系统的编写,可以采用C语言进行编写。以下是简单的实现思路:
1. 设计数据结构
首先需要设计合适的数据结构来存储学生信息,如学生姓名、学号、性别、出生日期、班级等。可以使用结构体来定义学生信息,例如:
struct student {
char name[20];
int id;
char gender;
char birth[20];
char class[10];
};
2. 实现基本功能
基本功能包括添加学生信息、查询学生信息、修改学生信息、删除学生信息等。可以使用文件来存储学生信息,例如将学生信息保存在一个文本文件中。
3. 界面设计
为了方便用户操作,需要设计一个简单易用的界面。可以使用终端界面,通过菜单选项来实现不同功能的调用。
4. 完善功能
除了基本功能外,还可以添加其他功能,如排序、统计等,以满足不同需求。
下面是一个简单的学生信息管理系统的代码示例:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct student {
char name[20];
int id;
char gender;
char birth[20];
char class[10];
};
void add_student() {
struct student s;
printf("Enter name: ");
scanf("%s", s.name);
printf("Enter id: ");
scanf("%d", &s.id);
printf("Enter gender: ");
scanf(" %c", &s.gender);
printf("Enter birth: ");
scanf("%s", s.birth);
printf("Enter class: ");
scanf("%s", s.class);
FILE* fp = fopen("students.txt", "a");
fprintf(fp, "%s %d %c %s %s\n", s.name, s.id, s.gender, s.birth, s.class);
fclose(fp);
printf("Add student success!\n");
}
void search_student() {
char name[20];
printf("Enter name: ");
scanf("%s", name);
FILE* fp = fopen("students.txt", "r");
struct student s;
int found = 0;
while (fscanf(fp, "%s %d %c %s %s", s.name, &s.id, &s.gender, s.birth, s.class) != EOF) {
if (strcmp(s.name, name) == 0) {
found = 1;
printf("Name: %s\n", s.name);
printf("Id: %d\n", s.id);
printf("Gender: %c\n", s.gender);
printf("Birth: %s\n", s.birth);
printf("Class: %s\n", s.class);
break;
}
}
fclose(fp);
if (!found) {
printf("Student not found!\n");
}
}
void modify_student() {
char name[20];
printf("Enter name: ");
scanf("%s", name);
FILE* fp = fopen("students.txt", "r");
struct student s;
int found = 0;
while (fscanf(fp, "%s %d %c %s %s", s.name, &s.id, &s.gender, s.birth, s.class) != EOF) {
if (strcmp(s.name, name) == 0) {
found = 1;
printf("Enter new name: ");
scanf("%s", s.name);
printf("Enter new id: ");
scanf("%d", &s.id);
printf("Enter new gender: ");
scanf(" %c", &s.gender);
printf("Enter new birth: ");
scanf("%s", s.birth);
printf("Enter new class: ");
scanf("%s", s.class);
FILE* fp2 = fopen("students2.txt", "a");
fprintf(fp2, "%s %d %c %s %s\n", s.name, s.id, s.gender, s.birth, s.class);
fclose(fp2);
printf("Modify student success!\n");
} else {
FILE* fp2 = fopen("students2.txt", "a");
fprintf(fp2, "%s %d %c %s %s\n", s.name, s.id, s.gender, s.birth, s.class);
fclose(fp2);
}
}
fclose(fp);
remove("students.txt");
rename("students2.txt", "students.txt");
if (!found) {
printf("Student not found!\n");
}
}
void delete_student() {
char name[20];
printf("Enter name: ");
scanf("%s", name);
FILE* fp = fopen("students.txt", "r");
struct student s;
int found = 0;
while (fscanf(fp, "%s %d %c %s %s", s.name, &s.id, &s.gender, s.birth, s.class) != EOF) {
if (strcmp(s.name, name) == 0) {
found = 1;
printf("Name: %s\n", s.name);
printf("Id: %d\n", s.id);
printf("Gender: %c\n", s.gender);
printf("Birth: %s\n", s.birth);
printf("Class: %s\n", s.class);
printf("Are you sure to delete this student? (y/n) ");
char c;
scanf(" %c", &c);
if (c == 'y') {
printf("Delete student success!\n");
} else {
FILE* fp2 = fopen("students2.txt", "a");
fprintf(fp2, "%s %d %c %s %s\n", s.name, s.id, s.gender, s.birth, s.class);
fclose(fp2);
}
} else {
FILE* fp2 = fopen("students2.txt", "a");
fprintf(fp2, "%s %d %c %s %s\n", s.name, s.id, s.gender, s.birth, s.class);
fclose(fp2);
}
}
fclose(fp);
remove("students.txt");
rename("students2.txt", "students.txt");
if (!found) {
printf("Student not found!\n");
}
}
void list_students() {
FILE* fp = fopen("students.txt", "r");
struct student s;
while (fscanf(fp, "%s %d %c %s %s", s.name, &s.id, &s.gender, s.birth, s.class) != EOF) {
printf("Name: %s\n", s.name);
printf("Id: %d\n", s.id);
printf("Gender: %c\n", s.gender);
printf("Birth: %s\n", s.birth);
printf("Class: %s\n", s.class);
printf("\n");
}
fclose(fp);
}
int main() {
int choice;
do {
printf("1. Add student\n");
printf("2. Search student\n");
printf("3. Modify student\n");
printf("4. Delete student\n");
printf("5. List students\n");
printf("0. Exit\n");
printf("Enter your choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
add_student();
break;
case 2:
search_student();
break;
case 3:
modify_student();
break;
case 4:
delete_student();
break;
case 5:
list_students();
break;
case 0:
printf("Goodbye!\n");
break;
default:
printf("Invalid choice!\n");
}
} while (choice != 0);
return 0;
}