要求
使用C语言完成一个职工信息管理系统,职工的信息为:
char id[20]; // 职工号
char name[20]; // 姓名
char sex[10]; // 性别
int age; // 年龄
char degree[20]; // 学历
int salary; // 工资
char address[20]; // 住址
int phone; // 电话
要求含有的功能为添加、浏览、查看、修改、排序和删除。
运行结果
代码
#include <stdio.h>
#include <string.h>
#define MAX_EMPLOYEES 100
struct Employee {
int id;
char name[50];
int age;
};
struct Employee employees[MAX_EMPLOYEES];
int numEmployees = 0;
void addEmployee() {
if (numEmployees >= MAX_EMPLOYEES) {
printf("员工数量已达上限。\n");
return;
}
struct Employee newEmployee;
printf("请输入员工ID:");
scanf("%d", &newEmployee.id);
printf("请输入员工姓名:");
scanf("%s", newEmployee.name);
printf("请输入员工年龄:");
scanf("%d", &newEmployee.age);
employees[numEmployees] = newEmployee;
numEmployees++;
printf("员工信息已添加成功。\n");
}
void viewEmployees() {
if (numEmployees == 0) {
printf("当前没有员工信息。\n");
return;
}
printf("员工信息列表:\n");
int i;
for (i = 0; i < numEmployees; i++) {
printf("ID:%d,姓名:%s,年龄:%d\n", employees[i].id, employees[i].name, employees[i].age);
}
}
void searchEmployee() {
if (numEmployees == 0) {
printf("当前没有员工信息。\n");
return;
}
int searchId;
printf("请输入要查找的员工ID:");
scanf("%d", &searchId);
int i;
for (i = 0; i < numEmployees; i++) {
if (employees[i].id == searchId) {
printf("ID:%d,姓名:%s,年龄:%d\n", employees[i].id, employees[i].name, employees[i].age);
return;
}
}
printf("未找到该员工信息。\n");
}
void modifyEmployee() {
if (numEmployees == 0) {
printf("当前没有员工信息。\n");
return;
}
int modifyId;
printf("请输入要修改的员工ID:");
scanf("%d", &modifyId);
int i;
for ( i = 0; i < numEmployees; i++) {
if (employees[i].id == modifyId) {
printf("请输入新的员工姓名:");
scanf("%s", employees[i].name);
printf("请输入新的员工年龄:");
scanf("%d", &employees[i].age);
printf("员工信息已修改成功。\n");
return;
}
}
printf("未找到该员工信息。\n");
}
void sortEmployees() {
if (numEmployees == 0) {
printf("当前没有员工信息。\n");
return;
}
printf("请选择排序方式(1-按ID升序,2-按ID降序):");
int sortOption;
scanf("%d", &sortOption);
int i,j;
switch (sortOption) {
case 1:
for ( i = 0; i < numEmployees - 1; i++) {
for ( j = 0; j < numEmployees - i - 1; j++) {
if (employees[j].id > employees[j + 1].id) {
struct Employee temp = employees[j];
employees[j] = employees[j + 1];
employees[j + 1] = temp;
}
}
}
printf("员工信息已按ID升序排序。\n");
break;
case 2:
for ( i = 0; i < numEmployees - 1; i++) {
for (j = 0; j < numEmployees - i - 1; j++) {
if (employees[j].id < employees[j + 1].id) {
struct Employee temp = employees[j];
employees[j] = employees[j + 1];
employees[j + 1] = temp;
}
}
}
printf("员工信息已按ID降序排序。\n");
break;
default:
printf("无效的选项。\n");
break;
}
}
void deleteEmployee() {
if (numEmployees == 0) {
printf("当前没有员工信息。\n");
return;
}
int deleteId;
printf("请输入要删除的员工ID:");
scanf("%d", &deleteId);
int deleteIndex = -1;
int i;
for ( i = 0; i < numEmployees; i++) {
if (employees[i].id == deleteId) {
deleteIndex = i;
break;
}
}
if (deleteIndex != -1) {
for (i = deleteIndex; i < numEmployees - 1; i++) {
employees[i] = employees[i + 1];
}
numEmployees--;
printf("员工信息已删除成功。\n");
} else {
printf("未找到该员工信息。\n");
}
}
int main() {
int choice;
do {
printf("\n职工信息管理系统\n");
printf("1. 添加职工信息\n");
printf("2. 浏览职工信息\n");
printf("3. 查看职工信息\n");
printf("4. 修改职工信息\n");
printf("5. 排序职工信息\n");
printf("6. 删除职工信息\n");
printf("0. 退出程序\n");
printf("请选择要执行的操作:");
scanf("%d", &choice);
switch (choice) {
case 1:
addEmployee();
break;
case 2:
viewEmployees();
break;
case 3:
searchEmployee();
break;
case 4:
modifyEmployee();
break;
case 5:
sortEmployees();
break;
case 6:
deleteEmployee();
break;
case 0:
printf("程序已退出。\n");
break;
default:
printf("无效的选项,请重试。\n");
break;
}
} while (choice != 0);
return 0;
}