学生信息管理宿舍管理系统c语言
时间: 2023-12-07 22:16:08 浏览: 96
学生信息管理宿舍管理系统可以分为两个模块:学生信息管理模块和宿舍管理模块。下面我将分别介绍这两个模块的设计思路。
1. 学生信息管理模块
该模块主要负责学生信息的增删改查,包括学生基本信息、课程成绩、奖惩记录等。
设计思路:
a. 学生信息的数据结构
首先需要定义一个学生信息的数据结构,包括学号、姓名、性别、年龄、课程成绩、奖惩记录等字段。
typedef struct student{
char id[10]; // 学号
char name[20]; // 姓名
char sex[5]; // 性别
int age; // 年龄
float score[5]; // 课程成绩
char reward_punish[100]; // 奖惩记录
} student;
b. 学生信息的文件存储
学生信息可以通过文件进行存储,每行代表一个学生的信息,字段之间用空格或者逗号分隔,例如:
20190101 张三 男 18 85 90 88 92 优秀表现
20190102 李四 女 19 80 85 90 88 无
20190103 王五 男 20 70 75 78 80 违纪一次
c. 学生信息的增删改查
通过文件读写的方式,可以实现学生信息的增删改查功能。例如,添加学生信息的函数可以实现为:
void add_student(){
student s;
printf("请输入学号:");
scanf("%s", s.id);
printf("请输入姓名:");
scanf("%s", s.name);
printf("请输入性别:");
scanf("%s", s.sex);
printf("请输入年龄:");
scanf("%d", &s.age);
printf("请输入五门课程成绩:");
for(int i=0; i<5; i++){
scanf("%f", &s.score[i]);
}
printf("请输入奖惩记录:");
scanf("%s", s.reward_punish);
FILE *fp = fopen("student.txt", "a");
fprintf(fp, "%s %s %s %d %.2f %.2f %.2f %.2f %.2f %s\n", s.id, s.name, s.sex, s.age, s.score[0], s.score[1], s.score[2], s.score[3], s.score[4], s.reward_punish);
fclose(fp);
printf("学生信息添加成功!\n");
}
2. 宿舍管理模块
该模块主要负责宿舍信息的管理,包括宿舍基本信息、住宿学生信息等。
设计思路:
a. 宿舍信息的数据结构
首先需要定义一个宿舍信息的数据结构,包括宿舍号、宿舍类型、宿舍容量、住宿学生信息等字段。
typedef struct dorm{
int number; // 宿舍号
char type[20]; // 宿舍类型
int capacity; // 宿舍容量
student students[4]; // 住宿学生信息
} dorm;
b. 宿舍信息的文件存储
宿舍信息可以通过文件进行存储,每行代表一个宿舍的信息,字段之间用空格或者逗号分隔,例如:
1001 男生宿舍 4 20190101 张三 男 18 85 90 88 92 优秀表现,20190102 李四 女 19 80 85 90 88 无
1002 女生宿舍 4 20190103 王五 男 20 70 75 78 80 违纪一次,20190104 赵六 女 19 82 80 85 78 无
c. 宿舍信息的增删改查
通过文件读写的方式,可以实现宿舍信息的增删改查功能。例如,添加宿舍信息的函数可以实现为:
void add_dorm(){
dorm d;
printf("请输入宿舍号:");
scanf("%d", &d.number);
printf("请输入宿舍类型:");
scanf("%s", d.type);
printf("请输入宿舍容量:");
scanf("%d", &d.capacity);
printf("请输入住宿学生信息(最多4个):\n");
for(int i=0; i<d.capacity; i++){
printf("请输入第%d个学生的信息:\n", i+1);
printf("请输入学号:");
scanf("%s", d.students[i].id);
printf("请输入姓名:");
scanf("%s", d.students[i].name);
printf("请输入性别:");
scanf("%s", d.students[i].sex);
printf("请输入年龄:");
scanf("%d", &d.students[i].age);
printf("请输入五门课程成绩:");
for(int j=0; j<5; j++){
scanf("%f", &d.students[i].score[j]);
}
printf("请输入奖惩记录:");
scanf("%s", d.students[i].reward_punish);
}
FILE *fp = fopen("dorm.txt", "a");
fprintf(fp, "%d %s %d ", d.number, d.type, d.capacity);
for(int i=0; i<d.capacity; i++){
fprintf(fp, "%s %s %s %d %.2f %.2f %.2f %.2f %.2f %s,", d.students[i].id, d.students[i].name, d.students[i].sex, d.students[i].age, d.students[i].score[0], d.students[i].score[1], d.students[i].score[2], d.students[i].score[3], d.students[i].score[4], d.students[i].reward_punish);
}
fprintf(fp, "\n");
fclose(fp);
printf("宿舍信息添加成功!\n");
}
以上是学生信息管理宿舍管理系统的设计思路,你可以根据自己的需求进行修改和完善。
阅读全文