美文网首页
执行类Start

执行类Start

作者: 张威先森 | 来源:发表于2018-09-21 14:57 被阅读0次

package com.neuedu.manager;

import java.sql.Date;
import java.util.List;
import java.util.Random;
import java.util.Scanner;

/**

  • 主程序类
  • @author Administrator

*/
public class Start {
private static UserInfo dbUser=null;
public static void main(String[] args) {

    TimerUtil.getU();
    Scanner scan=new Scanner(System.in);
    while(true){
        System.out.println("1.注册  2.登录 3.查询个人信息 4.修改密码 5.修改昵称"
                + " 6.查询余额 7.账户充值  8.VIP升级 9.申请解冻 10.查询交易记录  11.退出");
        int num=scan.nextInt();
        
        switch(num){
        case 1:
            regUser();
            break;
        case 2:
            loginUser();
            break;
        case 3:
            findInfo();
            break;
        case 4:
            updatePwd();
            break;
        case 5:
            updateNikename();
            break;
        case 6:
            getBalance();
            break;
        case 7:
            addBalance();
            break;
        case 8:
            setVip();
            break;
        case 9:
            reminfo();
            break;
        case 10:
            findPay();
            break;  
        case 11:
            out();
            break;
        default:
            System.out.println("选项无效...");  
            
        }
    }
}



//选退出后 获取当前时间 将该时间加入userinfo表中
public static void out(){
    UserDao dao=new UserDao();
    dao.putOutTime(dbUser.getUsername());
    dbUser=null;
    
}

//申请解冻
public static void reminfo() {
    System.out.println("请输入需要解冻的用户名");
    Scanner scan=new Scanner(System.in);
    String username=scan.next();
    UserDao dao=new UserDao();
    if(dao.login(username)==null){
        System.out.println("没有该用户");
        return;
    }
    
    if(dao.outTime(username)==0){
        System.out.println("该用户不处于冻结状态,不需要解冻");
        return;
    }else if(dao.outTime(username)==1){
        System.out.println("申请解冻,请输入原密码");
        String a=scan.next();
        if(!a.equals(dbUser.getPassword())){
            System.out.println("原密码有误");
            return;
        }else{
            System.out.println("输入正确");
            dao.updateOutTime(username);
            dbUser.setOuttime(0);
            System.out.println("解冻成功");
        }
        
    }
    
}



//VIP升级方法
public static void setVip() {
    if(dbUser==null){
        System.out.println("请先登录再进行操作");
        return;
    }
    Scanner scan=new Scanner(System.in);
    System.out.println("请输入充值约束   20 RMB/月");
    int num=scan.nextInt();
    UserDao dao=new UserDao();

    boolean flag=dao.enoughMoney(dbUser.getUsername(), num*20);
    //如果为false则说明余额不足
    if(flag==false){
        System.out.println("余额不足请充值后再进行办理");
        return;
    }
    
    //不执行if语句块 则说明余额充足 进行消费 vip增加月数 并且balance减少
    dao.vip(dbUser.getUsername(), num);
    dbUser.setVip(num);
    
    dao.buy(dbUser.getUsername(), num*20);
    dbUser.setBalance(-num*20);
    //将该消费记录加入到userpay表中
    dao.putUserPay(dbUser.getUserid(),-num*20);
    
    
    System.out.println("充值成功");
}

//查询消费记录
public static void findPay(){
    if(dbUser==null){
        System.out.println("请先登录在进行操作");
        return;
    }
    
    UserDao dao=new UserDao();
    List<UserPay> list=dao.getPay(dbUser.getUserid());
    for(UserPay u:list){
        System.out.println(u);
    }
}

//账户充值功能
public static void addBalance() {
    if(dbUser==null){
        System.out.println("请先登录在进行操作");
        return;
    }
    Scanner scan=new Scanner(System.in);
    System.out.println("请输入充值金额");
    double money=scan.nextDouble();
    
    UserDao dao=new UserDao();
    
    //修改表中的余额 balance
    dbUser.setBalance(money);
    dao.putMoney(dbUser.getUsername(), money);
    
    //插入消费记录
    dao.putUserPay(dbUser.getUserid(),money);
    System.out.println("充值成功");
    
}



//查询余额功能
public static void getBalance() {
    if(dbUser==null){
        System.out.println("请先登录在进行操作");
        return;
    }
    UserDao dao=new UserDao();
    System.out.println(dao.findBalance(dbUser.getUsername()));
}


//修改昵称功能
public static void updateNikename() {
    if(dbUser==null){
        System.out.println("请先登录在进行操作");
        return;
    }
    Scanner scan=new Scanner(System.in);
    System.out.println("请输入新昵称");
    String nikename=scan.next();
    
    dbUser.setNikename(nikename);
    UserDao dao=new UserDao();
    dao.updateNikeName(dbUser.getUsername(),nikename);
    
}



//修改密码功能
public static void updatePwd() {
    if(dbUser==null){
        System.out.println("请先登录再进行操作");
        return;
    }
    Scanner scan=new Scanner(System.in);
    System.out.println("请输入原密码");
    String a=scan.next();
    if(!a.equals(dbUser.getPassword())){
        System.out.println("原密码有误");
        return;
    }else{
        System.out.println("输入正确");
    }
    
    System.out.println("请输入新密码");
    String b=scan.next();
    System.out.println("请再次输入新密码");
    String c=scan.next();
    
    if(b.equals(c)&&b.length()>=6&&b.length()<=20){
        System.out.println("修改密码成功");
    }else{
        System.out.println("两次输入密码不一致或密码长度不符合规则");
    }
    
    //修改标志密码
    dbUser.setPassword(b);
    
    //修改表的密码
    UserDao dao=new UserDao();
    dao.updatePwd(dbUser.getUsername(), b);
    
    //重新登录
    System.out.println("请重新登录");
    loginUser();
    
}




//查询个人信息功能
public static void findInfo() {
    if(dbUser==null){
        System.out.println("请先登录在进行操作");
        return;
    }
    
    System.out.println("用户名:  "+dbUser.getUsername()+" 用户密码:  "+dbUser.getPassword()
    +" 昵称:  "+dbUser.getNikename()+" 权限:  "+(dbUser.getVip()==0?"普通用户":"VIP"));
    
    
}



//登录功能
public static void loginUser() {
    //先判断是否已经登录了
    if(dbUser!=null){
        System.out.println("已登录,请误重复操作");
        return;
    }
    Scanner scan=new Scanner(System.in);
    System.out.println("请输入用户名");
    String username=scan.next();
    System.out.println("请输入密码");
    String password=scan.next();
    
    UserDao dao=new UserDao();
    
    //先判断账户是否被冻结
    if(dao.outTime(username)==1){
        System.out.println("该账户被冻结,请解除冻结");
        reminfo();
        return;
    }
    
    UserInfo userinfo=dao.login(username, password);
    
    if(userinfo==null){
        System.out.println("用户名或密码错误");
        return;
    }else{
        System.out.println("登陆成功");
    }
    
    dbUser=userinfo;
}



//注册功能
public static void regUser() {
    Scanner scan=new Scanner(System.in);
    System.out.println("请输入用户名");
    String username=scan.next();
    System.out.println("请输入密码");
    String password=scan.next();
    System.out.println("请输入昵称(随机名称请输入0)");
    String nikename=scan.next();
    
    UserDao dao=new UserDao();
    
    String DBUser=dao.login(username);
    
    if(DBUser!=null){
        System.out.println("用户名重复");
        return;
    }
    
    if(password.length()<6||password.length()>20){
        System.out.println("密码不符合规则");
        return;
    }
    
    
    //获取随机姓名
    if(nikename.equals("0")){
        Random ran=new Random();
        int num=ran.nextInt(9)+1;
        nikename=dao.getNikeName(num);
        dao.putUser(username, password, nikename);
        System.out.println("注册成功");
        return;
    }else{
        dao.putUser(username, password, nikename);
        System.out.println("注册成功");
        return;
    }
    
}

}

相关文章

  • 执行类Start

    package com.neuedu.manager; import java.sql.Date;import j...

  • 多线程

    Thread类(须有start调用run才可启动线程) public void start()使该线程开始执行;J...

  • Java实现多线程的三种方式

    1. 继承Thread类 继承Thread后,调用start()方法就是执行类类中的run()方法,这也是启动...

  • Java杂集-基础

    1、代码执行顺序 有这样两个类:类A: 类B继承自类A 测试: 输出: 2、Thread的run()和start(...

  • java后端面试

    1.StringBoot 启动流程: 1.创建一个StopWatch并执行start方法,这个类主要记录任务的执行...

  • Tomcat的start过程

    Tomcat执行start时序图tomcat-start.png Container组件执行start时序图con...

  • 2019-01-07

    Thread类方法 start();启动,顺序不确定 run();启动后执行的方法 isAlive();是否处于活...

  • Unity3D网络游戏实战(阅读笔记)

    1.继承MonoBehavior的类,类名必须和文件名相同; 2.组件被创建的时候执行Start(); 3.游戏过...

  • 多线程

    NSBlockOperation 需手动执行start方法才会执行,同步执行。 NSBlockOperation ...

  • Scrapy Request和Response相关参数介绍

    Request 部分源码: 如果希望程序执行一开始就发送POST请求,可以重写Spider类的start_requ...

网友评论

      本文标题:执行类Start

      本文链接:https://www.haomeiwen.com/subject/xenanftx.html