440 likes | 539 Views
C# 程序设计基础实验. 主要内容. 实验一 编写储蓄计算器程序 实验二 在 C# 中创建类 ( 1 ) 实验三 在 C# 中创建类 ( 2 ) 实验四 使用数组 实验五 使用索引器和接口 实验六 使用事件和代理 实验七 流的使用 实验八 使用 ADO.NET 创建数据访问应用程序 实验九 使用 ADO.NET 创建 Windows 应用程序. 实验一 编写储蓄计算器程序. ♦ 实验目的.
E N D
主要内容 • 实验一 编写储蓄计算器程序 • 实验二 在C#中创建类 (1) • 实验三 在C#中创建类 (2) • 实验四 使用数组 • 实验五 使用索引器和接口 • 实验六 使用事件和代理 • 实验七 流的使用 • 实验八 使用ADO.NET创建数据访问应用程序 • 实验九 使用ADO.NET创建Windows应用程序
♦ 实验目的 • 1.熟悉VS2005开发环境,掌握如何在此开发环境下开发简单的.NET应用程序,以及调试程序的基本操作技巧。 • 2.完成本实验后,你将能够: 声明变量并对赋值、执行类型转换、编写循环语句、编写条件语句 。
♦实验内容 • 银行想要为账户持有人提供一个简单的储蓄计算器。 • 详细资料: • 在本练习中需要编写一段代码,实现一个简单的复利储蓄计算器。该应用程序的用户界面已完成,但是缺少执行计算过程的代码。本应用程序的界面自行设计。 • 用户输入某一特定值,单击Calculate 按钮后,在Total Savings 中应显示总金额。
为说明该程序的业务逻辑,下面列举了3个示例,并对其加以说明。 • (1)示例 1 • 客户初次存入1000元,帐户的年利率为 2%,计算期为5年。每月都计算利息,客户每月还向帐户中额外加钱。要求应用程序计算每月的利息(将年利息除以12),然后将计算期内的每个月的月利息增加到账户余额中。 • (2)示例2 • 客户初次存入2000元,帐户的年利率为2.5%,计算期为10年。每月都计算利息,客户每月还向帐户中额外加10元。 • 这个场景需要一个附加步骤,用以将每月额外的支付添加到每月余额中。在利息加到余额中之后再增加这项支付。最后总额为3929.10(四舍五入到小数点后两位)。 • (3)示例3 • 客户初始存入5000元,帐户的年利率为6%,计算期为15年,每月都计算利息,客户每月另存入100元。最后总额为41352.34元。
♦ 实验目的 • 1.创建类和对象 • 2.编写方法、向方法传递参数
♦实验内容 • 假设你是一家银行的开发人员,要求为帐户的类型定义对象,这些帐户是:活期帐户(Checking account)、储蓄存款帐户(Savings account)。 • 活期帐户具有以下特征: • 帐户持有者的名字只能在创建帐户时指定 • 期初差额(opening balance)必须在庄户创建时指定 • 帐户创建时必须分配帐户号 • 活期帐户的帐户号范围是从100000到499999,每个活期帐户必须具有唯 • 统一的帐户号。在本实验中,不必检查帐户号的正确性。 • 活期帐户持有者能够:定购支票薄、检查帐户余额、往帐户中加钱、如果活期帐户里的资金充足,可以从中取钱
储蓄存款帐户具有如下特征: • 帐户持有者的名字只能在创建帐户时指定 • 帐户可以赚取利息 • 利率取决于帐户余额。如果余额大于1000,利息率将是6%,否则3%。 • 储蓄存款帐户的帐户号范围是从500000到999999,在本实验中,不必 • 检查帐户号的正确性 • 储蓄存款帐户持有者能够:检查帐户余额、往帐户里加钱、如果帐户里的资金充足,可以从中取钱。
♦ 实验目的 • 1.练习如何创建类和对象2.练习如何为定义的类编写相应的方法3.练习如何通过属性访问对象中的数据4.练习如何创建基类及其派生类
♦实验内容 • 假设你是一家银行的开发人员。要求你为帐户的类型定义对象。这些帐户是:活期帐户(Checking account)、储蓄存款帐户(Saving account) • 活期帐户具有以下特征: • 帐户持有者的名字只能在创建帐户时指定 • 期初差额(opening balance)必须在帐户创建时指定 • 帐户创建时必须分配帐户号 • 活期帐户的帐户号范围是从100000到499999,没个活期帐户必须 • 具有唯一的帐户号。在本实验中,你不必检查帐户号的正确性。 • 活期帐户持有者能够: • 定购支票薄 • 检查帐户余额 • 往帐户中加钱 • 如果活期帐户里的资金充足,可以从中取钱
储蓄存款帐户具有如下特征: • 帐户持有者的名字只能在创建帐户时指定 • 储蓄存款帐户的帐户号范围从500000到999999。在本实验中,不必检查帐户号的正确性 • 帐户可以赚取利息 • 利率取决于帐户余额。如果余额大于1000,利息率将是6%,否则则是3%。 • 储蓄存款帐户持有者能够: • 检查帐户余额 • 往帐户中加钱 • 如果帐户里的资金充足,可以从中取钱
♦ 实验目的 • 1. 数组赋值 • 2. 利用数组进行排序
♦实验内容 • 尽管C# 和.NET框都提供了排序算法。但是,作为一个开发人员,不仅应该了解数组中的保存方式,还应该了解对数组中数值进行排序的算法原理。 • 在本实验中,你将实现冒泡排序,如下所示: • Private void BubbleSort(int []anArray) • anArray整数数组包含了随机产生的数值,BubbleSort 方法将对这些数值进行排序,排序的要求是较小的数值要位于数组的开始部分。
将采用下面简单的算法来对数组中的数值进行排序:将采用下面简单的算法来对数组中的数值进行排序: • for(数组a中每一个元素) • for(数组a中每一个未排序元素) • 如果a[n]>a[n+1] • 交换a[n]和a[n+1] • 为了把最小数值移动到数组的底一个位置,冒泡排序酸法要多次遍历数组,每次都要把一个最大的未排序的饿实质移动到为排序数值列表的末端。 • 在循环中,将不断检查数组a中第n个元素,并且把它与邻近的第n+1个元素进行比较,如果a[n]大于a[n+1],则交换它们。然后,继续向下比较临近元素。按照这个方法,较大的数值将逐渐向列表末端移动,直到它们都位于合适的排序位置。
♦ 实验目的 • 1. 使用集合类来管理对象 • 2. 通过编写索引器来索引访问对象中的 数据 • 3. 实现对象的接口 • 4. 使用异常处理来处理意外错误。
♦实验内容 • 当订购了旅行支票的银行客户请求亲自提取支票时,就把支票号码和金额放在出纳员的一个列表中,出纳员随后取出支票并把它们放入客户的信封中。 • 要求创建一个系统模型,它可以读取支票列表,并且把它们显示个出纳员。这个系统有以下三部分组成: • 操作者取回、查看和清除支票信息的用户界面(这个界面已经提供) • 模拟产生支票列表的组件(已经提供) • 保存支票集合的一个数据结构。这些支票由出纳员取回,但出纳员还没有对它们进行处理
练习1 使用接口 • 在本练习中,你将为Checks 类实现 IEnumerable 接口。为了测试这个接口,你需要用foreach语句替换 listChecks_Click 中的for 的语句。 • 可以继续使用练习1中的程序,也可以使用下面提供的初始代码。本练习的解决方案存储地址是:Lab05_2\Exercise2\Solution_Code\Checkprocess.sln。打开这个解决方案之前需要打开Visual Studio.NET的新实例。 • 任务具体步骤: • 1.在Visual Studio.NET中,可以继续使用练习1中的程序,或者打开实验文件下的Lab05_2\Exercise2\Checkprocess.sln 。(若要使用初始代码,可以在Visual Studio.NET中的”文件”菜单上,指向”打开”,然后单击”项目” ,在“打开项目”对话框中,浏览到实验文件下的Lab05_2\Exercise2文件夹,单击Checkprocess.sln,然后打开)。
2. 修改Checks类,使其实现IEnumerable接口 • 1)更改Checks类,使它继承IEnumerable接口 • 2)实现GetEnumerator方法 • 3)在Checks类中,创建一个实现IEnumerable接口的类, • 类名为ChecktEnumerator • 3.为了测试代码,修改From1类中的listChecks_Click方法, 使其使用foreach循环 • 1)删除代码中for语句,然后用foreach语句代替它 • 2)编译并运行程序 • 3)检查Get Checks,然后单击list Checks 你将看到一个需要运行处理的支票列表 • 4.保存解决方案,然后退出Visual Studio.NET
♦ 实验目的 • 1. 创建和使用代理 • 2. 编写代码产生事件并发送事件给注册 的事件处理程序
♦实验内容 • 在本实验中,你将编写一个应用程序,该程序允许用户通过设置买入值和卖入值来买出和卖出股票,你将编写表示股票的代码.股票可以引发三个事件:OnStockChange,OnStockFall,OnStockRise.该应用程序允许使用OnStockFall事件来购买某个价格的股票。OnStockRise事件用来指定股票的销售价格。
♦ 实验目的 • 1. 读取二进制文件中的数据 • 2. 将文本写入文件 • 3. 格式化字符串。
♦实验内容 • 在本实验中,你将编写一个C#应用程序,该程序将从一个二进制文件中读取数据,并将读取的数据写入一个文本文件中。二进制文件中的数据表示一个交易结算公司的交易。交易数据由帐户、金额和交易发生的日期组成。表1说明了这些数据在文件中的编码格式: • 表7-1 • B1B2B3B4B5B6B7B8B9B10 Accout • (1-999)DayOfYear • (1-365)Year • (1990-3000) Amount • 含有2个小数位(例如,100.25用10025表示)
表7-2 • 列大小 • Date(Long日期格式)44个字符 • Account3个字符 • Amount(货币格式)8个字符 • 写出计算Amount列总和的转换代码。
练习 : • 1.将二进制文件转换为文本文件 • 在本练习中,你将编写一个应用程序,该程序可以把二进制文件转换为文本文件。 • 任务具体步骤 • 打开Visual Studio .NET ,然后创建新项目 • 项目类型:VisualC# • 模板:Windows 应用程序 • 位置:实验文件夹下的Lab06-1文件夹 • 名称:FileConversion1 • 1)打开一个新的Visual Studio .NET实例 • 2)单击“起始页”中的“新建项目” • 3)在“新建项目”对话框中,单击“项目类型”窗格中的“VisualC#项目” • 4)单击“模板”窗格中的“Windows 应用程序” • 5)在“位置”框中,浏览到实验文件夹下的Lab06-1文件夹 • 6)在“名称”框中,输入FileConversion,然后单击“确定”
2.写出转换文件的代码按照场景中的要求,写出转换文件的代码。2.写出转换文件的代码按照场景中的要求,写出转换文件的代码。 • 应用程序提示:(你可以按照如下步骤创建该应用程序) • 在窗体代码中添加对System.IO命名空间的引用 ; • 在窗体中添加一个按钮; • 为button_Click时间添加代码; • 创建一个FileStream对象,以打开二进制文件; • 使用以打开的FileStream对象创建一个BinaryReader对象。BinaryReader对象允许以二进制方式操作二进制文件 ; • 创建一个StreamWriter对象,以输出文本文件 ; • 定义代码中用到的变量 ; • 编写一个遍历二进制文件的while循环结构。循环条件应该为: • (binaryReaderObj.Length>binaryReader.Position)
♦ 实验目的 • 1. 使用Visual Studio.NET开发环境的数据库 向导和工具创建ADO.NET应用程序 • 2. 用C#编写ADO.NET应用程序。
♦实验内容 • 练习1:创建简单的数据库表浏览器 • 在本练习中,你将使用Visual Studio开发环境的数据库向导和工具创建一个简单的应用程序,该应用程序用于读取、显示和编辑数据库中指定的表。 • 使用下面的信息创建连接字符串和命令语句。 • Server: your computer(或 localhost) • Database: 2609 • Table: BankCustomers • 本实验的解决方案是实验文件夹下的Lab07_1\Solution_Code\LabADO.sln。打开这个解决方案之前需要打开Visual Studio.NET的新实例。
任务具体步骤: • 创建一个新的Windows应用程序,并且使用“服务器资源管理器”将SqlDataAdapter对象添加到该应用程序中。DataAdapter应该从计算机上2609数据库的BankCustomers表中读取所有信息 • 1)建立一个新的Windows应用程序; • 2)使用“服务器资源管理器”找到计算机上的2609数据库和BankCustomers表; • 3)使用“服务器资源管理器”将BankCustoomers表添加到该应用程序中默认情况下,“服务器资源管理器”创建的SqlDataAdapter对象读取表中的所有数据,该对象的默认名称为sqlDataAdapter1,本实验中使用该名称来表示此对象?用“服务器资源管理器”将BankCustomers表添加到应用程序时创建了什么ADO.NET对象? • 处理程序,该程序调用DataAdapter的Update方法在窗体中添加一个按钮,并将其Text属性更改为Update双击Update按钮,注意此时就添加了一个新的方法默认情况下,该方法名为button1_Click,单击Update按钮时就会调用该方法。
4)创建DataSet对象并用BankCustomers表中的数据填充它,在设计窗体中,选择sqlDataAdapter1然后单击“数据“菜单上的“生成数据集“使用次对话框将DataSet对象添加到应用程序中使用。sqlDataAdapter1.File编写对象代码,代码中用sqlDataAdapter1读取数据来填充DataSet对象。这些代码行可以放在Form1构造函数中调用InitializeComponent的语句之后; • 5)将DataGrid添加到窗体中,并将其DataSource邦定到DataSet对象的BankCustomers表,使用“工具箱”在窗体中添加DataGrid。使用”属性”窗口将DataGrid的DataSource属性设置成DataSet对象中的BankCustomers表; • 6)在窗体中添加一个按钮,按钮文字标为Update,然后添加一个Click事件; • 7)编译、运行并测试应用程序; • 8)保存应用程序然后退出Visual Studio.NET。
练习2 :编写一个简单的数据库表浏览器。 • 在练习中,你将通过编写代码来创建一个简单的Windows应用程序,该程序从计算机上2609数据库的BankCustomers表中读取信息,并显示客户名称的和客户标识。当用户单击窗体上的Load按钮时将执行操作。不要使用设计器为窗体添加ADO.NET组件。 • 任务具体步骤: • 1. 利用VisualStudio.NET,打开Labfiles\Lab07_1\Exercise2\LabADO2.sln文件; • 2. 在LaodData_Click方法中,编写代码连接到2609数据库的BankCustomers 表,然后读取表中内容到DataSet对象;
创建连接到数据库2609的连接字符串。 • 创建从BankCustomers中查询所有内容的命令字符串。 • 使用连接字符串和命令字符串创建sqlDataAdaper对象。 • 创建DataSet对象。 • 使用SqlDataAdapter的Fill方法填充DataSet对象。 • 编写代码将DataSet表中内容写入ListBox控件。 • 3. 使用foreach循环遍历DataSet表中的Rows集合 、Rows 集合的每个元素都是DataRow类型在foreach循环内,为表中每个客户创建包含客户和客户ID的字符串; • 4. 编译、运行并测试应用程序 ; • 5. 保存应用程序然后退出Visual Studio.NET 。
♦ 实验目的 • 使用ADO.NET创建基于Windows的应用程序,用来添加、修改和删除数据库信息
♦实验内容 • 编写Windows应用程序,用来从数据库表中读取信息并允许用户添加,删除和修改记录。 • 在实验中,将实现Save,Delete和Update按钮的功能。 • 本练习的解决方案是实验文件下的Lab07_2\Solution_Code\LabADO.sln。打开这个解决方案之前需要打开Visual Studio.NET的新实例。
任务具体步骤: • 1.打开Lab07_2\Solution_Code\LabADO.sln文件 • 1)打开一个新的Visual Studio.NET实例。 • 2)单击“起始页”中的“打开项目”。 • 3)在“打开项目”对话框中,浏览到实验文件夹下Lab07_2文件夹,单击LabADO.sln,然后单击“打开”。 • 4)单击“服务器资源管理器“中的Form1.cs,然后按下F7,以打开代码编辑器。
2.编译并运行应用程序,并了解New,Save,Delete和Update按钮的目的。2.编译并运行应用程序,并了解New,Save,Delete和Update按钮的目的。 • 1)在Visual Studio.NET中按F5。 • 2)查看Customers应用程序并设置断点跟踪执行情况。 • 3)单击New • 注意:extBoxes控件被清空了而Save按钮处于激活状态。用户现在可以在文本框中输入新的客户信息,单击Save,将信息保存到数据库。 • 4)单击Save,注意Save按钮被禁用了。Save函数将把新的客户信息放到数据库中。 • 5)Update按钮允许用户更改记录。 • 6)Delete按钮允许用户从数据库中删出选中记录。 • 7)关闭Customers窗口。