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

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HTML中常用表单元素使用(详解!)

Hi i,m JinXiang ⭐ 前言 ⭐ 本篇文章主要介绍HTML中常用表单元素使用以及部分理论知识 🍉欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁 🍉博主收将持续更新学习记录获,友友们有任何问题可以在评论区留言 …

基于Maven构建OSGI应用(Maven和OSGI结合)

基于Maven构建OSGI应用。 使用Maven来构建项目,包括项目的创建、子模块buldle的创建等。使用OSGI来实现动态模块化管理,实现模块的热插拔效果(即插即用)。 创建一个Maven项目:helloworld,并在该项目下创建…

JAVA BIO深入剖析

目录 JAVA BIO深入剖析1 Java BIO 基本介绍2 Java BIO 工作机制3 传统的BIO编程实例回顾客户端案例如下服务端案例如下小结 4 BIO模式下多发和多收消息客户端代码如下服务端代码如下小结 5 BIO模式下接收多个客户端概述客户端案例代码如下服务端案例代码如下小结 6 伪异步I/O编…

【C进阶】C程序是怎么运作的呢?-- 程序环境和预处理(下)

前言: 这是程序环境和预处理的下半篇文章。至此,关于c语言知识点:从编译到运行的过程已讲解完毕。传送🚪,上半篇: http://t.csdnimg.cn/hvxmr 本章涉及的知识点: 宏和函数对比、命名约定、#undef、命令行定…

Linux 系统 SSH 和 SCP 服务器搭建、配置、访问以及出现的问题

SSH是Secure Shell的缩写,是一种网络协议,用于通过本地或远程网络在计算机上进行远程登录和命令操作。SSH 是 Telnet 协议的演变:正如其名称所描述的,SSH 是安全的,并对通过网络传输的数据进行加密。 SSH 是目前较为可…

分布式-分布式事务理论、模型、方案、框架

一、分布式事务理论模型 分布式事务问题也叫分布式数据一致性问题,简单来说就是如何在分布式场景中保证多个节点数据的一致性。分布式事务产生的核心原因在于存储资源的分布性,比如多个数据库,或者MySQL和Redis两种不同存储设备的数据一致性…

5. PyTorch——数据处理模块

1.数据加载 在PyTorch中,数据加载可通过自定义的数据集对象。数据集对象被抽象为Dataset类,实现自定义的数据集需要继承Dataset,并实现两个Python魔法方法: __getitem__:返回一条数据,或一个样本。obj[in…

鸿蒙开发之状态管理@Prop和@Link

一、用法 在父子组件需要进行数据同步的时候,可以通过Prop和Link装饰器来做到。在父组件中用State装饰,在自组件中用Prop或Link装饰。 结论:Prop用于子组件只监听父组件的数据改变而改变,自己不对数据改变 Link用于子组件与父组…

Skype的介绍及使用

介绍及使用说明 Windows自带的Skype是一款全球通用的即时通讯软件,它可以让用户通过文字、语音和视频进行免费的在线沟通。下面是Skype的使用说明: 1.安装和登录:如果你的Windows系统中没有预装Skype,你可以在Microsoft官…

锁定屏幕与挂起

概要: 本篇主要讲述Ubuntu22.04中的锁定屏幕和挂起 锁定屏幕就是大家通常所说的息屏、锁屏,英文单词是lock 挂起一般也被称为休眠、睡眠,英文单词是suspend 一、锁定屏幕 1、CtrlL 按下键盘上的CtrlL键,即可锁定屏幕&#x…

【华为鸿蒙系统学习】- HarmonyOS4.0开发工具和环境配置问题总结|自学篇

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 💫个人格言:"没有罗马,那就自己创造罗马~" 目录 官方链接 HUAWEI DevEco Studio和SDK下载和升级 | HarmonyOS开发者 安装教程 (…

【PTA刷题+代码+详解】求二叉树度为1的结点个数(递归法)

文章目录 题目C代码详解 题目 在二叉树T中,其度为1的结点是指某结点只有左孩子或只有右孩子。利用递归方法求二叉树T的度为1的结点个数。 1)如果TNULL,则是空树,度为1的结点个数为0,返回值为0; 2&#xff0…

Python爬虫实战 | 爬取拼多多商品的详情价格SKU数据

本案例将为大家演示如何爬取拼多多商品的详情数据。目的是爬取大量的商品以及商品的评论,所以在程序设计上要考虑到该爬虫的高并发以及持久化存储。爬虫工具选用了Scrapy框架,以满足爬虫的高并发请求任务;持久化存储用了MongoDB,对…

python:五种算法(SSA、WOA、GWO、PSO、GA)求解23个测试函数(python代码)

一、五种算法简介 1、麻雀搜索算法SSA 2、鲸鱼优化算法WOA 3、灰狼优化算法GWO 4、粒子群优化算法PSO 5、遗传算法GA 二、5种算法求解23个函数 (1)23个函数简介 参考文献: [1] Yao X, Liu Y, Lin G M. Evolutionary programming made…

vue 集成行政区域选择插件region和数据回显

故事:最近,项目需要进行行政区域围栏的绘制,由于老旧项目是利用js保存全国行政区域地址和编码,在选择器select进行匹配显示,但此方法复杂,因此选择集成区域插件region 步骤一:用命令安装region…

Vue3-09-条件渲染-v-show 的基本使用

v-show 的作用 v-show 可以根据条件表达式的值【展示】或【隐藏】html 元素。v-show 的特点 v-show 的实现方式是 控制 dom 元素的 css的 display的属性, 因此,无论该元素是否展示,该元素都会正常渲染在页面上, 当v-show 的 条件…

如何通过 SSH 访问 VirtualBox 的虚机

VirtualBox 是一款免费虚机软件。在用户使用它安装了 linux 以后,它默认只提供了控制台的管理画面。 直接使用控制台管理 Linux 没有使用诸如 putty 或者 vscode 这样的 ssh 远程管理工具方便。那么可不可以直接使用 ssh 访问 VirtualBox 上的 Linux 呢&#xff1f…

GNN 学习笔记

稍微看一下之后备用。 【图神经网络综述】GNN原理+落地应用实现框架全解_gnn实现-CSDN博客 GNN相比CNN最大的区别在于数据结构,CNN一般作用在二维、三维数据里,如图像、表格数据等,可以进行卷积操作。而GNN作用在一个由节点和边…

模拟目录管理 - 华为OD统一考试(C卷)

OD统一考试(C卷) 分值: 200分 题解: Java / Python / C++ 题目描述 实现一个模拟目录管理功能的软件,输入一个命令序列,输出最后一条命令运行结果。 支持命令: 1)创建目录命令: mkdir 目录名称,如mkdir abc为在当前目录创建abc目录,如果已存在同名目录则不执行任何操作…

案例055:基于微信小程序的四六级词汇

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…