一.功能简介1.实现一个图书管理系统。
图书信息存放到一个数据库中。
图书包含信息:图书号、图书名、作者、价格、备注字段。
2.系统实现如下的基本管理功能:(1)用户分为两类:系统管理员,一般用户。
(2)提供用户注册和用户登录验证功能;
其中登录用户的信息有:登录用户名,登录密码等。
(3)管理员可以实现对注册用户的管理(删除),并实现对图书的创建、查询、修改和删除等有关的操作。
(4)一般用户,只能查询图书,并进行借书、还书操作,每个用户最多借阅8本,即当目前借书已经是8本,则不能再借书了,只有还书后,才可以再借阅。
二.涉及技术Struts2框架、MySQL数据库、C3P0数据池、Jsp、HTML、CSS、JavaScript等技术。
三.设计思路1.基于Struts2框架进行编程设计,连接MySQL数据库实现数据的增删查改,应用Jsp、HTML、CSS、JavaScript对访问页面进行编写和美化。
2.分别创建book表和user表,用以存放图书信息和用户数据。
其中user表中,设有flag以区分管理员和普通用户。
3.分别创建Book类和User类,与数据表相对应。
每本书和每个用户都有唯一的id与之对应。
4.创建C3P0属性文件和数据库连接工具类。
5.设计数据库操作类:UserDao类和BookDao类。
UserDao用于实现所有对user表的操作,BookDao用于实现所有对book表的操作。
6.创建分别对应UserDao类和BookDao类的Action:UserAction和BookAction。
采用基于注解的方式进行Action配置。
7.用户账号分为管理员账号和普通用户账号,注册时加以区分,登录时即可自动判断进入对应的操作主页面。
8.管理员可实现对用户的查询显示,模糊查询,删除,批量删除,全选和取消全选等功能;
可实现对图书的查询显示,模糊查询,添加,删除,批量删除,全选和取消全选等功能。
9.普通用户可实现借书和还书功能,借书功能通过对book表的查询,将未借出的图书按照id顺序排列显示,点击表格后方的“借阅”按钮,进行确认借阅,将book表中本书的borrowperson列的值改为本用户账号。
对于借阅成功的图书可以在“当前借阅”中进行查看。
还书功能通过在“当前借阅”中点击“还书”按钮,进行确认还书,将book表中本书的borrowperson列的值改为“空”,本书信息将可以在“借书”界面查看。
四.存在的问题1.原本希望能为每一个用户创建一个对应的以其账号命名的数据表,用以存放用户所借图书信息,但创建表的SQL语句无法在java代码中执行,所以只好在book表中添加一列borrowperson,用来存放借阅本书的用户账号,这样查询用户当前借阅记录时,以“whereborrowperson=‘account’”为条件对book表进行查询即可。
但是每个用户要当前查询借阅记录时都需要对整个book表进行遍历,效率太低。
2.模糊查询时,因同时需要进行where筛选,SQL语句无法执行,只好分开查询,先进行模糊查询,查询结果存放到list表中,再通过遍历list表进行判断是否符合where的条件,若符合,则存入另一个list表中。
这种方法虽然实现了查询,但效率太低,代码过于繁重。
五.改进预想这些本不应该是预想,原本希望在本次作业中实现的,但时间不够充分,只能作为下一步的改建预想。
1.希望实现登录时验证码验证登录;
2.希望实现查询时,查询结果分页浏览;
3.进一步优化Action之间的传值方法;
4.页面进一步优化、美化;
5.实现用户借书还书时间记录,和借阅时长限制。
2025/7/20 9:38:38 13.98MB Struts2
1
内容简介······《字体设计的规则与艺术》分为衬线大写字母、衬线小写字母、无衬线大写字母、无衬线小写字母、数字、标点符号、变音符号和间距几个部分,介绍了字体设计的规则与方法。
《字体设计的规则与艺》呈现了大量字体样本和图解,对字体创作的流程进行了深度解析,生动诠释了字体设计的视觉要领,探讨了字体的结构、视觉补偿及可辨认性,阐述了一种字体中字母与负形的系统关联。
《字体设计的规则与艺》分析了大量历史上的经典字体及现代字体,并展示了很多学生作品的典型案例,将理论与实际操作相结合,不但能使读者掌握字体设计的规律,还能为他们打开创作思路。
  《字体设计的规则与艺》适用于设计专业的老师和学生阅读,同时也供从业的设计师参考。
作者简介······凯伦程是美国西雅图市华盛顿大学视觉交流设计项目的副教授,主要教授该大学的字体设计和字体排印学课程。
她是一名积极的字体设计实践者,其设计作品早已获得了美国平面设计师协会(AIGA)、ID杂志和美国设计中心的认可。
她在ID杂志上出版了《交流艺术》一书。
目录······引言设计流程字体设计中的变量字母的“部位”字体分类========================================================衬线大写字母(SerifCapitals)衬线大写字母O衬线大写字母E衬线大写字母C衬线大写字母G衬线大写字母D衬线大写字母B衬线大写字母P和R衬线大写字母J衬线大写字母Q衬线大写字母S衬线大写字母I、H、T、F和L衬线大写字母V和A衬线大写字母U衬线大写字母X衬线大写字母W衬线大写字母Y衬线大写字母M衬线大写字母N衬线大写字母K衬线大写字母Z========================================================衬线小写字母(SerifLowerCase)衬线小写字母o和l衬线小写字母d、q、b和p衬线小写字母e和c衬线小写字母n、h、m和u衬线小写字母r衬线小写字母a衬线小写字母s衬线小写字母g衬线小写字母i和j衬线小写字母f和t衬线小写字母v、w和y衬线小写字母k衬线小写字母x和z无衬线大写字母(SansSerifCapitals)无衬线大写字母O和E无衬线大写字母I、H、T、L和F无衬线大写字母S、C和G无衬线大写字母U和J无衬线大写字母D、B、R和P无衬线大写字母Q无衬线大写字母V、A和W无衬线大写字母K、X和Y无衬线大写字母M,N和Z========================================================无衬线小写字母(SansSerifLowerCase)无衬线小写字母o和l无衬线小写字母d、b、p和q无衬线小写字母s、c和e无衬线小写字母a和g无衬线小写字母n、m、h、u和r无衬线小写字母i、j、f和t无衬线小写字母v、w和y无衬线小写字母k、x和z数字(Numbers)数字0和1数字2数字4数字7数字3和5数字6和9数字8标点符号(Punctuation)句号、逗号、冒号和分号引号问号和感叹号========================================================变音符号(DiacriticalMarks)尖音符和钝音符长音符号元音变音符和分音符波浪符号软音符合字========================================================间距(Spacing)字母的安全空间测试间距单词间距、数字间距和标点符号间距========================================================字距调整(Kerning)参考书目(References)索引(Index)
2025/7/17 15:31:52 37.19MB 字体设计 规则 艺术
1
第9节+ID制作小说内页.rar
2025/7/14 19:52:35 25.8MB ai
1
(1).信息员工信息:登陆ID和密码,员工姓名,员工性别,员工工资,部门,入职日期,离职日期,学历,员工状态,家庭地址;
用户信息:用户名,性别,身份证号,手机号,入住时间,退房时间,房型;
餐饮信息:早中晚餐,零食,饮料;
(2).用户管理模块1.员工:(前台,保洁,服务生)添加账户:初步添加需输入管理员账户密码,添加后可对姓名地址等再完善删除用户:用户不能删除,只能是离职或在职状态修改用户:用户能对自己的除账号以外的信息进行修改查询用户:只能管理员对用户进行查询2.管理员(经理)添加账户:只有一个管理员账户删除用户:用户不能删除修改用户:可修改密码查询用户:可以查询用户状态,登陆记录,出勤记录等信息(3).用户住店管理模块增:用户入住时,前台记录用户信息;
删:不可删除查:查询用户入住信息(4).用户应用模块1.点餐;
2.保洁;
2025/7/13 16:21:15 20.91MB Java 酒店管理系统 数据库
1
是一个Windows下使用FFMPEG解码视频并使用QPaint绘制到QWidget上FFMPEG的版本是2.5.2记得将ffmpeg/bin目录下的dll文件拷贝到编译生成的exe所在的目录下,否则会无法运行。
关于代码的解释请参考:http://blog.yundiantech.com/?log=blog&id=9
2025/7/5 19:44:45 13.05MB FFMPEG
1
tawk.toiOS实用测试GitHub用户如果先前已加载数据,则该应用程序必须能够脱机工作。
该应用程序必须处理没有互联网的情况,并显示适当的UI指示器。
连接可用后,应用程序必须自动重试加载数据。
如果以前的启动有可用数据(保存在数据库中),则应首先显示该数据,然后(并行)从后端获取新数据。
用户清单Github上的用户列表可以从以下地址获得JSON格式。
该列表必须支持分页(滚动以加载更多内容),因为p参数是最后加载的User的整数ID。
第一批加载后必须动态确定页面大小。
在将数据作为最后一个列表项加载时,列表必须显示微调框。
每四个化身的颜色都应使其颜色反转。
如果存在为给定用户保存的注释信息,则列表项视图应具有注释图标。
用户列表必须是可搜索的-仅本地搜索;
在搜索模式下,没有分页;搜索时应使用用户名和注释(请参阅“个人资料”部分)字段;
应该使用精
2025/7/5 5:34:51 53KB swift ios Swift
1
H5网页支付使用说明Global_traffic_style.css-------------样式文件,不用改return_url.php-----------------------支付成功后回调处理文件,不用改uccess.php---------------------------支付成功或取消支付后跳转的文件,不用改wechatAppPay.class.php---------------微信支付类文件,不用改wxpay.php----------------------------H5支付主文件,需要修改配置参数注意事项:1,修改wxpay.php文件的参数define('APPID','APPID');define('APIKEY','安全密钥');define('MCH_ID','商户ID');define('NOTIFY_URL','http://你的域名/return_url.php');2,H5支付不能直接在微信浏览器中打开支付,需要打开外部浏览器才能支付。
3,微信公众号需要设置网页授权域名,添加支付目录,业务域名,js安全域。
(这项我不确定,公众号支付是要设置这些的)4,需要在线上测试并且服务器要有写入权限,在程序运行过程中会生成日志文件。
2025/6/30 21:09:32 255KB 微信 H5 支付
1
STM32CAN接收过滤和发送图文详解-通过对CANBUS协议的理解,我们知道:CAN总线上的节点接收或发送数据都是以帧为单位的!!!CAN协议规定了好几种帧类型,但是对于我们应用来说,只有数据帧和远程帧可以通过软件编程来控制。
(其他几种帧都是由CAN控制器硬件实现的,我们想管也管不了)。
而数据帧和远程帧最大的区别在于:远程帧没有数据域。
数据帧分为标准数据帧和扩展数据帧,它们之间最大的区别在于:标识符(ID)长度不同(标准帧为11位,扩展帧为29位)。
为了能更好地理解下面的内容,让我们先来回忆一下标准数据帧是什么样子的:
2025/6/30 6:23:22 1.3MB CAN接收过滤
1
特别说明:1、需要在Helper\DapperK3文件中修改连接字符串2、物料ID写死,根据实际情况自行修改.3、需要先regsvr32KDZIP.dll进行注册后才能使用.4、烦请使用x86CPU方式运行.
2025/6/28 9:09:33 1.9MB C# K3 WISE 二次开发
1
毕业设计源码文档:基于Android的音乐播放器的设计与实现,由湖南工业大学计算机与通信学院学生编写开发,制作音乐播放器所用的技术,制作流程和功能介绍。
本论文的音乐播放器采用了Android开源系统技术,利用Java语言和Eclipse编辑工具对播放器进行编写。
同时给出了详细的系统设计过程、部分界面图及主要功能运行流程图,本文还对调试过程中遇到的问题和解决方法进行了详细的讨论。
  播放器实现的功能主要有:本地播放、暂停、上一曲、下一曲、歌曲下载、歌曲搜索、在线播放等。
音乐播放器包括五大界面,收藏界面,播放界面,列表界面,在线音乐界面,下载界面;
采用统一的颜色格调,操作流畅。
同时登录后还有分享到微信,qq,微博的功能,以及根据储存路径删除音乐文件和根据id删除mediastore的歌曲记录。
登陆注册是一个自定义的alertdialog弹出框,写入sqlitedatabase进行验证判断。
  通过这个音乐播放器的设计制作,接触了曾经没有涉猎的技术领域。
同时也系统地复习了android和java语言,可以说是收获颇丰。
  该播放器能流畅的播放所有MP3文件,操作流畅,使用方便。
  关键词:网络爬虫,数据库,消息机制,播放器
2025/6/24 2:41:14 4.38MB Android源码-多媒体编程
1
共 708 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡