1、长春理工大学计算机科学与技术专业C#程序设计实验指导C#程序设计实验指导书实 验 须 知1. 实验前,应认真阅读实验指导书,明确实验目的、实验内容和实验步骤,做好实验准备。2. 实验中,积极思考,及时记录,有疑问及时解决,当堂完成实验内容和实验报告。3. 实验中严格遵守实验室管理规则,珍惜实验时间,不做与实验无关 的事。4. 实验结束,按要求填写实验机器使用记录单,正确关闭实验用机,整理好键盘和椅子,值日生认真打扫实验室卫生。目 录任务一 熟悉VS2005开发环境1任务二 掌握基本程序逻辑8任务三 掌握循环语句13任务四 创建类与对象18任务五 创建静态类与静态方法25任务六 实现继承和抽象类
2、32任务七 掌握多态的应用40任务八 掌握接口的实现47任务九 实现对数组的操作57任务十 实现队列、栈的操作64任务十一 实现进销存系统供应商信息维护67任务十二 掌握开发WinForms应用程序的步骤73任务十三 掌握系统主界面设计90任务十四 掌握委托与事件处理机制100任务十五 访问SQL Server数据库106任务十六 访问Access数据库120任务十七 了解字符串操作(选做)129任务十八 掌握文件操作(选做)136C#程序设计实验指导书任务一 熟悉VS2005开发环境实验目的掌握VS2005开发C#应用程序的步骤掌握VS2005调试器的使用第一部分 上机训练1、采用VS200
3、5编写Hello World应用程序1)打开VS2005开发工具2)在VS2005主界面下选择菜单【文件】【新建】【项目】3)在新建项目对话框中选择Visual C#,模板选择控制台应用程序,给项目命名为HelloWorld,然后点“浏览”按钮,选择项目的存储目录4)程序生成的文件如下5)双击Program.cs,键入代码如下:using System;using System.Collections.Generic;using System.Text;namespace HelloWorld class Program static void Main(string args) Consol
4、e.WriteLine(Hello World); 6)在菜单上选择【生成】【生成解决方案】7)按F5或者点启动调试按钮运行程序8)这时会发现DOS窗口一闪不见,按Ctrl+F5,或者在菜单上选择【调试】【开始执行(不调试)】,可以解决这个问题9)运行结果如下:2、断点的设置与调试1) 按上述步骤创建名为BreakPoint的控制台应用程序2)在Program.cs中输入如下代码:using System;using System.Collections.Generic;using System.Text;namespace BreakPoint class Program static vo
5、id Main(string args) int i = 5; int j = i * 2; Console.WriteLine(01, i, j); 3)给int j = i * 2;行设置断点,只需点左边的空白栏4)按F5执行程序,会发现程序执行到断点处停止,移动鼠标到i和j上,观察i,j的当前值5)选择工具栏的逐语句按钮或者按F11,单步执行程序9)再次观察i,j的值10)注意下面的调试监视窗口:第二部分 实战提高请修改Hello World应用程序,输出自己的班级、学号、姓名,自我介绍。代码写在下面:using System;using System.Collections.Gener
6、ic;using System.Text;namespace HelloWorld class Program static void Main(string args) Console.WriteLine(Hello World); Console.WriteLine(班级:级网络工程班); Console.WriteLine(学号:); Console.WriteLine(姓名:刘群); Console.WriteLine(自我介绍:); Console.WriteLine( 我来自四川,现就读于华侨大学计算机科学与技术学院。); Console.ReadKey(); 第三部分 知识总结学
7、生总结请将问题答案写在下面空白处完成上机训练模块花费的时间10min完成实战提高模块花费的时间5min本次实验对你而言的难点断点调试本次实验的收获断点调试希望老师强化讲解的知识要点断点调试希望老师帮助回答的问题本次实验自评分数(五分制)5教师评价请将评语、分数等写在下面空白处问题答疑实验评语实验得分任务二 掌握基本程序逻辑实验目的编写应用程序掌握变量、常量、枚举的使用掌握表达式的应用掌握分支语句的应用第一部分 上机训练1、编写一个程序,列举班级所有班委,然后使用这个枚举1)创建一个名位TestEnum的控制台应用程序2)在namespace TestEnum 和 class Program之间
8、输入:enum 班委 班长, 团支书, 生活委员, 体育委员, 劳动委员,注意缩进和对齐3)在static void Main(string args)方法中输入:班委 classTeam = 班委.生活委员; switch (classTeam) case 班委.班长: Console.WriteLine(我是班长); break; case 班委.团支书: Console.WriteLine(我是团支书); break; case 班委.生活委员: Console.WriteLine(我是生活委员); break; case 班委.体育委员: Console.WriteLine(我是体育委
9、员); break; case 班委.劳动委员: Console.WriteLine(我是劳动委员); break; default: Console.WriteLine(为什么我不是班委?); break; 4)按CTRL+F5查看运行结果2、计算圆面积,圆面积公式为Area=R2,这种表示符号,在计算机中只能表示为Area=PI*R*R,在本例中,我们希望用户输入圆的半径,但是用户的输入只能是字符串,因此,这里我们要用到数制的转换,注意数制的转换方法1)新建一个名为CircleArea的控制台应用程序2)输入如下代码:using System;using System.Collection
10、s.Generic;using System.Text;namespace CircleArea class Program static void Main(string args) /定义常量 const float PI = 3.1415926f; Console.Write(请输入圆的半径:); /获取用户的输入 string input = Console.ReadLine(); /将字符串转化为浮点数 float radius = float.Parse(input); /计算圆面积 float circlArea = radius * radius * PI; /输出结果 Con
11、sole.WriteLine(圆面积为:0, circlArea); 3)按Ctrl+F5运行程序4)补充:数制的转换将字符串转换成某种类型,只需直接写成类似int.Parse(”11”)的格式即可,如果需要实现数制之间的任意转换,则需要调用Convert.ToXXX()方法。可以自己实践一下。第二部分 实战提高1、编写一个程序接受用户输入的字符串。如果输入的字母是”a”、”e”、”i”、”o”或”u”中的一个,则显示“您输入了一个元音”,否则显示“这不是一个元音”。sing System;using System.Collections.Generic;using System.Linq;u
12、sing System.Text;namespace Vowel class Program static void Main(string args) Console.WriteLine(请输入一个英文字母:); string input=Console.ReadLine(); /char a, e, i, o, u; if (input = a | input = e | input = i | input = o | input = u) Console.WriteLine(您输入了一个元音); else Console.WriteLine(您输入的不是一个元音); Console.Re
13、adKey(); 2、人有胖瘦之分,体重过轻则为瘦,过重则为胖,那么以什么样的标准来衡量是胖还是瘦呢?这当然必须有个参照值,这个参照值,我们就把它称之为标准体重。目前在我国尚没有统一的标准体重数据。除了国际流行的体重计算方法外,军事科学院还推出一计算中国人理想体重的方法: 北方人理想体重(千克)(身高厘米150) x 0650,南方人理想体重(千克)(身高厘米150) x 0648,这一计算方法,似乎比较适合南北地区中国人。正常体重一般在标准体重+-10以内的范围。超过这一范围,就可称之为异常体重。 实测体重超过标准体重,但超出部分 20者称为超重;实测体重超过标准体重 20以上,并有脂肪百分
14、率(F)超过30者则可诊断为肥胖病。体重超过标准体重的30 一50,F超过35一45者称中度肥胖病;超过标准体重50以上,F超过45以上者称为重度肥胖病。根据以上描述,要求用户输入以下内容:1)北方人/南方人2)身高(厘米)3)体重(公斤)4)脂肪百分率(F%)根据以上公式和描述告诉客户是否超重,如果超重,再告之其是何种肥胖病using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Weight class Program static void Main(string
15、 args) double area,high,weight,percent,idealweight,F; Console.WriteLine(请输入你所属地区(北方=1/南方=2):); area =double.Parse( Console.ReadLine(); /转换成double型 Console .WriteLine (请输入您的身高(厘米)); high=Convert.ToDouble( Console .ReadLine (); /另一个函数转换类型 Console .WriteLine (请输入您的体重(公斤)); weight = Convert.ToDouble(Con
16、sole.ReadLine(); Console .WriteLine (请输入您的脂肪百分率(F%));144 F = double.Parse(Console.ReadLine(); if (area = 1) idealweight = (high - 150) * 0.6 + 50; percent = weight / idealweight; else idealweight = (high - 150) * 0.6 + 48; percent = weight / idealweight; if (percent 0.9) Console.WriteLine(偏轻); else
17、if (percent = 1.1) Console.WriteLine(正常体重); else if (percent = 1.2) Console.WriteLine(您超重了!); else if (percent 30) Console.WriteLine(您患有肥胖病!); else if (percent = 35 & F 45) Console.WriteLine(您患有重度肥胖病!); Console.ReadKey(); 第三部分 知识总结学生总结请将问题答案写在下面空白处完成上机训练模块花费的时间25min完成实战提高模块花费的时间50min本次实验对你而言的难点本次实验的
18、收获希望老师强化讲解的知识要点希望老师帮助回答的问题本次实验自评分数(五分制)教师评价请将评语、分数等写在下面空白处问题答疑实验评语实验得分任务三 掌握循环语句实验目的掌握while循环掌握for循环第一部分 上机训练1、实现n的阶乘1)新建一个名为Factorial的控制台应用程序2) 输入如下代码using System;using System.Collections.Generic;using System.Text;namespace Factorial class Program static void Main(string args) Console.Write(请输入一个正整
19、数:); /接收用户输入 string input = Console.ReadLine(); /转化为整数 int n = int.Parse(input); /以上代码可以合写为 /int n = int.Parse(Console.ReadLine(); int i = 1; int result = 1; while (i = n) result = result * i; /或者写成result *= i; i+; Console.WriteLine(0的阶乘为1, n, result); 3)Ctrl+F5运行查看结果2、打印9*9乘法表1)新建一个名为MutiTable的控制台应
20、用程序2) 输入如下代码using System;using System.Collections.Generic;using System.Text;namespace MultiTable class Program static void Main(string args) /9行 for (int i = 1; i = 9; i+) /每行最多i列 for (int j = 1; j = i; j+) Console.Write(0*1=2t, i, j, i * j); /换行 Console.WriteLine(); Path lin3)Ctrl+F5运行查看结果第二部分 实战提高
21、1、改写n的阶乘计算程序,改用for循环using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Factorial2 class Program static void Main(string args) Console.Write(请输入一个正整数:); string input = Console.ReadLine(); int n = int.Parse(input); int result = 1; for ( int i = 1; i = n; i+) re
22、sult = result * i; Console .WriteLine (0的阶乘为1, n, result); Console .ReadKey (); 2、打印9*9加法表using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 加法表 class Program static void Main(string args) /9行 for (int i = 1; i = 9; i+) /每行最多i列 for (int j = 1; j = i; j+) Cons
23、ole.Write(0+1=2t, j, i, i + j); /换行 Console.WriteLine(); Console.ReadKey(); 第三部分 知识总结学生总结请将问题答案写在下面空白处完成上机训练模块花费的时间完成实战提高模块花费的时间本次实验对你而言的难点本次实验的收获希望老师强化讲解的知识要点希望老师帮助回答的问题本次实验自评分数(五分制)教师评价请将评语、分数等写在下面空白处问题答疑实验评语实验得分任务四 创建类与对象实验目的理解面向对象的概念掌握C#创建类和对象的方法第一部分 上机训练1、很多软件都要求我们先输入用户名和密码才能使用,最常见的例子当属Windows操
24、作系统,制作一个类,完成系统的登录验证工作1)新建一个名为MySoftware的控制台应用程序2)在解决方案资源管理器中选中该项目,点鼠标右键盘,在弹出的菜单中选择【添加】【类】3)在弹出的对话框中将类名改为Login4)在代码class Login前添加public关键字5)添加Login类的成员变量private string _userName;private string _password;6)添加Login类的属性public string UserName get return userName; set userName = value; public string Passw
25、ord get return password; set password = value; 7)添加Login类的方法/方法public bool IsValidateUser() if (userName.Equals(admin) & password.Equals(admin) return true; else return false;8)完整代码如下:using System;using System.Collections.Generic;using System.Text;namespace MySoftware public class Login /私有字段 privat
26、e string userName; private string password; /属性 public string UserName get return userName; set userName = value; public string Password get return password; set password = value; /方法 public bool IsValidateUser() if (userName.Equals(admin) & password.Equals(admin) return true; else return false; 9)双
27、击Program.cs,在Main方法中输入如下代码:using System;using System.Collections.Generic;using System.Text;namespace MySoftware class Program static void Main(string args) Login loginModule = new Login(); Console.WriteLine(#); Console.WriteLine( C# 之星V1.0 Beata 版 ); Console.WriteLine(#); Console.WriteLine(); Consol
28、e.WriteLine(); Console.Write(请输入您的用户名:); string userName = Console.ReadLine(); Console.Write(请输入您的密码:); string password = Console.ReadLine(); loginModule.UserName = userName; loginModule.Password = password; if (loginModule.IsValidateUser() Console.WriteLine(欢迎使用C#之星软件V1.0版本); else Console.WriteLine
29、(您的用户名输入错误,系统拒绝登录!); 10)按Ctrl+F5运行程序,查看程序执行效果第二部分 实战提高扩展登录类,实现以下功能:1)在命名空间中增加用户类型枚举,包括管理员、普通用户两种2)在Login类中添加枚举类型对应的成员变量,并将该变量封装成属性3)修改IsValidateUser()方法,对于不同的用户身份,进入不同的欢迎界面4)用户拥有5次登录尝试机会,如果5次登录都失败,程序结束,否则,允许用户重新输入用户名和密码。第三部分 知识总结学生总结请将问题答案写在下面空白处完成上机训练模块花费的时间完成实战提高模块花费的时间本次实验对你而言的难点本次实验的收获希望老师强化讲解的知
30、识要点希望老师帮助回答的问题本次实验自评分数(五分制)教师评价请将评语、分数等写在下面空白处问题答疑实验评语实验得分任务五 创建静态类与静态方法实验目的掌握this的使用掌握静态成员和静态方法的应用掌握构造方法的使用第一部分 上机训练1、个人银行业务主要由存款、取款、查询余额、转帐组成,一般银行为我们办理个人业务时,需要我们实现存入一部分钱方可为我们开户,创建一个PersonalAccount类,实现以上功能。1)创建一个名为Bank的控制台应用程序2)对于一个软件系统,我们需要显示其版本号,软件名称,注册码等信息,这些信息可以用静态成员变量保存。因此首先我们可以建一个GlobalSettin
31、gs类存储这些一般信息,类的创建方法和实验四相同,注意不要忘记类名前加public,GlobalSettings类的代码如下:using System;using System.Collections.Generic;using System.Text;namespace Bank public class GlobalSettings private static string softwareName = 创新银行个人业务管理系统; public static string SoftwareName get return GlobalSettings.softwareName; set GlobalSettings.softwareName = value; private static string softwareVersion = 1.0版;