计算GPA

namespace 求学生GPA
{
    class Program
    {            
        class Student
        {
            int no;
            string name;
            Course[] course = new Course[4];
            double GPA;
            public Student(int sno,string sname,Course[]c)
            {
                no = sno;
                name = sname;
                course = c;
            }
            public void ComputeGPA()
            {
                double ocredit = 0;//课程原始学分
                double credit = 0;//课程原始学分之和
                double grade = 0;//课程原始学分*成绩绩点之和

                for (int i=0;i<4;i++)
                {
                    ocredit = course[i].Credit;//调用属性的
                    credit += ocredit;
                    Console.WriteLine("学分为{0}的{1}成绩为{2}", course[i].Credit, course[i].Name, course[i].Score);

                    if (course[i].Score <= 100 && course[i].Score >= 90)
                        course[i].Credit = 4.0;
                    else if(course[i].Score <90 && course[i].Score >= 80)
                        course[i].Credit = 3.0;
                    else if (course[i].Score <80 && course[i].Score >= 70)
                        course[i].Credit = 2.0;
                    else if (course[i].Score < 70 && course[i].Score >= 60)
                        course[i].Credit = 1.0;
                    else 
                        course[i].Credit = 0;

                    grade += course[i].Credit * ocredit;


                }

                GPA = grade / credit;
                
            }
            public void Display()
            {
                Console.WriteLine("该同学学号为{0},姓名为{1},绩点为{2}", no, name, GPA);
            }


            }

        class Course//course和student类应该是并列的,不是从属关系
        {
            string name;//课程名
            double credit;//学分
            double score;//成绩
            public string Name
            {
                set { name = value; }
                get { return name; }
            }

            public double Credit
            {
                set
                {
                    if (value < 0) return;
                    credit = value;
                }
                get { return credit; }
            }
            public double Score
            {
                set
                {
                    if (value < 0) return;
                    score = value;
                }
                get { return score; }
            }
            public Course(string cname, int ccredit, double cscore)
            {
                name = cname;
                credit = ccredit;
                score = cscore;
            }
        }

        
        static void Main(string[] args)
        {
            Course c1 = new Course("和声学", 2, 98);
            Course c2 = new Course("作曲", 3, 97);
            Course c3= new Course("作词", 3, 87);
            Course c4 = new Course("表演", 4, 80);
            Course[] C = new Course[] { c1, c2, c3, c4 };
            Student s = new Student(14, "陈噢噢", C);
            s.ComputeGPA();
            s.Display();
        }
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值