大家好,今天给大家介绍基于C#+asp.net+sqlserver作业提交系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。
文章目录:
项目难度:中等难度
适用场景:相关题目的毕业设计
配套论文字数:9345个字25页
包含内容:整套源码+完整毕业论文
资源文件目录简图如下:

提示:以下为毕业论文的简略介绍,项目源码及完整毕业论文下载地址见文末。
1 引言
1.1 本课题选题背景及目的
省略
开发此系统的目的在于方便教师和学生的互动交流,大大提高学生提交作业,教师批改作业的效率。
1.2 本课题选题意义
本系统有着很好的应用前景,用来代替传统的作业提交方式,实现在线作业提交方式的网络化管理。随着计算机技术和网络技术的发展,它的功能将会得到不断的发展和完善。
1.3 本课题研究思路和方法
本系统的开发要求采用B/S结构,应首先分析用户需求的相关功能后写出需求分析;其次,综合运用以前所学的相关知识(数据结构,C语言等),选择所熟悉的开发工具进行开发(本系统选择了Microsoft Visual Studio .NET 作为开发平台,开发语言选择了C#;数据库采用Microsoft SQL Server ),在设计中以需求分析为基础,写出系统开发计划,实现流程及相关问题的实现方法;同时,在开发设计与实现中,要保存好相关的设计文档。最后,系统开发完毕后,进行调试和试运行,并做好调试和试运行的相关记录。
1.4 本课题预期结果
本设计的预期成果是完成作业提交批改系统的部分功能——作业上传和管理用户,并能够实现作业在线提交功能;作业参考答案的下载;在线实时查看作业批改的情况;用户信息管理(教师用户,学生用户,管理员用户),设置用户的功能和权限。同时,还要求与另一位同学所设计与实现的“作业审阅系统”集成在一起,形成一个真正实用的、功能完善的作业在线提交批改系统。
2 开发平台与语言简介
2.1 .net简介
“.NET 是 Microsoft 的用以创建 XML Web 服务(下一代软件)的平台。该平台将信息、设备和人以一种统一的、个性化的方式联系起来。”
“借助于 .NET 平台,可以创建和使用基于 XML 的应用程序、进程和 Web 站点以及服务,它们之间可以按设计、在任何平台或智能设备上共享和组合信息与功能,以向单位和个人提供定制好的解决方案。”
“.NET 是一个全面的产品家族,它建立在行业标准和 Internet 标准之上,提供开发(工具)、管理(服务器)、使用(构造块服务和智能客户端)以及 XML Web 服务体验(丰富的用户体验)。.NET 将成为今天正在使用的 Microsoft 应用程序、工具和服务器的一部分,同时,新产品不断扩展 XML Web 的服务能力以满足您的所有业务需求。”
.NET为开发人员提供了新的开发平台 (.NET框架) ,新的开发语言(C#) ,新的开发工具 (Visual Studio .NET) ,新的开发方式 (Web Service) ;为普通用户提供了Windows CE、Windows XP、Xbox、Tablet PC、.NET My Services、MSN等产品;为企业提供了bCentral。在未来,最终大多数流行的 Microsoft 软件应用程序——包括 Office 和 Visual Studio .NET——将开始与 XML Web 服务实现交互,并把它们的主要功能作为 XML Web 服务公开,以便其他开发人员可以利用。
2.2 HTML标记语言
HTML的英语意思是:Hypertext Marked Language,即超文本标记语言,是一种用来制作超文本文档的简单标记语言。超文本传输协议规定了浏览器在运行 HTML 文档时所遵循的规则和进行的操作。HTTP协议的制定使浏览器在运行超文本时有了统一的规则和标准。用HTML编写的超文本文档称为HTML文档,它能独立于各种操作系统平台,自1990年以来HTML就一直被用作WWW(是World Wide Web的缩写,也可简写WEB、中文叫做万维网) 的信息表示语言,使用HTML语言描述的文件,需要通过WEB浏览器显示出效果。HTML 是在 SGML 定义下的一个描述性语言,或可说 HTML 是 SGML 的一个应用程式。HTML 不是程式语言,如 C++ 和 Java 之类,它只是标示语言,基本上你只要明白了各种标记的用法便算学懂了HTML,HTML 的格式非常简单,只是由文字及标记组合而成,至于编辑方面,任何文字编辑器都可以,只要能将文件另存成 ASCII 纯文字格式即可,当然以专业的网页编辑软件为佳。
2.3 C# 简介
C#(读作“c-sharp”)作为Microsoft的下一代面向对象的语言产品,能够使开发人员在.NET平台上快速地建立大量的应用程序。按照微软给出的定义,C#是一种源自于C和C++的、简单的、现代的、面向对象的和类型安全的程序设计语言。C#为程序员提供了开发飞速发展的Web应用程序所需的强大而灵活的功能。C#和Java的核心与C++比较有着相同的优势和局限,比起C++,C#将更容易被人们理解和接受,未来大量.NET平台的应用将由C#开发。
2.4 ADO.NET简介
ADO.NET是对Microsoft ActiveX Data Objects (ADO)一个跨时代的改进,它提供了平台互用性和可以伸缩的数据访问。由于传送的数据都是XML格式的,因此任何能够读取XML格式的应用程序都可以进行数据处理。事实上,接受数据的组件不一定要是ADO .NET组件,它可以是基于一个Microsoft Visual Studio的解决方案,也可以是任何运行在其它平台上的任何应用程序。
ADO.NET 提供对 Microsoft SQL Server 等数据源以及通过OLE DB和 XML 公开的数据源的一致访问。数据共享使用者应用程序可以使用 ADO.NET 来连接到这些数据源,并检索、操作和更新数据。在运行时,数据会从数据库中取出并先传给一个中间层业务对象,然后传至用户界面。为了适应这种数据交换,ADO.NET采用了基于XML的持续的传递格式。也就是说,当数据从一个层传向另一个层时,ADO.NET的方案是将内存中的数据(即数据集)表述为XML,然后以XML格式传递给其他组件。
2.5 Microsoft SQL Server 简介
Microsoft SQL Server 是一个高性能的客户端/服务器结构的关系数据库管理系统(RDBMS, Relational Database Management System)。SQL Server 是为了支持高容量的事务处理(比如在线订购录入、存货目录、记帐或制造)以及数据仓库和决策支持系统(比如销售分析应用)而设计的。
2.6 浏览器/服务器模型
B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript…)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。随着Windows 98/Windows 2000将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。显然B/S结构应用程序相对于传统的C/S结构应用程序将是巨大的进步。
3 系统需求分析
3.1 系统业务需求及特点
3.1.1 业务需求
系统要求管理员管理所有的用户信息,添加,删除用户都必须由管理员来完成,管理员可见所有用户的信息。普通用户(学生和教师用户)只能修改自己的信息。学生可以选择不同的教师,能够准确快速的查看已经布置的作业,学生只能看见自己的作业题目和内容,不能抄袭其他学生的作业。在提交作业以后,教师发布成绩和参考答案之后才能查看成绩与答案。管理员不能看到作业情况。
3.1.2 系统特点
性能:安全可靠,实时控制。
输入/输出:英文和汉字输入,英文和汉字输出。
安全与保密要求:不能轻易地被破坏,不能让管理员以外的人添加删除用户信息,对断电、死机、系统崩溃等问题有有力措施以保障数据不受损失。
3.2 用户特点
3.2.1 管理员用户
管理员可以是机房管理员,也可以是某位教师,对计算机技术比较了解,责任心和保密意识强。
3.2.2 学生用户
学校学生有计算机相关专业学生,能很快熟悉系统的使用方法,非计算机专业的学生也能很快学会并掌握使用系统。
3.3 系统业务流程图

图1 系统业务流程图
系统业务流程如图1所示,管理员用户登陆到管理员模块后,可以管理所有用户(包括管理员用户,教师用户,学生用户)的个人信息,通过添加,修改,删除操作来管理用户信息数据。
学生用户登陆到学生模块以后,首先只能查看已经布置的作业,提交自己的作业以后才能进行查看作业成绩和查看教师发布的参考答案的操作。在学生模块里学生可以修改自己的个人信息,但是不能删除自己的信息。
3.4 数据流图
系统数据流图如图2所示,管理员用户负责管理所有用户的个人信息数据,学生用户可以更改自己的用户数据信息。
学生用户必须首先撰写自己的作业,然后才能把撰写好的作业数据提交到作业数据库。在提交作业数据之后,学生用户才能通过作业信息数据库查看教师已经发布的作业成绩数据或作业的参考答案数据。

图2 数据流图
3.5 开发环境
3.6 限制条件
4.2 系统功能体系图
无论是管理员用户还是学生用户,都必须通过登陆进入功能模块,管理员可以管理所有用户的信息,可以对用户信息进行添加,删除和修改操作;学生用户登陆后,可以进行标准答案下载,作业下载提交,作业成绩查询和修改用户资料四种操作。系统功能体系图如图3所示:

图3 系统功能体系图
4.3 数据库设计
4.3.1 数据库E-R图
数据库E-R图如图4所示,管理员和其他实体没有联系,是一个单独的实体,故图中没有画出管理员实体。学生实体和教师实体存在一个多对多的关系,学生和作业内容也存在一个多对多的关系,多个学生提交多份作业。教师和作业题目则是一对多的关系,一位教师可以布置多个作业题目。

图4 数据库E-R图
4.3.2 数据库表


4.3.3 数据库表说明
4.4 管理员模块的设计与实现
4.4.1 用户界面
管理员模块用户界面如图5所示:

图5 管理员模块用户界面
4.4.2 增删改管理员用户
管理员可以添加更多的管理员用户,管理员用户必须由管理员添加,每次当管理员添加管理员用户时系统通过INSERT语句向admin表里插入一行,记录新的管理员用户的用户名,密码。
删除管理员必须由管理员用户来操作,执行删除操作时,系统通过判断admin表中的id字段,使用Delete语句从admin表中删除相对应的行。
当admin表中的行数等于1的时候,则提示“请至少保留一个管理员帐号”。
修改管理员密码必须先登陆管理员界面,在密码栏里输入新密码,系统通过UPDATE语句更新admin表中的admin_pwd字段。
DataTable tempDt=Db.ExecuteToDataSet("Select admin_name From admin where admin_name='"+strTrans.insertTran(adminName.Text)+"'").Tables[0];
if (tempDt.Rows.Count>0)
{
msg.Text = "";
return;
}
b、 添加管理员信息到数据库
Db.ExecuteSql("insert into admin(admin_name,admin_pwd) values('"+strTrans.insertTran(adminName.Text)+"','"+strTrans.insertTran(adminPass.Text)+"')");
Response.Redirect("admin.aspx",true);
}
private void delAdmin()
{
DataSet ds = Db.ExecuteToDataSet("Select Count(*) From admin");
if ( Convert.ToInt32(ds.Tables[0].Rows[0][0]) == 1 )
{
ds.Dispose();
msg.Text = "";
return;
}
ds.Dispose();
Db.ExecuteSql("Delete from admin where id="+Request.QueryString["id"].ToString());
}
Db.ExecuteSql ("Update admin set admin_pwd='"+strTrans.insertTran(adminpass2.Text)+"' Where admin_name='"+strTrans.insertTran(adminname2.Text)+"'");
4.4.3 添加新用户
普通用户(包括教师用户和学生用户)都必须通过管理员添加新的用户。person_info表用来记录普通用户的用户信息(用户名,密码,E-mail,电话,用户类型)。
管理员登陆管理员界面后,点击“添加新用户”,在表单中输入需要添加的用户信息后,点击“提交”按钮,系统通过INSERT语句向person_info表里插入一行,记录该用户的个人信息。
管理员添加用户时,用户id必须是唯一的,因为用户可能会有名字相同的情况,所以系统通过id字段来判断用户的唯一性。
DataSet ds = Db.ExecuteToDataSet("SELECT * from person_info WHERE id="+Convert.ToInt32(txtId.Text.Trim()));
if (ds.Tables[0].Rows.Count == 1 )
{
msg.Text = "";
}
2. 添加用户信息到数据库
string sql = "Insert Into person_info "+
" values ('"+ strTrans.insertTran(txtId.Text) + "',"+
" '"+ strTrans.insertTran(txtName.Text) + "',"+
" '"+ strTrans.insertTran(txtPassword.Text) + "',"+
" '"+strTrans.insertTran(txtMail.Text)+"',"+
" '"+strTrans.insertTran(txtPhone.Text)+"',"+
" '"+ dpl_Class.Items[dpl_Class.SelectedIndex].Value + "'"+
") ";
Db.ExecuteSql(sql);
showMsg("添加成功!\\n请勿刷新页面继续添加");
4.4.4 修改删除普通用户
管理员有权限修改或者删除普通用户的个人信息。
系统首先从数据库中把所有用户的信息绑定到页面上,管理员点击“修改”按钮跳转到修改页面。在文本框输入要修改的用户信息后,点击“修改”按钮,系统通过UPDATE语句更新person_info表中的相应字段。系统再通过用户类别参数来判断返回到教师信息页面还是学生信息页面。
实施删除操作和删除管理员操作相似,使用Delete语句从person_info表中删除相对应的行。
string sql = "update person_info "+" Set name ='"+strTrans.insertTran(txtName.Text)+"',passwd='"+strTrans.insertTran(txtPassword.Text)+"'"+",email='"+strTrans.insertTran(txtMail.Text)+"',phone='"+strTrans.insertTran(txtPhone.Text)+"',role='"+dpl_Class.Items[dpl_Class.SelectedIndex].Value+ "'where number="+Convert.ToInt32(Request.QueryString["id"]).ToString();
Db.ExecuteSql(sql);
showMsg("修改成功!");
Db.ExecuteSql("Delete From person_info where number="+Request.QueryString["id"]);
4.5 学生模块的设计与实现
4.5.1 用户界面
学生模块用户界面如图6所示:

图6 学生用户界面
4.5.2 提交作业
学生登陆后,必须首先选择教师才能查看该教师所布置的作业。学生选择老师以后,系统通过INSERT语句向stusent_teacher表中插入一行,用来记录学生和教师的多对多关系。
点击“作业查看提交”按钮,便可以看到该教师目前所布置的作业列表,调用worklist.aspx页面。系统从teacher_work_info表和person_info表里提取教师姓名字段、作业题目字段和提交时间字段绑定到列表中并显示到页面上。选择任意一个题目,系统将跳转到studentwork.aspx页面,学生在此页面的回答框中输入自己的答案,选择“提交”按钮后,首先判断student_work_info表中是否有重复的作业信息,如果没有,则系统通过INSERT语句向student_work_info表里插入一行,记录该学生的一次作业信息。
string sql1="Insert into student_teacher"+ "values ("+Session["id"]+","+DropDownList2.Items[DropDownList2.SelectedIndex].Value+")";
Db.ExecuteSql(sql1);
2. 学生提交作业
DataSet ds1=Db.ExecuteToDataSet("select * from student_work_info where id="+Int32.Parse(TextId.Text)+" and studentid="+Session["id"]);
if(ds1.Tables[0].Rows.Count ==1)
{
msg.Text="";
ds1.Dispose();
}
else
{
string sql="insert into student_work_info(id,studentid,teacherid,subtime,title,content) VALUES("+Int32.Parse(TextId.Text)+","+Session["id"]+","+tid+",'"+str+"','"+TextTitleCon.Text+"','"+TextAnswer.Text+"')";
Db.ExecuteSql(sql);
msg.Text="";
msg.Text += "";
}
4.5.3 查询作业成绩
学生登陆后,点击“作业成绩查询”按钮,看到的是教师已经批改的作业列表,同样也使用worklist.aspx页面。通过判断一个参数的值来区分列表里的所列的作业是查看未做作业还是查询作业成绩。系统从student_work_info表、teacher_work_info表和person_info表提取教师姓名字段、作业题目字段和提交时间字段绑定到列表中并显示到页面上。系统同样将跳转到studentwork.aspx页面,通过判断一个参数的值来区分所调用的相关函数是否显示教师评语。
if(Session["x"].ToString()=="download")
{
showDownload();
TextRemark.Visible=false;
TextAnswer.Enabled=true;
Button2.Visible=false;//学生下载提交时不显示
}
if(Session["x"].ToString()=="query")
{
showQuery();
Button1.Visible=false;
Button3.Visible=false;//学生查询时不显示
}
private void showQuery()
{
DataSet ds = Db.ExecuteToDataSet("SELECT p.name as name, s.id , s.title,s.content,s.remark,s.grade FROM student_work_info s,person_info p,teacher_work_info t WHERE s.correcttime!='' and s.teacherid=t.teacherid and t.teacherid=p.id and s.id="+Request.Params["id"]);
TextId.Text=Request.Params["id"].ToString();
DataRow tempRow = ds.Tables[0].Rows[0];
TextTeacher.Text=tempRow["name"].ToString();
TextStudent.Text=Session["name"].ToString();
TextTitleCon.Text=tempRow["title"].ToString();
TextAnswer.Text=tempRow["content"].ToString();
TextRemark.Text=tempRow["remark"].ToString();
DropDownListGrade.SelectedIndex=Int32.Parse(tempRow["grade"].ToString());
ds.Dispose();
TextId.Enabled=false;
TextTeacher.Enabled=false;
TextStudent.Enabled=false;
TextTitleCon.Enabled=false;
TextAnswer.Enabled=false;
TextRemark.Enabled=false;
DropDownListGrade.Enabled=false;
}
4.5.4 查看标准答案
学生登陆后,点击“标准答案查看”按钮,跳转到answerlist.aspx页面,便可以看到该教师目前已发布标准答案的作业列表,系统从student_work_info表、person_info表和teacher_work_info 表提取教师姓名字段、作业题目字段和提交时间字段绑定到列表中并显示到页面上。选择任意一个题目,系统将跳转到teacher.aspx页面,通过判断一个参数的值来区分是否是学生用户访问此页面。如果是学生用户,则只能查看此页面。
if(Session["role"].ToString()=="1")
BindSelectedData();
if(Session["role"].ToString()=="2")
showAnswer();
private void showAnswer()
{
DataSet ds = Db.ExecuteToDataSet("select p.name,t.title,t.content,t.answer from person_info p,teacher_work_info t WHERE t.id='"+Request.Params["id"]+"' and t.teacherid=p.id");
DataRow tempRow = ds.Tables[0].Rows[0];
TextId.Text=Request.Params["id"];
TextTeacher.Text=tempRow["name"].ToString();
TextName.Text=tempRow["title"].ToString();
TextTitleCon.Text=tempRow["content"].ToString();
TextAnswerCon.Text=tempRow["answer"].ToString();
TextId.Enabled=false;
TextTeacher.Enabled=false;
TextName.Enabled=false;
TextTitleCon.Enabled=false;
TextAnswerCon.Enabled=false;
ButtonCommit.Visible=false;
}
4.5.5 普通用户修改资料
普通用户登陆到系统后可以通过点击“修改用户资料”按钮来修改自己的个人信息。系统通过判断用户唯一的ID号,把相关信息显示到页面上。同管理员修改用户信息的原理一样,在文本框中输入要修改的用户信息后,点击“修改”按钮,系统通过UPDATE语句更新person_info表中的相应字段。
string sql = "update person_info "+" Set passwd='"+textPasswd.Text+"',name='"+strTrans.insertTran(textName.Text)+"' "+" ,phone='"+strTrans.insertTran(textPhone.Text)+" ',email='"+strTrans.insertTran(textEmail.Text)+"' where id='"+Session["id"].ToString()+"'";
Db.ExecuteSql(sql);
5 系统测试与测试结论
5.1 管理员模块测试
5.1.1 测试方法
结 论
省略
参考文献
[1] (美)莱特(Wright,C.),胡俊哲,英宇.C#编程技术与技巧[M].北京:机械工业出版社,2002.9。
[2] 方睿,刁仁宏,吴四九. 网络数据库原理及应用[M].成都:四川大学出版社,2005.8。
[3] (美) Jason Beres,袁鹏飞.21天学通Visual Studio .NET 2003[M].北京:人民邮电出版社,2003。
[4] 张海藩.软件工程导论[M].北京:清华大学出版社,2003年12月第4版。
[5] 吉根林,崔海源.ASP.NET程序设计教程[M].北京:电子工业出版社,2005.7。
[6] (美)Chris Ullman, Chris Goode,康博.ASP.NET入门经典[M].北京:清华大学出版社,2002.5。
[7] (美)Kris Jamsa,Konrad King,Andy Anderson,吴悦,吴冲华.北京:HTML & Web设计技术与技巧[M].机械工业出版社,
致 谢
省略
本项目源码及完整论文如下,有需要的朋友可以点击进行下载
| 序号 | 毕业设计全套资源(点击下载) |
|---|---|
| 本项目源码 | 基于C#+asp.net+sqlserver作业提交系统设计与实现(源码+文档)C#.net_BS架构_作业提交系统.zip |