using System;
namespace Wrox.ProCSharp.OOProg //The first program
{
class MainEntryPoint
{
static void Main()
{
Authenticator myAccess = new Authenticator();
bool done;
done = myAccess.ChangePassword("", "MyNewPassWord");
if (done == true)
Console.WriteLine("PassWord for myAccess changed");
else
Console.WriteLine("Failed to change passWord for myAccess");
done = myAccess.ChangePassword("", "AnotherPassWord");
if (done == true)
Console.WriteLine("PassWord for myAccess changed");
else
Console.WriteLine("Failed to change passWord for myAccess");
if (myAccess.IsPasswordCorrect("WhatPassWord"))
Console.WriteLine("VerifIEd myAccess\' passWord");
else
Console.WriteLine("Failed to verify myAccess\' passWord");
}
}
public class Authenticator
{
// implementation as shown earlIEr
private string passWord = "";
public bool IsPasswordCorrect(string tryPassWord)
{
&nbs
p; return (tryPassword == passWord) ? true : false;
}
public bool ChangePassword(string oldPassword, string newPassWord)
{
if (oldPassword == passWord)
{
password = newPassWord;
return true;
}
else
return false;
}
}
}
using System;
namespace Wrox.ProCSharp.OOProg //The Second program
{
class MainEntryPoint
{
static void Main()
{
Authenticator myAccess = new Authenticator();
bool done;
done = myAccess.ChangePassword("", "MyNewPassWord");
if (done == true)
Console.WriteLine("PassWord for myAccess changed");
else
Console.WriteLine("Failed to change passWord for myAccess");
done = myAccess.ChangePassword("", "AnotherPassWord");
if (done == true)
Console.WriteLine("PassWord for myAccess changed");
else
Console.WriteLine("Failed to change passWord for myAccess");
if (myAccess.IsPasswo
rdCorrect("WhatPassWord"))}
public class Authenticator
{
// implementation as shown earlIEr
private string passWord = "";
public bool IsPasswordCorrect(string tryPassWord)
{
return (tryPassword == passWord) ? true : false;
}
public bool ChangePassword(string oldPassword, string newPassWord)
{
if (oldPasswor
d == passWord)
{
password = newPassWord;
return true;
}
else
return false;
}
}
}
namespace Wrox.ProCSharp.OOProg
{
using System;
public enum TypeOfCall
{
CallToCellPhone, CallToLandline
}
public class Customer
{
private string name;
private decimal balance;
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
public decimal Balance
{
get
{
return balance;
}
}
public void RecordPayment(decimal amountPaid)
{
balance -= amountPaid;
}
public void RecordCall(TypeOfCall callType, uint nMinutes)
{
switch (callType)
{
case TypeOfCall.CallToLandline:
balance += (0.02M * nMinutes);
break;
case TypeOfCall.CallToCellPhone:
balance += (0.30M * nMinutes);
break;
default:
break;
}
}
}
public class MainEntryPoint
{
public static void Main()
{
Customer arabel = new Customer();
arabel.Name = "Arabel Jones";
Customer mrJones = new Customer();
mrJones.Name = "Ben Jones";
arabel.RecordCall(TypeOfCall.CallToLandline, 20);
arabel.RecordCall(TypeOfCall.CallToCellPhone, 5);
mrJones.RecordCall(TypeOfCall.CallToLandline, 10);
Console.WriteLine("{0,-20} owes ${1:F2}", arabel.Name, arabel.Balance);
Console.WriteLine("{0,-20} owes ${1:F2}", mrJones.Name, mrJones.Balance);
}
}
}
namespace Wrox.ProCSharp.OOProg
{
using System;
public enum TypeOfCall
{
CallToCellPhone, CallToLandline
}
public class Customer
{
private string name;
protected decimal balance;
public string GetFunnyString()
{
return "Plain ordinary customer. Kaark!";
}
public string Name
{
get
{
return name;
}
set
{
name = value;
}
&
nbsp; }
public decimal Balance
{
get
{
return balance;
}
}
public void RecordPayment(decimal amountPaid)
{
balance -= amountPaid;
}
public virtual void RecordCall(TypeOfCall callType, uint nMinutes)
{
switch (callType)
{
case TypeOfCall.CallToLandline:
balance += (0.02M * nMinutes);
break;
case TypeOfCall.CallToCellPhone:
balance += (0.30M * nMinutes);
break;
default:
break;
}
}
}
public class Nevermore60Customer : Customer
{
private uint highCostMinutesUsed;
public new string GetFunnyString()
{
return "Nevermore60. Nevermore!";
}
public override void RecordCall(TypeOfCall callType, uint nMinutes)
{
switch (callType)
> case TypeOfCall.CallToLandline: