选课管理系统课程设计.doc_第1页
选课管理系统课程设计.doc_第2页
选课管理系统课程设计.doc_第3页
选课管理系统课程设计.doc_第4页
选课管理系统课程设计.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要选课系统是针对在校学生和教师使用,从学生的角度来说,由于学校教学制度的改革,现在大部分高等院校开始实行的是学生的自主选课模式,传统的教学模式(学生按照学校安排好的课程上课)已经不能适应新型的教学手段,如果仍然通过纸上的方式选课,浪费的大量的人力、物力资源。另一方面浪费时间以及在人为的统计过程中不可避免出现的差错等情况。通过网上选课,学生只要在计算机前输入自己的个人选课信息即可完成原来几倍的作业量。从高校管理的角度来说,同样是节省了大量的工作量,由于教师提出代课申请完成课程发布的工作较学生选课而言更加的复杂,因此通过进行课程发布能大幅度的减少教师的工作量,减少错误的发生几率。作为教师,也只要通过自己的电脑来操作即可,不用再奔波于教务处和办公室之间。选课管理系统,它能快速的实现学生选课的管理过程,而且管理的安全机制也更完善,这样就可以为学生的管理花费更少的人力和物力资源。关键词:vb;选课系统;sql server 2000目录摘要1第一章绪论3第二章 系统需求分析4第三章 数据库设计53.1 系统总体设计53.2概念设计63.3 逻辑设计73.4物理设计93.5 表的创建123.6 各表中相关数据153.7 创建视图173.8 创建触发器17第四章 代码实现18第五章 结论与展望26附录:27参考文献27第一章绪论 当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。 学校作为一种信息资源的集散地,学生和课程繁多,包含很多的信息数据的管理,现今,有很多的学校都是初步开始使用。如果对学生的选课权限,以及选课代号等用人工计算,手抄进行,那么数据信息处理工作量大,容易出错。总的来说,缺乏系统,规范的信息管理手段。基于这些问题,应该建立一个学生选课系统,使选课管理工作规范化,系统化,程序化,避免选课管理的随意性,提高信息处理的速度和准确性,能够及时,准确,有效的查询和修改选课情况。在教务信息标准化,规范化的基础上,对信息进行合理的布局,在提供优质,高效的业务管理和事务处理的同时,使全校师生可以在任一平台上对本专业教学计划进行查询,了解课程设置情况,网上选课等,教师可以查询了解学生的情况等。为教务工作有关部门提供优质高效的业务管理和事务处理,也为广大师生提供便利。在此次课程设计的开始一段时间中遇到很多问题,经过老师的悉心教导,都得以一一解决,在此特别感谢老师的帮助。第二章 系统需求分析 随着学校规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。而对庞大的信息量,需要有学生管理系统来提高学生管理工作的效率。通过这样的系统,可以做到信息的规范管理、科学统计和快速的查询,从而减少管理方面的工作量。在这次学生管理系统的课程设计中,我们要完成学生基本信息的添加,查询,删除,学生所学课程和成绩的添加,删除和查询的设计,以及学生成绩信息的统计的设计。在最后的测试中可以完成老师所要求的功能。有学生基本信息添加的界面、有学生基本信息查询和删除的界面。有课程信息添加、删除、查询的界面。有学生选课界面,查询可选择的课程信息。主题鲜明,使用方便。即具有良好的人机界面。实验要完成实验方案论证,登录表,学生信息表,课程信息表,教师信息表,学生成绩表的设计、基本界面的设计、编写代码、调试、运行以及实验指导书文档的建立等一整套工作任务。控制软件,使用vb语言。管理员具有最大的权限,当登录后,可以对学生信息,课程信息,院系信息,教师信息做任何操作,同时也可以对学生的选课及教师对学生所选课程输入的成绩进行任何操作。当学生登录时,只能进入选课界面。当教师登录时,只能对选课进行成绩的输入和统计。第三章 数据库设计3.1 系统总体设计开始学生信息查询选课添加删除查询保存结 果取消操作退出 图3-1 系统表3.2概念设计教师信息表课程信息表负责nn姓名院系职称教师号课程号性别课程名课时学分图3-2 “教师信息表”与“课程信息表”实体集e-r模型学生信息表课程信息表选择n姓名性别年龄学号课程号院系班级家庭住址课程名课时学分n图3-3“学生信息表”与“课程信息表”实体集e-r模型3.3 逻辑设计本系统使用sql server2000作为应用程序的数据库。考虑到系统的实际需求,系统至少需要六张数据库表,具体如下:1 学生信息表:主要表现学生的基本信息,包括学号,姓名,性别,年龄,院系,班级,家庭住址。2 课程信息表:课程号,课程名,学分,课时。3 学生课程信息表:学号,课程号,上课时间。4 教师信息表:教师号,姓名,性别,职位,院系。5 教师课程信息表:教师号,课程号,上课时间,限报人数。6 登录表(admin):username、password。数字字典名字:课程号描述: 课程的惟一标识.定义:1数字8.位置: 课程信息 选课信息名字:学号描述: 学生的惟一标识.定义:1数字8.位置: 学生信息 选课信息名字:教师号描述:教师的惟一标识.定义:数字.位置: 教师信息 名字:username描述:管理员登录时的惟一的标识.定义:英文字母位置: 登录信息名字:学生信息描述:描述学生的基本信息.定义: 学号+姓名+性别+年龄+院系+班级+家庭住址。位置:事务名字:password描述:用户和管理员进入管理系统的条件.定义:数字.位置: 登录信息名字:教师信息描述:描述教师基本信息定义:教师号+姓名+性别+职位+院系.位置:事务名字:登录信息描述:描述管理员身份和密码.定义:username+password。位置:事务名字:成绩信息描述:描述学生所选课程信息.定义: 学号+课程号+上课时间位置::事务名字:课程信息描述:描述课程信息.定义: 课程号+课程名+学分+课时位置:事务 名字:可供选课信息描述:描述可供学生选择的课程信息.定义: 教师号+课程号+上课时间+限报人数位置:事务3.4物理设计图3-4 学生信息表 图3-5学生课程信息表图3-6 教师信息表图3-7 教师课程信息表图3-8 登录表图3-9课程信息表图3-10 学生课程信息关系图图3-11 教师课程信息关系图3.5 表的创建create table 课程信息表 (课程号 char (30) collate chinese_prc_ci_as not null ,课程名 char (30) collate chinese_prc_ci_as null ,课时 int null ,学分 int null ,constraint pk_课程信息表 primary key clustered (课程号) on primary ) on primarygocreate table 学生信息表 (学号 char (30) collate chinese_prc_ci_as not null ,姓名 char (10) collate chinese_prc_ci_as null ,性别 char (10) collate chinese_prc_ci_as null ,年龄 char (10) collate chinese_prc_ci_as null ,院系 char (30) collate chinese_prc_ci_as null ,班级 char (50) collate chinese_prc_ci_as null ,家庭地址 char (10) collate chinese_prc_ci_as null ,constraint pk_学生信息表 primary key clustered (学号) on primary ,constraint ck_学生信息表 check (性别 = 男 or 性别 = 女) on primarygocreate table 学生课程信息表 (学号 char (30) collate chinese_prc_ci_as not null ,课程号 char (30) collate chinese_prc_ci_as not null ,上课时间 char (50) collate chinese_prc_ci_as null ,成绩 int null ,constraint pk_学生课程信息表 primary key clustered (学号,课程号) on primary ,constraint fk_学生课程信息表 学生信息表 foreign key (课程号) references 课程信息表 (课程号),constraint fk_学生课程信息表_学生信息表 foreign key (学号) references 学生信息表 (学号) on primarygocreate table 教师信息表 (教师编号 char (30) collate chinese_prc_ci_as not null ,姓名 char (10) collate chinese_prc_ci_as null ,性别 char (10) collate chinese_prc_ci_as null ,职称 char (10) collate chinese_prc_ci_as null ,院系 char (30) collate chinese_prc_ci_as null ,constraint pk_教师信息表 primary key clustered (教师编号) on primary ) on primarygocreate table 教师课程信息表 (教师编号 char (30) collate chinese_prc_ci_as not null ,课程号 char (30) collate chinese_prc_ci_as not null ,授课时间 char (50) collate chinese_prc_ci_as null ,限报人数 int null ,constraint pk_教师课程信息表 primary key clustered (教师编号,课程号) on primary ,constraint fk_教师课程信息表_课程信息表 foreign key (课程号) references 课程信息表 (课程号),constraint fk_教师课程信息表_教师信息表 foreign key (教师编号) references 课程信息表 (教师编号) on primarygocreate table 登录表 (username char (10) collate chinese_prc_ci_as not null ,password char (10) collate chinese_prc_ci_as null ,constraint pk_登录表 primary key clustered (username) on primary ) on primarygo3.6 各表中相关数据图3-12数据库中的学生信息表图3-13数据库中的学生课程信息表图3-14数据库中的教师信息表图3-15数据库中的教师课程信息表图3-16数据库中的课程信息表图3-17登录表3.7 创建视图视图学生选课系统视图:select 教师信息表.教师名, 教师课程信息表.课程号, 课程信息表.课程名, 教师课程信息表.限报人数,教师课程信息表.上课时间from教师信息表join教师课程信息表on教师信息表.教师编号 =教师课程信息表.教师编号 join 课程信息表on教师课程信息表.课程号 = 课程信息表.课程号3.8 创建触发器create trigger t1 on 学生课程信息表for insertasupdate 教师课程信息表 set 限报人数=限报人数-1 where 课程号 in( select 课程号 from inserted)create trigger t2 on 学生课程信息表for deleteasupdate 教师课程信息表 set 限报人数=限报人数+1 where 课程号 in (select 课程号 from deleted)第四章 代码实现学生选课系统的功能模块图:登录界面:图4-1登录界面代码:dim cn as new adodb.connectiondim rs as new adodb.recordsetprivate sub command1_click()mbfindfailed = trueme.hideend subprivate sub command2_click()strsql = select * from 登录表 where 用户名= & text1.text & & and 密码= & text2.text & rs.open strsql, cn, 1, 3if rs.eof thenmsgbox 用户名或密码错误, 16, 警告elseform4.showunload meend ifend subprivate sub form_load()cn.connectionstring = provider=sqloledb.1;integrated security=sspi;persist security info=false;initial catalog=学生选课系统;data source=www-cb5db40ec76cn.openend sub选择操作界面:图4-2 选择操作界面代码:private sub command1_click()form2.showunload meend subprivate sub command2_click()form3.showunload meend sub查询信息界面:图4-3查询信息界面代码:dim cn as new adodb.connectiondim rs as new adodb.recordsetprivate sub command1_click()str1 = select * from 学生信息表 where 学号= & text1.text & rs.open str1, cn, 1, 3if rs.eof thenrs.addnewrs(学号) = text1.textrs(姓名) = text2.textrs(性别) = text3.textrs(年龄) = text4.textrs(家庭地址) = text5.textrs(院系) = text6.textrs(班级) = text7.textrs.updatemsgbox 注册成功, 64, 信息提示elsemsgbox 该用户已存在,请换名重新注册, 48, 警告end ifend subprivate sub command2_click()str1 = select * from 学生信息表 where 学号= & text1.text & if rs.state = 1 thenrs.closeend ifrs.open str1, cn, 1, 3if rs.eof then msgbox 该用户不存在 adodc1.commandtype = adcmdtextadodc1.recordsource = str1 adodc1.refresh else adodc1.commandtype = adcmdtext adodc1.recordsource = str1 adodc1.refresh end ifend subprivate sub command3_click()if adodc1.recordset.eof = false then c = msgbox(您确认要删除该记录吗?, 32 + 4, 特别提示) x = adodc1.recordset.fields(0) if c = vbyes then str1 = select * from 学生信息表 where 学号=x & cn.execute (str1) if rs.state = 1 then rs.close end if rs.open str1, cn, 1, 3 rs.delete rs.update adodc1.recordset.delete adodc1.commandtype = adcmdtext adodc1.recordsource = select * from 学生信息表 adodc1.refresh msgbox 数据成功删除, 64, 信息提示 adodc1.refresh text1.text = text2.text = if c = vbok then adodc1.recordset.delete adodc1.refresh unload me me.show adodc1.commandtype = adcmdtext adodc1.recordsource = select * from s adodc1.refresh end if else msgbox 当前数据库中已经没有可删除的记录, 64, 警告 end if end subprivate sub command4_click()form4.showunload meend subprivate sub command5_click()endend subprivate sub datagrid1_click()if adodc1.recordset.recordcount = 0 thenmsgbox 当前表是空表, 16, 信息提示elsetext1.text = adodc1.recordset.fields(0)text2.text = adodc1.recordset.fields(1)text3.text = adodc1.recordset.fields(2)text4.text = adodc1.recordset.fields(3)text5.text = adodc1.recordset.fields(4)text6.text = adodc1.recordset.fields(5)text7.text = adodc1.recordset.fields(6)end ifend subprivate sub form_load()cn.connectionstring = provider=sqloledb.1;integrated security=sspi;persist security info=false;initial catalog=学生选课系统;data source=www-cb5db40ec76cn.openend sub选课界面:图4-5选课界面代码:dim cn as new adodb.connectiondim rs as new adodb.recordsetprivate sub command1_click() c = msgbox(您确认要删除该记录吗?, 32 + 4, 特别提示) if c = vbyes then str1 = delete from 学生课程信息表 where 学号= & text1.text & cn.execute (str1) if rs.state = 1 then rs.close end if rs.open str1, cn, 1, 3 adodc2.commandtype = adcmdtext adodc2.recordsource = select *from 学生课程信息表 adodc2.refresh msgbox 数据成功删除, 64, 信息提示 adodc2.refresh text1.text = text5.text = text8.text = end ifend subprivate sub command2_click()str1 = select * from 学生课程信息表 where 学号= & text1.text & & and 课程号= & text5.text & if rs.state = 1 thenrs.closeend if rs.open str1, cn, 1, 3 if rs.eof then rs.addnew rs(学号) = text1.text rs(课程号) = text5.text rs(上课时间) = text8.text rs.update msgbox 选课成功, 64, 信息提示 adodc2.commandtype = adcmdtext adodc2.recordsource = select * from 学生课程信息表 adodc2.refresh adodc1.refresh else msgbox 您已选择课程!, 16, 警告 end ifend subprivate sub command3_click()form4.showunload meend subprivate sub datagrid1_click()if adodc2.recordset.recordcount = 0 thenmsgbox 当前表是空表, 16, 信息提示elsetext1.text = adodc2.recordset.fields(0)text5.text = adodc2.recordset.fields(1)text8.text = adodc2.recordset.fields(2)end ifend subprivate sub datagrid2_click()if adodc1.recordset.recordcount = 0 thenmsgbox 当前表是空表, 16, 信息提示elsetext6.text = adodc1.recordset.fields(0)text5.text = adodc1.recordset.fields(1)text3.text = adodc1.recordset.fiel

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论