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

下载本文档

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

文档简介

1、实验一C#基本语法实验目标: 熟悉VS2003.NET开发环境 练习C#语言基本语法 熟悉控制台应用程序和Windows应用程序的开发摸版参考实验步骤: 打开VS2003.NET,在左侧选择项目类型:C#项目,在右侧选择项目模版类型(控制台应用程序,Windows应用程序,或者是空白项)。 选择项目存储路径,给项目起名字。 打开资源管理器,点击项目右键,可以为项目增加新项(空白模版需要增加空白源文件)。 在源代码文件里,编辑程序。 如果是Windows应用程序,可以从工具箱往画布上拖曳控件,制作界面功能。双击界面,即会进入代码编辑页。 编译调试程序。练习:编写9*9乘法表,并按照格式打印输出。

2、:编写计算器。能实现个操作数的四则运算。作业:预习实验,撰写实验报告。详细写明练习题目的编写过程。实验二动物管理程序设计实验目标: 熟悉C#的面向对象语法 掌握C#中封闭性的实现 掌握C#中继承性的实现 掌握C#中多态性的实现 根据实验指导完成动物面向对象特性的描述参考实验步骤: 打开VS2003.NET,在左侧选择项目类型:C#项目,在右侧选择项目模版类型(控制台应用程序,或者是空白项)。 选择项目存储路径,给项目起名字。 打开资源管理器,点击项目右键,可以为项目增加新项(空白模版需要增加空白源文件)。 在源代码文件里,编辑程序。指导思路:问题描述(动物特性描述):n 狗生活在陆地上(是一种

3、陆生动物),既是哺乳类的也是肉食性的。狗通常的时候和人打招呼会通过“摇摇尾巴”,在被抚摸感到舒服的时候,会“旺旺叫”,而在受到惊吓情绪烦躁时,会发出“呜呜”声;n 猫也生活在陆地上(是一种陆生动物),既是哺乳类的也是肉食性的。猫通常的时候和人打招呼会发出“喵”的声音,在被抚摸情绪很好时,会发出“咕噜咕噜”声,而在受到惊吓时,会发出“嘶嘶”声;n 青蛙是一种两栖动物(既是水生动物也是陆生动物),既不是哺乳类的也不是肉食性的,属于卵生。当青蛙情绪好的时候,会在岸边“呱呱呱”的唱歌,而在受到惊吓时,会“扑通一声跳入水中”; 问题分析:n 首先需要抽取问题描述中对象n 分析每个对象所具有的特征n 分析

4、每个对象所发出的动作n 从这些对象的特征中,抽取类的属性和方法n 分析类之间的关系,画出类结构图难点分析1:n 抽象类和对象的基本方法:n 抽取对象的基本的方法:找出句子中所使用的名词u 例如:在句子“小猫喵喵叫”中,我们能够确定一个对象:猫;n 确定对象发出的行为动作的基本的方法:找出句子中的动词u 例如:“旺旺叫”、“喵喵叫”都属于对象发出的动作;n 确定对象的属性或者特征的基本的方法:找出句子中的形容词u 例如:“哺乳性的”“肉食性的”“卵生的”等等;n “是”的关系一般抽象为继承u 例如:狗是一种动物,意味着:“狗”类 继承自“动物”类;n “有”的关系一般抽象为类的属性u 例如:动物

5、都有情绪,意味着:“情绪”是“动物”类的一个属性;难点分析2:Dog:int numberOfLegsDog( )sayHello( )sayHello(int newValue)getNumberOfLegs( )Cat:int numberOfLegsCat( )sayHello( )sayHello(int newValue)getNumberOfLegs( )Frog:int numberOfLegsFrog( )sayHello( )sayHello(int newValue)getNumberOfLegs( )hasGills( )laysEggs( )WaterAnimal:ha

6、sGills( )laysEggs( )LandAnimal:getNumberOfLegs( )Animal:boolean mammalboolean carnivorousint moodisMammal( )isCarnivorous( )setMood(int newValue)getMood( )sayHello( )sayHello(int moodval)阶段划分:第一阶段(60分钟):不考虑情绪影响动物打招呼的方式第二阶段(40分钟):考虑情绪影响动物打招呼的方式第三阶段(60分钟):考虑陆生动物和水生动物第一阶段:n 编写Animal类,没有mood属性,只有一种SayHe

7、llo方法;n 编写Dog类、Cat类和Frog类,分别继承自Animal类,实现与Animal类不同的功能;n 编写main方法,分别实例化以上三个类的三个对象,测试类方法实现的正确性;代码:参考附录第二阶段:n 扩充Animal类、Dog类、Cat类和Frog类,增加 Animal类的mood属性,并实现SayHello方法的多态性;n 扩充main方法;代码:参考附录第三阶段:n 定义LandAnimal接口和WaterAnimal接口;n 扩充Dog类、Cat类和Frog类,使其实现相应的接口;n 扩充main方法; 编译调试程序。练习:编写类Animal,成员有是否是哺乳动物,和抽象

8、函数:hello()。要求编写接口:LandAnimal和WaterAnimal来做陆生和水生动物。要求编写派生类:Dog,Bird,Fish,Whale,Frog,Crocodile。定义各类对象,实现各种动物的特性说明。作业:预习实验,撰写实验报告。详细写明练习题目的编写过程。附录:using System;public class HelloWorld public static void Main() Dog animal1 = new Dog(); Cat animal2 = new Cat(); Frog animal3 = new Frog(); if(animal1.isMam

9、mal() Console.WriteLine(狗是哺乳动物); else Console.WriteLine(狗不是哺乳动物); if(animal1.isCarnivorous() Console.WriteLine(狗是肉食动物); else Console.WriteLine(狗不是肉食动物); Console.WriteLine(狗通常的情况下,和人打招呼的方式为: +animal1.sayHello(); Console.WriteLine(狗被抚摸情绪好的时候,打招呼的方式是: +animal1.sayHello(Animal.COMFORTED); Console.WriteL

10、ine(狗烦躁的时候,会: +animal1.sayHello(Animal.SCARED); Console.WriteLine(狗有 +animal1.getNumberOfLegs()+条腿); Console.WriteLine(); if(animal2.isMammal() Console.WriteLine(猫是哺乳动物); else Console.WriteLine(猫不是哺乳动物); if(animal2.isCarnivorous() Console.WriteLine(猫是肉食动物); else Console.WriteLine(猫不是肉食动物); Console.W

11、riteLine(猫通常的情况下,和人打招呼的方式为: +animal2.sayHello(); Console.WriteLine(猫情绪好的时候会: +animal2.sayHello(Animal.COMFORTED); Console.WriteLine(猫烦躁的时候会: +animal2.sayHello(Animal.SCARED); Console.WriteLine(猫有 +animal2.getNumberOfLegs()+条腿); Console.WriteLine(); if(animal3.isMammal() Console.WriteLine(青蛙是哺乳动物); e

12、lse Console.WriteLine(青蛙不是哺乳动物); if(animal3.isCarnivorous() Console.WriteLine(青蛙是肉食动物); else Console.WriteLine(青蛙不是肉食动物); Console.WriteLine(青蛙通常的情况下,打招呼的方式为: +animal3.sayHello(); Console.WriteLine(青蛙情绪好的时候会: +animal3.sayHello(Animal.COMFORTED); Console.WriteLine(青蛙受到惊吓是会: +animal3.sayHello(Animal.SC

13、ARED); if(animal3.getLaysEggs() Console.WriteLine(青蛙产卵); else Console.WriteLine(青蛙不产卵); if(animal3.getGillFlag() Console.WriteLine(青蛙有鳃); else Console.WriteLine(青蛙没有鳃); Console.WriteLine(青蛙有 +animal3.getNumberOfLegs()+条腿);Console.ReadLine(); abstract class Animal / 下面的两个属性被声明为 public 类型的,而且是静态的 publ

14、ic const int SCARED = 1;/情绪好 public const int COMFORTED = 2;/情绪不好,烦躁 /下面的属性被声明为保护类型的,允许在子类中访问 protected bool mammal = true; /是否哺乳动物属性 protected bool carnivorous = true; /是否食肉动物属性 protected int mood = COMFORTED;/情绪属性 public bool isMammal() /判断是否哺乳动物 return(mammal); public bool isCarnivorous() /判断是否食肉

15、动物 return(carnivorous); abstract public string sayHello(); /打招呼的方式,该方法是抽象的,所以必须在子类中实现 abstract public string sayHello(int moodval); public void setMood(int newValue) /设置情绪值 mood = newValue; public int getMood() /返回情绪值 return(mood); interface LandAnimal /陆生动物接口 int getNumberOfLegs(); /返回有多少只脚interfac

16、e WaterAnimal /水生动物接口 bool getGillFlag(); /返回是否有腮 bool getLaysEggs(); /返回是否产卵class Dog:Animal,LandAnimal /狗类继承自动物类,并实现陆生动物接口 / 下面的属性被声明为私有的,并初始化。 private int numberOfLegs = 4; / 缺省构造函数确保属性能够正确设置 public Dog() mammal = true; /是哺乳动物 carnivorous = true; /是食肉动物 / 重载父类的方法 public override string sayHello()

17、 return(摇摇尾巴); public override string sayHello(int moodval) this.setMood(moodval); switch (mood) case SCARED: return(呜呜叫); case COMFORTED: return(旺旺旺叫); return(摇摇尾巴); / 实现 LandAnimal接口 public int getNumberOfLegs() return(numberOfLegs); class Cat: Animal, LandAnimal /猫类继承自动物类,并实现生活在陆地上的动物接口 /声明并初始化猫的

18、两个属性 private int numberOfLegs = 4; private bool tailFlag = true; / 缺省构造函数 public Cat() mammal = true; carnivorous = true; / 重载父类的方法 public override string sayHello() return(喵喵叫); public override string sayHello(int moodval) this.setMood(moodval); switch (mood) case SCARED: return(嘶嘶叫);/如果情绪烦躁的话,就“嘶嘶

19、叫” case COMFORTED: return(咕噜咕噜叫); /如果情绪好的话,发出“咕噜咕噜”声 return(喵喵叫); /如果情绪好的话,发出“喵”声 / 实现 LandAnimal接口 public int getNumberOfLegs() return(numberOfLegs); class Frog : Animal , LandAnimal, WaterAnimal /声明并初始化青蛙的四个属性 private bool gillFlag = true; private bool laysEggs = true; private int numberOfLegs = 4

20、; private bool tailFlag = true; /缺省构造函数 public Frog() mammal = false; carnivorous = false; / 重写父类的“打招呼”的方法 public override string sayHello() return(呱呱呱); public override string sayHello(int moodval) this.setMood(moodval); switch (mood) case SCARED: return(扑通一声跳入水中); case COMFORTED: return(呱呱呱); retu

21、rn(呱呱呱); / 实现 WaterAnimal接口 public bool getGillFlag() return(gillFlag); public bool getLaysEggs() return(laysEggs); / 实现 LandAnimal接口 public int getNumberOfLegs() return(numberOfLegs); 实验三 学生管理系统程序设计(C/S)目标: 掌握各种数据访问方法 了解ADO.NET的工作原理 完整的根据需求完成一个访问数据库的应用程序一指导 “持久”,英文即 Persistence,简单来讲,也就是把数据保存到可掉电式存储

22、设备以供之后所用。在大多数情况下,特别是企业级应用,数据持久化往往也就意味着将内存中的数据保存到磁盘上加以“固化”,而持久化的实现过程则大多通过各种关系型数据库、基于磁盘文件XML 数据库、消息队列、甚至普通的WORD文档、TXT文档等各种手段的持久化技术,不过,技术上实现的手段不尽相同。【1】从早期的使用各数据库厂商提供的各具特色的嵌入式SQL语句,比如ORACLE的PRO*C,到后来ORACLE厂商开发的ODBC数据中间件技术,能通过操纵单一的命令操纵不同的数据库,开发人员只需针对不同的应用加入相应的ODBC驱动;DAO(Data Access Object)不象ODBC那样是面向C/C+

23、程序员的,它是微软提供给Visual Basic开发人员的一种简单的数据访问方法,用于操纵Access数据库。RDO,弥补了在使用DAO访问不同的关系型数据库的时候,Jet引擎不得不在DAO和ODBC之间进行命令的转化,导致了性能的下降的缺点。OLE DB,提供了应用和数据源之间的无缝连接,它基于COM(Component Object Model)。ADO,基于OLE DB之上的更简单、更高级、更适合Visual Basic程序员,消除了OLE DB的多种弊端。ADO.NET,完全基于XML和离线计算模型。JDBC是类似于ODBC的属于JAVA的数据库访问技术,也可以支持PB等数据库,ADO.NET的工作原理图如图10.1所示。图10.1 ADO.NET的工作原理图练习:问题:设计一个学生管理数据库分析:完成一个完整的项目包括前台的功能设计和后台数据库的设计以及前台能够成功高效的访问后台的实现步骤:(1) 项目需求分析(2) 数据库设计(3) 前台设计(4) 编程语言的选择(5) 数据库实现(6) 前台程序的实现(7) 功能测试实验三 学生管理系统程序设计(/S)目标: 掌握各种数据访问方法 了解ADO.NET的工作原理 完整的根据需求完成一个访问数据库的应用程序的完成一指导 “持久”,英文即 Persistence,简单来讲,也

温馨提示

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

评论

0/150

提交评论