C语言实现简单职工信息管理系统
1. 系统功能
本职工信息管理系统主要实现以下功能:
- 添加职工
- 显示职工信息
- 删除职工
- 修改职工信息
- 查找职工信息
- 排序职工信息
- 清空职工信息
- 退出系统
2. 系统设计
本系统主要由以下几个部分组成:
- 职工结构体定义
- 菜单函数实现
- 添加职工函数实现
- 显示职工信息函数实现
- 删除职工函数实现
- 修改职工信息函数实现
- 查找职工信息函数实现
- 排序职工信息函数实现
- 清空职工信息函数实现
- 主函数实现
3. 代码实现
3.1 职工结构体定义
typedef struct Worker{
int id; // 职工编号
char name[20]; // 职工姓名
int age; // 职工年龄
int wage; // 职工工资
}Worker;
3.2 菜单函数实现
void show_menu(){
printf("**********************\n");
printf("***** 1. 添加职工 *****\n");
printf("***** 2. 显示职工 *****\n");
printf("***** 3. 删除职工 *****\n");
printf("***** 4. 修改职工 *****\n");
printf("***** 5. 查找职工 *****\n");
printf("***** 6. 排序职工 *****\n");
printf("***** 7. 清空职工 *****\n");
printf("***** 8. 退出系统 *****\n");
printf("**********************\n");
}
3.3 添加职工函数实现
void add_worker(Worker* worker_arr, int* worker_num){
printf("请输入职工编号:");
scanf("%d", &(worker_arr[*worker_num].id));
printf("请输入职工姓名:");
scanf("%s", worker_arr[*worker_num].name);
printf("请输入职工年龄:");
scanf("%d", &(worker_arr[*worker_num].age));
printf("请输入职工工资:");
scanf("%d", &(worker_arr[*worker_num].wage));
(*worker_num)++;
printf("添加成功!\n");
}
3.4 显示职工信息函数实现
void show_workers(Worker* worker_arr, int worker_num){
if(worker_num == 0){
printf("系统中没有职工信息!\n");
return;
}
printf("编号\t姓名\t年龄\t工资\n");
for(int i = 0; i < worker_num; i++){
printf("%d\t%s\t%d\t%d\n", worker_arr[i].id, worker_arr[i].name, worker_arr[i].age, worker_arr[i].wage);
}
}
3.5 删除职工函数实现
void delete_worker(Worker* worker_arr, int* worker_num){
int id;
printf("请输入要删除的职工编号:");
scanf("%d", &id);
int find_idx = -1;
for(int i = 0; i < *worker_num; i++){
if(worker_arr[i].id == id){
find_idx = i;
break;
}
}
if(find_idx == -1){
printf("系统中找不到该职工信息!\n");
return;
}
for(int i = find_idx; i < *worker_num - 1; i++){
worker_arr[i] = worker_arr[i + 1];
}
(*worker_num)--;
printf("删除职工成功!\n");
}
3.6 修改职工信息函数实现
void modify_worker(Worker* worker_arr, int worker_num){
int id;
printf("请输入要修改的职工编号:");
scanf("%d", &id);
int find_idx = -1;
for(int i = 0; i < worker_num; i++){
if(worker_arr[i].id == id){
find_idx = i;
break;
}
}
if(find_idx == -1){
printf("系统中找不到该职工信息!\n");
return;
}
printf("职工当前信息为:姓名:%s 年龄:%d 工资:%d\n", worker_arr[find_idx].name, worker_arr[find_idx].age, worker_arr[find_idx].wage);
printf("请输入职工新姓名:");
scanf("%s", worker_arr[find_idx].name);
printf("请输入职工新年龄:");
scanf("%d", &(worker_arr[find_idx].age));
printf("请输入职工新工资:");
scanf("%d", &(worker_arr[find_idx].wage));
printf("修改职工信息成功!\n");
}
3.7 查找职工信息函数实现
void find_worker(Worker* worker_arr, int worker_num){
char name[20];
printf("请输入要查找的职工姓名:");
scanf("%s", name);
int count = 0;
for(int i = 0; i < worker_num; i++){
if(strcmp(worker_arr[i].name, name) == 0){
printf("职工信息为:编号:%d 姓名:%s 年龄:%d 工资:%d\n",
worker_arr[i].id, worker_arr[i].name, worker_arr[i].age, worker_arr[i].wage);
count++;
}
}
if(count == 0){
printf("系统中找不到该职工信息!\n");
}else{
printf("共找到%d条职工信息\n", count);
}
}
3.8 排序职工信息函数实现
void sort_worker(Worker* worker_arr, int worker_num){
for(int i = 0; i < worker_num - 1; i++){
for(int j = i + 1; j < worker_num; j++){
if(worker_arr[i].id > worker_arr[j].id){
Worker temp = worker_arr[i];
worker_arr[i] = worker_arr[j];
worker_arr[j] = temp;
}
}
}
printf("职工信息已排序!\n");
}
3.9 清空职工信息函数实现
void clear_worker(Worker* worker_arr, int* worker_num){
*worker_num = 0;
printf("职工信息已清空!\n");
}
3.10 主函数实现
int main(){
int choice = 0;
Worker worker_arr[SIZE];
int worker_num = 0;
while(1){
show_menu();
printf("请输入您的选择:");
scanf("%d", &choice);
switch(choice){
case 1://添加职工
add_worker(worker_arr, &worker_num);
break;
case 2://显示职工信息
show_workers(worker_arr, worker_num);
break;
case 3://删除职工
delete_worker(worker_arr, &worker_num);
break;
case 4://修改职工信息
modify_worker(worker_arr, worker_num);
break;
case 5://查找职工信息
find_worker(worker_arr, worker_num);
break;
case 6://排序职工信息
sort_worker(worker_arr, worker_num);
break;
case 7://清空职工信息
clear_worker(worker_arr, &worker_num);
break;
case 8://退出系统
printf("欢迎下次使用!\n");
exit(0);
break;
default:
printf("输入有误,请重新输入!\n");
break;
}
getchar();
printf("请按回车键继续...\n");
getchar();
system("clear");//清屏命令,适用于 Linux 系统
}
return 0;
}
4. 示例
4.1 添加职工示例
输入:1
输出:
请输入职工编号:1001
请输入职工姓名:张三
请输入职工年龄:30
请输入职工工资:5000
添加成功!
4.2 显示职工信息示例
输入:2
输出:
编号 姓名 年龄 工资
1001 张三 30 5000
4.3 删除职工示例
输入:3
输出:
请输入要删除的职工编号:1001
删除职工成功!
4.4 修改职工信息示例
输入:4
输出:
请输入要修改的职工编号:1001
职工当前信息为:姓名:张三 年龄:30 工资:5000
请输入职工新姓名:李四
请输入职工新年龄:25
请输入职工新工资:6000
修改职工信息成功!
4.5 查找职工信息示例
输入:5
输出:
请输入要查找的职工姓名:李四
职工信息为:编号:1001 姓名:李四 年龄:25 工资:6000
共找到1条职工信息
4.6 排序职工信息示例
输入:6
输出:
职工信息已排序!
4.7 清空职工信息示例
输入:7
输出:
职工信息已清空!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言实现简单职工信息管理系统 - Python技术站