asp课程设计作业提交系统

上传人:痛*** 文档编号:104508603 上传时间:2022-06-10 格式:DOC 页数:16 大小:350.50KB
收藏 版权申诉 举报 下载
asp课程设计作业提交系统_第1页
第1页 / 共16页
asp课程设计作业提交系统_第2页
第2页 / 共16页
asp课程设计作业提交系统_第3页
第3页 / 共16页
资源描述:

《asp课程设计作业提交系统》由会员分享,可在线阅读,更多相关《asp课程设计作业提交系统(16页珍藏版)》请在装配图网上搜索。

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

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

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

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

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

6、统管理员老师学生院系管理班级管理课程管理用户管理布置作业评阅作业在线作业查看作业学生提问提问管理题库管理回答提问7.2、数据库设计 物理结构设计7.3 数据字典 略八、设计代码(程序设计类课程)1、%以上为编码转换得到当前页面的地址 Function GetUrl() On Error Resume Next Dim strTemp If LCase(Request.ServerVariables(HTTPS) = off Then strTemp = Else strTemp = https:/ End If strTemp = strTemp & Request.ServerVariabl

7、es(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 strTemp = strTemp & ? & Trim(Request.QueryString) GetUrl = strTemp End Function %if session(

8、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判断请求的是否是 文件夹admin里面的资源,如果是则判断是否admin,不是则返回登陆,说明权限不足if session(roleid)1 then response.Redirect(

9、./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(你不是老师,权限不足.) end ifend if% mainFrm 在线作业 % dim sql,uid,wid,makepolicy,courseid,levelid,showans

10、 dim selectnum,selectpoint,judgenum,judgepoint,fillspacenum,fillspacepoint,essaynum,essaypoint,applicationnum,applicationpoint wid=request.QueryString(wid) uid=session(uid) rs.Open select w.state ,w.showans,w.workname,w.levelid,levelname,w.courseid ,coursename, maxtime ,makepolicy,remark from work a

11、s 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.Write( 作业名:&rs(workname)&)response.Write( 课程:&rs(coursename)& ) response.Write( 章节:&rs(levelname)&)response.W

12、rite( 答题时间:&rs(maxtime)& 分钟)response.Write( 备注:&rs(remark)&)makepolicy=rs(makepolicy)showans=rs(showans)End Ifdim arrdim arr2,arr3arr=split(makepolicy,chr(9)dim iFor i=1 To ubound(arr)arr2=split(arr(i-1),:)arr3=split(arr2(1),)select case arr2(0)case select selectnum=arr3(0)selectpoint=arr3(1)case ju

13、dge 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)applicationpoint=arr3(1) end select Nextresponse.Write()查找是否已经提交过dim prevquestions,otherans,hasdo,youansArr,thestatehasdo

14、=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)response.Write(otherans& &youansArr(0)end iffunction getYouAns(quizid,quiztype)dim tansfor i=0 to ubound(youansArr) i

15、f 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(youansArr2) if quizid&=left(youansArr2(i),len(quizid&) then getYouAns=mid(youansArr2(i),len(quizid&)+2)response.Write(&left(youan

16、sArr2(i),len(quizid&)&)exit forend ifnextresponse.Write(getYouAns)end functionfunction findArr(arr,num1,ind)在数组中查找 是否有该数字 如果有则返回1dim jfindArr=0response.Write(num :&num1& ind:&ind&)for j=1 to indresponse.Write(arr(j-1)&find )if arr(j-1)=num1 then findArr=1 exit for end ifnextend function 在数据库中查找出来的合理

17、数据的索引号中 随机生成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 findArr(indexs1,rand,i1)=1 如果在数组中没有找到 则跳出循环 说明生成了一个有效的 索引 随机数indexs1(i1-1)=rand 将随机数 赋值给索引数组nextgetRandArr=indexs1 end functio

18、n输出一类题目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)if left(qarr(qi),len(qtype)=qtype thenqids= mid(qarr(qi),len(qtype)+2)response.Write(qids)exit for end ifnextqids= and qid i

19、n (&qids&)quenum=split(qids,)quenum=ubound(quenum)end ifdim sqltestsqltest=select * from quiz where qtype=&qtype& and courseid=&courseid & and levelid=&levelid&qidsrs.Open sqltest If rs.EOF Then response.write sqltest Else dim indexs,i2if cint(rs.RecordCount)=cint(quenum) then indexs=getRandArr(quen

20、um, rs.recordcount)elseresponse.Write(warning:题库中没有足够的题目,需要&quenum&个,题库中只有&rs.recordcount&个)end ifIf rs.eof Then Exit Forif cint(rs.RecordCount)=cint(quenum) then 如果题库中的题目数量少于要求的数量则不随机 直接全部输出outquiz(qpoint/quenum)elseif findArr(indexs,i2,quenum)=1 then 题库中有足够多的题目,则查找数组中是否有该索引值,有则输出该题目outquiz(qpoint/

21、quenum)end ifend ifNext End Ifresponse.Write()end function输出一个题目function outquiz(qpoint)dim qtype,qid,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

22、如果是已经提交过 则处理以前做过的答案youans=getYouAns (qid,qtype)if showans=1 or thestate=已评阅 then如果设定了显示答案 或者 已评阅 则 输出正确答案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(youan

23、s)-Asc(A)end ifend ifend ifresponse.Write()dim checkselect case qtypecase selectdim ansArr1,ansArr2ansArr1=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 check

24、1,check2if youans=1 then check1=checked=checked end ifif youans=0 then check2=checked=checked end ifresponse.Write(   是 不是)case fillspaceresponse.Write(这 是 摆 设)case essayif youans=-1 then youans=答: end ifresponse.Write(&youans&)case applicationif youans=-1 then youans=解: end ifrespons

25、e.Write(&youans&)end select end function% form action=doworkaction.asp?p=&wid= method=post %questions=questions&select:0response.Write(一、选择题:&selectnum&个 分值:&selectpoint&)makequiz select,selectnum,selectpoint% %questions=questions&chr(9)&judge:0response.Write(二、判断题:&judgenum&个 分值:&judgepoint&)makequ

26、iz judge,judgenum,judgepoint% %questions=questions&chr(9)&fillspace:0response.Write(三、填空题:&fillspacenum&个 分值:&fillspacepoint&)makequiz fillspace,fillspacenum,fillspacepoint % %questions=questions&chr(9)&essay:0response.Write(四、简答题:&essaynum&个 分值:&essaypoint&)makequiz essay,essaynum,essaypoint% %ques

27、tions=questions&chr(9)&application:0response.Write(五、应用题:&applicationnum&个 分值:&applicationpoint&)makequiz application,applicationnum ,applicationpoint% input type=hidden name=questions value= / input type=hidden name=cid value= / input type=hidden name=uid value= / %if request.QueryString(p)showans

28、then response.Write( )end if% 九、参考文献1 网络程序设计ASP(第3版)清华大学出版、交通大学,作者:尚俊杰编著,定价:36.00元(含光盘)2 ASP+SQL Server动态开发从基础到实践电子工业出版、作者:世锡、辉编著,定价55.00元(含光盘)十、设计体会通过这次实践,我了解更多的知识,熟悉了一个系统的设计步骤,锻炼了系统设计能力,培养了自己独立设计能力。此次课程设计是对我专业知识和专业基础知识一次实际检验和巩固。课程设计收获很多,学会了查找相关资料,分析数据,提高了自己的编程能力。不仅在专业知识和实践方面,同时,在一个团队中,我深深地体会到团队合作精神的重要,在以后的实践中我也将积极和人交流经验,不断地提高自己各方面的素质。但是也暴露出自己专业基础的很多不足之处。比如缺乏综合应用专业知识的能力,同时本次课程设计由于时间和技术的局限,它也存在网页美化不够,不够人性化等问题,在以后的学习中我将进一步熟悉编程的相关技术。15 / 16

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!