asp课程设计-作业提交系统.doc_第1页
asp课程设计-作业提交系统.doc_第2页
asp课程设计-作业提交系统.doc_第3页
asp课程设计-作业提交系统.doc_第4页
asp课程设计-作业提交系统.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、 湖南工业大学课 程 设 计资 料 袋 计算机与通信 学院(系、部) 2009-2010 学年第 2 学期 课程名称 WEB程序设计 指导教师 欧阳旻 职称 讲师 学生姓名 肖君诺 专业班级 计本073 学号 07408100321 题 目 作业提交系统 成 绩 起止日期 2010 年 6 月 12 日 2010 年 6 月 20 日目 录 清 单序号材 料 名 称资料数量备 注1课程设计任务书12课程设计说明书13课程设计报告1张WEB程序设计课程设计说明书 作业提交系统起止日期: 2010 年 6 月 12 日 至 2010 年 6 月 20 日学生姓名肖君诺班级计本073班学号07408

2、100321成绩指导教师(签字)计算机与通信学院(部)2010年 6月 20 日教师评语:成绩: 指导教师: 年 月 日一、 实训题目ASP动态网页设计作业提交系统二、 实训目的进一步巩固和加深“ASP动态网页设计”课程的基本知识,了解ASP动态网页设计知识在实际中的应用。综合运用“ASP动态网页设计”课程和先修课程的理论及生产实际知识去分析和解决问题,进行的相关训练。学习ASP动态网页设计的一般方法,了解和掌握通用数据库的连接、数据的相关操作或网站的设计过程和进行方式,培养正确的设计思想和分析问题、解决问题的能力,特别是网站功能规划的能力和实现相关功能的能力。通过能系统的分析、系统设计、数据

3、库设计和功能的实现等,培养ASP动态网页设计的基本技能三、 设计概述设计一个网上作业提交系统设计要求:系统要求教师具有网上作业的布置、题库的修改、解答学生提问等功能,学生用户具有选择章节选择作业、提交作业、查看作业结果等功能。四、 设计思想基于系统开发需要,我们采用了 一下几种技术进行开发:运用ASP做服务端的业务逻辑处理,用DreamweaverCS4进行网页设计,主要利用表单和表格进行数据的展现,用JavaScript进行客户端的验证和事件处理,采用大型数据库SQLServer2005存储数据,用ADO存取数据库,采用OLEDB方式连接数据库,并采用第三方组件ASPUpload进行文件上传

4、,灵活运用。系统的开发主要环境为DreamweaverCS4+IIS5.1服务器+SQLServer2005,这是开发ASP动态网站的理想选择。五、 设计任务本系统包括:管理员,老师,学生三个角色,分别实施不同的动作管理员:院系管理,班级管理,课程管理,用户审核与修改,提问的删除。老师的课程,班级课程的安排等新注册的用户需要管理员审核通过之后才能登录。管理员可以修改增设院系,给院系添加班级,给班级安排课程。课程安排,哪些老师能教什么课,给班级安排课程,一个老师能教多门课程,一个班级有多门课程,两个班级有同一门课程都有可能不是同一个老师教。所以班级、老师、课程这三个实体之间两两都有多对多关系。老

5、师:题库管理,回答提问,布置作业,评阅作业布置作业,作业随机生成,由题库中取出,学生提交过一次之后,记录这次的题目,在老师还没有评阅之前,学生还可以修改。评阅作业,选择题,判断题由电脑阅卷,填空,问答,应用题由老师评阅,最后计算总分,修改状态,公布答案,供学生查看学生:做作业,提问六、 设计要求采用DreamweaverCS+ASP+SQLSever2005综合进行课程设计,开发一个动态网站系统。要求能够根据设计题目的要求,划分功能模块;根据功能模块的划分,进行相应的数据库设计;画出程序流程图,列出组成网页的文件清单;完成程序代码;对各模块进行整合,并进行调试;编写课程设计报告。七、设计步骤(

6、包括流程图或框图)7.1、总体结构设计系统主要的功能模块如下:作业提交系统管理员老师学生院系管理班级管理课程管理用户管理布置作业评阅作业在线作业查看作业学生提问提问管理题库管理回答提问7.2、数据库设计 物理结构设计7.3 数据字典 略八、设计代码(程序设计类课程)1、连接数据库文件 conn.asp2、编码转换 和权限验证文件 encoding.asp%以上为编码转换得到当前页面的地址 Function GetUrl() On Error Resume Next Dim strTemp If LCase(Request.ServerVariables(HTTPS) = off Then st

7、rTemp = http:/ Else strTemp = https:/ End If strTemp = strTemp & Request.ServerVariables(SERVER_NAME) If Request.ServerVariables(SERVER_PORT) 80 Then strTemp = strTemp & : & Request.ServerVariables(SERVER_PORT) strTemp = strTemp & Request.ServerVariables(URL) If Trim(Request.QueryString) Then strTem

8、p = strTemp & ? & Trim(Request.QueryString) GetUrl = strTemp End Function %if session(roleid)= then session(roleid)=0response.Redirect(loginput.asp)end ifdim url,realurlrealurl=GetUrl()得到请求的地址url=Request.ServerVariables(URL)response.Write(url&-&left(url,14)if left(url,14)=/network/admin then 判断请求的是否

9、是 文件夹admin里面的资源,如果是则判断是否admin,不是则返回登陆,说明权限不足if session(roleid)1 then response.Redirect(./loginput.asp?message=&server.URLEncode(你不是管理员,权限不足.) end ifelseif left(url,16)=/network/teacher thenif session(roleid)1 and session(roleid)2 then response.Redirect(./loginput.asp?message=&server.URLEncode(你不是老师,

10、权限不足.) end ifend if%3、在线作业生成页面 dowork.asp mainFrm 在线作业 % dim sql,uid,wid,makepolicy,courseid,levelid,showans dim selectnum,selectpoint,judgenum,judgepoint,fillspacenum,fillspacepoint,essaynum,essaypoint,applicationnum,applicationpoint wid=request.QueryString(wid) uid=session(uid) rs.Open select w.st

11、ate ,w.showans,w.workname,w.levelid,levelname,w.courseid ,coursename, maxtime ,makepolicy,remark from work as w,course as c,courselevel as cl where w.courseid=c.courseid and w.levelid=cl.levelid and wid=&wid If rs.EOF Then response.write 没有记录 Else courseid=rs(courseid) levelid=rs(levelid) response.W

12、rite( 作业名:&rs(workname)&)response.Write( 课程:&rs(coursename)& ) response.Write( 章节:&rs(levelname)&)response.Write( 答题时间:&rs(maxtime)& 分钟)response.Write( 备注:&rs(remark)&)makepolicy=rs(makepolicy)showans=rs(showans)End If rs.closedim arrdim arr2,arr3arr=split(makepolicy,chr(9)dim iFor i=1 To ubound(arr

13、)arr2=split(arr(i-1),:)arr3=split(arr2(1),)select case arr2(0)case select selectnum=arr3(0)selectpoint=arr3(1)case judge judgenum=arr3(0)judgepoint=arr3(1)case fillspace fillspacenum=arr3(0)fillspacepoint=arr3(1)case essay essaynum=arr3(0)essaypoint=arr3(1)case application applicationnum=arr3(0)appl

14、icationpoint=arr3(1) end select Nextresponse.Write()查找是否已经提交过dim prevquestions,otherans,hasdo,youansArr,thestatehasdo=0rs.Open select * from dowork where uid=&uid& and wid=&wid If not rs.EOF Then hasdo=1prevquestions=rs(questions)otherans=rs(otherans)youansArr=split(otherans,chr(9)thestate=rs(state)

15、response.Write(otherans& &youansArr(0)end ifrs.closefunction getYouAns(quizid,quiztype)dim tansfor i=0 to ubound(youansArr) if left(youansArr(i),len(quiztype)=quiztype then tans=mid(youansArr(i),len(quiztype)+2) exit for end ifnextresponse.Write(tans& - )youansArr2=split(tans,)for i=0 to ubound(youa

16、nsArr2) if quizid&=left(youansArr2(i),len(quizid&) then getYouAns=mid(youansArr2(i),len(quizid&)+2)response.Write(&left(youansArr2(i),len(quizid&)&)exit forend ifnextresponse.Write(getYouAns)end functionfunction findArr(arr,num1,ind)在数组中查找 是否有该数字 如果有则返回1dim jfindArr=0response.Write(num :&num1& ind:&

17、ind&)for j=1 to indresponse.Write(arr(j-1)&find )if arr(j-1)=num1 then findArr=1 exit for end ifnextend function 在数据库中查找出来的合理数据的索引号中 随机生成num2个 不同的数字function getRandArr(num2,maxnum)dim rand ,i1,indexs1()redim indexs1(num2-1)randomize 产生随机化种子for i1=1 to num2do rand =int(maxnum*rnd)+1 产生随机数loop while f

18、indArr(indexs1,rand,i1)=1 如果在数组中没有找到 则跳出循环 说明生成了一个有效的 索引 随机数indexs1(i1-1)=rand 将随机数 赋值给索引数组nextgetRandArr=indexs1 end function输出一类题目function makequiz(qtype,quenum,qpoint)response.Write()如果已经提交过 则解析出提交过的题目的iddim qidsqids=if hasdo=1 thendim qarr,qiqarr=split(prevquestions,chr(9)for qi=0 to ubound(qarr

19、)if left(qarr(qi),len(qtype)=qtype thenqids= mid(qarr(qi),len(qtype)+2)response.Write(qids)exit for end ifnextqids= and qid in (&qids&)quenum=split(qids,)quenum=ubound(quenum)end ifdim sqltestsqltest=select * from quiz where qtype=&qtype& and courseid=&courseid & and levelid=&levelid&qidsrs.Open sql

20、test If rs.EOF Then response.write sqltest Else dim indexs,i2if cint(rs.RecordCount)=cint(quenum) then 随机生成quenum个数字从 1rs.recordcount中indexs=getRandArr(quenum, rs.recordcount)elseresponse.Write(warning:题库中没有足够的题目,需要&quenum&个,题库中只有&rs.recordcount&个)end ifFor i2=1 To rs.RecordCountIf rs.eof Then Exit

21、Forif cint(rs.RecordCount)=cint(quenum) then 如果题库中的题目数量少于要求的数量则不随机 直接全部输出outquiz(qpoint/quenum)elseif findArr(indexs,i2,quenum)=1 then 题库中有足够多的题目,则查找数组中是否有该索引值,有则输出该题目outquiz(qpoint/quenum)end ifend ifrs.movenextNext End Ifrs.closeresponse.Write()end function输出一个题目function outquiz(qpoint)dim qtype,q

22、id,qname,qkeyqid=rs(qid)qtype=rs(qtype)qname=rs(qname)qkey=rs(qkey)qindex=qindex+1questions=questions&,&qidresponse.Write( &qindex&. &qname&(&formatnumber(qpoint,1)&分)dim youansyouans=-1if hasdo=1 then如果是已经提交过 则处理以前做过的答案youans=getYouAns (qid,qtype)if showans=1 or thestate=已评阅 then如果设定了显示答案 或者 已评阅 则

23、输出正确答案if qtype=select or qtype=judge thenif youans=rs(qkey) then response.Write( )elseresponse.Write( )end if end ifresponse.Write( 正确答案:&qkey&)end ifif qtype=select thenif youans then youans=Asc(youans)-Asc(A)end ifend ifend ifresponse.Write()dim checkselect case qtypecase selectdim ansArr1,ansArr2

24、ansArr1=split(rs(qoption),)for i=0 to ubound(ansArr1)ansArr2=split(ansArr1(i),:)check=if youans=i then check=checked=checked end ifresponse.Write(    &ansArr1(i)&)nextcase judgedim check1,check2if youans=1 then check1=checked=checked end ifif youans=0 then check2=checked=checked end i

25、fresponse.Write(   是 不是)case fillspaceresponse.Write(这 是 摆 设)case essayif youans=-1 then youans=答: end ifresponse.Write(&youans&)case applicationif youans=-1 then youans=解: end ifresponse.Write(&youans&)end select end function% form action=doworkaction.asp?p=&wid= method=post %questio

26、ns=questions&select:0response.Write(一、选择题:&selectnum&个 分值:&selectpoint&)makequiz select,selectnum,selectpoint% %questions=questions&chr(9)&judge:0response.Write(二、判断题:&judgenum&个 分值:&judgepoint&)makequiz judge,judgenum,judgepoint% %questions=questions&chr(9)&fillspace:0response.Write(三、填空题:&fillspacenum&个 分值:&fillspacepoint&)makequiz fillspace,fillspacenum,fillspacepoint %

温馨提示

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

评论

0/150

提交评论