学生选课和管理系统使用vb和SQL Server文档格式.docx
《学生选课和管理系统使用vb和SQL Server文档格式.docx》由会员分享,可在线阅读,更多相关《学生选课和管理系统使用vb和SQL Server文档格式.docx(40页珍藏版)》请在冰豆网上搜索。
![学生选课和管理系统使用vb和SQL Server文档格式.docx](https://file1.bdocx.com/fileroot1/2022-10/8/859d6193-d0cd-43f6-a8f1-596127257612/859d6193-d0cd-43f6-a8f1-5961272576121.gif)
问题解决方案(系统分析和设计报告、数据库设计方案,功能设计,界面设计),设计的系统,系统运行报告等。
功能需求分析具体如下。
1.1.1系统登陆
用户输入用户名和密码,系统查询数据库中的信息对用户名和密码进行验证。
如果用户名或密码不正确则不能进入系统。
如果用户名存在且密码正确,系统会自动根据该用户所在的表进入不同的界面且显示该用户相对应的基本信息。
1.1.2学生界面
a.基本信息
学生登陆成功,可看到自己的基本信息包括学号、姓名、性别、年龄、系别。
b.选课
可查看学生本人的选课情况,包括课程名、授课老师、课室、分数。
并可进一步进行选择和删除。
1.1.3教师界面
教师登陆成功,可看到自己的基本信息包括教师号、姓名、性别、职称、系别。
还可看到自己教授的所有课程
b.查看学生信息
可查看选择自己教授的课程的学生名单,并可进一步对选择该门课程的学生成绩进行录入和修改。
1.1.4管理员界面
a.查询
可查询学生信息、教师信息以及其他的一些基本选课信息包括课程信息、选课信息、课室信息、教授课程和授课地点。
b.编辑
可对正在浏览的学生和教师信息进行编辑操作包括修改、删除,并可进行学生或教师基本信息的录入。
当未进行浏览时,仅可录入信息而不能进行修改和删除。
c.报表
可显示所有学生的选课信息包括课程名、教师和授课老师。
并可进一步打印或导出。
除此之外,每个用户均可重新设置自己的密码(需要旧密码验证)。
1.2模块设计
1.2.1系统架构
系统的模块划分如图1-1所示,将系统分为4个大模块,每个模块负责的功能与用户所在的表有关。
其中用户登陆模块根据用户所在的表显示不同的界面和提供不同的操作。
本系统采用VB.NET的ADO.NET数据库访问技术实现对数据库的访问操作。
系统的最底层是数据库,本系统采用SQLServer2008作为
后台数据库。
图1-1模块划分图
1.2.2用户登录模块
用户登陆模块实现对用户合法性的检查,读取不同的用户表,根据用户所在的表展示不同的界面。
用户登陆界面的类为“frmLogin”。
1.2.3学生模块、教师模块和管理员模块
功能介绍详见功能需求具体分析1.1.2~1.1.4。
学生界面对应类“frmStudent”,选课功能对应类“dlgSChooseCourse”;
教师界面对应类“frmTeacher”,查看相应课程学生信息对应类“frmTStudentInfo”,录入、修改学生分数对应类“dlgTModifyGrade”;
管理员界面对应类“frmAdmin”,录入、修改学生信息对应类“dlgAModifyStudentInfo”,录入、修改教师信息对应类“dlgAModifyTeacherInfo”,查看和编辑其他选课信息对应类“dlgAOthers”,报表对应类“Report”。
所有用户修改密码统一使用类“dlgModifyPWC”。
此外,还定义了几个公共类方便操作。
“PublicVar”类存储全局变量;
“CUser”类保存用户登录名和密码以及提供了修改密码的方法;
CDBOperation”类的作用是提供统一的方法执行SQL语句,并对SQL语句进行判断是添加、删除、更新操作还是查询操作,若为前者,弹出对应信息框通知用户。
二数据库分析与设计
2.1概念设计
在以上的系统分析基础上,设计出系统的E-R图,如图2-1所示。
图2-1E-R图
主要包括4个实体,分别是学生、教师、课程、教室及三个关系,即选修、讲授和授课地。
一门课程可由多个老师教授,一个老师也可以教授多门课程,课程实体与教师实体是多对多关系。
一门课程可由多个学生选择,一个学生也可以选择多门课程,课程实体与学生实体是多对多关系。
一门课程可安排在多个教室上,一个教室也可以作为多门课程的授课地点,课程实体与教室之间是多对多关系。
2.2逻辑设计
在根据以上实体与实体的关系,形成表与表之间的逻辑关系,如图2-2所示。
图2-2逻辑关系图
表的具体项如下所示(为方便编程,英语部分为实际表名,中文部分为解释,除了课程表项的类别),
学生Student(学号Sno、姓名Sname、性别Ssex、年龄Sage、系别Sdept)
教师Teacher(教师号Tno,姓名Tname,性别Tsex,职称Ttitle,系别Tdept)
课程Course(课程号Cno、课程名Cname,学分Credit,类别)
教室Classroom(教室号CRno,多媒体CRmultiMedia,座位CRseat)
讲授TC(教师号Tno,课程号Cno)
选修SC(学号Sno,课程号Cno,成绩Grade)
授课地Venue(课程号Cno,教室号CRno)
2.3数据库的实现
各个表内列的名称、含义、是否主键等基本信息可从2.2获知,这里不再赘述。
在数据库中创建各个表的SQL语句见附录一。
三系统实现
新建一个VB项目,使用默认配置,保存为“DBExperiment7”。
关于项目中各个类的代码部分详见附录二。
代码部分带有注释,就不重复解释了。
3.1设置全局变量和自定义用户类以及操作类
添加一个模块,用于保存全局变量。
单击“项目”->
“添加模块”,并命名为“PublicVar”。
代码部分详见附录二。
添加一个类,操作同上,保存为“CUser”。
之所以使用CUser类,是为了能保存用户的登陆信息,和在修改密码时能传递信息,而不需要重新执行SQL语句进行查询。
再添加一个类,保存为“CDBOperation”。
其功能为执行SQL语句,并对SQL语句进行判断是添加、删除、更新操作还是查询操作,若为前者,弹出对应信息框通知用户。
3.2登陆窗口
添加Windows窗体,保存为“frmLogin.vb”,使用工具箱(视图->
工具箱),添加各控件后登陆窗口如图3-1所示。
图3-1
3.3学生界面
如果是用户是学生,则登陆后界面如图3-2所示。
对应的项目文件为“frmStudent.vb”。
图3-2
学生信息界面可看到基本信息(除了密码项)。
单击“选课”按钮,弹出选课对话框,如图3-3所示,对应项目文件为“dlgSChooseCourse.vb”
图3-3
代码中主要使用SQL语句执行并进行数据填充,如其中自定义的填充数据集方法FillDataGrid。
还使用了其他几个SQL语句进行查询,至于具体的代码详见目录,这里只给出执行的SQL语句。
查找对应课程名的课程号
SQLString="
selectCnofromCoursewhereCname='
"
_
&
cboChooseCourse.Text&
"
'
查找对应学号和课程号的记录
SQLString=_
select*fromSCwhereSno='
User.UserID&
andCno='
Cno&
插入选课记录
insertintoSC(Cno,Sno)values('
'
)"
删除选课记录
deleteSCwhereCno='
andSno='
单击“修改密码”按钮进入修改密码对话框,如图3-4所示,对应项目文件为“dlgModifyPW.vb”。
注:
所有用户修改密码都是使用该窗口界面,可节省空间。
图3-4
主要判断“旧密码”和“新密码”是否一致,通过CUser类保存的密码进行对比,而不是使用SQL语句重新查询。
之后调用CUser类中的修改密码方法进行密码更新。
3.4教师界面
教师用户登陆后的界面如图3-5所示,所对应的项目文件为“frmTeacher.vb”。
图3-5
基本代码和学生界面的代码类似,主要不同的地方有:
增加了一个表格,需要对表格进行填充,并且对双击表格单元格内容时编程使其可以查看选修该门课程的学生信息。
双击表格单元格内容需要使用表格的CellContentDoubleClick过程,具体代码如下:
下面的第一二行代码应该在同一行,由于排版问题分开了。
PrivateSubgrdTC_CellContentDoubleClick(ByValsenderAsObject,ByValeAsSystem.Windows.Forms.DataGridViewCellEventArgs)HandlesgrdTC.CellContentDoubleClick
'
判断有没超过范围并获取当前活动单元的值
IfgrdTC.CurrentCell.RowIndex<
grdTC.RowCount-1Then
storeCnameforpassingittofrmTStudengInfo
Cname=grdTC.Item(0,grdTC.CurrentRow.Index).Value
frmTStudentInfo.ShowDialog()
EndIf
EndSub
双击单元格内容查看选修该门课程的学生信息,界面如图3-6所示,对应的项目文件为“frmTStudentInfo.vb”
图3-6
可看到选修该门课程的学生信息(学号、姓名、系别、分数,列名还没修改)
双击学生基本信息表格的单元格内容可修改该行记录的学生的分数,界面如图3-7所示,对应的项目文件为“dlgTModifyGrade.vb”。
图3-7
仅可以修改分数项。
提交修改即可修改分数。
3.5管理员界面
管理员用户登陆后的界面如图3-8所示,对应项目文件为“frmAdmin.vb”。
图3-8
由于管理员的功能比较多,所以代码也相对较多和复杂,主要代码部分都有注释详加解释,故不再此赘述。
菜单栏各下拉项如图3-9所示。
图3-9
查询菜单仅可以查询,表格属性为只读。
需要修改或者删除,需要在编辑项中选中修改或删除才可以进行编辑。
当没有选中查询菜单中的项时,编辑菜单中的修改和删除是灰白的,不能被选择。
查询后选择修改,则可以在表格中双击需要修改的记录,弹出修改对话框。
例:
单