C#实验指导.doc_第1页
C#实验指导.doc_第2页
C#实验指导.doc_第3页
C#实验指导.doc_第4页
C#实验指导.doc_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C#程序设计实验指导书目录实验一C#与.NET环境初步3【实验目的】。【实验环境】。【实验重点及难点】。【实验内容】。实验二C#基础知识运用4【实验目的】。【实验环境】。【实验重点及难点】。【实验内容】。实验三在C#中实现面向对象编程6【实验目的】6【实验环境】6【实验重点及难点】6【实验内容】6实验四 WinForms程序设计初步7【实验目的】7【实验环境】7【实验重点及难点】7【实验内容】7实验五 调试、测试和异常处理10【实验目的】10【实验环境】10【实验重点及难点】10【实验内容】10实验六 数据库编程:连接数据库13【实验目的】13【实验环境】13【实验重点及难点】13【实验内容】13实验七数据库编程:检索操作数据18【实验目的】18【实验环境】18【实验重点及难点】18【实验内容】18实验八 C#高级编程20【实验目的】20【实验环境】20【实验重点及难点】20【实验内容】20实验九数组、集合对象和泛型23【实验目的】23【实验环境】23【实验重点及难点】23【实验内容】23实验十 WinForms高级编程27【实验目的】27【实验环境】27【实验重点及难点】。【实验内容】27实验十一三层结构数据库系统开发33【实验目的】33【实验环境】33【实验重点及难点】33【实验内容】33实验十二简单设计模式及应用35【实验目的】。【实验环境】。【实验重点及难点】。【实验内容】。实验十三文件和注册表操作38【实验目的】38【实验环境】38【实验重点及难点】38【实验内容】38实训一、C#与.NET环境初步实训目的: 了解.NET Framework 的结构。 理解.NET Framework 的基本概念 了解 .NET Framework 命名空间 了解C#程序的基本结构 熟悉Visual Studio.NET的配置 熟悉如何创建一个控制台应用程实训内容: 编写第一个控制台的输入与输出程序 建立第一个Windows窗体应用程序 定义一个简单的IP地址结构体实训设备仪器: PC50台,要求:windows7/xp/2000/2003操作系统,配置Vc#2005/2008运行环境,安装SQL Server2000/2005/2008数据库管理系统实训步骤:1:控制台的输入与输出问题在控制台上实现文本的输入与输出。问题说明按照提示输入自己的姓名,程序输出你输入的名字,并欢迎使用C#语言。主要使用Console(控制台)对象的WriteLine和Write方法实现显示;使用ReadLine方法读入字符。分析Main()是应用程序(可执行)的入口点,它必须包含在一个类中,且仅有一个类能使用该标志定义。参考步骤:(1)为解决方案创建一个控制台应用程序的项目“Example_1”。(2)将“Program.cs”类文件重命名为“Welcome.cs”。(3)将以下代码添加到“Welcome.cs”中。using System; /给System名字空间加一个using指令,不再需要规定名字空间,就可以使用它们的方法和属性using System.Collections.Generic;using System.Text;namespace Example_1 class Welcome /*这种注释 跨越多行*/ static void Main(string args) /这是单行注释 Console.Write(请输入你的姓名:); /Write与WriteLine不同的地方在于它输出时不换行 string strName = Console.ReadLine();Console.WriteLine(0+,你好!n 欢迎使用C#语言!, strName); /0代替 WriteLine方法的参数表中紧随格式串后的第一个变量 (4)选择“生成”“生成解决方案”选项,以生成此项目。(5)选择“调试” “开始执行(不调试)”选项来执行此应用程序。 此应用程序的输出结果如图1.1所示。图1.1 Welcome.cs的输出结果 根据实验内容和步骤,写出实验体会。实训二、C#基础知识运用实训目的:通过本章的学习,主要把握以下内容: 在C#中定义变量和常量 使用C# 中的基本数据类型 理解装箱和拆箱的概念 使用C#中的运算符,选择结构和循环结构 定义和使用数组,了解结构和枚举 熟悉C#中的预处理指令 熟悉C#中的字符串处理实训设备仪器: PC50台,要求:windows7/xp/2000/2003操作系统,配置Vc#2005/2008运行环境,安装SQL Server2000/2005/2008数据库管理系统实训内容: 编写一个使用枚举和Switch case选择语句的程序 浮点型数组排序 编写1到9的乘法口诀表程序实训步骤: 1:枚举和Switch case问题枚举类型的构建和使用;通过Switch case语句来对符合条件值进行输出。 问题说明编写一个Degrees的枚举,然后引用这个枚举。分析在此问题中首先需要定义一组不同类型的学位。为此,可通过以下方式创建枚举。Enum Degrees Bachelor, /学士 Master, /硕士 Doctor /博士然后,可以使用switch结构,根据传递到此switch结构的枚举成员来决定要显示的信息。参考步骤:(1)为解决方案创建一个控制台应用程序的项目“Example_3”。(2)将“Program.cs”类文件重命名为“EnumDemo.cs”。(3)将以下代码添加到“EnumDemo.cs”中。using System;using System.Collections.Generic;using System.Text;namespace Example_3 / 学位枚举列表 enum Degrees / 枚举成员 Bachelor, Master, Doctor / / 此程序演示枚举和 switch case 的用法。 / class EnumDemo / / 应用程序的主入口点。 / STAThread static void Main(string args) / 用 switch case 来为相应的 case 显示信息。 switch (Degrees.Master) case Degrees.Bachelor:Console.WriteLine(你的学位为学士); break; case Degrees.Master: Console.WriteLine(你的学位为硕士); break; case Degrees.Doctor: Console.WriteLine(你的学位为博士); break; default: break; Console.ReadLine(); (4)选择“生成”“生成解决方案”选项,以生成此项目。(5)选择“调试” “开始执行(不调试)”选项来执行此应用程序。此应用程序的输出结果如图1.1所示。图1.1 EnumDemo.cs的输出结果 实验总结 根据实验内容和步骤,写出实验体会。实训三、在C#中实现面向对象编程实训目的:通过本章的学习,主要把握以下内容: 理解 C# 的类和对象 使用 C# 构造函数和析构函数 使用 C# 访问修饰符 使用方法 在C#中使用方法的重写 理解属性及其不同的类型、实现 理解和使用索引器 理解命名空间实训内容: 编写一个队列类的C#程序。 this关键字的使用。 构造函数的重载和普通函数的重载。实训设备仪器: PC50台,要求:windows7/xp/2000/2003操作系统,配置Vc#2005/2008运行环境,安装SQL Server2000/2005/2008数据库管理系统实训步骤: 1:队列类的应用程序问题在数据结构中已经学习了队列,请用C#编写一个类实现队列的功能,并编写一个测试类测试该队列的功能。(参考.Net的类库中已经封装好了的队列类:System.Collections.Queue,可以将自己做好的类,和它进行比较)问题说明队列是限定所有的插入操作在表的一端进行,而删除操作在表的另一端进行的线性表,具有先进先出的特性。确定该队列中存储的值类型为整数类型。分析一个队列有入排和出排动作,可以编写两个函数分别命名为EnQueue和DeQueue;还应该有一个属性Length:判断队列中的元素个数;一个打印的函数Print:将队列中所有的值进行打印输出。实训总结 根据实验内容和步骤,写出实验体会。实训四 WinForms程序设计初步实训目的:1、 理解 Windows 窗体2、 使用基本控件如标签、文本、按钮、列表框和组合框 3、 掌握窗体的常用属性和方法 4、 使用WinForms中的高级控件5、 单选按钮6、 图片框7、 选项卡控件8、 滚动条9、 进度条实训内容: 建立个人简历的Windows应用程序。 建立一个模拟的计算器应用程序。 建立一个媒体播放机应用程序。实训设备仪器: PC50台,要求:windows7/xp/2000/2003操作系统,配置Vc#2005/2008运行环境,安装SQL Server2000/2005/2008数据库管理系统实训步骤: Windows窗体是Visual Studio .NET提供的集成开发环境(IDE),可用于Windows应用程序开发。它带有可用于创建GUI(Graphical User Interface,图形用户界面)的所有现成界面组件。1:创建Windows窗体个人简历应用程序问题请编写一个简单的个人简历程序,要求可以通过文本框输入姓名,通过单选按钮设置性别,通过下拉列表框选择文化程度,通过文本区域填写其他个人信息;通过文件对话框选择照片并显示;通过两个下拉列表框来关联选择籍贯。指导教师分析解题思路该问题需要开发一个窗体,要求对用户的简历信息进行登记。该应用程序主要用到按钮、文本输入框、图片显示框、下拉列表框和列表框等控件。分析主要通过对窗体和各控件相应的事件处理函数进行编程,包括窗体的Load、下拉框的SelectedIndexChanged、按钮的Click事件。参考步骤:先看看窗体的界面效果:图5.1 登录屏幕(1)新建一个名为“PersonalResume”的基于Windows应用程序的项目。(2)将文件“Form1.cs”重命名为“PersonInfo.cs”。(3)设计窗体,方法是添加五个标签控件、一个文本框、两个按钮、两个单选按钮、一个图片显示框、一个下拉列表框和列表框。如表5.1所示列出了每个控件的属性。表5.1 窗体的控件属性控件类型Name属性Text文本说明Labellab_name姓名:Labellab_sex性别:Labellab_nativePlace籍贯:Labellab_photo照片:Labellab_otherInfo其他信息:TextBoxtbx_nameRadioButtonrbn_male男性RadioButtonrbn_female女性ComboBoxcbx_provinceListBoxlbx_cityPictureBoxpbx_photoRichTextBoxrtbx_otherInfoButtonbtn_browse浏 览Buttonbtn_OK确 定(4)在窗体的Load事件中编写下列代码。 private void PersonInfo_Load(object sender, EventArgs e) cbx_province.Items.Add(浙江省); cbx_province.Items.Add(江苏省); cbx_province.SelectedIndex = 0; (5)在cbx_province的SelectedIndexChanged事件中编写下列代码。 private void cbx_province_SelectedIndexChanged(object sender, EventArgs e) if (cbx_province.SelectedItem != null) string provinceStr = cbx_province.SelectedItem.ToString().Trim(); string zjCitys =杭州市,宁波市,温州市,绍兴市,台州市,湖州市,金 华市,嘉兴市,衢州市 ,丽水市,舟山市; string jsCitys = 常州市, 淮安市, 连云港市, 南京市, 南通市, 苏州市, 宿迁市, 泰州市, 无锡市, 徐州市, 盐城市 ,扬州市,镇江市;lbx_city.Items.Clear(); /清空所有的Item项 switch (provinceStr) case 浙江省: lbx_city.Items.AddRange(zjCitys); /添加浙江省的城市 break; case 江苏省: lbx_city.Items.AddRange(jsCitys); /添加江苏省的城市 break; (6)在btn_browse的Click事件中编写下列代码。 private void btn_browse_Click(object sender, EventArgs e) OpenFileDialog imageDialog = new OpenFileDialog(); imageDialog.Filter = BMP(*.BMP)|*.BMP|JPEG(*.JPEG)|*.JPEG|JPG(*.JPG)|*.JPG|GIF (*.GIF)|*.GIF|PNG(*.png)|*.png; imageDialog.Title = 选择照片; if (imageDialog.ShowDialog() = DialogResult.OK) pbx_photo.ImageLocation = imageDialog.FileName; (7)在btn_OK的Click事件中编写下列代码。 private void btn_OK_Click(object sender, EventArgs e) if (tbx_name.Text = & tbx_name.Text.Length 1) MessageBox.Show(请填写姓名!, 提示, MessageBoxButtons.OK, MessageBoxIcon.Information); return; if (lbx_city.SelectedItem = null) MessageBox.Show(请选择籍贯!, 提示, MessageBoxButtons.OK, MessageBoxIcon.Information); return; MessageBox.Show(你的简历信息将会保存到数据库中,n以便招聘企业查询!, 提示, MessageBoxButtons.OK, MessageBoxIcon.Information); this.Close(); 实验总结 根据实验内容和步骤,写出实验体会。实训五、调试、测试和异常处理实训目的: 理解如何调试应用程序和排除错误 掌握如何测试 C# 应用程序 了解测试和调试的区别 在程序中进行错误捕获和错误处理实训内容: 调试C#应用程序。 检测并处理异常。 自定义异常类实训设备仪器: PC50台,要求:windows7/xp/2000/2003操作系统,配置Vc#2005/2008运行环境,安装SQL Server2000/2005/2008数据库管理系统实训步骤: Visual Studio.NET提供了多种调试功能,可让程序在其中的不同位置暂停执行,以便更改变量或仔细查看代码如何工作或为什么无法工作。C#提供了一种结构化、统一且类型安全的方法,通过使用异常来处理系统级和应用程序级错误情况。1:调试应用程序问题 采用多种查看方式来对变量值进行监视。问题说明 调试“WinForms基础知识第一部分1”中创建的项目,以监视变量的值。分析分析解题思路 该问题需要在所需代码行处设置断点,并监视变量的值。然后可以通过“局部变量”窗口或“监视”窗口查看或更改变量的值。另外也可以使用“即时”窗口来检查任何变量的值。参考步骤:(1)打开上机:WinForms基础知识第一部分1中创建的应用程序。(2)打开“PersonInfo.cs”文件并设置断点(当键盘光标位于需要添加断点所在的代码行时按下F9),如下图所示。设置断点(3)运行此应用程序。焦点变为第一个断点后,程序将暂停执行。选择“调试” “窗口” “局部变量”,以打开“局部变量”窗口,此窗口将显示当前位于程序作用域内的所有变量以及它们的值。检查这些变量的值,如下图所示。“局部变量”窗口(4)右键单击方法中的provinceStr变量,然后选择“添加监视”。此时将显示“添加监视”窗口以及provinceStr的当前值,如下图所示。可以看出,“监视”窗口只列出已经设置为监视的变量,这与“局部变量”窗口显示作用域内的所有局部变量有所不同。如果程序执行的当前作用域存在许多变量,但其中只有少数变量需要跟踪,则“监视”窗口将十分有用。“监视” 窗格(5)单击“值”列,在“监视”窗格中将provinceStr变量的值更改为“江苏省”。(6)选择“调试” “窗口” “即时”,以显示即时模式的“命令”窗口。要检查变量的值,可使用语法。例如,键入?provinceStr即可检查变量provinceStr的值,如下图所示。即时模式的“命令”窗格(7)单击“调试” “继续”,以继续执行程序。点击窗体上的浏览按钮,去触发Click事件,控制权将转到下一个断点行。将鼠标指针指向变量imageDialog.Title。该值将显示在一个小框中,如下图所示。显示imageDialog.Title的当前值(8)选择“调试” “快速监视”,以显示当前对象的值,如下图所示。“快速监视”窗口 “快速监视”窗口显示当前对象的值。关键字this代表当前的对象。如果要查看对象字段的属性值,可在“快速监视”窗口中键入属性名,然后按下Enter键。此时将显示该值。例如,键入this.Height即可查看Height变量包含的值。实训总结: 根据实训内容和步骤,写出实训体会。实验六 数据库编程:连接数据库实训目的: 了解ADO.NET 结构 了解ADO.NET 的组件 使用Command 对象和 Connection 对象 使用ADO.NET 进行事务处理 使用Command和Connection对象。 多表查询的应用。 主从关系表实训内容:实现用ADO.NET对数据库的操作。实训设备仪器: PC50台,要求:windows7/xp/2000/2003操作系统,配置Vc#2005/2008运行环境,安装SQL Server2000/2005/2008数据库管理系统实训步骤:1:用command和Connection实现系统登录界面问题 一般的程序都需要登录后才能使用,登录时应提供用户名、密码和身份类型。问题说明 本程序采用SqlServer做为数据库。数据库中有一张表名为:recordInfo,用来记录注册用户的信息;表中有3个字段,分别是id(用户名),pwd(密码),type(类型)。分析 首先使用以下命名空间: using System.Data; using System.Data. SqlClient; 用以下方式创建Connection和Command对象,以便在.NET中操作SqlServer数据库。 / 创建Connection 对象 string connString = Data Source=.;Initial Catalog=MySchool;User ID=sa;pwd=sa; 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(); private void btnLogIn_Click(object sender, EventArgs e) bool isValidUser = false; / 标识是否为合法用户 / 如果验证通过,就显示相应的用户窗体,并将当前窗体设为不可见 if (ValidateInput() / 调用用户验证方法 isValidUser = ValidateUser( cboLogInType.Text, txtLogInId.Text, txtLogInPwd.Text); / 如果是合法用户,显示相应的窗体 if (isValidUser) / 将输入的用户名保存到全局变量中 name = txtLogInId.Text; / 将选择的登录类型保存到全局变量中 type = cboLogInType.Text; ShowUserForm(); / 显示相应用户的主窗体 / 验证用户是否进行了输入和选择 private bool ValidateInput() if (txtLogInId.Text.Trim() = ) MessageBox.Show(请输入用户名, 输入提示, MessageBoxButtons.OK, MessageBoxIcon.Information); txtLogInId.Focus(); return false; else if (txtLogInPwd.Text.Trim() = ) MessageBox.Show(请输入密码, 输入提示, MessageBoxButtons.OK, MessageBoxIcon.Information); txtLogInPwd.Focus(); return false; else if (cboLogInType.Text.Trim() = ) MessageBox.Show(请选择登录类型, 输入提示, MessageBoxButtons.OK, MessageBoxIcon.Information); cboLogInType.Focus(); return false; else return true; / 验证用户输入的用户名和密码是否正确 / 验证的结果有两种情况:通过和不通过,返回值为布尔型 / 不通过的原因可能有多种,在方法的参数中的message字符串,用以标识不通过的情况 public bool ValidateUser(string loginType, string loginId, string loginPwd) / 创建Connection 对象 string connString = Data Source=.;Initial Catalog=MySchool;User ID=sa;pwd=sa; SqlConnection connection = new SqlConnection(connString); int num = 0; / 选员信息的数量 / 查询用的SQL 语句 string sql = SELECT COUNT(*) FROM recordInfo where id= + loginId + and pwd= + loginPwd + and type= + loginType + ; bool isExist = false; try connection.Open();/ 打开数据库连接 / 创建Command 对象 SqlCommand command = new SqlCommand(sql, connection); / 执行SQL 查询 num = (int)command.ExecuteScalar(); if (num 0) isExist = true; else MessageBox.Show(数据库中无此记录!,提示信息, MessageBoxButtons.OK, MessageBoxIcon.Information); catch (Exception ex) / 操作出错 MessageBox.Show(连接数据库出错!); finally / 关闭数据库连接 connection.Close(); return isExist; / 根据登录类型,显示相应的窗体 public void ShowUserForm() MessageBox.Show(欢迎使用该系统: + type + name); private void btnCancel_Click(object sender, EventArgs e) Application.Exit(); (7)保存并构建应用程序。执行应用程序,以验证其工作情况。运行效果如图所示:登录界面图实训总结 根据实训内容和步骤,写出实训体会。实验七 数据库编程:检索操作数据实训目的: 熟练应用BindingSource和BindingNavigator控件。 熟练使用DataAdapter和DataReader。实训内容: 检索操作数据实训设备仪器: PC50台,要求:windows7/xp/2000/2003操作系统,配置Vc#2005/2008运行环境,安装SQL Server2000/2005/2008数据库管理系统实训步骤:1:使用BindingSource和BindingNavigator控件操作数据库问题 创建一个具有添加、删除、修改等功能的SQL Server数据库应用程序。 关键步骤(1) 连接SQL Server数据库 启动数据源配置向导,在“选择您的数据连接”对话框中单击【新建数据连接】按钮,在“添加连接”对话框中若默认的连接类型不正确,可单击【更改】按钮打开对话框,选择其中“Microsoft SQL Server”数据源类型,单击【确定】按钮。(2)TableAdapter配置向导 在程序窗体设计器下方可以看到由系统自动创建的4个对象:DataSet(数据集)、BindingSource(绑定到数据源)、TableAdapter(表适配器)和BindingNavigator(绑定到导航工具栏)。鼠标指向DataSet或TableAdapter单击右键,在弹出的快捷菜单中执行“在数据集编辑器中编辑”命令打开对话框。右键单击表适配器,在弹出的快捷菜单中执行“配置”命令,启动TableAdapter配置向导。 单击对话框中【高级设置】按钮,打开对话框。用户可根据程序的需要选择是否生成Insert(插入)、Update(更新)和Delete(删除)SQL语句。单击“输入SQL语句”对话框中的【下一步】按钮,打开对话框。此处可以选择需要为TableAdapter生成哪些方法,如填充(Fill)、返回(Get)及用于将更新直接发送到数据库的方法。单击【下一步】按钮,在对话框中单击【完成】按钮结束TableAdapter配置向导。(3)完善程序界面和代码 通过使用数据源配置向导和TableAdapter配置向导,创建的SQL Server数据库应用程序已具有了要求的功能。但为了使程序更加美观、更加人性化还需要进行一些简单的完善。设计界面如图所示:界面设计视图 表可以采用两种方式进行显示:DataGridView和详细信息。如采用详细信息方式时,列的显示方式就有多种选择,如TextBox、Label、ComboBox等。解决方案:(1)创建一个名为“ConnectExam”的基于Windows的应用程序。(2)添加数据源。(3)配置TableAdapter。(4)设计界面。(5)完善代码。 用户单击保存按钮时执行的事件过程代码修改如下:private void studentBindingNavigatorSaveItem_Click(object sender, EventArgs e) this.Validate(); this.studentBindingSource.EndEdit(); this.studentTableAdapter.Update(this.connectExampleDataSet.student); / 下列语句行用于显示提示信息,需要手工添加 MessageBox.Show(更新成功!, 系统提示,MessageBoxButtons.OK, MessageBoxIcon.Information); 添加用户关闭窗体时执行的事件过程代码如下: private void Form1_FormClosed(object sender, FormClosedEventArgs e) / 声明变量用于存放信息框返回结果 DialogResult result; / 用HasChanges()方法判断数据集是否已被修改 if (connectExampleDataSet.HasChanges() / 若数据集已被修改则显示信息框提示用户 result = MessageBox.Show(数据已被修改,是否保存? , 系统提示, MessageBoxButtons.YesNo, MessageBoxIcon.Information); / 若用户单击了信息框中的【是】按钮 if (result = DialogResult.Ye

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论