void FindByNumb() { int nNumb; printf("请输入要查的工号:"); scanf_s("%d", &nNumb); SInfo* p = FindNumb(nNumb); if (p) { printf("%d\t%s\t%g\n", p->nNumb, p->sName, p->fSala); } else { puts("工号不存在!"); } system("pause"); } void FindByName() { char sName[20], str[20]; printf("请输入要查的姓名:"); scanf_s("%s", sName, (int)sizeof(sName)); int i = -1; SInfo* p = GetData(); size_t n = GetCount(); int sum = 0; _strlwr(sName); while (++i < n) { strcpy(str, p[i].sName); _strlwr(str); if (strstr(str, sName)) printf("%d\t%s\t%g\n",p[i].nNumb, p[i].sName, p[i].fSala); ++sum; } printf("总共有%d条匹配的记录\n", sum); system("pause"); } void FindBySalary() { float fMin, fMax; printf("请输入一个工资段(两个小数):"); scanf_s("%f%f", &fMin, &fMax); if (fMin > fMax) { float t = fMin; fMin = fMax; fMax = t; } SInfo* p = GetData(); size_t n = GetCount(); int sum = 0; while (n--) { if (p->fSala >= fMin && p->fSala <= fMax) { printf("%d\t%s\t%g\n", p->nNumb, p->sName, p->fSala); ++sum; } ++p; printf("总共有%d条匹配的数据\n", sum); system(":pause"); } } int FindMenu() { system("cls"); puts("\n\n\t\t********************************"); puts("\t\t*\t1、按工号查找 *"); puts("\t\t*\t2、按姓名查找 *"); puts("\t\t*\t3、按工资段查找 *"); puts("\t\t*\t0、返回主菜单 *"); puts("\t\t********************************"); printf("\t\t请选择:"); int i = 0; scanf_s("%d", &i); switch (i) { case 1: FindByNumb(); break; case 2: FindByName(); break; case 3: FindBySalary(); break; } return i; }
时间: 2024-01-17 11:28:07 浏览: 85
这段代码实现了一个简单的员工信息查找功能,包括按照工号、姓名、工资段进行查找。具体来说,代码实现了以下几个函数:
1. `FindByNumb()`: 按工号查找函数,通过输入要查找的工号,调用`FindNumb()`函数查找该工号对应的员工信息,如果找到则输出该员工信息,否则输出工号不存在。
2. `FindByName()`: 按姓名查找函数,通过输入要查找的姓名,遍历所有员工信息,将姓名转换为小写字母,然后在员工姓名中查找是否包含该字符串,如果包含则输出该员工信息,并统计匹配的员工数量。
3. `FindBySalary()`: 按工资段查找函数,通过输入要查找的工资段,遍历所有员工信息,如果员工的工资在该工资段内,则输出该员工信息,并统计匹配的员工数量。
4. `FindMenu()`: 查找功能菜单函数,通过调用该函数,可以在菜单中选择按照工号、姓名、工资段查找员工信息,或者返回主菜单。
这些函数共同实现了一个简单的员工信息查找功能,可以根据需要进行扩展和优化。
阅读全文