此次项目模拟,是在Windows环境下施行的。主要的工具为java程序。
首先下载eclipse并在其中选择java应用程序
然后需要在Windows上搭建java的环境变量(具体参照WIN10下,Jdk的环境变量
配置 link.)
package com.zxyt.bean;
public class ChooseBean {
private int s_id,z_id,l_id,t_id;
private String s_time;
public int getS_id() {
return s_id;
}
public void setS_id(int sId) {
s_id = sId;
}
public int getZ_id() {
return z_id;
}
public void setZ_id(int zId) {
z_id = zId;
}
public String getS_time() {
return s_time;
}
public void setS_time(String sTime) {
s_time = sTime;
}
public void setL_id(int l_id) {
this.l_id = l_id;
}
public int getL_id() {
return l_id;
}
public void setT_id(int t_id) {
this.t_id = t_id;
}
public int getT_id() {
return t_id;
}
}
package com.zxyt.bean;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
public class LibraryBean {
private int l_id,l_num,l_status;
private String l_name,l_address,l_b_time_str,l_e_time_str;
private Date l_b_time,l_e_time;
private List tpb;
public int getL_id() {
return l_id;
}
public void setL_id(int lId) {
l_id = lId;
}
public int getL_num() {
return l_num;
}
public void setL_num(int lNum) {
l_num = lNum;
}
public int getL_status() {
return l_status;
}
public void setL_status(int lStatus) {
l_status = lStatus;
}
public String getL_name() {
return l_name;
}
public void setL_name(String lName) {
l_name = lName;
}
public String getL_address() {
return l_address;
}
public void setL_address(String lAddress) {
l_address = lAddress;
}
public String getL_b_time_str() {
return l_b_time_str;
}
public void setL_b_time_str(String lBTimeStr) {
SimpleDateFormat sDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(lBTimeStr);
try {
l_b_time=sDateFormat.parse(lBTimeStr);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
l_b_time_str = lBTimeStr;
}
public String getL_e_time_str() {
return l_e_time_str;
}
public void setL_e_time_str(String lETimeStr) {
SimpleDateFormat sDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
l_e_time=sDateFormat.parse(lETimeStr);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
l_e_time_str = lETimeStr;
}
public Date getL_b_time() {
return l_b_time;
}
public void setL_b_time(Date lBTime) {
l_b_time = lBTime;
}
public Date getL_e_time() {
return l_e_time;
}
public void setL_e_time(Date lETime) {
l_e_time = lETime;
}
public List getTpb() {
return tpb;
}
public void setTpb(List tpb) {
this.tpb = tpb;
}
}
package com.zxyt.bean;
public class StudentBean {
private String s_name,s_pwd;
private int s_id;
public String getS_name() {
return s_name;
}
public void setS_name(String sName) {
s_name = sName;
}
public String getS_pwd() {
return s_pwd;
}
public void setS_pwd(String sPwd) {
s_pwd = sPwd;
}
public int getS_id() {
return s_id;
}
public void setS_id(int sId) {
s_id = sId;
}
}
package com.zxyt.bean;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TimePartBean {
private int t_id,l_id;
private String t_b_time_str,t_e_time_str;
private Date t_b_time,t_e_time;
public int getT_id() {
return t_id;
}
public void setT_id(int tId) {
t_id = tId;
}
public int getL_id() {
return l_id;
}
public void setL_id(int lId) {
l_id = lId;
}
public String getT_b_time_str() {
return t_b_time_str;
}
public void setT_b_time_str(String tBTimeStr) {
SimpleDateFormat sDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
t_b_time=sDateFormat.parse(tBTimeStr);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
t_b_time_str = tBTimeStr;
}
public String getT_e_time_str() {
return t_e_time_str;
}
public void setT_e_time_str(String tETimeStr) {
SimpleDateFormat sDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
t_e_time=sDateFormat.parse(tETimeStr);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
t_e_time_str = tETimeStr;
}
public Date getT_b_time() {
return t_b_time;
}
public void setT_b_time(Date tBTime) {
t_b_time = tBTime;
}
public Date getT_e_time() {
return t_e_time;
}
public void setT_e_time(Date tETime) {
t_e_time = tETime;
}
}
package com.zxyt.bean;
public class ZuoweiBean {
private int z_id,l_id,z_status;
public int getZ_id() {
return z_id;
}
public void setZ_id(int zId) {
z_id = zId;
}
public int getL_id() {
return l_id;
}
public void setL_id(int lId) {
l_id = lId;
}
public int getZ_status() {
return z_status;
}
public void setZ_status(int zStatus) {
z_status = zStatus;
}
}
package com.zxyt.service;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Scanner;
import com.zxyt.bean.LibraryBean;
import com.zxyt.bean.TimePartBean;
public class LibraryService {
Scanner sc = new Scanner(System.in);
List list = new ArrayList();
public void add_time_part() {
// TODO Auto-generated method stub
System.out.println("请输入图书馆编号:");
int l_id = sc.nextInt();
System.out.println("请输入图书馆承载人数:");
int l_num = sc.nextInt();
System.out.println("请输入图书馆名称:");
String l_name = sc.next();
System.out.println("请输入图书馆地址:");
String l_address = sc.next();
sc.nextLine();
System.out.println("请输入图书馆开放开始时间:");
String l_b_time = sc.nextLine();
System.out.println("请输入图书馆开放结束时间:");
String l_e_time = sc.nextLine();
LibraryBean lib = new LibraryBean();
lib.setL_b_time_str(l_b_time);
lib.setL_e_time_str(l_e_time);
lib.setL_address(l_address);
lib.setL_id(l_id);
lib.setL_name(l_name);
lib.setL_num(l_num);
lib.setL_status(0);
List part_list=time_parts(lib);
lib.setTpb(part_list);
list.add(lib);
/*for(LibraryBean bean:list){
System.out.println(bean.getL_id()+"--"+bean.getL_b_time_str()+"---"+bean.getL_e_time_str());
for(TimePartBean tbean:bean.getTpb()){
System.out.println(tbean.getT_b_time_str()+"-"+tbean.getT_e_time_str()+"--"+tbean.getL_id());
}
}*/
}
/**
* 生成时间段
* @param lib
*/
private List time_parts(LibraryBean lib) {
// TODO Auto-generated method stub
List list=new ArrayList();
//将一天的开始时间和结束时间拆分成时间段放入集合
System.out.println("请输入每个时间段的时长(分):");
int num = sc.nextInt();
//将开始时间和结束时间转为时间戳
long ts_b = lib.getL_b_time().getTime();
long ts_e = lib.getL_e_time().getTime();
int count = (int) Math.ceil((double)(ts_e-ts_b)/(num*60*1000));
for(int i=0;i=ts_e){
date_end = new Date(ts_e);
flag=1;
}else{
date_end = new Date(ts_e_temp);
}
String t_e_time_str = simpleDateFormat.format(date_end)+"";
timebean.setT_e_time_str(t_e_time_str);
ts_b+=(num*60*1000);
list.add(timebean);
if(flag==1){
break;
}
}
return list;
}
public String show_menu() {
// TODO Auto-generated method stub
System.out.println("青选择要对管理员进行的操作:");
System.out.println("【A】 添加 \t 【B】开放/禁用");
System.out.println("【C】 返回");
Scanner sc = new Scanner(System.in);
String input = sc.next().toLowerCase();
return input;
}
public void open() {
// TODO Auto-generated method stub
while(true){
System.out.println("请输入图书馆编号:");
int l_id = sc.nextInt();
int flag=0;
for(LibraryBean bean:list){
if(l_id==bean.getL_id()){
if(bean.getL_status()==0){
bean.setL_status(1);
System.out.println("禁用成功!!!");
}else{
bean.setL_status(0);
System.out.println("启用成功!!!");
}
flag=1;
break;
}
}
if(flag==0){
System.out.println("没有找到该图书馆,图书馆编号错误!!!");
}
}
}
/**
* 选择图书馆
* @return 图书馆对象
*/
public LibraryBean chooseLibrary() {
// TODO Auto-generated method stub
System.out.println("图书馆列表:");
System.out.println("图书馆编号\t 图书馆地址\t 图书馆容量\t 图书馆开放时间\t 图书馆关闭时间\t 状态\t");
for(LibraryBean lib:list){
String status_name="";
if(lib.getL_status()==0){
status_name = "开放";
}else{
status_name = "关闭";
}
System.out.println(lib.getL_id()+"\t "+lib.getL_address()+"\t "+lib.getL_num()+"\t "+lib.getL_b_time_str()+"\t "+lib.getL_e_time_str()+"\t "+status_name+"\t");
}
LibraryBean ret_lib=null;
while(true){
System.out.println("请选择图书馆,输入对应的编号:");
int l_id = sc.nextInt();
int flag=0;
for(LibraryBean lib2:list){
if(lib2.getL_id()==l_id){
ret_lib=lib2;
flag=1;
}
}
if(flag==0){
System.out.println("请输入正确的图书馆编号!!!");
}else{
break;
}
}
return ret_lib;
}
public TimePartBean choosePartTime(LibraryBean libBean) {
// TODO Auto-generated method stub
List time_list = libBean.getTpb();
System.out.println("您选择的图书馆名称为:"+libBean.getL_name());
System.out.println("时间编号\t 开始时间\t 结束时间 \t");
for(TimePartBean timeBean:time_list){
System.out.println(timeBean.getT_id()+"\t "+timeBean.getT_b_time_str()+"\t "+timeBean.getT_e_time_str()+" \t");
}
TimePartBean ret_lib = null;
while(true){
System.out.println("请选择时间段编号:");
int t_id = sc.nextInt();
int flag=0;
for(TimePartBean lib2:time_list){
if(lib2.getT_id()==t_id){
ret_lib=lib2;
flag=1;
}
}
if(flag==0){
System.out.println("请输入正确的时间段编号!!!");
}else{
break;
}
}
return ret_lib;
}
}
package com.zxyt.service;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import com.zxyt.bean.ManagerBean;
public class ManagerService {
Scanner sc = new Scanner(System.in);
ManagerBean managerbean = null;
List list=new ArrayList();
/**
* 打印管理员菜单
* @return
*/
public String show_menu() {
// TODO Auto-generated method stub
System.out.println("青选择要对管理员进行的操作:");
System.out.println("【A】 添加 \t 【B】修改");
System.out.println("【C】 删除 \t 【D】返回");
Scanner sc = new Scanner(System.in);
String input = sc.next().toLowerCase();
return input;
}
/**
* 判读用户是否登录
* @return 返回用户信息
*/
public ManagerBean isLogin() {
// TODO Auto-generated method stub
if(managerbean==null){
System.out.println("请输入登录账号:");
String m_name = sc.next();
System.out.println("请输入登录密码:");
String m_pwd = sc.next();
if("jf".equals(m_name) && "jf960521".equals(m_pwd)){
managerbean = new ManagerBean();
managerbean.setM_name(m_name);
managerbean.setM_pwd(m_pwd);
managerbean.setM_id(0);
}else{
//后面补
for(ManagerBean bean:list){
if(bean.getM_name().equals(m_name) && bean.getM_pwd().equals(m_pwd)){
managerbean=bean;
}
}
}
}
return managerbean;
}
public int add_manager() {
// TODO Auto-generated method stub
while(true){
System.out.println("请输入管理员编号:");
int m_id = sc.nextInt();
System.out.println("请输入登录账号:");
String m_name = sc.next();
System.out.println("请输入登录密码:");
String m_pwd = sc.next();
//验证账号是否存在?
int rs=isHas(m_name);
if(rs>0){
ManagerBean bean = new ManagerBean();
bean.setM_name(m_name);
bean.setM_pwd(m_pwd);
bean.setM_id(m_id);
list.add(bean);
break;
}else{
System.out.println("该账号已存在,请重新输入!!!");
}
}
return 1;
}
private int isHas(String mName) {
// TODO Auto-generated method stub
return 1;
}
/**
* 退出登录
*/
public void logout() {
// TODO Auto-generated method stub
managerbean=null;
}
}
package com.zxyt.service;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import com.zxyt.bean.StudentBean;
public class StudentService {
Scanner sc = new Scanner(System.in);
StudentBean studentbean = null;
List list=new ArrayList();
/**
* 学生的登录功能
* @return
*/
public StudentBean login() {
// TODO Auto-generated method stub
if(studentbean==null){
System.out.println("请输入登录账号:");
String s_name = sc.next();
System.out.println("请输入登录密码:");
String s_pwd = sc.next();
if("jfstudent".equals(s_name) && "jf960521".equals(s_pwd)){
studentbean = new StudentBean();
studentbean.setS_name(s_name);
studentbean.setS_pwd(s_pwd);
studentbean.setS_id(20206006);
}else{
//后面补
for(StudentBean bean:list){
if(bean.getS_name().equals(s_name) && bean.getS_pwd().equals(s_pwd)){
studentbean=bean;
}
}
}
}
return studentbean;
}
public void logout() {
// TODO Auto-generated method stub
studentbean=null;
}
}
package com.zxyt.service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Scanner;
import com.zxyt.bean.ChooseBean;
import com.zxyt.bean.LibraryBean;
import com.zxyt.bean.StudentBean;
import com.zxyt.bean.TimePartBean;
import com.zxyt.bean.ZuoweiBean;
public class ZuoweiService {
Scanner sc = new Scanner(System.in);
List list = new ArrayList();
List list_choose = new ArrayList();
/**
* 选座位
* @param timeBean
* @param libBean
* @param lib
* @param stuBean *****
*/
public void chooseZuowei(LibraryBean libBean, TimePartBean timeBean, LibraryService lib, StudentBean stuBean) {
// TODO Auto-generated method stub
System.out.println("您选择的图书馆名称为:"+libBean.getL_name()+"所选的时间段为:"+timeBean.getT_b_time_str()+"到"+timeBean.getT_e_time_str());
System.out.println("座位编号\t 状态");
for(ZuoweiBean zuoweiBean:list){
if(zuoweiBean.getL_id()==libBean.getL_id()){
String status_name = "";
if(zuoweiBean.getZ_status()==0){
status_name = "已被选择";
System.err.println(zuoweiBean.getZ_id()+"\t"+status_name);
}else{
status_name = "可以选择";
System.out.println(zuoweiBean.getZ_id()+"\t"+status_name);
}
}
}
List lib_list = lib.list;
while(true){
System.out.println("输入对应的座位编号:");
int z_id = sc.nextInt();
//验证该作为是否可以选择
boolean rs = checkStatus(z_id,timeBean,lib_list,stuBean);
if(rs){
//添加信息
break;
}
}
}
private boolean checkStatus(int z_id, TimePartBean timeBean,
List lib_list, StudentBean stuBean) {
// TODO Auto-generated method stub
for(ChooseBean choosebean :list_choose){
if(stuBean.getS_id()==choosebean.getS_id()){
TimePartBean searchBean = getTimePart(choosebean.getT_id(),choosebean.getL_id(),lib_list);
//时间 我以前选择的开始时间和结束时间、当前选择的开始时间和结束时间
boolean rs = dateCompare(searchBean,timeBean);
if(rs){
System.out.println("您选的时间段和已选的冲突,不能进行选择!");
return false;
}
}
}
return true;
}
private boolean dateCompare(TimePartBean searchBean, TimePartBean timeBean) {
// TODO Auto-generated method stub
long history_begin_time = searchBean.getT_b_time().getTime();
long history_end_time = searchBean.getT_e_time().getTime();
long choose_begin_time = timeBean.getT_b_time().getTime();
long choose_end_time = timeBean.getT_e_time().getTime();
if((choose_begin_time > history_begin_time || choose_begin_time < history_end_time) && (choose_end_time > history_begin_time || choose_end_time < history_end_time)){
return true;
}else{
return false;
}
}
/**
*根据图书馆编号和时间段的编号把时间找出来
* @return
*/
private TimePartBean getTimePart(int t_id, int l_id, List lib_list) {
// TODO Auto-generated method stub
TimePartBean ret_bean=null;
for(LibraryBean libbean:lib_list){
if(libbean.getL_id()==l_id){
for(TimePartBean timebean:libbean.getTpb()){
if(timebean.getT_id()==t_id){
ret_bean=timebean;
}
}
}
}
return ret_bean;
}
}
package com.zxyt.test;
import java.util.Scanner;
public class Menu {
public String show_stu_menu() {
System.out.println("欢迎进入学生选座系统");
System.out.println("【A】 选定座位 \t 【B】取消座位");
System.out.println("【C】 我的座位 \t 【D】退出");
Scanner sc = new Scanner(System.in);
String input = sc.next().toLowerCase();
return input;
}
/**
* 管理员管理菜单
* @return 选择的操作
*/
public String show_mana_menu() {
System.out.println("欢迎进入管理管理系统");
System.out.println("【A】 管理员管理 \t 【B】学生管理");
System.out.println("【C】 图书馆管理 \t 【D】退出");
Scanner sc = new Scanner(System.in);
String input = sc.next().toLowerCase();
return input;
}
}
package com.zxyt.test;
import java.util.Scanner;
import com.zxyt.bean.LibraryBean;
import com.zxyt.bean.ManagerBean;
import com.zxyt.bean.StudentBean;
import com.zxyt.bean.TimePartBean;
import com.zxyt.service.LibraryService;
import com.zxyt.service.ManagerService;
import com.zxyt.service.StudentService;
import com.zxyt.service.ZuoweiService;
public class Test {
public static void main(String[] args) {
Menu menu = new Menu();
ManagerService manager = new ManagerService();
LibraryService lib = new LibraryService();
StudentService student = new StudentService();
ZuoweiService zuowei = new ZuoweiService();
int count=0;
while(true){
System.out.println("欢迎进入图书馆选座系统");
System.out.println("【A】管理员\t 【B】学生");
System.out.println("请选择身份:");
Scanner sc = new Scanner(System.in);
String input = sc.next().toLowerCase();
if("a".equals(input)){
//验证管理员是否登录
ManagerBean rs=null;
while(rs==null){
rs = manager.isLogin();
if(rs==null){
System.out.println("用户名和密码错误!");
}
}
if(rs.getM_id()==0){
System.out.println("欢迎回来,"+rs.getM_name()+",当前账号为超级管理员!");
}else{
System.out.println("欢迎回来,"+rs.getM_name()+",当前账号普通管理员!");
}
while(true){
String ret = menu.show_mana_menu();
if("a".equals(ret)){
//管理员管理
while(true){
String memu_ret = manager.show_menu();
if("a".equals(memu_ret)){
int rs_add=manager.add_manager();
if(rs_add>0){
System.out.println("用户添加成功");
}
}else if("b".equals(memu_ret)){
//
}else if("c".equals(memu_ret)){
}else if("d".equals(memu_ret)){
break;
}
}
}else if("b".equals(ret)){
//学生管理
}else if("c".equals(ret)){
//图书馆管理
while(true){
String rs_menu = lib.show_menu();
if("a".equals(rs_menu)){
lib.add_time_part();
}else if("b".equals(rs_menu)){
lib.open();
System.out.println("操作成功!!!");
}else if("c".equals(rs_menu)){
break;
}
}
}else if("d".equals(ret)){
manager.logout();
break;
}
}
}else if("b".equals(input)){
//学生选座管理
StudentBean stu_bean = student.login();
String s_input = menu.show_stu_menu();
if("a".equals(s_input)){
//获取选择的图书馆信息
LibraryBean lib_bean = lib.chooseLibrary();
//打印该图书馆下的开放时间段
TimePartBean time_bean = lib.choosePartTime(lib_bean);
zuowei.chooseZuowei(lib_bean,time_bean,lib,stu_bean);
}else if("b".equals(s_input)){
}else if("c".equals(s_input)){
}else if("d".equals(s_input)){
student.logout();
break;
}
}else{
count++;
if(count>=3){
System.out.println("今天天气怎么样?");
System.exit(0);
}else{
System.out.println("啊啊啊!");
}
}
}
}
}