数据库课程设计选课系统.docx
- 文档编号:27294533
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:13
- 大小:176.07KB
数据库课程设计选课系统.docx
《数据库课程设计选课系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计选课系统.docx(13页珍藏版)》请在冰豆网上搜索。
数据库课程设计选课系统
摘要
本文通过分析浏览器/服务器结构的特点并结合选课的实际情况,提出了基于浏览器/服务器结构网上选课系统的基本设计思想,简要介绍了系统各功能模块及数据库的设计,着重讨论了用ASP.NET技术和SQLServer2000开发网上选课系统时的数据库访问技术和动态网页制作技术,并给出了部分实现代码。
通过该系统,使学生可以方便地在校园网上进行网上选课。
该B/S结构的系统在WindowsXP系统和VS2005.NET平台下开发完成,使用C#作为ASP.NET的开发语言,SQLServer2000作为数据库。
系统有较高的安全性和较好的性能。
其中连接数据库的字符串可以随时在web.config里修改,并经过编码加密,增加了灵活性,保护了数据库的安全。
代码尽量使用存储过程和尽量减少数据库连接的打开时间等手段来提高性能。
本文中主要介绍了学生选课系统中的学生选课界面即对数据库的查询添加功能,并且附上了部分代码。
关键词:
网上选课,浏览器/服务器结构,ASP.NET,数据库管理系统
摘要1
1.需求分析3
2.系统功能与设计3
2.1系统分析3
2.2用户所具有的功能3
2.3系统总体设计4
2.4数据库的设计5
2.5各个表的实现5
3系统界面说明6
3.1系统登录界面6
3.2.查看必修课程列表页面8
3.3.查看选修课程列表页面9
3.4.查看已选课程页面11
总结13
参考文献14
1需求分析
随着在校大学生人数的不断增加,教务系统的数据量也不断的上涨。
以往的选课方法是随堂报名。
这种方法虽然直接,但是造成选课的盲目性和教务处处理数据的繁重性。
为了减轻教务处工作,以及每个学生更好的选择自己所喜欢的科目。
针对学生选课这一环节,本系统从学生网上自主选课以及教师的课程发布两个大方面进行了设计,基本实现了学生的在线信息查询、选课功能以及教师对课程信息发布的管理等功能。
2系统详细设计
2.1系统分析
在本系统中,有三类用户:
系统管理员,教师和学生。
三种不同的用户所具有的操作权限以及操作内容均不一样。
我负责的是学生这一部分
本选课系统给予教师很大的自主权,系统管理员只负责向系统中添加学生和教师的个人信息以及教学楼教室信息。
系统管理员不参与开设课程、选择课程等,一切均由教师、学生等录网站自行完成。
系统管理员设置一个选课时间段,在到达时间段以前,教师可以开设课程;到达时间段以后,学生可以登陆网站选择课程。
对于学生用户,每个学生除了必须选择必修课程外,至少还要选择两门选修课程,学生可以对自己选课信息锁定,以免不小心被修改。
当时候超过选课时段后,系统自动锁定学生的选课课程。
系统可以根据学生的选课信息,生成一份学生自己的课表。
课程结束后学生可登录网站查询成绩与学分。
根据上面的要求,从操作功能上可以分为两个类:
一个是通用操作,主要实现用户的登录注销和修改密码等;另一种是为不同用户定制不同操作
2.2用户所具有的功能
我主要负责学生用户界面的设计:
显示和修改个人信息:
学生登录系统后,可以查看和修改学生的个人信息,如姓名,性别,电话等。
查看必修课程:
学生登录后,可以查看所有的必修课程。
查看该课程的信息,上课时间地点,开课教师信息等。
选择选修课程:
学生登录系统后,在所有选修课程中可以选择至少两门选修课程。
同时可以查看相关信息。
锁定选课信息:
学生登录系统,确定了所选课程后,可以锁定自己的选课信息,以防被别人或则自己不小心修改。
查看最终选课信息:
学生登录系统后,可列出已选择的课程,若选课信息未被锁定,则可以退选,若所选课程少于两门,系统会提示选择的课程少于两门。
查看学分和成绩:
课程结束后,学生登录系统可查看自己学习课程的成绩和已获的学分。
2.3系统总体设计
根据系统的系统功能分析,可以划分以下几个模块,如图1所示
图1系统总体设计
2.4数据库的设计
本系统的数据库实体主要有“学生”、“教师”、“教学楼”、“教室”、“课程”等。
其中“教师”与“课程”存在“开设”联系,并且一个教师可以开设N门课程,即“教师”与“课程”之间是一对多的关系。
同样“教学楼”与“教室”也存在一对多的关系。
一个学生可以学习N门课程,一门课程可以有M个学生学习,即“学生”与“课程”之间是多对多的关系。
同样“课程”与“教室”之间也是多对多的关系。
整个数据库可以用一个E-R图表示,如图2所示:
图2数据库的设计图
2.5各个表的实现
(1)Student表。
Student表用来存储学生的个人信息,使用学号作为主键,如图3:
图3
(2)Course表。
Course表用来存储课程信息,Course表以课程编号为主键,设置课程编号自动增加1(通过建表的时候对属性列设置“标识”,并设置“标识递增量”为1)。
表中开课教师Id为外键,所有“TId”的值必须是Teacher表中的“TId”值。
设置外键关系可以通过在建立表的窗口中单击右键,在右键菜单中选择“关系”,在弹出的对话框中设置外键关系。
如图4:
图4
(3)SC表。
SC表用于存储学生的选课信息,在SC表中学号和课程编号是主键,同时也是外键。
如图5:
图5
3系统界面说明
下面是在线选课系统的预览,此处简单介绍本系统的部分功能。
3.1系统登录界面
图6系统登录界面
在用户名和密码处输入用户名和密码,在“用户类型”下拉列表框中选择“学生”,单击“登录”按钮,登录选课系统。
主要代码如下:
privatevoidbtnLogin_Click(objectsender,System.EventArgse)
{inttype=Int32.Parse(ddlType.SelectedItem.Value);
stringuser=txtUser.Text.Trim();
stringinputkey=txtKey.Text.Trim();
stringkey="";
stringsql="";
DataSetds;
switch(type)
{
case1:
//学生
//验证学生身份代码
break;
case2:
//教师
break;
case3:
//系统管理员
break;
default;
break;
}
}
3.2查看必修课程列表页面
图7查看比修课程
登录成功后,进入学生主页,点击“必修课程”链接,得到所有必修课程的列表,在列表中可以看到所有必修课程及课程的简单信息,如授课教师姓名、课程所占学分等。
在列表中可以点课程名称,如“计算机应用基础”链接,查看课程详细信息;点教师姓名,如“李萍”链接,查看教师的详细信息;点击“查看上课时间地点”链接,查看对应课程的上课时间和地点。
在页面加载的时候从数据库读取所有必修课信息,代码如下:
stringsql="selectCourse.*,TNamefromCourse,TeacherwhereCTypelike'必修'andCourse.TIdlikeTeacher.TId";//查询处所有必修课程信息
DataSetds=Db.ExecuteSelectSql(sql);
if(ds!
=null&&ds.Tables.Count>0)
{
dgCourse.DataSource=ds.Tables[0];
dgCourse.DataBind();//将查询结果绑定到DataGrid中
}
3.3.查看选修课程列表页面
图8查看选修课程
单击“选修课程”链接,查看所有选修课程列表,在列表中给出了比必修课程更多的信息,比如多了对应选修课程的前导课程、最大人数、当前已选人数等,对每个选修课程均有一个“选修该课程”的按钮,单击此按钮方可选择对应课程。
主要代码如下:
stringsql="selectx.*,TName,(selectCNamefromCourseasywherey.CId=x.CPreCId)asCPreCNamefromCourseasx,Teacherwherex.CTypelike'选修'andx.TIdlikeTeacher.TId";
//查询该学生已选修的课程
DataSetds=Db.ExecuteSelectSql(sql);
if(ds!
=null&&ds.Tables.Count>0)
{
dgCourse.DataSource=ds.Tables[0];
dgCourse.DataBind();
for(inti=0;i {sql="selectcount(*)fromSCwhereCId="+ds.Tables[0].Rows[i]["CId"].ToString(); DataSetds1=Db.ExecuteSelectSql(sql); if(ds1! =null&&ds1.Tables.Count>0&&ds1.Tables[0].Rows.Count>0) dgCourse.Items[i].Cells[6].Text=ds1.Tables[0].Rows[0][0].ToString(); } } boollocked=bool.Parse(Session["Locked"].ToString()); if(! locked) { lbLock.Text="您尚未锁定选课信息! "; } else { lbLock.Text="选课信息已被锁定! "; dgCourse.Columns[9].Visible=false; } 3.4.查看选课时间页面 图9查看选课时间 查看选课时间代码如下: DateTimedtStart,dtEnd; try { dtStart=DateTime.Parse(txttimeStart.Text); dtEnd=DateTime.Parse(txtTimeEnd.Text); } catch { Response.Write(MyUtility.Alert("输入错误")); return; } StreamWritersw=newStreamWriter("http: //localhost/sc/login.aspx",false); sw.WriteLine(dtStart.ToString());//写入开始时间 sw.WriteLine(dtEnd.ToString());//写入结束时间 sw.Close(); lbTime.Text="选课时间为: "+dtStart.ToString()+"到"+dtEnd.ToString(); 总结 经过一段时间的学习与实践,我选择的课题学生选课系统基本完成。 其功能基本符合网络上的用户要求,能够在线选课,在线添加课程,在线查询课程等。 虽然由于自己知识上的不足,有些地方有少许错误和容错性能比较低,但是还是可以基本完成选课系统应有的功能。 通过这次设计过程我得到了很多的宝贵经验,让我遇到困难时能够及时的发现并且想办法去解决,而不是向以往一样只是在那发呆,不知所措。 通过这次设计我学会的不仅是知识,还有遇见困难时要冷静沉着,想想原因和为什么不知道怎么解决。 相信下次做这方面的设计时,我会很轻松地去面对。 参考文献 [1]吴晨,《ASP.NET+SQLServer-数据库开发与实例》,清华大学出版社,出版2006年7月 [2](美)内格尔,《C#高级编程(第4版)》,清华大学出版社,出版2006年10月 [3](美)solid,《SQLServer2005从入门与精通(应用技术基础)》,清华大学出版社,出版2006年09月 [4](美)保罗《ASP.NET2.0经典教程C#篇》人民邮电出版社,出版2007年5月
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 选课 系统