using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace work2 { class Program { static void Main(string[] args) { string id, name, address, sex; int age,count=1,n=1; student[] array = new student[100]; Console.WriteLine("请输入学员信息(最多100个):"); for (n=1; count < 100; count++,n++) { array[count - 1] = new student(); array[count - 1].stuid = "num" + n.ToString(); Console.WriteLine("请输入第" + count.ToString() + "个学员信息:"); Console.WriteLine("学员ID为:" + array[count - 1].getid()); Console.Write("请输入学员姓名:"); name = Console.ReadLine(); name = name.Replace(" ", ""); while(true) { int i = 0; for (i = 0; i < count-1; i++) { if (array[i].getname() == name) { Console.WriteLine("该姓名已存在,请重新输入"); break; } } if (i >= count-1) { break; } else { Console.Write("请输入学员姓名:"); name = Console.ReadLine(); name = name.Replace(" ", ""); } } array[count - 1].Stuname = name; Console.Write("请输入学员地址:"); address = Console.ReadLine(); array[count - 1].Stuaddress = address; Console.Write("请输入学员性别:"); sex = Console.ReadLine(); array[count - 1].Stusex = sex; bool flag = false; while (true) { try { Console.Write("请输入学员年龄:"); age = Convert.ToInt32(Console.ReadLine()); array[count - 1].Stuage = age; flag = true; } catch (Exception ex) { Console.WriteLine(ex.Message); } if (flag) { break; } } Console.WriteLine("是否继续输入(输入n或N退出,输入其它则继续)?"); string pass = Console.ReadLine(); if (pass == "n" || pass=="N") { break; } } Console.WriteLine("您输入的所有学员的信息如下:"); foreach (student stu in array) { if (stu == null) { break; } else { stu.display(); } Console.WriteLine("================"); } while (true) { Console.WriteLine("请选择您的操作:"); Console.WriteLine("===================================="); Console.WriteLine("【1】计算平均年龄"); Console.WriteLine("【2】统计年龄最大的学员"); Console.WriteLine("【3】按学员年龄的升序输出学员信息"); Console.WriteLine("【4】检索学员信息"); Console.WriteLine("【n/N】退出"); Console.WriteLine("===================================="); string choice =Console.ReadLine(); switch (choice) { case "1": { double sum = 0; for (int i = 0; i < count; i++) { sum += array[i].getage(); } Console.WriteLine("学员的平均年龄是" + (sum / count).ToString()); }; break; case "2": { int index = 0; for (int i = 1; i < count; i++) { if (array[index].getage() < array[i].getage()) { index = i; } } Console.WriteLine("年龄最大的学员信息是:"); array[index].display(); }; break; case "3": { for (int i = 0; i < count - 1; i++) for (int j = i + 1; j < count; j++) { if (array[i].getage() > array[j].getage()) { student stu = new student(); stu = array[i]; array[i] = array[j]; array[j] = stu; } } Console.WriteLine("按升序排序后学员信息如下:"); foreach (student stu in array) { if (stu == null) break; Console.WriteLine("***************"); stu.display(); Console.WriteLine("***************"); } }; break; case "4": { while (true) { Console.WriteLine("请输入您的选择:"); Console.WriteLine("======================="); Console.WriteLine("【1】按ID检索"); Console.WriteLine("【2】按姓名检索"); Console.WriteLine("【3】按地址检索"); Console.WriteLine("【n/N】退出"); Console.WriteLine("======================="); string path = Console.ReadLine(); if (path == "n" || path == "N") break; switch (path) { case "1": { Console.WriteLine("请输入要检索学员ID:"); id = Console.ReadLine(); bool flag = false; int i = 0; for (i = 0; i < count; i++) { if (array[i].getid() == id) { flag = true; break; } } if (flag) { Console.WriteLine("检索出的学员信息为:"); array[i].display(); } else { Console.WriteLine("未检索出相关信息,请检查您输入的ID是否有误."); } }; break; case "2": { Console.WriteLine("请输入要检索学员姓名:"); name = Console.ReadLine(); bool flag = false; int i = 0; for (i = 0; i < count; i++) { if (array[i].getname() == name) { flag = true; break; } } if (flag) { Console.WriteLine("检索出的学员信息为:"); array[i].display(); } else { Console.WriteLine("未检索出相关信息,请检查您输入的姓名是否有误."); } }; break; case "3": { Console.WriteLine("请输入要检索学员地址:"); address = Console.ReadLine(); bool flag = false; int i = 0; for (i = 0; i < count; i++) { if (array[i].getaddress() == address) { if (!flag) { Console.WriteLine("检测出的学员信息如下:"); } flag = true; array[i].display(); Console.WriteLine("==================="); } } if (!flag) { Console.WriteLine("未检索出相关信息,请检查您输入的地址是否有误."); } }; break; default: Console.WriteLine("您的选择超出范围,请重新选择。"); break; } } }; break; case "n": return; case "N": return; default: Console.WriteLine("您的输入有误!"); break; } } } } class student { public string stuid; string stuname; string stuaddress; string stusex; int stuage; public student() { stuid = ""; stuname = ""; stuaddress = ""; stusex = ""; stuage = 0; } public string getid() { return stuid; } public string getname() { return stuname; } public string getaddress() { return stuaddress; } public int getage() { return stuage; } public void display() { Console.WriteLine("学员ID为:" + stuid); Console.WriteLine("学员姓名为:" + stuname); Console.WriteLine("学员地址为:" + stuaddress); Console.WriteLine("学员性别为:" + stusex); Console.WriteLine("学员年龄为:" + stuage.ToString()); } public string Stuname { get { return stuname; } set { while (true) { if (value == "") { Console.Write("您没有输入用户名,请重新输入:"); value = Console.ReadLine(); } else { stuname = value; break; } } } } public string Stuaddress { get { return stuaddress; } set { while (true) { if (value == "") { Console.Write("您没有输入地址,请重新输入:"); value = Console.ReadLine(); } else { stuaddress = value; break; } } } } public string Stusex { get { return stusex; } set { while (true) { if (value == "") { Console.Write("您没有输入性别,请重新输入:"); value =Console.ReadLine(); } else if (value == "男" || value == "女") { stusex = value; break; } else { Console.Write("您输入的性别超出范围(仅限男&&女),请重新输入:"); value = Console.ReadLine(); } } } } public int Stuage { get { return stuage; } set { while (true) { if (value < 18 || value > 26) { Console.Write("您的输入超出范围(18~26),请重新输入:"); value =Convert.ToInt32(Console.ReadLine()); } else { stuage = value; break; } } } } } }