写一个职工信息管理系统c语言程序
时间: 2023-08-02 20:18:05 浏览: 92
C语言程序设计-职工信息管理系统[1].pdf
5星 · 资源好评率100%
下面是一个简单的职工信息管理系统的C语言程序,包括添加、查询、修改和删除职工信息的功能。程序中使用了结构体来存储职工信息,使用文件来保存职工信息。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义职工结构体
struct Staff {
int id; // 工号
char name[20]; // 姓名
int age; // 年龄
char gender[10]; // 性别
int salary; // 工资
};
// 添加职工信息
void addStaff() {
FILE* fp = fopen("staff.txt", "a+");
if (fp == NULL) {
printf("文件打开失败\n");
return;
}
struct Staff s;
printf("请输入工号:");
scanf("%d", &s.id);
printf("请输入姓名:");
scanf("%s", s.name);
printf("请输入年龄:");
scanf("%d", &s.age);
printf("请输入性别:");
scanf("%s", s.gender);
printf("请输入工资:");
scanf("%d", &s.salary);
fwrite(&s, sizeof(s), 1, fp);
fclose(fp);
printf("添加成功\n");
}
// 查询职工信息
void queryStaff() {
FILE* fp = fopen("staff.txt", "r");
if (fp == NULL) {
printf("文件打开失败\n");
return;
}
int id;
printf("请输入要查询的工号:");
scanf("%d", &id);
struct Staff s;
while (fread(&s, sizeof(s), 1, fp) == 1) {
if (s.id == id) {
printf("工号:%d,姓名:%s,年龄:%d,性别:%s,工资:%d\n", s.id, s.name, s.age, s.gender, s.salary);
fclose(fp);
return;
}
}
printf("没有找到该职工信息\n");
fclose(fp);
}
// 修改职工信息
void modifyStaff() {
FILE* fp = fopen("staff.txt", "r+");
if (fp == NULL) {
printf("文件打开失败\n");
return;
}
int id;
printf("请输入要修改的工号:");
scanf("%d", &id);
struct Staff s;
while (fread(&s, sizeof(s), 1, fp) == 1) {
if (s.id == id) {
printf("请输入姓名:");
scanf("%s", s.name);
printf("请输入年龄:");
scanf("%d", &s.age);
printf("请输入性别:");
scanf("%s", s.gender);
printf("请输入工资:");
scanf("%d", &s.salary);
fseek(fp, -sizeof(s), SEEK_CUR);
fwrite(&s, sizeof(s), 1, fp);
fclose(fp);
printf("修改成功\n");
return;
}
}
printf("没有找到该职工信息\n");
fclose(fp);
}
// 删除职工信息
void deleteStaff() {
FILE* fp = fopen("staff.txt", "r");
if (fp == NULL) {
printf("文件打开失败\n");
return;
}
FILE* tmp = fopen("tmp.txt", "w");
if (tmp == NULL) {
printf("文件打开失败\n");
fclose(fp);
return;
}
int id;
printf("请输入要删除的工号:");
scanf("%d", &id);
struct Staff s;
while (fread(&s, sizeof(s), 1, fp) == 1) {
if (s.id == id) {
continue;
}
fwrite(&s, sizeof(s), 1, tmp);
}
fclose(fp);
fclose(tmp);
remove("staff.txt");
rename("tmp.txt", "staff.txt");
printf("删除成功\n");
}
int main() {
while (1) {
printf("请选择操作:\n");
printf("1. 添加职工信息\n");
printf("2. 查询职工信息\n");
printf("3. 修改职工信息\n");
printf("4. 删除职工信息\n");
printf("0. 退出程序\n");
int choice;
scanf("%d", &choice);
switch (choice) {
case 1:
addStaff();
break;
case 2:
queryStaff();
break;
case 3:
modifyStaff();
break;
case 4:
deleteStaff();
break;
case 0:
exit(0);
break;
default:
printf("输入错误,请重新输入\n");
break;
}
}
return 0;
}
```
在这个程序中,我们定义了一个职工结构体,用来存储职工的工号、姓名、年龄、性别和工资。程序中包括添加、查询、修改和删除职工信息的功能,其中查询、修改和删除操作都需要打开文件来读取和写入职工信息。
阅读全文