ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:1.90MB ,
资源ID:7513596      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7513596.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(vb排课系统说明书.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

vb排课系统说明书.docx

1、vb排课系统说明书中北大学课 程 设 计 说 明 书软件工程大型实验学生姓名:袁亚琴学 号:0806054104学 院:电子与计算机科学技术学院专 业:软件工程题 目:大学排课系统排课算法子系统成绩指导教师: 宋礼鹏 职称: 讲师 2010 年 12 月 31 日1.设计目的 制定一个学校的排课计划是一项非常耗时且相当辛苦的工作。在一所高校一个课程表的制定是一个难题,因为在有关课程表的问题上有很多的限制条件得考虑,还有大量的数据空间被挖掘。课程编排系统是一个学校不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以自动排课系统应该能够为用户提供充足的信息和快捷的查询手段。按照软件

2、工程基本原理,运用UML中所学的知识,设计开发一个大学排课系统。通过对排课系统的分析、设计与实现,将原理与应用相结合,让自己学会如何把书本上学到的知识用于解决实际问题,培养自己的动手能力;另一方面,使自己能深入理解和灵活掌握教学内容。2.设计内容 本人在本次课程设计中完成的内容有:(1)手动排课与自动排课功能的实现。(2)班级、教师及教室课表查询功能的实现。3.需求描述图1 大学排课系统用例图表1 自动排课用例描述用例名称:自动排课用例概述:根据课程时间、教师的基本信息、班级课程设置的信息、多媒体使用情况、座位数与上课班级人数协调情况合理的安排上课教室、时间及代课教师,使得资源充分利用而且不冲

3、突主要参与者:校管理员次要参与者:院管理员前置条件:教师、班级和教室信息全部添加完后置条件:生成课表基本事件流:(1)收集教师、班级、教室的信息 (2)根据多媒体的需求、教室座位数等优先为上课班级总人数多的班级安排上课教室和时间 (3)根据教师的基本信息和代课意向,优先考虑安排教师的代课要求 (3)为已安排教室和时间的课程的代课教师安排其他教学任务的教室和时间。(4)为已安排教室、时间及代课教师的课程的班级安排其他课程的教室、时间及代课教师(5)合理调整教师每周授课的学时数(6)重复以上操作,直到所有的课程安排完 表2 课表查询用例描述用例名称:课表查询用例概述:教师、学生、院管理员、校管理员

4、根据自己的需求对课表进行不同类型的查询主要参与者:教师、学生、院管理员、校管理员基本事件流:(1)用户启动课表查询用例 (2)学生选择学生课表查询用例,查询学生课表 (3)教师选择教师课表查询用例,查询教师课表 (4)院管理员和校管理员根据需求选择不同课表查询用例,查询课表4.系统详细分析设计 4.1顺序图图2 手动排课顺序图图3 自动排课顺序图图4 班级课表查询顺序图图5 教师课表查询顺序图图6 教室课表查询顺序图4.2 活动图图7 大学排课系统活动图4.3类图图8 大学排课系统类图4.4部署图图9 大学排课系统部署图4.5构件图图10 大学排课系统构件图4.6 数据库表中文含义字段名称数据

5、类型长度是否为空备注用户名userNameVarchar20否用户密码passwordVarchar20否用户权限purviewVarchar20否表3 用户登录信息表(Login) 表4 班级信息表(class)中文含义字段名称数据类型长度是否为空备注班级编号classIDVarchar20否主键班级名称classnameVarchar20否班级人数classnumberInt10否系编号sysIDVarchar20否外键 表5 教师信息表(teacher)中文含义字段名称数据类型长度是否为空备注教师编号teacherIDVarchar20否主键教师姓名teachernameVarchar2

6、0否教师职称degreeVarchar20否系编号sysIDVarchar20否外键 表6 教室信息表(classroom)中文含义字段名称数据类型长度是否为空备注教室编号classroomIDVarchar20否主键教室容量classroomnumberInt50否教室类型classroomtypeVarchar20否 表7 院系信息表(sys)中文含义字段名称数据类型长度是否为空备注系编号sysIDVarchar20否主键系名称sysnameVarchar20否所属学院collegeIDVarchar20否外键表8 学院信息表(college)中文含义字段名称数据类型长度是否为空备注学院编

7、号collegeIDVarchar20否主键学院名称collegenameVarchar20否表9 课程信息表(course)中文含义字段名称数据类型长度是否为空备注课程编号courseIDVarchar20否主键课程名称coursenameVarchar20否学时数coursenumberVarchar20否表10 教学计划表(arrange)中文含义字段名称数据类型长度是否为空备注课程名coursenameVarchar20否教师编号teacherIDVarchar20否教师姓名teachernameVarchar20否教室类型classroomtypevarchar20否班级编号clas

8、sIDVarchar100否表11 时间表(classtimeb)中文含义字段名称数据类型长度是否为空备注上课时间classtimevarchar20否主键表12 手动排课表(design)中文含义字段名称数据类型长度是否为空备注课程名CoursenameVarchar20否教师编号TeacherIDVarchar20否教师姓名TeachernameVarchar20否上课时间ClasstimeVarchar20否教室编号ClassroomIDVarchar20否班级编号ClassIDVarchar100否 表13 自动排课表(designs)中文含义字段名称数据类型长度是否为空备注课程名Co

9、ursenameVarchar20否主键教师编号TeacherIDVarchar20否主键教师姓名TeachernameVarchar20否上课时间ClasstimeVarchar20否主键教室编号ClassroomIDVarchar20否主键班级编号ClassIDVarchar100否主键5.系统实现5.1开发工具及系统运行环境 开发工具:Mircosoft VisualBasic 6.0, Mircosoft Access2003 运行环境:windows XP5.2 排课和课表查询子系统实现(1)界面效果 图11 手动排课成功界面校管理员进入手动排课界面,按照教学计划表,录入排课信息,若

10、班级、教师、教室和时间之间都不发生冲突,提示“录入信息成功”。图12 提示班级和时间冲突界面 图13 提示教室和时间冲突界面图14 提示教师和时间冲突界面图15 自动排课界面校管理员进入自动排课界面,点击“开始”按钮,即可完成自动排课,提示“排课完成!”信息。图16 自动排课提示清空信息的界面校管理员进入自动排课界面,点击“清空”按钮,可将数据库里的排课信息清空,出现提示“清空完成!”的消息框。图17 手动调整界面校管理员进入手动调整界面,根据老师提出的代课意向,可以手动修改自动排课的信息,点击“确认”按钮后,出现提示“手动调整信息成功”的消息框。图18 班级课表查询界面校管理员、院管理员和学

11、生登录后进入班级课表查询界面,通过输入确定的班级编号,来搜索某一具体班级的课程表。若你忘记班级的编号,可以通过界面上的班级信息表查询班级编号。当确定好你所要查询的班级后,点击“课表显示”按钮,就可以查询该班的课程表了。图19 提示班级课表不存在的界面校管理员、院管理员和学生登录后进入班级课表查询界面,通过输入确定的班级编号,来搜索某一具体班级的课程表。若班级编号输入错误,就会提示“该班级课表不存在!”图20 班级课程表界面(5)教师课表查询图21 教师课表查询界面校管理员、院管理员和教师登录后进入教师课表查询界面,通过输入确定的教师编号,来搜索某一具体教师的课程表。若你忘记教师的编号,可以通过

12、界面上的教师信息表查询教师编号。当确定好你所要查询的教师后,点击“课表显示”按钮,就可以查询该教师的课程表了。图22 教师课表不存在的界面校管理员、院管理员和教师登录后进入教师课表查询界面,通过输入确定的教师编号,来搜索某一具体教师的课程表。若教师编号输入错误,就会提示“该教师课表不存在!”图23 教师课程表界面图24 教室课表查询界面校管理员、院管理员登录后进入教室课表查询界面,通过输入确定的教室编号,来搜索某一具体教室的课程表。若你忘记教室的编号,可以通过界面上的教室信息表查询教室编号。当确定好你所要查询的教室后,点击“课表显示”按钮,就可以查询该教室的课程表了。图25 教室课表不存在的界

13、面校管理员、院管理员登录后进入教室课表查询界面,通过输入确定的教室编号,来搜索某一具体教室的课程表。若教室编号输入错误,就会提示“该教室课表不存在!”图26 教室课程表界面(2)核心算法Private Sub Command2_Click()Dim sql, sqll, sqlll, sqlr, cook As StringDim rt As New ADODB.RecordsetDim rm As New ADODB.RecordsetDim rn As New ADODB.RecordsetDim rp As New ADODB.RecordsetDim rq As New ADODB.R

14、ecordsetDim rd As New ADODB.RecordsetDim i, j As Integeri = 1Do Until i = 5 优先级别高的优先安排 cook = i Set rs = New ADODB.Recordset sql = select * from arrange where pre= + cook + Set rs = conn.Execute(sql) ProgressBar1.Visible = True ProgressBar1.Max = 100 Do Until ProgressBar1.Value = 100 Do Until rs.EOF

15、 = True j = rs(weeknumber) Do Until j = 0 sqll = select * from classtimeb Set rt = conn.Execute(sqll) Do Until rt.EOF = True Set rp = New ADODB.Recordset coom = select * from designs where classID= + rs(classID) + and classtime= + rt(classtime) + Set rp = conn.Execute(coom) cool = select * from desi

16、gns where classtime= + rt(classtime) + and teacherID= + rs(teacherID) + Set rq = conn.Execute(cool) If rp.EOF = True And rq.EOF = True Then 班级、教师是否空闲 sqlll = select * from classroom Set rm = conn.Execute(sqlll) Do Until rm.EOF = True coon = select * from designs where classtime= + rt(classtime) + an

17、d classroomID= + rm(classroomID) + Set rn = conn.Execute(coon) If rn.EOF = True Then 教室是否空闲 Sql = insert into designs (classtime,coursename,teacherID,teachername,classroomID,classID) values ( + rt(classtime) + , + rs(coursename) + , + rs(teacherID) + , + rs(teachername) + , + rm(classroomID) + , + r

18、s(classID) + ) Set rq = conn.Execute(sql) Exit Do Else rm.MoveNext End If Loop Exit Do Else rt.MoveNext End If Loop j = j - 1 Loop rs.MoveNext Loop Exit DoProgressBar1.Value = ProgressBar1.Value + 1Loopi = i + 1LoopProgressBar1.Visible = FalseMsgBox 排课完成!End SubPrivate Sub Command3_Click()Dim sql As

19、 Stringsql = delete * from designsSet rs = conn.Execute(sql)MsgBox 清空完成!End SubPrivate Sub Command4_Click()Unload Meconn.CloseEnd SubPrivate Sub Form_Load()Dim str As Stringstr = Provider=Microsoft.Jet.OLEDB.4.0;Data Source= + App.Path + shujuku.mdb;Persist Security Info=False定义据库连接conn.Open strEnd

20、Sub6系统测试6.1测试方法 白盒测试、黑盒测试6.2测试环境 Windows XP6.3测试用例及测试结果(1)手动排课白盒测试图27 手动排课流程图条件覆盖上课时间=周一第一大节,课程名=高等数学,教师编号=0701,教师姓名=李四,上课班级=09060541,09060542,上课教室=11109,则执行路径:abc上课时间=周一第三大节,课程名=操作系统,教师编号=0701,教师姓名=李四,上课班级=08060341,08060342,上课教室=11306,则执行路径:abd黑盒测试表14 手动排课测试用例表测试编号001优先级测试项描述手动排课预置条件校管理员进入手动排课界面用例编

21、号测试输入预期结果001上课时间=周一第一大节课程名=高等数学教师编号=0701教师姓名=李四上课班级=09060541,09060542上课教室=11109录入排课表中,更新数据库002上课时间=周一第三大节课程名=高等数学教师编号=0701教师姓名=李四上课班级=09060541,09060542上课教室=11109提示该时间段该教室已被占用,请重新选择教室或时间!003上课时间=周一第三大节课程名=操作系统教师编号=0701教师姓名=李四上课班级=08060341,08060342上课教室=11306提示该时间段该班级已安排课程,请重新选择时间!004上课时间=周一第三大节课程名=操作系

22、统教师编号=0601教师姓名=李顺增上课班级=08060341,08060342上课教室=11306提示该时间段该教师已安排课程,请重新选择时间!(2)班级课表查询白盒测试 图28 班级课表查询流程图 条件覆盖班级编号=08060541,则执行路径:abc班级编号=123,则执行路径:abd黑盒测试表15 班级课表查询测试用例表测试编号002优先级测试项描述班级课表查询预置条件校管理员或院管理员或学生进入班级课表查询界面用例编号测试输入预期结果001班级编号=08060541显示该班级课表002班级编号=123提示该班级课表不存在!003提示请输入要查询课表的班级编号!(2)教师课表查询白盒测

23、试图29 教师课表查询流程图条件覆盖教师编号=0601,则执行路径:abc教师编号=123,则执行路径:abd黑盒测试表16 教师课表查询测试用例表测试编号003优先级测试项描述教师课表查询预置条件校管理员或院管理员或教师进入教师课表查询界面用例编号测试输入预期结果001教师编号=0601显示该教师课表002教师编号=123提示该教师课表不存在!003提示请输入要查询课表的教师编号!(3)教室课表查询白盒测试图30 教室课表查询流程图条件覆盖教室编号=11109,则执行路径:abc教师编号=123,则执行路径:abd黑盒测试表17 教室课表查询测试用例表测试编号004优先级测试项描述教室课表查

24、询预置条件校管理员或院管理员进入教室课表查询界面用例编号测试输入预期结果001教室编号=11109显示该教室课表002教室编号=123提示该教室课表不存在!003提示请输入要查询课表的教室编号!7个人体会 四周的课程设计结束了,在这段时间里我们碰到了各种各样的问题,通过查找资料学习,我们解决了很多问题。通过这次的课程设计,我们学到了很多知识,动手能力也提高了很多。课程设计让我们把平日里上课学到的东西应用到了实际的软件开发中,也让我们认识到理论和实践的联系。设计完整个系统,自己收获很多。 在本次课程设计中,我们小组使用的开发工具是Mircosoft VisualBasic 6.0和 Mircos

25、oft Access2003,Mircosoft VisualBasic 6.0实现的是窗体形式的界面,很明了。在Mircosoft VisualBasic 6.0里可以使用各种控件(如:label,textbox,combol等)设计自己想要得到的界面,再通过编写相应的代码实现所需的功能。Mircosoft VisualBasic 6.0界面设计比较简单,最主要的是与数据库的链接,这部分容易出现很多问题,某个界面如果需要连接数据库,可以利用adodc控件,通过Mircosoft Jet 4.0 OLE DB Provide字符串连接库,测试成功。然后在代码的form_load()里将数据库的

26、路径赋给一个变量,通过该变量控制数据库的打开和关闭。在连接数据库这块,会遇到如下一些问题:一个界面操作完退出时,必须关闭数据库,即执行close语句,否则在打开另一个界面时会出现“对象打开时不允许操作”的错误;在界面里添加或修改数据库表里的信息时,所输入的内容类型必须与数据库里设置的类型一致,否则会出现“类型不匹配”的错误;vb代码中sql语句的格式必须正确,否则会出现“至少一个参数未定义”的错误等等。虽然问题很多,但只要我们谨慎认真的去做,去检查,这些都可以被解决。 我们的排课系统做完了,系统实现了一些功能。如登录功能、添加删除和查询功能、手动排课功能、自动排课功能以及课表查询功能。但自动和手动排课方面存在很大问题。排课系统的核心是自动排课算法,我们小组的算法思想是采用贪心法,但实际操作没有很好的实现,只是实现了一些硬约束条件,软约束条件没有实现。不过通过对自动排课的研究,熟悉了贪心算法的知识。对排课的整个过程思想有了一定的把握。课表查询模块是通过与一个excel表连接实现的。Excel的坐标与数据库里的排课信息相对应,就可以得到满意的结果。通过本次的课程设计,自己了解了开发软件的一个过程,各阶段的不同工作,编写的不同文档。软件开发是一个工作量较强大的工程,需要我们团结努力,分工合作。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1