1桥梁信息管理系统(此题仅限复试人员测试专业技能时使用,不得对外泄露)姓名:日期:年月日时间:小时(时分至时分)桥梁是当今交通中必不可少的一部分,但是桥梁质量会随着使用时间的变化出现破损,所以我们每年会对桥梁进行一次检测,根据检测结果评价出桥梁的质量等级,确定如何对桥梁进行改修。我们需要对桥梁的基础资料和检测资料进行管理和评价。【附资料】桥梁由桥面系、上部结构、下部结构三个构件组成,初始等级都为A级。桥的基础资料:编号桥梁名称等级1新虹桥A2吟春桥A3芙蓉桥A4澄山桥A2009年1月10号对所有桥梁进行了一次检测,检测数据如下:新虹桥的检测数据:病害位置严重程度扣分桥面系位置1严重5位置2较严重12位置3非常严重23上部结构位置1严重20位置2较严重32下部结构位置1严重10位置2非常严重64吟春桥的检测数据:病害位置严重程度扣分桥面系位置1严重4位置2较严重16上部结构位置1严重10下部结构位置2非常严重402芙蓉桥的检测数据:病害位置严重程度扣分桥面系位置1严重10位置2较严重22位置3非常严重26上部结构位置1严重10位置2较严重17下部结构位置1严重10位置2非常严重40澄山桥的检测数据:病害位置严重程度扣分桥面系位置1严重20位置2较严重30(注:没有病害的部位按0分计算)根据公式如下公式计算出各部分的扣分,再根据各部分的扣分算出桥的BCI。不同的BCI对应不同等级。等级标准:BCIBCI≥9090>BCI≥8080>BCI≥6666>BCI≥50BCI50等级ABCDE各构件占桥梁总体的比例标准:桥面系上部结构下部结构所占比例(wj)0.30.50.2评价公式:MDP桥面=wiDPii*MDP上部=wiDPii*MDP下部=wiDPii*BCI=MDP桥面*wj+MDP上部*wj+MDP下部*wj参数说明:MDP桥面桥面系的整体扣分DPi为第i个位置的病害扣分wi该构件第i个位置的病害扣分占该构件的总扣分的百分比wj各构件所占总体比例3BCI桥梁的整体扣分我们以附加资料的新虹桥为例计算的它的等级MDP桥面=wiDPii*=5*(5/(5+12+23))+12*(12/(5+12+23))+23*(23/(5+12+23))=17.4MDP上部=27.4(算法同上)MDP下部=56.7BCI=MDP桥面*0.3+MDP上*0.5+MDP下部*0.2=34.19那么新虹桥的等级为E级要求:1、请说明您对该系统的理解。2、请说明您准备如何对该系统进行设计(包括:数据库和基础模块)注:数据库请使用Powerdesigner进行设计。3、根据您的理解设计评价计算模块的代码(请使用4层结构进行编码设计,DLL层完成操作对事务的调用;DAL层包含所有事务;DB层完成事务对数据库进行的操作并返回值;Mobel层是数据库对象的抽象模型。)。注:界面可自行设计。4、层架构示例:///summary///增加一条数据公司信息////summarypublicvoidAdd(Maticsoft.Model.公司信息model){dal.Add(model);}4这里是BLL层的公司信息类中的添加方法,该功能添加公司信息,它对应的事务是DAL层的公司信息类中的ADD方法,该方法代码如下:///summary///增加一条数据////summarypublicintAdd(Maticsoft.Model.公司信息model){StringBuilderstrSql=newStringBuilder();StringBuilderstrSql1=newStringBuilder();StringBuilderstrSql2=newStringBuilder();if(model.公司名称!=null){strSql1.Append(公司名称,);strSql2.Append('+model.公司名称+',);}if(model.公司位置!=null){strSql1.Append(公司位置,);strSql2.Append('+model.公司位置+',);}if(model.邮政编码!=null){strSql1.Append(邮政编码,);strSql2.Append(+model.邮政编码+,);}if(model.联系电话!=null){strSql1.Append(联系电话,);strSql2.Append(+model.联系电话+,);}5strSql.Append(insertinto公司信息();strSql.Append(strSql1.ToString().Remove(strSql1.Length-1));strSql.Append());strSql.Append(values();strSql.Append(strSql2.ToString().Remove(strSql2.Length-1));strSql.Append());strSql.Append(;select@@IDENTITY);objectobj=DbHelperSQL.GetSingle(strSql.ToString());//执行语句if(obj==null){return1;}else{returnConvert.ToInt32(obj);}}该事务定义了如何插入公司信息,以及要插入的信息是什么,定义完成后调用DB层的GetSingle方法,该方法代码如下:///summary///执行一条计算查询结果语句,返回查询结果(object)。////summary///paramname=SQLString计算查询结果语句/param///returns查询结果(object)/returnspublicstaticobjectGetSingle(stringSQLString){using(SqlConnectionconnection=newSqlConnection(connectionString)){using(SqlCommandcmd=newSqlCommand(SQLString,connection)){6try{connection.Open();objectobj=cmd.ExecuteScalar();if((Object.Equals(obj,null))||(Object.Equals(obj,System.DBNull.Value))){returnnull;}else{returnobj;}}catch(System.Data.SqlClient.SqlExceptione){connection.Close();throwe;}}}}该方法执行后返回一个Object类型的值。陕西海薇软件工程有限公司2009年5月23日