using System;
using System.Collections.Generic;
using System.Text;namespace A
{
class BCard
{
public string num;
public string psw;
public float balance;
public BCard(string n, string p)
{
num = n;
psw = p;
//balance = 0;
}
public void Inguing(float c)
{
balance = c;
Console.WriteLine("您卡上余额:{0}",balance);
}
public void Saving(float d)
{
Console.WriteLine("您现存款:{0}",d);
}
public void Withdrawal(float e)
{
balance -= e;
Console.WriteLine("您现取款:{0},还剩余额:{1}",e,balance);
}
// public float Transfer()
//{ }
}
class ICard : BCard
{
public void Transfer(float f)
{ balance -= (f += 2%f);
Console.WriteLine("您已转账:{0},还剩余额:{1}",f,balance);
}
}
class GCard : BCard
{
public new void Saving(float d)
{
balance += (d-=2%d);
Console.WriteLine("您现在存款:{0}",balance);
}
public new void Withdrawal(float e)
{
balance -=(e += 5%e);
Console.WriteLine("您现在取款:{0},还剩余额:{1}",e,balance);
}
}
class M
{
public static void Main()
{
int a = Convert.ToInt32(Console.ReadLine());
if (a == 1)
{
Console.WriteLine("这是一张本地卡");
Console.WriteLine("请输入你的密码:");
Console.WriteLine("请输入你的卡号:");
ICard w = new ICard("123", "456");
w.Inguing(1000);
w.Saving(100);
w.Withdrawal(100);
w.Transfer(100);
Console.ReadLine();
}
else
{
if (a == 2)
{
Console.WriteLine("这是一张外地卡");
Console.WriteLine("请输入你的密码:");
Console.WriteLine("请输入你的卡号:");
GCard s = new GCard();
s.Inguing(2000);
s.Saving(200);
s.Withdrawal(200);
Console.ReadLine();
}
else
{
Console.WriteLine("您的输入有错误,请输入1或2");
}
}
}
}
}
请问:
这个程序为什么运行不了呢
谢谢
using System.Collections.Generic;
using System.Text;namespace A
{
class BCard
{
public string num;
public string psw;
public float balance;
public BCard(string n, string p)
{
num = n;
psw = p;
//balance = 0;
}
public void Inguing(float c)
{
balance = c;
Console.WriteLine("您卡上余额:{0}",balance);
}
public void Saving(float d)
{
Console.WriteLine("您现存款:{0}",d);
}
public void Withdrawal(float e)
{
balance -= e;
Console.WriteLine("您现取款:{0},还剩余额:{1}",e,balance);
}
// public float Transfer()
//{ }
}
class ICard : BCard
{
public void Transfer(float f)
{ balance -= (f += 2%f);
Console.WriteLine("您已转账:{0},还剩余额:{1}",f,balance);
}
}
class GCard : BCard
{
public new void Saving(float d)
{
balance += (d-=2%d);
Console.WriteLine("您现在存款:{0}",balance);
}
public new void Withdrawal(float e)
{
balance -=(e += 5%e);
Console.WriteLine("您现在取款:{0},还剩余额:{1}",e,balance);
}
}
class M
{
public static void Main()
{
int a = Convert.ToInt32(Console.ReadLine());
if (a == 1)
{
Console.WriteLine("这是一张本地卡");
Console.WriteLine("请输入你的密码:");
Console.WriteLine("请输入你的卡号:");
ICard w = new ICard("123", "456");
w.Inguing(1000);
w.Saving(100);
w.Withdrawal(100);
w.Transfer(100);
Console.ReadLine();
}
else
{
if (a == 2)
{
Console.WriteLine("这是一张外地卡");
Console.WriteLine("请输入你的密码:");
Console.WriteLine("请输入你的卡号:");
GCard s = new GCard();
s.Inguing(2000);
s.Saving(200);
s.Withdrawal(200);
Console.ReadLine();
}
else
{
Console.WriteLine("您的输入有错误,请输入1或2");
}
}
}
}
}
请问:
这个程序为什么运行不了呢
谢谢
解决方案 »
- sql语句关于时间查询问题.
- 时间格式转换的名堂太多了!!!
- remoting 如何向webservice那样接收java发送信息?
- pop3收邮件问题!
- GridView的页码显示位置问题
- 为什么我用vs.net2005的自带的打包工具打包的时候会出现有的xml配置文件不存在?
- 如何读取其它进程正在写的文件?高手请帮忙!
- 如何铺捉窗体的关闭事件?
- ado.net 保存 二进制文件到 oracle blob 错误:ORA-01461: 仅可以为插入 LONG 列的 LONG 值赋值
- ListBox的某些item过长。可否为item加上类似tooltip的效果?
- 急急急,初学者,这到底怎么回事
- 如何把一个BYTE拆分成两个BYTE(C#)
这是我修改后的代码,有几个地方:
1)ICard和GCard均继承自BCard。BCard中定义了一个构造函数,这时编译器不会自动构造一个无参构造函数。而在ICard和GCard中均没有定义与ICard参数相对应的构造函数,使得ICard和GCard的基类无法构造。因此我添加了两个构造函数:
public ICard(string n, string p) : base(n, p) { }
public GCard(string n, string p) : base(n, p) { }
2)你的主程序是GCard的构造过程错误。按照我的方案修改后,GCard同样也没有无参构造函数,因此需要添加参数。
我修改为
GCard s = new GCard("123","456");
现在程序可编译,运行结果我没测试。
using System;
using System.Collections.Generic;
using System.Text;namespace A
{
class BCard
{
public string num;
public string psw;
public float balance;
public BCard(string n, string p)
{
num = n;
psw = p;
//balance = 0;
}
public void Inguing(float c)
{
balance = c;
Console.WriteLine("您卡上余额:{0}", balance);
}
public void Saving(float d)
{
Console.WriteLine("您现存款:{0}", d);
}
public void Withdrawal(float e)
{
balance -= e;
Console.WriteLine("您现取款:{0},还剩余额:{1}", e, balance);
}
// public float Transfer()
//{ }
}
class ICard : BCard
{
public ICard(string n, string p) : base(n, p) { } public void Transfer(float f)
{ balance -= (f += 2 % f);
Console.WriteLine("您已转账:{0},还剩余额:{1}", f, balance);
}
}
class GCard : BCard
{
public GCard(string n, string p) : base(n, p) { } public new void Saving(float d)
{
balance += (d -= 2 % d);
Console.WriteLine("您现在存款:{0}", balance);
}
public new void Withdrawal(float e)
{
balance -= (e += 5 % e);
Console.WriteLine("您现在取款:{0},还剩余额:{1}", e, balance);
}
}
class M
{
public static void Main()
{
int a = Convert.ToInt32(Console.ReadLine());
if (a == 1)
{
Console.WriteLine("这是一张本地卡");
Console.WriteLine("请输入你的密码:");
Console.WriteLine("请输入你的卡号:");
ICard w = new ICard("123", "456");
w.Inguing(1000);
w.Saving(100);
w.Withdrawal(100);
w.Transfer(100);
Console.ReadLine();
}
else
{
if (a == 2)
{
Console.WriteLine("这是一张外地卡");
Console.WriteLine("请输入你的密码:");
Console.WriteLine("请输入你的卡号:");
GCard s = new GCard("123","456");
s.Inguing(2000);
s.Saving(200);
s.Withdrawal(200);
Console.ReadLine();
}
else
{
Console.WriteLine("您的输入有错误,请输入1或2");
}
}
}
}
}