C#上机实验指导书.docx

上传人:无*** 文档编号:68343483 上传时间:2022-12-27 格式:DOCX 页数:98 大小:922.60KB
返回 下载 相关 举报
C#上机实验指导书.docx_第1页
第1页 / 共98页
C#上机实验指导书.docx_第2页
第2页 / 共98页
点击查看更多>>
资源描述

《C#上机实验指导书.docx》由会员分享,可在线阅读,更多相关《C#上机实验指导书.docx(98页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、面向对象程序设计C#实验指导书电子科技大学成都学院2017. 091:控制台的输入与输出32: 建立 Windows 窗体应用程序43S 一个简单的IP地址结构体6实验二C#基础知识运用71S枚举和 Switch case82S浮点型数组排序9实验三在C#中实现面向对象编程122: this关键字的使用163s构造函数的重载和普通函数的重载17实验四WinForms程序设计初步191s创建Windows窗体个人简历应用程序192s创建一个计算器应用程序25实验五调试、测试和异常处理291s调试应用程序292s处理异常3:创建自定义异常34头当曳、数据库编程:连接数据库371:用command和

2、Connection实现系统登录界面38实验七数据库编程:检索操作数据451:使用 BindingSource 和 BindingNavigator 控件操作数据库452:在SQL Server数据库中存储图像47实验C#高级编程481:单继承492:使用抽象类和抽象方法计算不同形状的面积513:使用委托和事件实现模拟闹铃52实验九数组、集合对象和泛型591:使用Hashtable对象存储数据项59头马业HWinForms 向651:使用菜单、工具栏来改变窗口的大小与颜色65实验-I-一三层结构数据库系统开发78买曳十 简单设计模式及应用892s多文档系统92实验十二 文件和注册表操作971:

3、创建文件字节读写应用程序972:创建删除、移动、复制文件的应用程序993S序列化101实验 C#与.NET环境初步实验目的, 了解.NET Framework 的结构。 理解.NET Framework的基本概念 了解,NET Framework命名空间 了解C#程序的基本结构 熟悉 Visual Studio. NET 的配置熟悉如何创建一个控制台应用程实验内容,编写第一个控制台的输入与输出程序建立第一个Windows窗体应用程序定义个简单的IP地址结构体实验设备仪器:PC50 台,要求:windows7/xp/2000/2003 操作系统,配置.Vc#2005/2008 运行环境,安装 S

4、QL Server2000/2005/2008 数据 库管理系统实验步骤:1:控制台的输入与输出问题在控制台上实现文本的输入与输出。问题说明按照提示输入自己的姓名,程序输出你输入的名字,并欢迎使用C#语言。主要使用Console (控制台)对象的WriteLine 和Write方法实现显示;使用ReadLine方法读入字符。分析Main。是应用程序(可执行)的入口点,它必须包含在个类中,且仅有一个类能使用该标志定义。参考步骤:(1)为解决方案创建一个控制台应用程序的项目“Example”。(2)将Program, cs”类文件重命名为Welcome. csn。(3)将以下代码添加到Welcom

5、e, cs”中。using System! 给System名字空间加一个using指令,不再需要规定名字空间,就可以使用它们的方法和属性 using System. Collections. Generic;using System. Fext;namespace Example(class Welcome(/这种注释跨越多行/static void Main(string args) (这是单行注释Console. Write(请输入你的姓名:; /Write与WriteLine不同的地方在于它输出时 不换行string strName = Console. ReadLineO ;Conso

6、le. WriteLineC 0 +(你好!、n 欢迎使用 C# 语言!”,strName)!)代替WriteLine方法的参数表中紧随 格式串后的第一个变量)(4)选择“生成” 一 “生成解决方案”选项,以生成此项目。(5)选择“调试”一“开始执行(不调试)”选项来执行此应用程序。此应用程序的输出结果如图1. 1所示。图1. 1 Welcome, cs的输出结果2S建立Windows窗体应用程序问题设计个窗,可以将用户输入的两个操作数进行加法计算,并显示计算结果。问题说明首先要新建Windows应用程序类型的项目,创建成功后,可以得到个名为Forml的空白窗体。可以从左边工具箱中的公 共控件

7、组中选择控件往窗体上拖放。在Windows窗体上添加两个文本输入框供用户输入操作数,再添加一个按钮来对输入的操作数进行加法计算,最后将计算 结果显示在第三个输入框中。分析Visual Studio. Net使开发图形界面程序简单,把需要的控件从工具箱拖放到Windows窗体上即可。使用Visual Studio. Net 可以减少开放人员编写的代码量,使开放人员集中精力解决业务问题。推荐步骤:(1)建立一个Windows应用程序项目,命名为“WinForm”。(2)往Forml窗体上拖放3个Labe!和TextBox控件和一个Button控件,并对它们相应的Text属性进行修改,效果如图:(3

8、)双击ADD按钮,出现代码编辑界面,把以下代码添加到“ Forml.cs”中。using System:using System. Collections. Generic;using System. ComponentModel;using System. Data;using System. Drawing;using System. Text;using System.Windows. Forms;namespace WinForm (public partial class Forml : Form (public Forml()InitializeComponent();privat

9、e void buttonl_Click(object sender, EventArgs e) (long operl, oper2, result;如果操作数为空,显示警告信息if (textBoxl. Text = ) | (textBox2. Text =) MessageBox. Show (this,操作数不能为空,提示信息”,MessageBoxButtons. OK, MessageBoxI con. Information); return;)try将文本框中的数据(字符串型)转换成long型数据operl = Convert. Tolnt64(textBoxl. Text)

10、;oper2 = Convert. Tolnt64(textBox2. Text);result = operl + oper2;将和写入结果文本框textBox3.Text = Convert.ToString(result);)catch(Exception el)( 捕捉异常,例如:若输入字母,在转换成long类型时会引发异常MessageBox. Show (this, el. Message,警告信息”,MessageBoxButtons. OK, MessageBoxIcon. Warning);)(4)选择“生成”“生成解决方案”选项,以生成此项目。(5)选择“调试” 一 “开始

11、执行(不调试)”选项来执行此应用程序。此应用程序的输出结果如图1.2所示。图1.2 Form!窗体的运行结果3l 个简单的IP地址结构体问题使用4个byte类型的变量来对IP地址进行存储,并将这4个变量组成定义一个结构体。问题说明struct类型是种可包含构造函数、常数、字段、方法、属性、索引器、运算符和嵌套类型的值类型。分析此问题要求使用一个结构体来接受和储存IP地址中的4个十进制数。该结构体可通过以下方式声明:IP sampleStruct;在C#中,类与结构体在语义上是不同的,结构是值类型,不需要实例化,而类是引用类型。推荐步骤:(1)为解决方案创建一个控制台应用程序的项目“Exampl

12、e_2”。(2)将 “Program, cs” 类文件重命名为 “SampleStruct.cs”。(3)将以下代码添加到“SampleStruct.cs”中。using System;using System. Collections. Generic;using System. Text;namespace Example_2定义个IP结构体 struct IPpublic byte bl, b2, b3, b4;)class SampleStruct(static void Main(string args)(IP sampleStruct;sampleStruct. bl = 192;

13、sampleStruct. b2 = 168;sampleStruct. b3 = 1;sampleStruct. b4 = 101;Console. Write(*0. 1*, sampleStruct. bl, sampleStruct. b2);Console. Write(*0. (1)*, sampleStruct. b3, sampleStruct. b4);)(4)选择“生成”一“生成解决方案”选项,以生成此项冃。(5)选择“调试” 一 “开始执行(不调试)”选项来执行此应用程序。此应用程序的输出结果如图!. 3所示。图1.3 SampleStruct. cs的输出结果 实验总结

14、根据实验内容和步骤,写出实验体会。实验二C#基础知识运用实验目的,通过本章的学习,主要把握以下内容: 在c#中定义变量和常量 使用C#中的基本数据类型 理解装箱和拆箱的概念 使用C#中的运算符,选择结构和循环结构 定义和使用数组,了解结构和枚举 熟悉C#中的预处理指令 熟悉C#中的字符串处理实验设备仪器:PC50 台,要求:windows7/xp/2000/2003 操作系统,配置 Vc#2005/2008 运行环境,安装 SQL Server2000/2005/2008 数据 库管理系统实验内容: 编写个使用枚举和Switch case选择语句的程序 浮点型数组排序 编写1到9的乘法口诀表程

15、序实验步骤:1:枚举和 Switch case问题枚举类型的构建和使用;通过Switch case语句来对符合条件值进行输出。问题说明编写个Degrees的枚举,然后引用这个枚举。分析在此问题中首先需要定义组不同类型的学位。为此,可通过以下方式创建枚举。LEnum Degrees(Bachelor, 学士Master,硕士Doctor博士然后,可以使用switch结构,根据传递到此switch结构的枚举成员来决定要显示的信息。 参考步骤:(1)为解决方案创建一个控制台应用程序的项目“Example_3”。(2)将“Program, cs”类文件重命名为EnumDemo.cs”。(3)将以下代码

16、添加到“ EnumDemo. cs”中。using System;using System. Collections. Generic;using System. Text;namespace Example_3 (/Z学位枚举列表 enum Degrees (/Z枚举成员 Bachelor, Master,Doctor )III /此程序演示枚举和switch case的用法。III class EnumDemo (III III应用程序的主入口点。III STAThreadstatic void Main(string args)用switch case来为相应的case显示信息。 swi

17、tch (Degrees. Master) (case Degrees. Bachelor:Console. WriteLine(你的学位为学士”); break;case Degrees. Master:Console. WritcLine (你的学位为硕 士”); break;case Degrees. Doctor:Console. WriteLine (你的学位为博士); break;default: break;)Console. ReadLineO ;)(4)选择“生成”一“生成解决方案”选项,以生成此项冃。(5)选择“调试” 一 “开始执行(不调试)”选项来执行此应用程序。此应用

18、程序的输出结果如图1. 1所示。图1. 1 EnumDemo. cs的输出结果2:浮点型数组排序问题用户输入6个浮点型数组,程序根据其值的大小,进行排序输出。问题说明编写个程序来接受用户输入的6个浮点数值,把这些数存放到个数组里,然后对这些数组里面的值进行排序。分析此问题要求使用一个数组来接受和存储用户输入的6个值。该数组可通过以下方式声明:声明长度为6的数组float elements = new float6;用冒泡法对数组进行排序:需要使用一个for循环来接受用户输入的值。再用个嵌套for循环比较数组中的元素。 参考步骤:(1)为解决方案创建一个控制台应用程序的项目“Example_4”

19、。(2)将 “Program, cs” 类文件重命名为 “ArrayDemo.cs”。(3)将以下代码添加到“ ArrayDemo. cs”中。using System;using System. Col lections. Generic;using System. Text; namespace Example 4 III II!此程序演示数组和嵌套for循环的用法。III class ArrayDemo (III /Z应用程序的主入口点。III STAThread static void Main(string args) (/Z声明长度为6的数组 float elements = ne

20、w float6;/Z计数器变量 int index;临时变量 float temp;Console. WriteLine (输入要进行排序的6个浮点数值:;/ For循环接受用户输入的值 for (index = 0; index elements. Length; index+) (elements index = float. Parse (Console. ReadLineO); )Console. WriteLine(*n 已排序的数组:);/嵌套for循环对值进行比较for (index = 0; index elements. Length; index+) (for (int

21、j = index + 1; j elementsj) (temp = elementsindex; elementsindex = elementsj; elementsj = temp;)Console. WriteLine(elementsindex);(4)选择“生成” f 生成解决方案”选项,以生成此项目。(5)选择“调试”一“开始执行(不调试)”选项来执行此应用程序。此应用程序的输出结果如图1.2所示。图1. 2 ArrayDemo. cs的输出结果3t从1到9的乘法口诀表问题编写程序输出从1到9的乘法口诀表。问题说明口诀表的前一部分如下:1*1=1:1*2=2; 2*2=4;1*

22、3=3: 2*3=6; 3*3=9;1*4=4; 2*4=8; 3*4=12; 4*4=16;分析使用两个嵌套for循环来实现,父循环从1到9,子循环从1到父循环的当前值。 推荐步骤:(1)建立一个控制台应用程序项目,命名为multipl icationTable” (2)把以下代码添加到“ Program, cs”中。using System;using System. Collections. Generic;using System. Text;namespace multiplicationTable(class Programstatic void Main(string args)

23、(for (int i = 1; i 10; i+)输出行for (int j = 1; j = i; j+)Console. Write (j. ToStr ing () +* * *+i. ToString()+*J;)Console. Write(n);换行)(3)选择“生成” 一 “生成解决方案”选项,以生成此项冃。(4)选择“调试”一“开始执行(不调试)”选项来执行此应用程序。此应用程序的输出结果如图1. 3所示。35*2 57*27*1 * 8: 2 * 8: 33456785*5;5*6; 6*6;5 * 7; 6 * 7; 75 * 8; 6 * 8; 75 9; 6 * 9;

24、 7* 7;* 8; 8 * 8;* 9; 8 * 9; 9 * 9;caJC: HHD01Ssyst ea32cBd. exezJ2J图1 . 3 Program. cs的运行结果实验总结根据实验内容和步骤,写出实验体会。实验三在C#中实现面向对象编程实验目的:通过本章的学习,主要把握以下内容: 理解C#的类和对象 使用C构造函数和析构函数 使用C#访问修饰符 使用方法 在C#中使用方法的重写 理解属性及其不同的类型、实现 理解和使用索引器 理解命名空间实验内容: 编写个队列类的C#程序。 this关键字的使用。构造函数的重载和普通函数的重载。实验设备仪器:PC50 台,要求:windows

25、7/xp/2000/2003 操作系统,配置 Vc#2005/2008 运行环境,安装 SQL Server2000/2005/2008 数据 库管理系统实验步骤,1:队列类的应用程序问题在数据结构中已经学习了队列,请用C#编写个类实现队列的功能,并编写个测试类测试该队列的功能。(参考.Net 的类库中已经封装好了的队列类:System. Collections. Queue,可以将自己做好的类,和它进行比较) 问题说明队列是限定所有的插入操作在表的一端进行,而删除操作在表的另一端进行的线性表,具有先进先出的特性。确定该队列 中存储的值类型为整数类型。分析个队列有入排和出排动作,可以编写两个函

26、数分别命名为EnQueue和DeQueue;还应该有一个属性Length:判断队列中 的元素个数:一个打印的函数Print:将队列中所有的值进行打印输出。参考步骤:(1)新建一个名为“QueueWithCSharp”的基于控制台应用程序的项目。(2)添加一个类,名为:Queue,添加以下代码。using System;using System. Col lections. Generic;using System. Text;namespace QueueWi thCSharp (public class Node (public int data;public Node prior, nex

27、t; publ ic Node () (prior = nul1; next = null; data = 0; public class Queue (Node head, rear;int length;public int Length ( getreturn length;public Queue()(/ TODO:在此处添加构造函数逻辑/head - rear = null;length = 0;public void EnQueue(int data) / 追加(if (rear = null)rear = new Node ();head = rear;rear, data =

28、data; length+;)else(rear, next = new Node ();rear. next, data = data; length+;rear = rear, next;publ ic int DeQueue0删除(if (length = 0)rear - head = nul1;Console. WriteLine (队列中没有元素); return 0;)int data = head, data;head = head, next;length-;return data;)public void Print() 打印(string str =;Node curre

29、nt = head;while (current != null)if (current = head)str += current, data. ToStringO ; elsestr +=“ + current, data. ToStringO ;current = current, next;/ end while current Console. WriteLine(str);)(3)在Program, cs类中调用Queue类,代码如下:using System;using System. Collections. Generic;using System. Text;namespa

30、ce QueueWithCSharp(class Programstatic void Main(string args)(定义一个队列类Queue demQueue = new Queue();数据入排demQueue. EnQueue(lO);demQueue. EnQueue(19);demQueue. EnQueue(50);demQueue. EnQueue(99);数据出排demQueue. DeQueue 0;打印队列中的数据 demQueue. Print 0;1(4)生成项目。(5)选择“调试”一“开始执行(不调试)”选项来执行此应用程序,输出结果如图1.1所示。图1.11的

31、输出结果2: this关键字的使用问题this关键字的使用指导问题说明this引用有三种典型的使用方式。第一种方式是限定被参数掩藏的实例变量;public void Functionl(int i)This. i=i;第二种用法是把当前对象作为参数传给另个方法;public void Methodi()(OtherClass obj= new OtherClassO ;obj. Method2(this);第三种方法与索引器有关。publie Class thisstring title ( get ( foreach () return class; ) 分析定义个汽车类,这个类有多个构造函

32、数,因为这些构造函数之间有部分功能是重叠的,所以可以进行相互调用。在进行 构造函数的互相调用时,this关键字调用参数最匹配的那个构造函数。参考步骤:(1)使用 Visual Studio. NET 2005 新建一个基于控制台的项目 wCalIConstructorw (2)将“Program.cs”类文件重命名为“Car.cs (3)将以下代码添加到“Car.cs”中。using System;using System. Collections. Generic;using System. Text; namespace CallConstructor ( public class Car

33、 ( int petalCount = 0; string s = null; Car(int petalCount) ( this. petalCount = petalCount; this 的第一种用法 Console. WriteLine(Constructor w/int arg only, petalCount = +petalCount);)Car(String s, int petals):this (petals)this关键字调用参数最匹配的那个构造函数this, s = s;Console. WriteLine(/,String & int args);)Car(): t

34、his (hi, 47)(Console. WriteLine(default Constructor);)static void Main (string args)Car x = new Car ();)(4)生成项目。(5)选择“调试” 一 “开始执行(不调试)”选项来执行此应用程序。此程序的输岀结果如图3. 2所示。图3. 2 2的输出结果3i构造函数的重载和普通函数的重载 问题构造函数的重载和普通函数的重载问题说明方法的重载仅仅是根据方法的参数列表来决定是否两个同名的函数是不同的,而不包括方法的返回值。以下声明两个不同的函数是非法的:Void f() int f()分析定义个Tree

35、类,该类对构造函数和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(*Planting a seedl

36、ing*);height = 0;)publie Tree(int i)|Console. Wri teLine(*Creating new Tree that is +i+” feet tall*);height = i; internal void info() Console. WriteLine(*Tree is *+height+* feet tai 1*); internal void info(string s) Console. WriteLine(s+*:Tree is * + height + * feet tall*);)static void Main(string a

37、rgs) for (int i = 0; i 5; i+)Tree t = new Tree(i);t. info();t. info(*overloaded method*); )new TreeO ;) )(3)生成并执行该程序。此程序的输出结果如图3. 3所示。Creating new Tree that Tree is 0 feet tall overloaded method:Tree Creating new Tree that Tree is 1 feet tall overloaded nethod:Tree Creating new Tree that Tree is 2 f

38、eet tall overloaded nethod:Tree Creating new Tree that Tree is 3 feet tall overloaded nethod:Tree Creating new Tree that |Tree is 4 feet tall overloaded nethod:Tree UPlanting a seedling 金任意键继续.feetfeet feetfeet feetfeet feetfeet feetfeettalltalltalltalltalltalltalltalltalltallct C:fIND01Ssyst e32cd.

39、 exe图3. 3 3的输出结果实验总结根据实验内容和步骤,写出实验体会。实验四WinForms程序设计初步实验目的:1, 理解Windows窗体2, 使用基本控件如标签、文本、按钮、列表框和组合框3, 掌握窗体的常用属性和方法使用WinForms中的高级控件0单选按钮0图片框0选项卡控件0滚动条0进度条实验内容: 建立个人简历的Windows应用程序。 建立一个模拟的计算器应用程序。 建立个媒体播放机应用程序。实验设备仪器:PC50 台,要求:windows7/xp/2000/2003 操作系统,配置 Vc#2005/2008 运行环境,安装 SQL Server2000/2005/2008

40、 数据 库管理系统实验步骤:Windows窗体是Visual Studio. NET提供的集成开发环境(IDE),可用于Windows应用程序开发。它带有可用于创建GUI (Graphical User Interface,图形用户界面)的所有现成界面组件。1:创建Windows窗体个人简历应用程序问题请编写个简单的个人简历程序,要求可以通过文本框输入姓名,通过单选按钮设置性别,通过下拉列表框选择文化程度, 通过文本区域填写其他个人信息:通过文件对话框选择照片并显示:通过两个下拉列表框来关联选择籍贯。指导教师分析解题思路该问题需要开发个窗体,要求对用户的简历信息进行登记。该应用程序主要用到按钮

41、、文本输入框、图片显示框、下拉 列表框和列表框等控件.分析主要通过对窗体和各控件相应的事件处理函数进行编程,包括窗体的Load、下拉框的SelectedlndexChanged、按钮的Click 事件。参考步骤:先看看窗体的界面效果:图5. 1登录屏幕(1)新建一个名为PersonalResume”的基于Windows应用程序的项目。(2)将文件“Forml. cs重命名为Personinfo, cs ,(3)设计窗体,方法是添加五个标签控件、一个文本框、两个按钮、两个单选按钮、个图片显示框、个下拉列表框和 列表框。如表5. 1所示列出了每个控件的属性。表5. 1窗体的控件属性控件类型Name

42、属性Text文本说明Labellab_name姓名:Labellab_sex性别:Labellab_nativePlace籍贯:Labellab_photo照片:Labellab_otherlnfo其他信息:TextBoxtbx_nameRadioButtonrbn_male男性RadioButtonrbn_female女性ComboBoxcbx_provinceListBoxlbx_cityPictureBoxpbx_photoRichTextBoxrtbx_otherInfoButtonbtn_browse浏览Buttonbtn_0K确定(4)在窗体的Load事件中编写下列代码。priva

43、te void PersonInfo_Load(object sender, EventArgs e) (cbx_province. Items. Add (浙江省”);cbx_province. Items. Add (江苏省);cbx_province. Selectedlndex = 0;(5)在 cbx_province 的 SelectedIndexChanged 事件中编写下列代码。private void cbxjprovince_Selected!ndexChanged(object sender, EventArgs e)1if(cbx province. Selectedltem != null)string provinceStr = cbx_province. Selectedltem. ToStringO. TrimO ;string zjCitys =杭州市,宁波市温州市,绍兴市”,”台州市 ,湖州市,金华市,嘉兴市,”衢州 市,丽水市,舟山市;stri

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com