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#程序设计之面向对象程序设计基础的主要内容,如果未能解决你的问题,请参考以下文章