#+
ASP.NET动态网页制作
实
训
报
告
课程名称:
ASP.NET动态网页制作实训报告
姓 名:
潘 欣
班 级:
网 11
学 号:
10503101127
指导教师:
梁 玲
2012 年 6 月 20 日
一、 前言
ASP是一种使嵌入网页中的脚本可又英特网服务器执行的的服务器的脚本技术,随着它的发展开出ASP.NET成为开发网站的热门工具,因此学校开设了ASP.NET动态网页技术,这一实用性的课程,我们挺高好好利用实习的机会对它进行深入研究。
二、实习概况
实习科目:ASP.NET动态网页制作实训 实习地点:机房
实习时间:2012年6月11日—2012年6月22日
二、 实习目的
通过制作在线考试系统,使同学们能够熟悉ASP.NET动态网页制作的开发过程,能够综合应用各种ASP.NET控件及技术,最终完成具备基本功能的在线考试系统,提高同学们的综合操作能力。
四.实训要求
在线考试系统实现以下功能: 1、在线考试系统解决学生随机选择试卷、显示试卷、答卷、保存答案的问题。2、在线考试系统解决计算机直接判分的问题。3、在线考试系统能够对管理员、教师试题库、个人信息等的管理
五、系统需求分析
(1)总体设计
本系统的用户可分为管理员,学生两类。考虑到系统的安全性,本系统共分成两个部分:一个部分用于管理员登录,主要负责进行对题库、试卷、成绩的管理以及查询等;另一个部分用于考生登录,参加考试,查询成绩。
(2)系统结构图
在线考试系统
管理员登录
学生信息管理
考生登录
教师登录
教师信息管理
科目信息管理
试题信息管理
考试结果管理
考试结果管理
试题信息管理
管理员信息维护
个人信息维护
在线考试
六、总体设计
(1).数据库设计
网络考试系统的数据库功能主要体现在对各种信息的提供、保存、更新和查询操作上,包括用户信息、试卷信息、学生成绩信息和试题库信息,各部分的数据内容又有着内在的联系,针对该系统的数据特点,可以总结出如下的需求:
系统用户分为管理员和学生。
用户信息记录用户的学号、密码和身份。
成绩信息记录了学生的成绩信息。
试卷信息记录了所有已经存在的试卷信息。
试题库信息记录了试卷的内容。
数据库中表的设计:
u 试题信息表
序号
字段说明
数据类型
长度
主键
允许空
1
试题课程
Varchar
50
否
是
2
答案一
Varchar
50
否
是
3
答案二
Varchar
50
否
是
4
答案三
Varchar
50
否
是
5
答案四
Varchar
50
否
是
6
正确答案
Varchar
50
否
是
u 课程信息表
序号
字段说明
数据类型
长度
主键
允许空
1
课程名
Varchar
50
是
否
2
课程日期时间
Varchar
50
否
是
u 成绩信息表
序号
字段说明
数据类型
长度
主键
允许空
1
学号
Varchar
50
是
否
2
考试课程
Varchar
50
否
是
3
考试成绩
Varchar
50
否
是
4
学生回答
Varchar
50
否
是
5
正确回答
Varchar
50
否
是
u 教师信息表
序号
字段说明
数据类型
长度
主键
允许空
1
教师号
Varchar
50
是
否
2
姓名
Varchar
50
否
是
3
密码
Varchar
50
否
是
4
教师课程
Varchar
50
否
是
u 学生信息表
序号
字段说明
数据类型
长度
主键
允许空
1
学号
Varchar
50
是
否
2
姓名
Varchar
50
否
是
3
性别
Varchar
50
否
是
4
密码
Varchar
50
否
是
u 管理员信息表
序号
字段说明
数据类型
长度
主键
允许空
1
管理员号
Varchar
50
是
否
2
姓名
Varchar
50
否
是
3
密码
Varchar
50
否
是
(2)管理功能设计
试题修改
管理员可以对试题进行修改。管理员还可以对试题进行修改。不过,对于各表中的主键不用修改,避免了造成系统中的数据混乱,或者覆盖其它有用数据的现象。如果用户执行了非法操作,则必须重新操作。对于对数据库数据的修改,在以前的asp页面中比较麻烦,要想修改一条记录,必须写很长的代码。在asp.net中,几乎可以不写一行代码,就可以对数据库记录进行修改。
试题删除
管理员可以删除不再需要的试题。通过在每一条记录的后面放置一个button控件并提示用户是否要删除,来完成试题的删除。
(3)相关界面
登陆页面实现用户的身份认证。管理员用户进入用户添加页面,教师登录后进入教师首页,学生登录后进入学生的首页,页面效果如图所示
l 登录页
登陆后会看到一个考试规则的界面,以提醒大家考试应注意的规则。
l 考试规则面
添加试题页是管理员才能看到的界面,用于把试题添加到数据库中;
l 添加试题页
考生进入后开始考试后显示考试的界面开始答题;
l 考题页
教师后台页用于后台删除考题和后台查看考生的相关考试信息;
l 教师后台管理页
l 管理员后台页
(4).考试后台代码
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class student_StartExam : System.Web.UI.Page
{
public string Ans = null;
public int tNUM;
protected void Page_Load(object sender, EventArgs e)
{
lblEndtime.Text = "考试时间为10分钟,每小题2分,考试已用时:";
lblStuNum.Text = Session["ID"].ToString();
lblStuName.Text = Session["name"].ToString();
lblStuSex.Text = Session["sex"].ToString();
lblStuKM.Text = "[" + Session["KM"].ToString() + "]" + "考试试题";
int i = 1;
SqlConnection conn = BaseClass.DBCon();
conn.Open();
SqlCommand cmd = new SqlCommand("select top 10 * from tb_test where testCourse=" + Session["KM"].ToString() + " order by newid()", conn);
SqlDataReader sdr = cmd.ExecuteReader();
while (sdr.Read())
{
Literal littxt = new Literal();
Literal litti = new Literal();
RadioButtonList cbk = new RadioButtonList();
cbk.ID = "cbk" + i.ToString();
littxt.Text = i.ToString() + "、" + Server.HtmlEncode(sdr["testContent"].ToString()) + "
";
litti.Text = "
";
cbk.Items.Add("A. " + Server.HtmlEncode(sdr["testAns1"].ToString()));
cbk.Items.Add("B. " + Server.HtmlEncode(sdr["testAns2"].ToString()));
cbk.Items.Add("C. " + Server.HtmlEncode(sdr["testAns3"].ToString()));
cbk.Items.Add("D. " + Server.HtmlEncode(sdr["testAns4"].ToString()));
cbk.Font.Size = 11;
for (int j = 1; j <= 4; j++)
{
cbk.Items[j - 1].Value = j.ToString();
}
Ans += sdr[6].ToString();
if (Session["a"] == null)
{
Session["Ans"] = Ans;
}
Panel1.Controls.Add(littxt);
Panel1.Controls.Add(cbk);
Panel1.Controls.Add(litti);
i++;
tNUM++;
}
sdr.Close();
conn.Close();
Session["a"] = 1;
}
protected void btnsubmit_Click(object sender, EventArgs e)
{
string msc = "";
for (int i = 1; i <= tNUM; i++)
{
RadioButtonList list = (RadioButtonList)Panel1.FindControl("cbk" + i.ToString());
if (list != null)
{
if (list.SelectedValue.ToString() != "")
{
msc += list.SelectedValue.ToString();
}
else
{
msc += "0";
}
}
}
Session["Sans"] = msc;//考生答案
string sql = "update tb_score set RigthAns=" + Ans + " where StudentID=" + lblStuNum.Text + "";
BaseClass.OperateData(sql);
string strsql = "update tb_score set StudentAns=" + msc + " where StudentID=" + lblStuNum.Text + "";
BaseClass.OperateData(strsql);
Response.Redirect("result.aspx?BInt=" + tNUM.ToString());
}
}
七、实训总结
一学期又要过去了,经过了这个学期的学习,感觉比上学期有长进了些。一份耕耘,一份收获。在实训这段时间中我通过更深入研究,又巩固了旧知识,学到了新知识。令我非常高兴。实训过程中,在老师的细心的指导之下,我又学会了好多以前没学习到的知识,了解并掌握了更多的小技巧,提高了学习的效率,加深对网页的认知, 在此我谢谢老师的悉心教导。
在实训的过程中,我遇到了许多问题,这些问题以前在上课的时候也有遇到。所以实训的过程中在老师的指导之下和同学的帮助之下把这些问题解决了。希望学校以后可以更多给我们一些这样的机会,可以让我们把实践和知识有机的结合在一起,让我们不断的进步,在掌握旧知识的同时学到新知识,当然还有不足的是我在实训中还有很多的问题没有找老师去解决,所以我很遗憾。希望在以后的实习机会中改正这些不好的毛病,希望老师给予监督。
在实训中,我得出一个很重要的东西----沟通和交流:要想在短暂的实训时间内,尽可能多的学一些东西,这就需要跟老师有很好的沟通,加深彼此的了解,刚开始实训,老师并不了解你的学习能力,学习成绩。我们的在很短时间里让老师了解到你自身的不足,为大家都节约出不必要的时间,让老师对你进行相关的辅导,这样才能事半功倍。不仅如此,还能和老师相处很好,为自己带来很大的方便。当然,除了老师还的和同学多多的交流,讨论,互相指导,互补互进,对学习会有更多的帮助,而且同学关系融洽,这也不失为是学习的一个好方法。