一道不错的考试题
微软销售部招聘在线销售人员11名,三个月的业绩考核期,业绩考核分为销售业绩考核和工作激情度考核。销售业绩单位为套,工作激情度单位为分。三个月后,11个人的考核信息分别如下:
A01 198件 97分
A02 90件 103分
A02 76件 78分
A03 123件 100分
A04 77件 87分
A05 10件 54分
A06 81件 104分
A07 110件 87分
A08 45件 41分
A09 123件 99分
A10 140件 88分
A11 109件 98分
要求:
如果销售业绩高于总的平均件数N的销售人员将被留下,低于平均件数N的销售人员将被淘汰。请使用C++/C#编程实现:按照销售业绩从大到小的顺序输出被留下人员的编号信息,销售信息,工作激情度信息。
代码如下 static void Main(string[] args) { List<Sales> lsales = new List<Sales>() { new Sales{Num="A01",Performance=198,Score=97}, new Sales{Num="A02",Performance=90,Score=103}, new Sales{Num="A03",Performance=76,Score=78}, new Sales{Num="A04",Performance=123,Score=100}, new Sales{Num="A05",Performance=77,Score=87}, new Sales{Num="A06",Performance=10,Score=54}, new Sales{Num="A07",Performance=81,Score=107}, new Sales{Num="A08",Performance=110,Score=87}, new Sales{Num="A09",Performance=45,Score=41}, new Sales{Num="A10",Performance=123,Score=99}, new Sales{Num="A11",Performance=140,Score=88} }; var avr = lsales.Average(s => s.Performance); Console.WriteLine("嗨,以下人员请留下来!"); foreach (var sl in from s in lsales where s.Performance > avr orderby s.Performance descending select s) { Console.WriteLine(sl.Num + " " + sl.Performance + " " + sl.Score); } Console.ReadLine(); } //销售人员类属性 class Sales { string num; /// <summary> /// 人员编号 /// </summary> public string Num { get { return num; } set { num = value; } } int performance; /// <summary> /// 销售量 /// </summary> public int Performance { get { return performance; } set { performance = value; } } int score; /// <summary> /// 分数 /// </summary> public int Score { get { return score; } set { score = value; } } }