您的位置:首页 > 编程语言 > C#

C#控制台练习多肽实验报告

2013-03-15 18:43 357 查看
 

 

******

实验报告

 

 

 

 

 

 

 

 

 

 

 

课程名称:

C#面向对象程序设计

姓名:

 

实验名称:

多态性

学号:

 

实验编号:

 

专业:

 

任课教师:

 

班级:

 

指导教师:

 

实验日期:

年   月   


 

 

 

实验成绩:

 

批阅教师签字:

 

 

 

 

 

一、实验目的

1.理解面向对象编程方法中的继承概念,掌握继承的运用;

2.理解多态及其实现;

二、实验内容与实验步骤

定义一个银行卡类(BankCard)以及派生类ForeignCard,LimitedCard,成员包括姓名、卡号、余额等字段,构造函数,查询余额,取款及存款方法;

其中:ForeignCard取款时应缴纳1%的手续费。

LimitedCard取款时不能超过1000元的限额。

要求:

1、用虚拟方法实现多态性,用统一的方式处理各种卡的取款和存款业务。

2、能够选择多种业务,如:办卡,存取,余额查询等;

 

三、实验环境

程序设计软件:Microsoft Visual Studio 2010

操作系统:Windos xp或者
Windos 7


四、实验过程与分析

没法解决限制卡超出限制取款的错误提示

五、实验结果总结

六、思考题

1、派生类中是否可以随意引用基类中的任何成员?为什么?

在继承中,派生类含有基类的成员加上任何你新增的成员。结果是派生类可以引用基类的成员(除非这些成员在派生类中重定义了)

2、什么是多态性?它有什么作用?

多态性是一项允许将父对象设置为和一个或者多个子对象相等的技术,赋值以后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。它可以里哟动态绑定技术,用相同名称的方法来调用方法的不通过具体实现。

七、附录

class BankCard        
//一般卡类

    {

        protected decimal Deposit;

        protected string name;

        protected string number;

 

        public BankCard(string name,string number)

        {

            this.name = name;

            this.number = number;

        }

        public BankCard(string name,
string number, decimal Deposit)

        {

            this.name = name;

            this.number = number;

            this.Deposit = Deposit;

        }

        public string Name

        {

            get

            {

                return name;   
//属性

            }

            set

            {

                name = value;

            }

        }

        public string Number

        {

            get

            {

                return number;      
//属性

            }

            set                  

            {

                number = value;

            }

        }

        public decimal deposit

        {

            get

            {

                return Deposit;   
//属性  余额

            }

            set

            {

                Deposit = value;

            }

        }

        public  decimal check()

        {

            return Deposit;     
//查询

           

        }

        public virtual
void Savemoney(decimal m)

        {

            if (m > 0)

            {

                Deposit += m;                //存

              

            }

     

           

 

        }

        public virtual
void Putmoney(decimal m)

        {

            if (m > 0 && m <= Deposit)

            {

                Deposit -= m;                //取

 

            }

 

 

外国卡类

class ForeignCard :
BankCard  //外国卡类

    {

        public ForeignCard(string name,
string number,decimal Deposit)

            : base(name, number,Deposit)

        {

           

        }

        public override
void Putmoney(decimal m)

        {

            if (m > 0 && m <= Deposit)

            {

                m =(decimal)  ((double)(m)*1.01);

                Deposit -= m;

 

 

            }

            else

            {

                base.check();

            }

        }

限制卡类

    class LimitedCard:BankCard

    {

         public LimitedCard(string name,
string number,decimal Deposit)

         : base(name, number,Deposit)

        {

           

        }

        public override
void Putmoney(decimal m)

        {

            if (m < 1000 && m < Deposit && m > 0)

            {

                Deposit -= m;

               

            }

主函数

class Program

    {

        static void Main(string[] args)

        {

            int a = 0;

            decimal b, c;

            BankCard[] guest =
new BankCard[3];

            guest[0] = new
BankCard("Kirsi",
"White", 20000);   //3种卡类型

            guest[1] = new
ForeignCard("Kuro",
"Black", 20000);

            guest[2] = new
LimitedCard("White",
"Blue", 20000);

 

 

 

 

           

            while (a != 4)

            {

                Console.WriteLine("请输入你要的功能");

                Console.WriteLine("1,取款");                
//界面

                Console.WriteLine("2,存款");

                Console.WriteLine("3,查询");

                Console.WriteLine("4,exit");

                a = Convert.ToInt32(Console.ReadLine());

                switch (a)

                {

                    case 1:

                        Console.WriteLine("输入取款");

                        b = Convert.ToDecimal(Console.ReadLine());

                        foreach (BankCard money
in guest)

                        {

                            money.Putmoney(b);

                        }; break;

                    case 2:

                        Console.WriteLine("输入存款");

                        c = Convert.ToDecimal(Console.ReadLine());

                        foreach (BankCard save
in guest)

                        {

                            save.Savemoney(c);

                        }; break;

                    case 3:

                        Console.WriteLine("余额");

                        foreach (BankCard data
in guest)

                        {

                           

                            Console.WriteLine(data.check());

                        }; break;

                }

            }

        }

    }

 

 

 

        }

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: