用c语言程序编写一套职工信息管理系统。职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等。试设计一职工信息管理系统,使之能提供以下功能: 系统以菜单方式工作:(用键盘输入1~6之间的数来选择功能) (1)职工信息录入功能(职工信息用文件保存) (2)职工信息浏览功能 (3)查询功能:按工号和按学历查询 (4)信息删除功能:按职工姓名删除 (5)信息修改功能:把研究生学历的职工工资增加500元。 (6)退出。
时间: 2023-12-19 07:19:07 浏览: 205
C 语言 职工信息管理系统设计
5星 · 资源好评率100%
好的,我可以为您解答这个问题,以下是一个简单的职工信息管理系统的程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct employee {
char id[10]; // 职工号
char name[20]; // 姓名
char sex[5]; // 性别
int age; // 年龄
char education[20]; // 学历
float salary; // 工资
char address[50]; // 住址
char phone[20]; // 电话
};
void add_employee(); // 录入职工信息
void browse_employee(); // 浏览职工信息
void query_employee(); // 查询职工信息
void delete_employee(); // 删除职工信息
void modify_employee(); // 修改职工信息
void save_file(); // 保存职工信息到文件
void load_file(); // 从文件中读取职工信息
struct employee employees[100];
int count = 0;
int main() {
load_file(); // 从文件中读取职工信息
int choice;
do {
printf("请选择功能:\n");
printf("1. 录入职工信息\n");
printf("2. 浏览职工信息\n");
printf("3. 按工号查询职工信息\n");
printf("4. 按学历查询职工信息\n");
printf("5. 按姓名删除职工信息\n");
printf("6. 修改职工信息\n");
printf("7. 退出\n");
scanf("%d", &choice);
switch (choice) {
case 1:
add_employee();
break;
case 2:
browse_employee();
break;
case 3:
query_employee();
break;
case 4:
query_employee();
break;
case 5:
delete_employee();
break;
case 6:
modify_employee();
break;
case 7:
save_file(); // 保存职工信息到文件
printf("退出程序...\n");
break;
default:
printf("无效选择,请重新选择功能\n");
break;
}
} while (choice != 7);
return 0;
}
void add_employee() {
printf("请输入职工信息(职工号,姓名,性别,年龄,学历,工资,住址,电话):\n");
scanf("%s %s %s %d %s %f %s %s", employees[count].id, employees[count].name, employees[count].sex,
&employees[count].age, employees[count].education, &employees[count].salary,
employees[count].address, employees[count].phone);
printf("录入成功\n");
count++;
}
void browse_employee() {
printf("职工信息列表:\n");
printf("职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n");
for (int i = 0; i < count; i++) {
printf("%s\t%s\t%s\t%d\t%s\t%.2f\t%s\t%s\n", employees[i].id, employees[i].name, employees[i].sex,
employees[i].age, employees[i].education, employees[i].salary, employees[i].address,
employees[i].phone);
}
}
void query_employee() {
int choice;
char key[20];
printf("请选择查询方式:\n");
printf("1. 按工号查询\n");
printf("2. 按学历查询\n");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("请输入要查询的职工号:\n");
scanf("%s", key);
for (int i = 0; i < count; i++) {
if (strcmp(employees[i].id, key) == 0) {
printf("职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n");
printf("%s\t%s\t%s\t%d\t%s\t%.2f\t%s\t%s\n", employees[i].id, employees[i].name, employees[i].sex,
employees[i].age, employees[i].education, employees[i].salary, employees[i].address,
employees[i].phone);
return;
}
}
printf("未找到职工号为%s的职工\n", key);
break;
case 2:
printf("请输入要查询的学历:\n");
scanf("%s", key);
printf("职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n");
for (int i = 0; i < count; i++) {
if (strcmp(employees[i].education, key) == 0) {
printf("%s\t%s\t%s\t%d\t%s\t%.2f\t%s\t%s\n", employees[i].id, employees[i].name, employees[i].sex,
employees[i].age, employees[i].education, employees[i].salary, employees[i].address,
employees[i].phone);
}
}
break;
default:
printf("无效选择,请重新选择功能\n");
break;
}
}
void delete_employee() {
char name[20];
printf("请输入要删除的职工姓名:\n");
scanf("%s", name);
for (int i = 0; i < count; i++) {
if (strcmp(employees[i].name, name) == 0) {
for (int j = i; j < count - 1; j++) {
employees[j] = employees[j + 1];
}
count--;
printf("删除成功\n");
return;
}
}
printf("未找到姓名为%s的职工\n", name);
}
void modify_employee() {
for (int i = 0; i < count; i++) {
if (strcmp(employees[i].education, "研究生") == 0) {
employees[i].salary += 500;
}
}
printf("修改成功\n");
}
void save_file() {
FILE *fp;
fp = fopen("employee.txt", "w");
for (int i = 0; i < count; i++) {
fprintf(fp, "%s %s %s %d %s %.2f %s %s\n", employees[i].id, employees[i].name, employees[i].sex,
employees[i].age, employees[i].education, employees[i].salary, employees[i].address,
employees[i].phone);
}
fclose(fp);
}
void load_file() {
FILE *fp;
fp = fopen("employee.txt", "r");
if (fp == NULL) {
return;
}
while (fscanf(fp, "%s %s %s %d %s %f %s %s\n", employees[count].id, employees[count].name, employees[count].sex,
&employees[count].age, employees[count].education, &employees[count].salary,
employees[count].address, employees[count].phone) == 8) {
count++;
}
fclose(fp);
}
```
这个程序使用了结构体来存储职工信息,通过菜单选择功能,实现了职工信息的录入、浏览、查询、删除和修改,同时也可以将职工信息保存到文件中,下次启动程序时可以从文件中读取职工信息。
阅读全文