软件工程实验报告-作业提交系统软件工程实验报告.doc_第1页
软件工程实验报告-作业提交系统软件工程实验报告.doc_第2页
软件工程实验报告-作业提交系统软件工程实验报告.doc_第3页
软件工程实验报告-作业提交系统软件工程实验报告.doc_第4页
软件工程实验报告-作业提交系统软件工程实验报告.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

免 费 下 载软件工程实验报告题目:作业提交系统学院:计算机科学与技术学院专业:计算机科学与技术队名:小组成员:指导教师:完成日期:成绩:摘要作业提交系统2.0是基于b/s结构,在iis平台上使用asp与microsoft sql 2000开发的,主要目的是解决学校机房管理上机作业的问题。因为传统的对学生作业管理是在服务器上建立一个ftp服务器,然后对学生用户设置一个专门的帐号,只允许对作业进行上传,然后学生将作业上传到服务器里对应的班级文件夹下面,传统方式无法解决的问题有:不能防止学生乱上传作业,不能防止学生找错班级文件夹,不能对作业进行限制如大小,类型,上传时间等,教师布置作业要通过黑板写字,教师打分之后只能记在本子上,不能通过局域网发布出来让学生看,教师下载作业必须到服务器上拷贝。而这套系统正是出于这个目的,为了解决上面的问题而设计的。系统对于复杂的问题都采用程序的方式解决了。系统分了管理员、教师、学生用户,管理员须要的操作只是添加专业,添加班级,添加管理员或教师用户都是通过网页的形式展示出来。而教师无须向以前那样,只需要发布作业,对作业的要求进行限制,不必去服务器上建文件夹来存放你的作业,并且程序自动创建目录。下载作业也只须要点一下就会将作业全部打包下载回来,在局域网内的任何一台计算机都可以进行各种操作。学生则再也不会将作业上传错,上传到别的班级中,也不允许上传非法的文件,对一次未上传完成的作业也可以先上传后下节课再下载回来接着做。系统用程序的方式解决了那些非常复杂的操作,比如对文件夹的创建等,所有的角色只需要简单的几步操作就可以完成,非常简单实用。第一章 绪论1.1 问题定义解决传统的ftp服务器不能够满足作业上传的要求下:1教师发布作业必须到服务器上建立文件夹2教师发布作业由在黑板上写的形式改为在网页上写再发布3教师不能对作业进行限制如大小,类型,过期时间4教师下载作业的必须到服务器去下载改为在局域网内任何一台计算机都可以下载5教师无法发布成绩改为通过网页发布成绩6学生一次未完成的作业可以先上传再下载,完成之后再上传。7学生上传作业只须点一个按钮,无须选择要上传的目录1.2 小组成员分工在系统的四人开发小组中,每个人都有各自的模块,分工协作,具体有模块设计、代码实现、软件测试、编写文档,各分担一项。第二章 开发环境2.1 visual studio 2005概述visual studio.2008是.net平台下最为强大的开发工具,无论是软件服务商,还是企业应用程序的部署与发布,visual studio.net都可以提供近乎完美的解决方案。visuastudio.2008提供了包括设计、编码、编译调试、数据库连接操作等基本功能和基于开放架构的服务器组件开发平台、企业开发工具和应用程序重新发布工具以及性能评测报告等高级功能。2.2 c# 简介c#是一种先进,面向对象的语言,通过c#可以让开发人员快速的建立大范围的基于ms网络平台的应用,并且提供大量的开发工具和服务帮助开发人员开发基于计算和通信的各种应用。由于c#是一种面向对象的开发语言,所以c#可以大范围的适用于高层商业应用和底层系统的开发。即使是通过简单的c#构造也可以使各种组件方便的转变为基于web的应用,并且能够通过internet被各种系统或是其他开发语言所开发的应用程序调用。2.3 asp简介 asp是active server page的缩写,意为“动态服务器页面”。asp是微软公司开发的代替cgi脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。asp的网页文件的格式是.asp,现在常用于各种动态网站中。 asp是一种服务器端脚本编写环境,可以用来创建和运行动态网页或web应用程序。asp网页可以包含html标记、普通文本、脚本命令以及com组件等。利用asp可以向网页中添加交互式内容(如在线表单),也可以创建使用html网页作为用户界面的web应用程序。2.4 server sql microsoft简介microsoft sql server 2008是一个高性能的客户端/服务器结构的关系数据库管理系统(rdbms,relational database management system)。sql server 2008是为了支持高容量的事务处理(比如在线订购录入、存货目录、记帐或制造)以及数据仓库和决策支持系统(比如销售分析应用)而设计的。它运行在microsoft windows nt4或microsoft windows 20008 server上基于intel处理器的网络。可以把sql server 2008作为一种个人桌面数据库系统安装在运行window nt workstation 4、windows 2008 professional、windows98和windows millennium edition(me)的机器上。第三章 需求分析3.1 可行性分析系统是基于b/s结构,在iis平台上使用asp与microsoft sql 2008开发的,主要使用本地计算机进行测试和使用,完全可以运行。3.2 产品需求规格说明 目标解决学生上传作业问题,教师可以将新作业传到该系统上,也可以在次系统上下载学生上传的作业,并将成绩上传供学生查看。 用户的特点用户是机房管理员,对计算机技术比较了解,学校教师专业教师能很快熟悉系统的使用方法,非专业教师也能很快掌握,学校学生能很快学会使用系统。 基本功能1不同用户登录进入不同的界面2学生作业的查看3学生作业成绩的查看4学生作业上传5教师布置作业6教师删除作业7教师修改作业8教师发布成绩9教师修改成绩10教师下载作业11管理员添加教师用户12管理员添加学生用户13个人资料的查看14个人密码的修改 假定与约束 1如果压缩文件夹的功能不能解决,那么只有教师到服务器拷贝文件夹 2如果学校觉得系统不能满足学生作业上传的需要,那么将不能放在机房,供学生使用 3如果遇到一些技术问题无法解决,那么将会加大系统的开发周期 4如果此系统在离开学期之前都无法开发成功,那么也不能提供给机房使用5不同用户登录进入不同的界面6管理员添加教师用户7管理员添加学生用户8个人资料的查看9个人密码的修改 对性能的规定 1要求系统支持microsoft .net framework 1.1 2要求系统支持microsoft sql server数据库 限制条件1教师不可以进入管理员页面,还有学生页面;2管理员也不可以进行学生和教师页面;3每个学生登录进入之后只能看到自己班级的作业,不可以看到别的班级的作业;4每个教师登录只对自己发布的作业进行管理不可以对别的教师发布的作业进行管理;5当学生注册时输入的学号必需与选定的班级匹配;6不同的用户使用修改密码都只能修改自己的密码,无法修改他人的;7不同的用户使用个人数据功能时也是只可以看到自己的信息不可以看到他们的信息;8学生上传作业的类型,大小,时间等,受到教师发布作业的约束。 数据流图总数据图: 细化后数据流图: 数据字典名字:教师开课信息别名:描述:教师开的教学课程和网络课程定义:信息=教师信息+开课班级信息位置:网络硬盘名字:学生选课信息别名:描述:学生选了某一门课程才能登陆到该课程班级定义:信息=学生信息+教师信息+开课班级信息位置:网络硬盘 名字:成绩别名:分数描述:学生作业批改的结果供学生和学校参考定义:成绩=0数字100 位置:网络硬盘 e-r图第四章 系统设计4.1 总体设计作业提交系统注册登录密码找回学生用户登录教师用户登录管理员用户登录查看成绩打包下载作业发布修改作业添加班级添加用户数据库管理上传作业下载作业查看作业发布修改成绩删除作业添加专业通用模板修改密码查看个人资料注销系统 4.1.1 系统功能体系图4.1.2 系统设计的基本原则 本系统的目标是在internet/intranet上来实现网上作业提交,可以实现学生在线提交作业的无纸化管理,可以有效利用校园网的软硬件资源,使其发挥最大效力,更好的为学校的教学、科研、管理服务,随时随地的可以让学生联机操作提交。系统采用了模块化的设计方法:选择了面向对象的、易于扩展的asp编程语言环境使用microsoft server 2008做为数据库平台。本系统整体上可划分为若干个功能模块。系统安全可靠也是一个重要的设计原则。本系统的配置是采用windowsxp作为网络操作系统, microsoft server 2008作为数据库服务器。所以操作系统windowsxp的安全防护机制及数据库microsoft server 2008的安全机制是本系统采用的安全防护方式。4.1.3 功能模块设计 在线作业提交批改系统从功能上可分为教师管理程序、学生管理程序和管理员管理程序,教师管理程序部分主要实现学生信息的添加、所交班级信息的添加 、课程信息的添加、上传下载作业和评定成绩的管理,学生管理程序部分主要实现了学生对作业的下载和上传。管理员具有系统的完全权限,管理员具有添加和删除教师的权限。系统主要功能模块具体描述如下: 学生模块 主要包括学生管理,主要功能:查看教师布置的作业,并下载作业,完成作业后提交到服务器,以及修改学生自己的基本情况等。 教师模块 主要包括搜索作业模块,布置作业模块,管理作业模块,查看成绩模块,统计作业递交情况模块,修改资料模块。搜索作业模块,主要功能:搜索教师自己所布置的作业学生递交情况。 布置作业模块 主要功能:教师编辑所布置的作业,向学生发布作业,以及指明是否允许学生上传作业。 管理作业模块 主要功能:下载作业,评阅作业,给学生打分,以及删除本次作业。 修改资料模块 主要功能:修改教师自己的基本信息情况。 管理员模块 主要包括教师管理,学生管理,系统配置管理,主要功能:增加,修改,删除教师用户,配置系统参数,配置上传文件类型。4.2 数据库设计4.2.1 数据库图4.2.2 数据库的约束与关系管理员表与其它表无关系只是为了存放管理员的帐号与密码等数据教师表里的id字段为主键用于存放老师的id学生表与教师表之间存在着外键约束,如果学生表里教师代号字段的值与教师表里面的学号代号值关键。作业表也是最重要的一个表它同时与二个表存在着外键约束,teaname字段与教师的代号之间相关联。4.3 特殊功能的原理4.3.1 管理员添加教师管理员的原理管理员可以添加教师用户,教师用户必须由管理员添加,每次当管理员添加教师用户时就会在网站目录下的一个专门用于存放上传作业的目录(up)的根目录下以教师的姓名为目录名新建一个根目录。用于教师布置作业之后,学生上传作业的存放目录。4.3.2 教师发布修改作业的原理老师发布作业之后可以修改作业,而且二个功能都是使用的一个界面来完成,通过传递的一个参数来判断用户的操作是发布作业还是修改作业,如果是修改作业而取得一个id值将数据库里的内容绑定到用户界面。4.3.3 教师发布修改成绩的原理 教师发布成绩或修改成绩的原理和教师发布修改作业的原理大至一样,都是使用一个页面来完成的,通过一个参数来判断用户的操作是发布还是修改。4.3.4 教师批量下载作业的原理 教师批量下载作业是将学生上传后的作业全部打包成一个zip的压缩文件,然后从服务器上下载。4.3.5 学生上传下载作业的原理 学生上传作业的时候,首先应该选择上传哪个教师哪一次的作业。第五章 主要功能模块界面及编码实现5.1 系统运行资源管理图5.2 登录界面及编码屏幕切换编码: if (self != top) top.location = self.location; function switchsysbar() if (switchpoint.innerhtml = <) switchpoint.innerhtml = > document.getelementbyid(frmtitle).style.display = none; else switchpoint.innerhtml = < document.getelementbyid(frmtitle).style.display = block; function changemainframesrc(url) /alert(url); document.getelementbyid(mainframe).src = url; < 屏幕切换 if (window.screen.width 1024) switchsysbar() 5.4 管理员添加用户界面及编码protected void b_register_click(object sender, eventargs e) string user = ; string scmd=; if (r_admin.checked = true) user = admin; scmd = string.format(insert into admin(username,adminid,password,name) values (0,1,2,3);,t_username.text.tostring(),t_id.text.tostring(),t_id.text.tostring(),t_name.text.tostring(); else if (r_student.checked = true) user = student; scmd = string.format(insert into student(username,stuid,password,stuname,sex,grade,class) values (0,1,2,3,4,5,6);,t_username.text.tostring(), t_id.text.tostring(), t_id.text.tostring(), t_name.text.tostring(),t_sex.text.tostring(), t_grade.text.tostring(), t_class.text.tostring(); else user = teacher; scmd = string.format(insert into teacher(username,teaid,password,teaname,sex,fuction) values (0,1,2,3,4,5);,t_username.text.tostring(), t_id.text.tostring(), t_id.text.tostring(),t_name.text.tostring(),t_sex.text.tostring(), t_fuction.text.tostring(); if (t_id.text.tostring() = ) page.clientscript.registerstartupscript(page.gettype(), , string.format(alert(请输入用户名!);); else if (t_name.text.tostring() = ) page.clientscript.registerstartupscript(page.gettype(), , string.format(alert(请输入姓名!);); else string sconn = server=(local)sqlexpress;database=homework;trusted_connection=true; sqlconnection conn = new sqlconnection(sconn); conn.open(); sqlcommand cmd = new sqlcommand(scmd, conn); cmd.executenonquery(); conn.close(); page.clientscript.registerstartupscript(page.gettype(), , string.format(alert(添加成功!);); response.redirect(admin.aspx); 5.5 教师发布修改作业界面及编码protected void page_load(object sender, eventargs e) if (sessionusername = null) response.redirect(menus.htm); else teachername = sessionusername.tostring(); setbind(); private void setbind() dataset ds = new dataset(); string sconn = server=(local)sqlexpress;database=homework;trusted_connection=true; sqlconnection conn = new sqlconnection(sconn); sqldataadapter da = new sqldataadapter(string.format(select id,title,num,conten from work where teaname=0, teachername), conn); da.fill(ds); gridview1.datasource = ds; gridview1.databind(); conn.close(); protected void b_addhomework_click(object sender, eventargs e) string path = string.format(/work/0,t_addhomework.text.tostring();/目录在e盘 if (!directory.exists(path) string sconn = server=(local)sqlexpress;database=homework;trusted_connection=true; sqlconnection conn = new sqlconnection(sconn); conn.open(); string scmd=string.format(insert work(title,teaname,num,conten) values(0,1,0,2),t_addhomework.text.tostring(),teachername,textbox1.text.tostring(); sqlcommand cmd = new sqlcommand(scmd,conn); cmd.executenonquery(); conn.close(); directory.createdirectory(path); page.clientscript.registerstartupscript(page.gettype(), , string.format(alert(添加成功!);); else page.clientscript.registerstartupscript(page.gettype(), , string.format(alert(已经有该作业文档,请重新命名!);); protected void gridview1_rowcommand(object sender, gridviewcommandeventargs e) if (e.commandname = select) int iindex = convert.toint16(e.commandargument); string title = gridview1.datakeysiindex.value.tostring(); response.redirect(string.format(showwork.aspx?title=0, title); protected void gridview1_rowdeleting(object sender, gridviewdeleteeventargs e) int iindex = convert.toint16(e.rowindex); string id = gridview1.datakeysiindex.value.tostring(); string sconn = server=(local)sqlexpress;database=homework;trusted_connection=true; sqlconnection conn = new sqlconnection(sconn); string scmd = string.format(delete from work where title=0,id); conn.open(); sqlcommand cmd = new sqlcommand(scmd, conn); cmd.executenonquery(); conn.close(); setbind(); page.clientscript.registerstartupscript(page.gettype(), , string.format(alert(删除成功!););5.6 教师批量下载作业界面及编码protectedvoidbutton2_click(objectsender,eventargse)hello();stringstrtxtpath=strfileuploadpath;stringstrzippath=strfileuploadpath+free.zip;system.diagnostics.processprocess1=newsystem.diagnostics.process();process1.startinfo.filename=winrar.exe;process1.startinfo.createnowindow=true;/压缩c:freezipfree.txt(即文件夹及其下文件freezipfree.txt)/到c:freezipfree.rar/strzippath=c:freezipfree;/设置压缩方式为.zipprocess1.startinfo.arguments=a-afzip+strzippath+strtxtpath;/3process1.start();if(process1.hasexited)intiexitcode=process1.exitcode;if(iexitcode=0)response.write(iexitcode.tostring()+正常完成);elseresponse.write(iexitcode.tostring()+有错完成);5.7 学生上传作业界面及编码privatevoidhello()strfileuploadpath=string.format(d:work0,title);stringid=request.querystringid.tostring();sqlconnectionconn=newsqlconnection(server=(local)sqlexpress;database=homework;trusted_connection=true);conn.open();sqlcommandcmd=newsqlcommand(string.format(select*fromworkwhereid=0,id),conn);sqldatareaderread=cmd.executereader();read.read();teacher=readteaname.tostring();title=readtitle.tostring();conn.close();privatevoidinitfilelist()hello();strfileuploadpath=string.format(d:work0,title);/组合成物理路径file:/d:homeworkpic/stringstrfilepath=server.mappath(strfileuploadpath);/读取文件夹下所有文件fileinfoarrfiles=newdirectoryinfo(strfileuploadpath).getfiles();/把文件名逐一添加到列表框控件控件foreach(fileinfofiinarrfiles)lb_filelist.items.add(fi.name);privatevoidinituploadlimit()/从config中读取上传文件类型限制并根据逗号分割成字符串数组stringarrfiletypelimit=configurationmanager.appsettingsfiletypelimit.tostring().split(,);/从config中读取上传文件大小限制doubleifilesizelimit=convert.toint32(configurationmanager.appsettingsfilesizelimit);/遍历字符串数组把所有项加入项目编号控件for(inti=0;iarrfiletypelimit.length;i+)bl_filetypelimit.items.add(arrfiletypelimiti.tostring();/把文件大小限制赋值给标签lab_filesizelimit.text=string.format(0:f2m,ifilesizelimit/1024);hello();strfileuploadpath=string.format(d:work0,title);intitemno=(int16)(lb_filelist.items.count-1);dolistitemitem;item=lb_filelist.itemsitemno;if(lb_filelist.itemsitemno.selected)stringstrfilename=lb_filelist.selectedvalue;/组合成物理路径stringstrfilephysicalpath=strfileuploadpath+strfilename;response.clear();response.contenttype=application/octet-stream;response.addheader(content-disposition,attachment;filename=+httputility.urlencode(strfilename,system.text.encoding.utf8);response.writefile(strfilephysicalpath);response.end();5.8 数据库类编码hello();/判断用户是否选择了文件if(fileupload.hasfile)/调用自定义方法判断文件类型是否符合要求if(isallowablefiletype()/调用自定义方法判断文件大小是否符合要求if(isallowablefilesize()if(fileupload.hasfile)strfileuploadpath=string.format(d:work0,title);stringfilename=fileupload.filename;stringfilenewname=sessionid.tostring();stringfileext=path.getextension(filename);stringstrfilename=server.mappath(filenewname+fileext);fileupload.saveas(strfileuploadpath+filenewname+fileext);sqlconnectionconn=newsqlconnection(server=(local)sqlexpress;database=homework;trusted_connection=true);conn.open();sqlcommandcmd1=newsqlcommand(string.format(select*fromstudentwhereusername=0,sessionusername.tostring(),conn);sqldatareaderread1=cmd1.executereader();read1.read();stringstuid=read1stuid.tostring();stringstuname=read1stuname.tostring();read1.close();sqlcommandcmd2=newsqlcommand(string.format(select*fromteacherwhereteaname=0,teacher),conn);sqldatareaderread2=cmd2.executereader();read2.read();stringteaid=read2teaid.tostring();stringteaname=read2teaname.tostring();read2.close();sqlcommandcmd3=newsqlcommand(string.format(insertintohomework(title,stuname,teaname,stuid,teaid,mark)values(0,1,2,3,4,0),title,stuname,teaname,stuid,teaid),conn);cmd3.executenonquery();conn.close();lb_filelist.items.add(filenewname+fileext);/更新文件夹信息initfolderinfo();/调用自定义方法显示提示showmessagebox(文件成功上传);else/调用自定义方法显示提示showmessagebox(文件大小不符合要求,请参看上传限制);else/调用自定义方法显示提示showmess

温馨提示

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

评论

0/150

提交评论