4. 某校運動會報名管理程式
List<string[]> data = new List<string[]>(); // 班級 學號 姓名 性別 報名項目
List<string> person = new List<string>(new[] { "100公尺", "400公尺接力", "800公尺", "跳高" });
while (true)
{
Console.Write(
@"請選擇操作項目 :
<1>批次輸入 :
<2>選手查詢 :
<3>刪除 :
<4>逐筆輸入 :
<5>顯示所有資料 :
請選擇 : ");
switch (Console.ReadLine())
{
case "1":
Console.WriteLine("批次輸入,");
Console.WriteLine("請輸入 班級、學號、姓名、性別及報名項目: ");
string s;
while ((s = Console.ReadLine()) != "")
data.Add(s.Split(' '));
break;
case "2":
while (true)
{
Console.WriteLine("選手查詢,");
Console.Write("請輸入 班級、學號、姓名 : ");
var k = Console.ReadLine().Split(' ');
foreach (var item in data)
{
if (item[0] == k[0] && item[1] == k[1] && item[2] == k[2])
{
Console.WriteLine(string.Join(" ", item));
}
}
Console.Write("繼續 : 請按1,結束 : 請按0 : ");
if (Console.ReadLine() == "0") break;
}
break;
case "3":
Console.WriteLine("刪除資料,");
while (true)
{
Console.Write("請輸入 班級、學號、姓名及報名項目 : ");
var j = Console.ReadLine().Split(' ');
foreach (var item in data)
{
if (item[0] == j[0] && item[1] == j[1] && item[2] == j[2] && item[4] == j[3])
{
Console.WriteLine("被刪除的選手資料 : " + string.Join(" ", item));
data.Remove(item);
break;
}
}
Console.Write("繼續 : 請按1,結束 : 請按0 : ");
if (Console.ReadLine() == "0") break;
}
break;
case "4":
Console.WriteLine("逐筆輸入,");
while (true)
{
Console.Write("請輸入 班級、學號、姓名及性別 : ");
string[] k = Console.ReadLine().Split(' ');
Console.WriteLine(@"報名項目 :
a : 大隊接力
b : 一顆球的距離
c : 天旋地轉
d : 滾大球袋鼠跳
e : 牽手同心
f : 100公尺
g : 400公尺接力
h : 800公尺
i : 跳高
請選擇 : ");
var r = new string[] {
"大隊接力","一顆球的距離","天旋地轉","滾大球袋鼠跳","牽手同心","100公尺","400公尺接力","800公尺","跳高"}[Console.ReadLine()[0] - 'a'];
Console.WriteLine($"輸入班級 : {k[0]}、學號 : {k[1]}、姓名 : {k[2]}、性別 : {k[3]}、報名項目 : {r}");
var ad = new string[5];
Array.Copy(k, ad, 4);
ad[4] = r;
bool no = false;
if (r != "大隊接力")
{
int personal = 0;
int team = 0;
foreach (var d in data)
{
if (!(d[0] == ad[0] && d[1] == ad[1] && d[2] == ad[2] && d[3] == ad[3]))
{
continue;
}
if (d[4] == "大隊接力") continue;
if (person.Contains(d[4])) personal++;
else team++;
}
var isPersonal = person.Contains(r);
if (isPersonal && team > 0)
{
Console.WriteLine("已報個人賽,不能再報名團體賽!");
no = true;
}
else
if (!isPersonal && personal > 0)
{
Console.WriteLine("已報團體賽,不能再報名個人賽!");
no = true;
}
else
if (personal > 2)
{
Console.WriteLine("已報名兩組個人賽,不能再報名!");
no = true;
}
else if (team > 2)
{
Console.WriteLine("已報名兩組團體賽,不能再報名!");
}
}
if (!no) data.Add(ad);
Console.Write("繼續 : 請按1,結束 : 請按0 : ");
if (Console.ReadLine() == "0") break;
}
break;
case "5":
Console.WriteLine("顯示所有資料,");
Console.WriteLine("班級\t學號\t姓名\t性別\t報名項目");
foreach (var item in data)
{
Console.WriteLine(string.Join("\t", item));
}
break;
}
}Last updated