1、C#面向对象程序设计面向对象程序设计实验指导书长春大学软件学院戴银飞2009.7目 录实验一 C#概述 - 6 -实验二 C#数据类型 - 9 -实验三 C#控制结构 - 12 -实验四 C#面向对象程序设计(一) - 17 -实验五 C#面向对象程序设计(二) - 20 -实验六 类的继承 - 22 -实验七 多态编程练习 - 23 -实验八 委托与事件编程练习 - 24 -实验九 基本控件使用 - 25 -实验十 菜单的使用 - 26 -实验十一 文本编辑器 - 27 -实验十二 数据库编程 - 28 -实验一 C#概述一、实验目的1. 熟悉Visual C#.NET集成开发环境。2. 掌
2、握控制台应用程序的开发方法。3. 掌握Windows应用程序的开发方法。二、实验要求1. 整理上机步骤,总结经验和体会。2. 完成实验日志和上交程序。三、实验内容题目一:用最原始的方法开发C#程序(1) 打开记事本,输入下面内容:using System;namespace sum public class Hello public static void Main() int a,b; Console.Write (请输入第一个整数:); a=Convert.ToInt32 (Console.ReadLine(); /将输入的字符串转化为整数 Console.Write (请输入第二个整数:
3、); b=Convert.ToInt32 (Console.ReadLine(); /将输入的字符串转化为整数 Console.WriteLine (a=0,b=1,a,b); Console.WriteLine (a+b=0,a+b); Console.Read (); (2) 将文件命名为sum.cs,保存在Microsoft Visual Studio 8VC目录下。(3) 选择“开始”“程序”“Microsoft Visual Studio 2005” “Visual Studio Tools” “Visual Studio 2005命令提示”命令,在命令提示行中输入如下命令:csc
4、d:sum.cs然后按【Enter】键执行,并观察命令的执行情况。(4) 查看Microsoft Visual Studio 8VC目录下是否存在名为“sum.exe”的可执行文件。若存在,则双击打开该文件,按照提示输入数据并运行,同时观察运行情况;若不存在,思考出错原因。题目二:创建控制台应用程序(1) 选择“开始”“程序”“Microsoft Visual Studio 2005” “Microsoft Visual Studio 2005”命令,启动Visual Studio 2005,并仔细观察起始页的内容。(2) 选择“文件”“新建”“项目”命令,弹出“新建项目”对话框。仔细观察对话
5、框的内容。在“项目类型”列表框中选中Visual C#选项;在“模板”列表框中选中“控制台应用程序”选项;在“名称”文本框中输入项目名称;在“位置”文本框中输入或选择项目的保存位置。单击“确定”按钮,将显示控制台应用程序代码编辑窗口,在该窗口内显示系统自动生成的相应代码。仔细观察并分析这些代码。(3) 在代码编辑窗口内的Main()方法中添加如下代码: Console.Write(当前系统的日期为:); /将系统的日期转换为长日期字符串表示形式进行输出 Console.WriteLine(DateTime.Now.ToLongDateString(); Console.Read();(4) 选
6、择“文件”“全部保存”命令,保存项目。(5) 选择“调试”“开始执行(不调试)”命令或按【Ctrl+F5】组合键运行程序,并观察运行情况。(6) 在项目的保存位置处查看项目中过的所有文件。题目三:创建Windows应用程序(1) 从开始菜单启动Visual Studio 2005。(2) 选择“文件”“新建”“项目”命令,弹出“新建项目”对话框。在“项目类型”列表框中选中Visual C#选项;在“模板”列表框中选中“Windows应用程序”选项;在“名称”文本框中输入项目名称;在“位置”文本框中输入或选择项目的保存位置。单击“确定”按钮,将显示窗口设计器窗口。(3) 切换到“属性”窗口、“解
7、决方案资源管理器”窗口和“类视图”窗口,查看窗体的属性、项目的组成结构以及项目所设计的所有类。(4) 双击打开“解决方案资源管理器”窗口中的各个文件,在代码编辑器窗口内查看系统自动生成的与该项目有关的代码。(5) 选择“调试”“启动调试”命令,运行程序,查看运行结果,然后关闭窗体。(6) 在窗体上添加一个PictureBox控件和两个Button控件。设置窗体和各控件的属性,如表1-1所示。表1-1 窗体及各控件的主要属性控件属性属性值Form1窗体Text(标题)Windows应用程序测试PictureBox1BorderStyle(边框类型)Fixed3DButton1按钮Text(标题)
8、画图Button2按钮Text(标题)退出(7) 调整窗体大小以及各个控件的位置,如图1-1所示。图1-1 调整控件位置后的界面(8) 双击Button1按钮,在其Click事件内添加代码: Graphics g = this.pictureBox1.CreateGraphics(); Pen p1 = new Pen(Color.Red, 5); g.DrawRectangle(p1, 80, 50, 100, 50);(9) 双击Button1按钮,在其Click事件内添加代码:if (MessageBox.Show(你确定要退出吗?, 请确认., MessageBoxButtons.Ye
9、sNo, MessageBoxIcon.Question) = DialogResult.Yes) Application.Exit(); /退出应用程序(10) 选择“调试”“启动调试”命令,或按【F5】键,或单击工具栏上的按钮,运行程序,查看运行结果。(11) 在项目的保存位置处查看项目中过的所有文件。实验二 C#数据类型一、实验目的1. 了解C#中的各种数据类型及其相互转换方法。2. 了解C#中的常量和变量。3. 掌握C#中的常用的操作符与表达式。4. 进一步熟悉C#程序的开发过程。二、实验要求1. 分析程序,上机验证结果。2. 写出程序,并调试程序,要给出测试数据和实验结果。3. 整理
10、上机步骤,总结经验和体会。4. 完成实验日志和上交程序。三、实验内容题目一:程序分析(1) 分析程序,写出程序的运行结果,并上机进行验证。using System;public class BoolTest public static void Main() Console.Write(请输入一个字符: ); char c = (char) Console.Read(); if (Char.IsLetter(c) if (Char.IsLower(c) Console.WriteLine(字符是小写的。); else Console.WriteLine(字符是大写的。); else Conso
11、le.WriteLine(字符不是字母。); (2) 分析程序,写出程序的运行结果,并上机进行验证。using System;class test public static void Main() string a = u0068ello ; string b = world; Console.WriteLine( a + b ); Console.WriteLine( a + b = hello world ); (3) 分析程序,写出程序的运行结果,并上机进行验证。using System;namespace _1 class Program static void Main() int
12、 a = 10; Console.WriteLine(a=0, a); int b = new int(); Console.WriteLine(1:b=0, b); b = 10; Console.WriteLine(2:b=0, b); Int32 c = 10; Console.WriteLine(c=0, c); Int32 d = new Int32(); Console.WriteLine(1:d=0, d); d = 10; Console.WriteLine(2:d=0, d); Console.WriteLine(int:01, int.MinValue,int.MaxVal
13、ue); Console.Read(); (4) 分析程序,写出程序的运行结果,并上机进行验证。using System;namespace _1 class Program static void Main() char c1 = a; char c2 = x0062; char c3 = u0063; Console.WriteLine(c1:0nc2:1nc3:2n,c1,c2,c3); Console.Read(); (5) 分析程序,写出程序的运行结果,并上机进行验证。using System;namespace _1 class Program enum WeekDay sun,m
14、on,tue,wed,thu,fri,sat static void Main() WeekDay a = WeekDay.sun; Console.WriteLine(a); WeekDay b = (WeekDay)4; Console.WriteLine(b); Console.Read(); 题目二:程序编写(1) 编写程序,定义一个包括学生基本资料的结构类型数据(要求包括学号、姓名、性别、年龄、家庭住址等),并对其进行测试。(2) 编写程序,将一年中的12个月建立一个枚举类型,并对其进行测试。(3) 编写程序,使用int类型数据进行装箱与拆箱转换。实验三 C#控制结构一、实验目的1.
15、 掌握C#中选择结构语句的使用。2. 掌握C#中循环结构语句的使用。3. 掌握C#中的跳转结构语句。二、实验要求1. 分析程序,上机验证结果。2. 写出程序,并调试程序,要给出测试数据和实验结果。3. 整理上机步骤,总结经验和体会。4. 完成实验日志和上交程序。三、实验内容题目一:程序分析(1) 分析程序,写出程序的运行结果,并上机进行验证。using System;namespace _1 class Program static void Main(string args) int jagArray=new int2new int5,new int3; for (int i = 0; i
16、jagArray.GetLength(0); i+) for (int j = 0; j jagArrayi.Length; j+) jagArrayij = i + j; for (int k = 0; k 2;k+) Console.WriteLine(jagArray0:,k); for(int m=0;mjagArrayk.Length;m+) Console.Write(0,-3,jagArraykm); Console.WriteLine(); Console.Read(); (2) 分析程序,写出程序的运行结果,并上机进行验证。using System;namespace _1
17、class Program static void Main(string args) object x; x = 1; Console.WriteLine(1:x=0,type is 1;,x,x.GetType(); x = 10.01; Console.WriteLine(2:x=0,type is 1;, x, x.GetType(); x = u0061; Console.WriteLine(3:x=0,type is 1;, x, x.GetType(); x = Hello!; Console.WriteLine(4:x=0,type is 1;, x, x.GetType();
18、 Console.Read(); (3) 分析程序,写出程序的运行结果,并上机进行验证。using System;namespace _1 class Program static void Main(string args) Console.Write(请输入1-12之间的任意一个整数:); string s=Console.ReadLine(); int month =int .Parse(s); switch(month) case 1:Console.WriteLine(January);break; case 2:Console.WriteLine(February);break;
19、case 3:Console.WriteLine(March);break; case 4:Console.WriteLine(April);break; case 5:Console.WriteLine(May);break; case 6:Console.WriteLine(June);break; case 7:Console.WriteLine(July);break; case 8:Console.WriteLine(August);break; case 9:Console.WriteLine(September);break; case 10:Console.WriteLine(
20、October);break; case 11:Console.WriteLine(Noveber);break; case 12:Console.WriteLine(December);break; default:Console.WriteLine(输入错误,转换失败。);break; Console.Read(); (4)分析程序,写出程序的运行结果,并上机进行验证。using System;namespace _1 class Program static void Main(string args) int, a = new int5, 5; a0, 0 = 1; for (int
21、i = 1; i 5; i+) ai, 0 = 1; ai, i = 1; for (int j = 1; j i; j+) ai, j = ai - 1, j - 1 + ai - 1, j; for (int i = 0; i 5; i+) for (int j = 0; j = i;j+ ) Console.WriteLine(0t, ai, j); Console.WriteLine(); Console.Read(); (5)分析程序,写出程序的运行结果,并上机进行验证。using System;namespace _1 class Program static void Main(
22、string args) int odd = 0, even = 0; int array = new int 0, 4, 7, 8, 9, 10, 14, 17, 19, 24, 56 ; foreach (int i in array) if (i % 2 = 0) even+; else odd+; Console.WriteLine(0个奇数,1个偶数, odd, even); (6)分析程序,写出程序的运行结果,并上机进行验证。using System;public class TestDoWhile public static void Main () int x; int y =
23、 0; do x = y+; Console.WriteLine(x); while(y 5); (7)分析程序,写出程序的运行结果,并上机进行验证。using System;namespace _1 class Program static void Main(string args) Console.WriteLine(-break-); for (int i = 0; i 10; i+) if (i = 5) break; Console.WriteLine(i is + i); Console.WriteLine(-continue-); for (int i = 0; i 10; i
24、+) if (i = 5) continue; Console.WriteLine(i is + i); Console.Read(); 题目二:程序编写(1) 编写程序,分别用for、while、dowhile语句实现求前n个自然数之和。(2) 编写程序,输出九九乘法表。实验四 C#面向对象程序设计(一)一、实验目的1.理解C#语言是如何体现面向对象编程基本思想。2.掌握类对象的定义。3.了解类的封装方法,以及如何创建类和对象。4.了解成员变量和成员方法的特性。5.掌握静态成员的用法。二、实验要求1. 分析程序,上机验证结果。2. 写出程序,并调试程序,要给出测试数据和实验结果。3. 整理上
25、机步骤,总结经验和体会。4. 完成实验日志和上交程序。三、实验内容题目一:程序分析(1)分析下面两个程序,确定那个程序好,说明理由。程序要求:定义一个圆类,计算圆的面积和周长。 程序1:public class circlepublic static void Main()double radium, delimeter, square;const double pai = 3.1415926;radium = Convert.ToInt32(Console.ReadLine();delimeter = 2 * pai * radium;square = pai * pai * radium;
26、Console.WriteLine(delimeter=0,square=1, delimeter, square);Console.ReadLine(); 程序2:public class circledouble delimeter, square;const double pai = 3.1415926;public void calculate(double rad)delimeter = 2 * pai * rad;square = pai * pai * rad;Console.WriteLine(delimeter=0,square=1,delimeter,square);pub
27、lic static void Main()double radium;circle cir = new circle();radium = Convert.ToInt32(Console.ReadLine();cir.calculate(radium);Console.ReadLine();(2)分析程序,写出程序的运行结果,并上机进行验证。Using System;public class studentsstring id,name;int age;public students(string id,string name,int age )this.id = id;this.name
28、= name;this.age = age;public void Display()Console.WriteLine(id=0,name=1,age=2,id,name,age);public static void Main()/string id, name;/int age;students stu = new students(0001,zhangsan,16);stu.Display();Console.ReadLine();(3)分析程序,写出程序的运行结果,并上机进行验证。public class Dateprivate int Year, Month, Day;public Date(int Year, int Month,int Day)this.Year=Year;this.Month=Month;this.Day=Day;public Date(S