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;
}
}
}
}
}
相关文章推荐
- LateX练习:写一份实验报告
- 实验报告撰写练习1
- 《java第十周实验报告1-1》---点、线类的继承练习
- 《java第十周实验报告2-1》---人,员工继承练习
- 《C++第十周实验报告1-1》---PointLine继承练习
- 第九周实验报告2(Time类中的<<和>>运算符的重载)
- 《第九周实验报告任务2》
- 第九周实验报告(3)
- 实验报告:使用MapReduce实现PageRank算法
- 第九周实验报告 任务一
- 操作系统ucore lab7实验报告
- 第9周实验报告5
- 第九周实验报告(二)
- 第九周实验报告(任务四)【一元一次方程类】
- 一片糟糕的实验报告
- 第九周实验报告(1)
- 第九周实验报告任务5 设计一元一次方程类,求形如ax+b=0的方程的解。
- 第八周实验报告(1-2)
- 第九周实验报告3
- 20135239+20125221+20135235实验二实验报告