收藏 分销(赏)

C#实验三实验报告.doc

上传人:二*** 文档编号:4500656 上传时间:2024-09-25 格式:DOC 页数:5 大小:112KB
下载 相关 举报
C#实验三实验报告.doc_第1页
第1页 / 共5页
本文档共5页,全文阅读请下载到手机保存,查看更方便
资源描述
. . . . ##########X 实 验 报 告 实验课程名称: 面向对象的程序设计 实验项目名称:实验三C#面向对象程序设计 专 业 班 级: ########## 学 号: X 姓 名: 新浪微博:圣痕轨迹 指 导 教 师: X 实验三 C#面向对象程序设计 一、实验目的 1.理解C#语言是如何表达面向对象编程基本思想。 2.掌握类对象的定义。 3.了解类的封装方法,以与如何创建类和对象。 4.了解成员变量和成员方法的特性。 5.掌握静态成员的用法。 6.掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数。能够根据给定的要求定义类并实现类的成员函数。 7.理解类的成员的访问控制的含义,公有、私有和保护成员的区别。 8.掌握参数传递的用法。 9.掌握属性的作用和使用。 二、实验要求 1. 分析程序,上机验证结果。 2. 写出程序,并调试程序,要给出测试数据和实验结果。 3. 整理上机步骤,总结经验和体会。 4. 完成实验日志和上交程序。 三、实验容 题目一:程序分析 (1)分析下面两个程序,确定那个程序好,说明理由。 程序1: 程序2: 第二个好,能让我们更直观的看清圆的周长和面积。 (2)分析程序,写出程序的运行结果,并上机进行验证。 (3)分析程序,写出程序的运行结果,并上机进行验证。 (4)分析程序,写出程序的运行结果,并上机进行验证,然后回答后面问题。 请回答以下问题: (1) 按你自己的算法修改以上程序,比如可只输出生成的账户数。 (2) 把注释去掉后会怎样,为什么? 没有影响,因为注释不影响程序执行。 (3) 为什么display用类名直接引用,可以用对象来引用么?尝试输出结果。 不能用对象来引用。 (4) 类的静态变量和非静态变量的引用区别。判断一下语句的正确性: 静态方法只能使用静态变量,不能使用实例变量。因为对象实例化之前,实例变量不可用。这个观点真确么?(√) 类的静态变量只有一个版本,所有实例对象引用的都是同一个版本。(√) 对象实例化后,每个实例变量都被制作了一个副本,它们之间互不影响。(√) 题目二:程序编写 (1) 实现一个包含类属性方法的简单加法程序,并能显示结果。 namespace Test { classAdd { double a, b; public Add(double a, double b) { this.a = a; this.b = b; } publicvoid DisplayAdd() { Console.WriteLine("{0}", a + b); } staticvoid Main(string[] args) { double a, b; Console.WriteLine("请输入要求和的两个数:"); a = Convert.ToInt64(Console.ReadLine()); b = Convert.ToInt64(Console.ReadLine()); Add s = newAdd(a, b); s.DisplayAdd(); Console.ReadLine(); } } } (2) 实现一个Person类,要求:属性包含、年龄、号、工作、工资等,并显示各属性的值。 namespace Person { classPerson { string name, id, job; int age; double wage; private Person(string name, int age, string id, string job, double wage) { this.name = name; this.age = age; this.id = id; this.job = job; this.wage = wage; } privatevoid DisplayPerson() { Console.WriteLine(":{0}\n年龄:{1}\n号:{2}\n工作:{3}\n工资:{4} ", name, age, id, job, wage); } staticvoid Main(string[] args) { Person p = newPerson("圣痕轨迹", 20, "130***********", "学生", 0); p.DisplayPerson(); Console.ReadLine(); } } } (3)编写一个传值调用的程序。 程序功能要求:程序首先给整型变量x 和y 赋初值3,5,然后使用传值调用方式调用方法对x 和y 做乘方并与输出x 和y 的乘方值,最后输出x和y得值。再将此方法给为对象调用加ref修饰查看输出结果差异。 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test6 { classPower { void DisplayPower1(double x, double y) { x = Math.Pow(x, 2); y = Math.Pow(y, 2); Console.WriteLine("x的值为:{0},y的值为:{1}", x, y); } void DisplayPower2(ref double x, ref double y) { x = Math.Pow(x, 2); y = Math.Pow(y, 2); Console.WriteLine("x的值为:{0},y的值为:{1}", x, y); } staticvoid Main(string[] args) { double a = 3, b = 5; Power A = newPower(); A.DisplayPower1(a, b); Console.WriteLine("传值调用后a的值为:{0},b的值为:{1}", a, b); A.DisplayPower2(ref a, ref b); Console.WriteLine("引用调用后a的值为:{0},b的值为:{1}", a, b); Console.ReadLine(); } } } [思考题] 1. 方法的参数传递有哪些方式?区别时什么? 方法的参数传递分为参数按值传递和参数按引用传递两种:参数按值传递是在调用带参数的方法时,参数的值复制到方法中;参数按引用传递是一个方法的参数是对象或数组。 2. 什么是构造方法。 构造方法是一种特殊的成员方法,在C#中,任何变量在被使用前都必须先设置初值.C#提供了为类的成员变量赋初值的专门方法。 [实验总结] 通过本次上机实验,我理解了C#语言是如何表达面向对象编程基本思想,掌握了类对象的定义,了解类的封装方法、如何创建类和对象,以与成员变量和成员方法的特性。掌握了静态成员的用法和构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数。还能够根据给定的要求定义类并实现类的成员函数。最后,还掌握了参数传递的用法和属性的作用和使用 5 / 5
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服