ai设计logo免费网站,定制家具网站平台,市政建设招标网站有哪些,宁波网站建设培训目录
一、项目说明
二、基本设计概念和处理流程
1、基本设计
2、处理流程#xff1a;
3、概念结构设计
三、项目功能#xff1a;
四 、总结 前言#xff1a; 长期以来#xff0c;人们使用传统的人工方式管理图书馆的日常业务#xff0c;其操作流程比较烦琐…目录
一、项目说明
二、基本设计概念和处理流程
1、基本设计
2、处理流程
3、概念结构设计
三、项目功能
四 、总结 前言 长期以来人们使用传统的人工方式管理图书馆的日常业务其操作流程比较烦琐。在借书时读者首先将要借的书和借阅证交给工作人员然后工作人员将每本书的信息卡片和读者的借阅证放在一个小格栏里最后在借阅证和每本书贴的借阅条上填写借阅信息。在还书时读者首先将要还的书交给工作人员工作人员根据图书信息找到相应的书卡和借阅证并填好相应的还书信息。太过于繁琐了所以我们需求设计一个图书管理系统来方便学生的借书和图书馆管理书籍。
一、项目说明
1、读者信息管理能够对读者的基本信息进行管理包括新增读者如学校新来一名教师想要借书就必须先添加读者信息读者信息的修改如学生转到别的专业此时要修改学生的基本信息删除读者的信息比如某个学生中途退学了可以将其信息删除。查询读者的信息比如有同学拾到了一张借阅卡卡上有学生的编号通过此号来查询学生的联系电话从而可以找到学生。2、图书信息管理能够对图书的基本信息进行管理包括新增图书学校每年会购进新书此时需要将新书的信息录入系统中图书信息的修改如学生借书后将图书丢失此时需要修改图书的总数量使总数减1删除图书学校在购进新书的同时每年会对过期的图书进行清理不再提供借阅此时就需要将这些图书的信息从系统中删除。查询图书的信息比如要查看有哪些是Java相关的书籍或者指定ISBN号的图书等。3、图书借阅信息管理能够对图书的借阅信息进行记录包括读者信息、图书信息、借阅时间等信息。4、图书归还信息管理能够对图书的借阅信息进行记录包括读者信息、图书信息、归还时间、是否超期、罚金等信息。5、系统用户信息管理能够对系统用户的信息进行管理包括增加新的系统操作用户对当前系统用户的密码进行修改以及删除某一用户。 二、基本设计概念和处理流程
1、基本设计 2、处理流程
管理员 操作员 3、概念结构设计 三、项目功能
登录模块包括登录功能根据两种身份管理员或者操作员进行登录如果没有用户信息则需要进入注册功能进行注册。登录用户信息的读取和存储都应连通数据库表操作还需要提供忘记密码查看登录日志记录日志可通过I/O流放在相对应的文件里修改密码等基本功能。 管理员模块管理员主要包含四大基本功能员工工作日志记录记录了每个操作员的登录时间和各种操作信息日志可通过I/O流放在相对应的文件里图书借阅金额设定对操作员信息进行管理增删改查图书逾期罚金总账单查询该账单记录了所有预期的图书的逾期金额明细和最后图书馆所有书的逾期总金额数。
操作员模块
1读者信息管理包括读者信息添加和读者信息查询与修改功能。用户登录成功之后可以浏览所有读者的信息也可以检索特定读者的信息同时可以对读者信息进行维护包括增加、删除及修改。具体信息包括读者类型读者的类型决定着他可以借到书的最大数量和最大归还天数、读者姓名、出生日期、性别、电话、所在院系、注册日期等。相关存储数据通过数据库存储JDBC进行操作
2图书信息管理包括图书信息添加和图书信息查询与修改功能。用户登录成功之后可以浏览所有图书信息和检索特定图书的信息也可以对图书信息进行维护。包括添加图书、删除图书以及修改图书信息。具体信息包括图书ISBN、图书名称、作者、出版社、出版日期、印刷次数、单价、图书类别等。相关存储数据通过数据库存储JDBC进行操作
3图书借阅管理包括图书借阅和图书归还功能。图书借阅功能先输入读者的编号然后输入要借阅的图书的信息记录系统当前时间即借阅时间图书归还功能输入读者的编号选择其名下已借阅的图书判断当前日期即归还日期与借阅日期的差值是否超过了规定的期限计算罚金从而进行图书的归还操作。具体信息包括借阅日期、归还日期、罚金。由于要计算罚金故需要知道该读者的读者类型根据类型判断其可借图书天数、可借图书数量等。相关存储数据通过数据库存储JDBC进行操作
4基础信息维护包括图书类别设置、读者类别设置及罚金设置。图书类别设置可以对图书的类别进行增加、删除、修改和查询读者类别设置可以对读者的类别进行增加、删除、修改和查询罚金设置可以指定超期一天的罚金标准。相关存储数据通过数据库存储JDBC进行操作 四、数据库表的设计 结构
包图
包图说明本系统基于五层架构分为界面层UI、逻辑层BLL、数据处理层DAL、接口层IDAL、实体层Entity。前面三层都需要引用实体类因为需要通过实体层来传递参数数据处理层需要引用一个SQLHelper的助手类。 在这里博主分了下面几个包 : 界面展示包View里面放的全是界面展示类
功能实现包Service放的各个功能的实现类 实体类包EntityClass放各个需要用到的实体类;
数据包LogFile存放管理员和员工的日志记录数据这两部分的数据博主这里用的IO流存入的
驱动包lib (存放各个需要用到的驱动包)
接口包Port (存放各个接口类)
工具包Utility (存放连接MySQL用到的工具包以及为了简化代码的工具包)
resources (存放了连接池连接MySQL的数据文件) 管理员登录
首先我们进入到图书管理系统进入的方式就是通过用户的账号和密码的输入匹配。
管理员登录
设计该功能时我们选择将数据保存在数据库也就是用 MySQL 来做。 其次就是管理员数据的数据管理 这些实现类都是用接口进行规范的。 基本信息维护模块
该模块下有读者类别的设置图书类别的设置还有罚金的设置
读者类别就是当我们再添加读者时可以将读者类别当做读者类的一个属性添加进去。
就比如说我们当前添加的读者类型为学生那么就在可以单独设置学生的可借阅图书的天数和图书的数量。
同理图书类别的设置就可以把图书进行分类。
罚金的设置可以根据不同类型的读者设置不同类型的罚金。同理给不同的图书类型也添上相应的罚金。最后的总罚金我们使用的是两者的相加计算得来的。 部分代码展示
管理员信息管理
public class AdminiPortImpl extends BaseDaoAdmin implements AdminiPort {static String name, password;Override//注册管理员public void registAdmin() throws Exception {Connection conn DuridConnectionPool.getConnection();System.out.println( 注册管理员界面 );/*String sql1select * from Admin;*/System.out.println(请输入您的姓名);name TSUtility.readKeyBoard(4, false);System.out.println(请输入您的密码(至多六位) );password TSUtility.readKeyBoard(6,false);String sql insert into admin(adminName,adminPassword) values (?,?);//调用BaseDao中通用的方法updateupdate(conn, sql, name, password);TSUtility.WriteTheLog1(TSUtility.getTheCurrentTime()\tname 已注册管理员);////加载TSUtility.loadSpecialEffects();System.out.println(注册成功);//关闭资源JDBCUtils.closeResources(conn);}Override//修改密码public void updatePassword() throws Exception {System.out.println( 修改管理员密码界面 );Connection connection DuridConnectionPool.getConnection();String sql SELECT * FROM admin;ListEntityClass.Admin Amdin getBeanList(connection, sql);int n0;if (Amdin.size() ! 0) {System.out.println(编号 \t 账户名 \t 密码);for (Admin admin : Amdin) {n;System.out.print(n \t admin.getAdminName() \t admin.getAdminPassword());System.out.println();}boolean flag true;while (flag) {System.out.println(请输入你要修改的编号);int count 0;int where 0;int i TSUtility.readInt();/*for (int j 0; j Amdin.size(); j) {if (Amdin.get(j).getAdminId() i) {count;where j;}}*/if (iAmdin.size()) {System.out.println(没有你输入的编号是(Y/y)否(N/n)继续修改);char c TSUtility.readConfirmSelection();if (c N || c n) {flag false;}} else {System.out.println(请输入您的新密码(最多六位)(回车跳过..修改为原密码));String s TSUtility.readString(6, Amdin.get(where).getAdminPassword());String sql2 UPDATE admin SET adminPassword? WHERE adminId?;update(connection, sql2, s, i);TSUtility.WriteTheLog1(TSUtility.getTheCurrentTime()\tname 已修改密码为s);System.out.println(修改成功!);flag false;}}} else {System.out.println(没有数据);}}Override//登录管理员public void loginAdmin() throws Exception {Connection connection DuridConnectionPool.getConnection();String sql SELECT * FROM admin;ListEntityClass.Admin Amdin getBeanList(connection, sql);System.out.println( 管理员登录界面 );System.out.println();boolean flog true;while (flog) {if (Amdin.size()0){System.out.println(没有数据,请先注册一个管理员);flogfalse;}else{System.out.println(请输入您的姓名);name TSUtility.readKeyBoard(4, false);System.out.println(请输入您的密码(至多六位) );password TSUtility.readKeyBoard(6,false);int n 0;for (int i 0; i Amdin.size(); i) {n;if (name.equals(Amdin.get(i).getAdminName()) password.equals(Amdin.get(i).getAdminPassword())) {System.out.println(登录成功正进入管理员功能界面欢迎使用);//加载TSUtility.loadSpecialEffects();TSUtility.WriteTheLog1(TSUtility.getTheCurrentTime()\tname已登录管理员界面);AdministratorLoginView.AdministratorLogin();flogfalse;break;}if (n Amdin.size()) {System.out.println(账号或者密码有误是否重新登录(是y/否n));char c TSUtility.readConfirmSelection();if (c N || c n) {flog false;System.out.println( 返回登录界面中... );System.out.println();}}}}}}} 德鲁伊连接池
public class DuridConnectionPool {public static Connection getConnection() throws Exception {Properties pro new Properties();InputStream is ClassLoader.getSystemClassLoader().getResourceAsStream(druid.properties);pro.load(is);DataSource ds DruidDataSourceFactory.createDataSource(pro);Connection conn ds.getConnection();return conn;}/*public static void main(String[] args) throws Exception {System.out.println(getConnection());}*/
}
四 、总结
使用了两种设计模式代理模式以及工厂方法模式。
这次最重要的就是把需求文档完善好这样可以尽量地减少在后续的代码实现过程中的失误。
这次的项目是合作版有利于与队友的合作沟通。通过Git工具的使用我们之间的代码实现了互通并且效率得到了很好的解决挺好用的一个工具推荐使用