C_实验报告[1]_第1页
C_实验报告[1]_第2页
C_实验报告[1]_第3页
C_实验报告[1]_第4页
C_实验报告[1]_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、实验项目名称: 实验学时: 同组学生姓名: 实验地点: 实验日期: 实验成绩: 批改教师: 批改时间: 一、实验目的和要求实验目的:1、理解面向对象的概念,掌握C#的定义类和创建对象的方法。2、区分类的不同数据成员,包括常量、字段、和属性的定义方法,并学会控制其可访问性。3、掌握类的方法成员的声明与调用,理解各种参数在方法中的意义及使用。4、理解构造函数和析构函数的作用机制。实验要求:1、熟悉Visual Studio.NET2010的基本操作方法。2、认真阅读本章相关内容,尤其是案例。3、实验前进行程序设计,完成源程序的编写任务。4、反复操作,直到不需要参考教材、能熟练操作为止。二、实验设备

2、及环境设备:奔腾4及奔腾4以上计算机环境:Visual Studio .NET 2010三、实验任务1、设计一个简单的Windows应用程序,在文本框中输入两个点的坐标值,单击“确定”按钮时显示两点之间的距离。要求定义一个Point类,包括:(1)两个私有字段表示两个坐标值。(2)一个构造函数通过传入的参数对坐标值初始化。(3)两个只读属性对坐标值的读取。(4)一个方法包含一个Point类对象作为形参该对象和自己的距离。2、自定义一个时间类。该类包含小时、分、秒、字段与属性,具有将秒增加1秒的方法。要求定义一个Time类,包括:(1)三个私有字段表示时、分、秒。(2)两个构造函数,一个通过传入

3、的参数对时间初始化,另一个获取系统当前的时间。(3)三个只读属性实现对时、分、秒的读取。(4)一个方法用于对秒增加1秒(注意60进位的问题)。3、设计一个Windows应用程序,在该程序中定义一个类和班级类,以处理每个学生的学号、姓名,语文、数学和英语三门课程的期末考试成绩,要求:(1)能查询每个学生的总成绩。(2)能显示全班前三名的名单。(3)能显示单科成绩最高分和不及格的学生名单。(4)能统计全班学生的平均成绩。(5)能显示各科成绩在不同分数段的学生人数百分比。设计提示:(1)定义一个Student学生类,包含字段(学号、姓名、语文成绩、数学成绩、英语成绩)和属性(总成绩)等。(2)定义一

4、个StudentList班级类,包含一个Student类型的数组(用来保存全班学生的信息)以及若干个实现上述要求的方法等。(3)设计用户操作界面,首先让用户能输入一个学生的信息,当单击“添加”按键时把这些信息添加到班级对象的学生数组中。当单击“完成”按钮时调用班级类的方法来显示所要求统计的统计结果。当用户在查询框中输入学生的名字后,并单击“查询”按钮时显示该学生的总成绩。四、实验结果与分析1、private void button1_Click(object sender, EventArgs e) int x1, y1, x2, y2; x1 = Convert.ToInt16 (textB

5、ox1.Text); y1=Convert .ToInt16 (textBox2.Text ); x2 = Convert.ToInt16(textBox3.Text ); y2 = Convert.ToInt16(textBox4.Text); Point p1 = new Point(x1, y1); Point p2 = new Point(x2, y2); label7.Text = p1.Distance(p2).ToString(); class Point public int X, Y; public Point(int I, int J) X = I; Y = J; publ

6、ic double Distance(Point p) return System.Math.Sqrt(this.X - p.X) * (this.X - p.X) + (this.Y - p.Y) *(this.Y - p.Y); 实验结果:2、private void button1_Click(object sender, EventArgs e) Time t=new Time(); texthour.Text = Convert.ToString(t.Gethour(); textminute.Text = Convert.ToString(t.Getminute(); textse

7、cond.Text = Convert.ToString(t.Getsecond(); class Time int hour, minute, second; public int Gethour()return hour; public int Getminute() return minute; public int Getsecond()return second; public Time() hour = System.DateTime.Now.Hour; minute = System.DateTime.Now.Minute; second = System.DateTime.No

8、w.Second; public Time(int h, int m, int s) hour = h; minute = m; second = s; public void AddSecond() second+; if (second = 60) second = second % 60; minute+; if (minute = 60) minute = minute % 60; hour+; 实验结果:3、namespace _43 class Program private static StudentList stulist;static void Main(string ar

9、gs); stulist=new StudentList(); Student stu1=new Student(“1105303001”,”zhangsan”,90,85,89); Student stu2=new Student(“1105303002”,”lisi”,75,85,94); Student stu3=new Student(“1105303003”,”wanger”,90,79,80); Student stu4=new Student(“1105303004”,”qianyi”.30,50,55); Student stu5=new Student(“1105303005

10、”,”sunwu”,45,67,38); stulist.Add(stu1); stulist.Add(stu2); stulist.Add(stu3); stulist.Add(stu4); stulist.Add(stu5); string str; str=Console.ReadLine(); if(str.Equal(“语文”)|str.Equals(“数学”)|str.Equals(“英语”) stulist.searchSubject(str); else stulist.searchName(str); Console.ReadLine();Class Student priv

11、ate string number; private string name; private float chinese; private float math; private float english; public Student(string number,string name,float chinese,float math,float english) this.number=number; =name; this.chinese=chinese; this.math=math; this.english=english; public string Num

12、ber get return this.number; public string Name get return ; public float Chinese set this.chiese=value; get return this.chinese; public float Math set this.math=value; get return this.math; public float English set this.english=value; get return this.english; public float Total get return c

13、hinese+math+english; Class StudentList private Listlist=new List(); private float chieseAver; private float mathAver; private float englishAver; private float totalAver; public void Add(Student s) this.list.Add(s); public float ChineseAver get float s=0; foreach(Student stu in list) s+=stu.Chinese;

14、chineseAver=s/list.Count; return chineseAver; public float MathAver get float s=0; foreach(Student stu in list) s+=stu.Math; mathAver=s/list.Count; return mathAver; public float EnglishAver get float s=0; foreach(Student stu in list) s+=stu.English; englishAver=s/list.Count; return englishAver; publ

15、ic float TotalAver get float s=0; foreach(Student stu in list) s+=stu.Total; totalAver=s/list.Count; return totalAver; public void searchName(string name) foreach(Student stu in list) if(stu.Name.Equals(name) Console.WriteLine(“学号:0,姓名:1,语文:2,数学:3,英语:4”,stu.Number,stu.Name,stu.Chinese,stu.Math,stu.E

16、nglish); public voic searchSubject(string subject) switch(subject) case”语文”; float max=0; foreach(Student stu in list) if(maxstu.Chinese) max=stu.Chinese; if(stu.Chinese60) Console.WriteLine(string.Format(“学号:”+stu.Number+”姓名:0,语文:1”,stu.Name,stu.Chinese); Console.WriteLine(“最高分0”,max); break; case”

17、数学”; float max1=0; foreach(Student stu in list) if(max1stu.Math) max1=stu.Math; if(stu.Math60) Console.WriteLine(string.Format(“学号:”+stu.Number+”姓名:0,语文:1”,stu.Name,stu.Math); Console.WriteLine(“最高分0”,max1); break; case”英语”; float max2=0; foreach(Student stu in list) if(max2stu.English) max2=stu.Eng

18、lish; if(stu.English60) Console.WriteLine(string.Format(“学号:”+stu.Number+”姓名:0,语文:1”,stu.Name,stu.English); Console.WriteLine(“最高分0”,max2); break; 实验结果:五、实验体会本次实验,重在理解面向对象的概念,掌握C#的定义类和创建对象的方法刚开始时会出现一些问题,经过与同学讨论,最后终于能调试出来,感觉自己有所进步,希望以后能自己独立完成。 实验项目名称: 实验学时: 同组学生姓名: 实验地点: 实验日期: 实验成绩: 批改教师: 批改时间: 一、实验目

19、的和要求实验目的:1、区别静态类与非静态类,掌握静态字段、静态方法和静态构造函数的定义方法。2、理解类的继承性与多态性,掌握其应用方法。3、理解抽象类、接口的概念,掌握抽象类与接口的定义及使用方法。4、理解分部类和命名空间的概念,掌握分部类和命名空间的使用方法。实验要求:1、熟悉Visual Studio.NET 2010 的基本操作方法。2、认真阅读本章相关内容,尤其是案例。3、实验前进行程序设计,完成源程序的编写任务。4、反复操作,直到不需要参考教材、能熟练操作为止。二、实验设备及环境设备:奔腾4及奔腾4以上计算机环境:Visual Studio .NET 2010三、实验任务1、设计一个

20、Windows应用程序,在该程序中首先构造一个学生基本类,再分别构造小学生、中学生、大学生等派生类,当输入相关数据,单击不同的按钮(“小学生”、“中学生”、“大学生”)时将分别创建不同的学生对象,并输出当前的学生总人数,该学生的姓名、学生类型和平均成绩。要求如下:(1)每个学生都有的字段为姓名、年龄。(2)小学生的字段还有语文、数学,用来表示这两科的成绩。(3)中学生在此基础上增加英语成绩。(4)大学生分为必修课和选修课两项成绩。(5)学生类提供方法来统计自己的总成绩并输出。(6)通过静态成员自动记录学生总人数。(7)成员初始化能通过构造函数完成。2、设计一个Windows应用程序,在该程序中

21、定义平面图形抽象类和其派生类圆、矩形和三角形。该程序实现的功能包括:输入相应图形的参数,如矩形的长和宽,单击相应的按钮,根据输入参数创建图形类并输出该对象的面积。3、声明一个接口IPlayer,包含5个接口方法:播放、停止、暂停、上一首和下一首。设计一个Windows应用程序,在该程序中定义一个MP3播放器类和一个AVI播放器类,以实现该接口,最后创建相应类的实例测试程序,如果单击AVI按钮后,再单击“播放”按钮则应显示“正在播放AVI视频!”。四、实验结果与分析1、控件属性设置控件属性设置Label1姓名:Button1小学生Label2年龄:Button2中学生Label3语文/必修课:B

22、utton3大学生Label4数学/选修课:Label6Label5英语: public abstract class Student protected string name; protected int age; public static int number; public Student(string name, int age) = name; this.age = age; number+; public string Name get return name; public abstract double Average(); public class P

23、upil : Student protected double chinese; protected double math; public Pupil(string name, int age, double chinese, double math) : base(name, age) this.chinese = chinese; this.math = math; public override double Average() return (chinese + math) / 2; public class Middle : Pupil protected double engli

24、sh; public Middle(string name, int age, double chinese, double math, double english) : base(name, age, chinese, math) this.chinese = chinese; this.math = math; this.english = english; public override double Average() return (chinese +math +english )/3; public class College : Student protected double

25、 xuanxiu; protected double bixiu;public College(string name, int age, double xuanxiu, double bixiu) : base(name, age) this.xuanxiu = xuanxiu; this.bixiu = bixiu; public override double Average() return (xuanxiu+bixiu)/2; private void button1_Click(object sender, EventArgs e) string n=Convert.ToStrin

26、g(textBox1.Text); int a=Convert.ToInt16(textBox2.Text); double ch=Convert.ToDouble(textBox3.Text); double ma=Convert.ToDouble(textBox4.Text); Pupil P1 = new Pupil(n, a, ch, ma); lable6 .Text += 总人数: + Student.number + ,姓名: + P1.Name + ,小学生, 平均成绩为: + P1.Average(); private void button2_Click(object se

27、nder, EventArgs e) string n = Convert.ToString(textBox1.Text); int a = Convert.ToInt16(textBox2.Text); double ch = Convert.ToDouble(textBox3.Text); double ma = Convert.ToDouble(textBox4.Text); double en = Convert.ToDouble(textBox5.Text); Middle M1 = new Middle (n, a, ch, ma,en ); lable6.Text += 总人数:

28、 + Student.number + ,姓名 + M1.Name + ,中学生,平均成绩为: + M1.Average() ; private void button3_Click(object sender, EventArgs e) string n = Convert.ToString(textBox1.Text); int a = Convert.ToInt16(textBox2.Text); double bx = Convert.ToDouble(textBox3.Text); double xx = Convert.ToDouble(textBox4.Text); Colleg

29、e C1 = new College (n, a,bx ,xx ); lable6.Text += 总人数: + Student.number + ,姓名 + C1.Name + ,大学生,平均成绩为: + C1.Average();实验结果:2、public abstract class Figure public abstract double Area(); public class Circle : Figure double radius; public Circle(double r) radius = r; public override double Area()return

30、radius * radius * 3.14; public class JX : Figure double ch, k; public JX(double a, double b) ch = a; k = b; public override double Area() return ch*k ; public class SJX:Figure double d,g; public SJX(double a, double b) d = a; g = b; public override double Area()return d *g/2 ; private void button1_C

31、lick(object sender, EventArgs e) Circle C1=new Circle (Convert.ToDouble (textBox1 .Text); label6.Text += 圆的面积是 + C1.Area(); private void button2_Click(object sender, EventArgs e) JX A1 = new JX(Convert.ToDouble(textBox1.Text), Convert.ToDouble(textBox2.Text); label6.Text += n矩形的面积是 + A1.Area(); priv

32、ate void button3_Click(object sender, EventArgs e) SJX B1 = new SJX(Convert.ToDouble(textBox1.Text), Convert.ToDouble(textBox2.Text); label6.Text += n三角形的面积是 + B1.Area(); 实验结果:3、控件属性设置控件属性设置Button1MP3Button5播放Button2AVIButton6暂停Button3上一首Button7下一首Button4停止Label1 IPlayer iplayer; MP3 mp3; AVI avi; p

33、rivate void button3_Click(object sender, EventArgs e) label1.Text = iplayer.Pre(); private void button4_Click(object sender, EventArgs e) label1.Text = iplayer.Stop (); private void button5_Click(object sender, EventArgs e) label1.Text = iplayer.Play (); private void button6_Click(object sender, Eve

34、ntArgs e) label1.Text = iplayer.Pause (); private void button7_Click(object sender, EventArgs e) label1.Text = iplayer.Next (); private void button2_Click(object sender, EventArgs e) avi = new AVI();iplayer = (IPlayer)avi; private void button1_Click(object sender, EventArgs e) mp3 = new MP3();iplaye

35、r = (IPlayer)mp3; interface IPlayer string Play();string Stop();string Pause();string Pre();string Next(); public class MP3 : IPlayer public string Play()return 正在播放MP3歌曲!; public string Stop()return 停止播放MP3歌曲!; public string Pause()return 暂停播放MP3歌曲!; public string Pre()return 播放上一首MP3歌曲!; public st

36、ring Next()return 播放下一首MP3歌曲!; public class AVI : IPlayer public string Play()return 正在播放AVI视频!; public string Stop()return 停止播放AVI视频!; public string Pause()return 暂停播放AVI视频!; public string Pre() return 播放上一部AVI视频!; public string Next()return 播放下一部AVI视频!; 实验结果:五、实验体会 本次实验程序,重在区分静态类与非静态类,理解类的继承性与多态性,

37、抽象类与接口的使用方法。并没有太大困难,与之前所学习的相得益彰,加深了我们对类的了解。也能更加熟练地用C#进行更多的实验。实验项目名称: 实验学时: 同组学生姓名: 实验地点: 实验日期: 实验成绩: 批改教师: 批改时间: 一、实验目的和要求实验目的:1、初步掌握常用集合的创建和操作方法。2、初步掌握索引器的定义与使用。3、初步掌握泛型接口、泛型类、泛型属性和泛型方法的使用。实验要求:1、熟悉Visual Studio.NET 2010 的基本操作方法。2、认真阅读本章相关内容,尤其是案例。3、实验前进行程序设计,完成源程序的编写任务。4、反复操作,直到不需要参考教材、能熟练操作为止。二、实

38、验设备及环境设备:奔腾4及奔腾4以上计算机环境:Visual Studio .NET 2010三、实验任务1、设计一个Windows应用程序,定义一个Teacher类,包含姓名和职称两个字段和一个输出教师信息的方法,并用ArrayList实现与实例6-2相似的功能。2、设计一个Windows应用程序,定义一个Student类,包含学号和姓名两个字段,并定义一个班级类ClassList,该类包括一个Student集合,使用索引器访问该集合,实现与实例6-3类似的功能。3、设计一个Windows应用程序,要求如下:(1)构造一个学生基本类。(2)分别构造小学生、中学生、大学生等派生类,要求具有不同

39、的特征和行为。(3)定义一个泛型班级类,约束参数类型为学生类,该泛型的班级类包括一个泛型集合,用于存放各种学生对象,并包含一个方法用于输出每个学生的相关信息。(4)仿照实例6-4,定义泛型的班级类对象,完成对学生的添加和信息的输出。四、实验结果与分析1、namespace _61public partial class Form1 : FormArrayList ALTeachers = new ArrayList(); private void Foreach()foreach (object t in ALTeachers) Teacher tForeach = (Teacher)t; l

40、blShow.Text += n + tForeach.showmsg(); public Form1()InitializeComponent(); private void btnAdd_Click(object sender, EventArgs e) string n= Convert.ToString(textBox1.Text); string c = Convert.ToString(textBox2.Text);Teachert1 = new Teacher(n, c);ALTeachers.Add(t1); lblShow.Text = ;Foreach(); private

41、 void btnDele_Click(object sender, EventArgs e)int key = Convert.ToInt32(textBox3.Text); ALTeachers.RemoveAt(key);lblShow.Text = ;Foreach(); private void lblShow_Click(object sender, EventArgs e) class Teacherstring name;string zhicheng; public Teacher(string name, string zhicheng) = name;

42、this.zhicheng = zhicheng; public string showmsg() return string.Format(姓名:0,职称:1, name, zhicheng); public abstract class StudentBaseint age;string name; public virtual void walk();public class Pupil:StudentBasepublic override void walk() public interface IClass public class ClassA:IClasspublic list

43、NumberList;2、namespace _62public partial class Form1 : Formclass Student string name;string number;public Student(string name, string number) = name;this.number = number;public string showmsg()return string.Format(姓名:0,学号:1, name, number); class ClassList Student students; public ClassList

44、(int n) students= new Studentn; public Student thisint index get if(index=students.Length) return null; return studentsindex; set if(index=students.Length) return; studentsindex=value; 3、namespace _63 public partial class Form1:Form BanjimyBanji = new Banji( );Private void btnXiaoxuesheng_Click( obj

45、ect sender,EventArgs e) myBanji.Xueshengs.Add(new Xiaoxuesheng(txtName.Text);lblShow.Text+= string.Format(“n添加Xiaoxuesheng0成功”,txtName.Text); Private void btnZhongxuesheng_Click( object sender,EventArgs e) myBanji.Xueshengs.Add(new Zhongxuesheng(txtName.Text);lblShow.Text+= string.Format(“n添加Zhongxu

46、esheng0成功”,txtName.Text); Private void btnDaxuesheng_Click( object sender,EventArgs e) myBanji.Xueshengs.Add(new Daxuesheng(txtName.Text);lblShow.Text+= string.Format(“n添加Daxuesheng0成功”,txtName.Text); public abstract class Xuesheng protected string name;public Xuesheng(string name) = name;public abstract string Act( ); public class(Xiaoxuesheng: Xuesheng public Xiaoxuesheng(string name): base(name) publi

温馨提示

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

评论

0/150

提交评论