场景

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

要求:在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; }
} } }

对象数组空指针异常说明——C#中使用对象数组必须分别为其开辟空间的更多相关文章

  1. 根据数组下标在MongoDB中修改数组元素

    如下图这样的数据: 即文档中某个字段是一个数组,而每个数组元素又是一个对象,现在需求是对每个对象中的content字段值作情感分析后,把情感分析得到的结果增加到这个对象中去. 如上图中第1个元素,修改 ...

  2. 在thinkphp框架中使用后台传值过来的数组,在hightcart中使用数组

    js的数组是和php里面数组是不一样的,所以模板文件需要先接受,然后利用Js代码转化之后再使用,接受后台的数组有几种办法 1.后台传过来的json数组,利用Js是可以接受的,然后将json数据利用js ...

  3. PHP中的数组方法及访问方法总结

    一.数组操作的基本函数 数组的键名和值 array_values($arr);获得数组的值 array_keys($arr);获得数组的键名 array_flip($arr);数组中的值与键名互换(如 ...

  4. javascript中稀疏数组和密集数组

    密集数组 数组是一片连续的存储空间,有着固定的长度.加入数组其实位置是address,长度为n,那么占用的存储空间是address[0],address[1],address[2].......add ...

  5. C++中若类中没有默认构造函数,如何使用对象数组

    前言: 如果定义一个类,有其默认的构造函数,则使用new动态实例化一个对象数组,不是件难事,如下代码: #include <memory> #include <iostream> ...

  6. JS对象 JavaScript 中的所有事物都是对象,如:字符串、数值、数组、函数等,每个对象带有属性和方法。

    什么是对象 JavaScript 中的所有事物都是对象,如:字符串.数值.数组.函数等,每个对象带有属性和方法. 对象的属性:反映该对象某些特定的性质的,如:字符串的长度.图像的长宽等: 对象的方法: ...

  7. struts2:遍历自定义字符串数组,遍历Action实例所引用对象中的数组

    在struts2:OGNL表达式,遍历List.Map集合:投影的使用一文中已经讲述了OGNL遍历List.Map集合等功能. 本文简单写一个遍历数组的示范程序. 1. 遍历自定义字符串数组 < ...

  8. JavaScript 中有关数组对象的方法

    JS 处理数组多种方法 js 中的数据类型分为两大类:原始类型和对象类型. 原始类型包括:数值.字符串.布尔值.null.undefined 对象类型包括:对象即是属性的集合,当然这里又两个特殊的对象 ...

  9. js中的数组对象排序(方法sort()详细介绍)

    定义和用法 sort() 方法用于对数组的元素进行排序. 语法    arrayObject.sort(sortby) 参数sortby:可选.规定排序顺序.必须是函数. 返回值 对数组的引用.请注意 ...

随机推荐

  1. Hibernate每个具体类一张表映射(使用注释)

    在每个类创建一张表的情况下, 表中不使用Null值的列. 这种方法的缺点是在子类表中创建了重复的列. 在这里,我们需要在父类中使用@Inheritance(strategy = Inheritance ...

  2. Struts2 异常处理

    Struts提供了一个更简单的方式来处理未捕获的异常,并将用户重定向到一个专门的错误页面.您可以轻松地Struts配置到不同的异常有不同的错误页面. Struts的异常处理所使用的“exception ...

  3. Eclipse 重构菜单

    Eclipse 重构菜单 使用Eclipse重构 在项目开发中我们经常需要修改类名,但如果其他类依赖该类时,我们就需要花很多时间去修改类名. 但 Eclipse 重构功能可以自动检测类的依赖关系并修改 ...

  4. 支付宝热补丁技术— AndFix原理[阿里Hao]

    本文由嵌入式企鹅圈原创团队成员.阿里资深project师Hao分享. 上次我们介绍了用dexposed方案实施热补丁的原理.它本质上就是hook要改动的函数.这样一来在正式版本号公布时就不能直接拿热补 ...

  5. CentOS 5 上安装Oracle11g

    原创作品,出自 "深蓝的blog" 博客.欢迎转载.转载时请务必注明下面出处.否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlo ...

  6. ftp uploadFileAction(重要)

    TelnetOUtputStream os = ftpClient.put(filename); File file_in = new File(localPath); FileInputStream ...

  7. iOS --随机打乱一个数组的顺序 获得一个新的数组

    NSArray* arr = @[@"1",@"2",@"3"]; arr = [arr sortedArrayUsingComparato ...

  8. tomcat启动不起来,不知原因,没有报错日志,控制台一闪而过 怎么办

    在startup.bat文件中 编辑,在最后一行回车 加上一个词pause,暂停,然后再启动就看见控制台的错误信息啦,然后就自己解决吧

  9. codevs1058 合唱队形==洛谷P1091 合唱队形

    P1091 合唱队形 题目描述 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的 ...

  10. Yue Fei's Battle(组合计数递推)

    //求一个直径为 k 的树有多少种形态,每个点的度不超过 3 // 非常完美的分析,学到了,就是要细细推,并且写的时候要细心 还有除法取模需要用逆元 #include <iostream> ...