zoukankan      html  css  js  c++  java
  • 对象数组空指针异常说明——C#中使用对象数组必须分别为其开辟空间

    场景

         定义一个学生类,包含字段(学号,姓名,语文成绩,数学成绩,英语成绩)、属性(总成绩)、三个方法分别为(求平均分、数学平均分、语文平均分)。

    要求:main()方法中,定义一个学生类型的数组,保存全班所有同学的信息,并通过控制台为每个同学输入字段(学号,姓名,语文成绩,数学成绩,英语成绩)的值,最后,控制台输出班级一共有多少个学生,各科及总分平均分分别为多少。

    实验方法

    1.        在控制台应用程序程序中编写代码,项目名为student

    2.        分析类的成员。

    3.        编写类声明语句,包括字段、、属性、方法声明。

    实验结果

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace Student
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("请输入班级中学生人数:");
                int num = int.Parse(Console.ReadLine());
                Student[] stu = new Student[num];
                for (int i = 0; i < stu.Length; i++)
                {
                    stu[i] = new Student();//必须分别开辟空间            
    	    }
                int count=0;
                int sumShuxue=0;
                int sumYuwen=0;
                int sumYingyu=0;
                int sumScore=0;
                int avgShuxue,avgYuwen, avgYingyu, avgScore;
                for (int i = 0; i < stu.Length; i++)
                {
                    Console.WriteLine("请输入第{0}个学生的学号:", i+1);
                    stu[i].Num = string.Format(Console.ReadLine());
                    Console.WriteLine("请输入第{0}个学生的姓名:", i + 1);
                    stu[i].Name = string.Format(Console.ReadLine());
                    Console.WriteLine("请输入第{0}个学生的语文成绩:", i + 1);
                    stu[i].Yuwen = int.Parse(Console.ReadLine());
                    Console.WriteLine("请输入第{0}个学生的数学成绩:", i + 1);
                    stu[i].Shuxue = int.Parse(Console.ReadLine());
                    Console.WriteLine("请输入第{0}个学生的英语成绩:", i + 1);
                    stu[i].Yingyu = int.Parse(Console.ReadLine());
                    count++;
                }
                for (int j = 0; j < stu.Length; j++)
                {
                    sumYuwen = sumYuwen + stu[j].Yuwen;
                    sumShuxue = sumShuxue + stu[j].Shuxue;
                    sumYingyu = sumYingyu + stu[j].Yingyu;
                    sumScore = sumScore + stu[j].Score;
                }
                avgYuwen = sumYuwen / count;
                avgShuxue = sumShuxue / count;
                avgYingyu = sumYingyu / count;
                avgScore = sumScore / count ;
                Console.WriteLine("一共有{0}名学生,班级语文平均分为{1},数学平均分为{2},班级英语成绩分为{3},总分平均分为{4}",count,avgYuwen,avgShuxue,avgYingyu,avgScore);
                Console.ReadLine();
            }
        }
        class Student
        {
            public string num;
    
            public string Num
            {
                get { return num; }
                set { num = value; }
            }
            string name;
    
            public string Name
            {
                get { return name; }
                set { name = value; }
            }
            int yuwen;
    
            public int Yuwen
            {
                get { return yuwen; }
                set { yuwen = value; }
            }
            int shuxue;
    
            public int Shuxue
            {
                get { return shuxue; }
                set { shuxue = value; }
            }
            int yingyu;
    
            public int Yingyu
            {
                get { return yingyu; }
                set { yingyu = value; }
            }
            public int Score 
            {
                get { return yingyu + shuxue + yuwen; }  
            }
         
        }
    
    }
    


     

    如有转载请请务必保留此出处:http://www.cnblogs.com/xiangyangzhu/
  • 相关阅读:
    Swift8-枚举Enumerations
    Swift7-闭包
    Swift6-函数
    Swift5-控制流
    Swift4-集合类型
    什么是node.js
    nodejs的安装
    环境变量的认识,,,
    shell是什么,各种shell的初步认识,适用于初学者
    exports和module.exports的区别
  • 原文地址:https://www.cnblogs.com/xiangyangzhu/p/4239806.html
Copyright © 2011-2022 走看看