该项目的目的用于二手车交易
运行开始系统看到主菜单:
1.登陆
2.注册:用户名不能重复
3.最新二手车信息
4.搜索车辆
*5.对比车辆
*6.我的收藏
7.后台管理
8.退出系统
项目要求:
1)选择登陆要求输入用户名密码和验证码,输入错误要求给出相应的提示信息
2)选择注册要求输入用户名,密码,确认密码,邮箱,手机号,注册日期,如果用户名或邮箱或手机号已被使用,则该用户注册失败,也应给与相应的提示信息,邮箱、手机号皆需要验证规则
3)选择最新二手车信息,要求显示最新发布的10辆二手车的信息内容,显示的内容包含车辆的品牌,车型,里程数,价格
呈现的内容如下:
品牌 车型 里程数 价格 发布时间
1.大众 朗逸 54000 75000 2014-7-5
2.
3.
.....
10.
4)以上看到的十辆车的信息可以进行选择后显示车辆的详细信息,详细包含之前呈现的信息以及排量,上牌的时间,离合器类型,同时在信息的下方呈现如下菜单:
1.收藏(必须登陆后才能进行收藏)
2.加入对比
3.购买(只能在登陆后才能看到该菜单项)
4.返回主菜单
5)选择收藏,可以将该车辆收藏至登陆人的"我的收藏",当用户选择主菜单中的"我的收藏"选项时,可以查看登陆人收藏的所有车辆信息,每个人最多只能收藏10辆车,如果收藏第11辆车的时候第一辆移除收藏列表
6)选择加入对比,可以将车辆加入对比列表,对比列表最多只能存储4辆车的信息,如果对比车辆已满,则给出提示信息,同时可以选择是否要将页面跳转至"对比车辆"菜单项
7)选择购买,可以支付登陆人的金额,如果金额不够,则购买失败,否则交易成功,打印凭条
8)选择搜索车辆进入如下菜单:
1.根据品牌搜索
2.根据价格搜索
3.根据上牌日期搜索
9)选择根据品牌搜索,要求呈现当前二手车系统的所有品牌信息,显示如下:
1.大众
2.福特
3.斯柯达
.......
10)选择品牌后,要求呈现该品牌所对应的所有车型,如选择了1后,显示如下:
1.桑塔纳
2.朗逸
3.速腾
4.帕萨特
.......
11)选择车型后查看该车辆的详细信息,显示对应品牌车型所发布的所有二手车的信息,信息呈现的内容同3),可以对车辆进行选择,该功能同4)
12)选择价格搜索,呈现如下菜单:
1. 5万以下
2. 5-10万
3. 10-15万
4. 15万以上
13)选择任意项搜索出对应价格范围的车辆信息,信息呈现内容同3),可以对车辆进行选择,该功能同4)
14)选择上牌日期搜索,输入起始年份和月份以及结束的年份和月份,可以显示对应时间范围中的所有二手车信息,内容呈现同3),可以对车辆进行选择,功能同4)
15)选择对比车辆,呈现如下菜单:
1.查看对比信息
2.删除对比车辆
3.返回上一级菜单
16).选择查看对比信息,可以将之前加入对比的车辆信息进行对比(如果只有一辆车则无法参与对比),对比信息如下:
品牌 雪佛兰 大众
车型 科鲁兹 朗逸
价格 65000 75000
排量 1.6 1.6
里程数 32000 23000
离合器 自动挡 手自一体
上牌时间
返回上一个菜单
17)选择删除对比车辆,需要先显示对比列表中的车辆品牌和车型,选择要删除的车辆,进行删除(删除操作时要给出提示信息)
18)选择我的收藏,可以查看收藏的车辆信息,内容呈现同3),可以选择查看收藏车辆的详细信息,功能同4)
19)选择后台管理,可以呈现如下菜单:
1.品牌管理
2.车型管理
3.发布车辆信息
20)选择品牌管理,可以添加品牌信息
21)选择车型管理,首先呈现所有的品牌信息,选择品牌后呈现如下菜单:
1.添加车型
2.删除车型
22)选择添加车型,可以输入车型名称并将该车型添加至对应的品牌中
23)选择删除车型,显示当前品牌下所有的对应的车型,选择车型后可以删除该车型(该车型对应的二手车都应删除):收藏夹,对比列表中的该车型的车都应该被删除
24)选择发布车辆信息,要求输入车辆的详细信息(要求品牌和车型是通过选择获取的,其余直接键盘输入获取)同时自动根据当前系统时间记录发布车辆的时间
要求:1.分层设计
2.使用单例模式封装数据类
3.Dao层不可出现于用户交互的代码,如输入或者输入等
4.在合适的地方使用try..catch进行异常处理
****5.在合适的地方使用log4j记录日志:记录在文件中
6.用户输入信息必须进行合理性验证
7.进行增删改操作的最后,必须有确认步骤
8.输出中不能有null,false,true等专业词汇
9.程序不能出异常,不能非法退出
二、代码实现 1.Dao
1.
package dao;
import function.vehicle;
import entity.User;
import entity.basepinpai;
import entity.car;
import java.util.*;
import java.util.concurrent.CopyOnWriteArrayList;
public class carDao {
List listcollcet= collection.getInstance();
List listcar = carDB.getInstance();
List listuser = UserDB.getInstance();
Listlistjiage=jiageDB.getInstance();
List listpinpai = pinpaiDB.getInstance1();
List listchexing = pinpaiDB.getInstance2();
List listfuhe=pinpaiDB.getInstance3();
List listcompare= comparation.getInstance();
public int findindex(String name) {
for (int i = 0; i < listuser.size(); i++) {
if (listuser.get(i).getName().equals(name))
return i;
}
return 0;
}
public int findcarindex(String chexing){
for(int i=0;i10){
listuser.get(new vehicle().denglu()).collcet.remove(0);
}
for(int i=0;i4){
listcompare.remove(0);
}for(int i=0;i= min && listcar.get(i).jiage <= max) {
listjiage.add(listcar.get(i));
}
}
}
public void pinpaichexing(String pinpai){
listfuhe.clear();
for(int i=0;i dellist(List list,String pinpai){
List listTemp = new CopyOnWriteArrayList();
for(int i=0;i list,String chexing){
for (int i = list.size() - 1; i >=0 ; i--) {
if(list.get(i).getChexing().equals(chexing))
list.remove(i);
}
}
public void delcar(String chexing,List list){
for (int i = listcar.size() - 1; i >=0 ; i--) {
if(listcar.get(i).getChexing().equals(chexing))
list.remove(i);
}
}
public void delcompare(String chexing) {
for (int i = listcompare.size() - 1; i >= 0; i--) {
if (listcompare.get(i).getChexing().equals(chexing))
listcompare.remove(i);
}
}
public void delcollcet(String chexing,List list) {
for (int i = listuser.get(new vehicle().denglu()).collcet.size() - 1; i >= 0; i--) {
if (listuser.get(new vehicle().denglu()).collcet.get(i).getChexing().equals(chexing))
listuser.get(new vehicle().denglu()).collcet.remove(i);
}
}
public void addchexing(int i,String chexing){
listchexing.add(new basepinpai(listpinpai.get(i).getPinpai(),chexing));
}
public boolean belongCalendar(Date time, Date from, Date to) {
Calendar date = Calendar.getInstance();
date.setTime(time);
Calendar after = Calendar.getInstance();
after.setTime(from);
Calendar before = Calendar.getInstance();
before.setTime(to);
if (date.after(after) && date.before(before)) {
return true;
} else {
return false;
}
}
}
2.
package dao;
import entity.User;
import entity.car;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
public class carDB {
private static final List carlist=new CopyOnWriteArrayList();
private carDB(){
}
// 初始化数据源
static {
carlist.add(new car("大众", "朗逸", 54000, 75000, "2014-07-05",
1, "2015-01-01", "自动挡"));
carlist.add(new car("大众", "速腾", 54000, 80000, "2014-03-01",
1, "2015-06-05", "手动一体"));
carlist.add(new car("大众", "帕萨特", 54000, 60000, "2014-09-05",
1, "2016-01-22", "自动挡"));
carlist.add(new car("福特", "金牛座", 54000, 140000, "2014-11-05",
1, "2017-06-19", "手动一体"));
carlist.add(new car("福特", "锐际", 54000, 170000, "2014-02-05",
1, "2014-01-16", "自动挡"));
carlist.add(new car("斯柯达", "明锐", 54000, 110000, "2014-08-05",
1, "2011-03-15", "自动挡"));
carlist.add(new car("斯柯达", "速派", 54000, 210000, "2014-02-05",
1, "2013-07-31", "手动一体"));
carlist.add(new car("大众", "桑塔纳", 54000, 49000, "2014-01-05",
1, "2016-11-01", "手动一体"));
carlist.add(new car("福特", "探险者", 54000, 115000, "2014-09-05",
1, "2012-09-27", "自动挡"));
carlist.add(new car("福特", "福克斯", 54000, 38000, "2014-11-05",
1, "2018-03-12", "手动一体"));
carlist.add(new car("福特", "锐界", 54000, 111000, "2014-04-05",
1, "2017-12-25", "自动挡"));
carlist.add(new car("斯柯达", "速尊", 54000, 21000, "2014-12-05",
1, "2015-04-16", "手动一体"));
carlist.add(new car("斯柯达", "柯迪亚克", 54000, 98000, "2014-09-05",
1, "2014-10-05", "自动挡"));
}
// 返回数据主体
public static List getInstance(){
return carlist;
}
}
3.
package dao;
import entity.car;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
public class collection {
private static final List collectlist=new CopyOnWriteArrayList();
private collection(){}
static {
}
public static List getInstance(){return collectlist;}
}
4.
package dao;
import entity.car;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
public class comparation {
private static final List comparelist=new CopyOnWriteArrayList();
private comparation(){}
static {
}
public static List getInstance(){return comparelist;}
}
5
package dao;
import entity.car;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
public class dateDB {
private static final List datelist=new CopyOnWriteArrayList();
private dateDB(){}
static {
}
public static List getInstance(){
return datelist;
}
}
6
package dao;
import entity.User;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
public class iflogin {
private static final List loginlist=new CopyOnWriteArrayList();
private iflogin(){};
static {loginlist.add(0);
loginlist.add(0);
loginlist.add(0);
}
public static List getInstance(){
return loginlist;
}
}
7
package dao;
import entity.car;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
public class jiageDB {
private static final List jiagelist=new CopyOnWriteArrayList();
private jiageDB(){}
static {
}
public static List getInstance(){
return jiagelist;
}
}
8
package dao;
import entity.basepinpai;
import entity.car;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
public class pinpaiDB {
private static final List basepinpailist=new CopyOnWriteArrayList();
private static final List basechexinglist=new CopyOnWriteArrayList();
private static final List pinpaichexinglist=new CopyOnWriteArrayList();
private pinpaiDB(){}
static {
basechexinglist.add(new basepinpai("大众","朗逸"));
basechexinglist.add(new basepinpai("大众","速腾"));
basechexinglist.add(new basepinpai("大众","帕萨特"));
basechexinglist.add(new basepinpai("大众","桑塔纳"));
basechexinglist.add(new basepinpai("福特","金牛座"));
basechexinglist.add(new basepinpai("福特","锐际"));
basechexinglist.add(new basepinpai("福特","探险者"));
basechexinglist.add(new basepinpai("福特","福克斯"));
basechexinglist.add(new basepinpai("福特","锐界"));
basechexinglist.add(new basepinpai("斯柯达","明锐"));
basechexinglist.add(new basepinpai("斯柯达","速派"));
basechexinglist.add(new basepinpai("斯柯达","速尊"));
basechexinglist.add(new basepinpai("斯柯达","柯迪亚克"));
basepinpailist.add(new basepinpai("大众",""));
basepinpailist.add(new basepinpai("福特",""));
basepinpailist.add(new basepinpai("斯柯达",""));
}
public static List getInstance1(){
return basepinpailist;
}
public static ListgetInstance2(){
return basechexinglist;
}
public static ListgetInstance3(){return pinpaichexinglist;}
}
9
package dao;
import entity.User;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Random;
public class UserDao {
List list= UserDB.getInstance();
List listlogin= iflogin.getInstance();
public int addUser(User user){
list.add(user);
return 0;
}
public boolean checklogin(){
for(int i=0;i=6&&code.length()<=10){
return code;
}else return "0";
}
public boolean againcode(String code,String againcode){
if(code.equals(againcode)) return true;
else return false;
}
public boolean checkmail(String str) {
int flag = 0;
if (str.contains("@") && str.contains(".") && !str.startsWith("@") && !str.endsWith(".")) {
if (str.indexOf(".") - str.indexOf("@") > 1 && str.indexOf("@") == str.lastIndexOf("@") && str.indexOf(".") == str.lastIndexOf(".")) {
if (str.endsWith("cn") || str.endsWith("com")) {
flag = 1;
}
}
}
if (flag == 1) return true;
else return false;
}
public boolean checkphone(String str1){
boolean boo1 = false;
if(str1.startsWith("1")&&str1.length()==11) {
boo1=true;
}
return boo1;
}
public String rdate(){
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");
return df.format(new Date());
}
public String vercode(){
String base = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
StringBuffer sb = new StringBuffer() ;
Random rd = new Random();
for (int i = 0; i < 4; i++) {
int start = rd.nextInt(base.length());
String a = base.substring(start,start+1);
sb.append(a);
}
return sb.toString();
}
public User findByName(String name){
for(User user:list){
if (user.name.equals(name)){
return user;
}
}
return null;
}
public boolean checkUserName(String name){
boolean flag = false;
for(User user:list){
if (user.name.equals(name)){
flag=true;
}
}
return flag;
}
public boolean checkUserPassword(String userName,String userPassword){
boolean flag = false;
for (int i = 0; i < list.size(); i++) {
if(list.get(i).getName().equals(userName)&&list.get(i).getCode().equals(userPassword)){
flag = true;
}
}
return flag;
}
}
10
package dao;
import entity.User;
import entity.car;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
//
public class UserDB {
// 唯一数据源
private static final List userlist=new CopyOnWriteArrayList();
private UserDB(){
}
// 初始化数据源
static {
List list1=new CopyOnWriteArrayList();
List list2=new CopyOnWriteArrayList();
userlist.add(new User(0,"xxxxxxx","123456","100006@qq.com","12345678901","2021.12.27",list2));
userlist.add(new User(1,"manager","123456","100006@qq.com","12345678901","2021.12.27",list1 ));
userlist.add(new User(0,"test","123456","100006@qq.com","12345678901","2021.12.27",list2));
}
// 返回数据主体
public static List getInstance(){
return userlist;
}
}
2.entity
1
package entity;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
public class basepinpai {
String chexing;
String pinpai;
public String getChexing() {
return chexing;
}
public void setChexing(String chexing) {
this.chexing = chexing;
}
public String getPinpai() {
return pinpai;
}
public void setPinpai(String pinpai) {
this.pinpai = pinpai;
}
public basepinpai(String pinpai,String chexing) {
this.pinpai = pinpai;
this.chexing=chexing;
}
public basepinpai(String pinpai){
this.pinpai=pinpai;
}
}
2
public String pinpai;
public String chexing;
public int lichen;
public int jiage;
public String fabudate;
public int pailiang;
public String shangpaidate;
public String liheqi;
DecimalFormat df = new DecimalFormat("0.00");
SimpleDateFormat myFmt2 = new SimpleDateFormat("yyyy-MM-dd");
public String getPinpai() {
return pinpai;
}
public void setPinpai(String pinpai) {
this.pinpai = pinpai;
}
public String getChexing() {
return chexing;
}
public void setChexing(String chexing) {
this.chexing = chexing;
}
public int getLichen() {
return lichen;
}
public void setLichen(int lichen) {
this.lichen = lichen;
}
public String getJiage() {
return df.format(jiage);
}
public void setJiage(int jiage) {
this.jiage = jiage;
}
public String getFabudate() {
return fabudate;
}
public void setFabudate(String fabudate) {
this.fabudate = fabudate;
}
public int getPailiang() {
return pailiang;
}
public void setPailiang(int pailiang) {
this.pailiang = pailiang;
}
public Date getShangpaidate() {
Date spdate=null;
try {
spdate = myFmt2.parse(shangpaidate);
} catch (ParseException e) {
e.printStackTrace();
}
return spdate;
}
public void setShangpaidate(String shangpaidate) {
this.shangpaidate = myFmt2.format(shangpaidate);
}
public String getLiheqi() {
return liheqi;
}
public void setLiheqi(String liheqi) {
this.liheqi = liheqi;
}
public car(String pinpai, String chexing, int lichen, int jiage, String fabudate, int pailiang, String shangpaidate, String liheqi) {
this.pinpai = pinpai;
this.chexing = chexing;
this.lichen = lichen;
this.jiage = jiage;
this.fabudate = fabudate;
this.pailiang = pailiang;
this.shangpaidate = shangpaidate;
this.liheqi = liheqi;
}
public String toString2() {
return pinpai+" "+chexing+" "+lichen+" "+jiage+" "+fabudate;
}
public String toString1() {
return pinpai+" "+chexing+" "+lichen+" "+jiage+" "+shangpaidate;
}
public String toString4(){return pinpai+" "+chexing;}
public String toString(){
return "品牌:"+pinpai+" 车型: "+chexing+" 里程数: "+lichen+" 价格: "+jiage+" 发布日期: "+fabudate
+" 排量:"+pailiang+" 上牌日期:"+shangpaidate+" 离合器类型:"+liheqi;
}
public String toString3(){return "商品:"+pinpai+" "+chexing+" 价格为"+getJiage()+" ";
}
3
package entity;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
public class futechexing {private static final List futechexinglist=new CopyOnWriteArrayList();
private futechexing(){}
static {
futechexinglist.add("金牛座");
futechexinglist.add("锐际");
futechexinglist.add("探险者");
futechexinglist.add("福克斯");
futechexinglist.add("锐界");
}
public static List getInstance(){
return futechexinglist;
}
}
4
package entity;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
public class sikedachexing {
private static final List sikedachexinglist=new CopyOnWriteArrayList();
private sikedachexing(){}
static {
sikedachexinglist.add("明锐");
sikedachexinglist.add("速派");
sikedachexinglist.add("速尊");
sikedachexinglist.add("柯迪亚克");
}
public static List getInstance(){
return sikedachexinglist;
}
}
5
package entity;
import java.util.List;
public class User {
public String name;
public String code;
public String mail;
public String mobile;
public String zhucedate;
public List collcet;
public int type;
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getMail() {
return mail;
}
public void setMail(String mail) {
this.mail = mail;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public String getZhucedate() {
return zhucedate;
}
public void setZhucedate(String zhucedate) {
this.zhucedate = zhucedate;
}
public List getCollcet() {
return collcet;
}
public void setCollcet(List collcet) {
this.collcet =collcet;
}
public User(){};
public User(int type,String name, String code, String mail, String mobile, String zhucedate,List collcet){
this.name=name;
this.code=code;
this.mail=mail;
this.mobile=mobile;
this.zhucedate=zhucedate;
this.collcet=collcet;
this.type=type;
}
public String toString(){
return "账户类型:"+getType()+" 用户名:"+getName()+" 密码:"+getCode()+ " 邮箱:"+getMail()+" 手机号:"+getMobile()+" 注册时间为:"+getZhucedate();
}
}
3.function
1
package function;
import dao.comparation;
import entity.car;
import test.maintest;
import java.util.List;
import java.util.Scanner;
public class compare {
List listcompare= comparation.getInstance();
Scanner sc=new Scanner(System.in);
public void choose(){
System.out.println("请选择您的操作:n" +
"1.查看对比信息n" +
"2.删除对比车辆n" +
"3.返回上一级菜单");
int p=sc.nextInt();
if(p==1) see();
else if (p==2) del();
else if(p==3) maintest.getInstance().index();
}
private void del() {
if(listcompare.size()<1){
System.out.println("对比列表中无车辆,无法进行删除,请重新选择操作");
choose();
}
else {
for(int i=0;i0&&p<=listcompare.size()){
listcompare.remove(p-1);
System.out.println("删除成功!自动返回上一级菜单");
choose();
}
}
}
private void see() {
if (listcompare.size()<2){
System.out.println("未满两辆车,无法对比,请重新选择操作");choose();}
else {
System.out.print("品牌 ");
for(int i=0;i
2
package function;
import dao.*;
import entity.User;
import test.maintest;
import java.util.List;
import java.util.Scanner;
public class login {
List list = UserDB.getInstance();
List listlogin= iflogin.getInstance();
Scanner scan = new Scanner(System.in);
public void checkUserName() {
if(new UserDao().checklogin()) {
System.out.println("请输入用户名:");
String userName = scan.next();
if (userName.equals("0")) {
System.out.println("谢谢使用!再见!");
} else if (new UserDao().checkUserName(userName)) {
System.out.println("请输入密码!---0键退出");
checkUserPassword(userName);
} else {
System.out.println("用户名输入有误!请重新输入!------0键退出");
checkUserName();
}
}
else {
System.out.println("已有用户正在登陆,请勿重复登录!已返回主菜单!");
maintest.getInstance().index();
}
}
public void checkUserPassword(String name) {
String userPassword = scan.next();
if (userPassword.equals("0")) {
System.out.println("谢谢使用!再见!");
} else if (new UserDao().checkUserPassword(name, userPassword)) {
System.out.println("请输入以下验证码(不区分大小写)!");
checkVercode(name);
} else {
System.out.println("密码错误!请重新输入————");
checkUserPassword(name);
}
}
public void checkVercode(String name) {
String a = new UserDao().vercode();
System.out.println("您的验证码是: " + a + " ");
String v = scan.next();
if (v.equals(a)) {
System.out.println("登陆成功!已返回主界面!");
int indext=new carDao().findindex(name);
listlogin.set(indext,1);
maintest.getInstance().index();
} else {
System.out.println("验证码输入错误,请再试一次!");
checkVercode(name);
}
}
public int index(String name){
return new carDao().findindex(name);
}
}
3
package function;
import dao.*;
import entity.User;
import entity.basepinpai;
import entity.car;
import test.maintest;
import java.util.List;
import java.util.Scanner;
public class manage {
List listcar = carDB.getInstance();
List listpinpai = pinpaiDB.getInstance1();
List listchexing = pinpaiDB.getInstance2();
List listuser = UserDB.getInstance();
List listlogin= iflogin.getInstance();
Scanner sc=new Scanner(System.in);
public void carmanage() {
if (listuser.get(new vehicle().denglu()).getType()==1) {
System.out.println("$$$$$$$$$$$二手车管理系统$$$$$$$$$$$$n1.品牌管理n2.车型管理n3.发布车辆信息n其余任意数值返回主菜单");
int t1=sc.nextInt();
if(t1==1)pinpaimanage();
else if (t1==2)allchexing();
else if (t1==3){
fabu();
}
else maintest.getInstance().index();
}
else {
System.out.println("您不是管理员身份,无法管理。已返回主菜单!");
maintest.getInstance().index();
}
}
public void fabu() {
System.out.println("请选择您需要发布的品牌:");
for(int i=0;i0&&t2<=listpinpai.size()) chexingfabu(t2);
else {
System.out.println("输入错误,请确认后重新输入!");
fabu();
}
}
public void chexingfabu(int t2) {
System.out.println("该品牌的车型如下,请选择您想发布的车型,输入编号以外的数字将返回上一层菜单——");
List list2=new carDao().dellist(listchexing,listpinpai.get(t2-1).getPinpai());
for(int i=0;i0&&p<=list2.size())
tianjia(list2.get(p-1).getPinpai(),list2.get(p-1).getChexing());
else fabu();
}
public String error(){
return "您的输入有误,请再试一次!";
}
public void tianjia(String pinpai,String chexing){
System.out.println("分别输入该车型的里程数、价格、发布时间、排量、上牌时间、离合器类型——");
int lichen=0;
int jiage=0;
int pailiang=0;
String shangpaidate="";
String liheqi="";
String fabudate=new UserDao().rdate();
if(sc.hasNextInt()) lichen=sc.nextInt();
else {
error();
tianjia(pinpai,chexing);
}
if(sc.hasNextInt()) jiage=sc.nextInt();
else {
error(); tianjia(pinpai,chexing);
}
if(sc.hasNextLong()) pailiang=sc.nextInt();
else {
error(); tianjia(pinpai,chexing);
}
if(sc.hasNextLong())
shangpaidate=sc.next();
else {
error();tianjia(pinpai,chexing);
}
if(sc.hasNextLong())
liheqi=sc.next();
else {
error();tianjia(pinpai,chexing);
}
System.out.println("您确认要发布吗?确认请输入1,否则返回上一级菜单");
int p=sc.nextInt();
if(p==1){
listcar.add(new car(pinpai,chexing,lichen,jiage,fabudate,pailiang,shangpaidate,liheqi));
System.out.println("添加成功!");
}
else carmanage();}
public void pinpaimanage(){
System.out.println("请输入想添加的品牌名称:");
String pinpai=sc.next();
System.out.println("确认添加吗?确认请输入1,否则将重新添加!");
int p1=sc.nextInt();
if(p1==1){
listpinpai.add(new basepinpai(pinpai));
System.out.println("添加成功!");}
else pinpaimanage();
System.out.println("输入任意值返回主管理菜单!");
Object t1 = sc.nextLong();
if (t1 != null) carmanage();
else {
maintest.getInstance().index();
}
}
public void allchexing(){
for(int i=0;i0&&t2<=listpinpai.size()) chexingmanage(t2);
else {
System.out.println("输入错误,请确认列表后重新输入!");
allchexing();
}
}
public void chexingmanage(int a){
System.out.print(listpinpai.get(a-1).getPinpai());
System.out.println(" 的车型,请您选择操作!n1.添加车型n2.删除车型n3.返回上级");
int t3=sc.nextInt();
if(t3==1)add(a);
else if(t3==2) del(a);
else if (t3 == 3) {
allchexing();
}
else {
System.out.println("输入错误,请重新输入!");
chexingmanage(a);
}
}
public void add(int a) {
System.out.println("请键入您想添加的车型");
String chexing = sc.next();
System.out.println("确认添加吗?确认请输入1,否则将重新操作");
int p1 = sc.nextInt();
if (p1 == 1) {
new carDao().addchexing(a - 1, chexing);
System.out.println("添加成功!自动返回上级");
chexingmanage(a);
} else chexingmanage(a);
}
public void del(int a){
System.out.println("该品牌的车型如下,请选择您想删除的车型");
List list0=new carDao().dellist(listchexing,listpinpai.get(a-1).getPinpai());
for(int i=0;i0&&p5<=list0.size()){
new carDao().delchexing(listchexing,list0.get(p5-1).getChexing());
new carDao().delcar(list0.get(p5-1).getChexing(),listcar);
new carDao().delcompare(list0.get(p5-1).getChexing());
for(int i=0;i
3
package function;
import dao.UserDB;
import dao.collection;
import dao.iflogin;
import entity.User;
import entity.car;
import test.maintest;
import java.util.List;
import java.util.Scanner;
public class mycollect {
List listcollcet = collection.getInstance();
List listuser = UserDB.getInstance();
List listlogin = iflogin.getInstance();
Scanner sc = new Scanner(System.in);
public void see() {
int x = new vehicle().denglu();
System.out.println();
if (listlogin.get(new vehicle().denglu()).equals(1)) {
System.out.println("您的收藏夹:n 品牌 车型 里程数 价格 发布时间");
for (int i = 0; i < listuser.get(x).collcet.size(); i++) {
System.out.print((i + 1) + ". ");
System.out.println(listuser.get(x).collcet.get(i).toString2());
}
System.out.println("请选择您要操作的车型(输入0返回主菜单)——");
int i = sc.nextInt();
if (i == 0) maintest.getInstance().index();
else if (i > 0 && i <=listuser.get(x).collcet.size()) {
System.out.println("请选择——n1.取消收藏n2.更多操作");
int p = sc.nextInt();
if (p == 1) {
listuser.get(x).collcet.remove(i - 1);
System.out.println("取消收藏成功!");
see();
} else if (p == 2 && i > 0 && i <= listuser.get(x).collcet.size()) {
new vehicle().caozuo(listuser.get(x).collcet.get(i - 1).chexing, x);
}
} else {
new search().error();
see();
}
}
else {
System.out.println("您尚未登录,无法查看收藏夹!输入1现在就去登录,输入其他任意数字返回主菜单——");
int p=sc.nextInt();
if(p==1)new login().checkUserName();
else maintest.getInstance().index();
}
}
}
4
package function;
import dao.UserDB;
import dao.iflogin;
import entity.User;
import test.maintest;
import java.util.List;
import java.util.Scanner;
public class outlogin {
List list = UserDB.getInstance();
List listlogin= iflogin.getInstance();
Scanner sc=new Scanner(System.in);
public void zhuxiao(){
System.out.println("确认使当前账户的退出登录吗?确认输入1,取消输入任意其他数字并返回主菜单");
int p=sc.nextInt();
if(p==1)delloggin();
else maintest.getInstance().index();
}
public void delloggin(){
int x=new vehicle().denglu();
listlogin.set(x,0);
System.out.println("注销成功,已返回主菜单");
maintest.getInstance().index();
}
}
5
package function;
import java.util.List;
import java.util.Scanner;
import java.util.concurrent.CopyOnWriteArrayList;
import dao.UserDB;
import dao.UserDao;
import dao.carDao;
import dao.iflogin;
import entity.User;
import entity.car;
import test.maintest;
public class register {
String name="";
String code1="";
String code2="";
String mail="";
String phone="";
String zhucedate="";
Scanner sc = new Scanner(System.in);
List list = UserDB.getInstance();
List listlogin= iflogin.getInstance();
public void name1() {
System.out.println("请输入注册用户名:");
name = sc.next();
if (new UserDao().checkname(name)) {
System.out.println(name + "成功注册");
code1();
}else{
System.out.println("该用户名已被注册!请重新输入————");
name1();
}
}
public void code1(){
System.out.println("请设置您的密码,长度为6-10位英文数字字符:");
code1=sc.next();
if (new UserDao().checkcode(code1)=="0"){
System.out.println("该密码不符合规范,请重新输入————");
code1();
}
else System.out.println("密码设置成功!");
againcode1();
}
public void againcode1(){
System.out.println("请再次输入密码以确认:");
code2=sc.next();
if (new UserDao().againcode(code1,code2)){
System.out.println("确认密码成功!");
mail1();}
else{ System.out.println("确认密码失败,请重新输入————");
code1();}
}
public void mail1(){
System.out.println("请设置您的邮箱:");
mail=sc.next();
if (!new UserDao().checkmail(mail)){
System.out.println("您输入的邮箱格式错误!");
mail1();}
else if (new UserDao().checkmail(mail)){
for (User user : list) {
if (user.mail.equals(mail)){
System.out.println("您输入的邮箱已被使用!请再次输入————");
mail1();
}
else System.out.println("邮箱设置成功!");
phone();
}
}
}
public void phone(){
System.out.println("请输入您的手机号码");
phone=sc.next();
if(!new UserDao().checkphone(phone)){
System.out.println("手机号格式错误,应为1开头且11位数字!请重新输入————");
phone();
}
else if(new UserDao().checkphone(phone)) {
List list = UserDB.getInstance();
for (User user : list) {
if (user.mobile.equals(phone)) {
System.out.println("该手机号已被注册,请重新输入————");
phone();
}
else {
System.out.println("手机号注册成功!");
yanzhengma();
}
}
}
}
public void yanzhengma(){
String b= new UserDao().vercode();
System.out.println("您的验证码是: "+b+"n请输入验证码,区分大小写!");
String a=sc.next();
if(a.equals(b)){
System.out.println("验证成功!注册成功!");
date();
}
else {
System.out.println("验证码输入错误!请再试一次!");
yanzhengma();
}
}
public void date(){
System.out.println("您注册时间是: "+new UserDao().rdate());
storage();
}
public void storage() {List collect = new CopyOnWriteArrayList();
User us = new User(0,name, code1, mail, phone, new UserDao().rdate(),collect);
list.add(us);
listlogin.add(new carDao().findindex(name),0);
System.out.println("输入任意值返回主管理菜单!");
Object t1 = sc.nextLong();
if (t1 != null) maintest.getInstance().index();
else {
maintest.getInstance().index();
}
}
}
6
package function;
import dao.*;
import entity.car;
import entity.basepinpai;
import test.maintest;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Scanner;
public class search {
Scanner sc = new Scanner(System.in);
SimpleDateFormat df =new SimpleDateFormat("yyyy-MM-dd");
List list = carDB.getInstance();
List listpinpai = pinpaiDB.getInstance1();
List listchexing = pinpaiDB.getInstance2();
Listlistjiage=jiageDB.getInstance();
Listlistdate= dateDB.getInstance();
List listfuhe=pinpaiDB.getInstance3();
public void error() {
System.out.println("输入错误,请重新输入!");
}
public void search() {
System.out.println("搜索选项:n1.根据品牌搜索n2.根据价格搜索n3.根据上牌日期搜索n4.任意数字返回主菜单");
int t1 = sc.nextInt();
if (t1 == 1) { pinpaisearch(); }
else if (t1 == 2) { jiagesearch();}
else if(t1==3) {datesearch(); }
else maintest.getInstance().index();
}
public void pinpaisearch() {
System.out.println("所有品牌信息如下,请选择品牌以查看相应车型!【输入0返回上级菜单】");
for (int i = 0; i < listpinpai.size(); i++) {
System.out.print(i + 1 + ". ");
System.out.println(listpinpai.get(i).getPinpai());
}
int t2 = sc.nextInt();
if (t2 > 0 && t2 <=listpinpai.size())
pinpai_chexing(listpinpai.get(t2 - 1).getPinpai());
else if (t2 == 0) search();
else {
error();
pinpaisearch();
}
}
public void pinpai_chexing(String pinpai) {
System.out.println("该品牌有以下车型:");
new carDao().pinpaichexing(pinpai);
for (int i=0;i 0 && t3 <= listfuhe.size()) chexing_xiangxi(listfuhe.get(t3 - 1).getChexing(), pinpai);
else {
error();
pinpai_chexing(pinpai);
}
}
public void chexing_xiangxi(String chexing, String pinpai) {
System.out.println("该车型的详细信息是:n 品牌 车型 里程数 价格 发布时间");
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getChexing().equals(chexing))
System.out.println(list.get(i).toString2());
}
new vehicle().caozuo(chexing,new vehicle().denglu());
}
public void jiagesearch() {
System.out.println("请选择价格区间——n1.5w以下n2.5-10wn3.10-15wn4.15w以上");
int t=sc.nextInt();
if(t==1){
System.out.println(" 品牌 车型 里程数 价格 发布时间");
new carDao().jiagequjian(0,49999);
}
else if(t==2){System.out.println(" 品牌 车型 里程数 价格 发布时间");
new carDao().jiagequjian(50000,99999);
}
else if(t==3){System.out.println(" 品牌 车型 里程数 价格 发布时间");
new carDao().jiagequjian(100000,149999);
}
else if(t==4){System.out.println(" 品牌 车型 里程数 价格 发布时间");
new carDao().jiagequjian(150000,10000000);
}
else {error();
jiagesearch();}
jiagechoose();
}
public void jiagechoose(){
for(int i=0;i0&&c
8
package function;
import dao.*;
import entity.User;
import entity.car;
import test.maintest;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Scanner;
public class vehicle {
DecimalFormat df = new DecimalFormat("0.00");
SimpleDateFormat df1 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
List listcar= carDB.getInstance();
List listuser= UserDB.getInstance();
List listlogin= iflogin.getInstance();
List listcollcet= collection.getInstance();
List listcompare= comparation.getInstance();
Scanner sc=new Scanner(System.in);
public void getlatest() {
System.out.println(" 品牌 车型 里程数 价格 发布时间");
for (int i = 0; i < 10; i++) {
System.out.println((i + 1) + "" + listcar.get(i).toString2());
}
getxiangxi(denglu());
}
public int denglu(){
for(int i=0;i 0 && a < 11) {
String o=listcar.get(a-1).getChexing();
System.out.println(jutixinxi(a - 1));
caozuo(o,index);
}
else {
System.out.println("您输入的编号错误,重新输入!");
getxiangxi(index);
}
return a;
}
public String jutixinxi(int i) {
if (i >=0 && i < listcar.size()) {
return listcar.get(i).toString();
} else return "选择错误!请重新输入!";
}
public void caozuo(String chexing,int index){
if (listlogin.get(denglu()).equals(1)) {
System.out.println("1.收藏n2.加入对比n3.购买n4.返回主菜单");
int r = sc.nextInt();
if (r == 1) collect(chexing,index);
else if(r==2)compare(chexing,index);
else if(r==3){
System.out.println("请输入您的金额");
double money=sc.nextDouble();
purchase((int) money,chexing);
}
else if(r==4) maintest.getInstance().index();
else {System.out.println("输入错误,请重新选择");
caozuo(chexing,index);}
} else System.out.println("1.收藏(您尚未登录不可使用此功能!选择此项前往登录)n2.加入对比n3.购买(您尚未登录不可使用此功能!选择此项前往登录)n4.返回主菜单");
int s=sc.nextInt();
if(s==1||s==3)new login().checkUserName();
else if(s==2){
compare(chexing,index);
}
else if(s==4) maintest.getInstance().index();
else {
System.out.println("选择错误,请重新选择!");
caozuo(chexing,index);
}
}
public void compare(String chexing,int i) {
if (new carDao().checkcomparation(chexing)) {
listcompare.add(listcar.get(new carDao().findcarindex(chexing)));
System.out.println("加入对比列表成功!已返回上一级菜单");
caozuo(chexing, i);
} else {
System.out.println("该车型已在列表中,不可再次添加!已返回上级菜单");
caozuo(chexing, i);
}
}
public void purchase(int m,String chexing) {
int t=listcar.get(new carDao().findcarindex(chexing)).jiage;
if (m>=t) {
System.out.println("购买成功!购买凭条如下:n" + listcar.get(new carDao().findcarindex(chexing)).toString2() + "购买时间: " + df1.format(new Date()));
System.out.println("输入任意值返回上一级菜单!");
Object t1 = sc.nextLong();
if (t1 != null) caozuo(chexing,denglu());
else {
System.out.println("");
}
}
else {
System.out.println("金额不足,无法购买!已返回上一级选择菜单!");
caozuo(chexing,denglu());
}
}
public void collect(String chexing,int userindex) {
if (new carDao().checkcollcetion(chexing)) {
listcollcet.clear();
listcollcet.add(listcar.get(new carDao().findcarindex(chexing)));
listuser.get(userindex).collcet.add(listcar.get(new carDao().findcarindex(chexing)));
System.out.println("收藏成功!输入0返回最热二手车信息菜单,输入其他任意数字返回主菜单");
int p = sc.nextInt();
if (p == 0) getlatest();
else maintest.getInstance().index();
}
else {
System.out.println("该车型已在您的收藏列表中");
caozuo(chexing,userindex);
}
}
}
小白历时五天写出来的,虽然还有很多bug,但还是求求点赞...



