软件工程课程设计报告.docx
- 文档编号:23029953
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:23
- 大小:742.92KB
软件工程课程设计报告.docx
《软件工程课程设计报告.docx》由会员分享,可在线阅读,更多相关《软件工程课程设计报告.docx(23页珍藏版)》请在冰豆网上搜索。
软件工程课程设计报告
计算机虚拟仪器技术
实验报告
学生姓名:
张铁青
学院:
机电工程学院
专业及班级:
工业gc1201
学号:
0121204931107
日期:
2015年1月19日
摘要:
本系统通过对LabVIEW软件的应用,设计软件结构,实现网络相册的的基本功能,包括用户创建影集,修改影集名称,用户的注册和登录,用户图片的上传,数据库图片的播放;管理员管理图片和用户。
系统利用.Net平台技术进行开发,实现相册的的动态管理,使得对信息的管理更加及时、高效,提高了效率。
同时还对系统的开发原理、功能特点和设计方案进行了介绍。
一.引言
通过软件开发的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能力。
具体如下:
1.学习和实践在分析和设计计算机应用系统所需要的知识,包括面向对象的系统分析与设计,编码和测试方面的知识;
2.熟悉自动化的软件开发工具RationalRose2003,并将其运用于软件开发的全过程;
3.进一步加强和提高软件工程文档的编写能力;
4.培养协作能力和团队精神。
二、设计正文
1.概述
1.1课题题目:
个人电子相册的设计与实现
1.2系统的主要目标:
研究LabVIEW编程技术,了解B/S编程技术发展的未来趋势,掌握一种开发平台,编写出具有更高交互性和网络体验的Web应用程序。
1.3系统的开发环境及运行环境:
操作系统:
Windows7旗舰版
建模工具:
RationalRose2003
数据库系统:
Access2007
开发工具:
VisualStudio2010
Web服务器:
IIS+ASP.NET2.0平台
2.系统分析
2.1可行性分析
2.1.1系统总体目标
电子相册是互联网络的产物,现在电子相册系统已经层出不穷,而本系统是一个区别于现在国内外已经开发出来的电子相册网站系统,它是一个单用户空间而非网站,主要是一个为用户提供的个人相片展示、存放的个人相册空间。
这个电子相册的定位是一群朋友共享照片、交流讨论的开放式的个人空间。
本系统可以供自己展示、存放照片,可以让拥有正确口令的浏览者浏览该用户的照片以及发表留言,同时拥有正确口令的浏览者也享有用户所有的权利(上传、删除相片等),它在某种程度上是开放式的、自由式的。
因此这是一个相对来说安全、私密、开放的和朋友分享、交流的私人电子相册空间。
2.1.2技术可行性分析
这个电子相册是一种基于B/S架构的管理系统,它采用目前最有发展前景的c#语言编写,用到了当今先进的技术如Html,CSS+DIV,JavaScript,Mysql等关键技术来实现该系统。
开发本系统的VisualStudio2010编程软件、是可以直接在网络上免费下来得来的,其中的Wamp集成环境在Windows平台下集成了Apache、MySQL、PHP服务,无需再另外下载PHP环境和MySQL数据库。
这些应用软件是现在常用的网页开发工具,都能够很方便的掌握,并且也学了有关网页开发的课程,实现该电子相册空间的技术能够比较好的实现,所以对于本系统在技术上是可以达到的。
2.2需求分析
2.2.1总体需求
该设计系统要具有实用性,功能完善,界面良好。
设计该系统的流程如图3所示。
流程设计:
程序设计:
图2.1程序设计流程图
2.2.2功能需求
本系统应该具有登录验证、修改密码、创建相册、浏览相片、上传相片、删除相册或相片、等功能,详见图4。
登录验证
注册用户
创建相册
浏览相片
上传相片
删除相片
删除相册
1:
“电子相册”系统
1.1:
用户组件
1.2:
管理员模块
1.3:
注册、登录模块
1.4:
阅览模块
图2.2电子相册系统功能结构图
3.系统总体设计
3.1设计问题域子系统
相册系统是实现用户上传照片、用户交流图片以的一个平台,整个电子相册系统有前台和后台两部分,共分为4个模块:
用户上传,管理模块,注册登录模块和阅览模块,分别用于完成各自的功能。
(1)各模块功能
表2-1学生选课系统功能模块表
功能模块
包含子功能模块
功能
管理模块
注册管理子模块
填写信息,进行注册
相册管理子模块
对相册进行管理
相片管理子模块
对相片进行管理
用户上传
用户上传自己的图片
登录
用户用户
阅览模块
查看已经上传的图片
3.2设计数据管理子系统
(1)数据库表
表3-2数据库表
序号
数据库表
数据表存储的内容
1
tb_photo
存储相片的信息
2
tb_type
存储相册的信息
3
admin
存储用户的信息
(3)数据库表结构
①相册tb_type的详细数据字段:
表3-3Student学生用户表
序号
字段名
字段类型
说明
备注
1
ID
nvarchar(20)notnull
序号
关键字
2
TypeName
文本
相册名字
②相片tb_photo的详细数据字段:
表3-4Teacher教师用户表
序号
字段名
字段类型
说明
备注
1
ID
nvarchar(20)notnull
序号
关键字
2
Title
文本
标题
3
Type
数字
所属相册
4
imgPath
文本
图片路径
5
Content
备注
内容
6
Creater
文本
创建者
7
CreatTime
备注
创建时间
③用户表admin的详细数据字段:
表3-7Users管理员表
序号
字段名
字段类型
说明
备注
1
User
nvarchar(20)notnull
用户名
关键字
2
Pwd
nvarchar(20)notnul
系统管理员密码
3.3设计人机交互子系统
(1)用户分类
本系统的用户可分为三类:
2管理员用户;
②普通用户;
(2)用户描述
①管理员用户的描述:
管理员用户在整个选课系统中起到管理和维护的作用,对普通的信息进行管理和维护。
②普通用户的描述:
普通用户负责试用系统的各项
4系统流程分析
4.1用户注册流程图
开始
点击“打开”按钮
选择图片
添加图片信息
点击“确定”按钮
回到主窗口
结束
4.2用户上传图片流程图
4.3用户创建相册流程图
5.系统实现
本系统采用了三层架构来实现,即分为用户界面层(UI)、业务逻辑层(BLL)和数据访问层(DAL),用户界面层是展示给用户的界面,方便用户与系统进行交互;业务逻辑层是对系统业务实体的封装,完成系统业务功能;数据访问层直接与数据库打交道,为业务逻辑层提供底层的数据库操作。
5.1主要是与数据库连接,提供数据库操作功能,代码如下:
publicstaticOleDbConnectioncreateNewCon()//创建并打开一个链接
{
stringconStr="Provider=Microsoft.Jet.OleDb.4.0;DataSource="
+System.AppDomain.CurrentDomain.BaseDirectory+@"\App_Data\photo.mdb";
OleDbConnectioncon=newOleDbConnection(conStr);
con.Open();
returncon;
}
}
5.2所有系统角色用户的基类,完成用户登录验证功能,代码如下:
privatevoidLoginCheck()
{
stringUserID=txtuser.Text.Trim().ToString();
stringpwd=txtpassword.Text.Trim().ToString();
OleDbConnectioncon=Db.createNewCon();
//con.Open();
stringSql="Selectuser,pwdfromadminwhereuser='"+UserID+"'andpwd='"+pwd+"'";
OleDbCommandcmd=newOleDbCommand(Sql.ToString(),con);
//开a始º?
验¨¦证¡è
OleDbDataReaderread=cmd.ExecuteReader();
if(read.Read())
{
Response.Redirect("Index.aspx");
}
else
{
Response.Write("");
}
con.Close();
}
//登录
protectedvoidbtnOK_Click(objectsender,EventArgse)
{
LoginCheck();
}
protectedvoidbtnSi_Click(objectsender,EventArgse)
{
Response.Redirect("resign.aspx");
}
5.3系统注册页面,代码及运行效果如下:
privatevoidAdd()
{
stringUserID=txtuser.Text.Trim().ToString();
stringpwd=txtpassword.Text.Trim().ToString();
OleDbConnectioncon=Db.createNewCon();
stringSql="insertintoadmin([user],[pwd])"+
"values(@user,@pwd)";
OleDbCommandcmd=newOleDbCommand(Sql.ToString(),con);
cmd.Parameters.AddWithValue("@user",UserID);
cmd.Parameters.AddWithValue("@pwd",pwd);
intredult=cmd.ExecuteNonQuery();
if(redult>0)
Response.Redirect("Login.aspx");
}
protectedvoidbtnqd_Click(objectsender,EventArgse)
{
Add();
}
}
5.4上传读取图片信息代码如下:
publicintadd(stringtypename){
OleDbConnectioncon=Db.createNewCon();
stringsql="insertintotb_type(typeName)"+
"values(@typeName)";
OleDbCommandcmd=newOleDbCommand(sql);
cmd.Connection=con;
cmd.Parameters.AddWithValue("@typeName",typename);
intcount=cmd.ExecuteNonQuery();
returncount;
}
//新?
增?
图ª?
片?
publicintaddpic(stringTitle,inttype,stringimgPath,stringContent,stringCreater,stringcreatTime)
{
OleDbConnectioncon=Db.createNewCon();
stringsql="insertintotb_photo(Title,type,imgPath,Content,Creater,creatTime)"+
"values(@Title,@type,@imgPath,@Content,@Creater,@creatTime)";
OleDbCommandcmd=newOleDbCommand(sql);
cmd.Connection=con;
cmd.Parameters.AddWithValue("@Title",Title);
cmd.Parameters.AddWithValue("@type",type);
cmd.Parameters.AddWithValue("@imgPath",imgPath);
cmd.Parameters.AddWithValue("@Content",Content);
cmd.Parameters.AddWithValue("@Creater",Creater);
cmd.Parameters.AddWithValue("@creatTime",creatTime);
intcount=cmd.ExecuteNonQuery();
returncount;
}
//读¨¢取¨?
图ª?
片?
信?
息¡é
publicDataSetgetAllPic(){
OleDbConnectioncon=Db.createNewCon();
OleDbDataAdapterdad=newOleDbDataAdapter();
dad.SelectCommand=newOleDbCommand("select*from[tb_photo]orderby[id]DESC",con);
DataSetds=newDataSet();
dad.Fill(ds,"tb_photo");
con.Close();
returnds;
}
publicDataSetgetAllPicToN()
{
OleDbConnectioncon=Db.createNewCon();
OleDbDataAdapterdad=newOleDbDataAdapter();
dad.SelectCommand=newOleDbCommand("selecttop10*from[tb_photo]orderby[id]DESC",con);
DataSetds=newDataSet();
dad.Fill(ds,"tb_photo");
con.Close();
returnds;
}
publicDataSetgetAllPicType()
{
OleDbConnectioncon=Db.createNewCon();
OleDbDataAdapterdad=newOleDbDataAdapter();
dad.SelectCommand=newOleDbCommand("select*from[tb_type]orderby[id]asc",con);
DataSetds=newDataSet();
dad.Fill(ds,"tb_type");
con.Close();
returnds;
}
publicDataSetgetAllPicTypeById(intid)
{
OleDbConnectioncon=Db.createNewCon();
OleDbCommandcmd=newOleDbCommand("select*from[tb_type]whereid=@idorderby[id]asc",con);
cmd.Parameters.AddWithValue("@id",id);
OleDbDataAdapterdad=newOleDbDataAdapter(cmd);
DataSetds=newDataSet();
dad.Fill(ds,"tb_type");
con.Close();
returnds;
}
publicDataSetgetAllPicTypeByType(inttypeId)
{
OleDbConnectioncon=Db.createNewCon();
OleDbCommandcmd=newOleDbCommand("select*from[tb_photo]wheretype=@typeIdorderby[id]asc",con);
cmd.Parameters.AddWithValue("@typeId",typeId);
OleDbDataAdapterdad=newOleDbDataAdapter(cmd);
DataSetds=newDataSet();
dad.Fill(ds,"tb_photo");
con.Close();
returnds;
}
publicintGetMaxId(){
OleDbConnectioncon=Db.createNewCon();
OleDbCommandcmd=newOleDbCommand("selectmax(Id)from[tb_photo]",con);
intcount=(int)cmd.ExecuteScalar();
con.Close();
returncount;
}
publicintGetMinId()
{
OleDbConnectioncon=Db.createNewCon();
OleDbCommandcmd=newOleDbCommand("selectmin(Id)from[tb_photo]",con);
intcount=(int)cmd.ExecuteScalar();
con.Close();
returncount;
}
publicDataSetgetAllPicById(intid)
{
OleDbConnectioncon=Db.createNewCon();
OleDbCommandcmd=newOleDbCommand("select*from[tb_photo]whereid=@idorderby[id]asc",con);
cmd.Parameters.AddWithValue("@id",id);
OleDbDataAdapterdad=newOleDbDataAdapter(cmd);
DataSetds=newDataSet();
dad.Fill(ds,"tb_photo");
con.Close();
returnds;
}
publicintgetAllPicCount(){
OleDbConnectioncon=Db.createNewCon();
OleDbCommandcmd=newOleDbCommand();
cmd.Connection=con;
cmd.CommandText="selectcount(*)fromtb_photo";
intcount=(int)cmd.ExecuteScalar();
returncount;
}
}
5.5用户创建相册界面代码及运行效果如下:
protectedvoidPage_Load(objectsender,EventArgse)
{
if(!
Page.IsPostBack){
DataTabledt=newphoto().getAllPicType().Tables[0];
this.GridView1.DataSource=dt;
this.GridView1.DataBind();
}
}
protectedvoidbtnadd_Click(objectsender,EventArgse)
{
stringtypename=this.TextBox1.Text.ToString();
intcount=newphoto().add(typename);
if(count>0)
{
Page.RegisterStartupScript(null,"");
}
else{
Page.RegisterStartupScript(null,"");
}
}
protectedvoidGridView1_RowDataBound(objectsender,GridViewRowEventArgse)
{
e.Row.Attributes.Add("onmouseover","currentcolor=this.style.backgroundColor,this.style.backgroundColor='red'");
e.Row.Attributes.Add("onmouseout","this.style.backgroundColor=currentcolor");
}
}
5.6用户图片代码及运行效果如下:
publicvoiddatabinds(){
DataTabledt=newphoto().getAllPicType().Tables[0];
this.dropdownlists.DataSource=dt;
this.dropdownlists.DataTextField="typeName";
this.dropdownlists.DataValueField="id";
this.dropdownlists.DataBind();
}
protectedvoidbtnadd_Click(objectsender,EventArgse)
{
//stringid=newRandom().Next(1,1000).ToString();
//将?
附?
件t传ä?
送¨ª到Ì?
服¤t务?
器¡Â上¦?
stringpath=FileUpload1.PostedFile.FileName.ToString();//获?
取¨?
上¦?
传ä?
图ª?
片?
路¡¤径?
stringext=path.Substring(path.LastIn
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 课程设计 报告