题目描述
创建一个 Student 类,用于管理学生基本信息与成绩。要求所有数据变更必须经过安全验证,不允许非法状态出现。
必须实现的字段
字段 类型 要求
Name string get; set;,set 时验证不能为空或空字符串,否则抛出 ArgumentException。
Age int get; set;,set 时验证必须在 13~30 岁之间,否则抛出 ArgumentOutOfRangeException。
Score double get; set;,set 时验证必须在 0~100 分之间。
Introduce() 方法 无参、无返回值。在控制台输出:"大家好,我是{Name},今年{Age}岁,当前成绩{Score}分。"
UpdateScore(double delta) 方法 有参、有返回值(bool)。给成绩增加 delta(可为负数)。如果计算后超出 0~100 范围,则不修改并返回 false;成功则返回 true。
IsExcellent(double threshold) 方法 有参、有返回值(bool)。判断当前 Score 是否大于等于传入的 threshold。
Main 方法测试要求
创建一个学生对象,设置合法数据,调用 Introduce()。
尝试设置 Age = 12,捕获并打印异常信息。
调用 UpdateScore(5) 增加分数,并打印返回值与当前分数。
调用 UpdateScore(200) 故意超出范围,验证返回 false 且分数未被修改。
调用 IsExcellent(90) 判断是否优秀。
using System; using System.CodeDom; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace work { internal class Student { private string _name; public string Name { get { return _name; } set { if (string.IsNullOrWhiteSpace(value)) { throw new ArgumentNullException(nameof(Name),"姓名不能为空或空字符"); } _name=value; } } private int _age; public int Age { get { return _age; } set { if(value > 30 || value < 13){ throw new ArgumentOutOfRangeException(nameof(Age),"年龄必须在 13~30 岁之间!"); } _age=value; } } private double _score; public double Score { get{ return _score; } set { if (value<0 ||value>100) { throw new ArgumentOutOfRangeException(nameof(Score),"成绩必须在0~100之间!"); } _score=value; } } //Introduce() 方法 无参、无返回值。在控制台输出:"大家好,我是{Name},今年{Age}岁,当前成绩{Score}分。" public void Introduce() { Console.WriteLine($"大家好,我是{Name},今年{Age}岁,当前成绩{Score}分。"); } //UpdateScore(double delta) 方法 有参、有返回值(bool)。给成绩增加 delta(可为负数)。如果计算后超出 0~100 范围,则不修改并返回 false;成功则返回 true。 public bool UpdateScore(double delta) { double score = delta+ _score; if ( score <= 100 && score >= 0) { _score = score; return true; } else { return false; } } //IsExcellent(double threshold) 方法 有参、有返回值(bool)。判断当前 Score 是否大于等于传入的 threshold。 public bool IsExcellent(double threshold) { if (_score > threshold) { return true; } else { return false; } } } }using System; using System.Collections.Generic; using System.Linq; using System.Security.Claims; using System.Text; using System.Threading.Tasks; namespace work { internal class Program { static void Main(string[] args) { /*创建一个学生对象,设置合法数据,调用 Introduce()。 尝试设置 Age = 12,捕获并打印异常信息。 调用 UpdateScore(5) 增加分数,并打印返回值与当前分数。 调用 UpdateScore(200) 故意超出范围,验证返回 false 且分数未被修改。 调用 IsExcellent(90) 判断是否优秀。*/ Student student = new Student(); student.Name = "zhang"; student.Age = 14; student.Score = 77; Console.WriteLine("尝试设置 Age = 12"); try { student.Age = 12; } catch (ArgumentOutOfRangeException ex) { Console.WriteLine($"捕获异常:{ex.Message}"); } Console.WriteLine(); student.Introduce(); Console.WriteLine(); Console.WriteLine("增加5分后的结果:"); if (student.UpdateScore(5)!= false) { Console.WriteLine($"增加分数成功,返回值为{student.UpdateScore(5)},当前分数为{student.Score}"); } Console.WriteLine(); Console.WriteLine("增加200分后的结果:"); if (student.UpdateScore(200) == false) { Console.WriteLine($"增加分数失败,返回值为{student.UpdateScore(200)},当前分数为{student.Score}"); } Console.WriteLine(); Console.WriteLine("判断是否优秀"); if (student.IsExcellent(90) != false) { Console.WriteLine("成绩大于90,"+student.IsExcellent(90)+",成绩为" + student.Score); } else { Console.WriteLine("成绩小于90,"+student.IsExcellent(90)+",成绩为" + student.Score); } } } }