王文龙吧 关注:124贴子:2,090
  • 0回复贴,共1

王文龙 复习资料2

只看楼主收藏回复

数据结构
算法输入:
输入包括:
subject(课程:id、每周课时、总学时、上课课时、课程名称、场地id)
teacher(教师:id、姓名、课程id、特殊要求id、备注)
G&C(年级/班别:年级、班别)
Local(场地:id,名称,数量)
Special(特殊要求:Id,周一1.2节,周三1.2节,周五1.2节)
算法输出:
Sch(上课安排:id,时间,地点,教师id,课程id, 班级)
注:sch为课表的单位为一节课的一个单位,里面存有该节课的所有信息(里面有两个外键,可以读到表teacher和表subject)
基本思想
输入就是由用户输入的数据,用户打开软件界面,在ui输入输入,软件读入数据库,此为输入的数据;包括:
subject(课程:id、每周课时、总学时、上课课时、课程名称、场地id)
teacher(教师:id、姓名、课程id、特殊要求id、备注)
G&C(年级/班别:年级、班别)
Local(场地:id,名称,数量)
Special(特殊要求:Id,周一1.2节,周三1.2节,周五1.2节)
算法:
使用回溯法
首先先把数据库的数据读入内存,存入多个数组中(一维,二维,三维都有)
然后用算法处理这些数据,
算法如下:
sort()
{
for(int i = 0;i<5;i++) //上课时间为周一到周五
{
assign(k)//为c[k]赋值。 k指某班某天某节课
}
}
assign(参数)
{
for(int i = 0;i<科目;i++)
for(int j = 0; j<老师;j++)
for(int w = 0;w<节数;w++)//时间,即是每天有几节课
if(check( )==true)
{
赋值
if 当前为合法赋值 then 全部赋值完成 exit
else if 为部分的 then assign(k+1)//为下一节课赋值
}
}
check()
{
if (该科目还没修够规定学时&&场地有空余&&老师时间不矛盾&&………..)
return true
else
return false
}
输出就是经过软件处理,就是算法处理后得出来的数据,我们也要将输出数据存入数据库
Sch(上课安排:id,时间,地点,教师id,课程id)
通用打印处理过程:
定义打印模板
设计数据与打印关联
把数据实例打印出来



IP属地:广东1楼2011-07-01 18:29回复