1用户登录
图1登录界面
本界面是用户登录的主界面,对的页面为login.aspx ,登录的主要代码在login.aspx.cs中,当用户点击登录按钮时,则触发Button1_Click方法,登录的逻辑都写在这里面。
protected void Button1_Click1(object sender, EventArgs e)
{
string username = txtusername.Text;
string password = txtpassword.Text;
string role = txtrole.Text;
string sql = "select count(1) from t_user where username='" + username + "' and password='" + password + "' and role = '" + role + "' ";
int count = Convert.ToInt32(SQLHelper.ExecuteScalar(sql));
if (count <= 0)
{
Response.Write("<script language=javascript>alert('登录失败,用户名或密码错误');window.location.href='login.aspx';</script>");
return;
}
sql = "select * from t_user where username='" + username + "' and password='" + password + "' and role = '" + role + "' ";
DataTable dt = SQLHelper.ExecuteDataTable(sql);
Session["userrole"] = Convert.ToString(dt.Rows[0]["role"]);
Session["username"] = Convert.ToString(dt.Rows[0]["username"]);
Session["uid"] = Convert.ToString(dt.Rows[0]["id"]);
Response.Write("<script language=javascript>alert('登录成功');window.location.href='index.aspx';</script>");
}
首先从页面获取用户名,密码,用户的登录角色等信息,然后组装登录查询的sql语句string sql = "select count(1) from t_user where username='" + username + "' and password='" + password + "' and role = '" + role + "' ";,把该sql语句放在int count = Convert.ToInt32(SQLHelper.ExecuteScalar(sql));
执行,根据返回的count只来判断是否登录成功,当count小于等于0时,则说明登录失败,否则登录成功,跳转到index.aspx页面
2系统主界面
图2系统主界面
对应的页面为index.aspx, 用户需要注册登陆后才能进入此页面。根据用户权限的不同,左边菜单栏显示的条目都不一样的。
3用户管理主界面
图3用户管理主界面
对应的页面为userlist.aspx, 主要用到了asp:Repeater控件对用户的信息进行展示,同时在该页面定义了对用户信息的增加,删除,编辑,查看,分页等操作,在对应的userlist.aspx.cs代码中则主要对repeater.DataBind();的绑定,同时实现了分页,查询的功能。
4试题库管理主界面
图4试题库管理主界面
对应的页面为shitilist.aspx, 主要用到了asp:Repeater控件对试题的信息进行展示,同时在该页面定义了对试题信息的增加,删除,编辑,查看,分页等操作,在对应的shitilist.aspx.cs代码中则主要对repeater.DataBind();的绑定,同时实现了分页,查询的功能。
5添加试题主界面
图5添加试题主界面
对应的页面为shiti.aspx, 对应的代码为shiti.aspx.cs,当用户点击提交按钮时,触发Button1_Click事件,
protected void Button1_Click(object sender, EventArgs e)
{
string sql = "";
if (!IsValid)
{
return;
}
string kmid = Request["kmid"];
string action = Request["action"];
if (action == "add")
{
sql = "select * from t_kemu where id=" + kmid;
DataTable dt = SQLHelper.ExecuteDataTable(sql);
string kmname = Convert.ToString(dt.Rows[0]["kmname"]);
sql = @"insert into t_shiti (leixing,wenti,daan,kmname,kmid,zhishdiian,a,b,c,d) values
('" + leixing.Text + "','" + wenti.Text + "','" + daan.Text + "','" + kmname
+ "','" + kmid + "','" + zhishdiian.Text + "','" + a.Text + "','" + b.Text + "','" + c.Text + "','" + d.Text + "')";
SQLHelper.ExecuteNonQuery(sql);
Response.Write("<script language=javascript>alert('操作成功');window.location.href='shitilist.aspx?kmid=" + kmid + "';</script>");
}
else if (action == "edit")
{
string id = Request["id"];
sql = "update t_shiti set leixing='" + leixing.Text + "',wenti='" + wenti.Text + "',daan='" + daan.Text + "',zhishdiian='" + zhishdiian.Text + "',a='" + a.Text + "',b='" + b.Text + "',c='" + c.Text + "',d='" + d.Text + "' where id=" + id;
SQLHelper.ExecuteNonQuery(sql);
sql = "select * from t_shiti where id=" + id;
DataTable dt = SQLHelper.ExecuteDataTable(sql);
kmid = Convert.ToString(dt.Rows[0]["kmid"]);
Response.Write("<script language=javascript>alert('操作成功');window.location.href='shitilist.aspx?kmid=" + kmid + "';</script>");
}
else
{
throw new Exception("action错误" + action);
}
}
首先判断验证是否成功,通过string action = Request["action"];判断是添加,编辑,删除,还是查看操作,add表示添加操作,
添加操作的sql语句为sql = @"insert into t_shiti (leixing,wenti,daan,kmname,kmid,zhishdiian,a,b,c,d) values
('" + leixing.Text + "','" + wenti.Text + "','" + daan.Text + "','" + kmname
+ "','" + kmid + "','" + zhishdiian.Text + "','" + a.Text + "','" + b.Text + "','" + c.Text + "','" + d.Text + "')";
然后调用SQLHelper.ExecuteNonQuery(sql);把数据插入到数据库中,然后跳转到shitilist.aspx页面。
6系统的调试与测试
6.1软件测试的目的
软件测试的目的,第一是确认软件的质量,其一方面是确认软件做了你所期望的事情,另一方面是确认软件以正确的方式来做了这个事件。
第二是提供信息,比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息。
第三软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。因此软件测试的第三个目的是保证整个软件开发过程是高质量的。
软件质量是由几个方面来衡量的:一、在正确的时间用正确的的方法把一个工作做正确。二、符合一些应用标准的要求,比如不同国家的用户不同的操作习惯和要求,项目工程中的可维护性、可测试性等要求。三、质量本身就是软件达到了最开始所设定的要求,而代码的优美或精巧的技巧并不代表软件的高质量。四、质量也代表着它符合客户的需要。作为软件测试这个行业,最重要的一件事就是从客户的需求出发,从客户的角度去看产品,客户会怎么去使用这个产品,使用过程中会遇到什么样的问题。
6.2面向对象系统测试方案
根据系统测试目的并结合面向对象方法,我们给出了如下系统测试方案:
(1)尽早的、不断的进行系统测试。我们知道,错误发现的越早,改正它所付出的代价也就越小。由于错误的发生往往是不可避免的,因此我们的系统测试贯穿于整个开发过程中,而不是把系统测试仅仅看作是软件开发的一个独立阶段。
(2)设计测试用例时,给出测试的预期结果。一个测试用例由两部分组成:测试用的输入数据和该输入数据所期望的程序运行结果。这样测试时才能有一个判断标准,利用输入数据得出测试数据并和预测数据进行比较,看它们是否一致。
(3)我们在设计测试用例时,不仅有合法的输入测试用例,还有非法的输入测试用例。因为,在系统的实际使用过程中,由于各种原因,用户往往会使用一些非法的输入,比如按错了键或者使用了非法的命令等,所以,我们特别注意设计非法的输入测试用例来进行测试。
(4)在对系统修改完之后进行回溯测试。我们在修改系统的同时往往又会引入新的错误,所以在对程序修改完之后,用以前的用例进行回归测试。
1、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“文章版权申述”(推荐),也可以打举报电话:18735597641(电话支持时间:9:00-18:30)。
2、网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
3、本站所有内容均由合作方或网友投稿,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务。
原创文章,作者:写文章小能手,如若转载,请注明出处:https://www.447766.cn/chachong/525.html,