A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 洋葱头头   /  2016-2-15 09:21  /  8152 人查看  /  127 人回复  /   2 人收藏 转载请遵从CC协议 禁止商业使用本文

那个User是给参考用的吗?
回复 使用道具 举报
新年快乐~

版主辛苦~.zip

1.4 KB, 下载次数: 67

评分

参与人数 1技术分 +5 收起 理由
洋葱头头 + 5

查看全部评分

回复 使用道具 举报

待会我看
回复 使用道具 举报
renkuo023 发表于 2016-2-15 20:36
那个User是给参考用的吗?

嗯嗯 是给你参考用的
回复 使用道具 举报


你这泛型怎么写的
回复 使用道具 举报

        static TreeMap<String, String> tm = new TreeMap<>();        //键是用户名,值是密码
        static TreeMap<String, String> tm2 = new TreeMap<>();        //键是用户名,值是权限

没错啊
回复 使用道具 举报 1 0
终于写完了

UserLogin.zip

2.08 KB, 下载次数: 59

点评

看完啦很好 给分  发表于 2016-2-16 08:17

评分

参与人数 1技术分 +5 收起 理由
洋葱头头 + 5 赞一个!

查看全部评分

回复 使用道具 举报

明天看 困了
回复 使用道具 举报
本帖最后由 洋葱头头 于 2016-2-16 12:34 编辑

LiHuan.zip (8.39 KB, 下载次数: 56)

老板,求打赏!!!
目前还没学集合什么的,用的是字符串连接的方法做的。这不是压缩包,将后缀名.zip改成.java即可。
注释就不写得特别详细了。
坐等打赏!{:2_31:}

  1. /*
  2. *花了好多时间考虑,写了几遍,调试了也不知道多少次。
  3. *第一遍不是通过控制器的方式,是在主函数中按照面向过程的方式写的,但是觉得这样写不怎么好,
  4. *然后突然想起以前见到的使用一个整型数来代表界面,然后又开始从新写了一遍。
  5. *目前没有学集合,要储存不确定的用户数量是一个难题,于是后来想要通过字符串拼接的方式,
  6. *是我目前能想到的最好的方法了。
  7. *功能基本实现了!如遇BUG请反馈!!!
  8. *具体注释我就不写了,大致的注释就简单的写了一些。
  9. */
  10. import java.util.Scanner;
  11. import java.io.*;
  12. class LiHuan {
  13. public static int control = 0; //定义控制器参数
  14. public static int countUser = 0; //统计用户数量
  15. public static String[] userInfo = new String[3]; //存储当前登录的用户信息
  16. public static String userList = "#"; //存储所有用户数据
  17. public static Scanner sc = new Scanner(System.in);

  18. public static void main(String[] args) throws IOException {
  19.   while (true) { //无限循环,根据控制器的参数进行操作
  20.    if (control == -1) {
  21.     break;
  22.    } else {
  23.     control();
  24.    }
  25.   }
  26. }

  27. public static void control() throws IOException {
  28.   switch (control) {
  29.    case 0: //主界面
  30.     iMain();
  31.    break;
  32.    case 1: //注册界面
  33.     iRegister();
  34.    break;
  35.    case 2: //登录界面
  36.     iLogin();
  37.    break;
  38.    case 3: //用户界面
  39.     iUser();
  40.    break;
  41.    default: //默认界面
  42.     control = -1;
  43.    break;
  44.   }
  45. }

  46. public static void iMain() { //主界面函数
  47.   System.out.println("------------------------------------");
  48.   System.out.println("----------欢迎来到黑马论坛----------");
  49.   System.out.println("-----------本站共有0名用户----------");
  50.   System.out.println("0.退出");
  51.   System.out.println("1.注册");
  52.   System.out.println("2.登录");
  53.   while(true) {
  54.    System.out.println("\r\n请选择你想要的操作选项:");
  55.    String str = sc.nextLine();
  56.    if (str.equals("0") || str.equals("1") || str.equals("2")) { //不能使用==
  57.     switch (str) {
  58.      case "0":
  59.       control = -1;
  60.      break;
  61.      case "1":
  62.       control = 1;
  63.      break;
  64.      case "2":
  65.       control = 2;
  66.      break;
  67.      default:
  68.       control = -1;
  69.      break;
  70.     }
  71.     break;
  72.    } else {
  73.     System.out.println("<---你操作错误,请重新输入选项!--->");
  74.     System.out.println("------------------------------------");
  75.    }
  76.   }
  77. }

  78. public static void iRegister() { //注册界面函数
  79.   String userName;
  80.   String passWord;
  81.   System.out.println("------------------------------------");
  82.   System.out.println("----------欢迎来到注册页面----------");
  83.   while (true) {
  84.    System.out.println("输入你要注册的帐号:");
  85.    userName = sc.nextLine().toLowerCase();
  86.    if (!userList.contains(userName)) {
  87.     while (true) {
  88.      System.out.println("请输入你要注册的密码:");
  89.      passWord = sc.nextLine();
  90.      if (passWord.matches("[a-zA-Z0-9_]{6,20}")) {
  91.       userList += (userName + "," + passWord + ",0#");
  92.       countUser++;
  93.       control = 0;
  94.       System.out.println("注册成功!");
  95.       break;
  96.      } else {
  97.       System.out.println("<---密码只能为英文字母大小写、数字以及下划线,且密码长度在6-20之间!--->");
  98.       System.out.println("------------------------------------");
  99.      }
  100.     }
  101.     break;
  102.    } else {
  103.     System.out.println("<-你输入的帐号已存在,请重新尝试!->");
  104.     System.out.println("------------------------------------");
  105.     control = 0;
  106.     break;
  107.    }
  108.   }
  109. }

  110. public static void iLogin() { //登录界面函数
  111.   if (countUser == 0) {
  112.    control = 1;
  113.    return;
  114.   } else {
  115.    System.out.println("------------------------------------");
  116.    System.out.println("----------欢迎来到登录界面----------");
  117.    System.out.println("--------------请按1返回-------------");
  118.    System.out.println("--------------请按2继续-------------");
  119.    while (true) {
  120.     String tempSelect = sc.nextLine();
  121.     if (tempSelect.equals("1")) {
  122.      control = 0;
  123.      break;
  124.     } else if (tempSelect.equals("2")) {
  125.      while (true) {
  126.       System.out.println("请输入账号:");
  127.       String userNameTemp = sc.nextLine();
  128.       System.out.println("请输入密码:");
  129.       String passWordTemp = sc.nextLine();
  130.       if (userList.contains("#" + userNameTemp + "," + passWordTemp + ",0#")) {
  131.        setUserInfo(userNameTemp, passWordTemp, "0");
  132.        break;
  133.       } else if (userList.contains("#" + userNameTemp + "," + passWordTemp + ",1#")) {
  134.        setUserInfo(userNameTemp, passWordTemp, "1");
  135.        break;
  136.       } else {
  137.        System.out.println("<------------登录失败!------------->\r\n");
  138.        control = 0;
  139.        break;
  140.       }
  141.      }
  142.      break;
  143.     } else {
  144.      System.out.println("<------------输入有误!------------>");
  145.      System.out.println("------------------------------------");
  146.      control = 0;
  147.      break;
  148.     }
  149.    }
  150.   }
  151. }

  152. public static void setUserInfo(String userName, String passWord, String isVip) { //设置当前登录用户信息
  153.   System.out.println("登陆成功!");
  154.   control = 3;
  155.   userInfo[0] = userName;
  156.   userInfo[1] = passWord;
  157.   userInfo[2] = isVip;
  158. }

  159. public static void iUser() throws IOException { //用户界面函数
  160.   System.out.println("------------------------------------");
  161.   System.out.print("欢迎" + userInfo[0]);
  162.   if (userInfo[2].equals("1")) {
  163.    System.out.println("会员!");
  164.   } else {
  165.    System.out.println("游客!");
  166.   }
  167.   System.out.println("欢迎使用以下服务:");
  168.   switch (userInfo[2]) {
  169.    case "0":
  170.     System.out.println("1.升级会员服务!");
  171.     System.out.println("2.返回登录界面!");
  172.     System.out.println("3.返回注册界面!");
  173.     System.out.println("4.返回主界面!");
  174.     break;
  175.    case "1":
  176.     System.out.println("1.打印会员信息!");
  177.     System.out.println("2.撤销会员服务!");
  178.     System.out.println("3.返回登录界面!");
  179.     System.out.println("4.返回注册界面!");
  180.     System.out.println("5.返回主界面!");
  181.     break;
  182.   }
  183.   String selectOperater = sc.nextLine() + userInfo[2];
  184.   
  185.   switch (selectOperater) { //通过在用户输入的选项后面加入0或1来加以判断用户是游客还是会员操作的操作
  186.    case "10":
  187.     String securityCode = securityCode() + "";
  188.     System.out.println("------------------------------------");
  189.     System.out.println("请输入验证码确认操作:" + securityCode);
  190.     String inputCode = sc.nextLine();
  191.     if (inputCode.equals(securityCode)) {
  192.      changeVip();
  193.     } else {
  194.      System.out.println("<--------输入的验证码有误!-------->");
  195.      System.out.println("------------------------------------");
  196.      control = 3;
  197.     }
  198.    break;
  199.    case "20":
  200.    case "31":
  201.     control = 2;
  202.    break;
  203.    case "30":
  204.    case "41":
  205.     control = 1;
  206.    break;
  207.    case "40":
  208.    case "51":
  209.     control = 0;
  210.    break;
  211.    case "11":
  212.     printUserInfo();
  213.    break;
  214.    case "21":
  215.     changeVip();
  216.    break;
  217.    default:
  218.     control = 0;
  219.    break;
  220.   }
  221. }

  222. public static void changeVip() { //修改用户会员信息
  223.   StringBuilder sb = new StringBuilder(userList);
  224.   if (userInfo[2].equals("0")) { //如果为0,即游客,则执行
  225.    userInfo[2] = "1";
  226.    int startIndex = userList.indexOf("#" + userInfo[0] + "," + userInfo[1] + ",0#");
  227.    int endIndex = ("#" + userInfo[0] + "," + userInfo[1] + ",0#").length() + startIndex;
  228.    userList = sb.replace(startIndex, endIndex, "#" + userInfo[0] + "," + userInfo[1] + ",1#").toString();
  229.    //userList.replace("#" + userInfo[0] + "," + userInfo[1] + ",0#", "#" + userInfo[0] + "," + userInfo[1] + ",1#");
  230.   } else if (userInfo[2].equals("1")) { //如果为1,即会员,则执行
  231.    userInfo[2] = "0";
  232.    int startIndex = userList.indexOf("#" + userInfo[0] + "," + userInfo[1] + ",1#");
  233.    int endIndex = ("#" + userInfo[0] + "," + userInfo[1] + ",1#").length() + startIndex;
  234.    userList = sb.replace(startIndex, endIndex, "#" + userInfo[0] + "," + userInfo[1] + ",0#").toString();
  235.    //userList.replace("#" + userInfo[0] + "," + userInfo[1] + ",1#", "#" + userInfo[0] + "," + userInfo[1] + ",0#");
  236.   } else {
  237.    control = 0;
  238.    System.out.println("<----------会员操作失败!---------->");
  239.    System.out.println("------------------------------------");
  240.   }
  241. }

  242. public static void printUserInfo() throws IOException { //打印用户信息
  243.   String printUserInfo = "用户帐号:" + userInfo[0] + "\r\n用户密码:" + userInfo[1];
  244.   if (userInfo[2].equals("1")) {
  245.    printUserInfo += "\r\n是否是会员:是";
  246.   } else {
  247.    printUserInfo += "\r\n是否是会员:否";
  248.   }
  249.   FileWriter fw = new FileWriter(userInfo[0] + ".txt");
  250.   fw.write(printUserInfo);
  251.   System.out.println("------------------------------------");
  252.   System.out.println("已完成会员信息打印!");
  253.   fw.close();
  254. }

  255. public static int securityCode() { //获取验证码
  256.   return (int)(Math.random() * 10000);
  257. }
  258. }
复制代码



评分

参与人数 1技术分 +5 黑马币 +3 收起 理由
洋葱头头 + 5 + 3 可以看出来你很用心 写的太棒了 继续努力.

查看全部评分

回复 使用道具 举报
wusiyi 发表于 2016-2-16 12:15
老板,求打赏!!!
目前还没学集合什么的,用的是字符串连接的方法做的。这不是压缩包,将后缀名.zip改 ...

报告老板,有BUG!,用户数量上面的0应当替换成countUser变量。
回复 使用道具 举报
wusiyi 发表于 2016-2-16 12:34
报告老板,有BUG!,用户数量上面的0应当替换成countUser变量。

我不是老板 你下次发代码 用代码勾起来 我帮你排版了
回复 使用道具 举报
洋葱头头 发表于 2016-2-16 12:35
我不是老板 你下次发代码 用代码勾起来 我帮你排版了

我竟不知还有这种功能!附件的格式倒是标准的
回复 使用道具 举报
迫不及待下一期送分题了。。。
回复 使用道具 举报
wusiyi 发表于 2016-2-16 13:11
迫不及待下一期送分题了。。。

这个星期天把
回复 使用道具 举报
初级黑马不能聊天
回复 使用道具 举报
Kudychen 发表于 2016-2-16 15:05
初级黑马不能聊天

聊什么天
回复 使用道具 举报
注释写的少,版主多担待

Test.rar

1.97 KB, 下载次数: 53

点评

已阅 ok  发表于 2016-2-16 19:09

评分

参与人数 1技术分 +5 收起 理由
洋葱头头 + 5

查看全部评分

回复 使用道具 举报
本帖最后由 玉质彼端 于 2016-2-16 21:39 编辑

用了3个多小时。。。 不过我全做好了

weekend test.zip

2.61 KB, 下载次数: 47

点评

已阅 给分了 很棒  发表于 2016-2-16 23:14

评分

参与人数 1技术分 +5 收起 理由
洋葱头头 + 5 赞一个!

查看全部评分

回复 使用道具 举报
玉质彼端 发表于 2016-2-16 21:38
用了3个多小时。。。 不过我全做好了

也不算长把
回复 使用道具 举报
玉质彼端 发表于 2016-2-16 21:38
用了3个多小时。。。 不过我全做好了

等下给你看啊 马上
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马