c#_sqlserver_三层架构winform学生信息管理及选课系统
基本功能包括管理员登录、注册学生账号、删除学生信息、查找学生信息、发布课程、修改课程、删除课程等。
教师端
- 登录:管理员登陆,拥有相应账号即可登录(后台注册)。
- 注册学生账号:管理员可给学生分配学号,学号即作为学生登录账号
- 查找学生信息:对在籍学生信息查看
4)?删除学生信息:对毕业学生从系统删除
5) 发布课程:发布具体课程?
??6)?修改课程: 修改发布的课程
7) 删除课程:删除课程
学生端
- 登录:根据自己的学号和默认密码登录学生端?
- 上传完善自己的基本信息:老师注册学生基本信息,该信息不可更改,学生补充剩余信息保存,此信息老师端可查看。?
- 选课:对发布课程选课
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:开发一个完整的程序,一定要按照正常流程操作。先进行前期调查,设计。最后再开始写程序,往往会省了不少事,这次我设计中就返工多次,都是因为与要求出现了分差。并且在入手程序开发时,一般从数据库入手,先想好功能需要什么数据。这样就不会出现在写代码途中,不停更改自己的数据库,这样很容易报错,并且不好找错。?
通过这次的系统设计,我还有一些感想:
经过自己一个月的努力,我完成了我的设计和报告。从选题开始,到需求以及实现系统的各个功能,我感觉它就像做数学题一样,当你在设计中遇到了难题时,开始会感到不知所措。不知道该怎么解决,但静下心来,通过翻阅书籍,上网查资料,自己一步一步尝试解决。中途可能很曲折,往往不会一试就过,而是需要尝试多次。多次尝试后当突然程序成功运行不报错时,那你心中的喜悦是无法形容的。这也使得你越来越有兴趣做下去。
一个完整的小系统包含的内容也是很多的,我们要养成写注释的习惯。我在完成的这个小系统的时间里,有时查看前几天的代码时,往往要从头看着走,不然很难看懂其中关系和意思。有时也不好查找相应功能的代码在哪儿,可见注释就很有必要。何况这是个小系统且一个人完成的,在实
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!