1、Web应用程序开发能力综合实训-在线相册设计系别: 班级: 姓名: 学号: 日期: 1、课程设计题目:在线相册设计2、课程设计目的一个综合性的实践环节,通过课程设计促进知识的复习和所学知识的巩固。并利用所学知识能够利用VS2005开发一个简易系统.3、课程设计要求1、以小组为单位进行设计,四人一组。2、任选一个设计完成,界面自定,同样的项目功能代码不能雷同,否则以不及格计。3、上交的成果的内容必须由以下两个部分组成:a)上交源程序:按照基本功能的具体要求所开发的所有源程序及数据库文件,首页文件统一为index.aspx,图片文件统一存入Images文件夹b)课程设计报告:电子档保存在word
2、文档中,文件名要求按照“班级学号_姓名_课程设计报告”起名,如文件名为“02计网1班55号_张三_课程设计报告.doc”。c)纸质课程设计报告要求十页以内。需求分析随着人们生活水平的逐步提高,旅游照相成了大家必不可少放松项目。虽然照片最后会存入到自己的电脑里,但是时间一长、照片一多,这些有着勾起回忆的“资料”,就会显得杂乱无章,即不方便欣赏,也不方便管理。而在线相册具有欣赏、传播方便,界面美观等特点,可以很好的管理所存入的照片,不失为最佳欣赏、保存照片的相册工具。在线相册系统平台也就应此应运而生。本系统是一种基于B/S架构的在线管理系统,它采用目前最流行的java语言编写,用到了当今先进的技术
3、如 jsp技术、基于JSP+Servlet+DAO模式在小型应用系统中式灵活并稳定的架构,是典型的基于MVC模式的架构。同时采用MVC框架技术也提高了系统的可维护性。系统分为:个人管理模块、相册管理模块、相片管理模块。注:注册用户登陆后可以进行添加相册,上传,删除照片,修改资料等一系列操作。而如果是未注册用户只能查看相册中的内容,没有权力进行相应的修改。特别是上传相片、相册列表、相册管理、相片查看及评论管理等模块是在线相册系统的重点。4、课程设计内容1.系统总体结构图 1-1 总体架构2.用例图用例图就是把网站各个用户的动作分解一下,再用画图软件把它画出来。电子相册系统的角色之一是注册用户目的
4、:完成注册用户登陆后的一系列操作的完整过程。(1)用户输入登录名,密码,系统识别用户信息的有效性;(2)对用户信息进行识别;(3)用户完成相册列表,新建相册修改资料等一系列操作;(4)退出系统。图 1-2 用例图用 户 主 页用 户 相 册 管 理退 出 系 统相 片 管 理用 户 管 理评 论 管 理用 户 登 录在 线 相 册 平 台用户管理 相片管理 相册管理 退出登录评论管理3.系统功能模块结构在线相册系统的目标是工在线用户发布相片、将相片归类存放,并允许其他在线网友欣赏及评论相片。在线相册管理系统分为用户管理、相册管理模块、相片管理模块、评论管理模块。注:注册用户拥有全部操作权限,而
5、如果是未注册用户只能查看相册中的内容,没有权力进行相应的修改。4.相片管理模块(1) 业务描述:用户登录后能发布并删除、修改发布的相片。(2) 业务流程:用户可以浏览相关的相册的照片,获取相片的列表和分页(某个用户某个分类中的相片),以缩略图及全图两种模式来显示选择的某张相片,在该页面中用户可以根据自己的需要上传相应的图片,为图片取名、分类,提交后返回相册列表。(3) 输入数据:记录编号是自增列不显示在前台页面;图片名称、文件简介分别以文本框的形式展示在前台页面中,由用户输入;图片的上传以一种数据流的形式出现,出现在前台的时候以一种需要用户点击选择的形式出现。(4) 角色说明:此功能主要由注册
6、用户和非注册用户使用。5.相册管理模块(1) 业务描述:新建相册,删除相册,修改相册,并获取列表和分页(某个用户个人分类)。(2) 业务流程:点击相册管理,进入相册管理的主界面根据提示输入相关的信息后选择提交,则可看到刚刚新添加的那个相册,然后可以根据自己的需要选择是的操作。 (3) 错误处理:在填写信息的过程中不允许有不被填写的栏目,系统会给出相应的提示。(4) 输入数据:由用户输入相应的数据信息。(5) 输出结果:其输出结果为在相册列表中给予相应的显示。(6) 角色说明:此功能主要注册用户使用。6.用户管理模块(1) 业务描述:用户以用户名及密码登陆 注册,可修改密码。对注册用户来讲,将自
7、己的资料从后台数据库中读取出来然后根据用户的需要进行相应的修改,根据用户资料采集界面来采集相应的数据,根据这些数据来更新数据库中该用户的相应资料。如果是未注册的用户可根据提示进行注册。(2) 业务流程:用户登录后进入我的主页,可以浏览相册和最新10条相片评论信息,选择一相册进入可以浏览相册的整个相片,并查看选中相片的放大图以及对其的评论信息。同时还可以查看每条评论的详细信息。(3) 错误处理:在填写信息的过程中不允许有不被填写的栏目,系统会给出相应的提示。(4) 输入数据:由用户输入相应的数据信息。(5) 输出结果:无(6) 角色说明:此功能主要注册用户使用。7.数据库模块本系统中涉及的数据库
8、主要包括注册用户、相片分类、相片信息及评论信息。注册用户信息表保存在线相册系统的注册用户的基本信息,包括用户名、昵称、密码及注册时间等,如表1-1所示。表1-1 注册用户信息表(userInfo)名称 类型 含义 说明userid Int(8) 主键username varchar(100) 登录用户名 not nullpassword varchar(100) 用户密码nickname varchar(255) 用户昵称addTime datetime 注册时间相片分类只有4个字段:即主键、分类名称、描述信息及所属的用户id。如表1-2。表1-2 相片分类信息(album)名称 类型 含义
9、说明categoryrid Int(8) 主键name varchar(50) 分类名称 not nullmemo varchar(255) 分类描述userid intr(8) 所属用户id 关联到userInfo表的userid相片信息表用于保存用户相片及其相关信息,包括相片标题、相片简介、相片上传时间、相片所属分类、相片保存的地址,以及相片的文件名。其中,相片保存的地址及文件名是附加信息:相片文件名是用来记录用户上传相片时原相片文件的名称,用于用户浏览或下载相片时让Web浏览器显示文件名,以供用户使用;文件类型信息指的是相片文件的格式类型,在显示相片时会用到。如表1-3。表1-3 相册信
10、息表(image)名称 类型 含义 说明photoid Int(8) 主键Title varchar(50) 相片标题memo varchar(255) 相片描述catrgroyid int(8) 相片分类 关联到category 表的categoryidurl varchar(100) 相片保存地址pubTime datetime 相片上传或最新修改时间filename intr(8) 所属用户id8.运行界面如图1-3所示:图 1-3 主界面5、课程设计核心代码Login.aspx代码如下:protected void btnLogin_Click(object sender, Event
11、Args e)string name =TextBox1.Text.Trim();string pswd =TextBox2.Text.Trim();string str = “server=.;database=MyPhoto;uid=sa;pwd=111111;“;SqlConnection con = new SqlConnection(str);con.Open();str = “select count(*) from UserInfo“;SqlCommand cmd = new SqlCommand(str,con);int count = Convert.ToInt32(cmd.
12、ExecuteScalar();if (count 0) Response.Redirect(“main.aspx“);elseResponse.Write(“alert(登录不成功,请检查输入信息);“);addImage.aspx主要代码如下:protected void Button1_Click(object sender, EventArgs e)DB db = new DB();int albumID = Convert.ToInt32(DropDownList1.SelectedValue);DateTime imageTime = DateTime.Now;string ima
13、geUrl = “image/“ + FileUpload1.FileName;string imageType = FileUpload1.FileName.Split(.)1;string imageName=FileUpload1 .FileName .Split (.)0;string imageDesc=TextBox1 .Text .ToString ();if(imageType .ToLower ()=“jpg“|imageType .ToLower ()=“gif“|imageType .ToLower ()=“png“)FileUpload1 .SaveAs (Server
14、 .MapPath (imageUrl );db .addimage (albumID ,imageName ,imageUrl ,imageTime ,imageDesc);Response .Write (“alert(添加成功!);location.href=Default.aspx; “);addAblum.aspx主要代码如下:protected void Button1_Click(object sender, EventArgs e)DB db = new DB();string albumName = TextBox1.Text;DateTime albumTime = Dat
15、eTime.Now;string logourl = “image/“ + FileUpload1.FileName;string exname = FileUpload1.FileName.Split(.)1;string albumDesc = TextBox2.Text;if (exname.ToLower() = “jpg“ | exname.ToLower() = “gif“ | exname.ToLower() = “png“)FileUpload1.SaveAs(Server.MapPath(logourl);db.AddAlbum(albumName, albumTime, l
16、ogourl, albumDesc);Response.Write(“(创建专集成功);location.href=default.aspx;“);updateAblum.aspx主要代码如下:protected void Page_Load(object sender, EventArgs e)if(!IsPostBack )DB db = new DB();int albumID = Convert.ToInt32(Request.QueryString“id“);TextBox1.Text = db.select_albumMore(albumID).Rows00.ToString();
17、TextBox2.Text = db.select_albumMore(albumID).Rows02.ToString();Image1.ImageUrl = db.select_albumMore(albumID).Rows01.ToString();protected void Button1_Click(object sender, EventArgs e)DB db = new DB();int albumID = Convert.ToInt32(Request.QueryString“id“);string albumDesc = TextBox2.Text.ToString();
18、string albumName = TextBox1.Text.ToString();DateTime albumTime = DateTime.Now;string logourl = “image/“ + FileUpload1.FileName;string exname = FileUpload1.FileName.Split(.)1;if (exname.ToLower() = “jpg“ | exname.ToLower() = “png“ | exname.ToLower() = “gif“)FileUpload1.SaveAs(Server.MapPath(logourl);
19、db.updateAlbum(albumID, albumDesc, albumName, albumTime, logourl);Response.Write(“alert(修改成功);location.href=default.aspx?;“); Update.aspx.cs代码如下:protected void Page_Load(object sender, EventArgs e)if (!IsPostBack)DB db = new DB();int imageID=Convert .ToInt32 (Request .QueryString “imageID“);TextBox1
20、 .Text =db .select_Desc (imageID ).Rows 00.ToString ();protected void Button1_Click(object sender, EventArgs e)DB db = new DB();int albumID = Convert.ToInt32(DropDownList1.SelectedValue);string imageDesc = TextBox1.Text.ToString();int imageID = Convert.ToInt32(Request.QueryString“imageID“);db.update
21、(albumID, imageDesc, imageID);Response.Write(“alert(修改成功);location.href=default.aspx?;“); 6、课程设计心得体会在这次系统设计中我深刻体会到以下三点:(1)需求分析是以后设计和实现能顺利进行的保证和依据,若没有做好需求分析,那么你就不知道自己的系统应该实现什么功能,这样会导致在以后的系统实现时会频繁的给系统增加功能,而把整个设计搞得很乱。因此需求分析必须认真做好,为以后设计和实现奠定好的基础。(2)不要急于做总体设计,也不要忽略总体设计的重要性。在做总体设计之前一定要对所做系统有个清楚地认识,也要对开发系统得技术尤其是关键技术有清楚的认识,然后选择设计模式或设计思想,这样可以避免把系统复杂化或过于简单化。(3)整体规划或总体设计不必过于注重实现细节。在做总体设计时不要一味的把某个功能具体到实现,不要老是把精力放在怎么实现上,而是要放在怎样完整的抽象整个系统上。设计中的不足:在本次设计开发过程中,在代码的整体编排上独立性有一很大的提高,但是随之而来的,在可读性方面可能还有一些欠缺考虑的地方存在,对于其本系统的设计者来看,整体的架构可能还不太清晰,总体还是不够好,今后应该在实践