You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#入门问题:如何实现基于院系的荣誉学生GPA判定规则

基于院系调整荣誉学生判定逻辑的C#实现修改

针对需求,我们需要修改IsHonor方法,结合院系信息做分支判定,同时修正GPA类型以支持小数阈值(比如3.5)。以下是修改后的完整代码:

using System;

namespace Denemee
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Student student1 = new Student("Oguz", "Engineering", 4.0);
            Student student2 = new Student("i2", "Arc", 2.0);
            Student student3 = new Student("Alice", "Arc", 3.5);
            Student student4 = new Student("Bob", "Engineering", 2.9);

            Console.ReadLine();
        }

        public class Student
        {
            public string name;
            public string dept;
            public double gpa; // 改为double类型,支持小数GPA

            public Student(string name, string dept, double gpa)
            {
                this.name = name;
                this.dept = dept;
                this.gpa = gpa;

                Console.WriteLine($"{name} is {(IsHonor() ? "" : "not ")}honor student");
            }

            public bool IsHonor()
            {
                // 忽略大小写判断院系,避免输入格式问题
                if (string.Equals(dept, "Engineering", StringComparison.OrdinalIgnoreCase))
                {
                    return gpa >= 3.0;
                }
                else if (string.Equals(dept, "Arc", StringComparison.OrdinalIgnoreCase))
                {
                    return gpa >= 3.5;
                }
                // 其他院系可在此添加自定义规则,当前默认不满足
                return false;
            }
        }
    }
}

关键改动说明:

  • GPA类型修正:将gpa字段从int改为double,因为实际GPA多为小数,且建筑系的3.5阈值无法用整数存储。
  • 院系分支判定:在IsHonor方法中根据院系设置不同GPA阈值:
    • 工程系学生GPA≥3.0即符合荣誉学生标准
    • 建筑系学生需要GPA≥3.5才符合
  • 鲁棒性优化:使用StringComparison.OrdinalIgnoreCase比较院系名称,避免因输入大小写(如"engineering"或"ENGINEERING")导致判断错误。
  • 输出简化:用三元运算符简化控制台输出逻辑,代码更简洁。

内容的提问来源于stack exchange,提问作者oguzkr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 11:15:36