🙊作者简介:多年一线开发工作经验,原创团队,分享技术代码帮助学生学习,独立完成自己的网站项目。
- 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹
- 赠送计算机毕业设计600个选题excel文件,帮助大学选题。
- 赠送开题报告模板,帮助书写开题报告。
作者完整代码目录供你选择:
⬇️文章末尾可以获取联系方式,需要源码或者演示视频可以联系⬇️
⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡
项目展示
第一章 绪论
1.1研究背景
科学技术日新月异的如今,计算机在生活各个领域都占有重要的作用,尤其在信息管理方面,在这样的大背景下,学习计算机知识不仅仅是为了掌握一种技能,更重要的是能够让它真正地使用到实践中去,以创新的视角去不断方便人们的生活,推动对新知识的学习,培养自学能力,锻炼动手实践的本领。现代的理发店管理,也应该摆脱人工管理的模式,使用计算机技术来进行信息管理工作。所以本次系统设计的理发店管理结合了文字、图像,并能实现理发店管理的功能,这也是一般理发店管理系统的要素。理发店管理系统经过几年的实践和总结正在往更深入的方向发展。由此,人们要改善系统功能迫在眉睫。随着科学技术的飞速发展,理发店管理系统也要不断完善其工作流程的繁杂性、多样化、管理复杂、收缴费用与设备维护繁琐等存在的问题。所以要通过计算机胜任理发店管理管理的工作,使理发店管理系统更加准确、方便及快捷。
因此,开发出一套高效率、低差错的理发店管理系统是十分必要。本系统主要目的是全面实现理发店数字化,管理员对于用户的所有信息能够全部掌握,而用户能够对理发店信息能够有一个直观的了解。
现如今,理发店管理的服务并不够完善,就是尽管实行了理发店管理,但系统进行的管理力量远远不够,所以有很多地区的理发店管理工作只停留在传统的服务状态。同时,因资金有限再加上也缺少专业水平的工作人员,所以理发店的管理手段较为落后,也就很难提高理发店管理效率,同时也就不能很好的为用户提供更为完善的服务。现在市场管理都是通过手动来进行记录及操作,不但麻烦琐碎,还经常出现错误,给广大用户带来很不便,同时也需要大量的人力、物力和财力,极大的浪费了理发店管理的资源。随着理发店行业的快速发展,人们慢慢地来希望理发店管理系统能够提供更为合理及完善的理发店服务。现在,好的理发店管理也成为广大用户们选择的关键。
本次设计任务是要设计一个理发店管理系统,通过这个系统能够满足理发店管理功能。系统的主要功能包括:个人中心,用户管理,发型师管理,发型师简介管理,发型师预约管理,发型分类管理,发型展示管理,物品管理,物品入库管理,物品出库管理,公告信息管理,系统管理,订单管理等。
管理员可以根据系统给定的账号进行登录,登录后可以进入理发店管理系统对所有模块进行管理。包括查看和修改自己的个人信息以及登录密码。
该系统为每一个用户都分配了一个用户账号,用户通过账号的登录可以在系统中查看理发店信息及对个人信息进行修改等功能。
1.4系统实现的特点
本系统提供给管理员对个人中心,用户管理,发型师管理,发型师简介管理,发型师预约管理,发型分类管理,发型展示管理,物品管理,物品入库管理,物品出库管理,公告信息管理,系统管理,订单管理等诸多功能进行管理。本系统对于用户输入的任何信息都进行了一定的验证,为管理员操作提高了效率,也使其数据安全性得到了保障。
1.5本文的组织结构
本文的组织结构如下:
1、绪论。综述了本文的研究背景,分析了理发店管理系统的结构;更好的从用户的角度出发,发现当今理发店管理系统中的不足,同时要指出本次系统中的特色。
2、对系统主要的使用java技术,开发环境、环境配置的介绍。介绍了本次开发所用的系统开发环境MyEclipse,还介绍了Tomcat环境配置、java技术和MySql环境配置。
3、系统的设计与实现。介绍了开发理发店管理管理信息系统的思路并进行了需求分析,在需求分析的基础上进行了总体设计、详细设计以及数据库等相关方面介绍;该部分是全文的主旨。
4、系统功能模块具体实现。对开发中一些主要具体功能的实现进行描述。涉及到数据库、页面参数传递等相关知识。
5、对系统进行测试。
6、总结与展望。对整个论文及设计过程进行总结,指出系统设计过程的心得以及设计中存在的不足;后期还有待完善的地方等,包括致谢。
第二章开发技术与环境配置
以Java语言为开发工具,利用了当前先进的技术,以MyEclipse10为系统开发工具,MySQL为后台数据库,开发的一个理发店管理系统。
2.1 Java语言简介
Java是由SUN公司推出,该公司于2010年被oracle公司收购。Java本是印度尼西亚的一个叫做爪洼岛的英文名称,也因此得来java是一杯正冒着热气咖啡的标识。Java语言在移动互联网的大背景下具备了显著的优势和广阔的前景,它是面向对象的,分布式的,动态的,具有平台无关性、安全性、健壮性。Java语言的基本语句语法和C++一样,但是它面向对象的技术更加彻底,因为Java要求将所有的内容都必须封装成类,把类作为程序的基本单位。由于不允许类外有变量、方法。 Java语言的分布式体现在数据分布和操作分布,它是面向网络的语言,可以处理TCP/IP协议,它也支持客户机/服务器的计算模式。Java语言的动态性是指类在运行时是动态安装的,使得Java可以动态的维护程序。Java不支持指针,对内存访问的所有操作都是通过对象实例化实现的,这样就避免了指针操作中易产生的错误,同时也预防了病毒对系统的破坏和威胁。
Java语言的编程风格与C语言非常接近,它继承了C++面向对象技术的核心,它面世之后发展迅速,非常流行,对高级C语言形成了很大的冲击。业内人士称之为“一次编译、到处执行”。当然java也有缺点,在每次执行编译后,字节码都需要消耗一定的时间,在某些程度上降低了性能。但是这并不影响java成为此次设计语言的选择。Java语言简单易学,使用它的编程时间短,功能性强,开发者学习起来更简便、更快。Java的主要特性有以下几个:
1.面向对象
面向对象有四个特点:封装、继承、多态、抽象。抽象是指忽略一个问题中的次要部分,关注主要部分。多态是指对同一种消息做出的不同反应。继承是指在原有的父类方法基础上增加自己独有的方法,而不改变原来父类。
2.平台无关性
Java编译出来的是字节码,直接由虚拟机执行。在任何平台上,只要有Java虚拟机,Java代码都能运行。
3.可靠性和安全性
Java对内存的访问都必须通过对象的实例变量来实现,避免了指针中出现的错误。
4.多线程
Java提供了多线程功能,利用编程实现同一时间同时工作的功能。
2.2JSP技术
JSP(JAVA SERVER PAGES,java服务器页面)自面世以来就被大家所广泛使用,JSP是一种基于文本的程序,同时也是是一种动态网页技术标准。为了简化Servlet的工作(Servlet输出HTML非常困难,JSP就是替代Servlet输出HTML的),而JSP的诞生并不是由一家公司完成,而是经过多家企业的共同研究开发出来的(在SUN MICROSYSTEMS公司领头下)。
JSP具有跨平台,分离静态内容和动态内容,可重复使用组件,预编译,沿用java Servlet所有功能等技术特征。跨平台指JSP是运用java来开发的动态网页技术,JSP继承了Java具有的大部分性质(JSP是JAVA WEB应用的主要视图,但不是唯一的)。分离静态内容和动态内容:无论是javabean、servlet以及嵌入在html代码之间的JSP代码都与html静态页面相分离,如javabean封装一些业务逻辑。可重复使用的组件:这里还是要提一下javabean,无论是值bean还是工具bean都是可重复使用,大大的提高了工作的效率。预编译:JSP页面在被服务器执行前就已经被编译好了,并且只在JSP页面第一次请求时进行编译,后续请求JSP未被修改时则直接掉用之前编译好的代码。JSP沿用了java Servlet的所有功能,并在servlet的额基础上做了很大改进,比如在分离静态内容和动态内容上,servlet所有内容都要在java代码中完成,JSP弥补了这个缺点,服务器先将JSP文件转化为servlet代码然后在进行编译。
2.3 MySQL环境配置
(1)本系统的数据使用的是MySQL,所以要将MySQL安装到指定目录,如果下载的是非安装的MySQL压缩包,直接解压到指定目录就可以了。然后点击C:\Program Files\MySQL\bin\winMySQLadmin.exe这个文件其中C:\Program Files\MySQL是MySQL安装目录。输入winMySQLadmin的初始用户、密码(注:这不是MySQL里的用户、密码)随便填不必在意,确定之后右下角任务的启动栏会出现一个红绿灯的图标,红灯亮代表服务停止,绿灯亮代表服务正常,左击这个图标->winnt->install the service 安装此服务,再左击这个图标->winnt->start the service 启动MySQL服务。
(2)修改MySQL数据库的root密码。用cmd进入命令行模式输入如下命令:
cd C:\Program Files\MySQL\bin
MySQLadmin -u root -p password 123
回车出现Enter password: ,这是要输入原密码. 刚安装时密码为空,所以直接回车,此时MySQL 中账号 root 的密码被改为 123 安装完毕。
2.4 MyEclipse环境配置
安装完MyEclipse后选择myeclipse“Window->Preferences”
(1)配置myeclipse的jre为sun的jdk,不要用myeclipse的默认jdk:
选择“java->Installed JREs”,勾中里面的“jdk1.7”.
(2)配置编译的级别为6.0:
选择“Compiler->Compiler compliance level”的值为“6.0”。
(3)配置myeclipse的默认的文件编码格式为“UTF-8”:
选择“General->Workspace”,选中“Text file encod”下面的“Other”,设置里面的值为“UTF-8”。
(4)去掉myeclipse的JSP的验证:
选择“MyEclipse->Validation”,将“Build”列的所有勾都给去掉,这样在编译时因为避免了jsp的验证,所以编译的速度会快很多.
2.5 mysql数据库介绍
利用MYSQL的数据独立性、安全性等特点,在软件项目中对数据进行操作,可以保证数据准确无误,并降低了程序员的应用开发时间。
MYSQL的特点是支持多线程,能方便的对系统资源充分利用,有效提高速度,还提供多种方式途径来对数据库进行连接;MYSQL的功能相对弱小、规模也小,但本系统要求不高,MYSQL完全可以满足本网站使用。
利用MYSQL建立系统数据库,不仅有利于数据处理业务的早期整合,还能利于发展后两种数据扩展的操作。
2.6 B/S架构
B/S结构是目前使用最多的结构模式,它可以使得系统的开发更加的简单,好操作,而且还可以对其进行维护。使用该结构时只需要在计算机中安装数据库,和一些很常用的浏览器就可以了。浏览器就会与数据库进行信息的连接,可以实现很多的功能,B/S结构是可以直接进行使用的,而且B/S结构在使用中极大的减少了工作的维护。基于B/S的软件,所有的数据库之间都是相互独立的,因此是非常安全的。因为基于B/S结构可以清楚的看到系统正在处理的业务,并且能够及时的让管理人员做出决策,这样就可以避免企业的损失。B/S结构的基本特点是集中式的管理模式,用户使用系统生成数据后,这些数据就可以存储到系统的数据库中,方便日后能够用到,这样就可以满足人们的所有的需求。
图2-1 B/S模式三层结构图
第三章系统分析与设计
3.1可行性分析
一个完整的系统,可行性分析是必须要有的,因为关系到系统生存问题,对开发的意义进行分析,能否通过本网站来补充线下理发店管理模式中的缺限,去解决其中的不足等,通过对本网站,不仅能使工作量不断地减少,还能使工作和管理的效率更加高。所以开发该网站能实现更大的意义和价值, 网站完成后,能否达到预期效果就要通过可行性分析,分析之后,决定此系统是否开发。该理发店管理系统的开发设计中,对技术、经济、操作方面进行了可行性分析。
3.1.1技术可行性
本系统开发选择java语言,它被研究的目的就是在于能够为网页创建等可以看到的信息。随着移动互联网技术的不断发展和创新,java俨然已成为下一代互联网的Web标准。所以后台设计选择使用mysql数据库主要用来的建立和维护信息。对于前台开发要求应具备功能完善、易于操作等优点,后台数据库的要求则是能够建立和维护数据信息的统一性和完整性。
3.1.2操作可行性
现在随着科技的飞速发展,计算机早已经进入了人们的日常生活中,人们的工作环境也不像以前有那么多的要求,需要员工一定要到公司办公,有的工作在家也可以完成。这使得人们的工作效益有了很大的提高。操作的多样性也变高了。因此,管理的计算机化,智能化是社会发展而带来的必然趋势,各种智能的软件层出不穷,不同的软件能完成用户不同的需求,这不仅提高了工作效率还能完成一些客户特定的一些需求。本系统不仅界面简洁明了还采用可视化界面,用户只要用鼠标和键盘就可以完成对相关信息的修改,删除,添加等操作。因为这个系统的操作十分简单,方便上手,对于第一次使用系统的人,只需要很少的时间就可以上手操作。由此可见,本系统在操作上是可行的。
3.1.3经济可行性
理发店管理系统,该网站软件开发仅需要一台普通的计算机便可完成实现开发,其成本很低。另外,作为毕业设计作品来讲,开发成本基本上可以忽略不计,且该系统软件的投入使用,可以实现更加快速高效的理发店管理,同时还能实现对人力资源和管理资源的有效节约,该理发店管理系统在经济上完全可行。
利用Java、MyEclipse和mysql数据库等知识点,结合相关设计模式、以及软件工程的相关知识,设计一个理发店管理系统,来进行记录用户的信息,以及系统信息的增删改查的功能,根据实现需求,系统需完成这些基本功能:
(1)系统合理显示系统前台界面、管理员功能界面、用户后台管理等界面。
(2)用户和管理员所有的信息都保存与数据库中。
(3)对理发店信息能够进行查询、修改、删除、添加等操作。
根据理发店管理系统的功能需求,进行系统设计。
前台功能:用户进入系统可以对首页,发型师简介,发型展示,公告信息,美发资讯,个人中心,后台管理,购物车,在线客服等功能进行操作。
后台主要功能包括个人中心,用户管理,发型师管理,发型师简介管理,发型师预约管理,发型分类管理,发型展示管理,物品管理,物品入库管理,物品出库管理,公告信息管理,系统管理,订单管理等。
系统对这些功能进行整合,产生的功能结构图如下:
物品管理实体属性图如下所示:
表3-5:用户
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
zhanghao |
varchar |
200 |
账号 |
||
mima |
varchar |
200 |
密码 |
||
xingming |
varchar |
200 |
姓名 |
||
chushengriqi |
date |
出生日期 |
|||
xingbie |
varchar |
200 |
性别 |
||
shouji |
varchar |
200 |
手机 |
||
shenfenzheng |
varchar |
200 |
身份证 |
||
youxiang |
varchar |
200 |
邮箱 |
||
zhaopian |
varchar |
200 |
照片 |
||
money |
float |
余额 |
0 |
表3-6:物品入库
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
wupinbianhao |
varchar |
200 |
物品编号 |
||
wupinmingcheng |
varchar |
200 |
物品名称 |
||
wupintupian |
varchar |
200 |
物品图片 |
||
rukushijian |
datetime |
入库时间 |
|||
shuliang |
int |
数量 |
表3-7:发型展示
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
fenlei |
varchar |
200 |
分类 |
||
xingbie |
varchar |
200 |
性别 |
||
mingcheng |
varchar |
200 |
名称 |
||
fengmian |
varchar |
200 |
封面 |
||
jianjie |
longtext |
4294967295 |
简介 |
||
xiaoguo |
longtext |
4294967295 |
效果 |
||
clicktime |
datetime |
最近点击时间 |
|||
price |
float |
价格 |
表3-8:发型师预约
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
gonghao |
varchar |
200 |
工号 |
||
mingzi |
varchar |
200 |
名字 |
||
zhaopian |
varchar |
200 |
照片 |
||
jiage |
int |
价格 |
|||
zhanghao |
varchar |
200 |
账号 |
||
xingming |
varchar |
200 |
姓名 |
||
yuyueshijian |
datetime |
预约时间 |
|||
ispay |
varchar |
200 |
是否支付 |
未支付 |
表3-9:发型师简介
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
gonghao |
varchar |
200 |
工号 |
||
mingzi |
varchar |
200 |
名字 |
||
zhaopian |
varchar |
200 |
照片 |
||
jianjie |
longtext |
4294967295 |
简介 |
||
fuwumingxi |
longtext |
4294967295 |
服务明细 |
||
jiage |
int |
价格 |
|||
thumbsupnum |
int |
赞 |
0 |
||
crazilynum |
int |
踩 |
0 |
表3-10:发型师
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
gonghao |
varchar |
200 |
工号 |
||
mima |
varchar |
200 |
密码 |
||
mingzi |
varchar |
200 |
名字 |
||
xingbie |
varchar |
200 |
性别 |
||
shouji |
varchar |
200 |
手机 |
||
shenfenzheng |
varchar |
200 |
身份证 |
||
shengri |
date |
生日 |
|||
youxiang |
varchar |
200 |
邮箱 |
||
zhaopian |
varchar |
200 |
照片 |
||
money |
float |
余额 |
0 |
表3-11:发型分类
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
fenlei |
varchar |
200 |
分类 |
表3-12:发型师简介评论表
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
refid |
bigint |
关联表id |
|||
userid |
bigint |
用户id |
|||
nickname |
varchar |
200 |
用户名 |
||
content |
longtext |
4294967295 |
评论内容 |
||
reply |
longtext |
4294967295 |
回复内容 |
表3-13:配置文件
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
name |
varchar |
100 |
配置参数名称 |
||
value |
varchar |
100 |
配置参数值 |
表3-14:收藏表
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
userid |
bigint |
用户id |
|||
refid |
bigint |
收藏id |
|||
tablename |
varchar |
200 |
表名 |
||
name |
varchar |
200 |
收藏名称 |
||
picture |
varchar |
200 |
收藏图片 |
||
type |
varchar |
200 |
类型(1:收藏,21:赞,22:踩) |
1 |
|
inteltype |
varchar |
200 |
推荐类型 |
表3-15:在线客服
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
userid |
bigint |
用户id |
|||
adminid |
bigint |
管理员id |
|||
ask |
longtext |
4294967295 |
提问 |
||
reply |
longtext |
4294967295 |
回复 |
||
isreply |
int |
是否回复 |
表3-16:订单
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
orderid |
varchar |
200 |
订单编号 |
||
tablename |
varchar |
200 |
商品表名 |
faxingzhanshi |
|
userid |
bigint |
用户id |
|||
goodid |
bigint |
商品id |
|||
goodname |
varchar |
200 |
商品名称 |
||
picture |
varchar |
200 |
商品图片 |
||
buynumber |
int |
购买数量 |
|||
price |
float |
价格 |
0 |
||
discountprice |
float |
折扣价格 |
0 |
||
total |
float |
总价格 |
0 |
||
discounttotal |
float |
折扣总价格 |
0 |
||
type |
int |
支付类型 |
1 |
||
status |
varchar |
200 |
状态 |
||
address |
varchar |
200 |
地址 |
||
tel |
varchar |
200 |
电话 |
||
consignee |
varchar |
200 |
收货人 |
||
logistics |
longtext |
4294967295 |
物流 |
表3-17:购物车表
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
tablename |
varchar |
200 |
商品表名 |
faxingzhanshi |
|
userid |
bigint |
用户id |
|||
goodid |
bigint |
商品id |
|||
goodname |
varchar |
200 |
商品名称 |
||
picture |
varchar |
200 |
图片 |
||
buynumber |
int |
购买数量 |
|||
price |
float |
单价 |
|||
discountprice |
float |
会员价 |
表3-18:美发资讯
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
title |
varchar |
200 |
标题 |
||
introduction |
longtext |
4294967295 |
简介 |
||
picture |
varchar |
200 |
图片 |
||
content |
longtext |
4294967295 |
内容 |
表3-19:地址
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
userid |
bigint |
用户id |
|||
address |
varchar |
200 |
地址 |
||
name |
varchar |
200 |
收货人 |
||
phone |
varchar |
200 |
电话 |
||
isdefault |
varchar |
200 |
是否默认地址[是/否] |
表3-20:公告信息
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
gonggaobiaoti |
varchar |
200 |
公告标题 |
||
gonggaotupian |
varchar |
200 |
公告图片 |
||
gonggaoneirong |
longtext |
4294967295 |
公告内容 |
||
gonggaoshijian |
datetime |
公告时间 |
第四章 系统功能的具体实现
4.1系统功能模块
理发店管理系统,用户进入到系统首页,可以查看首页,发型师简介,发型展示,公告信息,美发资讯,个人中心,后台管理,购物车,在线客服等内容进行操作,如图4-1所示。
图4-1系统首页界面图
发型展示;在发型展示页面中可以查看价格,分类,件别,简介等内容,并进行添加到购物车,立即购买等操作;如图4-2所示。
个人中心,在个人中心页面中输入账号,密码,姓名,性别,出生日期,手机,身份证等内容进行更新信息,并可以根据需要对我的订单进行详细的操作,如图4-3所示。
图-3个人中心界面图
4.2管理员功能模块
管理员登录,通过填写注册时输入的用户名、密码、选择角色等信息进行登录操作,如图4-4所示。
管理员登录进入理发店管理系统可以查看个人中心,用户管理,发型师管理,发型师简介管理,发型师预约管理,发型分类管理,发型展示管理,物品管理,物品入库管理,物品出库管理,公告信息管理,系统管理,订单管理等信息进行详细操作,如图4-5所示。
用户管理;在用户管理页面中可以对账号,姓名,出生日期,性别,手机,身份证,邮箱,照片等内容进行查看,修改和删除等操作;如图4-6所示。
发型师管理;在发型师管理页面中可以对工号,名字,性别,手机,身份证,生日,邮箱,照片等信息进行查看,修改和删除等操作;如图4-7所示。
发型师简介管理;在发型师简介管理页面可以对工号,名字,照片,简介,价格等内容进行预约,查看,修改,查看评论和删除等操作;如图4-8所示。
图4-8发型师简介管理界面图
发型师预约管理;在发型师预约管理页面中可以对工号,名字,照片,价格,账号,姓名,预约时间,是否支付等内容进行查看,修改和删除等操作;如图4-9所示。
图4-9发型师预约管理界面图
发型展示管理;在发型展示管理页面中可以对分类,性别,名称,封面,简介,价格等内容进行查看,修改和删除等操作;如图4-10所示。
图4-10发型展示管理界面图
物品管理;在物品管理页面中可以对物品编号,物品名称,物品图片,数量等内容进行入库,出库,查看,修改和删除等操作;如图4-11所示。
图4-11物品管理界面图
系统管理;在美发资讯列表页面中可以对标题,简介,图片等内容进行查看,修改和删除等操作;如图4-12所示。
第五章 系统测试
系统测试是软件开发过程中最后一步,但也是不可或缺的重要的一步,没有人可以保证一次性编写完成的系统不会出错,而系统测试就是将自己开发的系统成为成品前的最后一步。在测试过程中需要进行严谨细致的测试,要尽可能全面地在不同情况下运行该系统,排除一切出现错误的可能。
系统测试不仅仅是发现系统潜在的BUG或错误,而更为重要的是为用户提供一个良好的体验和安全可使用的产品服务。而通过发现错误或潜在的问题,将有助于提升产品的竞争力,这也是软件测试的其中的重要目的之一。
软件测试的方法有好几种,但目前主要采用的是包括以功能为主要测试方向的黑盒测试以及以逻辑为主要测试方向的白盒测试,这是两种不同的测试方法,针对的测试侧重点不同,本课题根据实际需求情况,选择以功能为主要的黑盒测试方法,同时测试是要遵循一定的规则来执行的,一个测试要执行其执行的依据一般是由测试用例来规定的,而测试用例一般是依据需求或说明书来综合制定的,测试在硬件出厂前是十分重要的一个过程,本课题由于时间和精力的关系,选择以实现的功能作为测试要点来进行测试。具体测试过程如下:
测试用例1及测试过程:
登录:录入登录信息,账号,密码,权限,然后单击登录进行操作,会出现两种情况:一种情况是登录成功,进入用户相应的功能界面进行下一步操作;另一种情况是提示登录失败,系统会弹出一个对话框要求重新登录操作。
测试用例2及测试过程:
管理员登录:录入登录信息,管理员账号,密码,权限,然后单击登录进行操作,会出现两种情况:登录成功进入管理员具有权限的功能界面和提示登录失败。一种情况是登录成功,进入管理员界面进行下一步操作;另一种情况是提示登录失败,系统会弹出一个对话框要求重新登录操作。
第六章 总 结
在这次毕业设计中,我使用了java技术,选择MySQL作为后台数据库进行访问及修改。在设计开始之初,我也在苦恼于系统的逻辑功能的具体实现,因为我对于理发店管理管理的概念还较为模糊,其间我也查询了大量的网上资料,清楚了解实际生活中理发店管理管理主要面对的对象和管理需要完成的基本功能。
虽然在这过程中也遇到了许多的困难,主要有系统逻辑功能不合适和系统设计中出错,当在自己查阅资料无法解决之时,我也会与同学和老师进行请教和讨论,所以在这个过程之中,也让我清楚的认识到自己的不足以及团队的力量才是最大,以后不论是在学习还是工作中,都要融入到集体之中,那样自己才会成长的更快。
当然,在此次设计中,仍然存在着很多的不足,本来之前我想让其系统可以更为完美的实现角色与权限之间的控制,让系统中每一次的权限操作都进行控制,但是也因为时间的不足以及本人的能力有限,并未完成,我希望自己在以后的学习中继续完善,使这个系统更贴近实际的操作。
[1] 李兴华. JavaWeb开发实战经典基础篇(第1版)[M].北京:清华大学出版社,2010.8
[2] 程志艳, 张亮. JSP实用简明教程[M].北京:清华大学出版社,2005.12
[3] 陈刚. Eclipse从入门到精通[M].北京:清华大学出版社,2005.6
[4] 李勇平.JSP应用开发详解[M].电子工业出版社,2005.10
[5] 郑自国,邹丰义.Java案例开发集锦[M].北京:电子工业出版社,2005.2
[6] 张孝祥. 深入Java Web开发内幕——核心基础[M]. 北京:电子工业出版社. 2006
[7] 李安渝. Web Services技术与实现[M]. 北京:国防工业出版社,2003
[8] 孙卫琴,李洪成.Tomcat 与 Java Web 开发技术详解[M].电子工业出版社,2003.6:1-205
[9] 曹广鑫 编著.JSP数据库项目开发宝典[M].北京:电子工业出版社,2006
[10] 王剑,邓武.基于Web服务面向服务的动态电子商务应用框架研究[J].科学技术与工程,2008,2(3):65-90
[11] 周旌恒.JSP应用开发详解(第三版)[M].北京:电子工业出版社,2004
[12] Shanliang Xue;Qing Yan Wei;Guang Ming Jiao;Dun Wen Zuo. Research Code Management System Based on J2EE[J]. Key Engineering Material.2010,Vol.431-432(188-191)
[13] Yan Ming Li;Li Feng Wan. Design On Framework Structure of College English Learning Management System Based on Struts2[J].Advanced Materials Research.2013,Vol.846-847(1558-1561)
[14]Bruce Eckel. Thinking in Java[M]. Upper Saddle River, New Jersey, USA: Prentice Hall, 2006
[15] Joshua Bloch. Effective Java[M]. Piscataway, N.J: IEEE Press, 2009
[16] Juan Lipson Vuong.A semantics-based routing scheme for grid resource discovery[M].E-Science: First
International Conference on E-Science and GridComputing,2005:58-70,90
在此次毕业设计中,我需要感谢老师的细心指导,是我的指导老师在我遇到困难无助之时给予我帮助,是他在我思绪混乱之时给我理顺条理,是他在我论文不符时仔细帮我修改。作为学生的我来说,在此次设计中我也清楚地认识到自己的局限性,也是因为老师的指引才让我更为完善地进行设计。同时我也还要感谢我的同学,在设计过程中,我一个人解决方法能力也是有限的,当我遇到困惑之时,通过与他们的讨论,虽然并不一定能完全解决我的问题,但是也总是能给我提供灵感,因为可能一个人的思路有时候就是固定的,很难走出来,所以你就需要那一个人帮你走出固定的框子,感谢他们在我系统和论文排版上面的热心帮助。
最后,由于本人学习水平的有限,所写论文难免有不足之处,恳请各位老师的指导和指正,本人将虚心接受。
核心代码展示
/**
* 登录相关
*/
@RequestMapping("users")
@RestController
public class UserController{
@Autowired
private UserService userService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}
/**
* 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
userService.update(user,null);
return R.ok("密码已重置为:123456");
}
/**
* 列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/list")
public R list( UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
ew.allEq(MPUtil.allEQMapPre( user, "user"));
return R.ok().put("data", userService.selectListView(ew));
}
/**
* 信息
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Long id = (Long)request.getSession().getAttribute("userId");
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 保存
*/
@PostMapping("/save")
public R save(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
userService.updateById(user);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
userService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
项目推荐
【计算机毕业设计】基于Springboot的网上购物商城销售系统
⬇️文章末尾可以获取联系方式,需要源码,高清图片,演示视频可以联系(不开源)⬇️
⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡