(3)职工信息管理职工信息包括职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等(职工号不重复),职工信息管理,可具有以下功能:职工信息录入、输出、查询、删除、修改、数据保存、文件打开等.
时间: 2023-10-10 11:08:22 浏览: 92
这是一个比较典型的职工信息管理系统,可以使用面向对象编程的思想来实现。
首先,我们可以定义一个职工类(Employee),包含职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等属性。同时,该类还应该具有以下方法:
- 构造函数:用于初始化职工对象的属性值;
- 输出方法:将职工对象的属性值输出到控制台或文件中;
- 查询方法:根据指定的条件查询职工信息,并将结果输出到控制台或文件中;
- 删除方法:根据职工号删除指定的职工信息;
- 修改方法:根据职工号修改指定的职工信息;
- 数据保存方法:将职工信息保存到文件中;
- 文件打开方法:从文件中读取职工信息并创建相应的职工对象。
另外,我们还可以定义一个职工信息管理类(EmployeeManager),用于管理多个职工对象。该类应该具有以下方法:
- 添加职工方法:向管理类中添加一个职工对象;
- 删除职工方法:根据职工号删除指定的职工对象;
- 修改职工方法:根据职工号修改指定的职工对象;
- 查询职工方法:根据指定的条件查询职工信息,并将结果输出到控制台或文件中;
- 数据保存方法:将所有职工信息保存到文件中;
- 文件打开方法:从文件中读取所有职工信息并创建相应的职工对象。
通过以上的设计,我们可以实现一个简单的职工信息管理系统。当然,具体的实现方式还需要根据具体的编程语言和框架来确定。
相关问题
职工信息管理职工信息包括职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等(职工号不重复),职工信息管理,可具有以下功能:职工信息录入、输出、查询、删除、修改、数据保存、文件打开等。 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" 来指定以二进制方式打开文件,并进行写入和读取操作。
用Java实现职工信息管理。 职工信息包括职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等(职工号不重复),职工信息管理,具有以下功能: 职工信息录入、输出、查询、删除、修改、数据保存、文件打开等。
在Java中,实现职工信息管理的一个基本框架通常会使用面向对象的设计,结合ArrayList或HashMap等数据结构来存储职工信息,以及封装相关的类和方法。以下是一个简化的步骤描述:
1. **定义类(Worker)**:创建一个名为`Worker`的类,包含属性如职工号(id)、姓名(name)、性别(gender)、出生年月(birthday)、学历(education)、职务(position)、工资(salary)、住址(address)、电话(phone)等。这些属性可以设置为私有变量,提供公共的getter和setter方法。
```java
public class Worker {
private int id;
private String name;
// ...其他属性...
// getter and setter methods
}
```
2. **创建列表或集合**:使用`ArrayList`或`HashMap`(根据需求选择,如果按职工号查找,ArrayList更合适,如果按姓名等非唯一标识查找,HashMap更方便)来存储`Worker`对象。
3. **创建管理类(WorkerManager)**:定义一个名为`WorkerManager`的类,负责对职工信息的操作,比如添加(add)、查询(find)、删除(delete)、修改(update)等方法。
```java
import java.util.ArrayList;
public class WorkerManager {
private ArrayList<Worker> workers;
public WorkerManager() {
this.workers = new ArrayList<>();
}
// add, find, delete, update methods
public void addWorker(Worker worker) {
workers.add(worker);
}
// ...定义相应的方法...
}
```
4. **文件操作**:为了实现数据保存和文件打开,可以使用`java.io`包中的`File`和`ObjectOutputStream`或`ObjectInputStream`。在`WorkerManager`类中添加方法来读取和写入职工信息到文件。
5. **主方法(optional)**:在`main`方法中测试这些功能,例如创建`Worker`对象并进行管理。
```java
public static void main(String[] args) {
WorkerManager manager = new WorkerManager();
// 使用manager对象操作职工信息...
}
```
阅读全文