您的位置:首页 > 编程语言 > C#

C#类的用法

2014-01-10 14:37 232 查看
本文将由一个小例子来说明类的使用。

假如:一个班有5个学生,每个学生有5门课,课程都相同。信息如下:

姓名 学号 第一门分数 第二门分数 第三门分数 第四门分数 第五门分数

“张三” 1 55 70 67 89 66

“李四” 2 78 69 90 88 94

“王五” 3 88 54 55 67 97

“赵六” 4 77 56 45 77 69

“小飞” 5 89 97 88 91 90

要求:

输出每个人的基本信息、第一门课的平均成绩、每个人的平均成绩、挂科超过两门的学生姓名、学号,杰出学生的姓名(平均分大于或等于90,或者没挂科)。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication3
{
class Program
{
class student
{
public student(string xm, int nb, double[] sco)//带参数的构造函数
: base()
{
name = xm;
num = nb;
score = sco;
}
string name;
int num;
double[] score;
public string Name//Name只读属性
{
get { return name; }
}
public int Num//Num只读属性
{
get { return num; }
}
public double[] Score//Score[]只读属性
{
get { return score; }
}
public double average()//求学生平均成绩的动态方法,需要实例化来使用
{
double ave, sum = 0.00;
int i;
for (i = 0; i < 5; i++)
sum += score[i];
ave = sum / 5;
return ave;
}
public void outputfailure()//输出两门以上挂科学生的信息的动态方法,需要实例化来使用
{
int i, flag = 0;
for (i = 0; i < 5; i++)
{
if (score[i] < 60)
flag = flag + 1;
}
if (flag >= 2)
Console.Write("{0},{1}号\n", name, num);
}
public int failure()//求学生的挂科数目
{
int i,count=0;
for(i=0;i<5;i++)
count++;
return count;
}
public string outstanding()//求杰出学生的动态方法
{
if ((average() >= 90) || failure() == 0)
return name;
else
return null;
}
}
static void Main(string[] args)
{
int i;
double ave,sum=0.00;
double[] s1=  new double[]{55,70,67,89,66};
double[] s2 = new double[]{78,69,90,88,94};
double[] s3 = new double[]{88,54,55,67,97};
double[] s4 = new double[]{77,56,45,77,69};
double[] s5 = new double[]{89,97,88,91,90};
student[] stu={new student("张三",1,s1),new student("李四",2,s2),new student("王五",3,s3),
new student("赵六",4,s4),new student("小飞",5,s5)};
for(i=0;i<5;i++)
{
Console.WriteLine("姓名:{0},学号:{1},各科成绩:{2} {3} {4} {5} {6}", stu[i].Name,stu[i].Num,stu[i].Score[0],
stu[i].Score[1], stu[i].Score[2], stu[i].Score[3], stu[i].Score[4]);
}
Console.WriteLine("\n");
for(i=0;i<5;i++)
sum += stu[i].Score[0];
ave = sum / 5;
Console.WriteLine("第一门课的平均成绩:{0}",ave);
Console.Write("\n");
for (i = 0; i < 5; i++)
Console.WriteLine("{0}号学生的平均成绩:{1} ",i+1, stu[i].average());
Console.Write("\n");
Console.Write("有两门以上挂科的学生:\n");
for(i=0;i<5;i++)
stu[i].outputfailure();
Console.Write("\n");
Console.Write("杰出学生有:\n");
for(i=0;i<5;i++)
Console.Write("{0} ",stu[i].outstanding());
Console.Read();
}
}
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: