您好,欢迎访问三七文档
实验一C#基本语法实验目标:熟悉VS2003.NET开发环境练习C#语言基本语法熟悉控制台应用程序和Windows应用程序的开发摸版参考实验步骤:打开VS2003.NET,在左侧选择项目类型:C#项目,在右侧选择项目模版类型(控制台应用程序,Windows应用程序,或者是空白项)。选择项目存储路径,给项目起名字。打开资源管理器,点击项目右键,可以为项目增加新项(空白模版需要增加空白源文件)。在源代码文件里,编辑程序。如果是Windows应用程序,可以从工具箱往画布上拖曳控件,制作界面功能。双击界面,即会进入代码编辑页。编译调试程序。练习:1:编写9*9乘法表,并按照格式打印输出。2:编写计算器。能实现2个操作数的四则运算。作业:预习实验,撰写实验报告。详细写明练习题目的编写过程。实验二动物管理程序设计实验目标:熟悉C#的面向对象语法掌握C#中封闭性的实现掌握C#中继承性的实现掌握C#中多态性的实现根据实验指导完成动物面向对象特性的描述参考实验步骤:打开VS2003.NET,在左侧选择项目类型:C#项目,在右侧选择项目模版类型(控制台应用程序,或者是空白项)。选择项目存储路径,给项目起名字。打开资源管理器,点击项目右键,可以为项目增加新项(空白模版需要增加空白源文件)。在源代码文件里,编辑程序。指导思路:问题描述(动物特性描述):狗生活在陆地上(是一种陆生动物),既是哺乳类的也是肉食性的。狗通常的时候和人打招呼会通过“摇摇尾巴”,在被抚摸感到舒服的时候,会“旺旺叫”,而在受到惊吓情绪烦躁时,会发出“呜呜”声;猫也生活在陆地上(是一种陆生动物),既是哺乳类的也是肉食性的。猫通常的时候和人打招呼会发出“喵~”的声音,在被抚摸情绪很好时,会发出“咕噜咕噜”声,而在受到惊吓时,会发出“嘶嘶”声;青蛙是一种两栖动物(既是水生动物也是陆生动物),既不是哺乳类的也不是肉食性的,属于卵生。当青蛙情绪好的时候,会在岸边“呱呱呱”的唱歌,而在受到惊吓时,会“扑通一声跳入水中”;问题分析:首先需要抽取问题描述中对象分析每个对象所具有的特征分析每个对象所发出的动作从这些对象的特征中,抽取类的属性和方法分析类之间的关系,画出类结构图难点分析1:抽象类和对象的基本方法:抽取对象的基本的方法:找出句子中所使用的名词例如:在句子“小猫喵喵叫”中,我们能够确定一个对象:猫;确定对象发出的行为动作的基本的方法:找出句子中的动词例如:“旺旺叫”、“喵喵叫”都属于对象发出的动作;确定对象的属性或者特征的基本的方法:找出句子中的形容词例如:“哺乳性的”“肉食性的”“卵生的”等等;“是”的关系一般抽象为继承例如:狗是一种动物,意味着:“狗”类继承自“动物”类;“有”的关系一般抽象为类的属性例如:动物都有情绪,意味着:“情绪”是“动物”类的一个属性;难点分析2:阶段划分:第一阶段(60分钟):不考虑情绪影响动物打招呼的方式第二阶段(40分钟):考虑情绪影响动物打招呼的方式第三阶段(60分钟):考虑陆生动物和水生动物第一阶段:编写Animal类,没有mood属性,只有一种SayHello方法;编写Dog类、Cat类和Frog类,分别继承自Animal类,实现与Animal类不同的功能;编写main方法,分别实例化以上三个类的三个对象,测试类方法实现的正确性;代码:参考附录第二阶段:扩充Animal类、Dog类、Cat类和Frog类,增加Animal类的mood属性,并实现SayHello方法的多态性;扩充main方法;代码:参考附录第三阶段:定义LandAnimal接口和WaterAnimal接口;扩充Dog类、Cat类和Frog类,使其实现相应的接口;扩充main方法;编译调试程序。Dog:intnumberOfLegsDog()sayHello()sayHello(intnewValue)getNumberOfLegs()Cat:intnumberOfLegsCat()sayHello()sayHello(intnewValue)getNumberOfLegs()Frog:intnumberOfLegsFrog()sayHello()sayHello(intnewValue)getNumberOfLegs()hasGills()laysEggs()WaterAnimal:hasGills()laysEggs()LandAnimal:getNumberOfLegs()Animal:booleanmammalbooleancarnivorousintmoodisMammal()isCarnivorous()setMood(intnewValue)getMood()sayHello()sayHello(intmoodval)练习:1:编写类Animal,成员有是否是哺乳动物,和抽象函数:hello()。要求编写接口:LandAnimal和WaterAnimal来做陆生和水生动物。要求编写派生类:Dog,Bird,Fish,Whale,Frog,Crocodile。定义各类对象,实现各种动物的特性说明。作业:预习实验,撰写实验报告。详细写明练习题目的编写过程。附录:usingSystem;publicclassHelloWorld{publicstaticvoidMain(){Doganimal1=newDog();Catanimal2=newCat();Froganimal3=newFrog();if(animal1.isMammal())Console.WriteLine(狗是哺乳动物);elseConsole.WriteLine(狗不是哺乳动物);if(animal1.isCarnivorous())Console.WriteLine(狗是肉食动物);elseConsole.WriteLine(狗不是肉食动物);Console.WriteLine(狗通常的情况下,和人打招呼的方式为:+animal1.sayHello());Console.WriteLine(狗被抚摸情绪好的时候,打招呼的方式是:+animal1.sayHello(Animal.COMFORTED));Console.WriteLine(狗烦躁的时候,会:+animal1.sayHello(Animal.SCARED));Console.WriteLine(狗有+animal1.getNumberOfLegs()+条腿);Console.WriteLine();if(animal2.isMammal())Console.WriteLine(猫是哺乳动物);elseConsole.WriteLine(猫不是哺乳动物);if(animal2.isCarnivorous())Console.WriteLine(猫是肉食动物);elseConsole.WriteLine(猫不是肉食动物);Console.WriteLine(猫通常的情况下,和人打招呼的方式为:+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(青蛙是哺乳动物);elseConsole.WriteLine(青蛙不是哺乳动物);if(animal3.isCarnivorous())Console.WriteLine(青蛙是肉食动物);elseConsole.WriteLine(青蛙不是肉食动物);Console.WriteLine(青蛙通常的情况下,打招呼的方式为:+animal3.sayHello());Console.WriteLine(青蛙情绪好的时候会:+animal3.sayHello(Animal.COMFORTED));Console.WriteLine(青蛙受到惊吓是会:+animal3.sayHello(Animal.SCARED));if(animal3.getLaysEggs())Console.WriteLine(青蛙产卵);elseConsole.WriteLine(青蛙不产卵);if(animal3.getGillFlag())Console.WriteLine(青蛙有鳃);elseConsole.WriteLine(青蛙没有鳃);Console.WriteLine(青蛙有+animal3.getNumberOfLegs()+条腿);Console.ReadLine();}}abstractclassAnimal{//下面的两个属性被声明为public类型的,而且是静态的publicconstintSCARED=1;//情绪好publicconstintCOMFORTED=2;//情绪不好,烦躁//下面的属性被声明为保护类型的,允许在子类中访问protectedboolmammal=true;//是否哺乳动物属性protectedboolcarnivorous=true;//是否食肉动物属性protectedintmood=COMFORTED;//情绪属性publicboolisMammal()//判断是否哺乳动物{return(mammal);}publicboolisCarnivorous()//判断是否食肉动物{return(carnivorous);}abstractpublicstringsayHello();//打招呼的方式,该方法是抽象的,所以必须在子类中实现abstractpublicstringsayHello(intmoodval);publicvoidsetMood(intnewValue)//设置情绪值{mood=newValue;}publicintgetMood()//返回情绪值{return(mood);}}interfaceLandAnimal//陆生动物接口{intgetNumberOfLegs();//返回有多少只脚}interfaceWaterAnimal//水生动物接口{boolgetGillFlag();//返回是否有腮boolgetLaysEggs();//返回是否产卵}classDog:Animal,LandAnimal//狗类继承自动物类,并实现陆生动物接口{//下面的属性被声明为私有的,并初始化。privateintnumberOfLegs=4;//缺省构造函数确保属性能够正确设置publicDog(){mammal=true;//是哺乳动物carnivorous=true;//是食肉动物}//重载父类的方法publicoverridestringsayHello(){return(摇摇尾巴);}publicoverridestringsayHello(intmoodval){this.setMood(moodval);switch(mood){caseSCARED:return(呜呜叫);caseCOMFORTED:return(旺旺旺叫);}return(摇摇尾巴);}//实现LandAnimal接口publicintgetNumberOfLegs(){return(numberOfLegs);}}classCat:Animal,LandAnimal//猫类继承自动物类,并实现生活在陆地上的动物接口{//声明并初始化猫的两个属性privateintnumberOfLegs=4;privatebooltailFlag=true;//缺省构造函数publicCat(){mammal=true;carnivorous=t
本文标题:C#实验指导书
链接地址:https://www.777doc.com/doc-4292712 .html