C#面向对象基础实验2

上传人:简****9 文档编号:109719281 上传时间:2019-10-27 格式:DOC 页数:10 大小:364.50KB
返回 下载 相关 举报
C#面向对象基础实验2_第1页
第1页 / 共10页
C#面向对象基础实验2_第2页
第2页 / 共10页
C#面向对象基础实验2_第3页
第3页 / 共10页
C#面向对象基础实验2_第4页
第4页 / 共10页
C#面向对象基础实验2_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《C#面向对象基础实验2》由会员分享,可在线阅读,更多相关《C#面向对象基础实验2(10页珍藏版)》请在金锄头文库上搜索。

1、C#面向对象基础实验2一、实验名称: C#面向对象基础实验2二、实验时间:三、实验地点:四、实验目的:1. 熟悉C#程序面向对象编程的基本语法、操作;2. 进行一些验证性操作,给出核心源代码和实验结果运行截图。五、实验内容:1. 构造一个Circle类,它有一个成员变量半径,它有一个带形参的构造函数,函数的参数就是半径,它还有二个成员函数,一个求圆的周长,一个求圆的面积。在主程序中测试这个圆类,并输出该类构造对象的圆的周长还有面积。using System.Collections.Generic;using System.Linq;using System.Text;namespace Con

2、soleApplication2 class Program static void Main(string args) Circle a = new Circle(4); a.zhouchang(); a.mianji (); Console.ReadKey(); using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication2 class Circle private int x; public Circle(int a) x = a

3、; public void zhouchang() double c; c = 2 * 3.14 * x; Console.WriteLine(圆的周长为0, c); public void mianji() double s; s = 3.14 * 3.14 * x; Console.WriteLine(圆的面积为0, s); 2. 定义一个学生类,其中有学号、姓名、年龄3个数据成员,以及若干成员函数。同时编写主函数使用这个类,实现对学生数据的赋值和输出。要求:使用构造函数实现对数据的输入,使用成员函数实现对数据的输出。3. 下面是一个Test类的测试程序,设计出能使用如下测试程序的类,补全

4、整个程序。 static void Main(string args) Test a =new Test(68,56,2); a.shuchu( ); Console.ReadKey(); 该程序运行输出结果为:68-56-2=10using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1 class Test private int x; private int y; private int z; public Test (int

5、 a,int b,int c) x = a; y = b; z = c; public void shuchu() int t; t = x - y - z; Console.WriteLine(0-1-2=3,x,y,z,t); 4. 创建时间time1类,它包含三个整形属性:Hour,Minute,Second,他们用于表示采取统一时间格式(24小时时钟格式)的一个时间。并定义一个不含参数的 ToUniversaIString 方法,该方法 采用统一时间格式返回一个字符串。它包含6格数位2个用于表示小时,2个用于表示分钟,2个表示秒。定义一构造函数它含有三个整型参数myhour,mymin

6、ute,mysecond,并用他们来设置时间。属性 Hour Minute Second 的定义应包括数据检查,如果数据不合理 应给出提示信息,并将属性值设置为 0 。使用定义的构造函数创建time1类的一个实例,编译和测试time1 类并输出显示。5. 编写一个程序实现小型公司的工资管理。该公司主要有4类人员:经理(manager)、技术人员(technician)、销售员(salesman)、销售经理(salesmanager)。这些人员都是职员(employee),有编号、姓名、月工资信息。月工资的计算方法是:经理固定月薪8000元,技术人员每小时100元,销售员按当月销售额4提成,销售

7、经理既拿固定月工资5000元也拿销售提成,销售提成为所管辖部门当月销售额的5。要求编程计算职员的月工资并显示全部信息。(定义基类employee类,定义四个派生类manager,technician,salesman,salesmanager,派生类中有的有当月销售额这个变量,还有计算工资并按一定格式输出的方法,主程序要求起码测试四类人员,并分别输出他们的姓名,职务,当月工资) 6. 定义一个虚基类shape类,里面定义一个虚函数getarea(),从基类派生出一个circle类,该类增加一个半径变量radius,重写getarea()函数实现计算面积。从基类再派生出一个rectangle类,

8、该类有长和宽二个变量length和width,重写getarea()函数实现计算面积。主函数中测试circle类和rectangle类,并计算它们的面积输出。7. 实现交通工具Vehicle类版本一:(1)没有数据隐藏的类创建一个Vehicle 类实现上面的UML类图。 a) 含有两个public属性:load “车辆当前的载货量” maxLoad “车辆的最大载货量”。 b) 含有一个公有的构造函数用于初始化最大载货量属性maxLoad。 c) 含有两个公有的函数:public llldouble getLoad(); / 用于得到当前的载货量public double getMaxLoad

9、()/ 用于取得最大载货量(注意:所有的数据都是假定以千克(kilograms)作为单位的。在这个版本的Vehicle类中,你将把所有成员的属性设置为public,这样在下面测试程序TestVehicle1中可以直接访问这些成员。(2)编写下面的程序对Vehicle类进行测试,代码如下: public class TestVehicle1public static void Main(String args)Vehicle vehicle = new Vehicle(10000.0); Console.WriteLine(Add box #1 (500kg); vehicle.load = v

10、ehicle.load + 500.0; Console.WriteLine (Add box #2 (250kg); vehicle.load = vehicle.load + 250.0;Console.WriteLine (Add box #3 (5000kg);vehicle.load = vehicle.load + 5000.0;Console.WriteLine (Add box #4 (4000kg);vehicle.load = vehicle.load + 4000.0;Console.WriteLine (Add box #5 (300kg);vehicle.load =

11、 vehicle.load + 300.0;Console.WriteLine (Vehicle load is +vehicle.getLoad()+ kgn);应该得到以下的结果: Add box #1 (500kg)Add box #2 (250kg) Add box #3 (5000kg) Add box #4 (4000kg) Add box #5 (300kg) Vehicle load is 10050.0 kg从程序的运行结果来看,你发现了什么问题?思考如何才能避免?版本二:(1)基本数据隐藏 为了解决第一个版本中的问题,你应该隐藏类中的数据成员(load 和 maxLoad)

12、 并且提供一个方法addBox, 来检查车辆是否会发生超载。 创建一个Vehicle 类实现上面的UML类图。 A) 把load和maxLoad属性修改为private(私有的)。B) 添加addBox方法。public boolean addBox(double weight); /参数为所加箱子重量这个方法必须检查加上一个箱子后是否会超过车辆的最大载货量。如果超过了,应该拒绝装载这个箱子并返回false;否则把箱子加到车上并返回true。 注意:所有的数据都是假定以千克(kilograms)作为单位的。(2)编写下面的程序对新版本的Vehicle类进行测试,代码如下: public cla

13、ss TestVehicle2public static void Main(String args)Vehicle vehicle=new Vehicle(10000.0); Console.WriteLine (Add box #1 (500kg):+ vehicle.addBox(500.0); Console.WriteLine (Add box #2 (250kg):+ vehicle.addBox(250.0); Console.WriteLine(Add box #3 (5000kg):+ vehicle.addBox(5000.0); Console.WriteLine(Add box #4 (4000kg):+ vehicle.addBox(4000.0); Console.WriteLine (Add box #5 (300kg):+ vehicle.addBox(300.0); Console.WriteLine (Vehicle load is +vehicle.getLoa

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号