} } } (4)生成项目。
(5)选择“调试” →“开始执行(不调试)”选项来执行此应用程序。 此程序的输出结果如图3.2所示。
图3.2 练习2的输出结果
指导教师检查学生进度
练习3:构造函数的重载和普通函数的重载
问题
构造函数的重载和普通函数的重载 指导教师讲解问题说明
方法的重载仅仅是根据方法的参数列表来决定是否两个同名的函数是不同的,而不包括方法的返回值。以下声明两个不同的函数是非法的:
Void f() {} int f() {} 分析
定义一个Tree类,该类对构造函数和info函数进行重载。最后在main函数中,采用不同的参数去实例Tree类对象和调用info方法。 推荐步骤:
(1)创建一个名为“Overloading”的控制台应用程序。 (2)将以下代码添加到“Program.cs”中。
using System; using System.Collections.Generic; using System.Text; namespace Overloading { class Program { class Tree { int height; public Tree() { Console.WriteLine(\ height = 0; } public Tree(int i) { Console.WriteLine(\ height = i; } internal void info() { Console.WriteLine(\ } internal void info(string s) { Console.WriteLine(s+\ } } static void Main(string[] args) { for (int i = 0; i < 5; i++) { Tree t = new Tree(i); t.info(); t.info(\ } new Tree(); } } } (3)生成并执行该程序。 此程序的输出结果如图3.3所示。
图3.3 练习3的输出结果
第二部分 练习(40分钟)
另外在该类中提供一个静态方法计算两个点的直线距离,传入参数为两个Point类实例。然后设计一个测试类来对Point类进行使用。
提示:先定义两个变量来存储Point点的X,Y坐标;无参的构造函数将X,Y坐标赋为0;有参的构造函数将传入的参数分别赋给X,Y坐标。
2.创建一个日期类,定义几个变量:年、月、日、小时、分钟、秒;构造函数的参数为System.DateTime类型,然后将值分别赋给定义的变量;然后构造两个重载方法SetTime,分别使用按值传递参数和按引用传递参数方式来对定义的变量进行计算。然后定义一个方法DisplayTime将这些变量的值输出。最后使用这个类,查看变量在调用方法SetTime(按引用传递参数方式)前后值的变化情况,比较按值传递和按引用传递这两种方式的区别。
提示:方法采用两种方式来传递参数,默认按照值传递的方式,另一种为按引用传递。方法只能有一个返回值,当然这个返回值可能是程序员定义的多个值集合的一个结构。当程序需要多于一个返回值时,如果只允许按值传递,会带来不便。而按引用传递参数,使得可以将需要同时返回的几个值都作为参数传递给方法,被调用的方法在其程序的内部对这些值做了修改后,调用者可以访问这些按引用传递的参数,来获取被调用方法计算的结果。
指导教师检查学生进度 指导教师检查学生代码规范性
1.构建一个类Point,它提供两个公有的构造函数,一个没有参数的Point构造函数和一个有两个double参数的构造函数。
第三部分 作业
指导教师布置作业
1. 编写一个程序,用来模拟银行帐户的基本操作,如帐户开户的话,则最低存款额为100、存取现金操作以及在使用任意修
改余额后都可以随时查看帐户余额。请使用重载的带参数的构造函数。
提示:要实现此问题的解决方案,请创建一个名为Account类。该类包含一个名为saving的成员变量。编写一个默认的构造函数,使用值100 初始化该成员变量(如果用户开户时的钱少于100,则不能开户;也就是不能实例化该类。)。创建一个参数化构造函数,它可以传递任何大于100的整数以初始化saving变量。
2.请采用面向对象的程序设计方法编写一个计算图形面积的类,程序应当能够计算并输出圆、矩形和三角形的面积。构造三个重载方法,对每一种图形类型使用不同的输入参数来计算面积:圆形的计算方法用半径作输入参数,矩形的计算方法用长和宽作输入参数,三角形的计算方法用三条边的长度作输入参数。可以将这些方法定义为静态类型。最后编写主控程序类来对该类进行使用。
6、数据库编程:连接数据库
目标
? ? ?
使用Command和Connection对象。 多表查询的应用。 主从关系表
指导教师讲解阶段目标
本阶段将实现用ADO.NET对数据库的操作。
第一部分 指导(45分钟)
练习1:用command和Connection实现系统登录界面
问题
一般的程序都需要登录后才能使用,登录时应提供用户名、密码和身份类型。 指导教师讲解问题说明
本程序采用SqlServer做为数据库。数据库中有一张表名为:recordInfo,用来记录注册用户的信息;表中有3个字段,分别是id(用户名),pwd(密码),type(类型)。 分析
首先使用以下命名空间: using System.Data;
using System.Data. SqlClient;
用以下方式创建Connection和Command对象,以便在.NET中操作SqlServer数据库。 // 创建Connection 对象
string connString = \ SqlConnection connection = new SqlConnection(connString);
// 创建Command 对象
SqlCommand command = new SqlCommand(sql, connection);
由于返回的是记录数,所以使用Command对象的ExecuteScalar ()方法执行该命令。 解决方案:
(1)在SqlServer中创建“MySchool”数据库。添加一个表名为recordInfo的新表,添加3列:id(用户名),pwd(密码),type(类型)。
(2)向新表recordInfo中添加几行示例数据。
(3)打开Visual Studio .NET 2005 IDE并新建一个名为ConnectStr的Windows应用程序项目。 (4)将Form1.cs文件重命名为LoginForm.cs。 (5)拖动工具箱中的控件,设计如图所示的窗体。
窗体设计界面
(6)添加两个按钮的Click事件,程序代码如下:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace ConnectStr { public partial class LoginForm : Form { string name; string type; public LoginForm() { InitializeComponent();