免费作业提交系统软件工程实验报告.docx
《免费作业提交系统软件工程实验报告.docx》由会员分享,可在线阅读,更多相关《免费作业提交系统软件工程实验报告.docx(32页珍藏版)》请在冰豆网上搜索。
免费作业提交系统软件工程实验报告
软件工程实验报告
题目:
作业提交系统
学院:
计算机科学与技术学院
专业:
计算机科学与技术
队名:
小组成员:
指导教师:
完成日期:
成绩:
摘要
作业提交系统2.0是基于b/s结构,在IIS平台上使用ASP与MicrosoftSQL2000开发的,主要目的是解决学校机房管理上机作业的问题。
因为传统的对学生作业管理是在服务器上建立一个FTP服务器,然后对学生用户设置一个专门的帐号,只允许对作业进行上传,然后学生将作业上传到服务器里对应的班级文件夹下面,传统方式无法解决的问题有:
不能防止学生乱上传作业,不能防止学生找错班级文件夹,不能对作业进行限制如大小,类型,上传时间等,教师布置作业要通过黑板写字,教师打分之后只能记在本子上,不能通过局域网发布出来让学生看,教师下载作业必须到服务器上拷贝。
而这套系统正是出于这个目的,为了解决上面的问题而设计的。
系统对于复杂的问题都采用程序的方式解决了。
系统分了管理员、教师、学生用户,管理员须要的操作只是添加专业,添加班级,添加管理员或教师用户都是通过网页的形式展示出来。
而教师无须向以前那样,只需要发布作业,对作业的要求进行限制,不必去服务器上建文件夹来存放你的作业,并且程序自动创建目录。
下载作业也只须要点一下就会将作业全部打包下载回来,在局域网内的任何一台计算机都可以进行各种操作。
学生则再也不会将作业上传错,上传到别的班级中,也不允许上传非法的文件,对一次未上传完成的作业也可以先上传后下节课再下载回来接着做。
系统用程序的方式解决了那些非常复杂的操作,比如对文件夹的创建等,所有的角色只需要简单的几步操作就可以完成,非常简单实用。
第一章绪论
1.1问题定义
解决传统的FTP服务器不能够满足作业上传的要求下:
1.教师发布作业必须到服务器上建立文件夹
2.教师发布作业由在黑板上写的形式改为在网页上写再发布
3.教师不能对作业进行限制如大小,类型,过期时间
4.教师下载作业的必须到服务器去下载改为在局域网内任何一台计算机都可以下载
5.教师无法发布成绩改为通过网页发布成绩
6.学生一次未完成的作业可以先上传再下载,完成之后再上传。
7.学生上传作业只须点一个按钮,无须选择要上传的目录
1.2小组成员分工
在系统的四人开发小组中,每个人都有各自的模块,分工协作,具体有模块设计、代码实现、软件测试、编写文档,各分担一项。
第二章开发环境
2.1VisualStudio2005概述
VisualStudio.2008是.NET平台下最为强大的开发工具,无论是软件服务商,还是企业应用程序的部署与发布,VisualStudio.NET都可以提供近乎完美的解决方案。
VisuaStudio.2008提供了包括设计、编码、编译调试、数据库连接操作等基本功能和基于开放架构的服务器组件开发平台、企业开发工具和应用程序重新发布工具以及性能评测报告等高级功能。
2.2C#简介
C#是一种先进,面向对象的语言,通过C#可以让开发人员快速的建立大范围的基于MS网络平台的应用,并且提供大量的开发工具和服务帮助开发人员开发基于计算和通信的各种应用。
由于C#是一种面向对象的开发语言,所以C#可以大范围的适用于高层商业应用和底层系统的开发。
即使是通过简单的C#构造也可以使各种组件方便的转变为基于WEB的应用,并且能够通过Internet被各种系统或是其他开发语言所开发的应用程序调用。
2.3ASP简介
ASP是ActiveServerPage的缩写,意为“动态服务器页面”。
ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。
ASP的网页文件的格式是.asp,现在常用于各种动态网站中。
ASP是一种服务器端脚本编写环境,可以用来创建和运行动态网页或Web应用程序。
ASP网页可以包含HTML标记、普通文本、脚本命令以及COM组件等。
利用ASP可以向网页中添加交互式内容(如在线表单),也可以创建使用HTML网页作为用户界面的web应用程序。
2.4ServerSQLMicrosoft简介
MicrosoftSQLServer2008是一个高性能的客户端/服务器结构的关系数据库管理系统(RDBMS,RelationalDatabaseManagementSystem)。
SQLServer2008是为了支持高容量的事务处理(比如在线订购录入、存货目录、记帐或制造)以及数据仓库和决策支持系统(比如销售分析应用)而设计的。
它运行在MicrosoftWindowsNT4或MicrosoftWindows20008Server上——基于intel处理器的网络。
可以把SQLServer2008作为一种个人桌面数据库系统安装在运行WindowNTWorkstation4、Windows2008Professional、Windows98和WindowsMillenniumEdition(Me)的机器上。
第三章需求分析
3.1可行性分析
系统是基于b/s结构,在IIS平台上使用ASP与MicrosoftSQL2008开发的,主要使用本地计算机进行测试和使用,完全可以运行。
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.NETFramework1.1
2.要求系统支持MicrosoftSQLServer数据库
<>限制条件
1.教师不可以进入管理员页面,还有学生页面;
2.管理员也不可以进行学生和教师页面;
3.每个学生登录进入之后只能看到自己班级的作业,不可以看到别的班级的作业;
4.每个教师登录只对自己发布的作业进行管理不可以对别的教师发布的作业进行管理;
5.当学生注册时输入的学号必需与选定的班级匹配;
6.不同的用户使用修改密码都只能修改自己的密码,无法修改他人的;
7.不同的用户使用个人数据功能时也是只可以看到自己的信息不可以看到他们的信息;
8.学生上传作业的类型,大小,时间等,受到教师发布作业的约束。
<>数据流图
总数据图:
细化后数据流图:
<>数据字典
<>E-R图
第四章系统设计
4.1总体设计
4.1.1系统功能体系图
4.1.2系统设计的基本原则
本系统的目标是在Internet/Intranet上来实现网上作业提交,可以实现学生在线提交作业的无纸化管理,可以有效利用校园网的软硬件资源,使其发挥最大效力,更好的为学校的教学、科研、管理服务,随时随地的可以让学生联机操作提交。
系统采用了模块化的设计方法:
选择了面向对象的、易于扩展的ASP编程语言环境使用Microsoftserver2008做为数据库平台。
本系统整体上可划分为若干个功能模块。
系统安全可靠也是一个重要的设计原则。
本系统的配置是采用WindowsXP作为网络操作系统,Microsoftserver2008作为数据库服务器。
所以操作系统WindowsXP的安全防护机制及数据库Microsoftserver2008的安全机制是本系统采用的安全防护方式。
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;
}
functionswitchSysBar(){
if(switchPoint.innerHTML=='<'){
switchPoint.innerHTML='>'
document.getElementById("frmTitle").style.display="none";
}
else{
switchPoint.innerHTML='<'
document.getElementById("frmTitle").style.display="block";
}
}
functionchangeMainFrameSrc(url){
//alert(url);
document.getElementById("mainFrame").src=url;
}
|
class=switchbarfont>
id=switchPointclass=navPointtitle=关闭/打开左栏><
屏幕切换
|
100%">src="login.aspx""frameBorder=0name=mainFrame
scrolling=yes>
if(window.screen.width<'1024'){switchSysBar()}
5.4管理员添加用户界面及编码
protectedvoidb_register_Click(objectsender,EventArgse)
{
stringuser="";
stringscmd="";
if(r_admin.Checked==true)
{
user="admin";
scmd=string.Format("insertintoadmin(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());
}
elseif(r_student.Checked==true)
{
user="student";
scmd=string.Format("insertintostudent(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("insertintoteacher(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(""));
}
elseif(t_name.Text.ToString()=="")
{
Page.ClientScript.RegisterStartupScript(Page.GetType(),"",string.Format(""));
}
else
{
stringsconn=@"server=(local)\SQLEXPRESS;database=homework;Trusted_Connection=True";
SqlConnectionconn=newSqlConnection(sconn);
conn.Open();
SqlCommandcmd=newSqlCommand(scmd,conn);
cmd.ExecuteNonQuery();
conn.Close();
Page.ClientScript.RegisterStartupScript(Page.GetType(),"",string.Format(""));
Response.Redirect("admin.aspx");
}
5.5教师发布修改作业界面及编码
protectedvoidPage_Load(objectsender,EventArgse)
{
if(Session["username"]==null)
{
Response.Redirect("menus.htm");
}
else{teachername=Session["username"].ToString();
SetBind();}
}
privatevoidSetBind()
{
DataSetds=newDataSet();
stringsconn=@"server=(local)\SQLEXPRESS;database=homework;Trusted_Connection=True";
SqlConnectionconn=newSqlConnection(sconn);
SqlDataAdapterda=newSqlDataAdapter(string.Format("selectID,title,num,contenfromworkwhereteaname='{0}'",teachername),conn);
da.Fill(ds);
GridView1.DataSource=ds;
GridView1.DataBind();
conn.Close();
}
protectedvoidb_addhomework_Click(objectsender,EventArgse)
{
stringpath=string.Format("/work/{0}",t_addhomework.Text.ToString());//目录在E盘
if(!
Directory.Exists(path))
{
stringsconn=@"server=(local)\SQLEXPRESS;database=homework;Trusted_Connection=True";
SqlConnectionconn=newSqlConnection(sconn);
conn.Open();
stringscmd=string.Format("insertwork(title,teaname,num,conten)values('{0}','{1}','0','{2}')",t_addhomework.Text.ToString(),teachername,TextBox1.Text.ToString());
SqlCommandcmd=newSqlCommand(scmd,conn);
cmd.ExecuteNonQuery();
conn.Close();
Directory.CreateDirectory(path);
Page.ClientScript.RegisterStartupScript(Page.GetType(),"",string.Format(""));
}
else
{
Page.ClientScript.RegisterStartupScript(Page.GetType(),"",string.Format(""));
}
}
protectedvoidGridView1_RowCommand(objectsender,GridViewCommandEventArgse)
{
if(e.CommandName=="Select")
{
intiIndex=Convert.ToInt16(e.CommandArgument);
stringtitle=GridView1.DataKeys[iIndex].Value.ToString();
Response.Redirect(string.Format("showwork.aspx?
title={0}",title));
}
}
protectedvoidGridView1_RowDeletin