高校学生社团,学籍,社团,宿舍,教材,成绩信息管理系统(有源码)

1.系统概述

网上教学管理系统在目前的高校中使用还不普遍,但也有许多类似的成功案例:如教务管理系统、排课系统等。本系统采用c#、html标识语言及SQL Server 2019。SQL Server(基于结构化查询语言的数据库服务器)是基于客户/服务器结构的数据库管理系统,用户通过使用客户系统从服务器检索信息并进行本地操作,服务器关注数据库进程,而客户则关注信息的表示。数据库技术综合开发。

1.1实现功能

  实现了1 学生信息管理模块,2 用户管理 3授课管理
  具体看如下功能模块图

1.2功能模块

        1学生管理模块

学生管理模块

2.用户管理(学生/老师)用户管理模块
3.授课信息授课信息模块

2.数据流程图

学生管理系统数据流程图

3数据表数据项

3.1学生信息表结构(tb_Student)

tb_Student 数据项列表

3.2学生成绩表结构(tb_Score)

tb_Score 数据项列表

3.2学生毕业去向表(tb_qx)

毕业去向表
其余表太多了根据自己要做的内容自行进行添加

3.3数据整合表

在这里插入图片描述

4.数据库概念结构设计

概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。
根据学生信息管理数据库设计需求抽象出学生、教师、课程、成绩四个实体,对四个实体做简化处理,默认一门课程仅被一位老师讲授。
(1)一个系部拥有多名学生,一名学生只属于一个系部,所以系部与学生之间是一对多(1:n)的关系;
(2)一位学生可能会选修多门课程,一门课程会被多位学生选修,所以学生与课程之间是多对多(m:n)的关系;
(3)一位学生会有多项成绩(具体指某学生一门课程的分数),一项成绩仅被一位学生拥有,所以学生与成绩是一对多(1:n)的关系;
(4)一个系部拥有多门课程,一门课程只属于一个系部,所以系部与课程的关系是一对多(1:n)的关系;
(5)一门课程拥有多项成绩,一项成绩仅被一门课程拥有,所以课程与成绩的关系是一对多(1:n)的关系;

4.1全局E-R图

在这里插入图片描述
之前做的没加毕业生去向,和奖罚处理模块的结构
具体以实现模块为主.

5.数据库逻辑结构设计

5.1实体所对应的关系模式

Student(Id,StuNum,StuPassWord,StuName,StuSex,StuTel,StuEmail,StuAddress,StuDepart,StuRemark,StuSuShe)
Score(Id,Subjectld,StuNum,XueNian,StuScore)
StudentAp(StuNum,StuName,StuJi,StuYuanyin)
Student123(StuNum,StuName,StuByqk,Stuqx,StuBydapjd,StuByhkpjd)

5.2关系模式优化处理

按照数据依赖对关系模式进行逐一分析,并进行极小化处理:
Student(Id,StuNum,StuPassWord,StuName,StuSex,StuTel,StuEmail,StuAddress,StuDepart,StuRemark,StuSuShe)
Score(Id,Subjectld,StuNum,XueNian,StuScore)
Depart(Id,DepartName)
Subject(Id,subjectName)
SysLodin(Id,SysName,SysPassWord)
StudentAp(StuNum,StuName,StuJi,StuYuanyin)
Student123(StuNum,StuName,StuByqk,Stuqx,StuBydapjd,StuByhkpjd)

6系统实现

6.1系统详细功能

功能模块:管理员(老师)模块具有以下功能:
(1) 班级管理:添加系别,系别列表

在这里插入图片描述
(2) 学生管理:添加学生,学生信息列表
在这里插入图片描述
(3) 课程管理:添加课程,信息列表
在这里插入图片描述
(4) 成绩管理:成绩录入,成绩列表
在这里插入图片描述
(5) 系统管理:更改密码
在这里插入图片描述
(6) 奖励惩罚管理:奖励录入、奖励列表
在这里插入图片描述
(7) 毕业工作管理:信息录入、信息列表
在这里插入图片描述
学生模块具有以下功能:
(1) 查看成绩信息
在这里插入图片描述
(2) 系统管理 (学生登录账号密码初始值都为学号):修改个人信息,更改密码
在这里插入图片描述

6.2系统开发语言简介

C#是微软公司发布的一种由C和C++衍生出来的面向对象的编程语言、运行于.NET Framework和.NET Core(完全开源,跨平台)之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 .NET windows网络框架的主角。
C#是由C和C++衍生出来的一种安全的、稳定的、简单的、优雅的面向对象编程语言。它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。
C#是面向对象的编程语言。它使得程序员可以快速地编写各种基于MICROSOFT .NET平台的应用程序,MICROSOFT .NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。
C#使得C++程序员可以高效的开发程序,且因可调用由 C/C++ 编写的本机原生函数,而绝不损失C/C++原有的强大的功能。因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。

7.系统总体

7.1教师模块

   1.教师账号登录界面

在这里插入图片描述
2. 班级管理界面
在这里插入图片描述
3.班级信息列表
在这里插入图片描述
4.添加/修改学生个人信息
在这里插入图片描述
5.学生信息列表
在这里插入图片描述
6. 添加课程基本信息
在这里插入图片描述
7.课程信息列表
在这里插入图片描述
8.学生成绩录入
在这里插入图片描述
9.学生成绩表
在这里插入图片描述
10.奖励录入界面
在这里插入图片描述
11.奖励界面表
在这里插入图片描述
12.毕业生信息录入
在这里插入图片描述
13.毕业生去向
在这里插入图片描述
14.更改教师密码
在这里插入图片描述

7.2学生模块

1.学生账号登录界面
在这里插入图片描述
2. 查看课程成绩
在这里插入图片描述
3.修改学生个人信息
在这里插入图片描述
4.更改学生账号密码
在这里插入图片描述

8.数据库连接代码及数据操作代码

8.1数据库连接代码

<?xml version="1.0"?>
<!-- 
    注意: 除了手动编辑此文件以外,您还可以使用 
    Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
     “网站”->“Asp.Net 配置”选项。
    设置和注释的完整列表在 
    machine.config.comments 中,该文件通常位于 
    \Windows\Microsoft.Net\Framework\v2.x\Config 中
	
                             学生信息管理系统
                        @File name:学生管理
	        @Author:小康康
	        @Backend Development:小康康
                       @Front-end Development:川川
                       @Database Design:小康康

-->
<configuration>
	<appSettings/>
	<connectionStrings>
		<!--
		    数据库连接字符
		-->
		<add name="DB" connectionString="server=DESKTOP-8E7I217\SQLEXPRESS;database=OnlineStudent;Integrated security = true;"/>
	</connectionStrings>
	<system.web>
		<!-- 
            设置 compilation debug="true" 将调试符号插入
            已编译的页面中。但由于这会 
            影响性能,因此只在开发过程中将此值 
            设置为 true。
        -->
		<compilation debug="true" targetFramework="4.0"/>
		<!--
            通过 <authentication> 节可以配置 ASP.NET 使用的 
            安全身份验证模式,
            以标识传入的用户。 
        -->
		<authentication mode="Windows"/>
		<!--
            如果在执行请求的过程中出现未处理的错误,
            则通过 <customErrors> 节可以配置相应的处理步骤。

        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
            <error statusCode="403" redirect="NoAccess.htm" />
            <error statusCode="404" redirect="FileNotFound.htm" />
        </customErrors>
        -->
		<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/></system.web>

8.2数据库代码

	[id] [int] IDENTITY(1,1) NOT NULL,
	[SysName] [varchar](50) NULL,
	[SysPassWord] [varchar](50) NULL,
 CONSTRAINT [PK_tb_SysLogin] PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
SET IDENTITY_INSERT [dbo].[tb_SysLogin] ON
INSERT [dbo].[tb_SysLogin] ([id], [SysName], [SysPassWord]) VALUES (1, N'admin', N'admin')
SET IDENTITY_INSERT [dbo].[tb_SysLogin] OFF
/****** Object:  Table [dbo].[tb_SubjectInfo]    Script Date:12/12021 09:30:56 小康康 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[tb_SubjectInfo](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[SubjectName] [varchar](50) NULL,
 CONSTRAINT [PK_tb_SubjectInfo] PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
SET IDENTITY_INSERT [dbo].[tb_SubjectInfo] ON
/****** Object:  Table [dbo].[tb_StudentInfo]    Script Date: 12/1/2021  小康康 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[tb_StudentInfo](
	[id] [int] IDENTITY(19731126,1) NOT NULL,
	[StuNum] [varchar](50) NULL,
	[StuPassWord] [varchar](50) NULL,
	[StuName] [varchar](50) NULL,
	[StuSex] [varchar](50) NULL,
	[StuTel] [varchar](50) NULL,
	[StuEmail] [varchar](50) NULL,
	[StuAddress] [varchar](50) NULL,
	[StuDepart] [int] NULL,
	[StuRemark] [varchar](100) NULL,
	[StuSuShe] [varchar](100) NULL,
 CONSTRAINT [PK_tb_StudentInfo] PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
SET IDENTITY_INSERT [dbo].[tb_StudentInfo] ON
SET IDENTITY_INSERT [dbo].[tb_StudentInfo] OFF
/****** Object:  Table [dbo].[tb_Score]    Script Date: 12/1/2021 09:30:56 小康康 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[tb_Score](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[subjectId] [int] NULL,
	[StuNum] [varchar](50) NULL,
	[XueNian] [varchar](50) NULL,
	[StuScore] [decimal](18, 2) NULL,
 CONSTRAINT [PK_tb_Score] PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
SET IDENTITY_INSERT [dbo].[tb_Score] ON
SET IDENTITY_INSERT [dbo].[tb_Score] OFF
CREATE TABLE [dbo].[tb_Student123](
 [StuNum] [varchar](50) NOT NULL,
 [StuName] [varchar](50) NOT NULL,
 [StuByqk] [varchar](50) NOT NULL,
 [StuByqx] [varchar](50) NOT NULL,
 [StuBydapjd] [varchar](50) NOT NULL,
 [StuByhkpjd] [varchar](50) NOT NULL
) ON [PRIMARY]
GO

/****** Object:  Table [dbo].[tb_StudentAp]    Script Date: 2021/12/23 20:48:14 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[tb_StudentAp](
	[StuNum] [varchar](50) NOT NULL,
	[StuName] [varchar](50) NOT NULL,
	[StuJj] [varchar](6) NOT NULL,
	[StuYuanyin] [varchar](50) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[tb_Depart]    Script Date: 06/19/2020 09:30:56  小康康******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[tb_Depart](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[DepartName] [varchar](50) NULL,
 CONSTRAINT [PK_tb_Depart] PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
SET IDENTITY_INSERT [dbo].[tb_Depart] ON
SET IDENTITY_INSERT [dbo].[tb_Depart] OFF

8.3(3) 数据操作代码:将数(CRUD)封装为DBHelper类

using System;
using System.Data;//DataSet数据库命名空间
using System.Data.SqlClient;//.NET数据提供程序数据库命名空
using System.Configuration;//数据库连接字符串写在配置文件时要写入这个
/**********************************************
*************学生信息管理系统*******************
***********************************************
*                                              *
*        @File name:学生管理                   *
*                                              *
*		@Author:小康康                       *
*						                     * 
*		@Backend Development:小康康            * 
*						                      *
*		@Front-end Development: 川川           *
*                                              *
*       @Database Design:小温                  *
**********************************************/
/// <summary>
/// DBHelper 的摘要说明
/// </summary>

#region 5大对象
//ADO.NET组件,建立c#和sql sever之间的纽带
//ADO.NET=.NET数据提供程序+DdtaSet
//1.Connection:负责APP与DB之间的联系;
//2.Command:负责执行SQL命令 增删改
//3.DateReader:负责读取查询结果(Select语句)查
//4.DataAdapter:数据适配器(牵线搭桥)
//5.DataSet:内存中的数据库

#endregion

public class  DBHelper
{
    
    
    #region 连接数据库
    public DBHelper()
		{
    
    
			//
			// TODO: 在此处添加构造函数逻辑
			//
		}
		/// <summary>
		/// 获得数据库连接字符串
		/// </summary>
		/// <returns></returns>
		public static string GetConnStr()
		{
    
    
			return ConfigurationManager.ConnectionStrings["DB"].ConnectionString;
		}
    #endregion
    #region 查询
    /// <summary>
    /// 由sql变量(select语句)得到DataSet学期查询记录集合
    /// </summary>
    /// <param name="sql">select语句,字符串学期</param>
    /// <returns></returns>
    public static DataSet GetDataSet(string sql)
		{
    
    
			SqlConnection conn = new SqlConnection(GetConnStr());
			conn.Open();
			SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
			DataSet ds = new DataSet();
			sda.Fill(ds);
			conn.Close();
			return ds;
		}
    #endregion
    #region 增加,删除,更改
    /// <summary>
    /// 执行sql语句,主要是insert、update、delete语句
    /// </summary>
    /// <param name="sql"></param>
    /// <returns></returns>
    public static Boolean ExecSql(string sql)
		{
    
    
			SqlConnection conn = new SqlConnection(GetConnStr());
			conn.Open();
			SqlCommand cmd = new SqlCommand(sql, conn);
			try
			{
    
    
				cmd.ExecuteNonQuery();
				conn.Close();
			}
			catch (Exception ex)
			{
    
    
				conn.Close();
				return false;
			}
			return true;
		}

	}
#endregion

9.系统测试分析

9.1开发环境

(1)系统结构:B/S(浏览器/服务器)
(2)开发技术:asp.net
(3)开发语言: C#,html,css
(4)数据库 SQL Server 2019
(5)开发平台 Microsoft Visual Studio 2019

9.2系统特点

(1)本系统完全基于Web技术,只要能连接Internet,就能访问本系统。
(2)采用Asp.net + SQL server 2019开发,具有管理方便,代码简单易懂,体积小巧的特点。
(3)具有清新简洁方便的界面,操作简单。
(4)支持所有的Windows系列操作系统。

9.3bug

在测试过程中发现当数据量大时,界面会稍微有延迟,后发现在DBHelper类封装CRUD时忘记使用了using语句,当回收垃圾时还是采用了.NET中的GC垃圾回收机制,导致系统在加载时会有着一定卡顿,没有进行优化,在StudentInfoAdd.aspx学号进行自动添加时发现当进行设置字母时会出现如下错误,当库中第一次没数据时可以添加,然后第二名学生就不行,最后发下是在aspx设置自增长时格式没转化。
在这里插入图片描述

10.总结(源码)

使用三层架构(UI,BLL,DAL)与ASP.NET结合,实现了学生信息管理系统,使用到了模块和程序分离的模式对于管理员(老师)来说,很方便,优秀的Visual Studio 2019开发环境,采用C#,.NET,他的标配数据库就是sql sever。
有写的看起来不适应的不对的,以及建议,也请大佬在评论区点评指导 ,谢谢.


猜你喜欢

转载自blog.csdn.net/xkk123_/article/details/124339355