1、面向对象程序设计C#实验教案课 程 教 学 日 历课程名称: 面向对象的程序设计(C#) 学期:2014-2015-1周次章节及教学内容累计学时2实验一 熟悉V S开发环境24实验二 基本数据类型和流程控制语句26,8实验三 类和结构,接口委托与事件410实验四 泛型与LINQ与文件操作212,14实验五 WPF应用程序及WPF控件416实验六WPF样式及数据验证和数据库应用2实验一 熟悉VS开发环境【学时数:2学时】一、实验目的1.掌握Visual Studio.NET2012的基本操作方法。2.掌握#控制台应用程序、Windows应用程序的基本操作过程。3.初步理解#程序的结构和特点,掌握
2、基本的编译和调试方法。二、实验内容1.熟悉Visual Studio.NET2012集成开发环境的使用。启动VS2012,熟悉它的基本界面。建立源程序文件,输入、编译程序文件。构建可执行文件。运行程序,查看结果2.设计一个简单的#控制台应用程序,逐行显示自己的学号、姓名、专业信息。(参考教材P5页例)3.设计一个Windows应用程序,在窗体上显示三个标签框,标签框里的内容分别为自己的学号、姓名、专业。(参考教材P20页例1-4)4.阅读教材并录入教材例1-2,例1-5,例1-6程序,运行并输出结果,了解#窗体应用程序的创建。并思考:(1)namespace关键字声明命名空间有何作用?usin
3、g关键字指明引用的命名空间有何作用?三、实验报告完成本次实验的报告,写清实验目的和要求、实验内容和实验结果。实验二基本数据类型和流程控制语句【学时数:2学时】一、实验目的1.理解#的值类型、常量和变量的概念。2.掌握理解数据类型的转换以及数据类型的转换用法;3.掌握#的常用运算符以及表达式的运算规则。4.掌握#的两种分支语句(if、switch)的使用方法。5.掌握#的种循环语句(while、do/while、for、foreach)的使用方法。6.掌握引用类型中的字符串、数组的使用。二、实验内容1.设计一个控制台程序,从键盘输入一个人的名字,在显示器中显示对输入姓名的问候。比如输入:张三;输
4、出:张三,欢迎你!提示:输入字符串放入s中,将s+”,欢迎你!”,再输出。2.编写一个控制台程序,输入一个学生的成绩,输出其等级。(优:=90;良:=80;中:=70;及格:=60;不及格:=90) Console.WriteLine(优秀!); else if(x=80) Console.WriteLine(良!); else if(x=70) Console.WriteLine(中!); else if(x=60) Console.WriteLine(及格!); else Console.WriteLine(差!); using System;namespace p23 class pro
5、gram static void Main() Console.Write(please inter a number to x ); int x; x=int.parse(Console.ReadLine(); int i=x/10; switch(i) case 10: case 9: Console.WriteLine(优秀!); break; case 8: Console.WriteLine(良!); break; case 7: Console.WriteLine(中!);break; case 6: Console.WriteLine(及格!);break; default: C
6、onsole.WriteLine(差!);break; 3.using System;namespace p23 class program public static bool prime(int m) for(ing i=2;im;i+) if(m%i=0) return false; return true; public static void Main() int m,k,n=1; Console.Write(0,-4,2); for(m=3;m100;m+=2) if(prime(m); Console.Write(0,-4,m); if(+n%10=0) Console.Writ
7、eLine(n); 4.using System; class p24 public static void Main() int i,j,k,m; k=7; int Y=new int k;/定义二维锯齿状数组 for(i=0;iY.Length;i+) Yi=new inti+1; Yi0=1; Yii=1; for(i=2;iY.Length;i+) for(j=1;jYi.Length-1;j+)/Yi.Length是Yi这个数组的长度 Yij=Yi-1j-1+Yi-1j; for(i=0;iY.Length;i+) for(j=0;jYi.Length-1;j+)Console.Wr
8、ite(0,5:d,Yij); Console.WriteLine( ); 实验三类和结构,接口委托与事件【学时数:4学时】一、实验目的1.熟悉C#类、对象、方法的概念与用法;2.掌握编写简单的面向对象的应用程序;3.熟悉并掌握C#构造方法及其重载方法的用法;4.熟悉并掌握类和成员的访问修饰符的用法。5.掌握抽象类与接口的定义及使用方法。6.掌握抽象类与接口的定义及使用方法。二、实验要求1.编写一个Windows 窗体应用程序,实现以下功能。(1)定义一个CourseInfo累,该类包含以下成员。具有CourseName(课程名),CourseTime(开课时间),BookName(书名),P
9、rice(定价)4个属性,期中开课时间为枚举类型值(秋季,春季)。具有一个静态变量Counter,每创建一个Course实例,给变量值自动加1。提供无参数构造函数,在构造函数中设置相应的属性值。提供一个print方法,现实该实例的4个属性值。(2)在主窗体的代码实现中,分别创建CourseInfo实例,测试类中提供的功能,并将结果显示出来。2.单一继承:用C#编写一个程序,使用Animal和Mammal两个类来说明一般动物和哺乳动物的继承关系。Animal具有名称、所属门类等属性,需要提供方法实现以接收和显示这些属性的值。Mammal类具有代表哺乳动物习性的属性,这些属性表明哺乳动物与其他类型
10、动物的区别。同样地,需要提供方法实现以接收和显示这些属性的值。3.使用抽象类和抽象方法计算不同形状的面积:编写一个程序,使用抽象类和抽象方法来计算不同形状的面积。4.使用委托和事件实现模拟闹铃:编写一个模拟闹铃的程序,具有闹铃,继续闹铃,打会盹儿,停止闹铃的功能。(编写一个程序用来模拟闹钟闹起床流程,有一个闹钟类AlarmClock,催促起床类WakeMeUp,使用类AlarmDriver。调用类引发开始闹铃事件,闹钟类调用委托方法进行处理,催促起床类和用户进行交互。)三、参考程序四、参考程序1.1. /*CourseInfo.csusing System;using System.Colle
11、ctions.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ClassTest enum CourseTime 春季, 秋季 class CourseInfo public static int Counter = 0; / / 课程名 / public string CourseName get; set; / / 开课学期 / public CourseTime CourseSemester; / / 书名 / public string BookName get; se
12、t; / / 定价 / public double Price get; set; public CourseInfo() Counter+; CourseName = BookName = ; CourseSemester = CourseTime.春季; Price = 0; public CourseInfo(string couseName, string bookName, CourseTime courseSemester,int price) Counter+; CourseName = couseName; BookName = bookName; CourseSemester
13、 = courseSemester; Price = price; public string Print() return string.Format( 0,-101,-102,-103,5, CourseName, CourseSemester, BookName, Price); /*Mainform.csusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System
14、.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace ClassTest public partial class MainForm : Form public MainForm() InitializeComponent(); this.Load += MainForm_Load; void MainForm_Load(object sender, EventArgs e) listBox1.Items.Add(string.Format( 0,-101,-102,-103,5, 课程名,开设学期,书名
15、,定价); var course1= new CourseInfo CourseName=数据结构, CourseSemester= CourseTime.春季, BookName=数据结构, Price=40 ; listBox1.Items.Add(course1.Print(); var course2 = new CourseInfo(操作系统, 操作系统, CourseTime.秋季, 45); listBox1.Items.Add(course2.Print(); var course3 = new CourseInfo(软件工程, 软件工程, CourseTime.春季, 38)
16、; listBox1.Items.Add(course2.Print(); /*program.csusing System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;using System.Windows.Forms;namespace ClassTest static class Program / / 应用程序的主入口点。 / STAThread static void Main() Application.EnableVisualStyles(); Applicati
17、on.SetCompatibleTextRenderingDefault(false); Application.Run(new MainForm(); 2.using System;using System.Collections.Generic;using System.Text;namespace SingleInher /一般动物类 class Animal protected string _name; /动物名称 protected string _type; /动物所属门类 /接收名称和门类 public void AcceptDetails() Console.WriteLin
18、e(请输入动物名称:); this._name = Console.ReadLine(); Console.WriteLine(请输入所属门类:); this._type = Console.ReadLine(); /显示动物的名称和所属门类 public void DisplayDetails() Console.WriteLine(); Console.WriteLine(0 动物的详细信息如下:, this._name); Console.WriteLine(姓名:0, this._name); Console.WriteLine(门类:0, this._type); /哺乳动物类,继承
19、一般动物类 class Mammal : Animal private double _temperature; /恒定温度值private string _isViviparous; /是否为胎生 /接收哺乳动物的特征信息 public void AcceptCharacter() Console.WriteLine(请输入哺乳动物的恒定温度:); try _temperature = Convert.ToDouble(Console.ReadLine(); catch /捕捉异常,例如:若输入字母,在转换成Decimal时会引发异常 Console.WriteLine(请为温度输入数字!)
20、; Console.WriteLine(该哺乳动物是否胎生:); _isViviparous = Console.ReadLine(); /显示哺乳动物的特征信息 public void DisplayCharacter() Console.WriteLine(); Console.WriteLine(0 的特征包括:, this._name); Console.WriteLine(恒定温度:0, _temperature.ToString(); Console.WriteLine(是否胎生:0, _isViviparous); class Program static void Main(s
21、tring args) Mammal objM = new Mammal(); objM.AcceptDetails();/访问父类方法 objM.AcceptCharacter(); objM.DisplayDetails();/访问父类方法 objM.DisplayCharacter(); 3. using System;abstract class Figure/抽象类定义,表示一个抽象图形 protected double x = 0, y = 0; public Figure(double a, double b) x = a; y = b; public abstract void
22、 Area(); /抽象方法,无实现代码,抽象图形无法计算面积class Square : Figure /类Square定义,矩形类 public Square(double a, double b) : base(a, b) public override void Area() /不能使用new,必须用override Console.WriteLine(矩形面积是:0, x * y); /显示矩形面积class Circle : Figure /类Circle定义,圆类 public Circle(double a) : base(a, a) public override void
23、Area() Console.WriteLine(圆面积是:0, 3.14 * x * y); /显示圆的面积class Class1 static void Main(string args) Square s = new Square(20, 30); Circle c = new Circle(10); s.Area(); c.Area(); 4.using System;using System.Collections.Generic;using System.Text;namespace EventSample / / 定义事件参数类 / public class AlarmEven
24、tArgs : EventArgs private readonly bool snoozePressed; private readonly int nrings; /构造函数 public AlarmEventArgs(bool snoozePressed, int nrings) this.snoozePressed = snoozePressed; this.nrings = nrings; / 定义属性,私有字段nrings public int NumRings get return nrings; / 定义属性,返回私有字段snoozePressed public bool SnoozePressed get return snoozePressed; / 下面的属性
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2