实验项目名称: 实验学时: 同组学生姓名: 实验地点: 实验日期: 实验成绩: 批改教师: 批改时间: 一、实验目的和要求实验目的:1、理解面向对象的概念,掌握C#的定义类和创建对象的方法2、区分类的不同数据成员,包括常量、字段、和属性的定义方法,并学会控制其可访问性3、掌握类的方法成员的声明与调用,理解各种参数在方法中的意义及使用4、理解构造函数和析构函数的作用机制实验要求:1、熟悉Visual Studio.NET2010的基本操作方法2、认真阅读本章相关内容,尤其是案例3、实验前进行程序设计,完成源程序的编写任务4、反复操作,直到不需要参考教材、能熟练操作为止二、实验设备及环境设备:奔腾4及奔腾4以上计算机环境:Visual Studio .NET 2010三、实验任务1、设计一个简单的Windows应用程序,在文本框中输入两个点的坐标值,单击“确定”按钮时显示两点之间的距离。
要求定义一个Point类,包括:(1)两个私有字段表示两个坐标值2)一个构造函数通过传入的参数对坐标值初始化3)两个只读属性对坐标值的读取4)一个方法包含一个Point类对象作为形参该对象和自己的距离2、自定义一个时间类该类包含小时、分、秒、字段与属性,具有将秒增加1秒的方法要求定义一个Time类,包括:(1)三个私有字段表示时、分、秒2)两个构造函数,一个通过传入的参数对时间初始化,另一个获取系统当前的时间3)三个只读属性实现对时、分、秒的读取4)一个方法用于对秒增加1秒(注意60进位的问题)3、设计一个Windows应用程序,在该程序中定义一个类和班级类,以处理每个学生的学号、姓名,语文、数学和英语三门课程的期末考试成绩,要求:(1)能查询每个学生的总成绩2)能显示全班前三名的名单3)能显示单科成绩最高分和不及格的学生名单4)能统计全班学生的平均成绩5)能显示各科成绩在不同分数段的学生人数百分比设计提示:(1)定义一个Student学生类,包含字段(学号、姓名、语文成绩、数学成绩、英语成绩)和属性(总成绩)等2)定义一个StudentList班级类,包含一个Student类型的数组(用来保存全班学生的信息)以及若干个实现上述要求的方法等。
3)设计用户操作界面,首先让用户能输入一个学生的信息,当单击“添加”按键时把这些信息添加到班级对象的学生数组中当单击“完成”按钮时调用班级类的方法来显示所要求统计的统计结果当用户在查询框中输入学生的名字后,并单击“查询”按钮时显示该学生的总成绩四、实验结果与分析1、private void button1_Click(object sender, EventArgs e) { int x1, y1, x2, y2; x1 = Convert.ToInt16 (textBox1.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; } public 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()); textsecond.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.Now.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[] args);{ 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”,”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{ private 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; this.name=name; this.chinese=chinese; this.math=math; this.english=english; }public string Number { get { return this.number;} } public string Name { get { return this.name;} } 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 chinese+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;} chineseAver=s/list.Count; return c。