用C#数组设计一个简易打卡系统。公司有100名员工,编号从001到100,要求从键盘输入员工编号实现打卡,例如:002表示编号为002的员工完成了打卡。可以重复打卡,但只存储一次即可。输入quit结束打卡,然后输出所有打卡的员工编号。
时间: 2024-09-15 07:05:20 浏览: 40
为了实现一个简易的打卡系统,我们可以使用C#中的数组来存储已打卡的员工编号。首先,需要一个足够大的数组来存储100名员工的编号,然后通过循环接收用户输入,并将输入的员工编号添加到数组中。如果输入的编号已存在于数组中,则忽略该输入,以保证不会重复存储相同的编号。当用户输入"quit"时,循环终止,并遍历数组输出所有已打卡的员工编号。
下面是实现这个简易打卡系统的基本代码示例:
```csharp
using System;
using System.Collections.Generic;
class SimplePunchClockSystem
{
static void Main()
{
const int maxEmployees = 100;
int[] punchCards = new int[maxEmployees];
int index = 0;
Console.WriteLine("请输入员工编号进行打卡(输入'quit'结束):");
while (true)
{
string input = Console.ReadLine();
if (input.ToLower() == "quit")
{
break;
}
// 假设员工编号总是合法的,且输入格式正确
int employeeId = int.Parse(input);
// 检查是否已经打过卡
bool alreadyPunched = false;
for (int i = 0; i < index; i++)
{
if (punchCards[i] == employeeId)
{
alreadyPunched = true;
break;
}
}
// 如果员工编号不存在,则添加到数组
if (!alreadyPunched && employeeId > 0 && employeeId <= maxEmployees)
{
punchCards[index] = employeeId;
index++;
}
}
// 输出所有已打卡的员工编号
Console.WriteLine("已打卡的员工编号:");
for (int i = 0; i < index; i++)
{
Console.WriteLine("编号{0:000}", punchCards[i]);
}
}
}
```
在这个代码中,我们使用了一个一维数组`punchCards`来存储员工的编号,同时用一个`index`变量来跟踪数组中的有效条目数量。我们假设用户输入的编号是有效的,因此没有进行详尽的输入验证。在实际应用中,需要增加错误处理机制以处理非法输入。
阅读全文