数据类型、运算符和表达式

实验目的

  1. 练习C#中抽象类
  2. 练习静态变量

实验内容:

1.构造一个Student类为抽象类,当中要包含抽象函数。(override)
2.构造一个小学生类Pupil继承Student类,并实现父类的抽象函数。
3.构造一个中学生类Junior继承Student类,并实现父类的抽象函数。
4.构造一个大学生类Undergraduate继承Student类,并实现父类的抽象函数。
要求分别统计小学生,中学生,大学生的人数,和学生的总人数(静态变量的用法)。

一、 核心代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        int age = Convert.ToInt32(TextBox2.Text);
        double sub1 = Convert.ToDouble(TextBox3.Text);
        double sub2 = Convert.ToDouble(TextBox4.Text);
        pupil p = new pupil(TextBox1.Text, age, sub1, sub2);
        Label1.Text = "";
        Label1.Text += p.getInfo();
        /*int num = Convert.ToInt32(TextBox1.Text);
        string name = TextBox2.Text;
        int grade = Convert.ToInt32(TextBox3.Text);
        u1 = new Undergraduate(num, name, grade);
        Label1.Text = u1.Message();*/
    }

    protected void Button2_Click(object sender, EventArgs e)
    {
        int age = Convert.ToInt32(TextBox2.Text);
        double sub1 = Convert.ToDouble(TextBox3.Text);
        double sub2 = Convert.ToDouble(TextBox4.Text);
        double sub3 = Convert.ToDouble(TextBox5.Text);
        Junior j = new Junior(TextBox1.Text, age, sub1, sub2, sub3);
        Label1.Text = "";
        Label1.Text += j.getInfo();

    }

    protected void Button3_Click(object sender, EventArgs e)
    {
        int age = Convert.ToInt32(TextBox2.Text);
        double sub1 = Convert.ToDouble(TextBox3.Text);
        double sub2 = Convert.ToDouble(TextBox4.Text);
        double sub3 = Convert.ToDouble(TextBox5.Text);
        Undergraduate u = new Undergraduate(TextBox1.Text, age, sub1, sub2);
        Label1.Text = "";
        Label1.Text += u.getInfo();

    }

    public abstract class student
    {
        protected string name;
        protected int age;
        public static int number;
        public static int number1;
        public static int number2;
        public static int number3;
        public student(string name, int age)
        {
            this.name = name;
            this.age = age;
            number++;
        }
        public string Name
        {
            get
            {
                return name;
            }
        }
        public virtual string type
        {
            get { return "学生"; }

        }
        public abstract int total();
        public string getInfo()
        {
            string result = string.Format("总人数:{0}</br>姓名:{1},{2},{3}岁</br>", number, Name, type, age, number1, number2, number3);
            if (type == "小学生")

                result += string.Format("小学生人数:{0}\n", number1);


            else if (type == "中学生")
                result += string.Format("中学生人数:{0}\n", number2);
            else
                result += string.Format("大学生人数:{0}\n", number3);
            return result;
        }
    }
    //小学生
    public class pupil : student
    {
        protected double chinese;//语文成绩
        protected double math;//数学成绩
        public pupil(string name, int age, double chinese, double math) : base(name, age)
        {
            this.name = name;
            this.age = age;
            number1++;
        }
        public override string type
        {
            get
            {
                return "小学生";

            }
        }

        public override int total()
        {

            return number;
        }
    }
    //中学生
    public class Junior : student
    {
        protected double chinese;
        protected double math;
        protected double english;//英语
        public Junior(string name, int age, double chinese, double math, double english) : base(name, age)
        {
            this.chinese = chinese;
            this.math = math;
            this.english = english;
            number2++;

        }
        public override string type
        {
            get
            {
                return "中学生";

            }
        }
        public override int total()
        {

            return number2;
        }
    }
    //大学生
    public class Undergraduate : student
    {
        protected double majors;
        protected double elective;

        public Undergraduate(string name, int age, double majors, double elective) : base(name, age)
        {
            this.majors = majors;
            this.elective = elective;
            number3++;

        }
        public override string type
        {
            get
            {
                return "大学生";

            }
        }
        public override int total()
        {

            return number3;
        }

    }
}

二、实验结果:

在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值