职工信息包括职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等(职工号 不重复),职工信息管理,可具有以下功能: 职工信息录入、输出、查询、删除、修改、数据保存、文件打开等。 基本功能要求:见上例。
时间: 2023-08-16 20:10:18 浏览: 136
这是一个职工信息管理系统的基本需求,可以使用C/C++语言来实现。以下是实现这个系统的基本思路:
1. 定义职工信息结构体,包括职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等字段。
2. 编写录入函数,从键盘输入职工信息,将其保存到结构体数组中。
3. 编写输出函数,可以按照职工号、姓名、工资等字段进行排序,并输出全部或部分职工信息。
4. 编写查询函数,可以按照职工号、姓名等字段进行查询,并输出符合条件的职工信息。
5. 编写删除函数,可以按照职工号删除指定职工信息。
6. 编写修改函数,可以按照职工号修改指定职工信息。
7. 编写数据保存函数,将职工信息保存到文件中。
8. 编写文件打开函数,可以读取保存的职工信息文件。
9. 编写菜单函数,用于显示系统功能选项,并调用相应的函数。
具体实现细节和代码实现可以根据实际情况进行调整。
相关问题
职工信息包括职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等(职工号 不重复),职工信息管理,可具有以下功能: 职工信息录入、输出、查询、删除、修改、数据保存、文件打开等。
这是一个非常典型的员工信息管理系统,可以使用编程语言(例如Java、Python等)和数据库(例如MySQL、Oracle等)来实现。以下是一个简单的实现步骤:
1. 设计数据库表结构,包括职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等字段,其中职工号为主键,确保不重复。
2. 编写程序,实现对员工信息的录入、输出、查询、删除、修改等功能。可以使用控制台或图形用户界面(GUI)来交互。
3. 将程序与数据库连接起来,实现数据的保存和文件的打开等功能。可以使用SQL语句来实现数据的增删改查操作。
4. 进行测试和调试,确保程序的正确性和稳定性。
以上是一个简单的实现步骤,具体实现方法可能因编程语言和数据库的不同而有所差异。
职工信息管理职工信息包括职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等(职工号不重复),职工信息管理,可具有以下功能:职工信息录入、输出、查询、删除、修改、数据保存、文件打开等。 C语言实现中文
以下是用 C 语言实现职工信息管理系统的示例代码,支持中文:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_WORKERS 100 // 最大职工数量
#define MAX_NAME_LEN 20 // 姓名最大长度
#define MAX_ADDRESS_LEN 50 // 住址最大长度
#define MAX_PHONE_LEN 15 // 电话最大长度
// 职工结构体
struct Worker {
int id; // 职工号
char name[MAX_NAME_LEN]; // 姓名
char gender[3]; // 性别,"男" 或 "女"
char birth[11]; // 出生年月,格式为 "yyyy-mm-dd"
char education[10]; // 学历,如 "本科"
char position[10]; // 职务,如 "经理"
double salary; // 工资
char address[MAX_ADDRESS_LEN]; // 住址
char phone[MAX_PHONE_LEN]; // 电话
};
// 全局变量
struct Worker workers[MAX_WORKERS]; // 职工数组
int numWorkers = 0; // 实际职工数量
// 函数声明
void addWorker(); // 添加职工
void outputWorkers(); // 输出所有职工信息
void searchWorker(); // 查询职工信息
void deleteWorker(); // 删除职工信息
void modifyWorker(); // 修改职工信息
void saveToFile(); // 将职工信息保存到文件中
void loadFromFile(); // 从文件中读取职工信息
// 主函数
int main() {
int choice;
// 从文件中读取职工信息
loadFromFile();
// 显示菜单
printf("职工信息管理系统\n");
printf("1. 添加职工\n");
printf("2. 输出所有职工信息\n");
printf("3. 查询职工信息\n");
printf("4. 删除职工信息\n");
printf("5. 修改职工信息\n");
printf("6. 退出程序\n");
// 循环处理用户输入
while (1) {
printf("\n请选择操作(1-6):");
scanf("%d", &choice);
switch (choice) {
case 1:
addWorker();
break;
case 2:
outputWorkers();
break;
case 3:
searchWorker();
break;
case 4:
deleteWorker();
break;
case 5:
modifyWorker();
break;
case 6:
// 将职工信息保存到文件中
saveToFile();
printf("谢谢使用,再见!\n");
exit(0);
default:
printf("无效的选择,请重新输入!\n");
}
}
return 0;
}
// 添加职工
void addWorker() {
struct Worker worker;
int i;
// 输入职工信息
printf("请输入职工号(不重复):");
scanf("%d", &worker.id);
for (i = 0; i < numWorkers; i++) {
if (workers[i].id == worker.id) {
printf("职工号已存在,请重新输入!\n");
return;
}
}
printf("请输入姓名:");
scanf("%s", worker.name);
printf("请输入性别(男或女):");
scanf("%s", worker.gender);
printf("请输入出生年月(yyyy-mm-dd):");
scanf("%s", worker.birth);
printf("请输入学历:");
scanf("%s", worker.education);
printf("请输入职务:");
scanf("%s", worker.position);
printf("请输入工资:");
scanf("%lf", &worker.salary);
printf("请输入住址:");
scanf("%s", worker.address);
printf("请输入电话:");
scanf("%s", worker.phone);
// 将职工信息添加到数组末尾
workers[numWorkers++] = worker;
printf("职工信息添加成功!\n");
}
// 输出所有职工信息
void outputWorkers() {
int i;
printf("职工号\t姓名\t性别\t出生年月\t学历\t职务\t工资\t住址\t电话\n");
for (i = 0; i < numWorkers; i++) {
printf("%d\t%s\t%s\t%s\t%s\t%s\t%.2f\t%s\t%s\n",
workers[i].id, workers[i].name, workers[i].gender,
workers[i].birth, workers[i].education, workers[i].position,
workers[i].salary, workers[i].address, workers[i].phone);
}
}
// 查询职工信息
void searchWorker() {
int id, i;
printf("请输入要查询的职工号:");
scanf("%d", &id);
// 查找职工信息
for (i = 0; i < numWorkers; i++) {
if (workers[i].id == id) {
printf("职工号\t姓名\t性别\t出生年月\t学历\t职务\t工资\t住址\t电话\n");
printf("%d\t%s\t%s\t%s\t%s\t%s\t%.2f\t%s\t%s\n",
workers[i].id, workers[i].name, workers[i].gender,
workers[i].birth, workers[i].education, workers[i].position,
workers[i].salary, workers[i].address, workers[i].phone);
return;
}
}
printf("职工号不存在!\n");
}
// 删除职工信息
void deleteWorker() {
int id, i, j;
printf("请输入要删除的职工号:");
scanf("%d", &id);
// 查找职工信息
for (i = 0; i < numWorkers; i++) {
if (workers[i].id == id) {
// 将数组中该职工后面的元素往前移动
for (j = i + 1; j < numWorkers; j++) {
workers[j - 1] = workers[j];
}
numWorkers--;
printf("职工信息删除成功!\n");
return;
}
}
printf("职工号不存在!\n");
}
// 修改职工信息
void modifyWorker() {
int id, i;
printf("请输入要修改的职工号:");
scanf("%d", &id);
// 查找职工信息
for (i = 0; i < numWorkers; i++) {
if (workers[i].id == id) {
// 修改职工信息
printf("请输入姓名:");
scanf("%s", workers[i].name);
printf("请输入性别(男或女):");
scanf("%s", workers[i].gender);
printf("请输入出生年月(yyyy-mm-dd):");
scanf("%s", workers[i].birth);
printf("请输入学历:");
scanf("%s", workers[i].education);
printf("请输入职务:");
scanf("%s", workers[i].position);
printf("请输入工资:");
scanf("%lf", &workers[i].salary);
printf("请输入住址:");
scanf("%s", workers[i].address);
printf("请输入电话:");
scanf("%s", workers[i].phone);
printf("职工信息修改成功!\n");
return;
}
}
printf("职工号不存在!\n");
}
// 将职工信息保存到文件中
void saveToFile() {
FILE *fp;
int i;
fp = fopen("workers.dat", "wb");
if (fp == NULL) {
printf("无法打开文件!\n");
return;
}
fwrite(&numWorkers, sizeof(int), 1, fp); // 先写入职工数量
fwrite(workers, sizeof(struct Worker), numWorkers, fp); // 再写入职工信息
fclose(fp);
}
// 从文件中读取职工信息
void loadFromFile() {
FILE *fp;
int i;
fp = fopen("workers.dat", "rb");
if (fp == NULL) {
return;
}
fread(&numWorkers, sizeof(int), 1, fp); // 先读取职工数量
fread(workers, sizeof(struct Worker), numWorkers, fp); // 再读取职工信息
fclose(fp);
}
```
注意,在使用 fwrite 和 fread 函数写入和读取结构体时,要确保结构体的成员顺序和类型与文件中的数据一致。此外,可以通过文件操作函数 fopen 和 fclose 来打开和关闭文件,通过参数 "wb" 和 "rb" 来指定以二进制方式打开文件,并进行写入和读取操作。
阅读全文