桀骜358 2022-07-03 22:58 采纳率: 82.4%
浏览 92
已结题

一道操作题,用最简单的代码,最简介的语法

操作软件 IntelliJ IDEA
要求,用最简单的代码,最简介的语法
1.创建a.txt文件,文件内容为用户名=密码的形式,例如:Tom=123
Jack=456
2.完成如下功能:
(1)控制台显示登陆提示,输入用户名密码,如a.txt中有,则登陆成功,否则显示登陆失败,并按情况提示用户不存在或者密码错误
(2)登陆成功后,能查看所有用户的用户名和密码信息
(3)登陆成功后,能添加新的用户名和密码,注意用户名不可重复

  • 写回答

3条回答 默认 最新

  • it_hao528 2022-07-04 01:21
    关注

    最简单的代码,最简洁的语法
    代码参考如下:

    public class Login {
        private static Map<String, String> map;
        private static Scanner sc = new Scanner(System.in);
    
        public static void main(String[] args) {
            initData();
            login();
            while (true) {
                menu();
                int o = sc.nextInt();
                switch (o) {
                    case 1:
                        selectAll();
                        break;
                    case 2:
                        add();
                        break;
                    default:
                        System.out.println("请输入有效的选项~~");
                        break;
                }
            }
        }
    
        public static void initData() {
            map = new HashMap<>();
            read();
        }
    
        public static void login() {
            while (true) {
                System.out.println("请输入用户名:");
                String username = sc.nextLine();
                System.out.println("请输入密码:");
                String password = sc.nextLine();
                if (map.keySet().contains(username)) {
                    if (password.equals(map.get(username))) {
                        break;
                    }
                    System.out.println("登陆失败:密码错误");
                    continue;
                }
                System.out.println("登陆失败:用户不存在");
            }
            System.out.println("登录成功!");
        }
    
        public static void menu() {
            System.out.println("===== 欢迎进入主页 =====");
            System.out.println("===== 查所有用户:1 =====");
            System.out.println("===== 添加新用户:2 =====");
            System.out.println("===== 请选择操作选项 =====");
        }
    
        public static void selectAll() {
            System.out.println("===== 所有用户信息 =====");
            for (String key : map.keySet()) {
                System.out.println(key + "=" + map.get(key));
            }
        }
    
        public static void add() {
            System.out.println("===== 添加新的用户 =====");
            sc.nextLine();
            while (true) {
                System.out.println("请输入新用户名:");
                String username = sc.nextLine();
                if (map.keySet().contains(username)) {
                    System.out.println("已存在");
                    continue;
                }
                System.out.println("请输入密码:");
                String password = sc.nextLine();
                map.put(username, password);
                write(username, password);
                break;
            }
            System.out.println("添加成功!");
        }
    
        public static void read() {
            File file = new File("src/main/resources/a.txt");
            if (!file.exists()) {
                System.out.println("file is not exists.");
                return;
            }
            try (
                    Reader reader = new FileReader("src/main/resources/a.txt");
                    BufferedReader br = new BufferedReader(reader);
            ) {
                String line;
                while ((line = br.readLine()) != null) {
                    String[] strs = line.split("=");
                    map.put(strs[0], strs[1]);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        public static void write(String key, String value) {
            File file = new File("src/main/resources/a.txt");
            if (!file.exists()) {
                System.out.println("file is not exists.");
                try {
                    file.createNewFile();
                    System.out.println("file create success.");
                } catch (IOException e) {
                    e.printStackTrace();
                }
                return;
            }
            try (
                    Writer writer = new FileWriter("src/main/resources/a.txt", true);
                    BufferedWriter bw = new BufferedWriter(writer);
            ) {
                bw.write(key + "=" + value);
                bw.newLine();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 7月12日
  • 已采纳回答 7月4日
  • 创建了问题 7月3日

悬赏问题

  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法