1、- 0 -攀 枝 花 学 院 实 验 报 告实验课程:Visual C#.NET 程序设计教程 实验项目:上机实验 6 实验日期:2015.05.12系:数计学院 成绩: 1、实验目的1、初步掌握常用集合的创建和操作方法。2、初步掌握索引器的定义和使用。3、初步掌握泛型接口、泛型类、泛型属性和泛型方法的使用。2、实验要求1.熟悉 Visual Studio.Net2010 的基本操作方法。2.认真阅读本章相关内容,尤其是案例。3.实验前进行程序设计,完成源程序的编写任务。4.反复操作,直到不需要参考教材、能熟练操作为止。 3、实验步骤1、设计一个 Windows 应用程序,定义一个 Teach
2、er 类,包含姓名和职称两个字段和一个输出自己信息的方法,并用 ArrayList 实现与实例 6_1 相同的功能。源程序如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Collections;namespace Test4_1public partial cla
3、ss Form1 : Formpublic Form1()InitializeComponent();public class Teacherprivate string name;private string job;public Teacher(string name, string job)- 1 -this.name = name;this.job = job;public string GetMessage()return string.Format(“姓名:0n 职称:1。“, this.name, this.job);ArrayList a = new ArrayList();p
4、rivate void Show()foreach (object btObj in a)Teacher btErgodic = (Teacher)btObj;lblShow.Text += “n“ + btErgodic.GetMessage();private void btAdd_Click(object sender, EventArgs e)Teacher x = new Teacher(txtName.Text, txtJob.Text);a.Add(x);lblShow.Text = “;Show();private void btInster_Click(object send
5、er, EventArgs e)int Index = Convert.ToInt32(txtIndex.Text);Teacher x = new Teacher(txtName.Text,txtJob.Text);a.Insert(Index, x);lblShow.Text = “;Show();private void btDelete_Click(object sender, EventArgs e)int Index = Convert.ToInt32(txtIndex.Text);a.RemoveAt(Index);lblShow.Text = “;Show();private
6、void btErgodic_Click(object sender, EventArgs e)- 2 -lblShow.Text = “;Show();运行结果如图所示:2、设计一个 Windows 应用程序,定义一个 Student 类,包含学号和姓名两个字段,并定义一个班级类 ClassList,该类包括一个 Student 集合,使用索引器访问该集合,实现与实例 6_3 类似的功能。源程序如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using
7、 System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace Test4_2public partial class Form1 : Formpublic Form1()InitializeComponent();- 3 -public class Studentprivate string number;private string name;public Student(string number,string name)this.number = number;this.n
8、ame = name;public string Numbergetreturn number;public string Namegetreturn name;public class ClassListprivate Student student;public ClassList(int x)student = new Studentx;public Student thisint indexgetif (index = student.Length)return null;return studentindex;setif (index = student.Length)- 4 -re
9、turn;studentindex = value;public Student thisstring getgetforeach (Student s in student)if (s.Name.IndexOf(get) != -1 | s.Number.IndexOf(get) != -1)return s;return null;ClassList a = new ClassList(50);private void btAdd_Click(object sender, EventArgs e)int index = Convert.ToInt32(txtFigure.Text) - 1
10、;Student s = new Student(txtNumber.Text, txtName.Text);aindex=s;lblShow.Text = string.Format(“第0位同学信息添加成功!n 学号:1!姓名:2“, index + 1,s.Number,s.Name);private void btNumber_Click(object sender, EventArgs e)Student s = atxtNumber.Text;if (s != null)lblShow.Text = string.Format(“找到学号为:0的同学的信息!n 学号:1!姓名:2“
11、, txtNumber.Text, s.Number, s.Name);elselblShow.Text = string.Format(“没有找到学号为:0的同学的信息“,txtNumber.Text);private void btName_Click(object sender, EventArgs e)Student s = atxtName.Text;- 5 -if (s != null)lblShow.Text = string.Format(“找到姓名为:0的同学的信息!n 学号:1!姓名:2“, txtName.Text, s.Number, s.Name);elselblSh
12、ow.Text = string.Format(“没有找到姓名为:0的同学的信息“,txtName.Text);private void btShow_Click(object sender, EventArgs e)int index = Convert.ToInt32(txtFigure.Text)-1;Student s = aindex;if (s != null)lblShow.Text = string.Format(“第0位同学的信息为:n 学号:1姓名:2“, index + 1, s.Number, s.Name);elselblShow.Text = string.Form
13、at(“没有第0位同学的信息!“,index+1);运行结果如图所示:- 6 -3、设计一个 Windows 应用程序,要求如下。(1)构造一个产品基本类。(2)分别定义家电、日用百货、衣服等派生类,要求具有不同的特征和行为。(3)定义一个泛型货架类,约束参数类型为产品类,该泛型的货架类包括一个泛型集合,用于存放各种产品对象,并包含一个方法,用于输出每个产品的相关信息。(4)再仿照实例 6_4,定义泛型的货架类对象,完成对产品的添加和信息的输出。源程序如下:using System;using System.Collections.Generic;using System.ComponentM
14、odel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace Test4_3public partial class Form1 : Formpublic Form1()InitializeComponent();Product sh = new Product();private void btAdd1_Click(object sender, EventArgs e)sh.shangpings.Add(new Jiadi
15、an(txtName.Text);lblShow.Text += string.Format(“n添加家电类:0成功“, txtName.Text);private void btAdd2_Click(object sender, EventArgs e)sh.shangpings.Add(new Bauhuo(txtName.Text);lblShow.Text += string.Format(“n添加日用百货类:0成功“, txtName.Text);private void btAdd3_Click(object sender, EventArgs e)sh.shangpings.Ad
16、d(new Yifu(txtName.Text);lblShow.Text += string.Format(“n添加衣服类:0成功“, txtName.Text);- 7 -private void btPut_Click(object sender, EventArgs e)lblShow.Text = sh.ShangjiaTo();public abstract class Shangpinpublic string name;public Shangpin(string name) this.name = name; public abstract string Shangjia()
17、;public class Jiadian : Shangpinpublic Jiadian(string name) : base(name) public override string Shangjia()return string.Format(“0:家电类:请轻拿轻放!“, name);public class Bauhuo : Shangpinpublic Bauhuo(string name) : base(name) public override string Shangjia()return string.Format(“0:日用百货类:请仔细清点数目!“, name);p
18、ublic class Yifu : Shangpinpublic Yifu(string name) : base(name) public override string Shangjia()return string.Format(“0:衣服类:材质易损,请托管保留!“, name);public class Product where T : Shangpinprivate List shs = new List();public List shangpings- 8 -get return shs; public string ShangjiaTo()string msg = string.Empty;foreach (T sh in shs)msg += “n“ + sh.Shangjia();return msg;运行结果如图所示:四、实验总结通过这次实验,了解了常用集合的创建和操作方法,索引器的定义和使用,泛型接口、泛型类、泛型属性和泛型方法的使用,这次实验中,对于泛型的使用并不是十分熟练,还需要多加练习,实验过程中,对于理论知识有了更深层次的理解,不再那么片面。