(======查看博主个人介绍,有源码获取联系方式========)
第4章 系统设计
用户对着浏览器操作,肯定会出现某些不可预料的问题,但是不代表着系统对于用户在浏览器上的操作不进行处理,所以说,要提前考虑可能会出现的问题。
4.1 功能结构设计
图4.1即为设计的管理员功能结构,管理员权限操作的功能包括管理记事本,管理备忘录,管理软件,管理课程,管理音乐,管理宿舍,管理成绩,管理老师等。
图4.1 管理员功能结构
图4.2即为设计的老师功能结构,老师权限操作的功能包括管理成绩,管理宿舍,管理宿舍归寝,管理宿舍报修,管理音乐,管理软件等。
图4.3即为设计的用户功能结构,用户权限操作的功能包括下载软件安装包,观看课程视频以及软件安装视频,播放音乐,查看成绩,管理备忘录以及记事本信息,提交宿舍报修信息,查看宿舍人员信息等。
4.2 数据库设计
智慧校园管理系统运行中产生的数据需要按照提前设置的存储规则进行保存,设计出一个符合项目的最优数据存储格式,因为它能减少用户的等待时间,还可以对系统的请求在最短时间内进行响应。所以,对数据库设计时,需要对功能需求进行详细的拆分,以及对业务状态的细分,然后设计具体的存储规则,保证数据库能正常运作,缩短数据处理时间,并在一定程度上降低数据冗余,节省存储空间。
4.2.1 数据库概念设计
实体-联系图还有一个名称即E-R图,是Entity Relationship Diagram各英文单词首字母的缩写,它这种概念模型通常用于对现实世界进行描述。同时它还是一种能够直观表达数据中实体,联系,属性的有效手段。绘制E-R图能够选择的工具也有很多,但是Office Visio 这款软件在E-R图的绘制上一般都是作为首选工具,因为它是基于可视化处理,使用它创建E-R图非常简单。使用基本的E-R图构成元素,比如椭圆,菱形,矩形,还有实线段来表达对应的信息,椭圆代表属性,即实体的特征,矩形代表实体,即数据库中的一个具体数据表,菱形代表实体中相互关系,实线段主要是完成椭圆,矩形,菱形的连接。
(1)图4.4即为宿舍报修这个实体所拥有的属性值。
(2)图4.5即为备忘录这个实体所拥有的属性值。
(3)图4.6即为成绩这个实体所拥有的属性值。
- 图4.7即为软件这个实体所拥有的属性值。
4.2.2 数据库物理设计
本小节主要任务即是根据上述内容进行数据存储结构的设计,实体的属性就用来表示字段名称,不同的字段表示的数据类型以及取值都不相同,以及该表各个字段是否能够保持空等进行说明,设计完成一张数据表的结构之后,在保存时同样要命名,尽量选择英文名称进行命名并保存,还不容易导致系统出错。接下来就对设计的表进行简单说明。
表4.1 宿舍报修表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
sushe_id | 宿舍 | int(11) | 是 |
yonghu_id | 用户 | int(11) | 是 |
insert_time | 报修时间 | timestamp | 是 |
baoxiu_name | 报修名称 | varchar(200) | 是 |
baoxiu_photo | 报修图片 | varchar(200) | 是 |
baoxiu_content | 报修内容 | text | 是 |
baoxiu_types | 报修状态 | int(11) | 是 |
create_time | 创建时间 | timestamp | 是 |
表4.2 备忘录表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
yonghu_id | 用户 | int(11) | 是 |
beiwanglu_name | 备忘录名称 | varchar(200) | 是 |
beiwanglu_types | 备忘录类型 | int(11) | 否 |
beiwanglu_content | 备忘录详情 | text | 是 |
insert_time | 记录时间 | timestamp | 是 |
create_time | 创建时间 | timestamp | 是 |
表4.3 成绩表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
yonghu_id | 用户 | int(11) | 是 |
kecheng_id | 课程 | int(11) | 是 |
chengji_name | 成绩名称 | varchar(200) | 是 |
chengji_chengji | 成绩 | decimal(10,2) | 是 |
beizhu | 备注 | varchar(200) | 是 |
insert_time | 录入时间 | timestamp | 是 |
create_time | 创建时间 | timestamp | 是 |
表4.4 记事本表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
yonghu_id | 用户 | int(11) | 是 |
jishiben_name | 记事本名称 | varchar(200) | 是 |
jishiben_types | 记事本类型 | int(11) | 否 |
jishiben_content | 记事本详情 | text | 是 |
insert_time | 记录时间 | timestamp | 是 |
create_time | 创建时间 | timestamp | 是 |
表4.5 计算机专业相关的软件表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
laoshi_id | 老师 | int(11) | 是 |
jisuanjizhuanyeruanjian_uuid_number | 软件编号 | varchar(200) | 是 |
jisuanjizhuanyeruanjian_name | 软件名称 | varchar(200) | 是 |
jisuanjizhuanyeruanjian_photo | 软件照片 | varchar(200) | 是 |
jisuanjizhuanyeruanjian_video | 安装教程 | varchar(200) | 是 |
jisuanjizhuanyeruanjian_file | 安装包 | varchar(200) | 是 |
jisuanjizhuanyeruanjian_types | 软件类型 | int(11) | 是 |
jisuanjizhuanyeruanjian_content | 软件介绍 | text | 是 |
shangxia_types | 是否上架 | int(11) | 是 |
jisuanjizhuanyeruanjian_delete | 逻辑删除 | int(11) | 是 |
create_time | 创建时间 | timestamp | 是 |
表4.6 计算机专业相关的软件收藏表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
jisuanjizhuanyeruanjian_id | 计算机专业相关的软件 | int(11) | 是 |
yonghu_id | 用户 | int(11) | 是 |
jisuanjizhuanyeruanjian_collection_types | 类型 | int(11) | 是 |
insert_time | 收藏时间 | timestamp | 是 |
create_time | 创建时间 | timestamp | 是 |
表4.7 计算机专业相关的软件留言表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
jisuanjizhuanyeruanjian_id | 计算机专业相关的软件 | int(11) | 是 |
yonghu_id | 用户 | int(11) | 是 |
jisuanjizhuanyeruanjian_liuyan_text | 留言内容 | text | 是 |
insert_time | 留言时间 | timestamp | 是 |
reply_text | 回复内容 | text | 是 |
update_time | 回复时间 | timestamp | 是 |
create_time | 创建时间 | timestamp | 是 |
表4.8 课程表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
laoshi_id | 老师 | int(11) | 是 |
kecheng_uuid_number | 课程编号 | varchar(200) | 是 |
kecheng_name | 课程名称 | varchar(200) | 是 |
kecheng_photo | 课程照片 | varchar(200) | 是 |
kecheng_video | 课程视频 | varchar(200) | 是 |
kecheng_file | 课件 | varchar(200) | 是 |
kecheng_types | 课程类型 | int(11) | 是 |
kecheng_clicknum | 课程热度 | int(11) | 是 |
kecheng_content | 课程介绍 | text | 是 |
shangxia_types | 是否上架 | int(11) | 是 |
kecheng_delete | 逻辑删除 | int(11) | 是 |
create_time | 创建时间 | timestamp | 是 |
表4.9 课程收藏表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
kecheng_id | 课程 | int(11) | 是 |
yonghu_id | 用户 | int(11) | 是 |
kecheng_collection_types | 类型 | int(11) | 是 |
insert_time | 收藏时间 | timestamp | 是 |
create_time | 创建时间 | timestamp | 是 |
表4.10 课程留言表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
kecheng_id | 课程 | int(11) | 是 |
yonghu_id | 用户 | int(11) | 是 |
kecheng_liuyan_text | 留言内容 | text | 是 |
insert_time | 留言时间 | timestamp | 是 |
reply_text | 回复内容 | text | 是 |
update_time | 回复时间 | timestamp | 是 |
create_time | 创建时间 | timestamp | 是 |
表4.11 老师表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
username | 账户 | varchar(200) | 是 |
password | 密码 | varchar(200) | 是 |
laoshi_name | 老师姓名 | varchar(200) | 是 |
laoshi_phone | 老师手机号 | varchar(200) | 是 |
laoshi_photo | 老师头像 | varchar(200) | 是 |
sex_types | 性别 | int(11) | 是 |
laoshi_email | 电子邮箱 | varchar(200) | 是 |
create_time | 创建时间 | timestamp | 是 |
表4.12 宿舍表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
sushe_name | 宿舍名称 | varchar(200) | 是 |
sushe_address | 宿舍地址 | varchar(200) | 是 |
sushe_content | 宿舍详情 | text | 是 |
insert_time | 录入时间 | timestamp | 是 |
create_time | 创建时间 | timestamp | 是 |
表4.13宿舍归寝表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
yonghu_id | 用户 | int(11) | 是 |
guiqin_types | 归寝状态 | int(11) | 是 |
guiqin_time | 归寝日期 | date | 是 |
sushe_guiqin_content | 归寝详情 | text | 是 |
insert_time | 录入时间 | timestamp | 是 |
create_time | 创建时间 | timestamp | 是 |
表4.14 宿舍人员表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
sushe_id | 宿舍 | int(11) | 是 |
yonghu_id | 用户 | int(11) | 是 |
insert_time | 录入时间 | timestamp | 是 |
create_time | 创建时间 | timestamp | 是 |
表4.15 管理员表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | bigint(20) | 否 |
username | 用户名 | varchar(100) | 否 |
password | 密码 | varchar(100) | 否 |
role | 角色 | varchar(100) | 是 |
addtime | 新增时间 | timestamp | 否 |
表4.16 音乐表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
yinyue_uuid_number | 音乐编号 | varchar(200) | 是 |
yinyue_name | 音乐名称 | varchar(200) | 是 |
yinyue_photo | 音乐照片 | varchar(200) | 是 |
yinyue_music | 音乐 | varchar(200) | 是 |
yinyue_types | 音乐类型 | int(11) | 是 |
yinyue_clicknum | 热度 | int(11) | 是 |
zan_number | 赞 | int(11) | 是 |
cai_number | 踩 | int(11) | 是 |
yinyue_content | 音乐详情 | text | 是 |
shangxia_types | 是否上架 | int(11) | 是 |
yinyue_delete | 逻辑删除 | int(11) | 是 |
create_time (主键) | 创建时间 | timestamp | 否 |
表4.17 音乐收藏表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
yinyue_id | 音乐 | int(11) | 是 |
yonghu_id | 用户 | int(11) | 是 |
yinyue_collection_types | 类型 | int(11) | 是 |
insert_time | 收藏时间 | timestamp | 是 |
create_time | 创建时间 | timestamp | 是 |
表4.18 音乐留言表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
yinyue_id | 音乐 | int(11) | 是 |
yonghu_id | 用户 | int(11) | 是 |
yinyue_liuyan_text | 留言内容 | text | 是 |
insert_time | 留言时间 | timestamp | 是 |
reply_text | 回复内容 | text | 是 |
update_time | 回复时间 | timestamp | 是 |
create_time | 创建时间 | timestamp | 是 |
表4.19 用户表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
username | 账户 | varchar(200) | 是 |
password | 密码 | varchar(200) | 是 |
yonghu_name | 用户姓名 | varchar(200) | 是 |
yonghu_phone | 用户手机号 | varchar(200) | 是 |
yonghu_id_number | 用户身份证号 | varchar(200) | 是 |
yonghu_photo | 用户头像 | varchar(200) | 是 |
sex_types | 性别 | int(11) | 是 |
banji_types | 班级 | int(11) | 是 |
yonghu_email | 电子邮箱 | varchar(200) | 是 |
create_time | 创建时间 | timestamp | 是 |
编程人员在搭建的开发环境中,会让各种编程技术一起呈现出最终效果。本节就展示关键部分的页面效果。
5.1 管理员功能实现
5.1.1 音乐管理
图5.1 即为编码实现的音乐管理界面,管理员下架音乐,上架音乐,修改音乐信息,包括修改音乐热度,音乐名称,音乐类型等信息,删除音乐,查询音乐等。
图5.1 音乐管理界面
5.1.2 软件管理
图5.2 即为编码实现的软件管理界面,管理员上传计算机专业相关的软件安装包,可以修改软件描述信息,包括软件名称,软件照片,安装教程,软件类型等信息,可以下架软件,删除软件信息等。
图5.2 软件管理界面
5.1.3 备忘录管理
图5.3 即为编码实现的备忘录管理界面,管理员增删改查备忘录信息,备忘录信息包括备忘录名称,备忘录类型,记录时间等信息。
图5.3 备忘录管理界面
5.2 老师功能实现
5.2.1 宿舍管理
图5.4 即为编码实现的宿舍管理界面,老师在宿舍管理界面录入宿舍信息,宿舍信息包括宿舍地址,宿舍名称,录入时间等信息,老师可以查询宿舍,修改宿舍信息等。
图5.4 宿舍管理界面
5.2.2 宿舍归寝管理
图5.5 即为编码实现的宿舍归寝管理界面,老师在宿舍归寝管理界面中登记宿舍归寝信息,宿舍归寝信息包括归寝状态,归寝日期,用户姓名等信息,老师可以修改宿舍归寝信息,查询宿舍归寝信息等。
图5.5 宿舍归寝管理界面
5.2.3 课程管理
图5.6 即为编码实现的课程管理界面,老师需要上传课程学习视频,上传课件,登记课程信息等,同时老师可以上架课程,下架课程,修改课程描述信息,删除课程等。
图5.6 课程管理界面
5.2.4 成绩管理
图5.7 即为编码实现的成绩管理界面,老师登记用户的课程成绩信息,可以修改成绩分数,查询用户成绩等。
图5.7 成绩管理界面
5.3 用户功能实现
5.3.1 软件信息
图5.8 即为编码实现的软件信息界面,用户下载软件安装包,查看软件安装视频,在软件信息界面的下方留言区域发布留言。
图5.8 软件信息界面
5.3.2 课程信息
图5.9 即为编码实现的课程信息界面,用户通过课程视频学习课程知识,可以下载课程课件,可以在课程信息界面下方的留言区域发布课程留言,可以可以收藏本界面的课程。
图5.9 课程信息界面
5.3.3 音乐信息
图5.10 即为编码实现的音乐信息界面,用户收听音乐,可以在音乐信息界面的下方留言区域发布音乐留言信息,可以收藏音乐,已经收藏的音乐可以取消收藏。
图5.10 音乐信息界面
5.3.4 宿舍报修管理
图5.11 即为编码实现的宿舍报修管理界面,用户在后台的宿舍报修管理界面提交宿舍报修信息,可以查询宿舍报修信息等。
图5.11 宿舍报修管理界面
5.3.5 成绩查看
图5.12 即为编码实现的成绩查看界面,用户在后台的成绩查看界面查看课程考试分数,查询课程成绩。
图5.12 成绩查看界面
第6章 系统测试
当系统测试环节开始的时候,也就说明对于系统的编码已经弄得大致通顺了,剩下来需要对一些模块和功能进行测试,这个环节就叫系统测试。在程序开发过程中,系统测试是整个开发过程不能缺少的。原因很简单,系统开发人员在面对各种需求需要对各个模块进行编码,开发人员编写过程中,对于程序的理解全部都在编码里面,一人计短,当一个人去做一些事情的时候,把自己的理解变成成果,有可能理解错误,这个在程序开发过程中很常见。程序开发人员在面对复杂的逻辑,没有想象中的多么清晰,开发过程就是面对着一堆代码,不断的变换数据类型,这些很容易实现程序开发人员的想法,但是如果是比较复杂的逻辑,很可能会出现各种问题,这是无法避免的。所以说,需要额外的人员进行系统测试编写,要站在用户使用的角度去发现问题,这样开发与测试的分离,有助于系统开发的强壮,让程序表达的更完美一些。之所以把系统测试安排到程序开发过程中的原因在于,当测试过程中发现的问题可以最快速度的反馈到程序开发人员手里,可以以最快的时间解决问题。所以必须在系统测试环节做好应该做好的事情,让程序开发从开始到结束都有一个完美的流程。
6.1 功能测试
本节主要选择一些功能进行具体测试描述,在相应的功能里面,根据不同的输入看看能否达到理想中的效果。以下会描述部分功能的测试过程和结果。
6.1.1 登录功能测试
登录是一个常规功能,虽然是常规功能,但是用处很大,可以拒绝非法用户访问,只有合法用户才可以访问对应的功能,这样能保证程序设定的功能符合安全性要求。
表6.1 管理员登录功能测试表
管理员账号 | 管理员密码 | 结果 |
uuu | uuu | 成功登录系统 |
yyy | uuu | 登录失败 |
uuu | yyy | 登录失败 |
只有正确的账号密码才会进行跳转到对应的功能区,如果输入的账号密码不对的话,肯定会有相关提示,用来提示操作人员注意输入正确的账号密码,这样有助于提高用户体验。这里以使用者提交错误的账号为“yyy”,正确的密码为“uuu”为例进行测试,具体反馈结果看下面。
图6.1 登录失败提示
6.1.2 修改密码功能测试
任何用户角色都有安全性要求,那么对应的密码最好是经常更改,只有经常更改才会降低坏人的有机可乘几率,达到密码保护的最低要求,当然,如果用户登录人离开了,为了防止其他人乘机篡改密码,那么也会设定旧密码要求,只有输入正确的旧密码才可以进行密码的修改。下面就是测试过程。
表6.2 修改密码功能测试表
之前的旧密码 | 设置的新密码 | 结果 |
uuu | yyy | 成功修改密码 |
hhh | yyy | 修改密码失败 |
uuu | 修改密码失败 |
不管是旧密码错误还是新密码不合规,都会提示相应的要求,下面就是关于旧密码输入错误的提示。
图6.2 错误的旧密码反馈提示
6.2 系统测试结果
对智慧校园管理系统进行了各种检测,包含功能检测和性能检测,操作性检测,兼容性检测,通过各方面检测结果来判定系统是符合设计目标,并且在扩展性或者是稳定性上面,也有很好的表现,能完全的满足用户需求。