资源描述
课程设计说明书 NO. 11
毕业设计选题管理系统
1.课程设计的目的
1.1选题的目的及意义
随着网络和信息技术的发展,20世纪80年代人们提出了“办公自动化"的概念,经过20多年两代的发展,办公自动化系统发生了根本的变化,它主要采用客户/服务器的二层结构、浏览器/服务器/数据库的三层结构,以网络技术和协同工作技术为主要特征,实现工作流程自动化和非结构化数据库的功能,实现了收发文件从传统的手工方式向工作流程自动化方式飞跃,可以方便的实现非结构化文档的处理。
学校处在信息接受的前沿,实现教学办公自动化是必然趋势,毕业生的“毕业设计选题管理系统"就是办公自动化的一项主要内容。“毕业设计选题管理系统"利用了方便的网络通信技术,使得管理员管理教师课题和学生的志愿工作变得非常方便.该系统采用ASP开发技术,基于B/S模式的工作方式使得数据的维护也显得非常方便。
1.2设计研究范围及要达到的技术要求
“毕业设计选题管理系统“是基于浏览器/服务器架构的软件管理系统,它的开发技术是目前比较流行的基于windows 平台的ASP结合VBSCRIPT技术,数据库采用了Microsoft 公司开发的ACCESS数据库,Microsoft access是高性能的数据库管理系统,专为分布式浏览器/服务器计算环境而设计。它与Microsoft Windows NT/Windows2000 Server或UNIX 搭配能为企业提供强大的商业应用。毕业设计网上选题系统通过ODBC或直连驱动程序能和Microsoft access等挂接使用,充分满足课题管理需求。
“毕业设计选题管理系统“选用NT/Windows2000作为后台的操作系统,客户端使用Windows 9X,在节约投资的情况下,后台系统也可使用Windows 9X对等网。不过在运行的时候,后台管理系统要安装IIS或建一个虚拟网站。
“毕业设计选题管理系统 ”分为“前台”和“后台“两部分,前台是实现学生和教师浏览网站的功能,学生用户通过网上浏览教师的课题选择自己喜欢的课题,然后提交到后台数据库保存选题信息,待由管理员处理信息,而教师则可以通过网上浏览申请课题,然后提交到后台数据库,待由管理员处理信息,学生和教师只能浏览数据库信息,不能修改,数据库的相关信息处理由管理员完成。管理员处理教师课题和学生志愿要完成的操作有:对学生志愿的添加、删除、修改,能够查看有哪些学生选择了志愿,哪些学生还没有选择志愿。对教师课题管理要完成的操作有:对教师课题的添加、删除、修改,并要对教师申请的课题进行审查、批准。另外,管理员还要完成学生课题的排列:分为两种方式:自动生成终表和手动生成终表,按志愿优先级进行排列.最后,查看自己的留言,回复留言者。
1.3设计需要解决的问题
该系统把数据的存储、修改、删除、添加功能分开实现,把管理员、学生、教师的操作权限和模块功能分开,通过单独的网页使其关系相互联系。实现了模块间的底耦合、高内聚的功能.
“毕业设计课题申报选题处理平台”利用ASP和Microsoft Access数据库做后台,可以比较容易地实现人机间的动态交互,和及时方便的信息更换。ASP提供了一个在服务器端执行脚本指令的环境(包括HTML、VBScript等)。通过这种环境,用户可以创建和运行动态的WEB应用程序.由于ASP程序是在服务器端运行的,当客户端浏览器浏览ASP网页时,服务器会将该网页文件重新解释一遍,并将生成的标准HTML文件发送给客户端浏览器,所以不存在浏览器兼容问题。再加上方便的Microsoft Access数据库作为后台支持,管理员可以方便简单地更改页面的内容,及时地更新网页的信息。
2.设计方案论证
2.1软件设计的目的及背景
“毕业设计选题管理系统”是办公自动化的具体体现,在信息时代的今天,学校的教学管理已经基本上实现了自动化办公和网上管理,而各种各样的办公软件在市场上也随处可见,毕业设计的课题及志愿管理也应该由一个专门的软件进行管理.每年的毕业设计的选题是一个很麻烦的事情,而且会达不到预想的效果。
2.2软件设计的思想与目标
该系统的设计目的主要是方便教师、学生、管理员三种用户,所有操作都在网上完成。
基于不同用户对象的应用程序是不一样的,用户对象包括学生、老师和管理层。他们以WEB方式访问数据,对系统实现和数据库方面的知识没有什么要求,只需简单的界面操作。下面简单介绍这三个用户对象的功能模块;
学生可对有关课题进行查询,采用分类查询方式,把相关的课题列出来,可以方便学生快速选自己感兴趣的课题,了解课题的相关信息(指导老师、课题代码、课题名称等)。
教师在网上浏览所有课题,也可以在网上申请课题,同时可以查看有无学生选择自己的课题。
管理员对整个选课系统进行管理,他们的工作包括用户管理和课题管理;课题管理包括:录入新添的课题的相关信息,删除课题信息,修改课题信息,查看日志,同样,管理员可以对用户进行管理,包括添加、删除、修改用户信息。
系统的安全性是不可忽略的方面,本系统的合法用户是学生以及老师和管理员。在进入系统前都要进行身份验证。
我们的目标是要让该平台来代替以前教务管理人员的工作。把课题申报和选题处理都通过网络来交互实现。该平台实质上是一个基于Web的数据库应用系统,由数据库、数据库管理系统、应用系统和用户组成。
2.3用户简介
毕业设计选题管理系统主要针对学生及教师用户,当然还需要一个后台管理员,由于现在网络技术和信息技术的飞速发展,学生填报志愿、教师申请课题和管理员管理学生志愿和教师课题如果还是单机版的管理,那工作程序将是相当烦琐的.所以,为了方便学生选题,方便教师对自己课题的查看,方便管理员管理课题和志愿,该系统的设计采用了基于客户机/浏览器(B/S)的操作平台,采用了微软公司推出的ASP VBSCRIPT网站开发技术。这样,不同的用户就可以随时随地对自己的信息进行管理了(当然,管理员只能在规定的服务器上对课题及志愿进行管理).
2.4系统功能介绍
“毕业设计选题管理系统”主要分为三大部分:教师登录部分;学生登录部分和管理员登录部分.而管理员部分又分为九个功能模块:
(1)学生志愿课题管理;
(2)导师课题管理;
(3)添加用户;
(4)删除用户;
(5)修改用户;
(6)自动生成终表;
(7)手动生成终表;
(8)查看最终终表;
(9)查看留言。
2.5实现平台及技术
“毕业设计选题管理系统"选用NT/Windows2000或更高版本作为后台的操作系统,浏览器使用Windows 9X或更高版本操作系统,在节约投资的情况下,后台系统也可使用Windows 9X对等网,系统推荐使用NT/Win2000或更高版本.在浏览器端使用Windows 9X或更高版本.
该系统的实现技术采用了当前比较流行的ASP。NET网站开发技术,使用Dreamveaver MX 制作操作界面,数据库使用了微软公司的access专业数据库,结构简单易懂。
3.设计结果与分析
3。1系统总体设计
3.1。1需求规定
本系统针对不同的用户做了不同的需求分析,对管理员这一部分,包括了对教师课题及学生志愿相关信息的所有操作,还包括了教师和学生基本信息的管理,下面用表格的形式说明一下管理员这部分所涉及的主要功能的操作及功能要求
表1管理主要操作及功能要求
功能名称
输入项目
输出项目
功能要求
学生志愿课题管理
学生基本信息及选择志愿
更新后学生基本信息及选择志愿
对学生的志愿及所被确定的志愿能进行修改、删除等操作,并能查看已选志愿学生和未选志愿学生名单。
教师课题管理
教师基本信息及所带课题
更新后教师基本信息及所带课题
对教师的课题进行添加、删除、修改等操作,对教师在网上申请的课题进行审核并判断是否批准。
用户基本信息管理
用户基本资料信息
用户基本资料信息
对教师、学生用户的基本资料信息进行修改、删除和添加用户。
自动生成终表
学生所选志愿及相干志愿教师的信息
被确定后学生志愿及相关教师的基本信息
按学生志愿顺序确定学生最终所研究的课题,假如学生第一志愿人数已经被选满,那他就只能在选第二志愿,否则就是第三志愿。
手动生成终表
学生志愿及相关志愿的教师信息
学生志愿及相关志愿的教师信息
按手动排列先选中学生志愿,再选中相关志愿教师,提交信息,排列志愿。
留言管理
学生留言
新留言
对学生的留言进行查看并回复留言
该系统的管理模块主要就是以上几块,在这几块大的模块中,又分别包括了几个小的模块,具体部分和功能将在下面介绍。
3。2。2概念设计及流程
在将管理员的工作细分后,系统设计就变得比较容易了,下面介绍一下模块总体流程和细分后的功能及流程:
系统业务流程分析:
通过对系统需求规定的分析,可以看出,系统各个功能处理数据主要就是信息的添加、删除和修改。即,向数据库表中写入新数据,从数据库表中删除数据,更新数据库表中数据。不过在执行这几项功能时要注意一个问题,就是在修改一个数据表中的数据时不是单纯的修改该表中的相关数据,还要考虑到其他数据表中的相关数据可能会更着改变,这样才能保证数据的完整性.比如:要修改教师课题名称,当然就要考虑到该课题是否已经被学生选择了,这时,就要从students表中查看是否有该课题记录,如果有的话,就有两种方式解决:一、在更新teacher表中该课题信息时同时将students表中该课题信息更新;二、在修改该课题时,弹出一个警告“该课题已经有人选择了”,然后有三个选择:返回不修改,通知选择该课题的同学后进行修改,还有就是直接修改。很显然,第二种方式更人性化一些.诸如此类问题还有很多,就不一一介绍了.
所以,在通过系统业务流程分析后,不仅可以了解系统的总体业务的流程和数据处理顺序,还可以更清楚的了解到子系统的数据处理过程,做系统业务流程分析不仅要分析系统业务流程,还要考虑数据之间的关系。下面就具体分析一下各个子系统的业务流程。
学生志愿课题管理:
在这一块里,可以分为修改学生志愿、删除学生志愿、删除学生课题和查看未选志愿学生四大部分管理人员首先查看要更新的数据,进行修改后,保存进数据库
图1管理员对学生志愿操作流程
教师课题管理:
管理员对教师课题管理分为:修改教师课题、添加教师课题、删除教师课题和教师申请课题管理四部分,同时对数据库中的信息进行最后的处理,拿出最终的毕业设计课题小组分组情况。
图2教师课题管理部分流程
用户基本信息管理
用户基本信息管理包括了对用户信息的添加、删除、修改等基本操作,添加用户后,该用户可以凭借自己的帐号登陆管理系统;删除用户信息后,该用户登陆信息被删除,不能进行登陆;需要注意的是,在修改用户信息时,不要轻易改动用户登陆信息,否则会造成用户无法登陆。
图3用户信息管理操作
自动生成终表
自动生成终表是按学生志愿顺序生成终表。
图4 自动生成终表
手动生成终表
手动生成终表是由管理员判断哪位学生修哪门课题,不一定要按学生志愿的顺序生成终表,而不会考虑第一志愿。
图5手动排列生成终表流程
留言管理
留言管理是指:学生如果有什么不清楚的地方给管理员留言,管理员查看留言后,可以给学生回复或采用公告的形式通知所有学生.
图6留言回复
3.2。3结构设计
“毕业设计选题管理系统”设计采用分层管理,分为三层,结构如图7所示.
图7毕业设计选题管理系统结构模块
3。3数据库设计
3。3.1 建库分析
在选择数据库时,考虑到Access数据库的灵活性和以下功能,我采用了Access做为系统数据库。
3。3.2 系统E—R图
实体E-R图表示了实体间的对应关系,它和数据流程图一起组成了系统的逻辑模型,E—R图也叫概念设计模型,它是现实世界与计算机表示的中间描述,是现实世界的真实模型,能充分反映现实世界各种数据处理要求,它的目的是提供一些直观、自然、方便的方法以便于收集并表达客观世界的事物,同时也便于用户理解和验证.
3。3。3实体列表
在本系统中,根据系统E—R图生成的实体主要有:外部实体:管理员,学生,教师。内部实体:课题,志愿,志愿结果,留言,登陆号,登陆密码,用户基本资料.在明确了实体极其对应关系和数据的基本流程后,系统设计会变的比较容易了.
图8 系统实体之间关系
(1)实体属性列表
表2外部实体列表
属性名称
属性代码
类型
是否主键
是否强制
学生登陆号
SLOGINID
A12
YES
YES
学生登陆密码
S_PASSWORD
A14
No
yes
学生电话
S_PHONE
A14
No
No
学生所在学院
S_COLLEGE
A14
No
yes
学生所在班级
S_CLASS
A20
No
yes
学生姓名
S_NAME
VA12
No
yes
学生性别
S_SEX
A2
No
No
学生邮箱
S_EMAIL
A30
No
No
(2)实体属性(教师)
表3外部实体列表(教师)
属性名称
属性代码
类型
是否主键
是否强制
教师姓名
T_NAME
VA12
No
YES
教师登陆号
T_LOGINID
A12
YES
YES
教师登陆密码
T_PASSWORD
A14
No
YES
教师性别
T_SEX
A2
No
No
教师所在学院
T_COLLEGE
A14
No
No
教师电话
T_PHONE
A14
No
No
教师邮箱
T_EMAIL
A30
No
No
(3)实体属性(管理员)
表4外部实体列表管理员
属性名称
属性代码
类型
是否主键
是否强制
管理员姓名
MAMAGERNAME
A12
No
No
管理员登陆号
M_LOGINID
A10
YES
YES
管理员登陆密码
M_PASSWORD
A12
No
No
(4)实体属性(教师课题)
表5内部实体列表(教师课题)
属性名称
属性代码
类型
是否主键
是否强制
课题编号
TOPIC_ID
I
No
No
课题名称
TOPIC_NAME
A40
YES
YES
课题类型
TOPIC_TYPE
A14
No
YES
实现技术
ACHIEVE
A16
No
No
课题介绍
INTRODUCE
VA100
No
YES
允许人数
NUMBERS
I
No
YES
带课教师
K_TEACHER
A14
No
YES
(5)实体属性清单(学生志愿)
表6内部实体列表(学生志愿)
属性名称
属性代码
类型
是否主键
是否强制
志愿编号
IDEAL_ID
I
NO
NO
学生性别
SSEX
A2
No
No
学生学号
STUDENTNUMBER
A20
YES
YES
学生邮箱
S_EMAIL
A30
No
No
学生院系
STUDENT_COLLEGE
A30
No
No
课题名称
TOPIC_NAME
A40
No
No
学生姓名
SNAME
VA12
No
No
(6)实体属性(志愿结果)
表7内部实体列表(志愿结果)
属性名称
属性代码
类型
是否主键
是否强制
结果编号
RESULT_ID
I
NO
NO
志愿结果名称
RESULT_NAME
A30
No
No
对应学生姓名
RESULT_STU
A10
No
No
学生学号
STUDENTNUMBER
A20
YES
YES
学生院系
STUDENT_COLLEGE
A30
No
No
学生电话
STUDENT_PHONE
N20
No
No
带课教师姓名
TEACHERNAME
A10
No
No
教师电话
TEACHERPHONE
N20
No
No
志愿介绍
RESULT_CONTENT
A50
No
No
(7)实体属性(用户档案)
表8内部实体列表(用户档案)
属性名称
属性代码
类型
是否主键
是否强制
档案号
D_CODE
I
YES
YES
档案材料
D_MATERIAL
A30
No
No
(8)实体属性(留言本)
表9内部实体列表(留言本)
属性名称
属性代码
类型
是否主键
是否强制
留言编号
MESSAGE_ID
I
Yes
Yes
留言者
LEAVE_PERSON
A10
No
No
留言目标
SEND_TO_WHO
A10
No
No
留言标题
MESSAGE_TITTLE
A20
No
No
留言内容
MESSAGE_CONTENT
A100
No
No
(9)实体属性(用户登录信息)
表10内部实体列表(用户登录信息)
属性名称
属性代码
类型
是否主键
是否强制
登陆ID
LOGIN_ID
A20
YES
YES
登陆密码
LOGIN_PASSWORD
A20
No
No
在系统分析阶段要回答的中心问题是系统“做什么",即明确系统功能;在系统设计阶段要回答的中心问题是系统“怎么做",即如何实现系统说明书规定的系统功能。在这一阶段,根据实际的技术条件,确定系统的实施方案,完成系统设计的详细过程.
3.4管理员控制功能介绍
这一部分主要从系统设计的界面、程序的描述和流程算法的描述详细介绍了系统实现的过程及方法.
登录模块是管理员进入系统的唯一路径,因为管理员在登录时就已经用session函数保存了自己的登录号,即在登录后控制页面就已经从登录界面获得登录号,并用session函数保存到下一张页面[session(“id“)],如果session(“id”)为空,就自动返回登录页面。并且管理员只有输入正确的登录信息才能登录,如果在输入三次错误信息后就禁止登录,登陆页面为login。asp。
管理员在登陆时,首先要输入用户名(username)和密码(password),然后再从数据库TEC中的PWD表中判断用户合法性:如果PWD表中的loginid 和password字段与登录用户输入的数据一致(当然username和loginid、password和password要对应)并且登录用户输入的用户名在PWD表的ismanager字段为真,用户才能进入。
管理员成功登陆后,进入主控制界面,管理员的操作权限分为学生志愿管理、教师课题管理、用户信息管理、自动生成终表、手动生成终表、查看终表和留言管理七个大的部分。
图9管理控制菜单
3.5学生志愿课题管理
学生志愿课题管理是为了更好地遵从学生的志愿选择自己喜欢的或是自己擅长的毕业设计课题,同时为了对毕业生进行更好的管理而设计。学生志愿管理页面连接了修改学生志愿、删除学生志愿、删除学生课题和查看未选志愿学生四张页面。
3。5。1修改学生志愿
修改学生志愿是指在学生志愿未被确定的情况下,由于某种原因管理员修改学生志愿,但是当学生志愿被确认后,则不能修改了.
图10显示学生志愿
代码设计
在进入学生页面后,会看到所有选择了志愿的学生及其志愿,数据是从数据库students表中选择出来,由于此处有一个模糊查询学生志愿,在打开页面时,文本框中的值为空,系统将所有选择了志愿的学生选择出来,在文本框中输入要查询学生的姓名或学生选择志愿的名称都可以选择出来。
在这里,考虑到选择志愿的学生数量可能比较多,如果采用单页显示所有学生志愿,可能比较麻烦,所以在这里就采用分页显示的方式,每页显示八条记录,超出十条记录就显示在下一页。
选中要修改的学生,定义一个单选按钮,命名为selectwho,初始值为<%=rs(”studentnumber")%〉,选中提交进入修改页面modifyzy1.asp,修改页面如图11
图11学生志愿修改
在选择学生时,就根据学生学号选择学生:
dim user
user=CLNG(request。form(”selectwho”))//从studentzy.asp中得到数据
sql="select * from students where studentnumber=’”&user&”'"//条件查询
在左边“学生信息”栏中,已经显示了学生基本信息和该学生已经选择的课题,在右边“选课信息”栏中显示了所有教师所带的课题信息。他们分别从数据库students表和teacher表中选出。如果要修改学生志愿,只需在右边“选课信息"栏中将教师的课题复制到左边“学生信息”栏中三个志愿中,然后提交到xgzy。asp页面进行信息修改,students表中关于该学生的志愿就被修改。
3.5。2删除学生志愿
管理员根据实际情况,可以删除学生志愿,如果该学生的志愿已经被确认,那么,在删除志愿的同时,也就删除了学生所修的课题.
流程描述
在进入删除页面时(如图12),选中要删除志愿的学生,然后提交到deletezy页面进行删除,系统根据单选按钮确定的值,在students表和 result 表分别删除有关该学生的信息,并且在pwd表中将该学生ischose字段设置为0,即表示该学生还没有选择志愿。主要代码如下:
dim user
user=CLNG(request。form("cbox"))
sql=”delete * from students where studentnumber='"& user & ”'” //删除学生志愿
sql1=" update pwd set ischose=0 where loginid=’" & user & ”' " //更新ischose字段
sql2=”delete * from resolt where studentnumber=’"& user & ”'” //删除学生课题
图12删除学生志愿
3.5。3删除学生课题
删除学生课题是指删除已经被确认的学生的志愿,如果学生志愿分配不当,管理员可以删除学生课题,进行再分配。
流程描述
在进入删除学生页面时,可以看到所有已经被确认的学生志愿,选中要删除课题的学生,提交到删除执行删除,在result表中删除学生课题的同时,也修改了数据库students表中studentjudge字段中的值,将studentjudge的值该为0,即表示该学生的志愿还未被确认。执行主要代码为:
user=CLNG(request.form(”cbox”))
sql=”delete * from resolt where studentnumber='"& user & "’”
sql1=" update students set studentjudge=0 where studentnumber=’"& user &"’"
3。5。4查看未选志愿学生
查看为选志愿学生是为了确认那些学生还未选择志愿,在pwd 表中有一项ischose字段,如过学生选择了志愿,该字段就被付值为1,否则为0。在这里,就是选出了那些ischose字段是0的学生。详细代码见附录。
3。6教师课题管理
教师课题管理分为四大块:修改教师课题;删除教师课题;增加教师课题;教师申请课题管理。分别连接views。asp、views1。asp、add.asp、approve.asp网页。
3。6。1修改教师课题
在浏览页面,列出了所有教师课题,可以查询教师姓名进行修改,首先选择要修改课题的教师,提交后进入修改页面进行修改,这里与修改学生志愿情况类似,在修改填写好要修改的信息后,提交到xgkt.asp页面完成修改.
3。6.2删除教师课题
删除教师与删除学生志愿相似,首先浏览页面显示了所有教师课题,选中要删除课题的教师,提交到删除执行删除,删除后teacher表中关于该课题的信息就被删除了,由于一个教师可以带几个课题,所以这里必须根据课题名称进行删除。
3。6。3添加教师课题
管理员进入添加新课题页面,输入课题及教师的相关信息,提交到addone。asp页面执行添加,在添加时,首先进行判断,如果teacher表中已经存在该课题,则返回,否则添加到数据库中teacher表中。
3。6。4教师申请课题管理
教师申请课题管理是指:教师在登录后,填写完要申请课题的名称及相关信息和教师相关信息,提交到数据库apply表中等待批准,管理员登陆后,进入approve。asp页面,选中要批准的课题,提交后进入提交页面执行添加,首先从apply表中选出该课题相关信息,然后将信息添加到数据库teacher表中,在添加到teacher表之前,要先判断teacher表中是否已经存在该课题,如果没有,就添加,否则退出。
3.7用户基本信息管理
用户基本信息管理包括了三大部分:修改用户信息、添加用户信息、删除用户信息;考虑到毕业设计选题系统数据量可能比较大,为了不与其它系统相互混淆,我就单独建了一张存放用户信息的表PWD,添加用户信息的数据都放在这张表中,添加的用户可以根据自己的登陆信息登陆该网站,比如,如果添加的是教师用户,该教师就可以凭借自己的登陆信息进入自己的页面,申请课题.如果是学生用户,就可以进入投报志愿。如果是管理员用户,则可以对学生和教师的信息进行管理.
3。7。1添加用户信息
添加用户是分类添加,在选择用户类型后,该用户就只能进入自己的操作页面,在这里还可以上传用户相片。
流程描述
填写好用户信息后提交到adduser。asp页面,将数据添加到PWD表中。
3.7.2修改用户信息
修改用户信息与修改教师课题过程类似,在modifyuser。asp 页面选中要修改的用户,提交进入modifyuserdis。asp填写用户新信息,然后提交到modifyusersub。asp页面进行修改在修改用户资料时,也可以修改用户相片.代码与修改教师课题类似,这里就不用多讲了。详细代码见附录.
3。7.3删除用户信息
删除用户信息,可以直接输入用户姓名和其登陆号码进行删除,如果输入的用户姓名和对应的登陆号不一致,就弹出警告,详细代码和界面见附录;还有一种方式是选择删除,这与删除教师课题流程和代码类似不再复述.
3。8自动生成终表
该功能是本系统中最重要也是最难实现的一个地方,当所有学生都投报完志愿后,由管理员按照导师课题的要求,同时尽可能遵循学生的志愿,对所有数据进行统计.当管理员点击生成总表后,直接进入自动排列页面(thelastlist.asp),首先把数据表students按照第一志愿排列,语句为:
set rsthezy=conn。Execute("select * from students order by firstzy asc”)
使用do until…… loop循环把学生的第一志愿按照顺序以每次一条的原则取出来.然后以第一志愿的课题名称rsthezy(”firstzy”)到teacher中查找与课题名称相等的记录,语句为
set rsthekt=conn.Execute(”select * from teacher where ktname='" & thefirstzy & "'”)
因为课题名称都是唯一的,因此不会出现查到重复记录的情况.查询到符合条件的记录,就将课题名称和学生姓名写入表resolt中。为了避免已经被选中的学生再次参加循环,我在数据表students中设置了字段studentjudge,初始值为0。被选中的学生的记录在写入reslot的同时,让studentjudge=1.而在循环的开始将有个判断,即当studentjudge=0时,才进行以后的操作,否则,转入下一条学生记录。同时,因为导师的课题都有限制人数,因此在数据表teacher中我设置了字段 teacherjudge,当遇到一个与课题名称相等的第一志愿的学生记录,就在该课题的记录中的字段teacherjudge中自加1。如果字段teacherjudge中的值已经等于限制人数时,该学生不再参与循环,自动转入下一条学生记录.
当按照第一志愿查询完后,可能有的同学还没有选到课题,而有的课题也还没有达到限制人数。因此还需要按照学生的第二志愿来查询.同理,还需要对第三志愿查询。具体的设计跟按照第一志愿查询类似。详细代码见附录。
查询完成后,转入页面thelastlist.asp,显示生成的结果.
3。9手动生成终表
界面设计
本页面包括了两个表格(左边的教师课题信息,是从teacher表中得到,右边学生志愿信息是从students表中得到。
首先在页面上右边选择一名学生,再在左边选择课题,选择的课题必须是该学生已经选择了的志愿,,然后提交选课信息,提交到本页面进行添加,它是根据单选按钮的初始值从students表和 teacher表得到相应的数据,添加到result表中,这里还考虑到教师课题很多,就采用查询的方法,查找与学生志愿相同的教师课题,最后生成终表,由于教师课题人数有限制,所以,当课题确定人数已满时,学生的志愿就由管理员分配;比如:一个学生没有选择“空调设计"这一课题,但是这个课题人数还未满员,而该同学选择的课题都已经满员,管理员就可以将该同学的最终志愿确定为“空调设计".
3.10查看终表
查看终表是从result表中读出最终课题信息,有那些学生选中了哪些教师的课题。然后还可以查看有哪些教师的课题还未被学生选择或还未被确认,这是从teacher表中读出,因为在确定一个教师课题被一个学生开发时,该表中teacherjudge字段就被加一,所以在选择未被选择的教师时,只需要选择teacherjuge字段为0的信息(图13),详细代码见附录。
图13选课终表
3.11查看留言
该留言本是学生需要帮助或有什么地方不清楚时,向管理员询问,然后管理员从mytable表中查看咨询,作出回答。如图14和图15。详细代码见附录。
图14管理员查看留言
图15管理员回复留言
4.设计体会
在这次的课程设计过程中,通过对课题的仔细研究和分析,在确定了设计的基本任务和要求后.我查阅了大量的相关资料,查看了大量的程序代码,请教了校内的许多老师和同学,最终将课题完成了。本次毕业设计的每一个功能,每一个模块,每一段程序我都认真、仔细的查看了几次,独立完成。
当然设计也存在一些问题,如程序不够简练,所书写的源代码文件过多,技术含量不是很高,有些功能没有实现,操作还是有些复杂,数据库还不够完善等等,不过,如果能再将程序进行优化和修改,比如生成终表那里,功能会更加完善.
希望我们这次的设计能为今后咱们学院老师和同学的工作学习服务,给大家带来方便。 由于水平有限,设计过程中难免存在错误和欠妥之处,敬请指正并提出宝贵意见.
5.参考文献
[1] 陈磊,郭斌,李翔等。系统变量和常量的几种运用[J]。工学学报.2010。17(7): 69-85
[2]丁贵广,闫允一,孟繁杰编著.ASPNET编程基础与实例[M].第二版。北京:机械工业出版社。2004年1月版。289页
[3] 刘小东编著。Dreamweaver MX实用教程入门与提高[M]。第一版.北京:中国铁道出版社.2003年5月版。388页
[4]美国LaurenceMorone。yASP.NET基础教程。北京:人民邮电出版社.2009
[5]Karli Watson.C#入门经典(第3版)。北京: 清华大学出版社。2006
[6]李华。ASP。NET(C#)程序设计。北京: 清华大学出版社。2010
沈 阳 大 学
展开阅读全文