【相关推荐】
- 你可以看下这个问题的回答https://ask.csdn.net/questions/7712683
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
该回答引用自GPT-3.5,由博主GISer Liu编写:
这个问题需要用 C
语言编写一个程序来管理职工档案并生成简明信息。首先,我们需要创建一个包含员工姓名、序号、性别和年龄信息的结构体,并建立一个结构数组来存储员工信息。接下来,编写函数来实现输入员工信息、显示原始数据、制作简明数据、删除简明数据等功能。最后,创建一个简单的菜单来提供这些操作。
cCopy code
#include
// 职工数据结构
struct Worker {
char name[50];
int id;
char gender;
int age;
};
// 简明职工数据结构
struct WorkerShort {
char name[50];
int age;
};
// 全局变量
struct Worker workers[10]; // 存储员工信息的结构数组
struct WorkerShort workerShorts[10]; // 存储简明员工信息的结构数组
int numWorkers = 0; // 记录当前已输入的员工数量
readin:cCopy code
void readin() {
printf("请输入职工信息:\n");
for (int i = 0; i < 10; i++) {
printf("姓名:");
scanf("%s", workers[i].name);
printf("序号:");
scanf("%d", &workers[i].id);
printf("性别:");
scanf(" %c", &workers[i].gender);
printf("年龄:");
scanf("%d", &workers[i].age);
numWorkers++;
}
printf("信息输入完成。\n");
}
display:cCopy code
void display() {
printf("原始数据如下:\n");
for (int i = 0; i < numWorkers; i++) {
printf("姓名:%s, 序号:%d, 性别:%c, 年龄:%d\n", workers[i].name, workers[i].id, workers[i].gender, workers[i].age);
}
}
makeShort:cCopy code
void makeShort() {
printf("制作简明数据...\n");
for (int i = 0; i < numWorkers; i++) {
strcpy(workerShorts[i].name, workers[i].name);
workerShorts[i].age = workers[i].age;
}
printf("简明数据制作完成。\n");
}
deleteShort:cCopy code
void deleteShort(char *name) {
int deleted = 0;
for (int i = 0; i < numWorkers; i++) {
if (strcmp(workerShorts[i].name, name) == 0) {
// 找到匹配的职工姓名,将其删除
for (int j = i; j < numWorkers - 1; j++) {
strcpy(workerShorts[j].name, workerShorts[j + 1].name);
workerShorts[j].age = workerShorts[j + 1].age;
}
deleted = 1;
numWorkers--;
break;
}
}
if (deleted)
printf("职工 %s 数据已删除。\n", name);
else
printf("未找到职工 %s 的数据。\n", name);
if (numWorkers == 0)
printf("简明数据已清空。\n");
}
cCopy code
int main() {
int choice;
do {
printf("菜单信息:\n1、输入数据\n2、显示原始数据\n3、制作简明数据\n4、删除简明数据\n5、结束退出\n");
printf("请选择操作(输入1-5):");
scanf("%d", &choice);
switch (choice) {
case 1:
readin();
break;
case 2:
display();
break;
case 3:
makeShort();
break;
case 4:
char name[50];
printf("请输入要删除的职工姓名:");
scanf("%s", name);
deleteShort(name);
break;
case 5:
printf("程序已退出。\n");
break;
default:
printf("无效选择,请重新输入。\n");
}
} while (choice != 5);
return 0;
}
这个方案包含了所需的所有功能,并提供了简单的菜单供用户选择。如果有任何问题或需要进一步解释,请随时提出。
如果该回答解决了您的问题,请采纳!如果没有,请私信联系或评论您的疑惑