需要协助才能访问帐户类。当我运行程序时,它会提示ATM类的WriteLine(“欢迎/输入帐户/退出”);.但是,输入数字后,命令窗口才会关闭。我不知道该怎么做。我还要提一下这是我与C Sharp合作的第一个程序。此外,我不确定为什么人们会对我的问题进行投票,因为我是网站新手。
帐户类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication3
{
class Account //Within the Account class, we have balance, withdraw,and deposit
{
////An account array to create 3 seperate accounts each with a default balance of $100.00.
//int[] myAccount = new int[3];
Account[] account = new Account[3];
public double balance;
public void deposit(double n)
{
balance += n;
}
public void withdraw(double n)
{
balance -= n;
}
public void calcInterest(double n)
{
//Here is where we calculate the interest!
}
public void menu()
{
{
{
int input = Convert.ToInt32(Console.ReadLine());
var currAccount = account[input]; // Not sure what this code is for.
if (account[input] == null)
{
account[input] = new Account();
account[input].balance = 100; //Set initial balance to $100
}
if (input != 4)
{
Console.WriteLine("1) Deposit");
Console.WriteLine("2) Withdraw");
Console.WriteLine("3) Get Balance");
Console.WriteLine("4) Exit");
if(input == 1)
{
Console.WriteLine("How much would you like to deposit today?");
int moneyIn = Convert.ToInt32(Console.ReadLine());
account[input].deposit(moneyIn); //access the deposit method and increase balance by the amount entered by user.
Console.WriteLine("Here is your current balance:" + account[input].balance);
}
if(input == 2)
{
Console.WriteLine("How much would you like to withdraw today?");
int moneyOut = Convert.ToInt32(Console.ReadLine());
account[input].withdraw(moneyOut); //Access the withdraw method and decrease balance by the amount entered by user.
Console.WriteLine("Here is your current balance:" + account[input].balance);
}
if (input == 3)
{
Console.WriteLine("Here is your current balance:"+account[input].balance);
//return account[input].balance;
}
if (input == 4)
{
//I want to exit the application here.
}
}
}
}
}
}
}
ATM类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication3
{
class Atm //With the atm class we will have the atm menu
{
static void Main(string[] args)
{
Console.WriteLine("Welcome!");
Console.WriteLine("Please enter your account number (1-3 or '4' to exit.");
int input = Convert.ToInt32(Console.ReadLine());
{
if (input >= 1 && input <= 3)
{
Console.WriteLine("You have entered " + input);
Console.ReadLine();
//ConsoleApplication3.Account[input]; // How do I access the account here?
}
else if (input == 4)
{
Console.WriteLine("Goodbye.");
//Exit Application
}
}
}
}
}
计划类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication3
{
class Program
{
//Not really sure what this is for at the moment, or if it is even needed.
}
}
答案 0 :(得分:1)
首先,不要将Console.WriteLine和Console.ReadLine逻辑放在Account类中。也就是说,用户交互代码应该有自己的位置,可能在Atm类中,但在他们自己的方法中。
在Atm类中,为Accounts创建一个引用,例如
# http://www.wildml.com/2016/08/rnns-in-tensorflow-a-practical-guide-and-undocumented-features/
def make_example(input_sequence, output_sequence):
"""
Makes a single example from Python lists that follows the
format of tf.train.SequenceExample.
"""
example_sequence = tf.train.SequenceExample()
# 3D length
sequence_length = sum([len(word) for word in input_sequence])
example_sequence.context.feature["length"].int64_list.value.append(sequence_length)
input_characters = example_sequence.feature_lists.feature_list["input_characters"]
output_characters = example_sequence.feature_lists.feature_list["output_characters"]
for input_character, output_character in izip_longest(input_sequence,
output_sequence):
# Extend seems to work, therefore it replaces append.
if input_sequence is not None:
input_characters.feature.add().int64_list.value.extend(input_character)
if output_characters is not None:
output_characters.feature.add().int64_list.value.extend(output_character)
return example_sequence
减少主菜单输入的重复次数。如果输入介于1和1之间。 3,只需致电
Accounts[] accounts = new Accounts[3]
因此输入处理将变为:
Console.WriteLine("You have selected account "+input);
然后像这样访问相关帐户
int input = Convert.ToInt32(Console.ReadLine());
{
if (input >=1 && input <= 3)
{
Console.WriteLine("You have entered "+input);
Console.ReadLine();
//Access Account
}
else if (input == 4)
{
Console.WriteLine("Goodbye.");
//Exit Application
}
}
此外,提款方法需要确保有足够的余额(或者如果允许透支,则最大透支额度)。
答案 1 :(得分:0)
如果您想访问Account对象,首先将其实例化并为其命名,此处该对象称为TheAcc。
map?country=US
如果您想要访问该对象的属性,例如余额,您可以执行以下操作:
Account theAcc = new Account();