定义一个员工结构(包含员工号、姓名、性别),输入4个员工的数据,将这些员工数据保存到文件employer.dat中,最后按照员工号从大到小排序在屏幕上输出。用c语言来实现
时间: 2024-03-16 19:40:57 浏览: 70
企业员工信息管理系统 基于Mysql、SpringBootspringboot-employer-master.zip
好的,以下是实现代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Employee {
int id;
char name[20];
char gender[10];
} Employee;
void sortEmployees(Employee *employees, int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (employees[j].id < employees[j + 1].id) {
Employee temp = employees[j];
employees[j] = employees[j + 1];
employees[j + 1] = temp;
}
}
}
}
int main() {
FILE *fp;
Employee employees[4];
// 输入4个员工的数据
for (int i = 0; i < 4; i++) {
printf("请输入第%d个员工的数据:\n", i + 1);
printf("员工号:");
scanf("%d", &employees[i].id);
printf("姓名:");
scanf("%s", employees[i].name);
printf("性别:");
scanf("%s", employees[i].gender);
}
// 将这些员工数据保存到文件employer.dat中
if ((fp = fopen("employer.dat", "wb")) == NULL) {
printf("文件打开失败!\n");
exit(1);
}
fwrite(employees, sizeof(Employee), 4, fp);
fclose(fp);
// 按照员工号从大到小排序
sortEmployees(employees, 4);
// 在屏幕上输出排序后的员工数据
printf("按照员工号从大到小排序的员工数据如下:\n");
for (int i = 0; i < 4; i++) {
printf("员工号:%d,姓名:%s,性别:%s\n", employees[i].id, employees[i].name, employees[i].gender);
}
return 0;
}
```
这个程序定义了一个名为 `Employee` 的结构体,包含了员工号、姓名和性别三个成员变量。然后通过 `sortEmployees` 函数对输入的员工数据按照员工号从大到小排序。最后将排序后的员工数据保存到文件 `employer.dat` 中,并在屏幕上输出排序后的员工数据。
阅读全文