基于 web教学管理系统设计与实现

news2024/9/21 19:00:25

3  总体设计

3.1  系统软件体系结构

系统采用B/S结构,统一管理数据库和Web服务器。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构,第一层是客户端(用户界面),提供用户与系统的友好访问;第二层是应用服务器,负责业务逻辑的实现;第三层是数据服务器,负责数据信息的存储、访问及其优化。由于业务逻辑被提取到应用服务器,大大降低了客户端负担,因此也成为瘦客户结构,其系统软件体系结构示意图如图3.1所示:

图3.1 软件结构体系图

 3.2  系统功能需求描述

本教学管理系统包含许多工作流程,围绕教学管理内容,分为学生核心,教师核心和课程核心,相互交织,共同构成学校教学管理的日常工作。以学生为核心的工作包括成绩管理,学籍管理等模块,以教师为核心的工作包括任课安排,教学评估等模块,以课程为核心的工作包括课程管理,排课等模块。

3.3  系统功能结构图

        

图3.2 系统功能结构图

3.4  数据库设计

数据库技术是当今信息时代赖以发展的重要基础技术之一,也是发展较快的计算机技术的重要分支。较好地理解数据库设计原理对于设计出性能高效的数据库系统是很重要的。

数据库技术是计算机软件领域的一个重要分支,已形成相当规模的理论体系和实用技术。它的出现使得计算机应用渗透到工农业生产、商业、行政、科学研究、工程技术和国防军事的各个部门,渗透到社会的每一角落,并正改变着人们的工作方式与生活方式。管理信息系统、办公自动化系统、决策支持系统、智能系统等都是使用了数据库技术的计算机应用系统。数据库已经成为信息高速公路的核心部分

B/S结构的教务管理系统,是一个数据库应用系统,许多信息都是保存在数据库中。在数据库应用系统的开发过程中,数据库的结构设计是一个很重要的问题。我们这里所说的数据库结构设计是指各个表结构的设计,包括信息保存在哪些表格中,各个表的结构如何,以及各个表之间的关系。

数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响,好的数据库结构设计会减少数据库的存储量,数据的完整性和一致性比较高,系统具有较快的响应速度,简化基于此数据库的应用程序的实现等等。

3.4.1  数据库概念结构设计

根据系统功能,设计出如下的ER图,来表示数据库概念结构:

图3.3 学生管理的ER图

图3.4 教师管理的ER图

图5.5 成绩课程管理ER图

3.4.2  数据库逻辑结构设计

根据上面的ER图,转化为关系模式如下:

1)

表3.1 学生表

字段名称

类型

长度

说明

stuID

Varchar

50

学生编号

stuname

Varchar

50

学生姓名

Sex

Char

10

性别

Address

Varchar

50

籍贯

Bir

Datetime

8

生日

Password

Varchar

50

登录密码

gradeID

Varchar

50

入学时间

Specialty

Varchar

50

所属专业

politicalappearance

varchar

50

政治面貌

2)

表3.2 教师表

字段名称

类型

长度

说明

teacherID

Varchar

50

教师编号

teachername

Varchar

50

教师姓名

Sex

Char

10

性别

Address

Varchar

50

地址

Bir

Datetime

8

生日

Password

Varchar

50

登录密码

workyear

Varchar

50

工作时间

Specialty

Varchar

50

所教专业

politicalappearance

varchar

50

政治面貌

3)

表3.3 系部表

字段名称

类型

长度

说明

departmentID

Varchar

50

院系编号

departmentname

Varchar

50

院系名称

telephone

varchar

50

电话

4)

表3.4 专业表

字段名称

类型

长度

说明

specialtyID

Varchar

50

专业编号

specialtyname

Varchar

50

专业名称

departmentID

Varchar

50

所在院系

表3.5 课程表

字段名称

类型

长度

说明

courseID

Varchar

50

课程编号

coursename

Varchar

50

课程名称

style

varchar

50

课程类型

examstyle

Varchar

50

考试类型

xueshi

Int

4

学时

xuefen

int

4

学分

表3.6 成绩表

字段名称

类型

长度

说明

stuID

Varchar

50

学好

courseID

Varchar

50

课程编号

teacherID

varchar

50

教师编号

term

Varchar

50

学期

score

Int

4

所得学时

xuefen

int

4

所得学分

表3.7 课表

字段名称

类型

长度

说明

teacherID

Varchar

50

教师编号

ClassID

Varchar

50

班级编号

courseID

varchar

50

课程编号

classroomID

Varchar

50

教室编号

term

varchar

50

学期

keshi

int

4

课时

表3.8 教室表

字段名称

类型

长度

说明

classroomID

Varchar

50

教室编号

style

Varchar

50

类型

studentsum

int

4

容纳人数

address

Varchar

50

地址

spare

char

10

是否空闲

4  详细设计与实现

4.1  登录界面的设计与实现

1.系统登录界面供三种权限的用户登录:管理员,教师,学生。管理员在输入自己帐号和密码之后进入系统,可对整个教务业务进行操作,待教学计划和排课都完成后,教师输入自己的名称和密码,可进去查询相关信息;同样,学生根据自身的权限,可进入系统查询相关信息。

2. 程序流程图如下:

4.1 登陆界面的流程图

3. 管理员选择“管理员”权限后,输入自己帐号和密码后点击“登录”,即可进入管理院界面。页面后台事件处理程序为:

protected void login_Click(object sender, EventArgs e)

 {

        string st_connstr = ConfigurationManager.ConnectionStrings["st_dbconn"].ToString();

        SqlConnection st_conn = new SqlConnection(st_connstr);

        string  type = usertype.SelectedItem.Value.ToString();

        string user = userID.Text.Trim();

        string inputkey = txtkey.Text.Trim();

        string key = "";

        string sql = "";

    DataSet ds;

        ql = "select password from login where username like '" + user + "'";

        st_conn.Open();

        SqlDataAdapter st_da = new SqlDataAdapter(sql, st_conn);

        ds = new DataSet();

        int count = st_da.Fill(ds, "table");

        if (Convert.ToInt32(Label1.Text) < 3)

        {

                 if (count > 0)

                 { Session["teacherID"] = user; Session["password"] = inputkey; Session["type"] = type; Response.Redirect("Default3.aspx"); }

                          else

                 { Label2.Text = "登陆失败"; Label2.Style["color"] = "red"; int times = Convert.ToInt32(Label1.Text); Label1.Text = (times + 1).ToString(); }

         }

    else { Label2.Text = "您已经被禁止登陆,请稍候再登陆"; }

}

4. 登陆页面为Default.aspx,如下:

图4.2 系统登陆界面Default.aspx

教师选择“教师”权限后,输入自己帐号和密码后点击“登录”,即可进入教师界面。同样,学生也是如此。教师和学生登陆后台处理程序,与管理员相似,不再重复。

4.2  学生管理子系统的设计与实现

4.2.1  学生查询自己信息页面的设计与实现

1. 学生进入系统后,即可查看自己的基本信息。本页面使用了Repeater控件,并与数据库绑定,借助表格展现出来。

2. 核心代码如下:

<asp:Repeater ID="st_rp_information" runat="server">

        <ItemTemplate>

         <table border="1" width="80%">

         <tr>

           <td colspan="4" align="center"> 个人信息</td>

           </tr>

           <tr><td align="right">学号: </td>

               <td><%#Eval("stuID")%></td>

               <td align="right">姓名: </td>

               <td><%#Eval("stuname")%></td>

           </tr>

           <tr><td align="right">性别: </td>

               <td><%#Eval("sex")%></td>

               <td align="right">生日: </td>

               <td><%#Eval("bir")%></td>

           </tr>

           <tr><td align="right">籍贯: </td>

               <td><%#Eval("address")%></td>

               <td align="right">入学时间: </td>

               <td><%#Eval("gradeID")%></td>

           </tr>

           <tr><td align="right">专业: </td>

               <td><%#Eval("specialty")%></td>

               <td align="right">学院: </td>

               <td><%#Eval("department")%></td>

           </tr>

           <tr><td align="right">班级: </td>

               <td><%#Eval("classname")%></td>

               <td align="right">政治面貌: </td>

               <td><%#Eval("politicalappearance")%></td>

   </asp:Repeater>

string st_connstr = ConfigurationManager.ConnectionStrings["st_dbconn"].ToString();

        SqlConnection st_conn = new SqlConnection(st_connstr);

        string st_sqlstr = "select * from student where stuID=@stuID";

        SqlCommand st_comm = new SqlCommand(st_sqlstr, st_conn);

        st_comm.Parameters.Add(new SqlParameter("@stuID", SqlDbType.VarChar, 50));

        

3. 页面如下:

图4.3 学生查询自己信息页面st_query.aspx

4.2.2  学生个人密码修改页面的设计与实现

1. 本页面使用了2个panel控件,一个完成验证用户旧密码,一个完成修改功能,并且2个panel不能同时出现。

2. 程序流程图如下:

图4.4 修改密码流程图

3. 核心代码如下:

protected void st_btn_upst_date_Click(object sender, EventArgs e)

    {

        string st_connstr = ConfigurationManager.ConnectionStrings["st_dbconn"].ToString();

        SqlConnection st_conn = new SqlConnection(st_connstr); st_conn.Open();

        string st_sqlstr = "select * from student where stuID='" + st_tbx_id.Text+ "' and password='" + mimabefore.Text + "'";

        SqlCommand cmd = new SqlCommand(st_sqlstr, st_conn);

        if (st_dr1.Read())

        {

            panel2.Visible = true;

            panel1.Visible = false;

            st_lbl_note.Text = "";

        }

        else

        { st_lbl_note.Text = "无此用户或密码不对!"; }

    }

    protected void st_tbx_ok_Click(object sender, EventArgs e)

    {

        string st_connstr = ConfigurationManager.ConnectionStrings["st_dbconn"].ToString();

        SqlConnection st_conn = new SqlConnection(st_connstr); st_conn.Open();

        string st_sqlstr = "update student set password='" + st_tbx_new.Text + "' where stuID='" + st_tbx_id.Text + "'";

        SqlCommand cmd = new SqlCommand(st_sqlstr, st_conn);

        try

        { cmd.ExecuteNonQuery(); st_lbl_note.Text = "修改成功!"; }

        catch (SqlException)

        { st_lbl_note.Text = "修改有误!"; panel1.Visible = true; }

        st_conn.Close();

}

4. 页面如下:

图4.5 学生个人密码修改页面mima_student.aspx

图4.6 学生个人密码修改页面mima_student.aspx

4.2.3  学生查询成绩页面设计与实现

1. 学生选择学期和课程名后,可查询自己本课程的成绩和所得学分,也可查询自己学期所有课程成绩。本页面使用GridView控件,与数据库绑定。

2. 核心代码如下:

protected void st_btn_query_Click(object sender, EventArgs e)

    {

        string st_sqlstr;

        string st_connstr = ConfigurationManager.ConnectionStrings["st_dbconn"].ToString();

        SqlConnection st_conn = new SqlConnection(st_connstr);

        if (st_tbx_course.Text == "")

        {    

            st_sqlstr= "select subject.coursename,score.courseID,score.term,score.score,score.xuefen,subject.style from subject,score where term='" +st_tbx_term.Text +"'and subject.courseID=score.courseID and score.stuID='" + Session["stuID"].ToString() + "'";

        }

        else

        {    

            st_sqlstr = "select subject.coursename,score.courseID,score.term,score.score,score.xuefen,subject.style from subject,score where term='" + st_tbx_term.Text + "'and subject.courseID=score.courseID and subject.coursename='"+st_tbx_course.Text+"' and score.stuID='" + Session["stuID"].ToString() + "'";

         }

        st_conn.Open();

        SqlDataAdapter st_da = new SqlDataAdapter(st_sqlstr, st_conn);

        DataSet st_ds = new DataSet();

        st_da.Fill(st_ds);

        st_dtg_grade.DataSource = st_ds;

        st_dtg_grade.DataBind();

        st_conn.Close();

        display();

}

3. 页面如下:

图4.7 学生查询成绩页面st_grade_query.aspx

其他的定制服务  下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

沈阳网站建设手机能看的网站

在当今信息化的时代&#xff0c;网站已经成为企业展示形象、推广产品和服务的重要工具。尤其是在中国的沈阳&#xff0c;随着智能手机的普及&#xff0c;越来越多的用户选择通过移动设备浏览网站。因此&#xff0c;建设一个能够在手机上良好展示的网站显得尤为重要。本文将探讨…

vivado中定点类型Binary point的含义

vivado中&#xff0c;ILA或仿真波形显示的定点数&#xff0c;可以设置为有符号或无符号数&#xff0c;其中小数点位置通过Binary point设置&#xff0c;这个设置的数值&#xff0c;表示小数点后的二进制位数 参考&#xff1a; https://people-ece.vse.gmu.edu/coursewebpages/E…

【pandas2】表格数据的行列操作、查询指定的数据内容、数据类型处理、 缺失值处理和透视表、分组与聚合、数据的纵向合并(扩展数据)、数据的横向合并(连接表)

1 表格数据的行列操作 2 查询指定的数据内容 3 数据类型处理 4 缺失值处理 5 透视表 6 分组与聚合 7 统计NBA夺冠次数 8 数据的纵向合并(扩展数据) 9 数据的横向合并(连接表) 1 表格数据的行列操作 # 增 df[info] 这些车都很好 df[desc] df[Sec_price] * df[Km(W)] df.inser…

深度解读SGM41511电源管理芯片I2C通讯协议REG0B寄存器解释

REG0B 是 SGM41511 的第十二个寄存器 也是最后一个寄存器&#xff0c;地址为 0x0B。这个寄存器包含了只读&#xff08;R&#xff09;和可读写&#xff08;R/W&#xff09;的位。上电复位值&#xff08;PORV&#xff09;为 000101xx&#xff0c;其中 x 表示不确定的初始状态。这…

实时数仓,站上产业潮头

在这场新的数据驱动战场里&#xff0c;谁能更好的对数据进行智能、准确、迅速、高性价比的体系化处理&#xff0c;谁能以更低的成本、更高效的能力构建底层的PaaS、IaaS组件&#xff0c;谁就能在如今的市场竞争中构建更具竞争力的业务模型&#xff0c;成为新的弄潮儿。 对Byt…

C#开发中ImageComboBox控件数据源实时变换

在C#开发中&#xff0c;我们如何将控件的数据源实时变换&#xff0c;当然我们可以在窗口实例化的时候指定固定的数据源&#xff0c;但是这样对于用户来说数据源永远固定&#xff0c;并不利于我们对于用户的数据存储&#xff0c;优化用户的操作&#xff0c;遇到这种问题&#xf…

模拟登录页,华为账号一键登录

一、介绍 基于鸿蒙Next模拟账号一键登录&#xff0c;免去账号注册环节二、场景需求 1. 用户场景 新用户&#xff1a; 需要快速注册并登录&#xff0c;以体验华为的服务。 老用户&#xff1a; 希望快速登录&#xff0c;不用每次输入用户名和密码。 2. 界面设计 Logo和标题&#…

RK方案有时一开机要设置GPIO口点平

有时候RK方案&#xff0c;需要一开机就设置GPIO口电平&#xff0c;需要在uboot阶段&#xff0c;board.c #define GPIO_BANK0 0 #define GPIO_BANK1 32 #define GPIO_BANK2 64 #define GPIO_BANK3 …

基于RK3568智慧交通-雷达视频融合一体机,支持鸿蒙

智慧交通-雷达视频融合一体机 随着5G网络与智慧交通车路协同系统在全国各点的落地&#xff0c;作为提升交通安全的前沿技术方案也愈发受到重视。 在交通信控领域&#xff0c;以往的感知技术、无论是地磁、线圈还是摄像头&#xff0c;功能都仅仅局限于数清经过了多少车辆&…

TypeScript类型检查错误 error TS2339

错误产生 上一篇博客写了一个调用摄像头的 demo &#xff0c;用了 vue3 vite &#xff0c;使用了 TypeScript &#xff0c;代码大致如下&#xff1a; <script setup lang"ts"> import { onMounted, ref } from vue; import WelcomeItem from ./WelcomeItem.…

视频监控管理老鼠检测算法应用方案厨房老鼠检测算法源码展示

在当今的现代厨房环境中&#xff0c;维持卫生的重要性不仅仅体现在健康层面&#xff0c;更与整个家庭的生活质量息息相关。随着城市化进程不断加快&#xff0c;城市中的居住空间变得更加拥挤&#xff0c;这导致了一系列家庭管理问题的出现&#xff0c;其中厨房老鼠问题尤为突出…

复杂 RAG 系统的检索规划

文章介绍了REAPER&#xff08;Reasoning based Retrieval Planning for Complex RAG Systems&#xff09;&#xff0c;这是一种基于大型语言模型&#xff08;LLM&#xff09;的规划器&#xff0c;用于在复杂的对话系统中生成检索计划。REAPER旨在解决在大规模异构数据存储中进行…

linux中下载nginx

Nginx是一款高性能的开源Web服务器软件。它可以作为一个HTTP服务器进行网站的发布&#xff0c;也可以作为反向代理服务器进行负载均衡。Nginx以其出色的性能、稳定性和低资源消耗而受到广泛的使用。它的特点包括支持并发连接数高、内存消耗低、事件驱动等&#xff0c;适用于大部…

滚雪球学MyBatis-Plus(01):学前导读

&#x1f300;写在前面 我是bug菌&#xff0c;CSDN | 掘金 | InfoQ | 51CTO | 华为云 | 阿里云 | 腾讯云 等社区博客专家&#xff0c;C站博客之星Top30&#xff0c;华为云2023年度十佳博主&#xff0c;掘金多年度人气作者Top40&#xff0c;掘金等各大社区平台签约作者&#xff…

Python进阶05-多线程

零、文章目录 Python进阶05-多线程 1、进程 &#xff08;1&#xff09;单任务 单任务&#xff1a;指在同一时间内只执行单个任务。 import time# 定义一个函数&#xff0c;用于实现听音乐 def music():for i in range(3):print(正在听音乐...)time.sleep(0.2)# 定义一个函…

振弦式基岩位移计主要功能探析

在土木工程和地质监测领域&#xff0c;基岩位移计作为一种重要的监测设备&#xff0c;发挥着不可替代的作用。其主要功能在于长期、精准地测量水工结构物、桥梁、建筑、铁路等混凝土结构物与地基之间的开合度(位移)&#xff0c;并同步监测埋设点的温度变化。本文将深入探讨基岩…

【漏洞复现】某联云采 SRM2.0 download 任意文件读取漏洞

声明&#xff1a;本文档或演示材料仅用于教育和教学目的。如果任何个人或组织利用本文档中的信息进行非法活动&#xff0c;将与本文档的作者或发布者无关。 一、漏洞描述 某联云采 SRM2.0 是一款专门为企业供应链管理设计的采购管理系统。它具备采购流程自动化、供应商管理优化…

LLM大模型入门天花板!《大模型入门:技术原理与实战应用》一本书让你轻松入门大模型(附PDF)

随着大模型技术的不断完善和普及&#xff0c;我们将进入一个由数据驱动、智能辅助的全新工作模式和生活模式。个人和企业将能够利用大模型来降本增效&#xff0c;并创造全新的用户体验。 人工智能是人类探索未来的重要领域之一&#xff0c;以GPT为代表的大模型应用一经推出在短…

【网络安全】服务基础第一阶段——第二节:Windows系统管理基础----虚拟化IP地址以及用户与组管理

目录 一、Windows网络测试工具 1.1.ping命令 1.2.tracert命令 二、IP实验内容 2.1 实验一 2.2 实验二 三、用户与组管理 3.1 用户与账户概述 3.2 用户管理 3.3 用户增删改查 3.4 增加用户 3.5 修改用户属性 3.6 删除用户 3.7 组账户概述 3.8 组账户增删改查 四、…

linux网络编程-原理到应用-附源码(全)

目录 一、计算机网络分层模型 1.1 概念 1.2 OSI 七层模型 1.3 五层模型 1.4 TCP/IP四层模型 二、传输层-TCP协议 2.1 什么是TCP协议&#xff1f; 2.2 TCP的连接的建立和释放 2.3 基于TCP协议-只接受一个连接的范例程序 一、计算机网络分层模型 1.1 概念 计算机网络…