1、软件工程课程设计说明书课表生成子系统XX大学课 程 设 计 说 明 书软件工程实训周学生姓名:学 号:学 院:专 业:软件工程题 目:大学课表管理系统(课表生成子系统)成绩指导教师: 2012 年 月 日一.设计目的制定一个学校的排课计划是一项非常耗时且相当辛苦的工作。在一所高校一个课程表的制定是一个难题,因为在有关课程表的问题上有很多的限制条件得考虑,还有大量的数据空间被挖掘。课程编排系统是一个学校不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以自动排课系统应该能够为用户提供充足的信息和快捷的查询手段。按照软件工程基本原理,运用UML中所学的知识,设计开发一个大学排课系统
2、。通过对排课系统的分析、设计与实现,将原理与应用相结合,让自己学会如何把书本上学到的知识用于解决实际问题,培养自己的动手能力;另一方面,使自己能深入理解和灵活掌握教学内容。二.设计内容和要求设计内容:1.教学秘书输入教师代课信息和班级上课信息,并进行自动排课2.教师可以预先在网上提交对上课时间、地点的特殊要求,排课后可以查看自己所带课程信息3.排课后学生可以看自己所上课程信息4.教学秘书可以看本院全部课表信息为了简化排课算法难度,本次课程设计中,作如下假定:(1)排课中以班级为单位排,不考虑选修课;(2)教室分为多媒体教室和非多媒体教室;(3)假定只有周一到周五有课,一天只上四大节课,每大节两
3、个学时;(4)班级学生人数固定为50人,教室容量只考虑60、120、200人三种,相应合班上课只考虑2个和3个班上课的情况。设计要求:(1)采用UML完成需求分析、设计文档和测试文档;(2)采用图形化界面;(3)操作方便、界面友好。三.需求分析在整个系统中本人主要负责课表生成和修改密码功能的实现,同时也参加算法的设计与实现。本系统要涉及到管理人员、教师、学生三个不同的参与者,有两个不同的权限。管理员可以录入教师、教室、班级等基本的信息然后进行排课,而教师和学生只具有查询课表的权限。所以在登录的时候要把不同的权限划分出来。程序在设计好后数据库中有一个默认的管理员的用户名和密码,通过该用户名和密码
4、可以登陆系统,然后通过用户管理模块可以添加教师、学生或管理员。图1 课表生成子系统用例图表1 课表生成用例描述用例名称自动排课用例概述根据课程时间、教师的基本信息、班级课程设置的信息、多媒体使用情况、座位数与上课班级人数协调情况合理的安排上课教室、时间及代课教师,使得资源充分利用而且不冲突主要参与者教学秘书、教师、学生前置条件教师、班级和教室信息全部添加完后置条件生成课表基本事件流(1)收集教师、班级、教室的信息(2)根据多媒体的需求、教室座位数等优先为上课班级总人数多的班级安排上课教室和时间(3)根据教师的基本信息和代课意向,优先考虑安排教师的代课要求(4)为已安排教室和时间的课程的代课教师
5、安排其他教学任务的教室和时间。(5)合理调整教师每周授课的学时数(6)重复以上操作,直到所有的课程安排完图2 课表查询子系统用例图表2 课表查询用例描述用例名称课表查询用例概述教师、学生、教学秘书根据自己的需求对课表进行不同类型的查询主要参与者教师、学生、教学秘书基本事件流(1)用户启动课表查询用例(2)学生选择学生课表查询用例,查询学生课表(3)教师选择教师课表查询用例,查询教师课表(4)院管理员和校管理员根据需求选择不同课表查询用例,查询课表四.系统设计 4.1开发工具 开发工具:EclipsePHP、XAMPP。4.2数据库结构表3 教师信息表字段名称中文含义字段类型长度是否可为空备注i
6、d教师工号varchar25否主键name教师姓名varchar25否username登录帐号varchar25否password登录密码varchar25否表4 学生信息表字段名称中文含义字段类型长度是否可为空备注id学号varchar25否主键name学生姓名varchar25否password登录密码varchar25否classid班号varchar25否表5 管理员信息表字段名称中文含义字段类型长度是否可为空备注username管理员用户名varchar25否主键password管理员密码varchar25否表6 班级信息表字段名称中文含义字段类型长度是否可为空备注id班号varch
7、ar25否主键name班级名称varchar25是表7 课程信息表字段名称中文含义字段类型长度是否可为空备注id课程idint11否主键、自增teaname任课教师varchar25否teaid教师工号int11否class班号varchar25否name课程名称varchar25否room上课教室varchar25否time上课时间varchar25否remarks备注varchar25是4.3程序界面及核心代码图3 添加课程信息界面添加信息核心代码如下:?require_once(./config.php);require_once(./function.php);if(!empty($_
8、GETaction)switch($_GETaction) case addTeacher: $id=$_POSTid; $name=$_POSTname; $sql=insert into teacher values($id,$name,$id,$id); forward($sql,addTeacher.html); break; case addClass: $id=$_POSTid; $name=$_POSTname; $sql=insert into class values($id,$name); forward($sql,addClass.html); break; case a
9、ddStudent: $id=$_POSTid; $name=$_POSTname; $classid=$_POSTselclass; $pwd=$_POSTid; $sql=insert into student values($id,$name,$pwd,$classid); forward($sql,addStudent.php);break; case addCourse: $selteacher=$_POSTselteacher; $sql=select name from teacher where id=$selteacher; $result=mysql_query($sql,
10、$conn); $array=mysql_fetch_array($result); $tname=$arrayname; $selclass=$_POSTselclass; $name=$_POSTcourseName; $room=$_POSTcourseRoom; $week=$_POSTselweek; $time=$_POSTseltime; $t=$week._.$time; $remarks=$_POSTremarks; $sql=insert into course(teaid,teaname,class,name,room,time,remarks) values($selt
11、eacher,$tname,$selclass,$name,$room,$t,$remarks); forward($sql,addCourse.php);break; case addUser: $newUser=$_POSTuserName; $pwd1=$_POSTpwd1; $pwd2=$_POSTpwd2; if($_POSTpwd1!= $_POSTpwd2) $message=两次密码输入不相同!; url_go($message, addUser.html); else $sql=insert into admin(username,password) values($newU
12、ser,$pwd1); forward($sql,addUser.html); break; default: echo ; echo alert(参数错误,请重试.); echo ; break; else echo 出错了!;mysql_close($conn);?图4 修改密码界面修改密码核心代码如下:五.系统测试5.1测试方法黑盒测试法5.2测试用例及测试结果测试用例:添加新课程(1)测试内容:添加新课程信息(2)测试数据: 教师:张三老师 班级:09210A01课程名称:大学英语教室:09303时间:周三第三大节(3)预期结果:在添加课程信息页面输入相应课程信息。成功添加后,点击“管
13、理课程”可以找到新添加的课程信息。(4)测试结果:当输入测试数据并提交。图5 添加课程信息操作成功提示。图6 操作成功提示添加成功后,点击“管理课表”可以看到新添加的课程信息。图7 查询课表测试通过。六.个人体会在这次的课程设计中,让我学到了很多在课堂上和书本上学不到的知识,让我真真体验到了软件开发的乐趣。首先,我领略到了数据库设计在计算机领域的重要性,数据库设计不是范式越高越好的,我们要根据我们的应用来决定,一切应该以需求为首要选择;其次,对编程环境、一些控件的使用和界面的美化方面也要懂,一个很好的界面呈现在用户面前,对用户是否满意起着很好的作用。利用软件工程学开发系统。虽然这个课表管理系统只是一个普通的课程设计,但从这个项目中也让我了解的软件开发的流程,在开发系统设计和实现中学到和总结了很多经验和教训。我所做的这个系统功能不是很完善,但我相信以后的设计中我会再接再厉的。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1