C#实验报告-类与对象(共12页)_第1页
C#实验报告-类与对象(共12页)_第2页
C#实验报告-类与对象(共12页)_第3页
C#实验报告-类与对象(共12页)_第4页
C#实验报告-类与对象(共12页)_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上实验项目名称: 类与对象一、实验目的和要求1.C#程序编写的过程和基本要求; 2.面向对象的程序设计思维(基本思想) ; 3.类的组成、声明和定义; 4.对象的定义(类的实例化) ; 5.理解字段和属性,属性的定义以及相对应的访问修饰符; 6.方法以及方法的重载; 7.构造函数的使用; 8.类的继承(重点); 9.类的多态性(难点)二、实验内容和过程1. 上机实验1: 问题描述:编写一个学生类,其中包括3个数据成员:学号、姓名、年龄,以及若干成员函数。同时编写主函数使用这个类,实现对学生数据的赋值和输出。要求:使用成员函数实现对数据的输出 (显示学生的相关信息) ;使

2、用构造函数实现对数据的输入 (可以重载多个构造函数并使用)。 提示:三个成员变量使用什么访问控制符?提高要求:将三个成员变量定义为属性,并且学号和姓名只能读不能写,年龄可写,但是要符合1826 之间。解决方法说明:在学生类中,定义学号、姓名、年龄相关的字段以及属性;编写带三个参数的构造函数,实现对学生学号、姓名、年龄数据的输入;重载构造函数,带两个参数,实现对学生学号、姓名的输入;编写成员函数print(),实现对数据的输出;编写主函数,使用这个类,实现对学生数据的赋值和输出;l 实例化学生类;l 使用对象.print()方法。关键代码及注释:class student protected s

3、tring stuNum; protected string stuName; protected int stuAge; public string StuNum /定义属性:学号 get return stuNum; public string StuName /定义属性:姓名 get return stuName; public int StuAge /定义属性:年龄 get return stuAge; set if (value >= 18 | value <= 26) /限制年龄 stuAge = value; public student(string number,

4、 string name, int age) /构造函数1,实现对数据的输入 stuNum = number; stuName = name; stuAge = age; Console.WriteLine("请输入学号"); stuNum = Console.ReadLine(); Console.WriteLine("请输入姓名"); stuName = Console.ReadLine(); Console.WriteLine("请输入年龄"); stuAge = Convert.ToInt32(Console.ReadLine

5、(); public student(string number, string name) /构造函数2,实现对数据的输入 stuNum = number; stuName = name; Console.WriteLine("请输入学号"); stuNum = Console.ReadLine(); Console.WriteLine("请输入姓名"); stuName = Console.ReadLine(); public void print() /print方法,输出学生信息 if (stuAge != 0) Console.WriteLin

6、e(stuName + "的学号是:" + stuNum + ",年龄是:" + stuAge); Console.ReadLine(); else Console.WriteLine(stuName + "的学号是:" + stuNum); Console.ReadLine(); public static void Main() /主函数,使用学生类 student A = new student("209", "A", 18); A.print(); student B = new stu

7、dent("11", "B"); B.print(); 出错调试说明:排除错误的数据类型数据的输入,没有出错。运行结果说明(附运行界面图)图1 实验1运行结果图2. 上机实验2 问题描述: 定义一个电话Telephone类,有两个公有字段 numbers (号码)和attributi(归属区),还有一个拔号 dial()和响铃ring()方法; 创建一个 Telephone 类的子类 Mobilephone,它继承父类的两个字段和方法,新增一个私有字段brand(品牌)以及一个方法 playmp3(); 创建以下两个类并实例化,调用相应的方法(方法内容用

8、 Messagebox显示提示即可,比如点击电话的“来电”按钮,显示“你的电话响了”之类的提示)。 解决方法说明: 创建基类Telephone类,在类里定义两个字段numbers (号码)和attributi(归属区); 声明虚成员拔号 dial()方法,声明响铃ring()方法,方法内都用引用 MessageBox.Show()方法; 创建子类Mobilephone类继承于Telephone类,定义字段brand(品牌)以及一个方法 playmp3(),方法内引用 MessageBox.Show()方法; 子类Mobilephone类用override重写拔号 dial()方法,使用关键字b

9、ase访问基类的 dial()方法; 界面设计; 实例化Telephone类和Mobilephone类; 编写事件代码,调用相应的方法以及在MessageBox.Show()方法里的“内容”这一参数里调用相应的字段; 调试; 把步骤里的override关键字改成new关键字; 调试并与步骤的结果比较。程序界面设计:图2 实验2接界面设计图关键代码及注释: public partial class Form1 : Form Telephone telephone = new Telephone(); /实例化 Telephone类 Mobilephone mobilephone = new Mo

10、bilephone(); /实例化 Mobilephone类 public Form1() InitializeComponent(); private void button1_Click(object sender, EventArgs e) MessageBox.Show(telephone.numbers,"号码", MessageBoxButtons.OK); private void button2_Click(object sender, EventArgs e) MessageBox.Show(telephone.attribution, "所在地

11、", MessageBoxButtons.OK); private void button3_Click(object sender, EventArgs e) telephone.dial(); private void button4_Click(object sender, EventArgs e) telephone.ring(); private void button5_Click(object sender, EventArgs e) MessageBox.Show(mobilephone.numbers, "号码", MessageBoxButto

12、ns.OK); private void button6_Click(object sender, EventArgs e) MessageBox.Show(mobilephone.attribution, "所在地", MessageBoxButtons.OK); private void button7_Click(object sender, EventArgs e) mobilephone.dial(); private void button8_Click(object sender, EventArgs e) mobilephone.ring(); privat

13、e void button9_Click(object sender, EventArgs e) mobilephone.playmp3(); public class Telephone public string numbers = "" /字段numbers public string attribution = "梅州" /字段attribution public virtual void dial() /虚成员dial() 方法 MessageBox.Show("电话", "拨号方式", MessageB

14、oxButtons.OK); public void ring() / ring()方法 MessageBox.Show("电话响了", "来电", MessageBoxButtons.OK); public class Mobilephone : Telephone private string brand; /字段brand public override void dial() /用override重写 dial()方法 base.dial(); /base关键字访问基类 dial()方法 MessageBox.Show("手机"

15、;, "拨号方式", MessageBoxButtons.OK); public void playmp3() MessageBox.Show("谁动了我的琴弦-周笔畅", "来电铃声", MessageBoxButtons.OK); 运行界面图(其一):实验2 运行界面图上机实验3:问题描述: 创建抽象类Shape,声明求面积的抽象方法 GetArea() ; 创建子类,矩形Rectangle,重写基类的GetArea()方法,实现求面积(长X宽) ; 创建子类,圆Circle,重写基类的GetArea()方法,实现求面积(PI X

16、 半径2) ; 创建窗体应用程序,进行相应的实例化,显示计算结果。 解决方法说明: 用abstract关键字 ,创建抽象类Shape以及声明求面积的抽象方法 GetArea(); 创建子类矩形Rectangle,定义属性长Lenth 和宽Weight,重写基类的GetArea()方法,方法内容是返回长与宽的乘积; 创建子类圆Circle,定义属性半径R,重写基类的GetArea()方法,方法内容是返回面积(PI X 半径2) ; 界面设计及属性设置; 编写相应的事件内容,在button1_Click(object sender, EventArgs e)事件中,根据单选按钮,分别实例化Rect

17、angle类和Circle类,并判断文本框所输入的是否是数字,调用相应的方法; 调试。 程序界面设计: 图3 实验3界面设计图关键代码及注释: public partial class Form1 : Form public Form1() InitializeComponent(); private void Form1_Load(object sender, EventArgs e) textBox1.Text = "输入长:" textBox2.Text = "输入宽:" textBox3.Text = "输入半径:" priv

18、ate void textBox1_Enter(object sender, EventArgs e) textBox1.SelectAll(); private void textBox2_Enter(object sender, EventArgs e) textBox2.SelectAll(); private void textBox3_Enter(object sender, EventArgs e) textBox3.SelectAll(); private void button1_Click(object sender, EventArgs e) if (radioButton

19、1.Checked = true) Rectangle rectangle = new Rectangle(); float aa=1; if (Single.TryParse(textBox1.Text, out aa) = false | Single.TryParse(textBox2.Text, out aa) = false) MessageBox.Show("请重新输入", "提示", MessageBoxButtons.OK); else rectangle.Length = Convert.ToSingle(textBox1.Text);

20、 rectangle.Weight = Convert.ToSingle(textBox2.Text); MessageBox.Show(rectangle.GetArea().ToString(), "矩形面积", MessageBoxButtons.OK); textBox1.Text = "输入长:" textBox2.Text = "输入宽:" else Circle circle = new Circle(); float bb = 1; if (Single.TryParse(textBox3.Text, out bb)

21、= false) MessageBox.Show("请重新输入", "提示", MessageBoxButtons.OK); circle.R = Convert.ToSingle(textBox3.Text); MessageBox.Show(circle.GetArea().ToString(),"圆形面积",MessageBoxButtons.OK); textBox3.Text = "输入半径:" public abstract class Shape /抽象类 public abstract double GetArea();/抽象方法 public class Rectangle : Shape /子类矩形 private float lenth ,weight ; public float Length get return lenth; set lenth = value; public float Weight get return weight; set weight = value; public override double GetArea() /重写 GetArea() 方法 return lenth * weigh

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论