对于建立图书馆管理系统的项目模拟经验

对于建立图书馆管理系统的项目模拟经验

此次项目模拟,是在Windows环境下施行的。主要的工具为java程序。

  • 首先下载eclipse并在其中选择java应用程序

  • 然后需要在Windows上搭建java的环境变量(具体参照WIN10下,Jdk的环境变量
    配置 link.)

  • 在Java中新建一个java计划并命名“图书馆管理计划”,然后建包和类
    对于建立图书馆管理系统的项目模拟经验_第1张图片

第一步就是要写入配置文件

  • 首先配置图书馆的选择方法:
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;
	}
}

第二步是搞定service服务文件

  • 先写入图书馆的服务文件:
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("啊啊啊!");
				}
			}
		}
	}
}

看看试运行结果吧

对于建立图书馆管理系统的项目模拟经验_第2张图片

对于建立图书馆管理系统的项目模拟经验_第3张图片

你可能感兴趣的:(对于建立图书馆管理系统的项目模拟经验)