实现方法有很多种,初学者 建议你使用 if else 遍历 等等 加固下基础知识
我就不写那些啰嗦代码了 .... 实现方法 大致如下
class Program
{
static void Main(string[] args)
{
// 1. 定义玩家类,并创建玩家对象
// 解决 思路
// 1)必须知道12星座的时间 之后就是两者时间的间隔对比
// 2) 实现方法有很多种 if else switch 初学者我建议你使用 这些,啰嗦代码有点多,是基础
// 实现第一题
//调用玩家对象
var players = new Players(Convert.ToDateTime("1994/6/21"));
//获取玩家的出生日期
Console.WriteLine(players.DateOfBirth);
//获取玩家的星座
Console.WriteLine(players.Constellation);
Console.WriteLine("你出生日期是:{0} 你的星座是:{1}", players.DateOfBirth, players.Constellation);
Console.WriteLine("\r\n");
//2. 某班有5个学生,三门课(数学,英语和语文)。分别实现以下要求
//填充学生数据 5个学生 这里使用了继承,你可以写在一个类中
var studentData = new List()
{
new Student(){Id=1002001, Name="学生1", Language=60, English=85, Mathematics=70},
new Student(){Id=1002002, Name="学生2", Language=50, English=59, Mathematics=80},
new Student(){Id=1002003, Name="学生3", Language=59, English=85, Mathematics=40},
new Student(){Id=1002004, Name="学生4", Language=100, English=90, Mathematics=90},
new Student(){Id=1002005, Name="学生5", Language=20, English=40, Mathematics=30},
};
//(1)求各门课的平均分; =总分/人数 =>你可以使用遍历实现,啰嗦代码有点多,我就不写了...建议你去写实现
var languageAge = studentData.Sum(s => s.Language) / studentData.Count;
var englishAge = studentData.Sum(s => s.English) / studentData.Count;
var mathematicsAge = studentData.Sum(s => s.Mathematics) / studentData.Count;
Console.WriteLine("-------------平均分-------------");
Console.WriteLine("语文:{0} 数学:{1} 英语:{2}", languageAge, mathematicsAge, englishAge);
//(2) 找出有两门以上不及格的学生,并输出其学号和不及格课程的成绩;
// 两门以上= 3门课不及格 如果课多 可以写一个独立方法计算
var getFailStudent = studentData.Where(w =>
{
if (w.Language < 60 && w.Mathematics < 60 && w.English < 60) { return true; }
return false;
}).ToList();
Console.WriteLine("\r\n\r\n-------------两门以上不及格的学生信息-------------\r\n");
foreach (var item in getFailStudent)
{
Console.WriteLine("学号:{0} 姓名:{1}", item.Id, item.Name);
Console.WriteLine("语文:{0} 数学:{1} 英文:{2}", item.Language, item.Mathematics, item.English);
}
//(3) 找出三门课平均成绩在85-90分的学生,并输出其学号和姓名 ;
var getPassStudent = studentData.Where(w =>
{
if (
(((w.Language + w.Mathematics + w.English) / 3) >= 85) && (((w.Language + w.Mathematics + w.English) / 3) <= 90))
{ return true; }
return false;
}).ToList();
Console.WriteLine("\r\n\r\n-------------三门课平均成绩在85-90分的学生-------------\r\n");
foreach (var item in getPassStudent)
{
Console.WriteLine("学号:{0} 姓名:{1}", item.Id, item.Name);
Console.WriteLine("语文:{0} 数学:{1} 英文:{2}", item.Language, item.Mathematics, item.English);
}
Console.ReadKey();
}
}
///
/// 玩家类
///
public class Players
{
///
/// 出生日期
///
public DateTime DateOfBirth { get; set; }
///
/// 星座
///
public string Constellation { get; set; }
///
/// 构造函数 根据输入的出生日期 得到星座
///
///
public Players(DateTime dateOfBirth)
{
var getClName = GetConstellation(dateOfBirth);
this.DateOfBirth = dateOfBirth;
this.Constellation = getClName;
}
///
/// 根据日期计算星座
///
///
///
string GetConstellation(DateTime date)
{
//3月21日~4月19日,白羊座
//4月20日~5月20日,金牛座
//5月21日~6月20日,双子座
//6月21日~7月21日,巨蟹座
//7月22日~8月22日,狮子座
//8月23日~9月22日,处女座
//9月23日~10月22日,天秤座
//10月23日~11月21日,天蝎座
//11月22日~12月21日,射手座
//12月22日~1月19日,摩羯座
//1月20日~2月18日,水瓶座
//2月19日~3月20日,双鱼座
var clDate = new List()
{
"3/21-4/19,白羊座",
"4/20-5/20,金牛座",
"5/21-6/20,双子座",
"6/21-7/21,巨蟹座",
"7/22-8/22,狮子座",
"8/23-9/22,处女座",
"9/23-10/22,天秤座",
"10/23-11/21,天蝎座",
"11/22-12/21,射手座",
"12/22-1/19,摩羯座",
"1/20-2/18,水瓶座",
"2/19-3/20,双鱼座"
};
var cYear = date.ToString("yyyy"); //提取出生年
//计算时间间隔获取星座信息
var name = clDate.Where(w =>
DateTime.Compare(date, Convert.ToDateTime(cYear + "/" + w.Split(',')[0].Split('-')[0])) >= 0
&&
DateTime.Compare(date, Convert.ToDateTime(cYear + "/" + w.Split(',')[0].Split('-')[1])) <= 0
);
return name.ToList()[0].Split(',')[1];
}
}
///
/// 教课 基类
///
public class Teach
{
///
/// 语文课 分数
///
public double Language { get; set; }
///
/// 数学分数
///
public double Mathematics { get; set; }
///
/// 英文分数
///
public double English { get; set; }
}
///
/// 学生类
///
public class Student : Teach
{
///
/// 学号
///
public long Id { get; set; }
///
/// 学生姓名
///
public string Name { get; set; }
}