这段代码定义了三个函数:add()、output()和show(),用于实现一个简单的职工信息管理系统。

add() 函数

add() 函数用于添加新的职工信息。

  1. 读取已有信息: 首先调用 read() 函数读取已存在的职工信息。
  2. 输入新信息: 使用 do-while 循环,不断提示用户输入新的职工信息。在每次输入之前,会先判断输入的职工编号是否已存在,如果存在则提示并询问是否继续输入。如果不存在,则依次输入职工的姓名、性别、出生年月、入职年月、学历、职务、住址和电话。
  3. 写入文件: 最后,询问用户是否继续输入新信息。如果用户选择不继续,则退出循环并调用 write() 函数将新的职工信息写入文件,并输出保存成功的提示信息。

output() 函数

output() 函数用于输出职工信息。它接收一个参数 t,表示要输出的职工信息的索引。该函数按照表格的格式,输出职工的编号、姓名、性别、出生年月、入职年月、学历、职务、住址和电话。

show() 函数

show() 函数用于显示所有已存储的职工信息。

  1. 读取信息: 首先调用 read() 函数读取已存在的职工信息。
  2. 输出信息: 使用 for 循环,依次输出每个职工的信息。调用 output() 函数实现输出。
  3. 处理无记录的情况: 如果没有职工信息,则输出“无记录!”的提示信息。

注意事项:

  • 代码中使用了 read()write() 两个未定义的函数,它们可能在其他地方定义。
  • 代码使用了全局变量 n 来记录已有的职工数量。

代码示例:

void add()
{
	int i, flag;
	char c;
	read();
	do
	{
		flag = 0;
		printf("\n\n");
		printf("请输入职工的编号:");
		scanf("%s", &em[n].number);
		for (i = 0; i < n; i++)
		{
			if(strcmp(em[i].number, em[n].number) == 0)
			{
				flag = 1;
				break;
			}
		}
		if(flag)
		{
				printf("!!!该职工已存在!!!\n\n");
				printf("\t\t是否继续输入?(Y/N): ");
				scanf("%c", &c);
				if(c == 'N' || c == 'n')
					break;
				continue;
		}
		printf("请输入职工姓名:");
		scanf("%s", &em[n].name);
		printf("请输入职工性别:");
		scanf("%s", &em[n].sex);
		printf("请输入职工出生年月:");
		scanf("%s", &em[n].birthday);
		printf("请输入职工入职年月:");
		scanf("%s", &em[n].date);
		printf("请输入职工学历:");
		scanf("%s", &em[n].degree);
		printf("请输入职工职务:");
		scanf("%s", &em[n].position); 
		printf("请输入职工住址:");
		scanf("%s", &em[n].add);
		printf("请输入职工电话:");
		scanf("%s", &em[n].tel);
		printf("是否继续输入?(Y/N): ");
		scanf("%*c%c", &c);
		n++;
	}while (c != 'N' && c != 'n'); 
	write();
	printf("\n\n数据已保存!\n\n");
}
       
//输出函数
  
void output(int t)
{
	printf("+--------+----+----+--------+--------+----+--------+----+------------+\n");
	printf("|职工编号|姓名|性别|出生年月|入职年月|学历|  职务  |地址|    电话    |\n");
	printf("+--------+----+----+--------+--------+----+--------+----+------------+\n");
	{
	printf("|%4s    |%3s|%3s |%7s |%7s |%4s|%6s  |%4s|%11s |\n", em[t].number, em[t].name,
			em[t].sex, em[t].birthday, em[t].date, em[t].degree, em[t].position, em[t].add, em[t].tel);
	}
}

//显示

void show()
{
	int i;
	read();
	if (n == 0)
		printf("无记录!\n\n");
	else
		for (i = 0; i < n; i++)
		{
			output(i);
		}
}

  
自定义函数

C语言职工信息管理系统:添加、输出和显示功能实现

原文地址: https://www.cveoy.top/t/topic/fwXj 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录