// 增删改操作通常返回类型为布尔,表明是否成功运行 public bool addBoyfriend(string name, DateTime date, int day) { Boyfriend bf = new Boyfriend(name, date, day); number++; if (number >= 100) { return(false); } bfs[number] = bf; return(true); }
static void Main(string[] args) { while (true) { Manager m = new Manager(); for (; ;) { Console.WriteLine("\n**********【男朋友管理系统】**********"); Console.WriteLine("请选择以下操作:"); Console.WriteLine("1:新建男友"); Console.WriteLine("2:删除男友"); Console.WriteLine("3:修改男友信息"); Console.WriteLine("4:给男友排序"); Console.WriteLine("5:输出所有男友信息"); Console.WriteLine("6:退出程序\n"); string str_1 = Console.ReadLine(); try { int n = int.Parse(str_1); // 字符串转为数字可能会出错 switch (n) { case 1: // 新建男友 Console.Write("请输入男友姓名:"); string name = Console.ReadLine(); Console.Write("请输入相识日期 (格式为: 年,月,日):"); string dateStr = Console.ReadLine(); DateTime date = DateTime.Parse(dateStr); Console.Write("请输入恋爱时长:"); string dayStr = Console.ReadLine(); int day = int.Parse(dayStr); if (m.addBoyfriend(name, date, day)) { Console.WriteLine("恭喜您!添加成功!"); } else { Console.WriteLine("您的男友已满,添加失败!"); } break; case 2: // 删除男友 if (m.Number == 0) { Console.WriteLine("好惨一个人,你还没有男朋友!"); break; } Console.Write("请输入需要删除的男友姓名:"); string name_delete = Console.ReadLine(); for (int i = 1; i <= m.Number; i++) { if (m.Bfs[i].Name == name_delete) { m.Bfs[i] = m.Bfs[m.Number]; if (m.deleteBoyfriend(name_delete)) { Console.WriteLine("已成功删除!"); break; } } if (i == m.Number) { Console.WriteLine("未找到该男友,删除失败!"); } } break; case 3: // 修改男友信息 if (m.Number == 0) { Console.WriteLine("好惨一个人,你还没有男朋友!"); break; } Console.Write("请输入需要更改信息的男友姓名:"); string name_change = Console.ReadLine(); for (int i = 1; i <= m.Number; i++) { if (m.Bfs[i].Name == name_change) { Console.WriteLine("请重新输入您要更改的信息:"); Console.WriteLine("1:姓名"); Console.WriteLine("2:相识日期"); Console.WriteLine("3:恋爱时长\n"); string str_2 = Console.ReadLine(); int p = int.Parse(str_2); switch (p) { case 1: // 更改男友姓名 Console.Write("请重新输入男友姓名:"); name = Console.ReadLine(); m.Bfs[i].Name = name; Console.WriteLine("更改成功!"); break; case 2: // 更改相识日期 Console.Write("请重新输入相识日期 (格式为: 年,月,日):"); dateStr = Console.ReadLine(); date = DateTime.Parse(dateStr); m.Bfs[i].Date = date; Console.WriteLine("更改成功!"); break; case 3: // 更恋爱时长 Console.Write("请重新输入恋爱时长:"); dayStr = Console.ReadLine(); day = int.Parse(dayStr); m.Bfs[i].Day = day; Console.WriteLine("更改成功!"); break; default: Console.WriteLine("您输入的数据有误,该次操作终止!\n"); break; } break; } if (i == m.Number) { Console.WriteLine("未找到该男友,更改失败!"); } } break; case 4: // 给男友排序 if (m.Number == 0) { Console.WriteLine("好惨一个人,你还没有男朋友!"); break; } Console.WriteLine("请输入您的排序方式:"); Console.WriteLine("1:姓名(升序)"); Console.WriteLine("2:相识日期(降序)"); Console.WriteLine("3:恋爱时长(降序)\n"); string str_3 = Console.ReadLine(); int q = int.Parse(str_3); Boyfriend t = new Boyfriend("交换", DateTime.Now, 0); int j, k, index, r; r = m.Number; switch (q) { case 1: // 按男友姓名排序 for (j = 1; j < r; j++) { index = j; for (k = j + 1; k <= r; k++) { if (string.Compare(m.Bfs[k].Name, m.Bfs[index].Name) == -1) { index = k; } } /* string.Compare(str1, str2) 方法:通过逐个比较字符串中字符的 Unicode 值以判断大小 * 其返回值:[1] str1 > str2;[0] str1 = str2;[-1] str1 < str2 */ t = m.Bfs[index]; m.Bfs[index] = m.Bfs[j]; m.Bfs[j] = t; } Console.WriteLine("排序完成!"); break; case 2: // 按相识日期排序 for (j = 1; j < r; j++) { index = j; for (k = j + 1; k <= r; k++) { if (m.Bfs[k].Date > m.Bfs[index].Date) { index = k; } } t = m.Bfs[index]; m.Bfs[index] = m.Bfs[j]; m.Bfs[j] = t; } Console.WriteLine("排序完成!"); break; case 3: // 按恋爱时长排序 for (j = 1; j < r; j++) { index = j; for (k = j + 1; k <= r; k++) { if (m.Bfs[k].Day > m.Bfs[index].Day) { index = k; } } t = m.Bfs[index]; m.Bfs[index] = m.Bfs[j]; m.Bfs[j] = t; } Console.WriteLine("排序完成!"); break; default: Console.WriteLine("您输入的数据有误,该次操作终止!\n"); break; } break; case 5: // 输出所有男友信息 if (m.Number == 0) { Console.WriteLine("好惨一个人,你还没有男朋友!"); break; } Console.WriteLine("您当前一共有 " + m.Number + " 个男友。分别是:"); for (int i = 1; i <= m.Number; i++) { Console.Write("第{0}位男友信息:", i); Console.WriteLine("名字:{0} 相识日期:{1}年{2}月{3}日 恋爱时长:{4}", m.Bfs[i].Name, m.Bfs[i].Date.Year, m.Bfs[i].Date.Month, m.Bfs[i].Date.Day, m.Bfs[i].Day); } break; case 6: // 退出程序 Environment.Exit(0); // 退出整个程序 break; default: Console.WriteLine("您输入的数据有误,该次操作终止!\n"); break; } } catch (Exception e) { Console.WriteLine("您输入的数据有误,该次操作终止!"); } } } }