用C语言写一个考勤管理系统
时间: 2023-12-29 11:17:47 浏览: 63
好的,我可以为您提供一些思路和代码示例。
首先,我们需要定义考勤信息的数据结构,可以使用结构体来表示,如下所示:
```c
struct Attendance {
char name[20]; // 姓名
int id; // 学号或工号
int status[31]; // 31天的考勤状态,0表示缺勤,1表示出勤
};
```
接下来,我们可以定义一些函数来实现考勤管理的功能,例如:
1. 添加考勤信息
```c
void addAttendance(struct Attendance *attendance) {
printf("请输入姓名:");
scanf("%s", attendance->name);
printf("请输入学号或工号:");
scanf("%d", &attendance->id);
printf("请输入31天的考勤状态(0表示缺勤,1表示出勤):\n");
for (int i = 0; i < 31; i++) {
scanf("%d", &attendance->status[i]);
}
}
```
2. 查询考勤信息
```c
void queryAttendance(struct Attendance *attendance, int id) {
if (attendance->id == id) {
printf("%s的考勤状态:\n", attendance->name);
for (int i = 0; i < 31; i++) {
printf("%d ", attendance->status[i]);
}
printf("\n");
}
}
```
3. 统计考勤信息
```c
void countAttendance(struct Attendance *attendance, int n) {
int count = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < 31; j++) {
if (attendance[i].status[j] == 0) {
count++;
}
}
}
printf("本月缺勤总人数:%d\n", count);
}
```
完整的代码示例如下:
```c
#include <stdio.h>
struct Attendance {
char name[20]; // 姓名
int id; // 学号或工号
int status[31]; // 31天的考勤状态,0表示缺勤,1表示出勤
};
void addAttendance(struct Attendance *attendance) {
printf("请输入姓名:");
scanf("%s", attendance->name);
printf("请输入学号或工号:");
scanf("%d", &attendance->id);
printf("请输入31天的考勤状态(0表示缺勤,1表示出勤):\n");
for (int i = 0; i < 31; i++) {
scanf("%d", &attendance->status[i]);
}
}
void queryAttendance(struct Attendance *attendance, int id) {
if (attendance->id == id) {
printf("%s的考勤状态:\n", attendance->name);
for (int i = 0; i < 31; i++) {
printf("%d ", attendance->status[i]);
}
printf("\n");
}
}
void countAttendance(struct Attendance *attendance, int n) {
int count = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < 31; j++) {
if (attendance[i].status[j] == 0) {
count++;
}
}
}
printf("本月缺勤总人数:%d\n", count);
}
int main() {
int n;
printf("请输入考勤人数:");
scanf("%d", &n);
struct Attendance attendances[n];
for (int i = 0; i < n; i++) {
printf("请输入第%d个人的考勤信息:\n", i + 1);
addAttendance(&attendances[i]);
}
int id;
printf("请输入要查询的学号或工号:");
scanf("%d", &id);
for (int i = 0; i < n; i++) {
queryAttendance(&attendances[i], id);
}
countAttendance(attendances, n);
return 0;
}
```
希望这个示例对您有所帮助!
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)