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

发布时间:2023年12月20日

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

教师端

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

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

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

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

文章来源:https://blog.csdn.net/m0_55312648/article/details/134958486
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。