C#程序设计之面向对象程序设计基础

C#程序设计之面向对象程序设计基础

题1

题目描述
定义一个描述学生基本信息的类,属性包括姓名、学号以及C#、英语和数学成绩,方法包括设置姓名和学号、设置三门课的成绩和输出相关学生的信息,最后求出总成绩和平均成绩。

代码

//定义一个描述学生基本信息的类,
//属性包括姓名、学号,C#、英语和数学成绩,
//方法包括设置姓名和学号、设置三门课的成绩和输出相关学生的信息,
//最后求出总成绩和平均成绩。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace clsStudent
{
    class clsStudent
    {
        string strName;
        string strStuNo;
        int strCSharpScore;
        int strEnglishScore;
        int strMathsScore;

        public clsStudent(string _strName, string _strStuNo,
            int _strCShapeScore, int _strEnglishScore, int _strMathsScore)
        {
            strName = _strName;
            strStuNo = _strStuNo;
            strCSharpScore = _strCShapeScore;
            strEnglishScore = _strEnglishScore;
            strMathsScore = _strMathsScore;
           
        }

        public void DisplayStudentInfo()
        {
            Console.WriteLine("该生的信息为:");
            Console.WriteLine("-------------------------------------");
            Console.WriteLine("姓名为:" + strName);
            Console.WriteLine("学号为:" + strStuNo);
            Console.WriteLine("C#的成绩为:" + strCSharpScore);
            Console.WriteLine("英语的成绩为:" + strEnglishScore);
            Console.WriteLine("数学的成绩为:" + strMathsScore);
            int strAllScore = strCSharpScore + strMathsScore + strEnglishScore;
            Console.WriteLine("总成绩为:" + strAllScore);
            int strAvgScore = strAllScore/3;
            Console.WriteLine("平均成绩为:" + strAvgScore);
            Console.ReadLine();
        }
    }
    class Test
    {
        static void Main()
        {
            clsStudent stu = new clsStudent("李三", "0900101", 90, 89, 99);
            stu.DisplayStudentInfo();
        }
    }
}

运行结果
在这里插入图片描述

题2

题目描述
定义一个人员类clsPerson,属性包括姓名、编号、性别,并包括用于输入与输出的方法。在此基础上派生出学生类clsStudent(增加成绩)和教师类clsTeachers(增加教龄),并实现对学生和教师信息的输入与输出。

代码

//定义一个人员类clsPerson,
//包括属性:姓名、编号、性别和用于输入输出的方法。
//在此基础上派生出学生类clsStudent(增加成绩)和
//教师类clsTeacher(增加教龄),
//并实现对学生和教师信息的输入输出。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Inheritance
{
    public class clsPerson
    {
        string strName;
        string strPNo;
        string strPSex;
        public void SetPersonInfo(string _strName, string _strPNo, string _strPSex)
        {
            strName = _strName;
            strPNo = _strPNo;
            strPSex = _strPSex;
        }
        public void Display()
        {
            Console.WriteLine("姓名为:" +
                strName + ";编号为:" + strPNo + ";性别为:" + strPSex);
        }
    }
    public class clStudent : clsPerson
    {
        int nScore;
        public void SetStudentScore(int _nScore)
        {
            nScore = _nScore;
        }

        public void DisplayScore()
        {
            Console.WriteLine("成绩为:" + nScore);
        }
    }
    public class clsTeacher : clsPerson
    {
        int nSeniority;
        public void SetSeniority(int _nSeniority)
        {
            nSeniority = _nSeniority;
        }

        public void DisplaySeniority()
        {
            Console.WriteLine("教龄为:" + nSeniority);
        }
    }
    public class clsTest
    {
        static void Main()
        {
            clStudent stu = new clStudent();
            stu.SetPersonInfo("张三", "20090807", "男");
            stu.SetStudentScore(900);
            stu.Display();
            stu.DisplayScore();

            clsTeacher teacher = new clsTeacher();
            teacher.SetPersonInfo("李老师", "20000304", "男");
            teacher.SetSeniority(15);
            teacher.Display();
            teacher.DisplaySeniority();
            Console.ReadLine();
        }
    }
}

运行结果
在这里插入图片描述

题3

题目描述
设有一个描述坐标点的clsPoint类,其私有变量x和y代表一个点的x,y坐标值。编写程序实现一下功能:利用构造函数传递参数,并设其默认参数值为60和75,利用display()方法输出这一默认值,利用公有方法setPoint()将坐标值修改为(100,120),并利用方法输出修改后的坐标值
代码

//设有一个描述坐标点的clsPoint类,
//其私有变量x和y代表一个点的x、y坐标值。
//编写程序实现以下功能:
//利用构造函数传递参数,并设其默认参数值为60和75,
//利用方法display()输出这一默认的值;
//利用公有方法setPoint()将坐标值修改为(100,120),
//并利用方法输出修改后的坐标值。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Inheritance
{
    class clsPoint
    {
        private double dblX;
        private double dblY;
        public clsPoint(double _dblX, double _dblY)
        {
            dblX = _dblX;
            dblY = _dblY;
        }
        public void display()
        {
            Console.WriteLine("坐标点的x坐标为:" + dblX + ";y坐标为:" + dblY);
        }
        public void setPoint(double _dblX, double _dblY)
        {
            dblX = _dblX;
            dblY = _dblY;
        }
    }
    class Test
    {
        static void Main()
        {
            clsPoint point = new clsPoint(60.00, 75.00);
            point.display();
            point.setPoint(100.00, 120.00);
            point.display();
            Console.Read();
        }
    }
}

运行结果
在这里插入图片描述

题4

题目描述
把定义平面直角坐标系上的一个点的类clsPoint作为基类,派生出描述一条直线的类clsLine,再派生出一个矩形类clsRect,要求方法能求出两点间的距离、矩形的周长和面积等。设计一测试程序,并构造出完整的程序。
代码

//把定义平面直角坐标系上的一个点的类clsPoint作为基类,
//派生出描述一条直线的类clsLine,
//再派生出一个矩形类clsRect。
//要求方法能求出两点间的距离、矩形的周长和面积等。
//设计一个测试程序,并构造出完整的程序。

//根号下(|X1-X2|的平方+|Y1-Y2|的平方)这个就是两点间距离公式

//矩形的周长:(长+宽 )乘以2
//矩形的面积:

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

namespace Inheritance
{
    public class clsPoint
    {
        public double dblX;
        public double dblY;
        public clsPoint()
        {
        }
        public clsPoint(double _dblX, double _dblY)
        {
            dblX = _dblX;
            dblY = _dblY;
        }
    }
    public class clsLine : clsPoint
    {
        clsPoint point1, point2;
        public clsLine()
        {
        }
        public clsLine(clsPoint _clsPoint1, clsPoint _clsPoint2)
        {
            point1 = _clsPoint1;
            point2 = _clsPoint2;
        }
        public double getDistance()
        {
            double dblDistance, dblDistance1, dblDistance2;
            dblDistance1 = Math.Pow(point1.dblX - point2.dblX, 2.0);
            dblDistance2 = Math.Pow(point1.dblY - point2.dblY, 2.0);
            dblDistance = Math.Sqrt(dblDistance1 + dblDistance2);
            return dblDistance;
        }
    }
    public class clsRect : clsLine
    {
        clsLine line1, line2, line3, line4;
        public clsRect(clsLine _line1, clsLine _line2, clsLine _line3, clsLine _line4)
        {
            line1 = _line1;
            line2 = _line2;
            line3 = _line3;
            line4 = _line4;
        }

        public double getPerimeter()
        {
            double dblPerimeter;
            dblPerimeter = 2 * (line1.getDistance() + line2.getDistance());
            return dblPerimeter;
        }

        public double getArea()
        {
            double dblArea;
            dblArea = line1.getDistance() * line2.getDistance();
            return dblArea;
        }
    }
    class Test
    {
        static void Main()
        {
            clsPoint point1 = new clsPoint(0.0, 10.0);
            clsPoint point2 = new clsPoint(20.0, 10.0);
            clsPoint point3 = new clsPoint(20.0, 0);
            clsPoint point4 = new clsPoint(0.0, 0.0);

            clsLine line1 = new clsLine(point2, point1);
            clsLine line2 = new clsLine(point3, point2);
            clsLine line3 = new clsLine(point4, point3);
            clsLine line4 = new clsLine(point1, point4);

            clsRect rect = new clsRect(line1, line2, line3, line4);

            double dblDistOfLine;
            dblDistOfLine = line1.getDistance();
            Console.WriteLine("两点之间的距离为:" + dblDistOfLine);

            double dblPerimeterOfRect, dblAreaOfRect;
            dblPerimeterOfRect = rect.getPerimeter();
            dblAreaOfRect = rect.getArea();
            Console.WriteLine("矩形的周长为:" + dblPerimeterOfRect);
            Console.WriteLine("矩形的面积为:" + dblAreaOfRect);
            Console.ReadLine();
        }
    }
}

运行结果
在这里插入图片描述

题5

题目描述
设计一个项目,由程序随机产生12个数,并把12个数按从大到小的顺序进行输出

代码

using System;

namespace Example_RandomAndSort
{
    class Random_50_10
    {
        static void Main()
        {
            int[] a = new int[12];
            Random ran = new Random();
            for (int i = 0; i < a.Length; i++)
            {
            one_num:
                a[i] = (int)ran.Next(50) + 1;
                for (int j = 0; j < i; j++)
                {
                    if (a[i] == a[j])
                        goto one_num;
                }
            }
            Console.WriteLine("排序前的随机数:");
            foreach (int n in a)
            {
                Console.Write("{0} ", n);
            }
            Console.WriteLine();

            Console.WriteLine("排序后的随机数:");
            SelectionSorter ss = new SelectionSorter();
            ss.Sort(a);
            for (int m = 0; m < a.Length; m++)
            {
                Console.Write("{0} ", a[m]);
            }
            Console.ReadLine();
        }        
    }

    /// <summary>
    /// 选择排序
    /// </summary>
    public class SelectionSorter
    {
        private int min;
        public void Sort(int[] list)
        {
            for (int i = 0; i < list.Length - 1; i++)
            {
                min = i;
                for (int j = i + 1; j < list.Length; j++)
                {
                    if (list[j] < list[min])
                        min = j;//将最小值放在相应位置
                }
                int t = list[min];
                list[min] = list[i];
                list[i] = t;
            }
        }
    }
}

运行结果
在这里插入图片描述

题6

题目描述
定义一个类,用于实现四则运算。其中,加法要求实现加法重载,其余的减法、乘法、除法也要实现各自运算方法的重载。

代码

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

namespace MethodReload
{
    class Program
    {
        static void Main(string[] args)
        {
            clsAdd add1 = new clsAdd();
            int nResult1, nResult2;
            double dblResult1, dblResult2;
            Console.Write("两个整数相加的结果:");
            nResult1 = add1.Add(10, 20);
            Console.WriteLine(nResult1);
            Console.Write("两个整数相加的结果:");
            nResult2 = add1.Add(10, 20, 30);
            Console.WriteLine(nResult2);

            Console.Write("两个浮点数相加的结果:");
            dblResult1 = add1.Add(10.5, 20.6);
            Console.WriteLine(dblResult1);
            Console.Write("两个浮点数相加的结果:");
            dblResult2 = add1.Add(10.5, 20.6, 30.7);
            Console.WriteLine(dblResult2);


            clsSub sub = new clsSub();
            int nResult3, nResult4;
            double dblResult3, dblResult4;
            Console.Write("两个整数相减的结果:");
            nResult3 = sub.Sub(10, 20);
            Console.WriteLine(nResult3);
            Console.Write("两个整数相减的结果:");
            nResult4 = sub.Sub(10, 20, 30);
            Console.WriteLine(nResult4);

            Console.Write("两个浮点数相减的结果:");
            dblResult3 = sub.Sub(10.5, 20.6);
            Console.WriteLine(dblResult3);
            Console.Write("两个浮点数相减的结果:");
            dblResult4 = sub.Sub(10.5, 20.6, 30.7);
            Console.WriteLine(dblResult4);

            Console.Read();
        }
    }

    class clsAdd
    {
        public int Add(int n1, int n2)
        {
            return n1 + n2;
        }

        public int Add(int n1, int n2,int n3)
        {
            return n1 + n2 + n3;
        }

        public double Add(double d1, double d2)
        {
            return d1 + d2;
        }

        public double Add(double d1, double d2,double d3)
        {
            return d1 + d2 + d3;
        }
    }

    class clsSub
    {
        public int Sub(int n1, int n2)
        {
            return n1 - n2;
        }

        public int Sub(int n1, int n2, int n3)
        {
            return n1 - n2 - n3;
        }

        public double Sub(double d1, double d2)
        {
            return d1 - d2;
        }

        public double Sub(double d1, double d2, double d3)
        {
            return d1 - d2 - d3;
        }
    }
}

运行结果
在这里插入图片描述

  • 8
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

稚皓君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值