永发信息网

C#设计一个成绩类,急求!!!

答案:1  悬赏:30  手机版
解决时间 2021-03-02 09:02
C#设计一个成绩类,急求!!!
最佳答案
public class Score_Zqj
{
    public string Name{get;set;}
    public string ClassName{get;set;}
    public string Subject{get;set;}
    public double Score{get;private set;}
    
    public bool IsEffectiveScore
    {
        get
        {
            return Score >= 0 && Score <= 100
        }
    }
    
    public Score_Zqj()
    {
    }
    
    public Score_Zqj(string name, strign className,string subject)
    {
        Name = name;
        ClassName = className;
        Subject = subject;
    }
    
    public void InputScore()
    {
        double score = 0;
        if(double.TryParse(Console.ReadLine(),out score))
        {
            Score = score;
            
            if(!IsEffectiveScore)
                Score = 0;
        }
    }
    
    public void UpdateScore()
    {
        double score = 0;
        Console.WriteLine("please input score: ");
        if (double.TryParse(Console.ReadLine(), out score))
        {
            Score = score;
            
            while (!IsEffectiveScore)
            {
                 Console.WriteLine("Invalid score, please input again");
                    UpdateScore();
            }
        }
    }
    
    public void OutputScore()
    {
        string outputMessage = "{0} is in Class {1}, {0}'s {2} score is {3} points.";
        Console.WriteLine(string.Format(outputMessage, Name, ClassName, Subject, Score));
    }
}上述例子只是为了让你直观的看到效果 实际上UpdateScore里面不应该有输入不对重复输入的逻辑 再给你一个例子
public class Score_Zqj
    {
        public string Name { get; set; }

        public string ClassName { get; set; }

        public string Subject { get; set; }

        public double Score { get; private set; }

        public bool IsEffectiveScore
        {
            get
            {
                return 0 <= Score && Score <= 100;
            }
        }

        public Score_Zqj()
        {

        }

        public Score_Zqj(string name, string className, string subject)
        {
            Name = name;
            ClassName = className;
            Subject = subject;
        }

        public void InputScore(double inputScore)
        {

            Score = inputScore;

            if (!IsEffectiveScore)
            {
                Score = 0;
            }
        }

        public bool UpdateScore(double inputScore)
        {
            bool result = true;
            Score = inputScore;

            if (!IsEffectiveScore)
            {
                result = false;
            }

            return result;
        }

        public void OutputScore()
        {
            string outputMessage = "{0} is in Class {1}, {0}'s {2} score is {3} points.";
            Console.WriteLine(string.Format(outputMessage, Name, ClassName, Subject, Score));
        }

    }你在调用UpdateScore方法的地方加逻辑判断 只要返回值不为真 就需要一直输入 直到对为止 下面给你补上调用吧
static void main(string[] args)
{
    Score_Zqj[] szs = new Score_Zqj[5];

    for (int i = 0; i < szs.Length; i++)
    {
        Score_Zqj sz = new Score_Zqj("zhangsan" + i, "3(2)", "english");
        double score = 0;
        if (double.TryParse(Console.ReadLine(), out score))
        {
            while (!sz.UpdateScore(score))
            {
                  double.TryParse(Console.ReadLine(), out score);
            }
         }

         szs[i] = sz;
     }

     foreach (Score_Zqj sz in szs)
     {
          sz.OutputScore();
     }
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
请问电脑系统最重要启动文件的名称是哪些?
手机右上方显示锁的标志是什么意思?
绿钻过期很久了,如果续费年费。成长值能回复
赞美美食美景的成语
逸香阁烧烤简餐吧怎么去啊,有知道地址的么
楼房买几层最好
财富圈商城里面真的可以买汽车吗?
朋友送了我一个红禅木手链佛珠,可以说百分之
用什么办法可以把电脑系统还远到不同配置的电
潮汕饭店地址在什么地方,想过去办事
手机qq删除聊天记录怎么删
咸阳是个风水宝地吗
我新买的苹果电脑,更新软件需要验证我的ID号
郑州市民政局人民群众来访接待室在哪里啊,我
我看书速度慢 默读时总是在心里一个字一个字
推荐资讯
请介绍一种树的资料
理解“梦里走了许多路,醒来还是在床上”这句
怎么我一看见她或跟她打电话我就打哈欠
在家如何自制披萨(无电烤箱)
灵璧石假山有什么好处
谁有98j5,98j6,88j4(一),92sj713(三),8
在资金对所有项目不构成约束时,项目方案的经
译可副食怎么去啊,有知道地址的么
被某所学校录取可不可以不去,不去再去复读还
x = 2 while x < 30: x = x * 5 print x 为什
搂着光身美女下面没反应是怎么回事?
tpu电镀手机套和硅胶手机套 哪个好?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?