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

Posted shangzh!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
            Con

以上是关于C#程序设计之面向对象程序设计基础的主要内容,如果未能解决你的问题,请参考以下文章

七java基础之对象

《C#零基础入门之百识百例》(五十一)面向对象概述 -- 一维多项式求值

CLR设计类型之接口

C#基础-面向对象详解

C#基础-面向对象详解

Java设计模式之初学者笔记——设计模式基础讲解