面向对象程序设计实验指导书

《面向对象程序设计》实验指导书

传媒技术学院

禹亮

2009.7


 

实验一  C#概述... - 6 -

实验二  C#数据类型... - 9 -

实验三  C#控制结构... - 12 -

实验四  C#面向对象程序设计(一)... - 17 -

实验五  C#面向对象程序设计(二)... - 20 -

实验六  类的继承... - 22 -

实验七  多态编程练习... - 23 -

实验八  委托与事件编程练习... - 24 -

实验九  基本控件使用... - 25 -

实验十  菜单的使用... - 26 -

实验十一  文本编辑器... - 27 -

实验十二  数据库编程... - 28 -


面向对象的程序设计

二、适用专业及年级

    数字媒体  二年级

三、课程目标与基本要求

面向对象程序设计,是学生在学习了面向对象程序设计理论后,对课堂内容进行验证,加深对面向对象程序设计的理论的理解,并在此基础上逐步掌握面向对象的编程方法和编程技巧。

“面向对象程序设计”所开设的实验项目及实验内容是参考国内其它高校相关专业的情况,结合本专业的特点并根据实验室具体设备条件和给定的实验课时数安排拟定的。目前,共包括必修和选修实验项目12个,涉及“C#程序设计的基础知识”、“面向对象的程序设计思想”、 “C#常用组件的使用”、 “C#数据库编程”等内容。

课程目标:

使学生把大学三年所学程序设计的知识融会贯通,在培养学生理论联系实际、实际动手能力的同时,着重培养学生思考问题、解决问题的能力和创造能力。

基本要求:

1.掌握面向对象程序设计的基础知识;

2.掌握C#常用组件的用法和使用技巧;

3.掌握C#程序设计的编程方法和编程技巧;

培养实事求是、踏实细致、严肃认真的科学态度及良好的实验素质和习惯。

四、主要仪器设备

五、实验项目及教学安排

六、考核方式及成绩评定

考核方式

1、实验平时成绩:

(1)实验考勤:每次考勤分出勤(2分);请假、迟到、早退(1分);旷课(0分)记分。

(2)预习报告:要求写明实验目的、主要实验设备名称、实验原理和内容。分优秀(4分)、良好(3分)、中等(2分)、及格(1分)和不及格(0分)记分。

(3)实验报告:要求写明实验设备名称和型号、实验步骤、实验分析及注意事项。分优秀(4分)、良好(3分)、中等(2分)、及格(1分)和不及格(0分)记分。

实验平时成绩最后折算成100分。

2、实验考试:上机考试,满分为100分。

成绩评定:

总实验成绩占本课程成绩的30%。

总实验成绩=实验平时成绩×50%+实验考试成绩×50%。

七、实验教科书、参考书

1.实验教科书

C#面向对象程序设计,郑宇军 编著,人民邮电出版社,2009.6

2.实验参考书

(1)C#编程从基础到实践,殷泰晖主编,电子工业出版社,2007.6

实验一  C#概述

一、实验目的

1.       熟悉Visual C#.NET集成开发环境。

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 ("请输入第二个整数:");

       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 8\VC目录下。

(3)       选择“开始”“程序”“Microsoft Visual Studio 2005”“Visual Studio Tools”“Visual Studio 2005命令提示”命令,在命令提示行中输入如下命令:

csc  d:\sum.cs

然后按【Enter】键执行,并观察命令的执行情况。

(4)       查看…\Microsoft Visual Studio 8\VC目录下是否存在名为“sum.exe”的可执行文件。若存在,则双击打开该文件,按照提示输入数据并运行,同时观察运行情况;若不存在,思考出错原因。

题目二:创建控制台应用程序

(1)       选择“开始”“程序”“Microsoft Visual Studio 2005” “Microsoft Visual Studio 2005”命令,启动Visual Studio 2005,并仔细观察起始页的内容。

(2)       选择“文件”“新建”“项目”命令,弹出“新建项目”对话框。仔细观察对话框的内容。在“项目类型”列表框中选中Visual C#选项;在“模板”列表框中选中“控制台应用程序”选项;在“名称”文本框中输入项目名称;在“位置”文本框中输入或选择项目的保存位置。单击“确定”按钮,将显示控制台应用程序代码编辑窗口,在该窗口内显示系统自动生成的相应代码。仔细观察并分析这些代码。

(3)       在代码编辑窗口内的Main()方法中添加如下代码:

            Console.Write("当前系统的日期为:");

            //将系统的日期转换为长日期字符串表示形式进行输出

            Console.WriteLine(DateTime.Now.ToLongDateString());

            Console.Read();

(4)       选择“文件”“全部保存”命令,保存项目。

(5)       选择“调试”“开始执行(不调试)”命令或按【Ctrl+F5】组合键运行程序,并观察运行情况。

(6)       在项目的保存位置处查看项目中过的所有文件。

题目三:创建Windows应用程序

(1)       从开始菜单启动Visual Studio 2005。

(2)       选择“文件”“新建”“项目”命令,弹出“新建项目”对话框。在“项目类型”列表框中选中Visual C#选项;在“模板”列表框中选中“Windows应用程序”选项;在“名称”文本框中输入项目名称;在“位置”文本框中输入或选择项目的保存位置。单击“确定”按钮,将显示窗口设计器窗口。

(3)       切换到“属性”窗口、“解决方案资源管理器”窗口和“类视图”窗口,查看窗体的属性、项目的组成结构以及项目所设计的所有类。

(4)       双击打开“解决方案资源管理器”窗口中的各个文件,在代码编辑器窗口内查看系统自动生成的与该项目有关的代码。

(5)       选择“调试”“启动调试”命令,运行程序,查看运行结果,然后关闭窗体。

(6)       在窗体上添加一个PictureBox控件和两个Button控件。设置窗体和各控件的属性,如表1-1所示。

表1-1  窗体及各控件的主要属性

(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.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)

                Application.Exit();  //退出应用程序

(10)   选择“调试”“启动调试”命令,或按【F5】键,或单击工具栏上的按钮,运行程序,查看运行结果。

(11)   在项目的保存位置处查看项目中过的所有文件。

实验二  C#数据类型

一、实验目的

1.       了解C#中的各种数据类型及其相互转换方法。

2.       了解C#中的常量和变量。

3.       掌握C#中的常用的操作符与表达式。

4.       进一步熟悉C#程序的开发过程。

二、实验要求

1. 分析程序,上机验证结果。

2. 写出程序,并调试程序,要给出测试数据和实验结果。

3. 整理上机步骤,总结经验和体会。

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

         Console.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 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:{0}~~{1}", int.MinValue,int.MaxValue);

            Console.Read();

        }

    }

}

(4)       分析程序,写出程序的运行结果,并上机进行验证。

using System;

namespace _1

{

    class Program

    {

        static void Main()

        {

            char c1 = 'a';

            char c2 = '\x0062';

            char c3 = '\u0063';

            Console.WriteLine("c1:{0}\nc2:{1}\nc3:{2}\n",c1,c2,c3);

            Console.Read();

        }

    }

}

(5)       分析程序,写出程序的运行结果,并上机进行验证。

using System;

namespace _1

{

    class Program

    {

        enum WeekDay { sun,mon,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. 掌握C#中选择结构语句的使用。

2. 掌握C#中循环结构语句的使用。

3. 掌握C#中的跳转结构语句。

二、实验要求

1. 分析程序,上机验证结果。

2. 写出程序,并调试程序,要给出测试数据和实验结果。

3. 整理上机步骤,总结经验和体会。

4. 完成实验日志和上交程序。

三、实验内容

题目一:程序分析

(1) 分析程序,写出程序的运行结果,并上机进行验证。

using System;

namespace _1

{

    class Program

    {

        static void Main(string[] args)

        {

            int[][] jagArray=new int[2][]{new int[5],new int[3]};

            for (int i = 0; i < jagArray.GetLength(0); i++)

            {

                for (int j = 0; j < jagArray[i].Length; j++)

                    jagArray[i][j] = i + j;

            }

            for (int k = 0; k < 2;k++)

            {

                Console.WriteLine("jagArray[{0}]:",k);

                for(int m=0;m<jagArray[k].Length;m++)

                    Console.Write("{0,-3}",jagArray[k][m]);

                Console.WriteLine();

            }

            Console.Read();

        }

    }

}

(2) 分析程序,写出程序的运行结果,并上机进行验证。

using System;

namespace _1

{

    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());

            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;

                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("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 int[5, 5];

            a[0, 0] = 1;

            for (int i = 1; i < 5; i++)

            {

                a[i, 0] = 1;

                a[i, i] = 1;

                for (int j = 1; j < i; j++)

                    a[i, j] = a[i - 1, j - 1] + a[i - 1, j];

            }

            for (int i = 0; i < 5; i++)

            {

                for (int j = 0; j <= i;j++ )

                    Console.WriteLine("{0}\t", a[i, j]);

                Console.WriteLine();

            }

            Console.Read();

        }

    }

}

(5)分析程序,写出程序的运行结果,并上机进行验证。

using System;

namespace _1

{

    class Program

    {

        static void Main(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 = 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++)

            {

                if (i == 5) continue;

                Console.WriteLine("i is " + i);

            }

            Console.Read();

        }

    }

}

题目二:程序编写

(1) 编写程序,分别用for、while、do…while语句实现求前n个自然数之和。

(2) 编写程序,输出九九乘法表。

实验四  C#面向对象程序设计(一)

一、实验目的

1.理解C#语言是如何体现面向对象编程基本思想。

2.掌握类对象的定义。

3.了解类的封装方法,以及如何创建类和对象。

4.了解成员变量和成员方法的特性。

5.掌握静态成员的用法。

二、实验要求

1. 分析程序,上机验证结果。

2. 写出程序,并调试程序,要给出测试数据和实验结果。

3. 整理上机步骤,总结经验和体会。

4. 完成实验日志和上交程序。

三、实验内容

题目一:程序分析

(1)分析下面两个程序,确定那个程序好,说明理由。

程序要求:定义一个圆类,计算圆的面积和周长。

    程序1:

public class circle

{

public 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;

Console.WriteLine("delimeter={0},square={1}", delimeter, square);

Console.ReadLine();

}

}

       程序2:

public class circle

{

double 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);

}

public static void Main()

{

double radium;

circle cir = new circle();

radium = Convert.ToInt32(Console.ReadLine());

cir.calculate(radium);

Console.ReadLine();

}

}

(2)分析程序,写出程序的运行结果,并上机进行验证。

Using System;

public class students

{

string id,name;

int age;

public students(string id,string name,int age )

{

this.id = id;

this.name = 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 Date

{

private int Year, Month, Day;

public Date(int Year, int Month,int Day)

{

this.Year=Year;

this.Month=Month;

this.Day=Day;

}

public Date(System.DateTime dt)

{

Year = dt.Year;

Month = dt.Month;

Day = dt.Day;

}

public void DisplayDate()

{

Console.WriteLine("{0}年{1}月{2}日",Year,Month,Day);

}

}

public class Tester

{

public static void Main()

{

System.DateTime currentTime=System.DateTime.Now;

Date dt=new Date(2008,7,18);

dt.DisplayDate();

Date dt2 = new Date(currentTime);

dt2.DisplayDate();

Console.ReadLine();

}

}

题目二:程序编写

(1)   实现一个包含类属性方法的简单加法程序,并能显示结果。

(2)   实现一个Person类,要求:属性包含姓名、年龄、身份证号、工作、工资等,并显示各属性的值。

实验五  C#面向对象程序设计(二)

一、实验目的

1.  掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数。能够根据给定的要求定义类并实现类的成员函数。

2.  理解类的成员的访问控制的含义,公有、私有和保护成员的区别。

3.  掌握参数传递的用法。

4.  掌握属性的作用和使用。

二、实验要求

1. 分析程序,上机验证结果。

2. 写出程序,并调试程序,要给出测试数据和实验结果。

3. 整理上机步骤,总结经验和体会。

4. 完成实验日志和上交程序。

三、实验内容

题目一:程序分析

(1)       分析程序,写出程序的运行结果,并上机进行验证,然后回答后面问题。

public class BankAccount

{

static int totalAccountNumber=0;

string BankAccountId;

double initialDepositAmount = 0.00;

public BankAccount(string myId)

{

this.BankAccountId = myId;

this.initialDepositAmount = 0.00;

totalAccountNumber++;

}

public void displayid()

{

Console.WriteLine("mbaid={0},initialDepositAmount={1}",this.BankAccountId,this.initialDepositAmount);

}

public static void display()

{

Console.WriteLine("totalAccountNumber={0}", totalAccountNumber);

}

}

public class Tester

{

public static void Main()

{

BankAccount mba = new BankAccount("37000001");

BankAccount mba2 = new BankAccount("3700002");

BankAccount mba3 = new BankAccount("");

BankAccount mba4 = new BankAccount("3700004");

// Console.WriteLine("mba2ID={0}", mba2.BankAccountId);

mba2.displayid();

BankAccount.display();

Console.ReadLine();

}

}

请回答问题:

(1)按你自己的算法修改以上程序,比如可只输出生成的账户数。

(2)把注释去掉后会怎样,为什么?

(3)为什么display 用类名直接引用,可以用对象来引用么?尝试输出结果。

(4)类的静态变量和非静态变量的引用区别。判断一下语句的正确性:

静态方法只能使用静态变量,不能使用实例变量。因为对象实例化之前,实例变量不可用。这个观点真确么?()

类的静态变量只有一个版本,所有实例对象引用的都是同一个版本。()

对象实例化后,每个实例变量都被制作了一个副本,它们之间互不影响。()

题目二:程序编写

1.  编写一个传值调用的程序。

程序功能要求:程序首先给整型变量x 和y 赋初值3,5,然后使用传值调用方式调用方法对x 和y 做乘方并及输出x 和y 的乘方值,最后输出x和y得值。再将此方法给为对象调用加ref修饰查看输出结果差异。

【思考题】

1. 方法的参数传递有哪些方式?区别时什么?

2.  什么是构造方法。

实验六  类的继承

一、实验目的

1.掌握继承的工作机制和意义。

2.掌握派生类的定义方法和实现。

3.掌握base关键字的使用。

4. 编写体现类的继承性(成员变量,成员方法,成员变量隐藏)的程序。

二、实验要求

1. 写出程序,并调试程序,要给出测试数据和实验结果。

2. 整理上机步骤,总结经验和体会。

3. 完成实验日志和上交程序。

三、实验内容

1.进一步理解继承的含义

新类可从现有的类中产生,并保留现有类的成员变量和方法并可根据需要对它们加以修改。新类还可添加新的变量和方法。这种现象就称为类的继承。当建立一个新类时,不必写出全部成员变量和成员方法。只要简单地声明这个类是从一个已定义的类继承下来的,就可以引用被继承类的全部成员。被继承的类称为父类或超类(superclass),这个新类称为子类。

2. 进一步理解继承的意义

C# 提供了一个庞大的类库让开发人员继承和使用。设计这些类是出于公用的目的,因此,很少有某个类恰恰满足你的需要。你必须设计自己的能处理实际问题的类,如果你设计的这个类仅仅实现了继承,则和父类毫无两样。所以,通常要对子类进行扩展,即添加新的属性和方法。这使得子类要比父类大,但更具特殊性,代表着一组更具体的对象。继承的意义就在于此。

题目一:类的继承和基类构造方法的应用

程序功能要求如下:

编写一个学生和教师数据输入和显示程序,学生数据有编号、姓名、班级和成绩,教师数据有编号、姓名、职称和部门。要求将编号、姓名输入和显示设计成一个类person,并作为学生数据操作类student和教师类数据操作类teacher的基类。

题目二:类的继承和构造函数的灵活应用

编写一个程序计算出球、圆柱和圆锥的表面积和体积。要求:

定义一个基类圆,至少含有一个数据成员半径;定义基类的派生类球、圆柱、圆锥,都含有求体积函数,可以都在构造函数中实现,也可以将求体积和输出写在一个函数中,或者写在两个函数中,请比较使用。

定义主函数,求球、圆柱、圆锥的和体积。

实验七  多态编程练习

一、实验目的

1.掌握虚拟方法和重载方法的使用。

2.掌握抽象类和抽象方法的使用。

3. 理解虚函数在类的继承层次中的作用,虚函数的引入对程序运行时的影响,能够对使用虚函数的简单程序写出程序结果。

二、实验要求

1. 写出程序,并调试程序,要给出测试数据和实验结果。

2. 整理上机步骤,总结经验和体会。

3. 完成实验日志和上交程序。

三、实验内容

1. 理解类的多态性

类的继承发生在多个类之间,而类的多态只发生在同一个类上。在一个类中,可以定义多个同名的方法,只要确定它们的参数个数和类型不同。这种现象称为类的多态。多态使程序简洁,为程序员带来很大便利。在OOP 中,当程序要实现多个相近的功能时,就给相应的方法起一个共同的名字,用不同的参数代表不同的功能。这样,在使用方法时不论传递什么参数,只要能被程序识别就可以得到确定的结果。类的多态性体现在方法的重载(overload)上,包括成员方法和构造方法的重载。

2. 构造方法的重载

方法的重载是指对同名方法的不同使用方式。构造方法的名称和类同名,没有返回类型。尽管构造方法看起来和一般的成员方法没有差别,但它不是方法,也不是类的成员。因此,构造方法不能直接调用,只能由new 操作符调用。构造方法对于类是十分重要的,对象的初始化任务要靠构造方法来完成。重载构造方法的目的是提供多种初始化对象的能力,使程序员可以根据实际需要选用合适的构造方法来初始化对象。

题目:多态程序练习:功能要求如下

基类shape 类是一个表示形状的抽象类,area( )为求图形面积的函数。请从shape 类派生三角形类(triangle)、圆类(circles)、并给出具体的求面积函数,并在主函数中多态地实现调用。

实验八  委托与事件编程练习

一、实验目的

1.了解委托的概念,掌握委托的使用。

2.掌握多重委托应用。

3.理解事件的含义,掌握事件的使用。

二、实验要求

1. 理解委托和事件应用的程序。

2. 写出委托和事件应用程序。

3. 调试程序,要给出测试数据和实验结果。

4. 整理上机步骤,总结经验和体会。

5. 完成实验日志和上交程序。

三、实验内容

题目一:委托及其方法的实现程序

程序功能:定义一个含有两个整型参数名叫Calculation 返回类型为double 的委托,分别实现两个匹配的求和、求平均值的方法,并在主函数中测试它。

题目二:多重委托程序实现

程序功能:定义一个名叫Greeting 无返回值的多重委托,自行定义两个实现方法,并分别用+操作符、+=操作符、-操作符和-=操作符进行实现多重委托的使用。

实验九  基本控件使用

一、实验目的

1.  掌握基本控件的重要属性、事件。

2.  熟练掌握在窗体上建立上述控件的操作方法。

3.  熟练掌握事件过程代码的编写。

4.  初步掌握建立基于图形界面的应用程序的过程。

二、实验要求

1.  做好实验预习,掌握,并熟悉本实验中所使用的相应的控件。

2.  写出实验报告,内容是:

1) 程序的界面设计。

2) 程序主要代码。

3) 运行结果。

4)实验总结。

三、实验内容

题目:设计一密码修改程序,要求:

1)  当单击“确定”按钮后,首先比较“用户名”和“原密码”是否一致,若一致且都为“admin”,则继续执行步骤2;否则弹出消息框,提示用户出错,并让用户重新输入。

2)  比较“新密码(N) ”和“新密码(S) ”,若两者一致,弹出密码修改成功消息框,程序终止执行。否则弹出错误消息,并让用户重新输入。

3)  当单击“取消”按钮后,程序终止执行。

图9-1   程序主界面

实验十  菜单的使用

一、实验目的

1.掌握菜单的建立与使用。

2.理解菜单相关的属性、事件、方法。

二、实验要求

1. 写出程序,并调试程序,要给出测试数据和实验结果。

2. 整理上机步骤,总结经验和体会。

3. 完成实验日志和上交程序。

三、实验内容

题目:编写包含菜单的计算程序

建立一个如图10-1所示的应用程序,掌握菜单和工具栏的应用,并实现相应的功能。

 

图10-1   程序主界面

实验十一  文本编辑器

一、实验目的

1. 掌握C#中Windows应用程序设计基础。

2. 了解并掌握Windows基本控件的常用属性和方法。

3. 了解C#中Windows应用程序的文件构成。

4.  掌握Windows程序设计思想。

二、实验要求

1. 写出程序,并调试程序,要给出测试数据和实验结果。

2. 整理上机步骤,总结经验和体会。

3. 完成实验日志和上交程序。

三、实验内容

本次试验为Windows基础控件的使用,如ComboBox,ListBox,Label,Button,TextBox。其中要用到这些控件的常用属性和方法。

题目:文本编辑器设计

建立一个如图11-1所示的应用程序,掌握基础控件的应用,并按照窗体所列按钮实现相应的功能。

图11-1   程序主界面

实验十二  数据库编程

一、实验目的

1. 熟悉ADO.NET的体系结构和对象模型。

2. 熟悉常用的数据库连接方式。

3. 掌握C#基本的数据库操作方式。

4.  通过实验内容,能够进行简单的数据库程序开发。

二、实验要求

1. 写出程序,并调试程序,要给出测试数据和实验结果。

2. 整理上机步骤,总结经验和体会。

3. 完成实验日志和上交程序。

三、实验内容

题目:设计学生成绩管理系统

具体要求:

(1)     创建程序所需数据库。

(2)     实现学生信息的添加、修改、更新与查询功能。

(3)     实现课程信息的添加、修改、更新与查询功能。

(4)     实现学生各科成绩信息的添加、修改、更新与查询功能。

(5)     实现简单的用户管理等功能。

(6)     具备登录用户身份验证功能。

相关推荐