C语言文达学院班级管理系统-计算机毕业设计源码03499

摘 要

本文阐述了一个C语言文达学院班级管理系统的设计与实现过程。该系统充分利用ASP.NET的轻量级、灵活性和可扩展性,旨在为文达学院提供高效、便捷的班级管理系统。通过详细的需求分析、技术选型、系统设计、开发实现、测试与调试以及部署与上线等步骤,我们构建了一个功能丰富、性能稳定的文达学院班级管理系统。

在当前的互联网时代,ASP.NET技术已经成为了Web应用程序开发的主流技术之一,具有良好的性能和安全性。因此,文达学院班级管理系统基于VisualStudio开发平台,采用C语言和ASP.NET等技术,采用SQL Server数据库来建立数据之间的转换,充分利用ASP.NET的强大功能和C语言的灵活性,提高系统的开发效率和稳定性。实现了系统用户、学生信息管理、教师信息管理、班级信息管理、文明班级管理、系统管理、留言管理、通知公告管理、资源管理、交流管理等核心功能,满足了用户对文达学院班级管理的多样化需求。本文的研究成果不仅为类似系统的开发提供了有价值的参考,也为文达学院班级管理系统的创新与发展提供了新的思路和方法。

关键词:班级管理系统;ASP.NET框架;C语言

C Language Wenda College Class Management System

Abstract

This article elaborates on the design and implementation process of a C language Wenda College class management system. This system fully utilizes ASP The lightweight, flexibility, and scalability of NET aim to provide an efficient and convenient class management system for Wenda College. Through detailed requirements analysis, technical selection, system design, development implementation, testing and debugging, as well as deployment and launch, we have built a functional and stable class management system for Wenda College.

In the current Internet era, ASP NET technology has become one of the mainstream technologies in web application development, with good performance and security. Therefore, the class management system of Wenda College is based on the Visual Studio development platform, using C language and ASP NET and other technologies, using SQL Server database to establish data conversion and fully utilizing ASP The powerful features of NET and the flexibility of C language improve the development efficiency and stability of the system. Implemented core functions such as system user, student information management, teacher information management, class information management, civilized class management, system management, message management, notification and announcement management, resource management, communication management, etc., meeting the diverse needs of users for class management in Wenda College. The research results of this article not only provide valuable references for the development of similar systems, but also provide new ideas and methods for the innovation and development of the class management system in Wenda College.

Keywords: Class management system; ASP NET framework; C language

目  录

1 绪论

1.1 选题背景与意义

1.2开发现状

1.3论文结构与章节安排

2 文达学院班级管理系统系统分析

2.1 可行性分析

2.1.1 技术可行性分析

2.1.2 经济可行性分析

2.1.3 操作可行性分析

2.2 系统功能分析

2.2.1 功能性分析

2.2.2 非功能性分析

2.3 系统用例分析

2.4 业务流程分析

3 文达学院班级管理系统总体设计

3.1 系统架构设计

3.2 系统时序图设计

3.2.1登录模块顺序图

3.2.2添加信息模块顺序图

图3-3 添加信息顺序图

3.3 系统功能模块设计

3.3.1系统总体设计模块图

3.2 数据库设计

3.2.1 数据库概念结构设计

3.3.2 数据库逻辑结构设计

3.4本章小结

4 文达学院班级管理系统详细设计与实现

4.1用户功能模块

4.1.1 前台首页界面

4.1.2 用户注册界面

4.1.3 用户登录界面

4.1.4班级论坛界面

4.1.5通知公告界面

4.1.6班级新闻界面

4.1.7班级留言界面

4.1.8文明班级详情界面

4.1.9个人中心界面

4.2管理员功能模块

4.2.1系统用户界面

4.2.2 文明班级管理界面

4.2.3系统管理界面

4.2.4留言管理界面

5系统测试

5.1 系统测试用例

5.2 系统测试结果

结论

参考文献

致  谢

1 绪论

1.1 选题背景与意义

随着现代社会的发展,计算机技术的广泛应用,学校的班级管理也逐渐向数字化、自动化方向发展。传统的班级管理方式通常采用纸质资料和手工操作,存在着管理不便、效率低下和易丢失等问题。而利用计算机技术开发一套C语言班级管理系统,能够实现学生信息、教师信息、班级信息等数据的高效管理与统计,能够提高班级管理的效率和准确性,方便教师和学校管理者进行管理工作。

目前市面上已经有存在一些班级管理系统,但大多数都是基于网页或者桌面程序,而本研究所提出的C语言班级管理系统将具有更高的灵活性和适应性。C语言是一种功能丰富且底层的编程语言,广泛应用于嵌入式系统开发和低级硬件操作,能够充分利用计算机系统的资源,具有更高的执行效率。此外,C语言作为一门经典的编程语言,对于编程语言的学习和理解也具有重要的指导意义。

本研究将利用C语言开发一款适用于班级管理的系统,基于本校的特点和需求,设计实现学生信息管理、教师信息管理、班级信息管理等功能模块。通过该系统的使用,可以实现对班级的全面管理和监控,提高教学质量和效率,提升学生服务的水平。

总之,C语言班级管理系统的研究和开发,将为学校的班级管理提供一种新的解决方案,有助于提高管理工作的效率和精确度,进一步推动学校信息化建设,促进教育教学的数字化。

1.2开发现状

班级管理系统是指为学校或班级提供信息管理和操作的软件系统。随着教育信息化的不断推进,班级管理系统的开发和应用已经成为学校和教师工作的重要组成部分。目前,已有一些班级管理系统在市场上得到了广泛应用,但仍存在一些问题和局限性。

首先,现有的班级管理系统功能不够完善。大部分系统只提供了简单的学生信息管理和班级作业发布等基本功能,很少涉及到学生成绩管理、考勤管理、班级活动管理等更复杂的功能。这限制了教师和学校对学生和班级信息的全面管理和分析。

其次,现有的班级管理系统界面设计较为简单,不够美观和易用。教师和学生使用系统的频率较高,但许多系统的界面都显得很老旧,并且操作繁琐,不太符合用户的使用习惯。这使得教师和学生使用系统的积极性和效率都受到了一定程度的影响。

再次,现有的班级管理系统安全性不高。在班级管理系统中,涉及到学生的个人信息、考试成绩等敏感数据,安全问题必须得到重视。然而,一些系统在数据传输和存储过程中存在漏洞,容易被攻击者获取敏感数据,给学生和学校带来严重的风险。

最后,现有的班级管理系统与其他系统的集成性不强。学校和教师在教育管理中使用了许多其他的系统,如人事管理系统、图书馆管理系统等,但这些系统与班级管理系统之间没有很好的集成,导致教师和学校需要同时使用多个系统,增加了工作的复杂性和困难度。

综上所述,现有的班级管理系统在功能、界面设计、安全性和集成性方面存在一些问题和局限性。因此,开发一款功能完善、界面美观、安全可靠且具有强大集成能力的班级管理系统对于提高学校和教师的工作效率和管理水平具有重要意义。

1.3论文结构与章节安排

本文共分为六章,章节内容安排如下:

第一章:引言。此章节对所设计和实现的系统的背景和状况以及意义进行详细的论述以及说明,同时进行了论文整体框架的结构的简要介绍。

第二章:系统需求分析。章节所做的主要的工作是对系统进行了技术、经济和操作方面可行性的分析;对系统实行了总体功能的需求、用例分析。

第三章:系统的设计。主要是对系统的功能结构进行设计,并对系统数据库的概念结构以及物理结构的设计进行了分析。

第四章:系统的实现。根据系统功能的划分,分别的对系统所需要实现的前台客户功能和后台管理员功能进行了分析和说明。

第五章:系统测试。主要对系统的部分界面进行测试并对主要功能进行测试

第六章:总结。

2 文达学院班级管理系统系统分析

系统需求分析是系统开发的一个关键环节,它在系统的设计和实现上起到了一个承上启下的位置。系统需求分析是对所需要做的系统进行一个需求的挖掘,如果分析的准确可以精准的解决现实中碰到的问题。如果分析不到位会影响后期系统的实现。一个系统的优秀程度需求分析也是占据了非常大的比例,如果需求分析不到位,后面的系统设计要实现就是一个偏离导航的设计。

2.1 可行性分析

系统可行行分析是对系统对系统可行性进行一个探讨。在探讨系统的可行性上我们主要从技术上的可行性和经济上的可行性以及法律层面的可行性上进行分析,如果三个层面度通过,我们则认为系统是比较可行的。

2.1.1 技术可行性分析

技术可行性分析的目的是确认该系统能否利用现有技术实现,并评估开发效率和完成情况。技术的可行性是指在当前的技术条件下,计算机软件和硬件的开发是否能够满足发展的要求。因为该系统的开发基于C语言,所以开发该系统所需的软件和硬件条件可以在普通计算机上满足。因为它占用的内存相对较少,所以用SQL Server数据库开发和设计软件理论上没有问题,因为它占用的内存太少。上述技术可以有效地保证系统的成功和高效开发。

2.1.2 经济可行性分析

整个系统从设计到开发以及测试过程严谨步骤齐全,所有工作任务全部由本人完成,并未获取外部技术支持,节约了一切服务成本开销以及人工成本,在硬件方面,为节约成本使用一台二手移动工作站作为项目部署服务器以及数据库服务器,成本在一万元一下,整个网络部署也是由本人独立完成不涉及到其他人工费用,整个开发过程本着低成本,低消耗的原则。

2.1.3 操作可行性分析

文达学院班级管理系统的使用界面简单易于操作,采用常见的界面窗口来登录界面,通过电脑进行访问操作,用户只要平时使用过电脑都能进行访问操作。此系统的开发采用ASP.NET技术开发,人性化和完善化是B/S结构开发比较显要的特点使得用户操作相比较其他更加简洁方便。易操作、易管理、交互性好在本系统操作上体现得淋漓尽致。

2.2 系统功能分析

2.2.1 功能性分析

文达学院班级管理系统我划分为了学生用户、教师用户和管理员模块这三大部分。

学生用户管理模块:

(1)用户注册登录:游客可以随时进入到系统中,对系统中的信息浏览,但是想要实现发布帖子或班级留言操作,就必须有这个系统的账号,如果没有账号的话,可以注册用户进行相关的操作,同时用户还可以通过“我的”这个按钮对个人信息以及操作的信息进行管控。

(2)查看文达学院班级管理系统的首页信息:文达学院班级管理系统的首页信息包含了首页、班级论坛、通知公告、班级新闻、班级留言、文明班级等。

(3)班级论坛:用户点击“班级论坛”菜单显示所有的班级论坛信息,可以按照分类查看帖子信息,或者输入关键词进行局部搜索,点击可以进入帖子的详细展示界面,在此界面用户可以点赞、收藏、评论,也可以点击“发布内容”输入帖子信息进行发帖。

(4)通知公告:当用户点击“通知公告”这一菜单按钮,会显示管理员在后台发布的所有的通知公告,可以查看详情。

(5)班级新闻:在首页点击“班级新闻”按钮进入班级新闻列表,可以输入关键词进行查询班级新闻信息,并且可以对查看的班级新闻进行评论、收藏、点赞操作。

(6)班级留言:在前台点击“班级留言”按钮会跳转到班级留言填写页面,根据页面提示输入班级留言的内容,点击“提交”进行提交班级留言信息。

(7)文明班级:用户可以查看文明班级的所有信息,包括班级名称、班级简介、班级图片、班级位置等。支持通过搜索关键词的方式对文明班级进行查询,在查询到自己想要了解的文明班级的时候,可以进入查看详细的介绍,在文明班级详情这个界面,同时支持用户对喜欢的文明班级进行收藏、点赞以及评论的功能。

(8)我的账户:在前台点击“我的”下面的“我的账户”可以对个人资料+密码修改进行管控。

(9)个人中心:用户点击右上角的“用户名”,然后点击“个人中心”可查看个人首页、学生信息、班级信息和自己收藏的信息并对其进行管理。

教师用户管理模块:

(1)注册登录:教师用户通过前台注册页面注册账号,然后进行登录。

(2)查看文达学院班级管理系统的首页信息:文达学院班级管理系统的首页信息包含了首页、班级论坛、通知公告、班级新闻、班级留言、文明班级等。

(3)我的账户:在前台点击“我的”下面的“我的账户”可以对个人资料+密码修改进行管控。

(4)个人中心:教师用户点击右上角的“用户名”,然后点击“个人中心”可查看个人首页、学生信息、教师信息、班级信息和自己收藏的信息并对其进行管理。

管理员管理模块:系统用户、学生信息管理、教师信息管理、班级信息管理、文明班级管理、系统管理、留言管理、通知公告管理、资源管理、交流管理

(1)登录:管理员在后台可以输入用户名+密码进行登录,管理员的用户名和密码是在数据库中直接设定好的。

(2)系统用户:管理员可以对文达学院班级管理系统中的管理员和学生用户进行增删改查。

(3)学生信息管理:管理员点击“学生信息管理”菜单可以对学生信息列表进行查看,并进行增删改查。

(4)教师信息管理:管理员点击“教师信息管理”菜单可以对教师信息列表进行查看,并进行增删改查。

(5)班级信息管理:管理员点击“班级信息管理”菜单可以对班级信息列表进行查看,并进行增删改查。

(6)文明班级管理:管理员点击“文明班级管理”会显示出前台展示的所有文明班级信息列表,支持输入文明班级名称对文明班级信息进行查询,如果想要添加新的文明班级,点击“添加”按钮,输入班级名称、班级简介、班级图片、班级位置等信息,点击“提交”按钮就可以添加了,同时可以选择某一条文明班级,点击“删除”进行删除,也可以对用户提交的文明班级评论的信息进行管控。

(7)系统管理:管理员点击“系统管理”菜单可以对首页展示的轮播图。

(8)留言管理:管理员点击“留言管理”菜单可以查看用户班级留言的内容,进行回复或增删改查。

(9)通知公告管理:管理员点击“通知公告管理”菜单可以查看到系统中的所有通知公告信息,对已经存在的通知公告,管理员可以修改,也可以添加新的通知公告或者删除通知公告。

(10)资源管理:管理员点击“资源管理”菜单能够前台的班级新闻和所属新闻分类进行增删改查。

(11)交流管理:管理员可以对系统前台展示的班级论坛以及班级论坛所属的分类进行管控。

2.2.2 非功能性分析

文达学院班级管理系统的非功能性需求,比如文达学院班级管理系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下2-1表格中:

2-1文达学院班级管理系统非功能需求表

安全性

主要指文达学院班级管理系统数据库的安装,数据库的使用和密码的设定必须合乎规范。

可靠性

可靠性是指文达学院班级管理系统能够按照用户提交的指示进行操作,经过测试,可靠性90%以上。

性能

性能是影响文达学院班级管理系统占据市场的必要条件,所以性能最好要佳才好。

可扩展性

比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。

易用性

用户只要跟着文达学院班级管理系统的页面展示内容进行操作,就可以了。

可维护性

文达学院班级管理系统开发的可维护性是非常重要的,经过测试,可维护性没有问题

2.3 系统用例分析

文达学院班级管理系统的完整UML用例图分别是图2-1、2-2和图2-3。

图2-1就是学生用户角色的用例展示。

图2-1 文达学院班级管理系统学生用户角色用例图

图2-2就是教师用户角色的用例展示。

图2-2 文达学院班级管理系统教师用户角色用例图

图2-3就是管理员角色的用例展示。

图2-3 文达学院班级管理系统管理员角色用例图

2.4 业务流程分析

业务流程图不仅能反映出内部业务之间的关系,而且能体现出管理顺序及信息的流动。C语言文达学院班级管理系统必须支持整个组织在不同层次上的各种功能,各个功能模块之间又有各种不同相关的信息进行联系,构成了一个有机的整体,根据文达学院班级管理系统的特点以及结合所面临的实际情况,设计出了系统的业务流程图。

系统的业务流程如下图所示。

图2-4 系统业务流程图

3 文达学院班级管理系统总体设计

本章主要讨论的内容包括文达学院班级管理系统的功能模块设计、数据库系统设计。

3.1 系统架构设计

本文达学院班级管理系统从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。

图3-1文达学院班级管理系统架构设计图

表现层(UI):又称UI层,主要完成本文达学院班级管理系统的UI交互功能,一个良好的UI可以打打提高用户的用户体验,增强用户使用本文达学院班级管理系统时的舒适度。UI的界面设计也要适应不同版本的文达学院班级管理系统以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用户进行交互操作时必须要得到与之相符的交互结果,这就要求表现层要与业务逻辑层进行良好的对接。

业务逻辑层(BLL):主要完成本文达学院班级管理系统的数据处理功能。用户从表现层传输过来的数据经过业务逻辑层进行处理交付给数据层,系统从数据层读取的数据经过业务逻辑层进行处理交付给表现层。

数据层(DL):由于本文达学院班级管理系统的数据是放在服务端的mysql数据库中,因此本属于服务层的部分可以直接整合在业务逻辑层中,所以数据层中只有数据库,其主要完成本文达学院班级管理系统的数据存储和管理功能。

3.2 系统时序图设计

3.2.1登录模块顺序图

登录模块主要满足了管理员以及用户的权限登录,登录模块顺序图如图3-2所示。

图3-2登录顺序图

3.2.2添加信息模块顺序图

管理员以及用户登录后均可进行添加信息操作,添加信息模块顺序图如图3-3所示。

图3-3 添加信息顺序图

3.3 系统功能模块设计

3.3.1系统总体设计模块图

文达学院班级管理系统根据前面章节的需求分析得出,其总体设计模块图如图3-4所示。

图3-4 文达学院班级管理系统功能模块图

3.2 数据库设计

数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。

3.2.1 数据库概念结构设计

下面是整个文达学院班级管理系统中主要的数据库表总E-R实体关系图。

图3-5 文达学院班级管理系统总E-R关系图

3.3.2 数据库逻辑结构设计

通过上一小节中文达学院班级管理系统中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。

表access_token (登陆访问时长)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

token_id

int

10

0

N

Y

临时访问牌ID

2

token

varchar

64

0

Y

N

临时访问牌

3

info

text

65535

0

Y

N

4

maxage

int

10

0

N

N

2

最大寿命:默认2小时

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

7

user_id

int

10

0

N

N

0

用户编号:

表article (文章:用于内容管理系统的文章)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

article_id

mediumint

8

0

N

Y

文章id:[0,8388607]

2

title

varchar

125

0

N

Y

标题:[0,125]用于文章和html的title标签中

3

type

varchar

64

0

N

N

0

文章分类:[0,1000]用来搜索指定类型的文章

4

hits

int

10

0

N

N

0

点击数:[0,1000000000]访问这篇文章的人次

5

praise_len

int

10

0

N

N

0

点赞数

6

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

8

source

varchar

255

0

Y

N

来源:[0,255]文章的出处

9

url

varchar

255

0

Y

N

来源地址:[0,255]用于跳转到发布该文章的网站

10

tag

varchar

255

0

Y

N

标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开

11

content

longtext

2147483647

0

Y

N

正文:文章的主体内容

12

img

varchar

255

0

Y

N

封面图

13

description

text

65535

0

Y

N

文章描述

表article_type (文章分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

smallint

5

0

N

Y

分类ID:[0,10000]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]决定分类显示的先后顺序

3

name

varchar

16

0

N

N

分类名称:[2,16]

4

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

5

description

varchar

255

0

Y

N

描述:[0,255]描述该分类的作用

6

icon

text

65535

0

Y

N

分类图标:

7

url

varchar

255

0

Y

N

外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表auth (用户权限管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

auth_id

int

10

0

N

Y

授权ID:

2

user_group

varchar

64

0

Y

N

用户组:

3

mod_name

varchar

64

0

Y

N

模块名:

4

table_name

varchar

64

0

Y

N

表名:

5

page_title

varchar

255

0

Y

N

页面标题:

6

path

varchar

255

0

Y

N

路由路径:

7

position

varchar

32

0

Y

N

位置:

8

mode

varchar

32

0

N

N

_blank

跳转方式:

9

add

tinyint

3

0

N

N

1

是否可增加:

10

del

tinyint

3

0

N

N

1

是否可删除:

11

set

tinyint

3

0

N

N

1

是否可修改:

12

get

tinyint

3

0

N

N

1

是否可查看:

13

field_add

text

65535

0

Y

N

添加字段:

14

field_set

text

65535

0

Y

N

修改字段:

15

field_get

text

65535

0

Y

N

查询字段:

16

table_nav_name

varchar

500

0

Y

N

跨表导航名称:

17

table_nav

varchar

500

0

Y

N

跨表导航:

18

option

text

65535

0

Y

N

配置:

19

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

20

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表civilized_class (文明班级)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

civilized_class_id

int

10

0

N

Y

文明班级ID

2

class_name

varchar

64

0

Y

N

班级名称

3

class_introduction

varchar

64

0

Y

N

班级简介

4

class_image

varchar

255

0

Y

N

班级图片

5

class_location

text

65535

0

Y

N

班级位置

6

hits

int

10

0

N

N

0

点击数

7

praise_len

int

10

0

N

N

0

点赞数

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表class_information (班级信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

class_information_id

int

10

0

N

Y

班级信息ID

2

teacher_users

int

10

0

Y

N

0

教师用户

3

teachers_name

varchar

64

0

Y

N

教师姓名

4

class_name

varchar

64

0

Y

N

班级名称

5

class_introduction

varchar

64

0

Y

N

班级简介

6

number_of_students

int

10

0

Y

N

0

学生数量

7

class_image

varchar

255

0

Y

N

班级图片

8

class_location

text

65535

0

Y

N

班级位置

9

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表collect (收藏)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

collect_id

int

10

0

N

Y

收藏ID:

2

user_id

int

10

0

N

N

0

收藏人ID:

3

source_table

varchar

255

0

Y

N

来源表:

4

source_field

varchar

255

0

Y

N

来源字段:

5

source_id

int

10

0

N

N

0

来源ID:

6

title

varchar

255

0

Y

N

标题:

7

img

varchar

255

0

Y

N

封面:

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表comment (评论)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

comment_id

int

10

0

N

Y

评论ID:

2

user_id

int

10

0

N

N

0

评论人ID:

3

reply_to_id

int

10

0

N

N

0

回复评论ID:空为0

4

content

longtext

2147483647

0

Y

N

内容:

5

nickname

varchar

255

0

Y

N

昵称:

6

avatar

varchar

255

0

Y

N

头像地址:[0,255]

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

9

source_table

varchar

255

0

Y

N

来源表:

10

source_field

varchar

255

0

Y

N

来源字段:

11

source_id

int

10

0

N

N

0

来源ID:

表forum (论坛)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

forum_id

mediumint

8

0

N

Y

论坛id

2

display

smallint

5

0

N

N

100

排序

3

user_id

mediumint

8

0

N

N

0

用户ID

4

nickname

varchar

16

0

Y

N

昵称:[0,16]

5

praise_len

int

10

0

Y

N

0

点赞数

6

hits

int

10

0

N

N

0

访问数

7

title

varchar

125

0

N

N

标题

8

keywords

varchar

125

0

Y

N

关键词

9

description

varchar

255

0

Y

N

描述

10

url

varchar

255

0

Y

N

来源地址

11

tag

varchar

255

0

Y

N

标签

12

img

text

65535

0

Y

N

封面图

13

content

longtext

2147483647

0

Y

N

正文

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

16

avatar

varchar

255

0

Y

N

发帖人头像:

17

type

varchar

64

0

N

N

0

论坛分类:[0,1000]用来搜索指定类型的论坛帖

表forum_type (论坛分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

smallint

5

0

N

Y

分类ID:[0,10000]

2

name

varchar

16

0

N

N

分类名称:[2,16]

3

description

varchar

255

0

Y

N

描述:[0,255]描述该分类的作用

4

url

varchar

255

0

Y

N

外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置

5

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

6

icon

varchar

255

0

Y

N

分类图标:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

hits_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

表message (留言板)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

message_id

int

10

0

N

Y

留言板ID:

2

user_id

int

10

0

N

N

0

用户ID:

3

title

varchar

64

0

Y

N

标题:

4

content

longtext

2147483647

0

N

N

内容:

5

nickname

varchar

32

0

N

N

昵称:

6

avatar

varchar

255

0

Y

N

头像:

7

email

varchar

125

0

Y

N

留言者邮箱

8

phone

varchar

11

0

Y

N

留言者手机号码

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

11

reply

longtext

2147483647

0

Y

N

回复

12

reply_state

tinyint

4

0

Y

N

0

回复状态

表notice (公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

notice_id

mediumint

8

0

N

Y

公告id:

2

title

varchar

125

0

N

N

标题:

3

content

longtext

2147483647

0

Y

N

正文:

4

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

5

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表praise (点赞)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

praise_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

status

bit

1

0

N

N

1

点赞状态:1为点赞,0已取消

表regular_users (普通用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

regular_users_id

int

10

0

N

Y

普通用户ID

2

user_name

varchar

64

0

Y

N

用户姓名

3

user_gender

varchar

64

0

Y

N

用户性别

4

contact_phone_number

varchar

64

0

Y

N

联系电话

5

examine_state

varchar

16

0

N

N

已通过

审核状态

6

user_id

int

10

0

N

N

0

用户ID

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表sensitive_vocabulary (敏感词汇)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

sensitive_vocabulary_id

int

10

0

N

Y

敏感词汇ID

2

sensitive_vocabulary

varchar

64

0

Y

N

敏感词汇

3

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表slides (轮播图)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

slides_id

int

10

0

N

Y

轮播图ID:

2

title

varchar

64

0

Y

N

标题:

3

content

varchar

255

0

Y

N

内容:

4

url

varchar

255

0

Y

N

链接:

5

img

varchar

255

0

Y

N

轮播图:

6

hits

int

10

0

N

N

0

点击量:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表student_information (学生信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

student_information_id

int

10

0

N

Y

学生信息ID

2

user_student_id

varchar

64

0

N

N

用户学号

3

regular_users

int

10

0

Y

N

0

普通用户

4

user_name

varchar

64

0

Y

N

用户姓名

5

user_gender

varchar

64

0

Y

N

用户性别

6

contact_phone_number

varchar

64

0

Y

N

联系电话

7

department_name

varchar

64

0

Y

N

院系名称

8

professional_name

varchar

64

0

Y

N

专业名称

9

class_name

varchar

64

0

Y

N

班级名称

10

home_address

text

65535

0

Y

N

家庭住址

11

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

12

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表teacher_information (教师信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

teacher_information_id

int

10

0

N

Y

教师信息ID

2

teacher_users

int

10

0

Y

N

0

教师用户

3

teachers_name

varchar

64

0

Y

N

教师姓名

4

teacher_gender

varchar

64

0

Y

N

教师性别

5

contact_phone_number

varchar

64

0

Y

N

联系电话

6

department_name

varchar

64

0

Y

N

院系名称

7

professional_name

varchar

64

0

Y

N

专业名称

8

class_name

varchar

64

0

Y

N

班级名称

9

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表teacher_users (教师用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

teacher_users_id

int

10

0

N

Y

教师用户ID

2

teachers_name

varchar

64

0

Y

N

教师姓名

3

teacher_gender

varchar

64

0

Y

N

教师性别

4

contact_phone_number

varchar

64

0

Y

N

联系电话

5

examine_state

varchar

16

0

N

N

已通过

审核状态

6

user_id

int

10

0

N

N

0

用户ID

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

upload_id

int

10

0

N

Y

上传ID

2

name

varchar

64

0

Y

N

文件名

3

path

varchar

255

0

Y

N

访问路径

4

file

varchar

255

0

Y

N

文件路径

5

display

varchar

255

0

Y

N

显示顺序

6

father_id

int

10

0

Y

N

0

父级ID

7

dir

varchar

255

0

Y

N

文件夹

8

type

varchar

32

0

Y

N

文件类型

表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_id

mediumint

8

0

N

Y

用户ID:[0,8388607]用户获取其他与用户相关的数据

2

state

smallint

5

0

N

N

1

账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

3

user_group

varchar

32

0

Y

N

所在用户组:[0,32767]决定用户身份和权限

4

login_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

上次登录时间:

5

phone

varchar

11

0

Y

N

手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

6

phone_state

smallint

5

0

N

N

0

手机认证:[0,1](0未认证|1审核中|2已认证)

7

username

varchar

16

0

N

N

用户名:[0,16]用户登录时所用的账户名称

8

nickname

varchar

16

0

Y

N

昵称:[0,16]

9

password

varchar

64

0

N

N

密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

10

email

varchar

64

0

Y

N

邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

11

email_state

smallint

5

0

N

N

0

邮箱认证:[0,1](0未认证|1审核中|2已认证)

12

avatar

varchar

255

0

Y

N

头像地址:[0,255]

13

open_id

varchar

255

0

Y

N

针对获取用户信息字段

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

15

vip_level

varchar

255

0

Y

N

会员等级

16

vip_discount

double

11

2

Y

N

0.00

会员折扣

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

group_id

mediumint

8

0

N

Y

用户组ID:[0,8388607]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]

3

name

varchar

16

0

N

N

名称:[0,16]

4

description

varchar

255

0

Y

N

描述:[0,255]描述该用户组的特点或权限范围

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

register

smallint

5

0

Y

N

0

注册位置:

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

3.4本章小结

整个文达学院班级管理系统的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。

4 文达学院班级管理系统详细设计与实现

文达学院班级管理系统的详细设计与实现主要是根据前面的文达学院班级管理系统的需求分析和文达学院班级管理系统的总体设计来设计页面并实现业务逻辑。主要从文达学院班级管理系统界面实现、业务逻辑实现这两部分进行介绍。

4.1用户功能模块

4.1.1 前台首页界面

当进入文达学院班级管理系统的时候,系统以上中下的布局进行展示,首先映入眼帘的是系统的导航栏,下面是轮播图,其次是通知公告。系统主界面展示如下图4-1所示。

图4-1 前台首页界面图

4.1.2 用户注册界面

文达学院班级管理系统的游客和学生用户时可以进行注册登录,当用户右上角“注册”按钮的时候,当填写上自己的账号+密码+确认密码+昵称+邮箱+手机号等后再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可用户注册成功。其用用户注册界面展示如下图4-2所示。

图4-2注册界面图 

注册代码如下:

static int Register(Document& doc, Document& doc2, const Request& req, Response& res, acl::db_handle* db, const char* tableName) {

std::string username;

if (doc["username"].IsInt64()) {

username = std::to_string(doc["username"].GetInt64());

}

else {

username = doc["username"].GetString();

}

acl::string sql;

sql.format("select * from `user` where username = '%s';", username.c_str());

const acl::db_row* one = getOneRow(*db, sql);

if (one != NULL) {

FailedJson(res, utf8_encode(s2ws("该账号已存在")), 30000);

return -1;

}

std::string pwd;

if (doc["password"].IsInt64()) {

pwd = std::to_string(doc["password"].GetInt64());

}

else {

pwd = doc["password"].GetString();

}

pwd = MD5(pwd).toStr();

doc["password"].SetString(pwd.c_str(), pwd.size());

return ApiController::add(doc, doc2, req, res, db, tableName);

}

忘记密码

static int forget_password(Document& doc, Document& query, const Request& req, Response& res, acl::db_handle* db, const char* tableName)

{

std::string username = doc["username"].GetString();

acl::string sql;

sql.format("select * from `user` where username = '%s';", username.c_str());

const acl::db_row* one = getOneRow(*db, sql);

if (one == NULL) {

FailedJson(res, "password error!", 30000);

return -1;

}

std::string email = doc["email"].GetString();

string password = MD5(doc["password"].GetString()).toStr();

string sqlWhere = " and username='" + username + "'";

sql = acl::string().format("update %s set email='%s',password='%s' where 1=1 %s;", tableName, email.c_str(), password.c_str(), sqlWhere.c_str());

XLOG_INFO("sql {}", sql.c_str());

if ((*db).sql_update(sql.c_str()) == false)

{

FailedJson(res, "set error");

return (-1);

}

rapidjson::StringBuffer strBuf;

rapidjson::Writer<rapidjson::StringBuffer> writer(strBuf);

writer.StartObject();

writer.Key("result");

writer.Bool(true);

writer.EndObject();

string data = strBuf.GetString();

res.set_content(data.c_str(), "application/json");

return 0;

}    

4.1.3 用户登录界面

文达学院班级管理系统中的前台上注册后的用户是可以通过自己的账户名和密码进行登录的,当学生用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到文达学院班级管理系统的首页中;否则将会提示相应错误信息,用户登录界面如下图4-3所示。

图4-3用户登录界面图

登录代码如下:

 static int Login(Document& doc, Document& query, const Request& req, Response& res, acl::db_handle* db, const char* tableName)

{

std::set<std::string> set = getColType(*db, acl::string().format("SELECT * FROM information_schema.COLUMNS WHERE TABLE_NAME = '%s'", tableName));

acl::string sql;

std::string username = doc["username"].GetString();

sql.format("select * from `user` where username = '%s';", username.c_str());

const acl::db_row* one = getOneRow(*db, sql);

if (one == NULL) {

FailedJson(res, utf8_encode(s2ws("账号不存在!")));

return -1;

}

std::string state((*one)["state"]);

std::string password((*one)["password"]);

std::string user_id((*one)["user_id"]);

std::string tokenstring = user_id + ";" + username + ";" + password;

string token = EncryptionAES(tokenstring);

const char* user_group = (*one)["user_group"];

acl::db_handle* db2 = pool->peek_open();

if (db2 == NULL)

{

FailedJson(res, "peek db2 connection error");

return -1;

}

sql.format("select * from `user_group` where name = '%s';", user_group);

const acl::db_row* one2 = getOneRow(*db2, sql);

if (one2 == NULL)

{

FailedJson(res, utf8_encode(s2ws("账号不存在!")));

return -1;

}

std::string source_table((*one2)["source_table"]);

if (source_table.length() > 0) {

sql.format("select * from `%s` where user_id = '%s';", source_table.c_str(), user_id.c_str());

one2 = getOneRow(*db2, sql);

if (one2 == NULL)

{

FailedJson(res, utf8_encode(s2ws("账号不存在!")));

return -1;

}

std::string examine_state((*one2)["examine_state"]);

if (examine_state == utf8_encode(s2ws("未通过"))) {

FailedJson(res, utf8_encode(s2ws("账户未通过审核!")), 70000);

return -1;

}

else if (examine_state == utf8_encode(s2ws("未审核"))) {

FailedJson(res, utf8_encode(s2ws("账户未审核!")), 70000);

return -1;

}

pool->put(db2);

}

rapidjson::StringBuffer strBuf;

rapidjson::Writer<rapidjson::StringBuffer> writer(strBuf);

writer.StartObject();

writer.Key("result");

writer.StartObject();

writer.Key("obj");

writer.StartObject();

for (int i = 0; i < one->length(); i++) {

const char* field = one->field_name(i);

writer.Key(field);

int iValue = one->field_int(i, -1);

if (set.find(field) != set.end()) {

writer.Int(iValue);

}

else {

const char* value = (*one)[field];

value = value == NULL ? "" : value;// utf8_encode(s2ws(value)).c_str();

writer.String(value);

}

}

writer.Key("token");

writer.String(token.c_str());

writer.EndObject();

writer.EndObject();

writer.EndObject();

std::string str = MD5(doc["password"].GetString()).toStr();

if (state == std::string("1")) {

if (password == str) {

string data = strBuf.GetString();

res.set_content(data.c_str(), "text/html;charset=utf-8");

XLOG_INFO_GREEN("res:{}", data.c_str());

return 0;

}

else {

FailedJson(res, "password error");

return -1;

}

}

return ReturnStatus(res, 0);

}

4.1.4班级论坛界面

用户点击“班级论坛”菜单显示所有的班级论坛信息,可以按照分类查看帖子信息,或者输入关键词进行局部搜索,点击可以进入帖子的详细展示界面,在此界面用户可以点赞、收藏、评论,也可以点击“发布内容”输入帖子信息进行发帖。班级论坛列表展示界面如下图4-4所示。

图4-4班级论坛列表展示界面图

4.1.5通知公告界面

当访客点击文达学院班级管理系统中导航栏上的“通知公告”后将会进入到该“通知公告”列表的界面,然后选择想要看的通知公告,点击进入到详细界面。通知公告展示界面如下图4-5所示。

图4-5通知公告展示界面图

4.1.6班级新闻界面

当用户点击文达学院班级管理系统中导航栏上的“班级新闻”后将会进入到该“班级新闻”列表的界面,然后选择想要看的新闻信息,点击进入到详细界面,在详细界面可以收藏+赞+评论等操作。班级新闻详情界面如下图4-6所示。

图4-6班级新闻详情界面图

4.1.7班级留言界面

点击导航栏上的“班级留言”,可以填写标题、用户名、留言内容,然后点击“提交”按钮进行提交班级留言,班级留言界面如下图4-7所示。

图4-7班级留言界面图

4.1.8文明班级详情界面

用户可以查看文明班级,在查询到自己想要了解的文明班级的时候,可以进入查看详细的介绍,支持用户对喜欢的文明班级进行收藏、点赞、评论的功能。文明班级详情界面如下图4-8所示。

图4-8文明班级详情界面图

4.1.9个人中心界面

当用户点击右上角“我的”这个按钮,会出现子菜单,学生用户点击“个人中心”可以对个人首页、学生信息、班级信息和自己收藏的信息进行设置管理,教师用户点击“个人中心”可以对个人首页、学生信息、教师信息、班级信息和自己收藏的信息进行设置管理。

学生用户个人中心界面如下图4-9所示。

图4-9学生用户个人中心界面图

教师用户个人中心界面如下图4-10所示。

图4-10教师用户个人中心界面图

4.2管理员功能模块

4.2.1系统用户界面

文达学院班级管理系统中的管理人员在“系统用户”这一菜单是中可以对注册的学生用、教师用户以及管理员进行管控。界面如下图4-11所示。

图4-11用户管理界面图

查询用户关键代码如下:

static int list_group(Document& doc, Document& query, const Request& req, Response& res, acl::db_handle* db, const char* tableName)

{

if (!doc.HasMember("groupby"))

{

FailedJson(res, utf8_encode(s2ws("缺少参数")));

return -1;

}

string groupby_field = doc["groupby"].GetString();

string queryFields = groupby_field + ",count(1) as count";

string sqlWhere;

if (BuildSqlWhere(doc, db, sqlWhere, tableName) == false) {

FailedJson(res, "BuildSqlWhere error");

return -1;

}

sqlWhere += " group by " + groupby_field;

acl::string sql = BuildSelectSql(tableName, queryFields, sqlWhere);

XLOG_INFO("sql {}", sql.c_str());

const acl::db_rows* result = getRows(*db, sql.c_str());

if (result == NULL) {

FailedJson(res, "getRows error");

return -1;

}

rapidjson::StringBuffer strBuf;

rapidjson::Writer<rapidjson::StringBuffer> writer(strBuf);

writer.StartObject();

writer.Key("result");

writer.StartObject();

writer.Key("count");

writer.Int((*db).length());

writer.Key("list");

writer.StartArray();

const std::vector<acl::db_row*>& rows = result->get_rows();

for (int y = 0; y < (*db).length(); y++) {

const acl::db_row* one = (*db)[y];

writer.StartObject();

for (int i = 0; i < one->length(); i++) {

const char* field = one->field_name(i);

writer.Key(field);

const char* value = (*one)[field];

value = value == NULL ? "" : value;// utf8_encode(s2ws(value)).c_str();

writer.String(value);

}

writer.Key("0");

std::string::size_type sz;   // alias of size_t

int count = std::stoi((*one)[(size_t)1], &sz);

writer.Int(count);

writer.Key("1");

writer.String((*one)[(size_t)0]);

writer.EndObject();

}

writer.EndArray();

writer.EndObject();

writer.EndObject();

string data = strBuf.GetString();

res.set_content(data.c_str(), "application/json");

return 0;

}

4.2.2 文明班级管理界面

管理员点击“文明班级”会显示出所有的文明班级,支持选择班级名称等对信息进行查询,如果想要添加新的文明班级,点击“添加”按钮,输入班级名称、班级简介、班级图片、班级位置等信息,点击“提交”按钮就可以添加了,同时可以选择某一条文明班级,点击“删除”进行删除,也可以对用户提交的文明班级评论的信息进行管控。界面如下图4-12所示。

图4-12文明班级管理界面图

4.2.3系统管理界面

管理人员在“系统管理”这一菜单下是可以对文达学院班级管理系统内的轮播图进行添加修改的,其管理界面如下图4-13所示。

图4-13系统轮播图管理界面图

4.2.4留言管理界面

管理员点击“留言管理”菜单能够对用户前台提交的班级留言信息进行回复管控。留言回复界面如下图4-14所示。

图4-14留言回复管理界面图

5系统测试

5.1 系统测试用例

系统测试包括:用户登录功能测试、文明班级展示功能测试、班级信息添加、班级新闻搜索、密码修改、班级留言功能测试,如表5-1、5-2、5-3、5-4、5-5、5-6所示:

用户登录功能测试:

表5-1 用户登录功能测试表

用例名称

用户登录系统

目的

测试用户通过正确的用户名和密码可否登录功能

前提

未登录的情况下

测试流程

1) 进入登录页面

2) 输入正确的用户名和密码

预期结果

用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入

实际结果

实际结果与预期结果一致

文明班级查看功能测试:

表5-2 文明班级查看功能测试表

用例名称

文明班级查看

目的

测试文明班级查看功能

前提

用户登录

测试流程

点击文明班级列表

预期结果

可以查看到所有文明班级信息

实际结果

实际结果与预期结果一致

管理员添加班级信息界面测试:

表5-3 管理员添加班级信息界面测试表

用例名称

添加班级信息测试用例

目的

测试班级信息添加功能

前提

管理员用户正常登录情况下

测试流程

1)管理员点击班级信息管理,然后点击添加后并填写信息。

2)点击进行提交。

预期结果

提交以后,页面首页会显示新的班级信息

实际结果

实际结果与预期结果一致

班级新闻搜索功能测试:

表5-4班级新闻搜索功能测试表

用例名称

班级新闻搜索测试

目的

测试班级新闻搜索功能

前提

测试流程

1)在搜索框填入搜索关键字。

2)点击搜索按钮。

预期结果

页面显示包含有搜索关键字的班级新闻信息

实际结果

实际结果与预期结果一致

密码修改搜索功能测试:

表5-5 密码修改功能测试表

用例名称

密码修改测试用例

目的

测试管理员密码修改功能

前提

管理员用户正常登录情况下

测试流程

1)管理员密码修改并完成填写。

2)点击进行提交。

预期结果

使用新的密码可以登录

实际结果

实际结果与预期结果一致

班级留言功能测试:

表5-6班级留言功能测试表

用例名称

班级留言测试用例

目的

测试用户班级留言功能

前提

用户正常登录情况下

测试流程

1)搜索查看班级留言信息,点击发布留言。

2)填写班级留言信息,点击进行提交。

预期结果

班级留言成功

实际结果

实际结果与预期结果一致

5.2 系统测试结果

通过编写文达学院班级管理系统的测试用例,已经检测完毕用户登录功能测试、文明班级展示功能测试、班级信息添加、班级新闻搜索、密码修改、班级留言功能测试,通过这6大模块为文达学院班级管理系统的后期推广运营提供了强力的技术支撑。

结论

通过C语言文达学院班级管理系统的开发,本人巩固了之前学过的知识,如今将平时所学到的知识融合在设计中,在设计过程中,做了很多的准备,首先,在数据库系统的设计过程中,尤其是在数据库的工作原理、工作特点,对其深刻的讨论,与此同时,对于小型站点来说,最好服务器的选择,其次,利用所学的知识点分析所做的系统,并在此基础上设计。

目前本系统已经上线,正在试运行阶段,用户反馈良好,基本完成用户所需,试运行过程中没有出现阻断性问题,有一些不足和小问题也及时予以修正,系统上线后,为了保证数据的安全性,对系统进行了备份操作,系统备份是每两个月备份一次,数据库备份为每周备份一次,系统部署在租赁的云平台服务器中。

本次系统上线成功后,得到了用户的高度认可,但是在功能上和性能上还需做进一步的研究处理,使其有更高的性能和更好的用户体验。

系统在以后的升级过程中,需要解决一系列用户所提出的问题,例如打印过程中如何避免浏览器的兼容性问题,大量用户访问时,如何保持较高的响应速度,在系统今后的升级过程中将着重解决这些安全性问题。

参考文献

[1]孔垂炼.云南旅游经济持续“红”[N].云南经济日报,2024-01-04(A01).

[1]刘文粘,常静敏.C语言程序设计课程教学的PBL+CDIO模式[J].福建电脑,2024,40(01):117-120.

[2]Cao J .Digital Information Technology Enabling Computational Thinking C Language Blended Teaching[J].Applied Mathematics and Nonlinear Sciences,2024,9(1):

[3]Jieya L ,Fei Y ,Jiaping L .An Analysis and Exploration of the Path of Class Management for College Class Teachers from the Perspective of Three Comprehensive Education[J].Frontiers in Educational Research,2023,6(31):

[4]王绍强,李天晟.C语言程序设计实验教学改革探讨[J].长春大学学报,2023,33(12):93-96.

[5]宋岩,余若斯,王一华.信息技术在班级管理中的运用[J].读写算,2023,(36):131-133.

[6]颜佳,王泉德,艾波.电子信息类专业C语言程序设计实践教学研究[J].科教导刊,2023,(35):52-55.

[7]苏洁.基于线上线下混合模式的C语言程序设计课程教学研究[J].电脑知识与技术,2023,19(34):154-156+160.

[8]吴香艳.基于C#和.NET的班级学生信息管理系统设计与实现[J].无线互联科技,2023,20(22):47-50.

[9]赵丹梅.“互联网+”背景下“C语言程序设计”课程线上教学模式研究[J].现代信息科技,2023,7(22):179-182.

[10]潘骁,刘叶锋.C语言程序设计课程思政教学实践探索[J].现代商贸工业,2023,44(23):254-256.

[11]Gan Y .The Organic Integration of Innovation and Entrepreneurship Education with Ideological and Political Education—A Case Study of the C Programming Course[J].International Journal of New Developments in Education,2023,5(20):

[12]刘思云,陈贵松.地方高校班级管理系统的设计与实现[J].现代计算机,2022,28(19):116-120.

[13]秦望.班级管理系统与系统管理[J].河南教育(基教版),2022,(04):33-35.

[14]宋雅飞.“ASP.NET”技术在企业网站设计中的应用[J].无线互联科技,2022,19(04):89-90.

[15]M E W ,Moaz A ,Jacob C , et al.Active Duty Service Members, Primary Managers, and Administrators' Perspectives on a Novel Sleep Telehealth Management Platform in the U.S. Military Healthcare System.[J].Military medicine,2022,187(9-10):e1201-e1208.

[16]苏扬.ASP.NET MVC架构与Web开发工作探析[J].电脑知识与技术,2021,17(33):53-54.

[17]常佳宁.基于ASP.NET的图书管理系统设计[J].中国科技信息,2021,(14):73-74.

[18]王喜英.信息化环境下初中班级管理优化策略探究[J].科幻画报,2021,(04):58-59.

[19]郝东晓.高校班级管理信息化平台建设探究[J].数码世界,2020,(11):235-236.

[20]梁相栋,郭小燕,许亮等.班级文化信息管理系统的建设与开发[J].甘肃科技,2020,36(04):25-27+39.

致  谢

到此,整个基于C语言的文达学院班级管理系统就算完成了,虽然过程十分艰难,但是等到都完成的时候,我感觉无比的自豪,虽然设计的系统还存在许多的纰漏,但是我已经拼劲全力,给自己的大学四年画上了一个圆满的句号。

在这里我首先要感谢的就是大学四年来所有教导我的老师,是他们教会了我许多的专业知识以及做人的道理,从一进校门对对开发系统一窍不通到现在能自主开发一个管理系统,里面包含了前台框架、后台框架、业务流程、数据结构、操作系统等各种知识,只有把他们统一运用好,才能够完成整个系统,这都是老师的功劳;其次我要感谢我的指导老师,在开发这个系统的时候,我遇到了无数的问题,经常通过线上、线下的方式去请教导师,每次去请教导师,他从来没有不耐烦,都是细心的引导,告诉我怎么样实现这个功能,怎么样才能使得系统更加完善,然后通过自己查询相关资料解决问题,提高了自己自主解决问题的能力,授人以鱼不如授人以渔,指导老师的这种工作态度受益终生,我也会向老师不断靠拢,向他学习,在此我只想说一句:“老师,谢谢您,您辛苦了”!最后我还要感谢我的室友、同学,在一起学习这四年,他们不但学习上给了我很多建议,在生活上更加给了我帮助,正是有他们的帮助,我的大学生涯才如此完美。

最后,希望自己在未来的道路上能够越走越远,不辜负在大学的学习以及老师们的细致的教导,追风赶月莫停留,平荒尽处是春山。

免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/397542.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过python管理mysql

打开防火墙端口&#xff1a; 使用 firewall-cmd 命令在防火墙的 public 区域中永久添加 TCP 端口 7500&#xff08;FRP 控制台面板端口&#xff09;、7000&#xff08;FRP 服务端端口&#xff09;以及端口范围 6000-6100&#xff08;一组客户端端口&#xff09;。这些端口是 FR…

Unity补完计划 之 动态控制TileMap

本文仅作笔记学习和分享&#xff0c;不用做任何商业用途 本文包括但不限于unity官方手册&#xff0c;unity唐老狮等教程知识&#xff0c;如有不足还请斧正 1.TileMap &TileBase Unity - Scripting API: Tilemap &#xff0c;看手册内容太多了故介绍几个常用的公共方法 首…

【凌鸥学园】电机电控课程学习,挑战自我!

电控达人集结号&#xff01;凌鸥学园精心打造的电机电控课程&#xff0c;现面向全体爱好者及专业人士免费开放&#xff01; 课程内容从基础原理到高级应用&#xff0c;全方位助力你快速掌握电机电控精髓&#xff0c;实现技能飞跃&#xff01; 挑战成功&#xff0c;双重奖励等…

12. 矩阵中的路径

comments: true difficulty: 中等 edit_url: https://github.com/doocs/leetcode/edit/main/lcof/%E9%9D%A2%E8%AF%95%E9%A2%9812.%20%E7%9F%A9%E9%98%B5%E4%B8%AD%E7%9A%84%E8%B7%AF%E5%BE%84/README.md 面试题 12. 矩阵中的路径 题目描述 给定一个 m x n 二维字符网格 board…

Java的反射原理

反射允许程序在运行时检查或修改其类、接口、字段和方法的行为。反射主要通过java.lang.reflect包中的类和接口实现&#xff0c;它主要用于以下目的&#xff1a; 在运行时分析类的能力&#xff1a;通过反射&#xff0c;可以在运行时检查类的结构&#xff0c;比如它的方法、构造…

【RAG检索增强生成】Ollama+AnythingLLM本地搭建RAG大模型私有知识库

目录 前言一、Ollama&#xff1a;革新性的本地LLM服务工具1.核心优势2.技术亮点 二、AnythingLLM 概览1.核心特性2.技术生态支持 三、搭建本地智能知识库1. Ollama的安装启航2. AnythingLLM的安装对接3. AnythingLLM的配置精调4. 工作区与文档管理5. 聊天与检索的智能交互 四、…

计算机毕业设计 校园失物招领网站 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

封装el-table 基于element封装可配置JSON表格组件

基于element封装可配置JSON表格组件 话不多说直接贴代码&#xff0c;复制运行即可查看效果 子组件全部代码 <template><div class"custom-table"><el-table:data"tableData"borderstyle"width: 100%"size"mini"max-h…

负载均衡之HAProxy超全内容!!!

一、负载均衡 1.1 负载均衡概念 负载均衡&#xff08;Load Balance&#xff0c;简称 LB&#xff09;是高并发、高可用系统必不可少的关键组件&#xff0c;目标是尽力将网络流量平均分发到多个服务器上&#xff0c;以提高系统整体的响应速度和可用性。 1.2 软件负载均衡 软件…

做报表用什么工具?不想再用Excel了!!!

一、什么是中国式报表&#xff1f; 不知道大家现在还是使用Excel来制作报表&#xff0c;然后跟领导汇报工作吗&#xff1f;虽然Excel功能很强大&#xff0c;但是用Excel做过中国式报表的小伙伴一定知道它的制作过程有多复杂。 中国式报表可以用一句话简单概括&#xff1a;格式…

Mozilla Firefox侧边栏和垂直标签在131 Nightly版本中开始试用

垂直选项卡和全新的侧边栏体验现已在Mozilla Firefox Nightly 131 中提供。这一更新备受社区期待和要求&#xff0c;我们期待看到它如何提高您的浏览效率和工作效率。如果您想体验一下这项正在进行中的工作&#xff0c;请这样操作&#xff1a; 更新到最新的Nightly版 转到设置…

uniapp本地打包app安装说明

uniapp本地打包app安装说明 目录 uniapp本地打包app安装说明一、打包说明1.HBuilder X 生成本地打包资源2.Android Studio和App离线SDK环境准备2.1 下载Android Studio和 App离线SDK2.2 资源替换2.3 id属性值修改。2.4 添加provider信息到AndroidManifest.xml中的<applicati…

使用Hugging Face构建大型语言模型应用

在本文中&#xff0c;我们将介绍如何使用Hugging Face的大型语言模型&#xff08;LLM&#xff09;构建一些常见的应用&#xff0c;包括摘要&#xff08;Summarization&#xff09;、情感分析&#xff08;Sentiment analysis&#xff09;、翻译&#xff08;Translation&#xff…

Leetcode JAVA刷刷站(14)最长公共前缀

一、题目概述 二、思路方向 在Java中&#xff0c;要编写一个函数来查找字符串数组中的最长公共前缀&#xff0c;我们可以遵循以下步骤&#xff1a; 处理边界条件&#xff1a;如果数组为空或长度为0&#xff0c;直接返回空字符串。初始化最长公共前缀&#xff1a;将数组的第一个…

HarmonyOS 3.1/4.0应用升级到HarmonyOS NEXT改动点

在 “2024鸿蒙零基础快速实战-仿抖音App开发&#xff08;ArkTS版&#xff09;”&#xff08;https://coding.imooc.com/class/843.html&#xff09;视频课程中&#xff0c;因为讲师在该课程授课时是使用的HarmonyOS 3.1/4.0应用&#xff08;API 9&#xff09;&#xff0c;如果部…

在亚马逊云科技上搭建云原生生成式AI教育学习平台

项目简介&#xff1a; 小李哥将继续每天介绍一个基于亚马逊云科技AWS云计算平台的全球前沿AI技术解决方案&#xff0c;帮助大家快速了解国际上最热门的云计算平台亚马逊云科技AWS AI最佳实践&#xff0c;并应用到自己的日常工作里。 本次介绍的是如何利用亚马逊云科技大模型托…

1.2 C 语言环境:MinGW 与 CLion 的安装与配置

目录 1 C 语言的由来 2 安装 MinGW 编译器 3 Windows 中安装 CLion 开发环境 3.1 安装 CLion 开发环境 3.2 运行试用 30 天 3.3 新建项目​ 3.4 汉化 4 Mac 中安装 Clion 开发环境 4.1 安装 CLion 开发环境 4.2 运行试用 30 天 4.3 新建项目 ​4.4 汉化 5 向日葵的…

突破百度网盘的下载限速,两种方法教会你【超详细】

一、前言 Hello&#xff0c;大家后&#xff0c;我是博主英杰&#xff0c;前几天&#xff0c;我在使用百度网盘过程中&#xff0c;下载速度极慢&#xff0c;自己作为一个白嫖党&#xff0c;开会员也是心疼那点钱&#xff0c;所以在网上找了几个有效解决百度网盘限速问题的教程&a…

arcgis-坡度坡向分析

坡向的描述有定性和定量两种方式&#xff0c;定量是以东为0&#xff0c;顺时针递增&#xff0c;南为90&#xff0c;西为180&#xff0c;北为270等&#xff0c;范围在0&#xff5e;35959′59″之间。 定性描述有8方向法和4方向法. 8 方向为东、东南、南、西南、西、西北、北、东…

JavaWeb-01(Java进阶内容详解,Html、CSS、JS)

一、前端技术结构分析 网页的结构&#xff08;HTML&#xff09;、表现(CSS)、行为(JS) 1.HTML定义界面整体结构 2.CSS定义页面样式 3.JS实现动态效果 二、HTML 2.1安装VS Code及前端开发插件 Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code Code Spe…