综合实训报告测试版
更新时间:2023-05-25 04:07:01 阅读量: 实用文档 文档下载
综合实训报告写作框架
一、综合实训报告写作框架
正文
第一章 实训的目的、要求 1、基本信息
●实训时间(1—8周)共计学时 实训指导教师:王现君 实训地点:软件学院实训中心 实训题目:部门相册管理 2、.NET平台开发综合实训 ●实训目的 1、总体目标
通过本门课程的学习,使学生具有较强的团队意识和协作精神,具有明确的职业目标,.NET综合实训是软件技术专业的核心专业课程。采用东软.NET综合实训平台一体化教学,即:实现理论教学与实践教学相互融合,边听边学、边学边练,寓教于学、寓教与做,同时将素质教育融于整个人才培养活动中,重点培养学生的综合职业素质和学生的操作能力与技术服务能力。
●实训要求
掌握项目开发流程,进行需求分析,画出需求分析图示使学生了解系统概要设计的格式内容和撰写方法掌握数据库设计的一般方法,设计系统数据库使学生掌握系统登录界面及其它界面的设计方法根据系统设计进行各部分代码的实现(本阶段与UI设计同步进行)
●主要实训软件 1)东软实训平台
2) 操作系统:Windows 2000,XP;Windows vaster/7 3) 平台:.NET FrameWork3.0,Visual Studio 2005 4) 数据库:SQL Server 2005
第二章 实训内容 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. 2. 3. 4.
1、选择修改密码功能
2、输入原密码、新密码和确认密码 3、点击"确定"按钮
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方法描述
using Edu.Sovo.OACF; using System.Text;
public partial class result_report : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {
if (Session[Constants.EXECUTE_RESULT] != null) {
//有返回结果
OperationResult or = (OperationResult)Session[Constants.EXECUTE_RESULT];
if (or.IsSuccess) {
//如果是成功情况 //增加自动返回地址
HtmlMeta meta = new HtmlMeta(); 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"); StringBuilder sb = new StringBuilder(); foreach (String msg in or.ResultMsg) {
sb.Append("<li>" + msg + "</li>"); }
ulMsg.InnerHtml = sb.ToString();
//设置返回地址
StringBuilder sb1 = new StringBuilder(); for(int i = 0; i< or.UrlName.Count;i++) {
String value = or.UrlValue[i];
String htmlStr = "<a href='" +Request.ApplicationPath + value + "'>" + or.UrlName[i] + "</a> | ";
sb1.Append(htmlStr); }
//sb1.Remove(sb.Length-1, 1); //去掉最后的|
divReturnURL.InnerHtml = sb1.ToString().Substring(0,sb1.Length - 2);
}
} }。
3、系统实施 完成时间:2011-4-03 主要内容:
1)数据库的设计与实现
2)数据层的设计与应用(详述企业库与OACF) 1.企业库 简介
有Microsoft设计的协助开发人员处理企业开发常见问题的应用程序块的集合
企业库提供的程序块
·缓存应用程序块(Caching)允许开发人员在其他应用程序中集成本地缓存.
·加密应用程序块(Cryptography)允许开发人员在其应用程序中包含机密和哈希功能
·数据访问应用程序块(Data Access)允许开发人员在其应用程序中集成标准的数据库功能
·异常处理应用程序块(Exception Handling)允许开发人员和决策人员针对发生在企业库应用程序体系结构层的异常处理创建一致的策略
·日志和规范应用程序块(Logging Handling)允许开发人员在其应用程序中集成标准的日志和规范功能。
·安全应用程序块(Security Application)允许开发人员在其应用程序中集成安全功能。应用程序可以在多种情况下使用应用程序块,例如,根据数据库验证和授权用户、检索角色和配置文件信息,以及缓存用户配置文件信息等。
使用步骤
·使用Data Access Application Block(DAAB)访问数据库的一般步骤 (1).创建连接字符串
(2).添加Application Block的引用 (3).添加命名空间 (4).创建Database对象
(5).创建DbCommand对象 (6).执行数据库操作 (7).处理结果 2.OACF
OACF是对企业库进行一个类的封装以便于开发人员的应用 3)逻辑层的设计与实现 1.相册管理类
using Microsoft.Practices.EnterpriseLibrary.Data;
using mon.Configuration; using System.Data; using Edu.Sovo.OACF;
namespace Services.AlbumBll {
public class AlbumService {
public AlbumService() { }
private static String SQL_Get_IsAlbumName = @"select * from PHOTO_ALBUMS where ALBUMNAME=@ALBUMNAME";
public static bool albumNameExist(string albumName) {
Dictionary<String, String> nameValueParams = new Dictionary<string, string>(); nameValueParams.Add("ALBUMNAME", albumName);
bool result = DataAccess.IsExisted(SQL_Get_IsAlbumName, nameValueParams); return result; }
private static String SQL_AlbumName = @"select ALBUMID from PHOTO_ALBUMS where ALBUMNAME=@ALBUMNAME";
public static bool ifCanEdit(string AlbumID, string albumName) {
string StrAlbumeID_Old = "";
object ObjAlbumeID_Old = DataAccess.ExecuteScalar(SQL_AlbumName, "ALBUMNAME", albumName);
if (ObjAlbumeID_Old != null) {
StrAlbumeID_Old = ObjAlbumeID_Old.ToString();
if (StrAlbumeID_Old == AlbumID) {
return true; } else {
return false; } } else {
return false; }
}
public static DataSet getAlbums() {
string getalbumlist = "select distinct al.ALBUMNAME,al.ALBUMID,
al.BUILDDATE,count(ph.PHOTOID)AS PHOTONUM from PHOTO_ALBUMS al LEFT outer join PHOTO_PHOTOS ph on al.ALBUMID=ph.ALBUMID group by al.ALBUMID,al.ALBUMNAME, al.BUILDDATE order by al.BUILDDATE desc";
DataSet ds = DataAccess.ExecuteToDataSet(getalbumlist); return ds; }
private static String SQL_DEL_BY_ALBUMID = @"delete from PHOTO_ALBUMS where ALBUMID=@ALBUMID";
public static void deleteAlbum(long albumId) {
bool boresult = DataAccess.ExecuteNonQuery(SQL_DEL_BY_ALBUMID, "ALBUMID", Convert.ToString(albumId)); }
private static String SQL_INSERT_ALBUM = @"insert into
PHOTO_ALBUMS(ALBUMNAME,DESCRIPTION,BUILDDATE) values (@ALBUMNAME,@DESCRIPTION,@BUILDDATE)"; public static bool insertAlbum(Dictionary<string, string> AlbumInfo) {
bool result = DataAccess.ExecuteNonQuery(SQL_INSERT_ALBUM, AlbumInfo, CommandType.Text); return result; }
private static String SQL_UPDA_BY_ALBUMID = @"update PHOTO_ALBUMS set
ALBUMNAME=@ALBUMNAME, DESCRIPTION=@DESCRIPTION where ALBUMID=@ALBUMID"; public static bool updateAlbum(Dictionary<string, string> NewAlbumInfo) {
return DataAccess.ExecuteNonQuery(SQL_UPDA_BY_ALBUMID, NewAlbumInfo); }
private static String SQL_ALBUM_BY_ALBUMID = @"select distinct ALBUMNAME, DESCRIPTION from PHOTO_ALBUMS where ALBUMID=@ALBUMID order by ALBUMNAME";
public static Dictionary<String, String> getAlbum(string albumId) {
return DataAccess.ExecuteToSet(SQL_ALBUM_BY_ALBUMID, "ALBUMID", albumId); } } }
2.照片管理类
using System.Data; using Edu.Sovo.OACF; namespace Services.PhotoBll {
public class PhotoService {
public static DataSet searchPhoto(string PHOTONAME, string ALBUMNAME, string DESCRIPTION, string ALBUMID, string StartTime, string EndTime) {
string SQL_SearchPhoto = "select distinct ph.PHOTOID,ph.PHOTONAME,ph.DESCRIPTION, ph.SCREENDATE from PHOTO_PHOTOS ph inner join PHOTO_ALBUMS al on al.ALBUMID=ph.ALBUMID"; QueryHelper qh = new QueryHelper(SQL_SearchPhoto, "order by ph.SCREENDATE desc"); qh.setParam(QueryHelper.IsNotBlank(PHOTONAME), " PHOTONAME like '%'+@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); return DataAccess.ExecuteToDataSet(qh.getQuerySql(), qh.getParams()); }=
public static DataSet getStatByMonth() {
string PhotoStaticStr = "select
convert(varchar(4),datepart(yy,SCREENDATE))+'-'+convert(varchar(4),datepart(mm,SCREENDATE))a
s TIME,count(*) as COUNT from PHOTO_PHOTOS group by
convert(varchar(4),datepart(yy,SCREENDATE)),convert(varchar(4),datepart(mm,SCREENDATE)) order by TIME desc";
DataSet ds = DataAccess.ExecuteToDataSet(PhotoStaticStr); return ds; }
public static DataSet getAllAlbums() {
string PhotoStaticStr = "select albumname from PHOTO_ALBUMS order by BUILDDATE desc"; DataSet ds = DataAccess.ExecuteToDataSet(PhotoStaticStr); return ds; }
public static bool deletePhoto(string photoId) {
string deleteStr = "delete from PHOTO_PHOTOS where PHOTOID=" + photoId; TransHelper trans = new TransHelper(); trans.AddCommand(deleteStr, null, null); bool result = trans.Execute(); return result; }
private static String SQL_PHOTO_BY_PHOTOID = @"select distinct PHOTONAME, DESCRIPTION from PHOTO_PHOTOS where PHOTOID=@PHOTOID ";
public static Dictionary<String, String> getphoto(string photoId) {
return DataAccess.ExecuteToSet(SQL_PHOTO_BY_PHOTOID, "PHOTOID", photoId); }
private static string updatephoto = "update PHOTO_PHOTOS set PHOTONAME=@PHOTONAME,DESCRIPTION=@DESCRIPTION where PHOTOID=@PHOTOID"; public static bool updatePhoto(Dictionary<string, string> PhotoInfo) {
bool result = DataAccess.ExecuteNonQuery(updatephoto, PhotoInfo); return result; }
public static string GetAlbumid(string albumname) {
String SQL_ALBUMID_BY_ALBUMNAME = "select ALBUMID from PHOTO_ALBUMS where ALBUMNAME='" + albumname + "'";
object albumid = DataAccess.ExecuteScalar(SQL_ALBUMID_BY_ALBUMNAME);
if (albumid == null) {
return ((string)albumid); }
else {
return albumid.ToString(); }
}
private static String SQL_ALBUM_BY_ALBUMID = @"select
PHOTONAME,SCREENDATE,DESCRIPTION,PHOTOID from PHOTO_PHOTOS where ALBUMID=@albumId order by SCREENDATE desc";
public static DataSet getPhotosByAlbumId(string albumId) {
DataSet ds = DataAccess.ExecuteToDataSet(SQL_ALBUM_BY_ALBUMID, "ALBUMID", albumId);
return ds; }
private static String SQL_GetOther_BY_ALBUMID = @"select ALBUMNAME from PHOTO_ALBUMS where ALBUMID!=@ALBUMID";
public static DataSet getAlbumList(string Albumid) {
DataSet ds = DataAccess.ExecuteToDataSet(SQL_GetOther_BY_ALBUMID, "ALBUMID", Albumid);
return ds; }
private static String SQL_GetALBUMNAME_BY_ALBUMID = @"select ALBUMNAME from PHOTO_ALBUMS where ALBUMID=@ALBUMID";
public static string getAlbumNameByAlbumId(string albumId) {
return (string)DataAccess.ExecuteScalar(SQL_GetALBUMNAME_BY_ALBUMID, "ALBUMID", albumId); }
private static String SQL_ADD_PHOTO = @"insert into
PHOTO_PHOTOS(PHOTONAME,ALBUMID,SCREENDATE,DESCRIPTION,PHOTOTYPE)values(@PHOTONAME,@ALBUMID,@SCREENDATE,@DESCRIPTION,@PHOTOTYPE)select scope_identity()";
public static string addPhoto(Dictionary<string, string> PhotoInfo) {
return DataAccess.ExecuteScalar(SQL_ADD_PHOTO, PhotoInfo).ToString();
}
public static bool deletePhotos(ArrayList photoIds) {
string PHOTOID = "";
for (int i = 0; i < photoIds.Count; i++) {
string PID = (string)photoIds[i]; PHOTOID = PHOTOID + PID + ",";
}
PHOTOID = PHOTOID.Remove(PHOTOID.Length - 1);
string SQL_DEL_PHOTOS = "delete from PHOTO_PHOTOS where PHOTOID in (" + PHOTOID + ")";
bool result = DataAccess.ExecuteNonQuery(SQL_DEL_PHOTOS); return result;
}
public static bool updatePhotosAlbumId(string AlbumName, ArrayList photoIds) {
string TrasALm = "update PHOTO_PHOTOS set ALBUMID=(select ALBUMID from PHOTO_ALBUMS where ALBUMNAME='" + AlbumName + "') where PHOTOID in ("; for (int i = 0; i < photoIds.Count; i++) {
string PID = (string)photoIds[i]; TrasALm = TrasALm + PID + ","; }
TrasALm = TrasALm.Remove(TrasALm.Length - 1); TrasALm = TrasALm + ")";
bool result = DataAccess.ExecuteNonQuery(TrasALm); return result; }
public static string GetPhototype(string photoid) {
String SQL_GET_PHOTOTYPE = @"select PHOTOTYPE from PHOTO_PHOTOS where PHOTOID=" + photoid;
string phototype = (string)DataAccess.ExecuteScalar(SQL_GET_PHOTOTYPE); return phototype; } }
}
3.用户管理类 using System.Data; using Edu.Sovo.OACF;
using System.Data.SqlClient;
namespace erBLL
{
public class UserService {
public UserService() { }
private static String SQL_EMP_BY_LOGINNAME =
@"select USERID,USERNAME,PASSWORD from PHOTO_USERS where USERNAME = @USERNAME"; public static Dictionary<String, String> getUserByLoginName(String username) {
return DataAccess.ExecuteToSet(SQL_EMP_BY_LOGINNAME, "USERNAME", username); }
//修改密码
private static String SQL_UPDATEPSW_BY_USERID = @"update PHOTO_USERS set PASSWORD=@PASSWORD where USERID=@USERID";
public static bool UpdatePsw(Dictionary<string, string> userinfo) {
bool result = DataAccess.ExecuteNonQuery(SQL_UPDATEPSW_BY_USERID, userinfo); return result; } }
}
4)表示层的设计与实现 1.default.css设计
.bartype { color: blue;
background-color: green;
} .errormsg { font-size: 12pt; font-family: @宋体; color:Red; }
.barborder { border-style: solid; border-width: 1px; width: 200px;
vertical-align: middle; }
.TextCss { background-color: #56D7A5; color: #FFFFFF; font-family: Arial; font-size: 12pt;
padding: 2px 3px 2px 3px; font-weight: 100;
} body { background: #ffffff; margin: 15;
scrollbar-face-color: #dee3e7; scrollbar-highlight-color: #ffffff; scrollbar-shadow-color: #dee3e7; scrollbar-3dlight-color: #d1d7dc; scrollbar-arrow-color: #006699; scrollbar-track-color: #efefef; scrollbar-darkshadow-color: #98aab1; }
body, table, th, td, input, select, textarea { font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; } img, form { margin: 0; padding: 0; border: 0;
} a { font-family: Verdana, Arial, Helvetica, sans-serif; text-decoration: none; }
a:link, a:visited { color: #063685; text-decoration: none;
}
a:hover, a:active
color: #FF5500;
text-decoration: underline;
}
table.default { border: 1px solid #0283c5; border-collapse: collapse; }
table.default td, table.default tr.style1 td { padding: 2 5 2 5; height: 26px;
border: 1px solid #ffffff; }
table.default tr.title td, table.default tr.title th { font-weight: bold; text-align: center; background: #20A8F0; color: #ffffff;
border: 1px solid #ffffff; white-space: nowrap; height: 26px; }
table.default td.item { font-weight: bold; color: #333333; text-align: center; vertical-align: top; padding-top: 4px; }
table.explain { margin-top: 5px; margin-bottom: 5px; }
table.explain td { border: 1px solid #333333; background: #D5EFFE; padding: 8px;
line-height: 120%;
.emptyText { } .btn { } { } .tdnormal { }
.tdselected { }
.navtab td {
height: 22px; padding-left: 5px; padding-right: 5px; border: 1px solid white; border-bottom: 0; background: #E1DEDA; padding-left: 5px; padding-right: 5px;
border-bottom: 1px solid white; padding: 5 5 5 2;
border-right: #002D96 1px solid; padding-right: 5px;
border-top: #002D96 1px solid; padding-left: 5px; font-size: 12px;
filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#FFFFFF, border-left: #002D96 1px solid; cursor: hand; color: black; padding-top: 3px;
border-bottom: #002D96 1px solid; width: 20%; display: block; border-width: 1px thin; border-color: Green;
EndColorStr=#9DBCEA);
color: white; font-size: 12px; text-align: center; border: 1px solid black; padding-left: 8px; padding-right: 8px;
}
a.navbar { text-decoration: none; color: #333333;
}
a.navbar:visited { text-decoration: none; color: #333333; }
a.navbar:active { text-decoration: none; color: #333333; }
a.navbar:hover { text-decoration: underline; color: #333333; } .errorBox { border: 1px solid #ff0000; padding: 5px; background: #FFCCCC; } ul { margin-left: 30px; margin-top: 0; margin-bottom: 0;
}
.selectedPage {
border: 1px solid #999999;
background: #ffffcc;
}
color: #000000; padding: 0 3 0 3;
a.navlink { }
font-family: 宋体; height: 25px; font-weight: normal; letter-spacing: 1px; padding: 4 5 0 5; background: #e0e0e0; border: 2px outset; margin-bottom: 5px;
filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff,
EndColorStr=#20A8F0);
第三章 实训心得体会 1、学到了什么
2、遇到了哪些问题,如何解决的 …. 参考文献
[1] 孙培民.王鸿铭.王喜胜.张麦玲.杨韶华. 应用软件开发技术. 北京;高等教育出版社,2008.12
[2] 北京科海. 程序设计教程. 北京;北京科海电子出版社,2009 [3] 吴教育. SQL Server数据库应用实训教程. 北京;中国铁道出版社,2007.8
[4] 王平. C#程序设计语言任务驱动式教程. 北京;北京航空航天大学出版社, 2008.9
正在阅读:
综合实训报告测试版05-25
现货白银投资者正确对待亏损_白银投资开户07-17
第02章财政支出的基本理论08-18
CY7C68013A - slave - fifo说明文档 - 图文09-28
中医眼科学考试重点06-27
AutoCAD和Microstation10-17
猫脂肪肝综合征 - 葛慎锋 - 图文10-31
第六讲.大气光学现象07-19
十三五重点项目-辣酱油项目资金申请报告05-19
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 测试版
- 报告
- 综合
- 宠物食品行业前景
- 制造业现场管理实践
- 江苏省计算机二级资料整理大全
- ISO9001认证好处与目的
- 2014经济师考试中级金融专业历年真题精选汇总一(7)
- 幼儿园小班教案3篇_2
- 2012年中考时政热点一 2011道德模范人物评选
- 如何选择西瓜良种
- 辽宁省大连市第二十高级中学2014-2015学年高一英语上学期期末考试试题
- 癌细胞诱导分化_凋亡的新途径
- 初中文学常识(古诗文作者)
- 人教版七年级语文(上册)古诗、词、文专题复习资料
- 卷烟物流管理规范
- 2010公民道德建设月总结
- 停车场管理系统需求分析与概要设计
- CA-1500标准操作规程
- 发电厂电气高压专业题库及答案
- 安装工程估价实训方案4
- 测量小灯泡的伏安特性曲线
- 上海交通大学微机原理电子教案教 学 进 度