import java.util.ArrayList;
public class User {
private int uid;
private String username;
private String password;
private String name;
private String phone;
private String cardId;
private ArrayList<Business> mybusiness;
private int money;
public User() {
}
public User(int uid, String username, String password) {
this.uid = uid;
this.username = username;
this.password = password;
}
public User(int uid, String username, String password, String name, String phone, String cardId, ArrayList<Business> mybusiness, int money) {
this.uid = uid;
this.username = username;
this.password = password;
this.name = name;
this.phone = phone;
this.cardId = cardId;
this.mybusiness = mybusiness;
this.money = money;
}
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getCardId() {
return cardId;
}
public void setCardId(String cardId) {
this.cardId = cardId;
}
public ArrayList<Business> getMybusiness() {
return mybusiness;
}
public void setMybusiness(ArrayList<Business> mybusiness) {
this.mybusiness = mybusiness;
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
@Override
public String toString() {
return "User{" +
"uid=" + uid +
", 用户名='" + username + '\'' +
", 密码='" + password + '\'' +
", 姓名='" + name + '\'' +
", 手机号='" + phone + '\'' +
", 身份证号='" + cardId + '\'' +
", 我的业务=" + mybusiness +
", 余额=" + money +
'}';
}
}
===============类
public class Business {
private int Bid;//业务标号
private String title;//业务标题
private String desc;//描述,详情
private int price;//业务价格
private String Stats;//业务状态1.正常业务0.已经下架业务
@Override
public String toString() {
return "Business{" +
"Bid=" + Bid +
", title='" + title + '\'' +
", desc='" + desc + '\'' +
", price=" + price +
", Stats='" + Stats + '\'' +
'}';
}
public Business(int bid, String title, String desc, int price, String stats) {
Bid = bid;
this.title = title;
this.desc = desc;
this.price = price;
Stats = stats;
}
public int getBid() {
return Bid;
}
public void setBid(int bId) {
this.Bid = bId;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public String getStats() {
return Stats;
}
public void setStats(String status) {
this.Stats = status;
}
}
=========================类
package soso项目;
import java.security.MessageDigest;
public class MD5Util {
public static String getMD5(String str) {
try {
MessageDigest md5 = MessageDigest.getInstance("MD5");
char[] charArray = str.toCharArray();
byte[] byteArray = new byte[charArray.length];
for (int i = 0; i < charArray.length; i++) {
byteArray[i] = (byte) charArray[i];
}
byte[] md5Bytes = md5.digest(byteArray);
StringBuffer hexValue = new StringBuffer();
for (int i = 0; i < md5Bytes.length; i++) {
int val = ((int) md5Bytes[i]) & 0xff;
if (val < 16) {
hexValue.append("0");
}
hexValue.append(Integer.toHexString(val));
}
return hexValue.toString();
} catch (Exception e) {
e.printStackTrace();
return "";
}
}
}
===================
测试类==================
package soso项目;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class soso {
static Scanner sc = new Scanner(System.in);
static List<User> users = new ArrayList<>();
//用户集合
static ArrayList<Business> businesses = new ArrayList<>(); //业务集合
static ArrayList<Business> busines = new ArrayList<>(); //用户的业务集合
static User loginId;
static {
User user1 = new User(0, "admin", "21232f297a57a5a743894a0e4a801fc3");//admin
User user2 = new User(1, "zhangsan", "202cb962ac59075b964b07152d234b70");//123
User user3 = new User(2, "lili", "698d51a19d8a121ce581499d7b701668");//111
users.add(user1);
users.add(user2);
users.add(user3);
Business business1 = new Business(1, "3元百分百包你出金", "想多了还是看你运气 ", 3, "1");
Business business2 = new Business(2, "3元特价统统三块钱", "抽奖中了全场不要钱 ", 3, "1");
Business business3 = new Business(3, "3元买不了吃亏上当", "三块钱你懂我意思吗 ", 3, "0");
businesses.add(business1);
businesses.add(business2);
businesses.add(business3);
}
public static void main(String[] args) {
index();
}
//主页面
private static void index() {
System.out.println("--欢迎来到soso移动商城--");
System.out.println("--1:注册--");
System.out.println("--2:登录--");
System.out.println("--0:退出--");
System.out.println("--请选择:--");
String num = sc.next();
switch (num) {
case "1":
register();
break;
case "2":
login();
break;
case "0":
System.out.println("谢谢使用,程序退出");
System.exit(0);
break;
default:
System.out.println("输入有误,请重新输入");
index();
}
}
//登录 //==============================================================分隔符========================================================
private static void login() {
System.out.println("输入用户名:");
String myName = sc.next();
System.out.println("输入密码:");
String pwd = sc.next();
String myPwd = MD5Util.getMD5(pwd);
boolean volidLogin = volidLogin(myName, myPwd);//登录判断的方法
if (volidLogin) {
String code = getcode();
System.out.println("请输入验证码" + code);
String ucode = sc.next();
if (ucode.equals(code)) {
if ("admin".equals(myName)) {
adminview();
} else {
for (User user : users) {
if (user.getUsername().equals(myName)) {
loginId = user;
// System.out.println(loginUser);
customSystem();
}
}
}
} else {
System.out.println("验证码错误");
index();
}
} else {
System.out.println("登录失败");
index();
}
}
//==============================================================分隔符========================================================
//用户管理的方法
private static void customSystem() {
System.out.println("***欢迎你" + loginId.getUsername() + "用户***");
System.out.println("1. 查看个人信息");
System.out.println("2. 修改个人信息");
System.out.println("3. 充值");
System.out.println("4. 查看我的业务");
System.out.println("5. 查看业务大厅");
System.out.println("6. 业务办理");
System.out.println("7. 业务终止");
System.out.println("请选择:");
String num = sc.next();
switch (num) {
case "1":
lookInformation();
break;
case "2":
alterInformation();
break;
case "3":
chargemani();
break;
case "4":
lookbusiness();
break;
case "5":
businessHall222();
break;
case "6":
handlingbusiness();
break;
case "7":
ceasepBusiness();
break;
default:
System.out.println("输入有问题,重新输入");
customSystem();
}
}
//返回的方法
public static void goback1() { //返回的方法
System.out.println("1.返回 ,0.程序退出");
String num = sc.next();
switch (num) {
case "1":
customSystem();
break;
case "0":
System.out.println("程序以退出");
System.exit(0);
default:
System.out.println("输入有误重新输入");
goback1();
}
}
//111111111111111111查看个人信息的方法
private static void lookInformation() {
System.out.println(loginId.toString());
goback1();
}
//2222222222222修改个人信息
private static void alterInformation() {
//先输入一次原密码 然后在输入两次新密码 如果一致的话则成功修改 并返回一下修改后的信息
System.out.println("请输入原来的密码:");
String oldpwd = sc.next();
String md5oldpwd = MD5Util.getMD5(oldpwd); //获取加密文件------比较原密码
if (loginId.getPassword().equals(md5oldpwd)) { //加密文件对比原加密密码密码
System.out.println("请输入你的新密码:");
String newpwd1 = sc.next();
System.out.println("请确定你所输入的新密码:");
String newpwd2 = sc.next();
//两次输入一致可以修改掉原来的密码 先进行加密处理
if (newpwd1.equals(newpwd2)) {
String md5newpwd = MD5Util.getMD5(newpwd1); //获取加密文件------比较原密码
loginId.setPassword(md5newpwd);
System.out.println(loginId);
} else {
System.out.println("两次密码需要一致");
}
} else {
System.out.println("原密码输入错误");
}
goback1();
}
//333333333333333333333333 充钱
private static void chargemani() {
try {
System.out.println("请输入你要氪多少(只能是1-200之间):");
int mani = sc.nextInt();
if (mani <= 200 && mani >= 1) {
loginId.setMoney(mani);
System.out.println(loginId);
goback1();
}
} catch (Exception e) {
System.out.println("不能输入字母或其他");
sc.next();
chargemani();
}
}
// 4444444444444444444查看已办理业务
private static void lookbusiness() {
loginId.setMybusiness(busines);
busines = loginId.getMybusiness();
if (busines == null || busines.size()==0) {
System.out.println("还没有办理过业务");
} else {
System.out.println(loginId.getMybusiness());
}
goback1();
}
//555555555555555555555555查看业务
private static void businessHall222() {
System.out.println("业务编号\t业务标题\t\t\t业务描述\t\t业务价格\t\t业务状态");
for (Business business : businesses) {
if (business.getStats().equals("1")) {
System.out.println(business.getBid() + "\t" + business.getTitle() + "\t" + business.getDesc() + "\t" + business.getPrice() + "\t" +
business.getStats()); //获取每一个可以查看的业务
}
}
goback1();
}
//66666666666666666666666666业务办理
private static void handlingbusiness() {
//写给if判断钱够不够
businessHall1();
boolean fl = false;
System.out.println("请则你要办理的业务:");
int num = sc.nextInt();
Business business =null;//用来接收b
for (Business b : businesses) {
if (num == b.getBid() && b.getStats().equals("1")) {
fl =true; //办理成功
business=b;
}
}
if (fl){
//写扣钱
int price = business.getPrice();
int mani =loginId.getMoney();
if (price<mani){
busines.add(business);
loginId.setMybusiness(busines);
}else {
System.out.println("钱不够");
chargemani();
}
System.out.println("办理成功");
}else {
System.out.println("办理失败");
}
goback1();
}
public static void businessHall1() {
System.out.println("业务编号\t业务标题\t\t\t业务描述\t\t业务价格\t\t业务状态");
for (Business business : businesses) {
if (business.getStats().equals("1")) {
System.out.println(business.getBid() + "\t" + business.getTitle() + "\t" + business.getDesc() + "\t" + business.getPrice() + "\t" +
business.getStats()); //获取每一个可以查看的业务
}
}
}
//7777777777777777777777777业务终止
private static void ceasepBusiness() {
System.out.println("已有业务");
System.out.println(loginId.getMybusiness());
try {
if (busines == null) {
System.out.println("你没有办理过业务");
} else {
System.out.println("请输入终止业务id:");
int num = sc.nextInt();
boolean flag = false;
if (busines.size() != 0) {
for (Business b : busines) {
if (num == b.getBid()) {
busines.remove(b);
flag = true;
break;
}
}
if (flag) {
System.out.println("删除成功");
} else {
System.out.println("删除失败 需要终止的id不存在");
}
} else {
System.out.println("还没有办理过业务");
}
goback1();
}
} catch (Exception e) {
System.out.println("请输入正确的业务id不能输入字母或者其他");
sc.next();
ceasepBusiness();
}
}
//管理员方法admin //=========================================================分隔符========================================================
private static void adminview() {
System.out.println("欢迎你:admin");
System.out.println("1: 查看所有用户信息");
System.out.println("2: 展示现有业务");
System.out.println("3: 添加新业务");
System.out.println("4 :删除业务");
System.out.println("5: 修改业务价格");
System.out.println("6: 发布业务");
System.out.println("请选择:");
String num = sc.next();
switch (num) {
case "1":
userinfo();
break;
case "2":
businessHall();
break;
case "3":
addBusiness();
break;
case "4":
removeBusiness();
break;
case "5":
modifyThePrice();
break;
case "6":
publishBusines();
break;
default:
System.out.println("输入有问题,重新输入");
adminview();
}
}
//给添加业务编号的方法
public static int getUserId2() {
Business business = businesses.get(businesses.size() - 1);//获取集合 busi最后一个对象
int uid = business.getBid();
uid++;
return uid;
}
//结束时是不是返回的方法
public static void goback() { //返回的方法
System.out.println("1.返回 ,0.程序退出");
String num = sc.next();
switch (num) {
case "1":
adminview();
break;
case "0":
System.out.println("程序以退出");
System.exit(0);
default:
System.out.println("输入有误重新输入");
goback();
}
}
//11111查看用户信息
private static void userinfo() {
System.out.println(businesses);
goback();
}
//222222查看现有业务
private static void businessHall() {
System.out.println("业务编号\t业务标题\t\t\t业务描述\t\t业务价格\t\t业务状态");
for (Business business : businesses) {
if (business.getStats().equals("1")) {
System.out.println(business.getBid() + "\t" + business.getTitle() + "\t" + business.getDesc() + "\t" + business.getPrice() + "\t" +
business.getStats()); //获取每一个可以查看的业务
}
}
goback();
}
//333333添加新业务
private static void addBusiness() {
try {
int uid = getUserId2();
System.out.println("请输入业务标题:");
String titles = sc.next();
System.out.println("请输入业务描述:");
String descs = sc.next();
System.out.println("请输入业务价格:");
int prices = sc.nextInt();
Business business = new Business(uid, titles, descs, prices, "1");
businesses.add(business);
System.out.println(businesses);
goback();
} catch (Exception e) {
System.out.println("请价格不要输入字母 ");
sc.next();
addBusiness();
}
}
//444444删除业务 变成0
private static void removeBusiness() {
try {
System.out.println("请输入需要下架业务ID:");
int id = sc.nextInt();
System.out.println("你确定要下架此业务吗 “n”");//确定是否下架 n确定
String flag = sc.next();
boolean flag1 = false;
if ("n".equals(flag)) { //如果用户输入n遍历然后找到id的那个 把stats改成0
for (Business b : businesses) {
if (id == b.getBid()) {
b.setStats("0");
flag1 = true;
}
}
if (flag1) {
System.out.println("业务下架成功");
} else {
System.out.println("业务编号未被找到");
}
} else {
System.out.println("你取消了下架业务");
}
goback();
} catch (Exception e) {
System.out.println("请输入正确的业务id不能输入字母或者其他");
sc.next();
removeBusiness();
}
}
//5555555555 改价格的价格
private static void modifyThePrice() {
try {
System.out.println(businesses);
System.out.println("请选择你要修改的价格编号");
int id = sc.nextInt();
//首先说出原来编号的价格
for (Business b : businesses) {
if (id == b.getBid()) {
System.out.println("原来的价格是:" + b.getPrice());
break;
}
}
//让用户输入修改价格 遍历数组 找到id的那个价价格 用set进行赋值
System.out.println("请输入修改价格");
int price = sc.nextInt();
if (price < 100 && price > 0) {
for (Business b : businesses) {
if (id == b.getBid()) {
b.setPrice(price);
}
}
} else {
System.out.println("请输入正确的价格0-100之间");
}
goback();
} catch (Exception e) {
System.out.println("不能输入字母或者其他");
sc.next();
modifyThePrice();
}
}
//6666666 发布的方法
private static void publishBusines() {
System.out.println(businesses);
System.out.println("编号");
for (Business business : businesses) {
if (business.getStats().equals("0")) {
System.out.println(business.getBid() + "\t" + business.getTitle() + "\t" + business.getDesc() + "\t" + business.getPrice() + "\t" +
business.getStats());
}
}
boolean f = false;
System.out.println("请选择你要上架的编号");
int id = sc.nextInt();
for (Business b : businesses) {
if (id == b.getBid()) {
b.setStats("1");
f = true;
}
}
if (f) {
System.out.println("上架成功");
} else {
System.out.println("你输入的编号没有找到 请输入正确编号");
}
goback();
}
//登录判断的方法
private static boolean volidLogin(String myName, String myPwd) {
boolean flag = false;
for (User user : users) {
if (user.getUsername().equals(myName) && user.getPassword().equals(myPwd)) {
flag = true;
break;
}
}
return flag;
}
// //==============================================================分隔符========================================================
//注册 //==============================================================分隔符========================================================
private static void register() {
System.out.println("请输入你要注册的用户名");
String uname = sc.next();
System.out.println("请输入你要注册的密码");
String pwd1 = sc.next();
System.out.println("请再次输入你要注册的密码");
String pwd2 = sc.next();
boolean n = volidUsername(uname);//获取用户方法的 boolean是不是ture;
boolean v = volidpwd(pwd1, pwd2);//获取密码方法的 boolean是不是ture;
// System.out.println("用户"+n);
// System.out.println("密码"+v);
if (v && n) {//验证用户名和密码后 执行验证码
String code = getcode();
System.out.println("请输入验证码" + code);
String ucode = sc.next();
if (ucode.equals(code)) {
System.out.println("恭喜你!!注册成功了");
String md5pwd1 = MD5Util.getMD5(pwd1);//获取密码的md5解析
int userId = getUserId();//获取主键0123
User user4 = new User(userId, uname, md5pwd1);
users.add(user4);
System.out.println(users);
index();
} else {
System.out.println("验证码错误");
index();
}
} else {
System.out.println("注册失败返回");
index();
}
}
//编号的方法
public static int getUserId() {//6.生成用户ID其实就是求最大值,list,最大值在最后
User user = users.get(users.size() - 1);//从集合中获取最后一个用户对象
int uid = user.getUid();
uid++;//自增1
return uid;
}
//验证码的方法
private static String getcode() {
String random = Math.random() + "";
return random.substring(random.length() - 4);
}
//验证密码的方法
private static boolean volidpwd(String pwd1, String pwd2) {
boolean flag = false;
if (pwd1.equals(pwd2) && pwd1.length() >= 4 && pwd1.length() <= 10) {
flag = true;
System.out.println("密码符合");
}
return flag;
}
//判断用户是否可以注册的方法
private static boolean volidUsername(String name) {
boolean flag = true;
//长度
if (name.length() >= 4 && name.length() <= 10) {
//有没有重复
for (User u : users) {
//循环集合所有的username 和输入的name比较
if (name.equals(u.getUsername())) {
System.out.println("用户名重复");
flag = false;
break;
}
}
} else {
System.out.println("长度不对");
flag = false;//长度不满足就直接false
}
return flag;
}
}
soso移动营业厅,项目作业 面向对象思维
最新推荐文章于 2024-01-16 09:48:22 发布