第一个模块——主函数main()的功能是:根据选单的选项调用各函数,并完成相应的功能。 第二个模块——Menu()的功能是:显示提示选单。 第三个模块——Quit()的功能是:退出选单。 第四个模块——Create()的功能是:创建新的数据记录。 第五个模块——Add()的功能是:增加新的数据记录,并返回选单。 第六个模块——Find()的功能是:按要求查询相关的信息,如果找到了,则显示该信息,如果未找到,则提示文件中没有该信息,并返回选单。 第七个模块——Alter()[的功能是:修改某条记录的信息,如果未找到要修改的记录,则提示系统中无此记录,并返回选单。 第八个模块——Delete()的功能是:删除某条记录,如果未找到要删除的记录,则提示通讯录中没有,并返回选单。 第九个模块——List()的功能是:显示所有记录。 职工工资管理系统的设计与实现 (1)职工信息包括:职工号(char num[10])、职工名(char name[10])、职工级别(char type[10])、工资(float money)(2)除了总的模块要求外,还需计算a.职工的平均工资;b.按工资由低到高排序用C语言编写代码
时间: 2024-03-22 16:41:37 浏览: 29
好的,以下是一个简单的职工工资管理系统的C语言代码,包括9个模块和计算平均工资、按工资排序的功能:
```
#include <stdio.h>
#include <string.h>
// 定义职工结构体
struct Employee {
char num[10];
char name[10];
char type[10];
float money;
};
// 声明函数
void Menu();
void Create(struct Employee * e, int n);
void Add(struct Employee * e, int n);
void Find(struct Employee * e, int n);
void Alter(struct Employee * e, int n);
void Delete(struct Employee * e, int n);
void List(struct Employee * e, int n);
void Sort(struct Employee * e, int n);
float Average(struct Employee * e, int n);
// 主函数
int main() {
int n = 0; // 记录职工数量
struct Employee e[100]; // 定义一个结构体数组,最多存储100个职工信息
while (1) {
Menu(); // 显示选单
int choice;
scanf("%d", &choice); // 获取用户选择的选项
switch (choice) {
case 1:
Create(e, n);
n++;
break;
case 2:
Add(e, n);
n++;
break;
case 3:
Find(e, n);
break;
case 4:
Alter(e, n);
break;
case 5:
Delete(e, n);
n--;
break;
case 6:
List(e, n);
break;
case 7:
Sort(e, n);
break;
case 8:
printf("平均工资为: %.2f\n", Average(e, n));
break;
case 0:
return 0;
default:
printf("请输入正确的选项!\n");
break;
}
}
return 0;
}
// 显示选单
void Menu() {
printf("========================================\n");
printf(" 职工工资管理系统 \n");
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(" 0.退出程序 \n");
printf("========================================\n");
printf("请输入选项: ");
}
// 创建新的数据记录
void Create(struct Employee * e, int n) {
printf("请输入职工号: ");
scanf("%s", e[n].num);
printf("请输入职工名: ");
scanf("%s", e[n].name);
printf("请输入职工级别: ");
scanf("%s", e[n].type);
printf("请输入职工工资: ");
scanf("%f", &e[n].money);
printf("创建成功!\n");
}
// 增加新的数据记录
void Add(struct Employee * e, int n) {
printf("请输入职工号: ");
scanf("%s", e[n].num);
printf("请输入职工名: ");
scanf("%s", e[n].name);
printf("请输入职工级别: ");
scanf("%s", e[n].type);
printf("请输入职工工资: ");
scanf("%f", &e[n].money);
printf("增加成功!\n");
}
// 按要求查询相关信息并显示
void Find(struct Employee * e, int n) {
char num[10];
printf("请输入要查询的职工号: ");
scanf("%s", num);
int flag = 0; // 标记是否找到
for (int i = 0; i < n; i++) {
if (strcmp(num, e[i].num) == 0) {
printf("职工号\t职工名\t职工级别\t职工工资\n");
printf("%s\t%s\t%s\t%.2f\n", e[i].num, e[i].name, e[i].type, e[i].money);
flag = 1;
break;
}
}
if (!flag) {
printf("文件中没有该信息!\n");
}
}
// 修改某条记录的信息
void Alter(struct Employee * e, int n) {
char num[10];
printf("请输入要修改的职工号: ");
scanf("%s", num);
int flag = 0; // 标记是否找到
for (int i = 0; i < n; i++) {
if (strcmp(num, e[i].num) == 0) {
printf("请输入新的职工名: ");
scanf("%s", e[i].name);
printf("请输入新的职工级别: ");
scanf("%s", e[i].type);
printf("请输入新的职工工资: ");
scanf("%f", &e[i].money);
printf("修改成功!\n");
flag = 1;
break;
}
}
if (!flag) {
printf("系统中无此记录!\n");
}
}
// 删除某条记录
void Delete(struct Employee * e, int n) {
char num[10];
printf("请输入要删除的职工号: ");
scanf("%s", num);
int flag = 0; // 标记是否找到
for (int i = 0; i < n; i++) {
if (strcmp(num, e[i].num) == 0) {
for (int j = i; j < n - 1; j++) {
e[j] = e[j + 1];
}
printf("删除成功!\n");
flag = 1;
break;
}
}
if (!flag) {
printf("通讯录中没有该记录!\n");
}
}
// 显示所有记录
void List(struct Employee * e, int n) {
printf("职工号\t职工名\t职工级别\t职工工资\n");
for (int i = 0; i < n; i++) {
printf("%s\t%s\t%s\t%.2f\n", e[i].num, e[i].name, e[i].type, e[i].money);
}
}
// 按工资排序
void Sort(struct Employee * e, int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (e[j].money > e[j + 1].money) {
struct Employee temp = e[j];
e[j] = e[j + 1];
e[j + 1] = temp;
}
}
}
printf("按工资排序成功!\n");
}
// 计算平均工资
float Average(struct Employee * e, int n) {
float sum = 0;
for (int i = 0; i < n; i++) {
sum += e[i].money;
}
return sum / n;
}
```
请注意,这只是一个简单的示例代码,可能还存在不足之处,需要进行完善和测试。
相关推荐
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![exe](https://img-home.csdnimg.cn/images/20210720083343.png)