博主介绍:👉全网个人号和企业号粉丝40W+,每年辅导几千名大学生较好的完成毕业设计,专注计算机软件领域的项目研发,不断的进行新技术的项目实战👈
⭐️热门专栏推荐订阅⭐️ 订阅收藏起来,防止下次找不到🔎百套Python实战项目持续更新中~
有需求的各位可以先收藏起来,还有大家在毕设选题,开题报告有疑惑的都可以找我,给你参考意见,需要开题模板的可以私信留言告诉我❤️文末获取源码联系、项目参考文档分享❤️ ⚠️一定要先收藏⚠️
第四章 系统设计
设计一个系统不单单是设计系统的页面,可以说系统设计其本质是一个结合了众多设计过程的比较复杂的系统工程。一般来说,在完成系统设计时,需要了解和掌握很多设计的知识,有界面布局技术的知识,页面采用的字体和颜色的运用,还有页面空白的规范使用等,如何将这些元素进行组合,让页面可以直观表达信息内容的同时,也能维持页面整体的美观。
4.1 系统设计思想
系统开发必然需要统一设计思想。根据这个设计思想指导系统的开发,可以加快系统开发进程。根据目前用户对高校暑期社会实践微信小程序的需求,确定下述原则即为本系统的设计思想。
(1)实用性:本系统依照用户需求设计功能,遵循用户使用方便的原则,把用户在实际工作中的各个操作细节也充分考虑进来,让使用者在没有系统操作说明书的情况下,也能很容易的完成系统的操作。
(2)先进性:为了让本系统具备高性能,设计时,需要把目前的各种成熟技术加以考虑,比如软件开发技术也要考虑进去,比如计算机技术也需要进行考虑。对于系统结构的选择,本系统将毫不犹豫的选择成熟先进的B/S结构,方便开发的同时,对于后期的维护也提供了便利。
(3)高安全性:设计本系统时,对于一些系统的关键数据要严加看管,比如管理员本人的账号和密码,一定要加密保存在数据库里面。除此以外,也需要充分使用安全措施对用户的共享资源进行保护。
(4)可维护性:设计时,要提前考虑本系统的可维护性,因为一个便于维护的系统在后期产生的维护成本将会大大降低。维护一般包括软硬件的维护还有对于网络的维护等。
(5)可扩展性:重新开发一个新系统相比在原有系统上升级,会花费大量的资金和精力,由此,一个好的系统必定具备良好的可扩展性。在用户需求变动的情况下,可以通过系统的更新和升级来持续满足用户需求,这样的系统就具备了可扩展性。
4.2功能结构设计
这部分内容使用结构图这样的工具,显示设计结果,设计的管理员功能见下图。管理员为用户忘记密码时可以重置用户密码,管理活动发布、爱心捐物、优秀事迹、活动宣传、及心得交流,
图4-1 管理员功能结构图
4.3 数据库设计
开发一个系统也需要提前设计数据库。这里的数据库是相关数据的集合,存储在一起的这些数据也是按照一定的组织方式进行的。目前,数据库能够服务于多种应用程序,则是源于它存储方式最佳,具备数据冗余率低的优势。虽然数据库为程序提供信息存储服务,但它与程序之间也可以保持较高的独立性。总而言之,数据库经历了很长一段时间的发展,从最初的不为人知,到现在的人尽皆知,其相关技术也越发成熟,同时也拥有着坚实的理论基础。
4.3.1 数据库概念设计
这部分内容需要借助数据库关系图来完成,也需要使用专门绘制数据库关系图的工具,比如Visio工具就可以设计E-R图(数据库关系图)。设计数据库,也需要按照设计的流程进行,首先还是要根据需求完成实体的确定,分析实体具有的特征,还有对实体间的关联关系进行确定。最后才是使用E-R模型的表示方法,绘制本系统的E-R图。不管是使用亿图软件,还是Visio工具,对于E-R模型的表示符号都一样,通常矩形代表实体,实体间存在的关系用菱形符号表示,实体的属性也就是实体的特征用符号椭圆表示。最后使用直线将矩形,菱形和椭圆等符号连接起来。接下来就开始对本系统的E-R图进行绘制。
(1)下图是活动宣传实体和其具备的属性。
图4.1 活动宣传实体属性图
(2)下图是学生实体和其具备的属性。
图4.2 学生实体属性图
(3)下图是字典表实体和其具备的属性。
图4.3 字典表实体属性图
(4)下图是活动发布实体和其具备的属性。
图4.4 活动发布实体属性图
(5)下图是爱心捐物实体和其具备的属性。
图4.5 爱心捐物实体属性图
(6)下图是心得交流实体和其具备的属性。
图4.6 心得交流实体属性图
(7)下图是活动报名实体和其具备的属性。
图4.7 活动报名实体属性图
(8)下图是用户表实体和其具备的属性。
(9)下图是优秀事迹栏目实体和其具备的属性。
图4.9 优秀事迹栏目实体属性图
4.3.1 数据库表结构
很多时候,在进行数据表的存储结构的设计时,都会遇到一些困扰,比如每张数据表如何命名,如何设计每张数据表里面的字段,如何为各个字段进行命名,以及如何设置字段的取值范围等信息。很多初学者,在进行表结构设计时,无论是对表进行命名,还是对字段进行命名,都是采用中文的方式,导致在编码阶段,在对数据进行操作时,总是报错,影响编码人员的开发速度,而且一旦数据表结构建立之后,后期进行修改也比较麻烦。因为设计数据表的结构,就意味着程序中需要长期保存的数据都是根据这样的结构进行保存的,在后面的使用中,无论是程序数据往数据表中写入,还是需要编辑或删除数据,都是按照这个规则进行。如此说来,设计数据库也是非常重要的任务,它关系到后面程序的开发,也关系到程序的运行使用。
通常在设计数据表结构时,会把前面设计的E-R图进行表结构的转化。把实体用来代表数据表,把其属性,也就是椭圆形代表的内容用来表示数据表中的字段,然后根据程序对于数据的存储要求,设计字段的类型和长度。比如用户的年龄可以用int(整数型),设置其长度为4或者6等。总之,数据表结构一旦建立,就可以往里面填充数据了。
表4.1字典表表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
1 | Id | Int | id | 否 |
2 | dic_code | String | 字段 | 是 |
3 | dic_name | String | 字段名 | 是 |
4 | code_index | Integer | 编码 | 是 |
5 | index_name | String | 编码名字 | 是 |
6 | super_id | Integer | 父字段id | 是 |
7 | beizhu | String | 备注 | 是 |
8 | create_time | Date | 创建时间 | 是 |
表4.2心得交流表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
1 | Id | Int | id | 否 |
2 | forum_name | String | 帖子标题 | 是 |
3 | xuesheng_id | Integer | 学生 | 是 |
4 | users_id | Integer | 管理员 | 是 |
5 | forum_content | String | 发布内容 | 是 |
6 | super_ids | Integer | 父id | 是 |
7 | forum_state_types | Integer | 帖子状态 | 是 |
8 | insert_time | Date | 发帖时间 | 是 |
9 | update_time | Date | 修改时间 | 是 |
10 | create_time | Date | 创建时间 | 是 |
表4.3活动报名表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
1 | Id | Int | id | 否 |
2 | huodongfabu_id | Integer | 活动 | 是 |
3 | xuesheng_id | Integer | 学生 | 是 |
4 | huodongbaoming_xingqu | String | 兴趣爱好 | 是 |
5 | huodongbaoming_yixiang | String | 意向岗位 | 是 |
6 | huodongbaoming_yesno_types | Integer | 审核结果 | 是 |
7 | create_time | Date | 创建时间 | 是 |
表4.4活动发布表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
1 | Id | Int | id | 否 |
2 | huodongfabu_name | String | 活动标题 | 是 |
3 | huodongfabu_types | Integer | 活动类型 | 是 |
4 | huodongfabu_photo | String | 活动封面 | 是 |
5 | huodongfabu_content | String | 活动详情 | 是 |
6 | create_time | Date | 创建时间 | 是 |
表4.5爱心捐物表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
1 | Id | Int | id | 否 |
2 | juanzheng_name | String | 物品名称 | 是 |
3 | juanzheng_types | Integer | 物品类型 | 是 |
4 | juanzheng_photo | String | 物品图片 | 是 |
5 | juanzheng_content | String | 物品详情 | 是 |
6 | create_time | Date | 创建时间 | 是 |
表4.6活动宣传表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
1 | Id | Int | id | 否 |
2 | news_name | String | 活动宣传标题 | 是 |
3 | news_types | Integer | 活动宣传类型 | 是 |
4 | news_photo | String | 活动宣传图片 | 是 |
5 | insert_time | Date | 活动宣传时间 | 是 |
6 | news_content | String | 活动宣传详情 | 是 |
7 | create_time | Date | 创建时间 | 是 |
表4.7学生表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
1 | Id | Int | id | 否 |
2 | xuesheng_name | String | 学生姓名 | 是 |
3 | xuesheng_id_number | String | 身份证号 | 是 |
4 | xuesheng_phone | String | 手机号 | 是 |
5 | xuesheng_nianji | String | 年级 | 是 |
6 | xuesheng_photo | String | 照片 | 是 |
7 | create_time | Date | 创建时间 | 是 |
表4.8优秀事迹栏目表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
1 | Id | Int | id | 否 |
2 | youxiushiji_name | String | 标题 | 是 |
3 | youxiushiji_renwu | String | 相关人物 | 是 |
4 | youxiushiji_types | Integer | 事迹类型 | 是 |
5 | youxiushiji_photo | String | 图片 | 是 |
6 | youxiushiji_content | String | 详情 | 是 |
7 | create_time | Date | 创建时间 | 是 |
表4.9用户表表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
1 | Id | Int | id | 否 |
2 | role | String | 角色 | 是 |
3 | addtime | Date | 新增时间 | 是 |
第五章 系统实现
前面做的所有工作,都是为了给系统实现做准备。在系统实现期间,需要根据设计方案执行,通过运用编码技术实现一个可以处理事务的系统。
5.1学生信息管理
如图5.1显示的就是学生信息管理页面,此页面提供给管理员的功能有:学生信息的查询管理,可以删除学生信息、修改学生信息、新增学生信息,
还进行了对用户名称的模糊查询的条件
、
图5.1 学生信息管理页面
5.2 活动发布管理
如图5.2显示的就是活动发布管理页面,此页面提供给管理员的功能有:查看已发布的活动发布数据,修改活动发布,活动发布作废,即可删除,还进行了对活动发布名称的模糊查询 活动发布信息的类型查询等等一些条件。
图5.2 活动发布管理页面
5.3心得交流管理
如图5.3显示的就是心得交流管理页面,此页面提供给管理员的功能有:根据心得交流进行条件查询,还可以对心得交流进行新增、修改、查询操作等等。
图5.3 心得交流管理页面
5.1活动宣传管理
如图5.4显示的就是活动宣传管理页面,此页面提供给管理员的功能有:根据活动宣传进行新增、修改、查询操作等等。
图5.4 活动宣传管理页面
源码获取
大家点赞、收藏、关注 ,让更多需要的同学看到
不同开发语言专栏推荐订阅:
👇下方有我的微信名片👇