实验选课系统数据库设计.docx
- 文档编号:7967521
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:23
- 大小:434.71KB
实验选课系统数据库设计.docx
《实验选课系统数据库设计.docx》由会员分享,可在线阅读,更多相关《实验选课系统数据库设计.docx(23页珍藏版)》请在冰豆网上搜索。
实验选课系统数据库设计
摘要
随着计算机的普及,计算机技术有快速的发展,计算机在各行各业的应用也越来越广泛,为了满足时代的需要,我们开发了许多与实际相应的应用系统,实验选课系统就是一个很好的例子。
实验选课系统的用处非常大,它是记录学生选课以及教师等相关信息的软件,应用不同的用户权限加以控制,解决了数据的安全性问题。
使用简单、方便,对学校的选课有很大的帮助。
关键词:
应用系统;学生选课;权限;安全
引言
数据结构在计算机应用中的作用非常大,程序=数据结构+算法,算法的实现也离不开数据结构,一个好的算法必须要有合适的数据结构加以实现,才能保证算法的优越性。
课程设计实际上就是程序的集合,是数据结构和算法方面的综合应用,课程设计不仅仅是考验我们的编程,对语言的学习能力,更主要的是培养我们对系统软件开发的方法的学习和团队合作能力的考验。
当然,课程设计的意义并不是完全局限于此,每个人在课程设计中都可以得到不同的锻炼。
本次课程设计的题目是实验选课系统。
主要任务:
1、实验选课系统分为教师,学生及系统管理员三类用户,学生的功能包括选课,查寻实验信息等,教师的功能包括考勤,学生实验成绩录入,查寻实验信息等。
管理员的功能包括新建教师,学生账户,设定实验课程信息(设定实验时间,地点,任课教师)。
2、管理员可对教师,学生及实验课程信息进行修改;教师可对任课的考勤,成绩进行修改;学生可以对自己选修的课程重选,退选。
3、管理员可删除教师,学生及实验课程信息。
4、教师可查询所任课程的学生名单,实验时间,考勤及实验成绩,并可按成绩分数段进行统计;学生可查寻所学课程的实验时间,教师名单;管理员具有全系统的查寻功能。
本次设计实现的语言是C#,采用了SQLSever2008和VS2010等软件实现系统。
1需求分析
系统用户分为三类:
学生、教师、管理员;
学生有选课、退选、查询成绩和课程信息、教师名单等功能。
教师有添加成绩,查询学生名单和课程信息、统计、考勤等功能。
管理员具有全系统的使用功能。
1.1系统分析
实验选课系统针对不同的用户,对系统有着不同的使用权限,因此要求系统有密码登录功能。
1.2用户需求
●实验选课系统分为教师,学生及系统管理员三类用户,学生的功能包括选课,查寻实验信息等,教师的功能包括考勤,学生实验成绩录入,查寻实验信息等。
管理员的功能包括新建教师,学生账户,设定实验课程信息(设定实验时间,地点,任课教师)。
●管理员可对教师,学生及实验课程信息进行修改;教师可对任课的考勤,成绩进行修改;学生可以对自己选修的课程重选,退选。
●管理员可删除教师,学生及实验课程信息。
●教师可查询所任课程的学生名单,实验时间,考勤及实验成绩,并可按成绩分数段进行统计;学生可查寻所学课程的实验时间,教师名单;管理员具有全系统的查寻功
2概要设计
2.1系统流程图
图2-1系统流程图
2.2系统功能模块设计
系统主要功能如下所示:
图2-2系统功能模块
2.3系统总体设计
实验选课系统分为教师,学生管理员三个功能模块。
学生模块:
选课、查寻实验信息、教师名单等功能。
教师模块:
考勤、成绩统计、学生实验成绩录入、查寻实验信息、所任课程的学生名单等功能。
管理员模块:
具有全系统的查询、更新功能。
3数据库设计
3.1概念模型设计
3.1.1设计原理
通过对系统的总体结构的把握,采用自顶向下和自底向上像结合的混合策略,先采用自顶下策略设计出全局概念结构,再使用自底向上的方法设计出各局部概念结构。
3.1.2概念模型
经过对实验选课系统所涉及到的数据进行分析,得到如下的实体:
(1)学生:
属性包括学号、姓名、密码。
(2)课程:
属性包括课程号、课程名称、课程信息(包括上课时间、上课地点、上课教师)。
(3)教师:
职工号、教师姓名、密码。
(4)管理员:
管理员编号、管理员姓名、密码。
联系有:
(1)考勤:
表示教师、实验课程、学生之间的关系。
它有属性:
状态
(2)选课:
表示学生与实验课程之间的关系。
它有属性:
成绩。
所设计的概念模型(E-R图)
图3-1系统E-R图
图3-2管理员分E-R图
图3-3学生分E-R图
图3-4教师分E-R图
图3-5实验课程分E-R图
3.2逻辑结构设计
3.2.1将实体转换为关系模式
S(Sno,Sname,password)
C(Cno,Cname,Ctine,Cplace,Tno)
T(Tno,Tname,password)
A(Ano,Aname,password)
3.2.2将联系转换为关系模式
SC(Sno,Cno,grade)
TCS(Tno,Cno,Sno,status)
3.3物理结构设计
3.3.1基本表设计
1、学生表:
表3-1职工信息表
字段名
字段描述
字段类型
备注
Sno
学号
Char(10)
主键
Sname
姓名
Char(10)
无
password
密码
Char(10)
无
创建学生表的SQL语句如下:
CreatetableS
(
Snochar(10)primarykey,
Snamechar(10),
Passwordchar(10)
);
2、教师表:
表3-2教师信息表
字段名
字段描述
字段类型
备注
Tno
职工号
Char(10)
主键
Tname
教师姓名
Char(10)
无
password
密码
Char(10)
无
创建教师表的SQL语句如下:
CreatetableT
(
Tnochar(10)primarykey,
Tnamechar(10),
Passwordchar(10)
);
3、管理员表:
表3-3管理员信息表
字段名
字段描述
字段类型
备注
Ano
管理员编号
Char(10)
主键
Aname
姓名
Char(10)
无
password
密码
Char(10)
无
创建管理员表的SQL语句如下:
CreatetableA
(
Anochar(10)primarykey,
Anamechar(10),
Passwordchar(10)
);
4、实验课程表:
表3-4实验课程信息表
字段名
字段描述
字段类型
备注
Cno
课程号
Char(10)
主键
Cname
课程名称
Char(20)
无
Ctime
上课时间
Char(20)
无
Cplace
上课地点
Char(10)
无
Tno
任课教师
Char(10)
T表外键
创建实验课程表的SQL语句如下:
CreatetableC
(
Cnochar(10)primarykey,
Cnamechar(20),
Ctimechar(20),
Cplacechar(10),
Tnochar(10)foreignkeyreferencesT(Tno)
);
5、学生选课表:
表3-5学生选课信息表
字段名
字段描述
字段类型
备注
Sno
学号
Char(10)
主键
Cno
课程号
Char(10)
主键
grade
成绩
Int
无
创建学生选课表的SQL语句如下:
CreatetableSC
(
Snochar(10)foreignkeyreferencesS(Sno),
Cnochar(10)foreignkeyreferencesS(Sno),
gradeint,
primarykey(Sno,Cno)
);
6、考勤表:
表3-6考勤信息表
字段名
字段描述
字段类型
备注
Tno
职工号
Char(10)
主键
Cno
课程号
Char(20)
主键
Sno
学号
Char(20)
主键
status
状态
Char(10)
无
创建考勤表的SQL语句如下:
CreatetableTCS
(
Tnochar(10)foreignkeyreferencesT(Tno),
Cnochar(10)foreignkeyreferencesS(Sno),
Snochar(10)foreignkeyreferencesS(Sno),
statuschar(10),
primarykey(Tno,Cno,Sno)
);
4程序模块设计
4.1开发环境及数据库连接
本系统用C#语言编写设计,使用VS2010编程环境编写,使用SQLSever(SQLEXPRESS)数据库,采用ADO.NET数据库访问技术。
4.2学生模块设计
4.2.1设计思路
根据任务书的内容,明确学生模块需要实现的功能,根据功能使用不同的方法设计不同的子模块。
4.2.2实现方法(以程序流程图或伪码表示)
学生模块代码:
privatevoid学生选课ToolStripMenuItem_Click(objectsender,EventArgse)
{
newSxuanke().Show();
}
privatevoid已选课程ToolStripMenuItem_Click(objectsender,EventArgse)
{
newSyixuan().Show();
}
privatevoid查询实验信息ToolStripMenuItem_Click(objectsender,EventArgse)
{
newselectshiyan().Show();
}
privatevoid教师名单ToolStripMenuItem_Click(objectsender,EventArgse)
{
newTmingdan().Show();
}
privatevoid退出ToolStripMenuItem_Click(objectsender,EventArgse)
{
this.Close();
newlogin().Show();
}
4.3教师模块设计
4.3.1设计思路
根据任务书的内容,明确教师模块需要实现的功能,根据功能使用不同的方法设计不同的子模块。
4.2.2实现方法(以程序流程图或伪码表示)
privatevoid录入成绩ToolStripMenuItem_Click(objectsender,EventArgse)
{
newgradeAdd().Show();
}
privatevoid查询实验课程信息ToolStripMenuItem_Click(objectsender,EventArgse)
{
newselectshiyan().Show();
}
privatevoid学生名单ToolStripMenuItem_Click(objectsender,EventArgse)
{
newxueshengmingdan().Show();
}
privatevoid考勤ToolStripMenuItem_Click(objectsender,EventArgse)
{
newkaoqing().Show();
}
privatevoid统计ToolStripMenuItem_Click(objectsender,EventArgse)
{
newtongji().Show();
}
privatevoid退出ToolStripMenuItem_Click(objectsender,EventArgse)
{
this.Close();
newlogin().Show();
}
4.4管理员模块设计
4.4.1设计思路
根据任务书的内容,明确管理员模块需要实现的功能,根据功能使用不同的方法设计不同的子模块。
4.2.2实现方法(以程序流程图或伪码表示)
privatevoid添加学生用户ToolStripMenuItem_Click(objectsender,EventArgse)
{
newAddS().Show();
}
privatevoid添加教师用户ToolStripMenuItem_Click(objectsender,EventArgse)
{
newAddT().Show();
}
privatevoid添加实验课程信息ToolStripMenuItem_Click(objectsender,EventArgse)
{
newAddC().Show();
}
privatevoid学生信息ToolStripMenuItem_Click(objectsender,EventArgse)
{
newselectS().Show();
}
privatevoid教师信息ToolStripMenuItem_Click(objectsender,EventArgse)
{
newselectT().Show();
}
privatevoid实验课程信息ToolStripMenuItem_Click(objectsender,EventArgse)
{
newselectC().Show();
}
privatevoid学生选课信息ToolStripMenuItem_Click(objectsender,EventArgse)
{
newselectSC().Show();
}
privatevoid考勤信息ToolStripMenuItem_Click(objectsender,EventArgse)
{
newselectTCS().Show();
}
privatevoid退出ToolStripMenuItem_Click(objectsender,EventArgse)
{
this.Close();
newlogin().Show();
}
5.系统测试
5.1测试环境
系统测试的时候主要是黑盒测试,进行功能的验证。
工具:
WindowsXP、VS2010、SQLSever
5.2测试用例及结果
5.2.1界面测试
测试界面是否整洁美观,人机对话是否友好,检查所有的页面是否能够正确的显示,每个页面的风格是否一致,界面是否有错别字,页面每一个链接是否有对应的界面,页面控件和操作按钮的位置是否合理,界面中的下拉列表的值是否正确,是否有重复的值。
界面测试结果,界面整洁美观,界面友好,界面风格一致,无错别字,控件按钮位置合适易于操作,输入框、下拉列表等显示正确。
5.2.2功能测试
1、登录测试
用例编号
用户名
密码
用户权限
预期结果
1
1(正确)
123(正确)
管理员
成功登录系统的管理员首页
2
2(正确)
123(正确)
教师
成功登录系统的教师首页
3
1(正确)
123(正确)
学生
成功登录系统的学生界面
4
1(正确)
111(错误)
管理员
停留在登录界面,显示登录用户不存在或密码错误
5
0(错误)
123(正确)
管理员
停留在登录界面,显示登录用户不存在或密码错误
6
(空)
123(正确)
管理员
停留在登录界面,显示登录用户不存在或密码错误
7
2(正确)
(空)
管理员
停留在登录界面,显示登录用户不存在或密码错误
8
1(正确)
111(错误)
教师
停留在登录界面,显示登录用户不存在或密码错误
9
0(错误)
123(正确)
教师
停留在登录界面,显示登录用户不存在或密码错误
10
(空)
123(正确)
教师
停留在登录界面,显示登录用户不存在或密码错误
11
2(正确)
(空)
教师
停留在登录界面,显示登录用户不存在或密码错误
12
1(正确)
111(错误)
学生
停留在登录界面,显示登录用户不存在或密码错误
13
0(错误)
123(正确)
学生
停留在登录界面,显示登录用户不存在或密码错误
14
(空)
123(正确)
学生
停留在登录界面,显示登录用户不存在或密码错误
15
2(正确)
(空)
学生
停留在登录界面,显示登录用户不存在或密码错误
用例4、5、6、7的实际结果,如图5-1、5-2所示:
图5-1管理员登录测试1
图5-2登录失败测试
用例8、9、10、11的实际结果,如图5-2、5-3所示:
图5-4教师登录测试1
用例12、13、14、15的实际结果,如图5-2、5-4所示:
图5-4学生登录测试1
用例1的实际结果,如图5-5所示:
图5-5管理员登录测试2
用例2的实际结果,如图5-6所示:
图5-6教师登录测试2
用例3的实际结果,如图5-7所示:
图5-7学生登录测试2
2、管理员功能测试
图5-8添加学生用户
图5-9添加教师用户
图5-10添加实验课程信息
图5-11学生信息浏览
图5-12教师信息浏览
图5-13实验信息浏览
图5-14学生选课信息浏览
图5-15考勤信息浏览
3、教师功能测试
图5-16成绩录入
图5-17查询实验课程信息
图5-18学生名单
图5-19考勤
图5-20实验成绩统计
4、学生功能测试
图5-21学生选课
图5-22已选课程
图5-23教师名单
结论
通过本次数据库课程设计,对数据库的使用有了更深的了解,对于数据库的设计过程和方法有了更全面的认识。
当然,本次课程设计使用的是C#语言,对这门语言也有了初步的认识。
在完成系统的过程中,让我认识到了自己的不足,自己在项目综合实训方面还比较欠缺。
本次课程设计完成了任务书的全部内容,系统的详细设计还有欠缺,系统界面还有待完善。
对数据库安全的方面了解甚少,以至于不知道怎样去维护,在数据库的设计方面花了很多时间,但是,有些问题还没有考虑进去。
致谢
在本次课程设计过程中,首先感谢谭老师利用自己的个人时间给我们上课培训,让我从不知道C#到基本了解这门语言,也感谢老师在我遇到困难时,帮我度过难关,在我询问一些问题时也不厌其烦给我解释。
其次,我要感谢曹玉和徐文两位同学对我的帮助,在课程设计一开始我对C#这门语言并不是很了解,要是没有他们俩的帮助,我想我不可能这么快的完成课程设计。
最后我要感谢ACM团队为我提供了编程场所。
在大家共同的帮助下,我成功完成了这次软件工程和数据库的课程设计,谢谢帮助过我的人,以及那些间接帮助过我的人。
参考文献
[1]王珊、萨师煊.《数据库系统概论(第四版)》.高等教育出版社2011.12
[2]钱雪忠.《数据库原理及应用》北京邮电大学出版社(第二版)2007,8
[3]BainT.《SQLserver2008数据仓库与AnalysisServices》.中国电力出版社2009
[4]王珊.《数据库技术与联机分析处理》北京科学出版社2008
[5]闪四清《数据库系统原理与应用教程》.清华大学出版社
[6]周龙骧.《数据库管理系统实现技术》.中国地质大学出版社
[7]张海藩.《软件工程概论》.清华大学出版社
[8]成先海.《数据库基础与应用-SQLSERVER2000》.机械工业出版社出版
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 选课 系统 数据库 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)