如何建立一个多账户系统?(用户名、密码等)

本文关键字:系统 用户 密码 建立 何建立 一个 | 更新日期: 2023-09-27 18:06:01

我正在制作一个基于控制台的银行应用程序(主要用于学习目的),我需要使用用户名,密码,余额,ID等制作某种数组/列表/字典。我不确定这样做是否正确,但是我已经有了一个命令输入和未完成的解析器。我需要弄清楚我要怎么做会计系统。一开始我想做一个数据结构,比如

public static struct AccountStruct
    {
        string username;
        string password;
        int balance;
        int ID;
    }

然后每次创建一个新帐户时,以某种方式创建一个名为"public static AccountStruct Acc#"的结构,其中#为帐户数+1,然后根据用户输入定义所有值。当然,你不能根据其他变量/结构来命名变量/结构。所以我进一步研究,发现了字典,但你只能有两个值(据我所知…?),所以我在这里有点迷路了。这里是完整的未完成的银行代码因为我知道我可能在这里也做错了:http://pastebin.com/HrCNAQKa

如何建立一个多账户系统?(用户名、密码等)

你犯了一些初学者常犯的错误。

  1. 你实际上不是在问问题。Stack Overflow并不是为了提供交互式教程而设置的。尝试编写一些代码来演示一个特定的问题,并将这些代码贴在问题上。不要简单地提供代码链接;搜索找不到它,我们不知道目的地是否与问题对应。链接也会过期

  2. 一切都是static。这意味着只能有一种东西是静态的,并且每个实例都是相同的。在您的情况下,这意味着您永远不会拥有多个帐户。

  3. 你正在使用一个可变结构体。正如Ron Beyer所提到的,这样的事情是导致噩梦般的问题的原因,比如变量似乎同时是不同的值。

首先,应该像这样定义一个Account类:
public class Account
{
    public readonly int ID;
    public string Username;
    public string Password;
    public decimal Balance;
    public Account(int id, string username, string password)
    {
        ID = id;
        Username = username;
        Password = password;
    }
}

你可以创建多个帐户:

var c1 = new Account(1, "Janet", "Pharos");
var c2 = new Account(2, "Sarah", "Logopolis");

虽然可能需要一个文件或数据库作为永久的解决方案,但如果您只是在测试,您可以简单地将帐户存储在列表中:

var accounts = new List<Account>
{
    c1, c2
};

使用List方法进行实验;它们可用于搜索、插入和删除帐户。如果遇到问题,请将代码发布到新问题

理想的方法是使用关系数据库(MySQL等),但是如果您只想做一些测试目的的事情,您可以使用Dictionary。它只接受两个参数,一个键和一个值。键可以是用户的帐号,值可以是您创建的包含所有其他信息的结构。