c#_sqlserver_三层架构winform学生信息管理及选课系统

基本功能包括管理员登录、注册学生账号、删除学生信息、查找学生信息、发布课程、修改课程、删除课程等。

教师端

  1. 登录:管理员登陆,拥有相应账号即可登录(后台注册)。
  2. 注册学生账号:管理员可给学生分配学号,学号即作为学生登录账号
  3. 查找学生信息:对在籍学生信息查看

4) 删除学生信息:对毕业学生从系统删除

5) 发布课程:发布具体课程 

  6) 修改课程: 修改发布的课程

7) 删除课程:删除课程

学生端

  1. 登录:根据自己的学号和默认密码登录学生端 
  2. 上传完善自己的基本信息:老师注册学生基本信息,该信息不可更改,学生补充剩余信息保存,此信息老师端可查看。 
  3. 选课:对发布课程选课

2.3其他要求

操作系统:Windows10

运行环境:VisualStudio 

数据库环境:SQL Server 2008

)登陆注册功能

A.登录:输入用户名和密码登录,验证用户名和密码,进行登录。

B.注册:老师账号后台注册,学生账号老师注册的学号即是学生账号。

2)增删查改功能

A.添加学生信息、课程信息:对学生信息和课程的录入。

B.删除学生信息、课程信息:对学生信息和课程的移除。

C.查找学生信息:查看学生信息(学号查找)。

D.修改课程信息、学生修改自己基本信息:对学生错误信息进行修改。

E.学生选课:对老师发布的课程选课、退课

3.2数据库设计

本学生信息管理系统所用的数据库是Sqlserver数据库连接。在Sqlserver中创建学生信息和课程管理系统的数据库,包含5张表,学生信息表dbo.BasicInfomation,课程信息表dbo.Test,学生选课表dbo.Stuchoose,两个密码表dbo.User1,dbo.User2

dbo.BasicInfomation学生信息表结构如表3-1所示,dbo.Test课程信息表结构如表3-2所示,

dbo.Stuchoose学生选课表结构如表3-3所示,dbo. User1课程信息表结构如表3-4所示,dbo. User2课程信息表结构如表3-5所示

(1)用户表

此表主要用来存储学生基本信息,即学生的学号,姓名等信息

3-1学生信息

表名

dbo.BasicInfomation

功能

存放学生的基本信息

数据描述

数据规模

百级

聚集索引

学号  ASC

非聚集索引

字段名

类型

说明

约束控制

备注

学号

Int

主键

调用触发器,完成学生账号自动注册

姓名

nvarchar(50)

性别

nvarchar(50)

民族

nvarchar(50)

寝室号

nvarchar(50)

政治面貌

nvarchar(50)

邮政编码

nvarchar(50)

联系电话

nvarchar(50)

身份证号

nvarchar(50)

常住地址

nvarchar(50)

户籍地址

nvarchar(50)

学生照片

Image

2课程信息

此表主要用来存储课程的基本信息,即学生的学院、专业、课程名、老师等。

3-2课程信息

表名

dbo.Test

功能

存放课程信息

数据描述

数据规模

百级

聚集索引

课程编号  ASC

非聚集索引

字段名

类型

说明

约束控制

备注

课程编号

int

主键

PK identity(2021001,1)

学院

nvarchar(50)

专业

nvarchar(50)

课程名称

nvarchar(50)

授课教师

nvarchar(50)

上课时间

nvarchar(50)

教室

nvarchar(50)

学分

nvarchar(50)

3学生选课

此表主要用来存储学生的选课信息,即学生的学号、课程等。

3-3课程信息

表名

dbo. Stuchoose

功能

存放学生选课的信息

数据描述

数据规模

百级

聚集索引

学号  ASC

非聚集索引

字段名

类型

说明

约束控制

备注

学号

int

主键

课程编号

nvarchar(50)

学院

nvarchar(50)

专业

nvarchar(50)

课程名称

nvarchar(50)

授课教师

nvarchar(50)

上课时间

nvarchar(50)

教室

nvarchar(50)

学分

Int

4学生选课

此表主要用来存储老师的账号信息,即学生的账号、密码。

3-4课程信息

表名

dbo. 

功能

存放老师账号的信息

数据描述

数据规模

百级

聚集索引

  Id ASC

非聚集索引

字段名

类型

说明

约束控制

备注

id

nvarchar(50)

主键

pwd

nvarchar(50)

5学生账号

此表主要用来存储学生的账号信息,即学生的账号、密码、姓名。

3-5学生账号信息

表名

dbo. User2

功能

存放学生账号的信息

数据描述

数据规模

百级

聚集索引

学号  ASC

非聚集索引

字段名

类型

说明

约束控制

备注

学号

Int

主键

pwd

nvarchar(50)

默认值123

姓名

nvarchar(50)

7.总结

通过本次设计我感受到了自己的成长,也有一些具体的收获:

收获1:三层架构的应用使得程序的结构清晰,代码简洁,查错方便,可快速定位到是数据访问出错,还是表示层逻辑错误,但前提各项依赖以及调用必须严谨准确。 

收获2:代码千万条,结果就一条。我们要尽可能简化我们的代码,同样的效果,简洁的代码不仅可读性好,而且对程序性能也能有很好的优化。我们可以多在网上看看不同人对一个问题的解决方法,从而提升自己。

收获3:当我们在编码出错时,自己一眼看不出是什么问题时,我们可以尝试使用try catch语句来帮忙输出错误信息。

收获4:开发一个完整的程序,一定要按照正常流程操作。先进行前期调查,设计。最后再开始写程序,往往会省了不少事,这次我设计中就返工多次,都是因为与要求出现了分差。并且在入手程序开发时,一般从数据库入手,先想好功能需要什么数据。这样就不会出现在写代码途中,不停更改自己的数据库,这样很容易报错,并且不好找错。 

通过这次的系统设计,我还有一些感想:

经过自己一个月的努力,我完成了我的设计和报告。从选题开始,到需求以及实现系统的各个功能,我感觉它就像做数学题一样,当你在设计中遇到了难题时,开始会感到不知所措。不知道该怎么解决,但静下心来,通过翻阅书籍,上网查资料,自己一步一步尝试解决。中途可能很曲折,往往不会一试就过,而是需要尝试多次。多次尝试后当突然程序成功运行不报错时,那你心中的喜悦是无法形容的。这也使得你越来越有兴趣做下去。

一个完整的小系统包含的内容也是很多的,我们要养成写注释的习惯。我在完成的这个小系统的时间里,有时查看前几天的代码时,往往要从头看着走,不然很难看懂其中关系和意思。有时也不好查找相应功能的代码在哪儿,可见注释就很有必要。何况这是个小系统且一个人完成的,在实

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

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

相关文章

加权准确率WA,未加权平均召回率UAR和未加权UF1

加权准确率WA,未加权平均召回率UAR和未加权UF1 1.加权准确率WA,未加权平均召回率UAR和未加权UF12.参考链接 1.加权准确率WA,未加权平均召回率UAR和未加权UF1 from sklearn.metrics import classification_report from sklearn.metrics impor…

2018年AMC8数学竞赛真题的典型考点和详细解析

从战争中学习战争最有效。前几天,六分成长分析了2023年、2022年、2020、2019年的AMC8的典型考题、考点和详细答案解析。今天继续为大家分享2018年的AMC8的五道典型考题。 欢迎您查看历史文章了解之前各年的真题解析,本系列会持续更新,直到大家…

【2.5w字吐血总结 | 新手必看】全网最详细MySQL笔记

写在前面 鉴于全网MySQL知识点的总结分散难懂、良莠不齐,为了避免初学者少走弯路,更好更快地掌握MySQL知识,博主特地将自己所学的笔记分享出来。 如果想深度理解掌握MySQL,欢迎订阅专栏:MySQL进阶之路【秋说】&#…

王世军:铁笔翰墨染丹青 九峰冠华传千古

鸡是十二生肖中一员,在民间过年时常被剪成窗花,贴于窗户大门上。为表达人们对鸡的喜爱,将正月初一定为“鸡日”,鸡谐音“吉”,意为大吉大利,讨个好彩头。鸡又为“五德之君”,鸡的五德谓之文、武…

【改进YOLOv8】生猪胖瘦评价分级系统:可重参化EfficientRepBiPAN优化Neck

1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 研究背景与意义: 随着计算机视觉和深度学习的快速发展,目标检测成为了计算机视觉领域的一个重要研究方向。目标检测的目标是在图像或视频中准确地识别和定…

swing快速入门(十五)

注释很详细,直接上代码 上一篇 新增内容 1.文件对话框(保存文件) 2.文件对话框(打开文件) import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;public class swing_tes…

Linux 中使用 docker 安装 Elasticsearch 及 Kibana

Linux 中使用 docker 安装 Elasticsearch 及 Kibana 安装 Elasticsearch 和 Kibana安装分词插件 ik_smart 安装 Elasticsearch 和 Kibana 查看当前运行的镜像及本地已经下载的镜像,确认之前没有安装过 ES 和 Kibana 镜像 docker ps docker images从远程镜像仓库拉…

京东大数据-10月京东咖啡机市场销售数据分析-销售额增长41%,德龙等海外头部品牌店铺数据分析

如今,咖啡已经成为了人们日常生活中流行的生活饮品之一,消费量较大。随着咖啡的受众人群越来越多,消费者们对咖啡品质的要求也愈来愈高,而咖啡品质除了受咖啡豆质量影响外,还受制作过程中煮泡时间、水温和物料数量等因…

【学习笔记】Linux(基础知识)

第1章 Linux概况 1.1 Linux起源 四个重要的支柱: ①Unix操作系统; ②Minix操作系统; ③GNU计划; ④Internet网络。 1. Unix操作系统 UNIX的诞生 1971年,用汇编语言首先开发成功16位UNIX系统 1973年,用C语言重写了UNIX系统 创始人:Ken Thompson & Dennis Ritch…

KSP实战-使用ksp AutoService为SPI自动生成配置文件

AutoService AutoService KSP annotation processor 简介 AutoService是自动为Service Provider Interface(SPI)生成 META-INF/services 配置的高性能KSP注解处理器插件; 效果如图: 背过Java面试题的应该都知道SPI&#xff0c…

【c语言】【visual studio】动态内存管理,malloc,calloc,realloc详解。

引言&#xff1a;随着大一期末的到来&#xff0c;想必许多学生都学到内存的动态管理这一部分了&#xff0c;看望这篇博客后&#xff0c;希望能解除你心中对这一章节的疑惑。 (・∀・(・∀・(・∀・*) 1.malloc详解 malloc的头文件是#include <sdtlib.h>,malloc - C Ref…

【C语言】——认识指针变量和地址,以及指针变量类型的意义

&#x1f3a5; 岁月失语唯石能言的个人主页 &#x1f525;个人栏专&#xff1a;秒懂C语言 ⭐若在许我少年时&#xff0c;一两黄金一两风 目录 前言 一、指针变量和地址 1.1 取地址操作符&#xff08;&&#xff09; 1.2 指针变量和解引用操作符&#xff…

Linux上使用HTTP协议进行数据获取的实战示例

嗨&#xff0c;Linux爱好者们&#xff0c;今天我们要一起探讨一下如何在Linux上进行HTTP协议的数据获取。这不是一项简单的任务&#xff0c;但放心&#xff0c;我会以最简单的语言&#xff0c;结合实例来给大家讲解。 首先&#xff0c;我们需要一个工具&#xff0c;那就是curl…

初识Dubbo学习,一文掌握Dubbo基础知识文集(2)

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

springMVC-@RequestMapping

基本介绍 RequestMapping注解可以指定控制器/处理器的某个方法的请求的url, 示例 &#xff08;结合springMVC基本原理理解&#xff09; Controller public class UserHandler {RequestMapping(value "/login")public String login() {System.out.println("登…

springCloud项目打包如何把jar放到指定目录下

springCloud项目打包如何把jar发放到指定目录下 maven-antrun-plugin springCloud微服务打包jar&#xff0c;模块过多&#xff1b;我的项目模块结构如下&#xff1a; 我把实体类相关的单独抽离一个模块在service-api下服务单独写在service某块下&#xff0c; 每个模块的jar都…

如何使用jQuery获取当前网址路径

如何使用jQuery获取当前网址路径概述在前端开发中&#xff0c;经常需要获取当前网址的路径&#xff0c;通过使用jQuery库&#xff0c;我们可以轻松地实现这个功能。本文将逐步介绍如何使用jQuery获取当前网址路径。流程步骤以下是实现该功能的步骤&#xff1a;步骤 描述…

人工智能导论复习资料

题型 1、简答题&#xff08;5题&#xff09; 2、设计题 3、综合题 4、论述题&#xff08;10分&#xff09; 考点 第一章 1、人工智能的定义、发展&#xff1b; 2、人工智能的学派、认知观及其间的关系&#xff1b; 3、人工智能要素及系统分类&#xff1b; 4、人工智能的研究、…

Python轴承故障诊断 (七)基于EMD-CNN-LSTM的故障分类

目录 前言 1 经验模态分解EMD的Python示例 2 轴承故障数据的预处理 2.1 导入数据 2.2 制作数据集和对应标签 2.3 故障数据的EMD分解可视化 2.4 故障数据的EMD分解预处理 3 基于EMD-CNN-LSTM的轴承故障诊断分类 3.1 训练数据、测试数据分组&#xff0c;数据分batch 3.…

canal环境部署

docker 部署canal同步数据 1 环境: 2 Mysql 配置 查看 binlog 是否启用 SHOW VARIABLES LIKE ‘%log_bin%’; 开启 binlog, 修改 my.cnf docker cp mysql:/etc/my.cnf /data/mysql/conf 拷贝文件到临时目录修改后再拷贝回去 # For advice on how to change settings please …