一 项目介绍
本项目采用集成开发平台IntelliJ IDEA开发了在线作业成绩统计系统的设计与实现,实现了图书商城系统的综合功能和图形界面的显示,可以根据每个用户登录系统后,动态展示书城首页图书,实现了分类还有分页查询,还有用户可以添加图书到购物车,可以查看图书详情等基本功能。Springboot,SpringMVC,Mybatis等技术。
二 功能详细描述
该系统总共分为书城首页展示功能、书本详情功能,购物车功能,页面动态渲染功能,具体功能如下介绍:
(1) 书城首页展示功能:当用户访问首页时,我们会根据书本类型,书本价格,书本上架时间等对从数据库查询到的数据进行一个分页查询。
(2) 书本详情功能:当用户进入首页看见展示的图书后,用户可以通过点击书本从而进入该书本的详情页面,该页面包括了书本所有的详细信息。
(3) 购物车功能:该功能是一个较为核心的功能,首先用户在进入购物车功能之前,我们会先判断用户是否已经登录,我们使用的springMVC提供的拦截器进行实现,因为查询购物车的信息需要使用用户id。在进入购物车之后,首先我们会根据用户的id和购物车信息进行多表联查,将查询到的数据同样根据图书的分类,价格已经上架时间使用分页查询进行动态展示。同时,购物车也提供了对物品基本的删除,价格统计等功能。
(4) 页面动态渲染。该功能前端主要是使用jQuery来写的前端页面,然后通过ajax与后端进行交互,得到动态数据渲染在前端页面。
三 数据库表的设计
本项目主要四张表,分别是用户信息表,用于存储用户的基本信息;图书信息表,用于展示图书的基本信息;图书分类表,用于后续对图书进行分类展示;购物车信息表,用于表示每个用户收藏购物车图书的信息。
下面将分别展示每一张表的设计:
四 技术实现和难点
4.1 登录注册功能
该功能没有什么特别大的难点,主要需要注意两点,第一点就是我们需要使用自定义全局异常处理器,对用户名和密码的正确性进行一个自定义的异常信息抛出。另外一点就是,为了方便后面业务逻辑的进行,我们在登录成功后,需要把用户的信息存入Session中,后面需要用的时候可以随时取。
4.2 书城首页功能
该功能是比较核心的功能,它几乎包揽了我们平时使用的curd,但是稍微复杂一点的就是,我们需要根据前端数据动态查询sql。比如我们需要进行图书的分类查询,也可能需要根据价格或者上架时间来查询。另外一点就是分页查询,这个也是我们必须要掌握的。
4.3 购物车功能
该功能和首页类型,也是对图书进行curd,但是他有一点需要注意,就是我们在进入购物车功能之前需要先进行判断用户是否已经登录,如果没有登录是不能进入购物车功能的,因为购物车的数据需要使用已经登录用户的uid进行数据库查询。所以这里就需要使用拦截器,对购物车请求进行拦截,先判断用户是否登录,如果登录了拦截器才会放行该请求。
4.4 浏览历史功能
该功能暂未实现。因为我有一种思路就是再建一个表,然后根据该表中的时间字段进行排序查找,只根据最近时间展示前两本书数据,但是因为项目并没有给我们这个表,所以有点不科学。然后又想到了第二种方法,就是把游览的书本数据存入到前端的cookie或者Session中,然后再去里面拿,但是因为还没有试过,不知道怎么解决拿到最近两本书的信息,后面会再进行功能补充。
五 基本页面运行展示
5.1登录注册页面
5.2书城首页页面
5.3购物车页面
六 设计感言
作为计算机学院的学生,我觉得能做类似的课程设计是十分有意义,而且十分必要的。经过一周的课程设计,我成功的实现了成绩导入,数据查询,统计,删改等基本功能。
本次的课程提高了我编辑代码的能力和分析问题的能力,让我充分利用专业课程所学的知识来解决问题。也解决了我平时拖沓这种不好的学习习惯,增强了学习兴趣。学习的过程有乐趣也有困难,通过查阅课本,参考了网上的设计流程还有老师的讲解逐渐完成了本次任务。
写完运行时出现了很多问题,通过请教老师讲解不会的难点,解决了哈夫曼树如何打印在文档中的问题。并且与同学们的与分享解决了很多的基本问题。最后本次的课程设计使我学到了很多有用的东西,对今后的学习也有了很多帮助。
此次课程设计给我印象最深的就是通过对这个课题的训练,使我基本掌握了Java编程的基础知识,主体模块与功能模块的结合技巧、方法,让我发现了自己的不足之处而且学会了如何查找资料,提高了我的自学能力,也锻炼了我分析问题、解决问题的能力!边学边用这样才会提高效率,也提高了自己对专业的兴趣!
最后该项目的源码我已经放在了我主页的资源里面,名字叫做《书城项目》,另外如果有需要交课设的同学,可以找我拿项目文档。