c#程序设计题目的题目,很简单,有人能帮我么

2002被浏览137273分享邀请回答93887 条评论分享收藏感谢收起62 条评论分享收藏感谢收起查看更多回答当前位置: >>
(MFC)C#程序设计实验指导书及答案
C#程序设计实验指导书实 验 须 知1. 实验前,应认真阅读实验指导书,明确实验目的、实验内容 和实验步骤,做好实验准备。 2. 实验中,积极思考,及时记录,有疑问及时解决,当堂完成实验内容和实验报告。 3. 实验中严格遵守实验室管理规则, 珍惜实验时间, 不做与实验无关 的事。 4. 实验结束, 按要求填写实验机器使用记录单, 正确关闭实验用机,整理好键盘和椅子,值日生认真打扫实验室卫生。 目录任务一 熟悉 VS2005 开发环境 ................................................................................ 1 任务二 掌握基本程序逻辑 ....................................................................................... 8 任务三 掌握循环语句 ............................................................................................... 3 任务四 创建类与对象 ............................................................................................. 10 任务五 创建静态类与静态方法 ............................................................................. 17 任务六 实现继承和抽象类 ..................................................................................... 25 任务七 掌握多态的应用 ......................................................................................... 32 任务八 掌握接口的实现 ......................................................................................... 41 任务九 实现对数组的操作 ..................................................................................... 52 任务十 实现队列、栈的操作 ................................................................................. 60 任务十一 实现进销存系统供应商信息维护 ......................................................... 65 任务十二 掌握开发 WinForms 应用程序的步骤 .................................................. 71 任务十三 掌握系统主界面设计 ............................................................................. 89 任务十四 掌握委托与事件处理机制 ................................................................... 100 任务十五 访问 SQL Server 数据库 ..................................................................... 108 任务十六 访问 Access 数据库 ............................................................................. 122 任务十七 了解字符串操作(选做) ................................................................... 131 任务十八 掌握文件操作(选做) ....................................................................... 138
C#程序设计实验指导书任务一 熟悉 VS2005 开发环境 实验目的掌握 VS2005 开发 C#应用程序的步骤 掌握 VS2005 调试器的使用第一部分 上机训练1、采用 VS2005 编写 Hello World 应用程序 1)打开 VS2005 开发工具2)在 VS2005 主界面下选择菜单【文件】|【新建】|【项目】3)在新建项目对话框中选择 Visual C#,模板选择控制台应用程序,给项目命名为 HelloWorld,然后点“浏览”按钮,选择项目的存储目录1 C#程序设计实验指导书4)程序生成的文件如下2 C#程序设计实验指导书5)双击 Program.cs,键入代码如下:using S using System.Collections.G using System.T namespace HelloWorld { class Program { static void Main(string[] args) { Console.WriteLine(&Hello World&); } } }6)在菜单上选择【生成】|【生成解决方案】7)按 F5 或者点启动调试按钮运行程序8)这时会发现 DOS 窗口一闪不见,按 Ctrl+F5,或者在菜单上选择【调试】|【开 始执行(不调试) 】 ,可以解决这个问题3 C#程序设计实验指导书9)运行结果如下:2、断点的设置与调试 1) 按上述步骤创建名为 BreakPoint 的控制台应用程序 2)在 Program.cs 中输入如下代码:using S using System.Collections.G using System.T namespace BreakPoint 4 C#程序设计实验指导书 { class Program { static void Main(string[] args) { int i = 5; int j = i * 2; Console.WriteLine(&{0}{1}&, i, j); } } }3)给int j = i * 2;行设置断点,只需点左边的空白栏4)按F5执行程序,会发现程序执行到断点处停止,移动鼠标到i和j上,观察i,j的 当前值5)选择工具栏的逐语句按钮或者按F11,单步执行程序9)再次观察i,j的值10)注意下面的调试监视窗口:5 C#程序设计实验指导书第二部分 实战提高请修改Hello World应用程序,输出自己的班级、学号、姓名,自我介绍。代码写 在下面:using S using System.Collections.G using System.T 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(); } } } 我来自四川,现就读于华侨大学计算机科6 C#程序设计实验指导书第三部分 知识总结学生总结 完成上机训练模块 花费的时间 完成实战提高模块 花费的时间 本次实验对你而言 的难点 10min 5min 断点调试 断点调试 本次实验的收获 请将问题答案写在下面空白处希望老师强化讲解 的知识要点断点调试希望老师帮助回答 的问题本次实验自评分数 (五分制) 教师评价5 请将评语、分数等写在下面空白处问题答疑实验评语实验得分7 C#程序设计实验指导书任务二 掌握基本程序逻辑 实验目的编写应用程序掌握变量、常量、枚举的使用 掌握表达式的应用 掌握分支语句的应用第一部分 上机训练1、编写一个程序,列举班级所有班委,然后使用这个枚举 1)创建一个名位TestEnum的控制台应用程序 2)在namespace TestEnum { 和 class Program之间输入:enum 班委 { 班长, 团支书, 生活委员, 体育委员, 劳动委员, }注意缩进和对齐 3)在static void Main(string[] args)方法中输入:班委 classTeam = 班委.生活委员; switch (classTeam) { case 班委.班长: Console.WriteLine(&我是班长&); case 班委.团支书: Console.WriteLine(&我是团支书&); case 班委.生活委员: Console.WriteLine(&我是生活委员&); case 班委.体育委员: Console.WriteLine(&我是体育委员&); 8 C#程序设计实验指导书 case 班委.劳动委员: Console.WriteLine(&我是劳动委员&); default: Console.WriteLine(&为什么我不是班委?&); }4)按CTRL+F5查看运行结果 2 2、计算圆面积,圆面积公式为Area=∏×R ,这种表示符号,在计算机中只能表示 为Area=PI*R*R,在本例中,我们希望用户输入圆的半径,但是用户的输入只能是 字符串,因此,这里我们要用到数制的转换,注意数制的转换方法 1)新建一个名为CircleArea的控制台应用程序 2)输入如下代码:using S using System.Collections.G using System.T 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; //输出结果 Console.WriteLine(&圆面积为:{0}&, circlArea); } } }3)按Ctrl+F5运行程序9 C#程序设计实验指导书4)补充:数制的转换 将字符串转换成某种类型,只需直接写成类似int.Parse(”11”)的格式即可,如果 需要实现数制之间的任意转换,则需要调用Convert.ToXXX()方法。可以自己实践 一下。第二部分 实战提高1、编写一个程序接受用户输入的字符串。如果输入的字母是”a”、”e”、”i”、”o” 或”u”中的一个,则显示“您输入了一个元音”,否则显示“这不是一个元音”。sing S using System.Collections.G using System.L using System.T namespace Vowel { class Program { static void Main(string[] args) { Console.WriteLine(&请输入一个英文字母:&);10 C#程序设计实验指导书 string input=Console.ReadLine(); //char a, e, i, o, if (input == &a& || input == & e& || input == &i& || input == &o& || input == &u&) Console.WriteLine(&您输入了一个元音&); else Console.WriteLine(&您输入的不是一个元音&); Console.ReadKey(); } } }2、人有胖瘦之分,体重过轻则为瘦,过重则为胖,那么以什么样的标准来衡量是 胖还是瘦呢?这当然必须有个参照值,这个参照值,我们就把它称之为标准体重。 目前在我国尚没有统一的标准体重数据。除了国际流行的体重计算方法外,军事科 学院还推出一计算中国人理想体重的方法: 北方人理想体重(千克)=(身高厘米-150) x 0.6+50,南方人理想体重(千 克)=(身高厘米-150) x 0.6+48,这一计算方法,似乎比较适合南北地区中 国人。 正常体重一般在标准体重+-10%以内的范围。超过这一范围,就可称之为异常体 重。 实测体重超过标准体重,但超出部分< 20%者称为超重;实测体重超过标准 体重 20%以上,并有脂肪百分率(F%)超过30%者则可诊断为肥胖病。体重超过 标准体重的30 %一50%,F%超过35%一45%者称中度肥胖病;超过标准体重50% 以上,F%超过45%以上者称为重度肥胖病。 根据以上描述,要求用户输入以下内容: 1)北方人/南方人 2)身高(厘米) 3)体重(公斤) 4)脂肪百分率(F%) 根据以上公式和描述告诉客户是否超重,如果超重,再告之其是何种肥胖病using S using System.Collections.G using System.L using System.T namespace Weight 11 C#程序设计实验指导书 { class Program { static void Main(string[] 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(Console.ReadLine()); Console .WriteLine (&请输入您的脂肪百分率(F%)&); F = double.Parse(Console.ReadLine()); if (area == 1) { idealweight = (high - 150) * 0.6 + 50; percent = weight / } else { idealweight = (high - 150) * 0.6 + 48; percent = weight / } if (percent & 0.9) Console.WriteLine(&偏轻&); else { if (percent &= 1.1) Console.WriteLine(&正常体重&); else { if (percent &= 1.2) Console.WriteLine(&您超重了!&); else { if (percent &= 1.3) { Console.WriteLine(&您超重了!&); if (F & 30) 12 C#程序设计实验指导书 Console.WriteLine(&您患有肥胖病!&); } else { if (percent &= 1.5) { Console.WriteLine(&你超重了!&); if (F &= 35 && F &= 45) Console.WriteLine(&您患有中度肥胖病!&); } else { Console.WriteLine(&您超重了!&); if (F & 45) Console.WriteLine(&您患有重度肥胖病!&); } } } } } Console.ReadKey(); } } }第三部分 知识总结学生总结 完成上机训练模块 花费的时间 完成实战提高模块 花费的时间 本次实验对你而言 的难点 25min 50min 请将问题答案写在下面空白处2 C#程序设计实验指导书本次实验的收获希望老师强化讲解 的知识要点希望老师帮助回答 的问题本次实验自评分数 (五分制) 教师评价 请将评语、分数等写在下面空白处问题答疑实验评语实验得分任务三 掌握循环语句 实验目的掌握while循环 掌握for循环3 C#程序设计实验指导书第一部分 上机训练1、实现n的阶乘 1)新建一个名为Factorial的控制台应用程序 2) 输入如下代码using S using System.Collections.G using System.T namespace Factorial { class Program { static void Main(string[] args) { Console.Write(&请输入一个正整数:&); //接收用户输入 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 * //或者写成result *= i++; } Console.WriteLine(&{0}的阶乘为{1}&, n, result); } } } 3)Ctrl+F5运行查看结果4 C#程序设计实验指导书2、打印9*9乘法表 1)新建一个名为MutiTable的控制台应用程序 2) 输入如下代码using S using System.Collections.G using System.T namespace MultiTable { class Program { static void Main(string[] args) { //9行 for (int i = 1; i &= 9; i++) { //每行最多i列 for (int j = 1; j &= j++) { Console.Write(&{0}*{1}={2}\t&, i, j, i * j); } //换行 5 C#程序设计实验指导书 Console.WriteLine(); } } } }Path lin 3)Ctrl+F5运行查看结果第二部分 实战提高1、改写n的阶乘计算程序,改用for循环using S using System.Collections.G using System.L using System.T namespace Factorial2 { class Program { static void Main(string[] args) { Console.Write(&请输入一个正整数:&); string input = Console.ReadLine();6 C#程序设计实验指导书 int n = int.Parse(input); int result = 1; for ( int i = 1; i &= i++) { result = result * } Console .WriteLine (&{0}的阶乘为{1}&, n, result); Console .ReadKey (); } } }2、打印9*9加法表using S using System.Collections.G using System.L using System.T namespace 加法表 { class Program { static void Main(string[] args) { 7 C#程序设计实验指导书 //9行 for (int i = 1; i &= 9; i++) { //每行最多i列 for (int j = 1; j &= j++) { Console.Write(&{0}+{1}={2}\t&, j, i, i + j); } //换行 Console.WriteLine(); } Console.ReadKey(); } } }8 C#程序设计实验指导书第三部分 知识总结学生总结 完成上机训练模块 花费的时间 完成实战提高模块 花费的时间 本次实验对你而言 的难点 请将问题答案写在下面空白处本次实验的收获希望老师强化讲解 的知识要点希望老师帮助回答 的问题本次实验自评分数 (五分制) 教师评价 请将评语、分数等写在下面空白处问题答疑实验评语实验得分9 C#程序设计实验指导书任务四 创建类与对象 实验目的理解面向对象的概念 掌握C#创建类和对象的方法第一部分 上机训练1、很多软件都要求我们先输入用户名和密码才能使用,最常见的例子当属Windows 操作系统,制作一个类,完成系统的登录验证工作 1)新建一个名为MySoftware的控制台应用程序 2) 在解决方案资源管理器中选中该项目,点鼠标右键盘,在弹出的菜单中选择 【添 加】|【类】3)在弹出的对话框中将类名改为Login10 C#程序设计实验指导书4)在代码class Login前添加public关键字5)添加Login类的成员变量private string _userN private string _6)添加Login类的属性public string UserName { get { return userN } set { userName = } } public string Password { 11 C#程序设计实验指导书 get { } set { password = } }7)添加Login类的方法//方法 public bool IsValidateUser() { if (userName.Equals(&admin&) && password.Equals(&admin&)) }8)完整代码如下:using S using System.Collections.G using System.T namespace MySoftware { public class Login { //私有字段 private string userN pri //属性 public string UserName { get { return userN } set { userName = 12 C#程序设计实验指导书 } } public string Password { get { } set { password = } } //方法 public bool IsValidateUser() { if (userName.Equals(&admin&) && password.Equals(&admin&)) } } }9)双击Program.cs,在Main方法中输入如下代码:using S using System.Collections.G using System.T namespace MySoftware { class Program { static void Main(string[] args) { Login loginModule = new Login(); Console.WriteLine(&####################################################&); Console.WriteLine(& C# 之星V1.0 Beata 版 &);Console.WriteLine(&####################################################&); 13 C#程序设计实验指导书 Console.WriteLine(&&); Console.WriteLine(&&); Console.Write(&请输入您的用户名:&); string userName = Console.ReadLine(); Console.Write(&请输入您的密码:&); string password = Console.ReadLine(); loginModule.UserName = userN loginModule.Password = if (loginModule.IsValidateUser()) Console.WriteLine(&欢迎使用C#之星软件V1.0版本&); else Console.WriteLine(&您的用户名输入错误,系统拒绝登录!&); } } }10)按Ctrl+F5运行程序,查看程序执行效果第二部分 实战提高扩展登录类,实现以下功能:14 C#程序设计实验指导书1)在命名空间中增加用户类型枚举,包括管理员、普通用户两种 2)在Login类中添加枚举类型对应的成员变量,并将该变量封装成属性 3)修改IsValidateUser()方法,对于不同的用户身份,进入不同的欢迎界面 4) 用户拥有5次登录尝试机会,如果5次登录都失败,程序结束,否则,允许用户重 新输入用户名和密码。15 C#程序设计实验指导书第三部分 知识总结学生总结 完成上机训练模块 花费的时间 完成实战提高模块 花费的时间 本次实验对你而言 的难点 请将问题答案写在下面空白处本次实验的收获希望老师强化讲解 的知识要点希望老师帮助回答 的问题本次实验自评分数 (五分制) 教师评价 请将评语、分数等写在下面空白处问题答疑实验评语实验得分16 C#程序设计实验指导书任务五 创建静态类与静态方法 实验目的掌握this的使用 掌握静态成员和静态方法的应用 掌握构造方法的使用第一部分 上机训练1、个人银行业务主要由存款、取款、查询余额、转帐组成,一般银行为我们办理 个人业务时,需要我们实现存入一部分钱方可为我们开户,创建一个 PersonalAccount类,实现以上功能。 1)创建一个名为Bank的控制台应用程序 2) 对于一个软件系统,我们需要显示其版本号,软件名称,注册码等信息,这些信 息可以用静态成员变量保存。因此首先我们可以建一个GlobalSettings类存储这些 一般信息,类的创建方法和实验四相同,注意不要忘记类名前加public, GlobalSettings类的代码如下:using S using System.Collections.G using System.T namespace Bank { public class GlobalSettings { private static string softwareName = &创新银行个人业务管理系统&; public static string SoftwareName { get { return GlobalSettings.softwareN } set { GlobalSettings.softwareName = } } private static string softwareVersion = &1.0版&; public static string SoftwareVersion { get { return GlobalSettings.softwareV } set { GlobalSettings.softwareVersion = } 17 C#程序设计实验指导书 } private static string softwareCompany = &淮安信息职业技术学院计算机系创新实验 室--宋桂岭&; public static string SoftwareCompany { get { return GlobalSettings.softwareC } set { GlobalSettings.softwareCompany = } } private static string softwareDescribe = &本系统的创意、著作权均归作者本人所 有,任何单位和个人如果引用本系统的任何内容,\n作者保留追究其法律责任的权利,特此声 明。&; public static string SoftwareDescribe { get { return GlobalSettings.softwareD } set { GlobalSettings.softwareDescribe = } } } }3)创建PersonalAccount类,利用构造方法实现开户,利用成员方法实现余额查 询、存入、提取、转帐等功能,完整代码如下:using S using System.Collections.G using System.T namespace Bank { public class PersonalAccount { private double accountRemainV//余额 private string accountN//姓名public double AccountRemainValue { get { return accountRemainV } set { accountRemainValue = } } public string AccountName 18 C#程序设计实验指导书 { get { return accountN } set { accountName = } } #region 开户 //利用构造方法实现开户 public PersonalAccount(string accountName, double accountRemainValue) { //注意this用法 this.accountName = accountN this.accountRemainValue = accountRemainV } #endregion #region 存、取、转帐 public void Deposit(double value) { this.accountRemainValue += } public void WithDraw(double value) { this.accountRemainValue -= } public void Transfer(PersonalAccount toAccount, double value) { this.accountRemainValue -= toAccount.AccountRemainValue += } #endregion #region 显示余额 public void DisplayRemainAccount() { Console.WriteLine(&尊敬的{0}先生/女士,您好,您的帐户余额为{1:0.00}元&, accountName, AccountRemainValue); } #endregion } }4)在Program.cs中输入如下代码,实现系统功能:using S 19 C#程序设计实验指导书 using System.Collections.G using System.T namespace Bank { class Program { static void Main(string[] args) { Console.WriteLine(&################################################################# ###########&); Console.WriteLine(); Console.WriteLine(& GlobalSettings.SoftwareVersion); Console.WriteLine(); Console.WriteLine(& GlobalSettings.SoftwareCompany); Console.WriteLine(); Console.WriteLine(& Console.WriteLine(); Console.WriteLine(&################################################################# ###########&); //开户 PersonalAccount myAccount = new PersonalAccount(&关羽&, 200); PersonalAccount sheAccount = new PersonalAccount(&关夫人&, 30000); //业务 bool op = while (op) { Console.WriteLine(); Console.WriteLine(&请输入您要办理的业务:1.存款2.提款3.转帐4.退出&); string cmd = Console.ReadLine(); switch (cmd) { case &1&: HandleDesposit(myAccount); 20 & + GlobalSettings.SoftwareDescribe); & + &制作单位:& + & + GlobalSettings.SoftwareName + C#程序设计实验指导书 case &2&: HandleWithDraw(myAccount); case &3&: HandleTransfer(myAccount, sheAccount); case &4&: op = } } } static void HandleDesposit(PersonalAccount account) { Console.Write(&请输入存款金额:&); double value = double.Parse(Console.ReadLine()); account.AccountRemainValue += Console.WriteLine(&存款操作完成!&); account.DisplayRemainAccount(); } static void HandleWithDraw(PersonalAccount account) { Console.Write(&请输入取款金额:&); double value = double.Parse(Console.ReadLine()); if (account.AccountRemainValue & value) { Console.WriteLine(&帐户余额不足,取款操作失败!&); } account.AccountRemainValue -= Console.WriteLine(&取款操作完成!&); account.DisplayRemainAccount(); } static void HandleTransfer(PersonalAccount fromAccount, PersonalAccount toAccount) { Console.Write(&请输入转帐金额:&); double value = double.Parse(Console.ReadLine()); if (fromAccount.AccountRemainValue & value) 21 C#程序设计实验指导书 { Console.WriteLine(&帐户余额不足,取款操作失败!&); } fromAccount.AccountRemainValue -= toAccount.AccountRemainValue += Console.WriteLine(&转帐操作完成!&); fromAccount.DisplayRemainAccount(); toAccount.DisplayRemainAccount();//实际中你是看不到对方的余额的,所以运 行结果有点奇怪,不是吗? }} }第二部分 实战提高本实验内容较多,故希望同学能仔细理解上述代码,分析清楚,将自己对代码的理 解写在下面,写清代码是如何完成银行个人业务系统的功能的(定义了哪些类,业 务流程控制等等)。 答: 首先创建了一个名为“关羽”和“关夫人”的用户用来测试程序。进入用户界面, 看到银行信息介绍及提供的业务,由while构成的循环用户可以持续选择办理各种 业务直至选择“4退出”. 选择1,则进入“存款”操作,调用函数HandleDesposit。输入存款金额并更改账 户余额信息,提示操作成功。调用DisplayRemainAccount函数显示操作后的账户信 息。 选择2,则进入“提款”操作,调用HandleWithDraw函数。根据提示输入提款金 额,通过if条件判断,若输入金额大于余额,则提示操作失败。若合法,则从账户 中减去提款金额,提示操作成功。并调用DisplayRemainValue函数显示操作后的账 户信息。 选择3,则进入“转账”操作,调用函数HandleTransfer,此函数有两个参数,一个 是转出账户,一个是转入账户。通过if 条件判断合法性,若合法则对相应的转出 和转入账户的余额进行加减。(此程序默认由关羽账户转入关夫人账户) 选择4,则循环结束,程序结束运行 此程序定义了一个PersonalAccount的类,成员为一个账户的基本信息 定义了一个GlobalSettings的类,成员为此程序,银行和创建者的相关信息。22 C#程序设计实验指导书23 C#程序设计实验指导书第三部分 知识总结学生总结 完成上机训练模块 花费的时间 完成实战提高模块 花费的时间 本次实验对你而言 的难点 请将问题答案写在下面空白处本次实验的收获希望老师强化讲解 的知识要点希望老师帮助回答 的问题本次实验自评分数 (五分制) 教师评价 请将评语、分数等写在下面空白处问题答疑实验评语实验得分24 C#程序设计实验指导书任务六 实现继承和抽象类 实验目的编写一个单一继承的C#程序 编写一个抽象类,并用一个类继承这个抽象类第一部分 上机训练1、在学校教务管理系统中,有三种用户,一种是系统管理员,一种是学生,一种 是教师,编写C#类实现该继承关系。系统管理员/学生/教师都有用户名和密码属 性,并都有Login和显示自身信息的方法,另外,学生拥有班级和成绩两个特殊属 性以及查询成绩这一方法,教师拥有部门和工资两个特殊属性以及查询工资这一方 法,系统管理员可以添加学生和教师信息。由于教师和学生个人信息不同,所以学 生和教师重载基类的DisplayInfo方法。 (本例和教材一致,再次出现的目的是通过 反复训练,理解继承的作用) 1)类的继承关系可以表示如下:2)创建控制台应用程序,命名为SchoolManagement 3) 创建名为User的基类,基类定义了用户名和密码属性,以及Login和DisplayInfo 方法using S using System.Collections.G using System.T 25 C#程序设计实验指导书namespace SchoolManagement { public class User { private string userN//用户名 public string Name { get { return userN } set { userName = } } pri//密码 public string Password { get { } set { password = } } private string userT//用户类型 public string UserType { get { return userT } set { userType = } } public void Login() { if (userName.Equals(&1&) && password.Equals(&1&)) { DisplayPersonInfo(); } } public virtual void DisplayPersonInfo() //注意virtual关键字 { Console.WriteLine(&姓名:{0}&, userName); 26 C#程序设计实验指导书 Console.WriteLine(&用户类型:{0}&, userType); } } }2)创建名为Student的派生类,具备班级和成绩两个特殊属性,以及查询成绩的特 殊方法,覆盖基类的显示个人信息方法using S using System.Collections.G using System.T namespace SchoolManagement { public class Student : User { private string classID; public string ClassID { get { return classID; } set { classID = } } private float stuS public float StuScore { get { return stuS } set { stuScore = } } public Student() { UserType = &学生&; } public override void DisplayPersonInfo() { base.DisplayPersonInfo(); Console.WriteLine(&班级:{0}&, classID ); } public void CheckScore() { 27 C#程序设计实验指导书 Console.WriteLine(&成绩:{0}&, this.stuScore); } } }3)创建名为Teacher的派生类,具备部门和工资两个特殊属性,以及查询工资的特 殊方法,覆盖基类的显示个人信息方法。using S using System.Collections.G using System.T namespace SchoolManagement { public class Teacher : User { priva//部门 public string Department { get { } set { department = } } //工资 public float Salary { get { } set { salary = } } public Teacher() { UserType = &教师&; } public override void DisplayPersonInfo() { base.DisplayPersonInfo(); Console.WriteLine(&部门:& + this.department); } public void checkSalary() { Console.WriteLine(&工资:& + this.salary); 28 C#程序设计实验指导书 } } }4)创建名为SysManager的派生类,具备插入学生信息和插入教师信息两个方法using S using System.Collections.G using System.T namespace SchoolManagement { public class SysManager : User { public SysManager() { UserType = &管理员&; } public Student InsertStudent() { Student stu = new Student(); stu.Name = &张郭郭&; stu.UserType = &教师&; stu.ClassID = &310730&; stu.StuScore = 70; } public Teacher InsertTeacher() { Teacher teacher = new Teacher(); teacher.Name = &李沙沙&; teacher.Department = &计算机系&; teacher.Salary = 5000; } } }5)在Program.cs的Main方法中调用以上类,测试效果如下:using S using System.Collections.G using System.T29 C#程序设计实验指导书 namespace SchoolManagement { class Program { static void Main(string[] args) { //系统管理员登录 SysManager sys = new SysManager(); sys.Name = &1&; sys.Password = &1&; sys.Login(); Console.WriteLine(&------------------------------&); //系统管理员录入学生和教师信息 Teacher teacher = sys.InsertTeacher(); Student stu = sys.InsertStudent(); //显示教师信息,查询工资 teacher.DisplayPersonInfo(); teacher.checkSalary(); Console.WriteLine(&------------------------------&); //显示学生信息,查询成绩 stu.DisplayPersonInfo(); stu.CheckScore(); Console.WriteLine(&------------------------------&); } } }6)最终运行效果如下30 C#程序设计实验指导书第二部分 实战提高建立名为Shape的基类,要求是抽象类,在该类中提供一个public abstract double Area()的抽象方法,建立名为Circle的派生类,包括半径属性,实现面积计算,再 建立一个名为Rectangle的派生类,包括长和宽两个属性,实现面积的计算。第三部分 知识总结学生总结 完成上机训练模块 花费的时间 完成实战提高模块 花费的时间 请将问题答案写在下面空白处31 C#程序设计实验指导书本次实验对你而言 的难点本次实验的收获希望老师强化讲解 的知识要点希望老师帮助回答 的问题本次实验自评分数 (五分制) 教师评价 请将评语、分数等写在下面空白处问题答疑实验评语实验得分任务七 掌握多态的应用 实验目的理解多态的意义32 C#程序设计实验指导书了解多态的应用 掌握多态的C#实现第一部分 上机训练1、在俄罗斯方块程序中,有L形,T形,田形等多种形状,它们是图形的多种形 态,可以创建一个名为Shape的基类,而后派生L形,T形等,之后可以在运行时动 态绘制各种形状。 1)创建一个名位Teris的控制台应用程序、 2)各个类之间的关系如下图所示:3)创建名为Shape的抽象类,包括ShapeType属性和显示信息方法,以及抽象方法绘 制:using S using System.Collections.G using System.T namespace Teris { public abstract class Shape { private string shapeT public string ShapeType { get { return shapeT } set { shapeType = } }33 C#程序设计实验指导书public void DisplayInfo() { Console.WriteLine(&当前图形类型& + shapeType); } public abstract void Draw(); } }4)创建名为ShapeL的派生类,实现基类的绘制using S using System.Collections.G using System.T namespace Teris { public class ShapeL : Shape { public ShapeL() { ShapeType = &L形&; } public override void Draw() { Console.WriteLine(&|&); Console.WriteLine(&|&); Console.Write(&|&); Console.WriteLine(&__&); } } }5)创建名为ShapeT的派生类,实现基类的绘制using S using System.Collections.G using System.T namespace Teris { public class ShapeT : Shape { public ShapeT() 34 C#程序设计实验指导书 { ShapeType = &T形&; } public override void Draw() { Console.WriteLine(&_______&); Console.WriteLine(& Console.WriteLine(& } } } |&); |&);6)创建名为ShapeZ的派生类,实现基类的绘制using S using System.Collections.G using System.T namespace Teris { public class ShapeZ : Shape { public ShapeZ() { ShapeType = &Z形&; } public override void Draw() { Console.WriteLine(&----&); Console.WriteLine(& Console.WriteLine(& Console.WriteLine(& } } } |&); |&); ----&);7)创建名为ShapeBlock(田字形)的派生类,实现基类的绘制using S using System.Collections.G using System.T namespace Teris { 35 C#程序设计实验指导书 class ShapeBlock : Shape { public ShapeBlock() { ShapeType = &田形&; } public override void Draw() { Console.WriteLine(& _________&); Console.WriteLine(&| Console.WriteLine(&| Console.WriteLine(&| Console.WriteLine(&| } } } | | | | |&); |&); |&); |&);Console.WriteLine(& --------- &);Console.WriteLine(& --------- &);8)在Program.cs中添加如下代码,实现随机生成图形:using S using System.Collections.G using System.T using System.T namespace Teris { enum ShapeType { Block = 0, L, T, Z } class Program { static void Main(string[] args) { Random rnd = new Random(); { Shape shape = ShapeType type = (ShapeType)rnd.Next(4); 36 C#程序设计实验指导书 switch (type) { case ShapeType.Block: shape = new ShapeBlock(); case ShapeType.L: shape = new ShapeL(); case ShapeType.T: shape = new ShapeT(); case ShapeType.Z: shape = new ShapeZ(); } if (shape != null) { shape.DisplayInfo(); shape.Draw(); Console.WriteLine(&----------------------&); Thread.Sleep(1000);//防止刷新太快,让系统停止1秒} } }} } }注意Random类和Thread类的使用第二部分 实战提高当我们在中秋或春节的时候,往往喜欢回家过节,这时我们要选择一种交通工 具回去,可供选择的有长途汽车、火车、飞机等,众所周知,这几种交通工具的运 输方式是各不相同的,但是他们都能够运输旅客,请采用多态机制实现以上问题模 型。37 C#程序设计实验指导书enum toolType { car, train, plane } class Program { static void Main(string[] args) { Random rnd = new Random(); Tool tool = toolType type = (toolType)rnd.Next(3); switch (type) { case toolType.car: tool = new Car(); case toolType.train: tool = new Train(); case toolType.plane: tool = new Plane(); } if (tool != null) tool.Select(); Console.ReadLine(); } } //baseclass public abstract class Tool { private string toolT public string ToolType { get { return toolT } set { toolType = } } 38 C#程序设计实验指导书 public abstract void Select(); } //extendclass public class Car : Tool { public Car() { ToolType = &car&; } public override void Select() { Console.WriteLine(&选择的交通工具:长途汽车。&); } } public class Train : Tool { public Train() { ToolType = &train&; } public override void Select() { Console.WriteLine(&选择的交通工具:火车。&); } } public class Plane : Tool { public Plane() { ToolType = &plane&; } public override void Select() { Console.WriteLine(&选择的交通工具:飞机。&); } }39 C#程序设计实验指导书第三部分 知识总结学生总结 完成上机训练模块 花费的时间 完成实战提高模块 花费的时间 本次实验对你而言 的难点 请将问题答案写在下面空白处本次实验的收获希望老师强化讲解 的知识要点希望老师帮助回答 的问题本次实验自评分数 (五分制) 教师评价 请将评语、分数等写在下面空白处问题答疑实验评语实验得分40 C#程序设计实验指导书任务八 掌握接口的实现 实验目的:理解接口的意义 掌握接口的C#实现第一部分 上机训练1、在游戏编程中,需要对怪物的属性做统一的约定,例如所有的怪物都有生命、魔 法、攻击、命中、防御、闪避等属性,所有的怪物都能攻击、站立、防御等,这些 统一的约定可以做成接口,然后分别定义人类、兽类等来实现怪物接口。 1)创建名为Game的控制台应用程序 2)建立名为Monster的接口3)定义该接口如下:using S using System.Collections.G using System.T namespace Game { public interface Monster { 41 C#程序设计实验指导书 string Name { } int HP { } int MP { } int Defense { } int Attack { } int Dodge { } int Accuracy { } void DoAttack(); void DoStand(); void DoDefense(); 42 C#程序设计实验指导书 void DisplayInfo(); } }4)新建一个Human类,实现Monster接口using S using System.Collections.G using System.T namespace Game { class Human : Monster { private int healthP private int magicP
public int HP { get { return healthP } set { healthPower = } } public int MP { get { return magicP } set { magicPower = } } public int Defense { get { } set { defense = } } public int Attack { get { } set { attack = } } public int Dodge 43 //生命 //魔法 //防御 //攻击 //躲闪 //命中 C#程序设计实验指导书 { get { } set { dodge = } } public int Accuracy { get { } set { accuracy = } } public string Name { get { } set { name = } } public void DoAttack() { Console.WriteLine(name + &的攻击动作很华丽!===!=========&&); } public void DoStand() { Console.WriteLine(name + &站在那里,果然是伟岸英挺,气宇轩昂,简直是人中 龙凤!&); } public void DoDefense() { Console.WriteLine(name + &将手中兵器舞成一片,格开了所有人的进攻。&); } public void DisplayInfo() { Console.WriteLine(&姓名:& + name); Console.WriteLine(&种族: 人类&); Console.WriteLine(&----------------------------------------------&); Console.WriteLine(&状态&); Console.WriteLine(&生命:{0}\t\t魔法:{1}&, healthPower, magicPower); Console.WriteLine(&----------------------------------------------&); Console.WriteLine(&战斗力&); Console.WriteLine(&攻击:{0}\t\t防御:{1}&, attack, defense); Console.WriteLine(&命中:{0}\t\t\t闪避:{1}&, accuracy, dodge); } } 44 C#程序设计实验指导书 }5)新建一个Beast类,实现Monster接口using S using System.Collections.G using System.T namespace Game { public class Beast : Monster { private int healthP private int magicP
public int HP { get { return healthP } set { healthPower = } } public int MP { get { return magicP } set { magicPower = } } public int Defense { get { } set { defense = } } public int Attack { get { } set { attack = } } public int Dodge { get { } 45 //生命 //魔法 //防御 //攻击 //躲闪 //命中 C#程序设计实验指导书 set { dodge = } } public int Accuracy { get { } set { accuracy = } } public string Name { get { } set { name = } } public void DoAttack() { Console.WriteLine(name + &的爪子狠狠的一抓,你的头皮去了好大一块!&); } public void DoStand() { Console.WriteLine(name + &四脚着地,目露凶光,你看到它时不寒而栗!&); } public void DoDefense() { Console.WriteLine(name + &向你大声咆哮,吓得你抱头鼠窜。&); } public void DisplayInfo() { Console.WriteLine(&姓名:& + name); Console.WriteLine(&种族: 四足兽类&); Console.WriteLine(&----------------------------------------------&); Console.WriteLine(&状态&); Console.WriteLine(&生命:{0}\t\t魔法:{1}&, healthPower, magicPower); Console.WriteLine(&----------------------------------------------&); Console.WriteLine(&战斗力&); Console.WriteLine(&攻击:{0}\t\t防御:{1}&, attack, defense); Console.WriteLine(&命中:{0}\t\t\t闪避:{1}&, accuracy, dodge); } } }6)在Program.cs的Main方法中输入如下代码:using S 46 C#程序设计实验指导书 using System.Collections.G using System.T namespace Game { class Program { static void Main(string[] args) { Monster player = new Beast(); player.Name = &天一&; player.HP = 200; player.MP = 300; player.Accuracy = 90; player.Attack = 1000; player.Defense = 1000; player.Dodge = 80; player.DoAttack(); player.DoStand(); player.DisplayInfo(); } } }7)按Ctrl+F5运行:47 C#程序设计实验指导书再将Monster player = new Beast(); 改为Monster player = new Human(); 再次按Ctrl + F5运行,体会接口的作用。48 C#程序设计实验指导书第二部分 实战提高体育运动员的种类多种多样,所有运动员都可以跳跃和跑步,但是不同运动的跳跃 和跑步方式是不同的,例如足球运动员跑动可以带球在脚下跑,而篮球运动员则只 能拍一下球跑一步,否则就会被吹犯规,同样,足球运动员在跳跃中只能用头顶球, 但是篮球运动员可以用手去抢球。编写一个名为Sportsman的接口,包括两个方法, Run()和Jump(),再分别编写篮球运动员和足球运动员的类,分别实现不同的Run和 Jump方法。只需要用Console.WriteLine(“…”)来描述其中的不同即可。public interface Sportsman { string tn { } void Run(); void Jump(); } class Program { static void Main(string[] args) { Sportsman man = new Basketball(); man.tn = &姚明&; man.Run(); man.Jump(); Console.ReadLine(); } } public class Basketball : Sportsman { private string typeN public string tn { get { return typeN }49 C#程序设计实验指导书 set { typeName = } } public void Run() { Console.WriteLine(&篮球运动员只能拍一下球跑一步,否则犯规!&); } public void Jump() { Console.WriteLine(&篮球运动员可以用手去抢球!&); } } public class Football : Sportsman { private string typeN public string tn { get { return typeN } set { typeName = } } public void Run() { Console.WriteLine(&足球运动员可以带球在脚下跑!&); } public void Jump() { Console.WriteLine(&足球运动员在跳跃中只能用头顶!&); } }第三部分 知识总结学生总结 请将问题答案写在下面空白处50 C#程序设计实验指导书完成上机训练模块 花费的时间 完成实战提高模块 花费的时间 本次实验对你而言 的难点本次实验的收获希望老师强化讲解 的知识要点希望老师帮助回答 的问题本次实验自评分数 (五分制) 教师评价 请将评语、分数等写在下面空白处问题答疑实验评语实验得分51 C#程序设计实验指导书任务九 实现对数组的操作 实验目的掌握数组的定义与初始化 掌握数组类的使用 掌握数组的排序与反转 掌握foreach的用法第一部分 上机训练1、定义一个元素个数为5的整形数组,接收用户的输入,而后对该数组进行排序, 输出排序后的结果。 1)建立一个名为ArrayDemo的控制台项目 2)双击Program.cs,输入如下代码:using S using System.Collections.G using System.T namespace ArrayDemo { class Program { static void Main(string[] args) { int[] number = new int[5]; for (int i = 0; i & 5; i++) { Console.Write(&请输入第{0}个数:&, i+1); string input = Console.ReadLine(); number[i] = int.Parse(input); } Array.Sort(number); Console.WriteLine(&5个数排序后的结果为:&); for (int j = 0; j & 5; j++) { Console.Write(&{0}\t&, number[j]); } 52 C#程序设计实验指导书 Console.WriteLine(); } } }3)按Ctrl+F5运行,结果如下:2、我院在计算学生期末总评成绩时,采用如下公式: 总评 =德育*20% + 体育*10%+学习*70% 新建一个类,名称为 Student,每个类中包含以下属性:姓名,德育分数,体育分 数,学习成绩,总评成绩;并包含两个方法:计算总评成绩和显示总评成绩 在程序的 Main 方法中要求如下: 用户输入5名学生的德育分数,体育分数和学习成绩,计算其总评成绩,然后按 总评成绩由大到小的顺序输出。 1)用VS.NET2005新建一个控制台项目,名称为Exam2 2)新建一个名为Student的类,代码如下:using S using System.Collections.G using System.T namespace Exam2 { public class Student 53 C#程序设计实验指导书 { private string _sN private double _mS private double _pS private double _sS private double _aS public double MoralScore { get { return _mS } set { _mScore = } } public double PhysicsScore { get { return _pS } set { _pScore = } } public double StudyScore { get { return _sS } set { _sScore = } } public string StudentName 54 C#程序设计实验指导书 { get { return _sN } set { _sName = } } public double getAverageScore() { _aScore = _mScore * 0.2 + _pScore * 0.1 + _sScore * 0.7; return _aS } public void displayInfo() { Console.WriteLine(&{0}\t{1}\t{2}\t{3}\t{4}&, _sName, _mScore, _pScore, _sScore, _aScore); } } }3)Program.cs中代码如下:using S using System.Collections.G using System.T namespace Exam2 { class Program { static void Main(string[] args) { Array arrStudent = Array.CreateInstance(typeof(Student), 5); Array arrScore = Array.CreateInstance(typeof(double), 5); for (int i = 0; i & 5; i++) { Student st = new Student(); Console.WriteLine(&请输入学生的姓名:&); st.StudentName = Console.ReadLine(); 55 C#程序设计实验指导书 Console.WriteLine(&请输入学生{0}的德育成绩:&, st.StudentName); st.MoralScore = Convert.ToDouble(Console.ReadLine()); Console.WriteLine(&请输入学生{0}的体育成绩:&, st.StudentName); st.PhysicsScore = Convert.ToDouble(Console.ReadLine()); Console.WriteLine(&请输入学生{0}的学习成绩:&, st.StudentName); st.StudyScore = Convert.ToDouble(Console.ReadLine()); arrScore.SetValue(st.getAverageScore(), i); arrStudent.SetValue(st, i); } Array.Sort(arrScore, arrStudent); Array.Reverse(arrStudent); Console.WriteLine(); Console.WriteLine(&学生排名如下:&); Console.WriteLine(&姓名\t德育\t体育\t学习\t总评&); for (int j = 0; j & 5; j++) { Student st = (Student)arrStudent.GetValue(j); st.displayInfo(); } } } }第二部分 实战提高采用冒泡排序法重新实现上机训练第二题。class Program { static void Main(string[] args) { Student[] stu = new Student[5]; for (int i = 0; i & 5; i++) { Console.WriteLine(&请输入第{0}个学生的信息:&, i + 1); Console.WriteLine(&请输入学生姓名:&); //!!!56 C#程序设计实验指导书 stu[i] = new Student(); //!!!stu[i].SName = Console.ReadLine(); Console.WriteLine(&请输入学生德育成绩:&); stu[i].MoralScore = float.Parse(Console.ReadLine()); Console.WriteLine(&请输入学生体育成绩:&); stu[i].SportScore = float.Parse(Console.ReadLine()); Console.WriteLine(&请输入学生学习成绩:&); stu[i].StudyScore = float.Parse(Console.ReadLine()); //计算和显示各个学生的总评成绩 stu[i].calcTotal(); stu[i].showTotal(); } //冒泡排序输出由大到小的总评成绩 for (int i = 0; i & 5; i++) { for (int j = i + 1; j & 5; j++) { Student ss = new Student(); if (stu[i].TotalScore & stu[j].TotalScore) { ss.SName = stu[i].SN ss.MoralScore = stu[i].MoralS ss.SportScore = stu[i].SportS ss.StudyScore = stu[i].StudyS ss.TotalScore = stu[i].TotalS stu[i].SName = stu[j].SN stu[i].MoralScore = stu[j].MoralS stu[i].SportScore = stu[j].SportS stu[i].StudyScore = stu[j].StudyS stu[i].TotalScore = stu[j].TotalS stu[j].SName = ss.SN stu[j].MoralScore = ss.MoralS stu[j].SportScore = ss.SportS stu[j].StudyScore = ss.StudyS stu[j].TotalScore = ss.TotalS } } } //输出排序结果 Console.WriteLine(&学生排名如下:&); 57 C#程序设计实验指导书 Console.WriteLine(&姓名\t德育\t体育\t学习\t总评&); for (int j = 0; j & 5; j++) { Console.WriteLine(&{0}\t{1}\t{2}\t{3}\t{4}&, stu[j].SName, stu[j].MoralScore, stu[j].SportScore , stu[j].StudyScore, stu[j].TotalScore); } } } public class Student { private string sN private float moralS private float sportS private float studyS private float totalS public string SName { get { return sN } set { sName = } } public float MoralScore { get { return moralS } set { moralScore = } } public float SportScore { get { return sportS } set { sportScore = } } public float StudyScore { get { return studyS } set { studyScore = } } public float TotalScore { get { return totalS } 58 C#程序设计实验指导书 set { totalScore = } } public void showTotal() { Console.WriteLine(&{0}的总评成绩为{1}。&, sName, totalScore); } public float calcTotal() { // 总评 =德育*20% + 体育*10%+学习*70% totalScore = moralScore * 0.2f + sportScore * 0.1f + studyScore * 0.7f; return totalS } }(作业留白)第三部分 知识总结学生总结 完成上机训练模块 花费的时间 完成实战提高模块 花费的时间 本次实验对你而言 的难点 请将问题答案写在下面空白处本次实验的收获希望老师强化讲解 的知识要点59 C#程序设计实验指导书希望老师帮助回答 的问题本次实验自评分数 (五分制) 教师评价 请将评语、分数等写在下面空白处问题答疑实验评语实验得分任务十 实现队列、栈的操作 实验目的理解泛型编程 掌握集合类的使用第一部分 上机训练1、模拟食堂打饭的例子,理解队列模型 1)新建一个名为QueueDemo的控制台应用程序 2)新建一个名为Person的类,代码如下:using S using System.Collections.G60 C#程序设计实验指导书 using System.T namespace QueueDemo { public class Person { public string Name { get { } set { name = } } public Person(string name) { this.name = } public void BuyFood() { Console.WriteLine(&轮到{0}为队的排头,{0}高兴地向阿姨指点着自己想要的饭 菜。&, name); } } }3)Program.cs的代码如下using S using System.Collections.G using System.T namespace QueueDemo { class Program { static void Main(string[] args) { Queue&Person& personQueue = new Queue&Person&(); //填充队列 Person person1 = new Person(&张三&); Person person2 = new Person(&李四&); Person person3 = new Person(&王五&); 61 C#程序设计实验指导书 personQueue.Enqueue(person1); personQueue.Enqueue(person2); personQueue.Enqueue(person3); //排队轮流打饭 Person personToBuyFood = personQueue.Dequeue() as P personToBuyFood.BuyFood(); StillInQueue(personQueue); } static void StillInQueue(IEnumerable&Person& myCollection) { IEnumerator&Person& myEnumerator = myCollection.GetEnumerator(); Console.Write(&正在排队等待打饭的还有:&); while (myEnumerator.MoveNext()) Console.Write(&{0}\t&, myEnumerator.Current.Name); Console.WriteLine(); } } }第二部分 实战提高采用弹夹上子弹时,最先上的子弹最后才能发射出去,结合MSDN,研究栈的特性, 并使用栈模拟这一模型。class Program { static void Main(string[] args) { Stack&Bullet& bulletStack = new Stack&Bullet&(); //入栈 Bullet bullet1 = new Bullet(&第一颗子弹&); Console.WriteLine(&第一颗子弹上膛&); Bullet bullet2 = new Bullet(&第二颗子弹&); Console.WriteLine(&第二颗子弹上膛&); bulletStack.Push(bullet1); bulletStack.Push(bullet2);62 C#程序设计实验指导书 //出栈 Bullet show = new Bullet(&&); show = bulletStack.First(); show.bulletPop(); bulletStack.Pop(); show = bulletStack.First(); show.bulletPop(); bulletStack.Pop(); Console.ReadLine(); } } public class Bullet { public string Name { get { } set { name = } } public Bullet(string name) { this.name = } public void bulletPop() { Console.WriteLine(&该{0}出膛!&, name); } } //全部弹出第三部分 知识总结学生总结 完成上机训练模块63请将问题答案写在下面空白处 C#程序设计实验指导书花费的时间 完成实战提高模块 花费的时间 本次实验对你而言 的难点本次实验的收获希望老师强化讲解 的知识要点希望老师帮助回答 的问题本次实验自评分数 (五分制) 教师评价 请将评语、分数等写在下面空白处问题答疑实验评语实验得分64 C#程序设计实验指导书任务十一 实现进销存系统供应商信息维护(选做) 实验目的通过SQLServer2005完成进销存系统数据库架设 练习对数据库的增删改查第一部分 上机训练1、结合教材“模块一 淮信POS进销存系统设计” ,在SQL Server2005中完成数据库 表的创建 2、练习教材参数化系统登录功能的实现第二部分 实战提高通过控制台程序,利用参数化SQL语句,实现对供应商信息的维护,其流程如下: 1)显示供应商信息维护界面如下: 供应商信息维护: 1.添加供应商信息 2.修改供应商信息 3.删除供应商信息 4.查询供应商信息 5.退出模块 请输入(1/2/3/4)切换到相应子模块:2)添加供应商信息界面如下: 供应商信息添加: 请输入供应商编号:S01 请输入供应商名称:淮安**食品公司 ….(其他字段) 记录添加成功!是否添加新记录(Y/N)? (选N返回主界面)65 C#程序设计实验指导书3)修改供应商信息界面如下: 供应商信息修改: 请输入供应商编号:S01 该供应商名称为:淮安**食品公司,是否修改(Y/N)? (如果Y)请输入新的供应商名称:淮安**食品公司 (如果N,显示下一字段) 该供应商简称为:HYSP,是否修改(Y/N)? (如果Y)请输入新的供应商简称: HYNY (如果N,显示下一字段) ….(其他字段) 记录修改成功!是否继续修改其他记录(Y/N)? (选N返回主界面)4)删除供应商信息 供应商信息删除: 请输入供应商编号:S01 记录删除成功!是否继续删除其他记录(Y/N)? (选N返回主界面)5)查询供应商信息 查询供应商信息: 请输入供应商名称: (模糊查询) 供应商编号 名称 S01 淮安**食品公司 请将实现代码写在下面: 1)系统主界面实现代码: 简称 HASP 电话 66 C#程序设计实验指导书2)添加供应商信息代码:67 C#程序设计实验指导书3)修改供应商信息代码:68 C#程序设计实验指导书4)删除供应商信息代码5)查询供应商信息代码69 C#程序设计实验指导书第三部分 知识总结学生总结 完成上机训练模块 花费的时间 完成实战提高模块 花费的时间 本次实验对你而言 的难点 请将问题答案写在下面空白处本次实验的收获希望老师强化讲解 的知识要点希望老师帮助回答 的问题本次实验自评分数 (五分制) 教师评价 请将评语、分数等写在下面空白处问题答疑实验评语实验得分70 C#程序设计实验指导书任务十二 掌握开发 WinForms 应用程序的步骤 实验目的掌握创建WinForms应用程序的步骤 熟悉WinForms应用程序的控件第一部分 上机训练1、创建一个WinForms应用程序,要求用户在文本框中输入2个数字,然后求2数之 和。 1)新建一个项目,注意选择Windows应用程序,命名为SumApp2)生成如下的窗体界面71 C#程序设计实验指导书3)修改Form1.cs名为FrmSum,在弹出的对话框上选择是4)修改FrmSum的Text属性为“加法器”72 C#程序设计实验指导书5)向界面添加2个Label控件,选择控件,拖拽到窗体上即可。6)修改Label1的Text属性为整数173 C#程序设计实验指导书同理修改Label2 7)再向界面上添加两个TextBox控件,调整窗体大小,使得布局美观。8)向界面添加两个Button控件,Text属性分别为求和和退出。74 C#程序设计实验指导书9)修改两个Button的名称,分别为btnSum和btnExit。10)双击求和按钮,在生成的Click事件中添加如下代码:private void btnSum_Click(object sender, EventArgs e) { int num1 = 0; int num2 = 0; //转化字符串为整型,有错误的话进行异常处理 try { num1 = int.Parse(textBox1.Text); num2 = int.Parse(textBox2.Text); } catch (Exception ex) { MessageBox.Show(ex.Message); } int num3 = num1 + num2; MessageBox.Show(num1.ToString() + &加& + num2.ToString() + &的结果为& + num3.ToString()); } 75 C#程序设计实验指导书11)双击退出按钮,在生成的Click事件中添加如下代码:private void btnExit_Click(object sender, EventArgs e) { Close(); }12)按F5运行程序,测试结果。2、 创建一个Windows窗体应用程序, 允许用户从给定的颜色和字体列表中选择颜色、 字体等设置。用户还可以通过将标准颜色用作基本颜色来创建自定义颜色,并使用 滚动条来增大/减小红色、蓝色和绿色的渐变。选定的颜色应适用于窗体界面。选定 的字体中应显示一个文本示例。 思路: 此问题需要一个包含字体和颜色选项卡页的选项卡控件。接下来,为使用户能够选 取字体和颜色,可以利用组合框控件或列表框控件。 在颜色选项卡页中,用户在组合框中选择的颜色可以显示在图片框控件中。这将使 用户看到效果如何。组合框中的项一旦改变,图片框中的颜色也应该改变。这可以 使用组合框的SelectedIndexChanged事件来实现。 对于字体选项卡页,可使用一个定义各种内置字体的列表框。文本的大小可通过页 面上的两个单选按钮来设置。可以使用一个标签来显示选定大小和字体的文本示例 1)新建一个名为AppSettings的Winforms应用程序项目,并将主窗体重命名为 FrmSettings。 2)拖动一个TabControl控件到窗体上,name属性改为tagSettings76 C#程序设计实验指导书3)选择TabControl控件的TabPages属性并单击右边的“…”按钮。4) 出现 “TabPage集合编辑器” 对话框。 添加两个选项卡页, 并将其分别命名为tabColor 和tabFont,对应的Text属性设置为“颜色”和“字体” 。77 C#程序设计实验指导书5)拖动工具箱中的控件来设计窗体,颜色标签页对应的窗体如下:78 C#程序设计实验指导书各个控件的属性如下: 控件 标签Label 组合框ComboBox 名称(Name) lblColor cboColor 文本(Text) 选择颜色 Line Yellow Red SkyBlue Magenta 项图片框PictureBox 水平滚动条 HScrollBar 水平滚动条 HScrollBar 水平滚动条 HScrollBar 按钮Button 标签Label * 3picColor hsbRed hsbGreen hsbBlue btnApply lblRed,lblGreen,lblBulue 立即应用另外,将3个水平滚动条的Maximum属性设置为25579 C#程序设计实验指导书6)点字体选项卡,拖动工具箱中的控件来设计窗体,字体标签页对应的窗体如下:各个控件的属性如下: 控件 标签Label 名称(Name) lblFont 文本(Text) 选择字体80项 C#程序设计实验指导书列表框ListBoxlbFontTimes New Roman Arial Georgia Courier New 字体大小 缩小字体 放大字体 This is a sample text分组框GroupBox 单选按钮 RadioButton 单选按钮 RadioButton 标签LabelgbFont rbSmall rbLarge lblSample7)切换回颜色选项卡,在组合框cboColor的SelectedIndexChanged事件中添加以下代 码:private void cboColor_SelectedIndexChanged(object sender, EventArgs e) { string colorName = cboColor.SelectedItem.ToString(); picColor.BackColor = Color.FromName(colorName); } 按F5运行程序,查看代码效果:8)继续在hsbRed的Scroll事件中添加以下代码:private void hsbRed_Scroll(object sender, ScrollEventArgs e) { picColor.BackColor = Color.FromArgb(255, hsbRed.Value, hsbGreen.Value, hsbBlue.Value); 81 C#程序设计实验指导书 }9)设置hsbGreen和hsbBlue的Scroll事件为hsbRed_Scroll:运行程序,点击滚动条,查看效果:82 C#程序设计实验指导书10)在btnApply的Click事件中添加如下代码:private void btnApply_Click(object sender, EventArgs e) { tabSettings.SelectedTab.BackColor = picColor.BackC this.BackColor = picColor.BackC }运行程序,查看效果:11)切换到FrmSettings类的开始部分,添加如下两个成员变量:83 C#程序设计实验指导书12) 切换到字体选项卡, 在lbFont(列表框)的SelectedIndexChanged事件中添加以下代 码:private void lbFont_SelectedIndexChanged(object sender, EventArgs e) { fontName = lbFont.SelectedItem.ToString(); if (largeText) { lblSample.Font = new Font(fontName, 14); } else { lblSample.Font = new Font(fontName, 8); } }13)在rbSmall和rbLarge(单选按钮)的CheckedChanged事件中添加以下代码:private void rbSmall_CheckedChanged(object sender, EventArgs e) { largeText = smallText = lblSample.Font = new Font(fontName, 8); } private void rbLarge_CheckedChanged(object sender, EventArgs e) { largeText = smallText = lblSample.Font = new Font(fontName, 14); }14)运行程序,查看效果:84 C#程序设计实验指导书第二部分 实战提高在之前的实验中曾经利用控制台程序模拟过用户登录的例子, 要求改用WinForms形 式再次模拟该功能。要求: 1)建立两个窗体,一个为登录窗体,一个为主窗体 2)登录窗体上用TextBos控件接受用户名和密码,如果成功则显示主窗体,如果失 败允许用户继续输入 3)用户输入失败5次后,提示用户今天不能再登录该系统,然后程序退出,结束执 行。85 C#程序设计实验指导书(作业留白)using S using System.Collections.G86 C#程序设计实验指导书ponentM using System.D using System.D using System.L using System.T using System.Windows.Fnamespace login { public partial class Form1 : Form { public Form1() { InitializeComponent(); } int count = 0; public int loginFlag = 0; private void button1_Click(object sender, EventArgs e) { if (textBox1.Text != &admin&) { MessageBox.Show(&目前用户只有admin&); } if (textBox1.Text == &admin&) { if (textBox2.Text == &admin&) { loginFlag = 1; Form2 cn =new Form2(); cn.Show(); //this.Close(); } else { count++; MessageBox.Show(&错误!&); if (count == 5) {87 C#程序设计实验指导书MessageBox.Show(&错误5次!&); this.Close(); } } } } } }第三部分 知识总结学生总结 完成上机训练模块 花费的时间 完成实战提高模块 花费的时间 本次实验对你而言 的难点 请将问题答案写在下面空白处本次实验的收获希望老师强化讲解 的知识要点88 C#程序设计实验指导书希望老师帮助回答 的问题本次实验自评分数 (五分制) 教师评价 请将评语、分数等写在下面空白处问题答疑实验评语实验得分任务十三 掌握系统主界面设计 实验目的掌握常用的WinForms控件 掌握菜单、工具拦和状态栏的设置第一部分 上机训练1、创建一个Windows应用程序,首先,用户通过输入用户名和密码登录系统,而后 在主窗体添加菜单,菜单项如下表所示: 菜单项 系统 颜色 子菜单项 退出 红色89功能 退出系统 修改窗体颜色为红色 C#程序设计实验指导书绿色 蓝色 帮助 关于修改窗体颜色为绿色 修改窗体颜色为蓝色 显示帮助菜单再添加一个工具栏,里面显示三个快捷菜单项,分别为红色,绿色,蓝色,再添加 一个状态栏,显示登录的用户名 1)新建一个名为ColorSys的WinForms应用程序 2)更改From1.cs名称为FrmLogin.cs 设置界面如下:对应控件如下表所示: 控件 PictureBox Label Label TextBox TextBox Button Button 命名 picLogo lblUserName lblPassword txtUserName txtPassword btnLogin btnExit 登录 退出 设置PasswordChar属性 为”*” 用户名 密码 文本 其他 可以自己选取一张图片2)再添加一个窗体,命名为FrmMain,设置其WindowState属性为Maximized90 C#程序设计实验指导书3)从工具栏拖动MenuStrip到界面上按题目要求设置好菜单项91 C#程序设计实验指导书4)在界面空白处右键,选择查看代码:将FromMain的代码修改如下:namespace ColorSys { public partial class FrmMain : Form { private string userN public FrmMain(string userName) { InitializeComponent(); this.userName = userN } } }5)切换到FrmLogin.cs,双击登录按钮,实现登录功能:private void btnLogin_Click(object sender, EventArgs e) 92 C#程序设计实验指导书 { if (txtUserName.Text.Equals(&1&) && txtPassword.Text.Equals(&1&)) { FrmMain frm = new FrmMain(txtUserName.Text); this.Visible = frm.ShowDialog(); Close(); } else { MessageBox.Show(&用户名或密码错误,请重新输入!&); txtUserName.Focus(); } }6)双击退出按钮,添加如下代码:private void btnExit_Click(object sender, EventArgs e) { Close(); }7)运行程序,确保这些功能已经实现 8)关闭程序,回到VS2005,添加一个关于窗体,命名为FrmAbout,如图所示:8)实现菜单功能。实现哪个功能只需双击即可。注意菜单项的命名规范。 双击退出菜单项,实现退出功能:private void 退出ToolStripMenuItem_Click(object sender, EventArgs e) { Application.Exit(); }双击红色菜单项,将背景设置为红色:private void 红色ToolStripMenuItem_Click(object sender, EventArgs e) { 93 C#程序设计实验指导书 this.BackColor = Color.FromName(&Red&); }双击绿色菜单项,将背景设置为绿色:private void 绿色ToolStripMenuItem_Click(object sender, EventArgs e) { this.BackColor = Color.FromName(&Green&); }双击蓝色菜单项,将背景设置为蓝色:private void 蓝色ToolStripMenuItem_Click(object sender, EventArgs e) { this.BackColor = Color.FromName(&Blue&); }双击关于菜单项,显示提示框:private void 关于ToolStripMenuItem_Click(object sender, EventArgs e) { FrmAbout frm = new FrmAbout(); frm.ShowDialog(); }9) 为了系统美观, 将所有窗体的StartPosition设置为CenterScreen,FrmAbout的设置为 CenterParent. 10)添加工具栏,拖动ToolStrip到窗体上,只需在工具栏上点击即可添加新按钮选中其中一个按钮,设置其DisplayStyle属性为Text,设置其Text属性为红/绿/蓝之一94 C#程序设计实验指导书11)切换到该按钮的事件属性,在Click事件位置选择为红色菜单项对应的事件:95 C#程序设计实验指导书同理设置绿、蓝工具按钮,使之和菜单项关联,运行程序测试效果 12)添加StatusStrip控件,拖动到窗体上注意点一下StatusStrip,使其自动生成toolStripStatusLabel1控件在主窗体FromMain的Login事件中添加如下代码:private void FrmMain_Load(object sender, EventArgs e) { toolStripStatusLabel1.Text = &您好,& + userName + &,欢迎使用本系统&; }13)运行程序,查看效果96 C#程序设计实验指导书第二部分 实战提高练习TreeView控件,实现如下所示的树结构:将对应的生成TreeView节点的代码写在下面:97 C#程序设计实验指导书(作业留白)private void Form1_Load(object sender, EventArgs e) { this.treeView1.LabelEdit = TreeNode node = new TreeNode(&淮信院&); treeView1.Nodes.Add(node); TreeNode node1 = new TreeNode(&计算机系&); TreeNode node11 = new TreeNode(&软件专业&); TreeNode node12 = new TreeNode(&网络专业&); TreeNode node13 = new TreeNode(&应用专业&); TreeNode node14 = new TreeNode(&维护专业&); TreeNode node2 = new TreeNode(&电子系&); TreeNode node3 = new TreeNode(&机电系&); TreeNode node4 = new TreeNode(&基础部&); node1.Nodes.Add(node11); node1.Nodes.Add(node12); node1.Nodes.Add(node13); node1.Nodes.Add(node14); node.Nodes.Add(node1); node.Nodes.Add(node2); node.Nodes.Add(node3); node.Nodes.Add(node4); // } //root第三部分 知识总结学生总结 完成上机训练模块 花费的时间 完成实战提高模块98请将问题答案写在下面空白处 C#程序设计实验指导书花费的时间 本次实验对你而言 的难点本次实验的收获希望老师强化讲解 的知识要点希望老师帮助回答 的问题本次实验自评分数 (五分制) 教师评价 请将评语、分数等写在下面空白处问题答疑实验评语实验得分99 C#程序设计实验指导书任务十四 掌握委托与事件处理机制 实验目的理解委托和事件的概念 了解委托和事件在C#中的实现第一部分 上机训练编写一个程序用来模拟考试流程,有一个老师类Teacher,学生类Student,老师引发 考试事件,学生进行考试,学生答完题发出完成答题事件,老师收卷。 1)创建一个名为DelegateEvent的控制台项目 2)添加Student类,代码如下,要注意对toString方法的重载,Student类继承自Object 类,Object类的默认toString方法返回的是命名空间和类名,Student类返回Student的 成员变量name,这样使设计的类更可用。.NET Framework类库大多数类都对toString 方法进行了重载using S using System.Collections.G using System.T namespace DelegateEvent { //定义委托 public delegate void delegateFinishExam(DateTime FinishiTime, Student student); public class Student { //用委托定义事件 public event delegateFinishExam FinishE public Student(string name) { this.name = } //答题 public void Testing(DateTime BeginTime) { 100 C#程序设计实验指导书 Console.WriteLine(&{0}\t{1}\t开始答题...&, name, BeginTime); } //答题结束,引发考试完成事件 public void HandInPaper() { Console.WriteLine(&{0}答题完成&, name); FinishExam(DateTime.Now, this); } public override string ToString() { return this. } } }3)添加Teacher类,代码如下:using S using System.Collections.G using System.T namespace DelegateEvent { public delegate void DelegateStartExam(DateTime StartTime); public class Teacher { public event DelegateStartExam StartE public void NotifyBeginExam() { StartExam(DateTime.Now); } //收卷 public void AcceptPaper(DateTime acceptTime, Student student) { Console.WriteLine(&收{0}的考卷&, student.ToString())a; } } }4)改写Program.cs的代码如下:using S 101 C#程序设计实验指导书 using System.Collections.G using System.T namespace DelegateEvent { class Program { static void Main(string[] args) { Teacher teacher = new Teacher(); Student[] students = new Student[5]; int index = 0; students[index++] = new Student(&张三&); students[index++] = new Student(&李四&); students[index++] = new Student(&王五&); students[index++] = new Student(&周六&); students[index++] = new Student(&冯七&); foreach (Student tester in students) { //事件 teacher.StartExam += new DelegateStartExam(tester.Testing); tester.FinishExam += new delegateFinishExam(teacher.AcceptPaper); } //引发开始答卷事件 teacher.NotifyBeginExam(); //引发完成答卷事件 students[1].HandInPaper(); } } }5)按Ctrl+F5运行程序,如图所示:102 C#程序设计实验指导书第二部分 实战提高模拟学生注册功能。 提示:定义一个Student类,在类中定义一个成员变量name用来保存学生姓名,一个 构造函数来初始化name变量。在类的顶部定义一个无传入参数的void类型委托 DelegateRegisterFinish,然后用这个委托定义一个名为RegisterFinish的事件。用一个 Register方法来进行学生注册,在注册完毕后引发RegisterFinish事件。 在Program.cs中定义一个student_RegisterFinish静态方法,在该方法中实际实现注册 完成的善后工作,这里可以只显示“注册成功” 。在Program.cs的Main方法中实例化 Student类,然后注册事件。最后用student.Register()来引发事件。103 C#程序设计实验指导书(作业留白)using S using System.Collections.G using System.L using System.T namespace Register { class Program { static void Main(string[] args) { Student[] students = new Student[5]; int index = 0; students[index++] = new Student(&张三&); students[index++] = new Student(&李四&); students[index++] = new Student(&王五&); students[index++] = new Student(&周六); students[index++] = new Student(&冯七&); foreach (Student s in students) { s.RegisterFinish DelegateRegisterFinish(student_RegisterFinish); s.Register(); } += new} static void student_RegisterFinish() { Console.WriteLine(&注册成功!&); } } }104 C#程序设计实验指导书Student.cs -----------------------------------------------------------------------------------------------------------using S using System.Collections.G using System.L using System.T namespace Register { public delegate void DelegateRegisterFinish(); class Student { public Student(string name) { this.name= } public override string ToString() { return this. } public event DelegateRegisterFinish RegisterF public void Register() { Console.Write(&{0}&, this.name); RegisterFinish(); } } }105 C#程序设计实验指导书106 C#程序设计实验指导书第三部分 知识总结学生总结 完成上机训练模块 花费的时间 完成实战提高模块 花费的时间 本次实验对你而言 的难点 请将问题答案写在下面空白处本次实验的收获希望老师强化讲解 的知识要点希望老师帮助回答 的问题本次实验自评分数 (五分制) 教师评价 请将评语、分数等写在下面空白处问题答疑实验评语实验得分107 C#程序设计实验指导书任务十五 访问 SQL Server 数据库(选做) 实验目的实现ADO.NET访问SQL Server数据库第一部分 上机训练1、实现图书管理系统的添加图书信息和图书借阅两个功能,为了说明问题,采用了 两种方式来实现该功能,一种为控件拖动,一种为代码编写。 1) 创建名为BookManagement的Winforms应用程序,将Form1.cs改名为FrmMain.cs, 在主窗体添加菜单项,如下表所示: 菜单项 系统 业务管理 信息维护 子菜单项 退出 借书 还书 图书信息维护2)创建一个SqlServer数据库,命名为Book,表结构如下,确保主键已经被正确设 置:108 C#程序设计实验指导书3)创建名为FrmBookInfo的窗体 4)在工具栏上选择DataGridView,将之拖动到FrmBookInfo上5)点击DataGridView控件右上的绿箭头,选择添加项目数据源109 C#程序设计实验指导书6)选择数据库,点下一步,继续110 C#程序设计实验指导书7)点新建连接,继续8)在弹出的新建连接对话框中,按下图进行配置,然后点确定。111 C#程序设计实验指导书9)之后继续下一步,直到出现下图所示对话框:112 C#程序设计实验指导书10)选择BookInfo 表,点完成113 C#程序设计实验指导书11)双击主窗体中的图书信息维护菜单项,添加如下代码:private void 图书信息维护ToolStripMenuItem_Click(object sender, EventArgs e) { FrmBookInfo frm = new FrmBookInfo(); frm.ShowDialog(); }12) 在SqlServer的BookInfo表中添加几条记录,然后运行程序,选择图书信息维护 菜单: 弹出如下窗体114 C#程序设计实验指导书13)接下来实现增加、修改、删除功能,添加3个按钮,分别对应为增加、修改、删 除 14)双击增加按钮,添加如下代码:private void btnAdd_Click(object sender, EventArgs e) { this.bookInfoTableAdapter.Update(this.bookDataSet.BookInfo); }15)运行程序,直接在表格中添加数据,然后点增加按钮,即可完成数据的增加功 能16)双击修改按钮,添加如下代码,而后运行测试结果:115 C#程序设计实验指导书 private void btnEdit_Click(object sender, EventArgs e) { if (DialogResult.Yes == MessageBox.Show(&确定修改记录?&, &警告&, MessageBoxButtons.YesNo)) { this.bookInfoTableAdapter.Update(this.bookDataSet.BookInfo); } else { this.bookInfoTableAdapter.Fill(this.bookDataSet.BookInfo); } }17)双击删除按钮,添加如下代码,而后运行测试结果:private void btnDelete_Click(object sender, EventArgs e) { if (DialogResult.Yes == MessageBox.Show(&确定修改记录?&, &警告&, MessageBoxButtons.YesNo)) { DataRow dr = this.bookDataSet.BookInfo.Rows[dataGridView1.CurrentRow.Index]; dr.Delete(); this.bookInfoTableAdapter.Update(this.bookDataSet.BookInfo); } }18)添加新的Windows窗体,命名为FrmBorrow 19)拖动dataGridView控件到窗体上,在选择数据源时,注意要选择到BookInfo20)双击主窗体的借书菜单项,添加如下代码:private void 借书ToolStripMenuItem_Click(object sender, EventArgs e) { 116 C#程序设计实验指导书 FrmBorrow frm = new FrmBorrow(); frm.ShowDialog(); }运行程序,测试结果21)关闭程序,回到借书设计界面,将界面设置成如下样式:其中TextBox控件名分别为txtISBN和txtBorrower 22)在datagridView1的CellContentClick事件中添加如下代码:private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { 117 C#程序设计实验指导书 txtISBN.Text = dataGridView1.CurrentRow.Cells[0].Value.ToString(); }23)在FrmBorrow.cs的开始部分添加:using System.Data.SqlC 24)双击借阅按钮,添加如下代码:private void btnBorrow_Click(object sender, EventArgs e) { string sql = &insert into BorrowInfo (ISBN, Borrower, BorrowDate) values ('& + txtISBN.Text + &','& + txtBorrower.Text + &','& + DateTime.Now.ToString() + &')&; try { using (SqlConnection conn = new SqlConnection(&Data Source=.;Initial Catalog=BIntegrated Security=True&)) { conn.Open(); using (SqlCommand cmd = new SqlCommand(sql, conn)) { cmd.ExecuteNonQuery(); MessageBox.Show(&借书操作成功!&); } conn.Close(); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }第二部分 实战提高在上机训练部分, 给大家展示了教材部分所未涉及的操作Datagridview的方法,现要 求将图书管理功能利用Dbhelper类改为和教材一致的操作方法。要求实现借书、还 书和查看图书情况三个功能,要求实现流程和核心代码写在下面:118 C#程序设计实验指导书(作业留白)119 C#程序设计实验指导书(作业留白)120 C#程序设计实验指导书第三部分 知识总结学生总结 完成上机训练模块 花费的时间 完成实战提高模块 花费的时间 本次实验对你而言 的难点 请将问题答案写在下面空白处本次实验的收获希望老师强化讲解 的知识要点希望老师帮助回答 的问题本次实验自评分数 (五分制) 教师评价 请将评语、分数等写在下面空白处问题答疑实验评语实验得分121 C#程序设计实验指导书任务十六 访问 Access 数据库 实验目的掌握利用ADO.NET操作Access数据库的方法第一部分 上机训练编写一个“音乐世界”的单机版WinForm界面的管理软件,让用户管理电影和歌曲。 处理有关电影和歌曲的详细信息,例如:歌名、导演、歌手、长度、价格、编号和 评论等,对于电影,还要接受它的评级,为了方便,数据库采用Access,试开发这 个软件 1)打开Access数据库工具,如图所示:2)选择菜单【文件】|【新建】 ,然后选择空数据库122 C#程序设计实验指导书3)将数据库文件名改为MusicWorld.mdb,保存在C盘根目录下4)点设计,进入到数据库设计页面5)添加Movies表123 C#程序设计实验指导书6)选中电影编号,点将电影编号设置为主键。7)保存修改,表名为Movies8)添加歌曲表,表名为Songs9) 创建一个名为MusicWorld的Windows应用程序项目, 将Form1.cs改名为FrmMain.cs其中ComboBox的命名为cboCategory,对应的Items属性包含电影、歌曲两项124 C#程序设计

我要回帖

更多关于 c 程序设计教程 钱能 的文章

 

随机推荐