综合实训报告测试版.docx

上传人:b****6 文档编号:3645727 上传时间:2022-11-24 格式:DOCX 页数:25 大小:24.04KB
下载 相关 举报
综合实训报告测试版.docx_第1页
第1页 / 共25页
综合实训报告测试版.docx_第2页
第2页 / 共25页
综合实训报告测试版.docx_第3页
第3页 / 共25页
综合实训报告测试版.docx_第4页
第4页 / 共25页
综合实训报告测试版.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

综合实训报告测试版.docx

《综合实训报告测试版.docx》由会员分享,可在线阅读,更多相关《综合实训报告测试版.docx(25页珍藏版)》请在冰豆网上搜索。

综合实训报告测试版.docx

综合实训报告测试版

综合实训报告写作框架

一、综合实训报告写作框架

  

  正文

第一章 实训的目的、要求

1、基本信息

●实训时间(1—8周)共计学时

实训指导教师:

王现君

实训地点:

软件学院实训中心

实训题目:

部门相册管理

2、.NET平台开发综合实训

●实训目的

1、总体目标

通过本门课程的学习,使学生具有较强的团队意识和协作精神,具有明确的职业目标,.NET综合实训是软件技术专业的核心专业课程。

采用东软.NET综合实训平台一体化教学,即:

实现理论教学与实践教学相互融合,边听边学、边学边练,寓教于学、寓教与做,同时将素质教育融于整个人才培养活动中,重点培养学生的综合职业素质和学生的操作能力与技术服务能力。

●实训要求

掌握项目开发流程,进行需求分析,画出需求分析图示使学生了解系统概要设计的格式内容和撰写方法掌握数据库设计的一般方法,设计系统数据库使学生掌握系统登录界面及其它界面的设计方法根据系统设计进行各部分代码的实现(本阶段与UI设计同步进行)

●主要实训软件

1)东软实训平台

2)操作系统:

Windows2000,XP;Windowsvaster/7

3)平台:

.NETFrameWork3.0,VisualStudio2005

4)数据库:

SQLServer2005

第二章 实训内容

1、需求分析

完成时间:

2011-2-26

主要内容:

1系统特性概述

系统特性名称

系统特性描述

优先级

登录

输入密码进行登录

退出

退出软件

模糊查询

可以根据时间名称关键字等进行查询并删除或修改照片备注

相册管理

可以对相册或照片进行增删改查并对照片添加备注

修改密码

可以对密码进行修改

2需求规格

2.1登录

用例概述

描述了用户登录的完整过程。

基本流程

1.打开系统登录页

2.输入用户名和密码

3.点击"登录"按钮

4.登录成功,显示"个人首页"

备选流程

1、(基3)用户未找到,提示用户不存在

2、(基3)用户密码不匹配,提示密码错误

3、(基3)离职用户登录,提示"用户已经离职,不能登录"

4、(基3)用户登录前访问某受限页面,登录成功后直接转向受限页面

5、(备4)登录前受限页面,登录后用户权限不足,转向"权限不足提示"页面

2.2退出

用例概述

描述了用户退出系统的完整过程。

基本流程

1、点击"退出"按钮

2、系统进行退出处理,并转到登录页面

备选流程

2.3修改密码

用例概述

描述了用户修改密码的完整过程。

基本流程

1.1、选择修改密码功能

2.2、输入原密码、新密码和确认密码

3.3、点击"确定"按钮

4.4、修改密码成功,系统显示成功页面

备选流程

5.(基3)用户输入的原密码不正确,提示"原密码不正确,修改失败"

6.(基3)用户输入的新密码和确认密码不一致,提示"两次输入的新密码不一致"

2.4模糊查询

用例概述

用户可以根据时间名称关键字等进行查询。

基本流程

1、点击时间

2、进行查询

3、点击名称关键字等

4、进行查询

5、点击删除或修改照片备注

6、点击完成

备选流程

2.5相册管理

用例概述

用户可以新建相册,删除相册,上传照片包括对相片的增删改查,并对照片添加备注。

基本流程

1、点击相册管理

备选流程

2.5.1新建相册

用例概述

用户可以新建相册

基本流程

1、新建相册

2、输入相册名称

3、点击新建

备选流程

2.5.2删除相册

用例概述

用户可以删除相册

基本流程

1、删除相册

2、选择相册

3、点击“删除”

备选流程

2.5.3上传照片

用例概述

用户可以上传照片

基本流程

2、点击上传相片

3、选择相册

4、选择上传的照片

5、添加备注(可空)

备选流程

2、系统设计

完成时间:

2011-3-05

主要内容:

1系统公用代码设计

1.1页面设置

1.1.1功能描述

对页面及操作进行代码设计。

1.1.2方法描述

usingEdu.Sovo.OACF;

usingSystem.Text;

publicpartialclassresult_report:

System.Web.UI.Page

{

protectedvoidPage_Load(objectsender,EventArgse)

{

if(Session[Constants.EXECUTE_RESULT]!

=null)

{

//有返回结果

OperationResultor=(OperationResult)Session[Constants.EXECUTE_RESULT];

if(or.IsSuccess)

{

//如果是成功情况

//增加自动返回地址

HtmlMetameta=newHtmlMeta();

meta.HttpEquiv="refresh";

meta.Content="4;url="+Request.ApplicationPath+or.UrlValue[0];

this.Header.Controls.Add(meta);

//设置页面样式

tdTitle.Style.Add(HtmlTextWriterStyle.Color,"red");

tdTitle.Style.Add(HtmlTextWriterStyle.TextAlign,"center");

tdTitle.InnerText="操作成功";

//设置操作说明

tdMsg.Style.Add(HtmlTextWriterStyle.Padding,"10px");

tdMsg.Style.Add(HtmlTextWriterStyle.BackgroundColor,"#FFFFCC");

tdMsg.Style.Add(HtmlTextWriterStyle.BorderWidth,"1px");

tdMsg.Style.Add(HtmlTextWriterStyle.BorderStyle,"solid");

tdMsg.Style.Add(HtmlTextWriterStyle.BorderColor,"black");

StringBuildersb=newStringBuilder();

foreach(Stringmsginor.ResultMsg)

{

sb.Append("

  • "+msg+"
  • ");

    }

    ulMsg.InnerHtml=sb.ToString();

    //设置返回地址

    StringBuildersb1=newStringBuilder();

    for(inti=0;i

    {

    Stringvalue=or.UrlValue[i];

    StringhtmlStr=""+or.UrlName[i]+"|";

    sb1.Append(htmlStr);

    }

    //sb1.Remove(sb.Length-1,1);//去掉最后的|

    divReturnURL.InnerHtml=sb1.ToString().Substring(0,sb1.Length-2);

    }

    }

    }。

    3、系统实施

    完成时间:

    2011-4-03

    主要内容:

    1)数据库的设计与实现

    PHOTO_USERS:

    用户表

    字段名

    字段类型

    是否可为空

    默认值

    字段含义

    注释

    USERID

    NUMBER(10)

    NOTNULL

     

    用户编号

    主键

    USERNAME

    VARCHAR2(50)

    NOTNULL

     

    用户名

     

    PASSWORD

    VARCHAR2(100)

    NOTNULL

     

    密码

     

    REALNAME

    VARCHAR2(50)

     

     

    真实姓名

     

    PHOTO_PHOTOS:

    照片表

    字段名

    字段类型

    是否可为空

    默认值

    字段含义

    注释

    PHOTOID

    NUMBER(10)

    NOTNULL

     

    流水号,照片编号

    主键

    PHOTONAME

    VARCHAR2(100)

    NOTNULL

     

    照片名称

     

    ALBUMID

    NUMBER(10)

    NOTNULL

     

    所属相册

    外键,引用PHOTO_ALBUMS表

    SCREENDATE

    DATE

    NOTNULL

    SYSDATE

    拍摄时间

     

    DESCRIPTION

    VARCHAR2(600)

     

     

    照片描述

     

    PHOTOTYPE

    VARCHAR2(100)

    NOTNULL

     

    照片类型

     

    PHOTO_ALBUMS:

    相册表

    字段名

    字段类型

    是否可为空

    默认值

    字段含义

    注释

    ALBUMID

    INT

    NOTNULL

     

    流水号,相册编号

    主键

    ALBUMNAME

    NVARCHAR(50)

    NOTNULL

     

    相册名称

     

    DESCRIPTION

    NVARCHAR(MAX)

     

     

    相册描述

     

    BUILDDATE

    DATETIME

    NOTNULL

    SYSDATE

    创建时间

     

    2)数据层的设计与应用(详述企业库与OACF)

    1.企业库

    简介

    有Microsoft设计的协助开发人员处理企业开发常见问题的应用程序块的集合

    企业库提供的程序块

    ·缓存应用程序块(Caching)允许开发人员在其他应用程序中集成本地缓存.

    ·加密应用程序块(Cryptography)允许开发人员在其应用程序中包含机密和哈希功能

    ·数据访问应用程序块(DataAccess)允许开发人员在其应用程序中集成标准的数据库功能

    ·异常处理应用程序块(ExceptionHandling)允许开发人员和决策人员针对发生在企业库应用程序体系结构层的异常处理创建一致的策略

    ·日志和规范应用程序块(LoggingHandling)允许开发人员在其应用程序中集成标准的日志和规范功能。

    ·安全应用程序块(SecurityApplication)允许开发人员在其应用程序中集成安全功能。

    应用程序可以在多种情况下使用应用程序块,例如,根据数据库验证和授权用户、检索角色和配置文件信息,以及缓存用户配置文件信息等。

    使用步骤

    ·使用DataAccessApplicationBlock(DAAB)访问数据库的一般步骤

    (1).创建连接字符串

    (2).添加ApplicationBlock的引用

    (3).添加命名空间

    (4).创建Database对象

    (5).创建DbCommand对象

    (6).执行数据库操作

    (7).处理结果

    2.OACF

    OACF是对企业库进行一个类的封装以便于开发人员的应用

    3)逻辑层的设计与实现

    1.相册管理类

    usingMicrosoft.Practices.EnterpriseLibrary.Data;

    usingMicrosoft.Practices.EnterpriseLibrary.Common.Configuration;

    usingSystem.Data;

    usingEdu.Sovo.OACF;

    namespaceServices.AlbumBll

    {

    publicclassAlbumService

    {

    publicAlbumService()

    {

    }

    privatestaticStringSQL_Get_IsAlbumName=@"select*fromPHOTO_ALBUMSwhereALBUMNAME=@ALBUMNAME";

    publicstaticboolalbumNameExist(stringalbumName)

    {

    DictionarynameValueParams=newDictionary();

    nameValueParams.Add("ALBUMNAME",albumName);

    boolresult=DataAccess.IsExisted(SQL_Get_IsAlbumName,nameValueParams);

    returnresult;

    }

    privatestaticStringSQL_AlbumName=@"selectALBUMIDfromPHOTO_ALBUMSwhereALBUMNAME=@ALBUMNAME";

    publicstaticboolifCanEdit(stringAlbumID,stringalbumName)

    {

    stringStrAlbumeID_Old="";

    objectObjAlbumeID_Old=DataAccess.ExecuteScalar(SQL_AlbumName,"ALBUMNAME",albumName);

    if(ObjAlbumeID_Old!

    =null)

    {

    StrAlbumeID_Old=ObjAlbumeID_Old.ToString();

    if(StrAlbumeID_Old==AlbumID)

    {

    returntrue;

    }

    else

    {

    returnfalse;

    }

    }

    else

    {

    returnfalse;

    }

    }

     

    publicstaticDataSetgetAlbums()

    {

    stringgetalbumlist="selectdistinctal.ALBUMNAME,al.ALBUMID,al.BUILDDATE,count(ph.PHOTOID)ASPHOTONUMfromPHOTO_ALBUMSalLEFTouterjoinPHOTO_PHOTOSphonal.ALBUMID=ph.ALBUMIDgroupbyal.ALBUMID,al.ALBUMNAME,al.BUILDDATEorderbyal.BUILDDATEdesc";

    DataSetds=DataAccess.ExecuteToDataSet(getalbumlist);

    returnds;

    }

    privatestaticStringSQL_DEL_BY_ALBUMID=@"deletefromPHOTO_ALBUMSwhereALBUMID=@ALBUMID";

    publicstaticvoiddeleteAlbum(longalbumId)

    {

    boolboresult=DataAccess.ExecuteNonQuery(SQL_DEL_BY_ALBUMID,"ALBUMID",Convert.ToString(albumId));

    }

    privatestaticStringSQL_INSERT_ALBUM=@"insertintoPHOTO_ALBUMS(ALBUMNAME,DESCRIPTION,BUILDDATE)values(@ALBUMNAME,@DESCRIPTION,@BUILDDATE)";

    publicstaticboolinsertAlbum(DictionaryAlbumInfo)

    {

    boolresult=DataAccess.ExecuteNonQuery(SQL_INSERT_ALBUM,AlbumInfo,CommandType.Text);

    returnresult;

    }

    privatestaticStringSQL_UPDA_BY_ALBUMID=@"updatePHOTO_ALBUMSsetALBUMNAME=@ALBUMNAME,DESCRIPTION=@DESCRIPTIONwhereALBUMID=@ALBUMID";

    publicstaticboolupdateAlbum(DictionaryNewAlbumInfo)

    {

    returnDataAccess.ExecuteNonQuery(SQL_UPDA_BY_ALBUMID,NewAlbumInfo);

    }

    privatestaticStringSQL_ALBUM_BY_ALBUMID=@"selectdistinctALBUMNAME,DESCRIPTIONfromPHOTO_ALBUMSwhereALBUMID=@ALBUMIDorderbyALBUMNAME";

    publicstaticDictionarygetAlbum(stringalbumId)

    {

    returnDataAccess.ExecuteToSet(SQL_ALBUM_BY_ALBUMID,"ALBUMID",albumId);

    }

    }

    }

    2.照片管理类

    usingSystem.Data;

    usingEdu.Sovo.OACF;

    namespaceServices.PhotoBll

    {

    publicclassPhotoService

    {

    publicstaticDataSetsearchPhoto(stringPHOTONAME,stringALBUMNAME,stringDESCRIPTION,stringALBUMID,stringStartTime,stringEndTime)

    {

    stringSQL_SearchPhoto="selectdistinctph.PHOTOID,ph.PHOTONAME,ph.DESCRIPTION,ph.SCREENDATEfromPHOTO_PHOTOSphinnerjoinPHOTO_ALBUMSalonal.ALBUMID=ph.ALBUMID";

    QueryHelperqh=newQueryHelper(SQL_SearchPhoto,"orderbyph.SCREENDATEdesc");

    qh.setParam(QueryHelper.IsNotBlank(PHOTONAME),"PHOTONAMElike'%'+@PHOTONAME+'%'","PHOTONAME",PHOTONAME);

    qh.setParam(QueryHelper.IsNotBlank(ALBUMNAME),"al.ALBUMNAME=@ALBUMNAME","ALBUMNAME",ALBUMNAME);

    qh.setParam(QueryHelper.IsNotBlank(DESCRIPTION),"ph.DESCRIPTION=@DESCRIPTION","DESCRIPTION",DESCRIPTION);

    qh.setParam(QueryHelper.IsNotBlank(ALBUMID),"al.ALBUMID=@ALBUMID","ALBUMID",ALBUMID);

    qh.setParam(QueryHelper.IsNotBlank(StartTime),"datediff(day,Convert(DateTime,@StartTime),ph.SCREENDATE)>=0","StartTime",StartTime);

    qh.setParam(QueryHelper.IsNotBlank(EndTime),"datediff(day,Convert(DateTime,@EndTime),ph.SCREENDATE)<=0","EndTime",EndTime);

    returnDataAccess.ExecuteToDataSet(qh.getQuerySql(),qh.getParams());

    }=

    publicstaticDataSetgetStatByMonth()

    {

    stringPhotoStaticStr="selectconvert(varchar(4),datepart(yy,SCREENDATE))+'-'+convert(varchar(4),datepart(mm,SCREENDATE))asTIME,count(*)asCOUNTfromPHOTO_PHOTOSgroupbyconvert(varchar(4),datepart(yy,SCREENDATE)),convert(varchar(4),datepart(mm,SCREENDATE))orderbyTIMEdesc";

    DataSetds=DataAccess.ExecuteToDataSet(PhotoStaticStr);

    returnds;

    }

    publicstaticDataSetgetAllAlbums()

    {

    stringPhotoStaticStr="selectalbumnamefromPHOTO_ALBUMSorderbyBUILDDATEdesc";

    DataSetds=DataAccess.ExecuteToDataSet(PhotoStaticStr);

    returnds;

    }

    publicstaticbooldeletePhoto(stringphotoId)

    {

    stringdeleteStr="deletefromPHOTO_PHOTOSwherePHOTOID="+photoId;

    TransHelpertrans=newTransHelper();

    trans.AddCommand(deleteStr,null,null);

    boolresult=trans.Execute();

    returnresult;

    }

    privatestaticStringSQL_PHOTO_BY_PHOTOID=@"selectdistinctPHOTONAME,DESCRIPTIONfromPHOT

    展开阅读全文
    相关资源
    猜你喜欢
    相关搜索

    当前位置:首页 > 考试认证 > 其它考试

    copyright@ 2008-2022 冰豆网网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1