




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
此文档收集于网络,如有侵权,请联系网站删除 中原工学院软件学院 二级实践课题设计任务书姓 名 刘亚敏 计算机信息管理 专业 112 班题 目相册管理系统的设计和实现设计任务要求设计一个简单的相册管理程序,能实现新建、打开相册,导入照片、幻灯片放映、旋转图片等功能。可实现按相册创建时间、照片上传时间、照片描述等查看相册。要求使用数据库记录照片信息,并用文件夹及文件操作管理相册及照片。时间进度第1周:( 2012.06.112012.06.17 ):系统需求分析,进行界面设计;设计系统的数据库结构进行分析、设计,并通过画E-R图的方式来帮助实现数据库结构的完整设计,列出数据库数据表,之后以列出的关系模型为依据进行第2周:( 2012.06.18 2012.06.24 ):对系统进行详细的分析设计,根据不同的功能模块,对其进行相应的编码及测试;第3周:( 2012.06.25 2012.07.01 ):对系统进行测试和纠错,进一步完善其功能,之后进行报告总结,交与老师验收。原 主始 要资 参料 考与 文 献指导教师签字: 年 月 日摘 要由于市场竞争的需要,交流方式的多样化,用户的可选择的方式也就不断增加,对于软件研发者,软件功能的多样化和完善才是竞争的资本。由于信息交流的多样化,特别是电子信息技术的发展,同时,随着数据库技术,客户/服务器技术等的发展,使得电子相册系统的功能更加完善。电子相册管理系统的特点是从相册管理的角度出发,通过数据库将几乎所有与之相关的数据统一管理起来,从而形成了集成的信息集。电子相册管理系统较好的用户界面,信息共享,信息管理使得管理人员和用户使用更加的便捷,而且电子相册系统的可操作性非常强,针对不同教育程度的人群。电子相册系统容纳的信息量非常大,主要通过文字和图片等方式展示出来,针对当前信息交流和管理类型的软件较多的原因,电子相册系统通过简单的几个功能模块就实现了用户的登录、注册、信息更新、信息共享、信息管理等功能。且在不同的功能模块中,分工明确,不同的功能模块通过控件联系起来。从而使得用户之间的交流更加的多样化。关键词:相册管理;数据库设计;界面设计。 目 录摘 要2第1章 绪 论41.1课题背景41.2企业客户关系管理系统的现状41.3 课题研究内容5第2章 需求分析62.1 业务分析62.2 功能需求分析62.3 系统环境需求62.3.1 开发环境需求62.3.2 运行环境需求7第3章 概要设计83.1 数据库概要设计83.1.1 实体及其属性83.1.2 E-R模型8第4章 详细设计94.1 数据库的详细设计94.2 系统详细设计114.2.1相册信息管理114.2.2 商标注册信息管理13第5章 运行及测试15第6章 结束语18附录 系统相关代码20第1章 绪 论1.1课题背景由于市场竞争的需要,交流方式的多样化,用户的可选择的方式也就不断增加,对于软件研发者,软件功能的多样化和完善才是竞争的资本。由于信息交流的多样化,特别是电子信息技术的发展,同时,随着数据库技术,客户/服务器技术等的发展,使得相册系统的功能更加完善。相册管理系统的特点是从相册管理的角度出发,通过数据库将几乎所有与之相关的数据统一管理起来,从而形成了集成的信息集。相册管理系统较好的用户界面,信息共享,信息管理使得管理人员和用户使用更加的便捷,而且相册系统的可操作性非常强,针对不同教育程度的人群。相册系统容纳的信息量非常大,主要通过文字和图片等方式展示出来,针对当前信息交流和管理类型的软件较多的原因,相册系统通过简单的几个功能模块就实现了用户的登录、注册、信息更新、信息共享、信息管理等功能。且在不同的功能模块中,分工明确,不同的功能模块通过控件联系起来。从而使得用户之间的交流更加的多样化。1.2相册管理系统的现状现有系统主要是由人工进行管理和维护,工作量较大,不能满足人们对时间和效率的要求,导致这种相册模式已不再适应日益增长的相册工作管理量。迫切需要找到一种更加智能的相册管理以及注册系统。1.3 课题研究内容希望能够以最低的成本,并且能够在最短的时间期限内研发出具有登录、注册、信息共享、信息管理等功能的相册管理系统。该课题以某商标注册所的客户管理需求为出发点,实现了以下功能:1) 登录模块2) 用户注册模块管理3) 管理员信息管理模块4) 用户信息管理模块5) 系统设置管理模块第2章 需求分析2.1 需求分析的背景在完成了针对相册管理软件市场的前期调查,同时与多位软件使用者进行了全面深入地探讨和分析的基础上,提出了这份软件需求规格说明书。此需求规格说明书对相册管理系统软件做了全面细致的用户需求分析,明确所要开发的软件应具有的功能、性能与界面,使系统分析人员及软件开发人员能清楚地了解用户的需求,并在此基础上进一步提出概要设计说明书和完成后续设计与开发工作。本说明书的预期读者为用户、业务或需求分析人员、测试人员、项目管理人员。2.2 需求分析的任务概述2.2.1 目标1、开发目标人们交流的方式多种多样,但是,我们在交流的同时希望更多的了解对方的信息,本软件即是根据此需求进行开发的。2、应用目标让用户能够通过注册信息,登录并更新及查询自己的信息,在此基础上,用户还能够有效的掌握和共享其它资源,但是不能更新。从而促进了信息管理的规范化和集成化,使得用户之间的交流更加的便捷。2.2.2用户的特点本软件产品的最终用户来源广泛,相同之处则是为了增进与他人之间的交流,管理人员则可以随时更新软件的项目,以及查询和维护信息。本软件面向大众,用户使用过程中的操作也不复杂,因此,本软件的使用频度应达到70%左右。2.2.3假定和约束本软件产品为大众用户使用,然而,本软件在功能上还不够完善,因此对于用户的需求还无法完全实现。2.3 系统环境需求2.3.1 开发环境需求 硬件需求:CPU PIII 500以上的PC服务器,内存1GB以上,硬盘8GB以上。操作系统:Windows XP 软件需求:Microsoft Visual Studio 2005 开发环境,SQL Server 2005数据库2.3.2 运行环境需求硬件需求:CPU PIII 500 以上的PC服务器,内存1CB以上,硬盘8GB以上。操作系统:Windows XP; 软件需求:.NET Framework v2.0。第3章 概要设计3.1 数据库概要设计 对于企业客户关系管理系统的数据库设计,本文将从以下几个方面进行描述:首先是概念模型描述,包括对系统的实体属性分析及系统的E-R图,然后是系统的逻辑结构设计,即给出系统的数据库设计表结构及描述。3.1.1 实体及其属性 整个系统各实体可用以下关系来表示(其中主键已用下划线标识):l 用户(用户名、登录密码)l 相册(相册名、相册编号、创建时间、相册简介)l 照片(照片编号、相片名字、创建时间、相片简介)3.1.2 E-R模型 在分析过系统各实体之间的联系后可得出系统的整体概念模型,用E-R图表示出来,如图3.1所示的。用户名用户密码用户查看相册属性相片相片编号相片名字相册简介创建时间相册名字相册编号相片简介创建时间图3.1 E-R图第4章 详细设计为了方便用户的操作,系统采用了模块化设计的思想,通过各模块的不同组合以实现不同的增、删、改、查功能。最终,使该系统能够具有规范化的格式、完整的信息量和易于查询等的特点。4.1 数据库的详细设计依据数据库的概要设计,最后总结出数据库结构的主要数据表包括:用户信息表,相册信息表,相片信息表。以下将给出系统数据库设计的逻辑模型,即各数据表的结构。1、用户信息表 用户信息表存储用户的相关信息,表结构如表4.2所示表4.1 用户信息表结构列名数据类型长度允许空是否为主键用户名char20否是用户密码char20否否2、相册信息表 相册信息表存储相册的相关信息,表结构如表4.3所示表4.2 相册信息表结构列名数据类型长度允许空是否为主键用户名char20否是相册名字char20否否相册编号char20否是创建时间smalldatetime否否相册简介Char20否否3、相片信息表 相片信息表存储相片的相关信息,表结构如表4.4所示表4.3相片信息表结构列名数据类型长度允许空是否为主键相册编号char20否是相片编号char20否是相片名字char20否否创建时间smalldatetime否否相片简介nvarchar20否否4.2 系统详细设计以下是系统各主要功能模块的界面设计及实现。进入相册的用户必须先登录,登录页面如图4.1所示图4.1 登录页面4.2.1相册信息管理 用户通过身份验证后进入相应业务功能页面。点击界面上方的导航栏第一项“客户信息管理”,将进入客户信息管理页面,如图4.2所示。图4.2 客户信息管理页面在该页面通过客户名称查询客户信息,对于每条客户信息,系统都提供了编辑、删除及重置密码的功能。点击某一条信息行中的“修改”按钮,将进入客户信息添加页面,如图4.3所示图4.3 客户信息添加页面在该页面输入客户的各项信息之后点击“保存”按钮即可添加或修改一条客户信息。其中“客户类型”和“角色”中的选项系统提供单独的维护界面,如图4.4和4.5所示图4.4 客户类别管理图4.5 角色管理页面4.2.2 商标注册信息管理点击界面上方的导航栏第二项“商标注册管理”,将进入商标注册管理页面,如图4.6所示图4.6商标注册管理界面在该页面通过客户名称查询商标注册信息,对于每条商标信息,系统都提供了编辑、删除的功能。点击某一条商标注册信息行中的“修改”按钮,将进入商标注册信息添加页面,如图4.7所示图4.7 商标注册添加页面在该页面输入商标注册的各项信息之后点击“保存”按钮即可添加或修改一条商标注册信息。其中的“申请事项”,系统提供了单独的管理及添加界面,分第5章 运行及测试在编码的过程中,需要通过不断的对系统进行调试,才能对其功能做出完善性的补充。所以测试在此期间起了相当大的作用。 以下给出用户登录及客户信息管理模块的若干主要测试用例。如表5.1所示。此文档仅供学习与交流表5.1 测试用例序号功能模块测试功能点操作步骤及数据期望结果实际结果分析处理方式登录输入正确用户名密码在登录页面输入用户名及密码,点击“登录”按钮正常登录,显示相应功能页面正确输入正确的用户名和错误的密码在登录页面输入用户名及密码,点击“登录”按钮不能正常登录,系统给出提示系统给出提示:“密码错误,请重新输入”用户名或密码空白在登录页面不输入用户名及密码,直接点击“登录”按钮系统给出提示系统给出提示“请输入用户名及密码”客户信息管理客户信息添加在客户信息添加页面输入客户信息,点击“保存”按钮将客户数据插入数据库未能正常插入“申请日期”字段数据正确性未判断增加客户端脚本验证该控件的数据合法性客户信息修改在客户信息管理页面选择某条用户信息,点击“修改”按钮,输入客户信息,点击“保存”按钮修改数据库中相应客户信息记录提示“受理日期”数据不合法未判断“受理日期”增加客户端脚本验证该控件的数据应在“受理日期”之后客户类别管理在“客户类别管理”中增加一条客户类别数据在客户信息管理中的客户类别中出现该类别正确第6章 结束语参考文献01郭兴峰, ASP.NET动态网站开发基础教程(C#篇)M,北京:清华大学出版社, 2006.502孙士宝,ASP.NET数据库网站设计教程(C#篇)M,北京:电子工业出版社, 2010.3附录 系统相关代码网站首页的主要代码如下:登录: protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) UserLogin(); BUser bUser = new BUser(); BCustomer bCustomer = new BCustomer(); BSalesman bSalesman = new BSalesman(); private void UserLogin() string userName=Request.FormuserName; string pwd=Request.Formpwd; if (!string.IsNullOrEmpty(userName) & !string.IsNullOrEmpty(pwd) pwd=Commons.StringHelper.MD5Encrypt(pwd); bool hasUserName = bCustomer.IsSameUserName(userName);/先判断客户表是否存在此用户名 if (hasUserName)/如果存在 bool rightPwd = bUser.CheckPwd(userName, pwd, Customer);/判断密码是否正确 if (rightPwd)/如果正确 string roleName = bUser.GetRoleName(userName, Customer);/获取该用户名对应的角色 SessionuserName = userName; SessionroleName = roleName; Sessiontable = Customer; Response.Write(ok);/验证成功,向页面发送成功信息 Response.End(); else/密码错误 Response.Write(errorpwd);/向页面写入错误信息 Response.End(); else/如果客户表不存在此用户名 hasUserName = bSalesman.IsSameUserName(userName);/判断业务员表是否存在此用户名 if (hasUserName) bool rightPwd = bUser.CheckPwd(userName, pwd,Salesman); if (rightPwd) string roleName = bUser.GetRoleName(userName, Salesman); SessionuserName = userName; SessionroleName = roleName; Sessiontable = Salesman; Response.Write(ok); Response.End(); else Response.Write(errorpwd); Response.End(); else Response.Write(erroruser); Response.End(); 公司注册:string action = ;/进入该页面的操作行为 protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) action = Request.QueryStringaction; if (action = update) DataRead(); protected void save_Click(object sender, EventArgs e) string action = Request.QueryStringaction; if (action = update) if (Update() AlertAndRedirect(修改成功, CompanyMng.aspx); else if (Add() AlertAndRedirect(添加成功, CompanyMng.aspx); private bool Add() Company company = new Company() CustomerId = new BCustomer().GetEntityByCustomerName(txtCustomerName.Text.Trim().Id, CompanyName = txtCompanyName.Text.Trim(), Cost = txtCost.Text.Trim(), FinalyDate = txtFinalyDate.Text.Trim(), LegalPerson = txtlegalPerson.Text.Trim(), LinkMan = txtLinkman.Text.Trim(), OrderDate = txtOrderDate.Text.Trim(), RegesterAddress = txtRegAddress.Text.Trim(), RegesterMoney = txtRegMoney.Text.Trim(), Remark = txtRemark.Text.Trim(), SalesMan = new BSalesman().GetEntityBySalesmanName(txtSalesman.Text.Trim().Id, State = true ; bool isSameCustomerName = new BCustomer().IsSameCustomerName(txtCustomerName.Text.Trim(); if (!isSameCustomerName) Alert(没有该客户,请重新输入!); return false; bool isSameSalesmanName = new BSalesman().IsSameSalesmanName(txtSalesman.Text.Trim(); if (!isSameCustomerName) Alert(没有该业务员,请重新输入!); return false; return new BCompany().Add(company); private bool Update() BCompany bCompany = new BCompany(); int id = int.Parse(Request.QueryStringid); Company company = new Company() CompanyId = id, CustomerId = new BCustomer().GetEntityByCustomerName(txtCustomerName.Text.Trim().Id, CompanyName = txtCompanyName.Text.Trim(), Cost = txtCost.Text.Trim(), FinalyDate = txtFinalyDate.Text.Trim(), LegalPerson = txtlegalPerson.Text.Trim(), LinkMan = txtLinkman.Text.Trim(), OrderDate = txtOrderDate.Text.Trim(), RegesterAddress = txtRegAddress.Text.Trim(), RegesterMoney = txtRegMoney.Text.Trim(), Remark = txtRemark.Text.Trim(), SalesMan = new BSalesman().GetEntityBySalesmanName(txtSalesman.Text.Trim().Id, State = true ; return new BCompany().Update(company); private void DataRead() int id = int.Parse(Request.QueryStringid); BCompany bCompany = new BCompany(); Company company = bCompany.GetEntity(id); txtCompanyName.Text = company.CompanyName; txtlegalPerson.Text = company.LegalPerson; txtLinkman.Text = company.LinkMan; txtOrderDate.Text = company.OrderDate; txtFinalyDate.Text = company.FinalyDate; txtRegMoney.Text = company.RegesterMoney; txtRegAddress.Text = company.RegesterAddress; txtCost.Text = company.Cost; txtSalesman.Text = new BSalesman().GetEntity(company.SalesMan).SalesmanName; txtRemark.Text = company.Remark; int customerId = company.CustomerId; txtCustomerName.Text = new BCustomer().GetEntity(customerId).CustomerName; protected void btnReturn_Click(object sender, EventArgs e) Response.Redirect(CompanyMng.aspx); 客户信息添加:protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) CustomerTypeLoad(); RoleLoad(); string action = Request.QueryStringaction; if (action = update) DataRead(); CompanyNameLoad(); LogoLoad(); AddressLoad(); else lblCompany.Visible = false; lblAddress.Visible = false; lblTrademark.Visible = false; ddlistCompanyName.Visible = false; txtAddress.Visible = false; logoList.Visible = false; private void RoleLoad() ddlistRoleName.Items.Clear(); DataSet ds = new BSalesman().GetRole(); for (int i = 0; i ds.Tables0.Rows.Count; i+) ddlistRoleName.Items.Add(ds.Tables0.Rowsi0.ToString(); private bool Register() string customerName = regCustomerName.Text.Trim(); string userName = regUserName.Text.Trim(); string pwd = StringHelper.MD5Encrypt(123456); string tel = regTel.Text.Trim(); string date = regDate.Text.Trim(); string cost = regCost.Text.Trim(); int customerType = int.Parse(regCustomerType.SelectedValue.ToString(); string returnPeriod = regReturnPeriod.Text.Trim(); /string companyName = regCompanyName.Text.Trim(); /string address = regAdress.Text.Trim(); string remark = regRemark.Text.Trim(); bool state = true; string roleName = ddlistRoleName.SelectedItem.Text; BCustomer bCustomer = new BCustomer(); Customer customer = new Customer() CustomerName = customerName, UserName = userName, UserPwd = pwd, Tel = tel, Date = date, Cost = cost, CustomerType = customerType, ReturnPeriod = returnPeriod, Remark = remark, CustomerState = state, RoleName=roleName ; bool isSameCustomerName = bCustomer.IsSameCustomerName(customerName); if (isSameCustomerName) Alert(该客户已经存在!); return false; bool isSameUserName = bCustomer.IsSameUserName(userName); if (isSameUserName) /Response.Write(sameName); /Response.End(); Alert(该用户名已经存在,请换另外一个用户名!); return false; return new BCustomer().Add(customer); private void DataRead() regUserName.Enabled = false; regCustomerName.Enabled = false; int id = int.Parse(Request.QueryStringid); BCustomer bcustomer = new BCustomer(); Customer customer = bcustomer.GetEntity(id); regCustomerName.Text = customer.CustomerName.ToString(); regUserName.Text = customer.UserName.ToString(); /regPwd.Text = customer.UserPwd.ToString(); /regConfirmPwd.Text = customer.UserPwd.ToString(); regTel.Text = customer.Tel.ToString(); regDate.Text = customer.Date.ToString(); regCost.Text = customer.Cost.ToString(); regCustomerType.Text = customer.CustomerType.ToString(); regReturnPeriod.Text = customer.ReturnPeriod.ToString(); /regCompanyName.Text = customer.CompanyName.ToString(); /regAdress.Text = customer.Address.ToString(); regRemark.Text = customer.Remark.ToString(); /chkState.Checked = customer.CustomerState; ddlistRoleName.Text = customer.RoleName.ToString(); private void CustomerTypeLoad() regCustomerType.Items.Clear(); DataSet ds = new BCustomer().GetCustomerType(); for (int i = 0; i ds.Tables0.Rows.Count; i+) regCustomerType.Items.Add(ds.Tables0.Rowsi1.ToString(); regCustomerType.Itemsi.Value = ds.Tables0.Rowsi0.ToString(); private bool Update() BCustomer bcustomer = new BCustomer(); int id = int.Parse(Request.QueryStringid); string customerName = regCustomerName.Text.Trim(); string userName = regUserName.Text.Trim(); string tel = regTel.Text.Trim(); string date = regDate.Text.Trim(); string cost = regCost.Text.Trim(); int customerType = int.Parse(regCustomerType.SelectedValue.ToString(); string returnPeriod = regReturnPeriod.Text.Trim(); string remark = regRemark.Text.Trim(); strin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐饮装修维修合同范本
- 云南廉价租房合同范本
- 西方飞机租赁合同范本
- 住房公积金管理中心创建市文明单位申报材料
- 乡镇2025年防止返贫动态监测帮扶集中排查工作方案
- 2025年安全工器具题库及答案
- 2025年山西省朔州市事业单位工勤技能考试考试题库及参考答案
- 2025年山东省烟台市事业单位工勤技能考试题库及答案
- CN120269323A 冷却器的拆装装置及方法 (华能澜沧江水电股份有限公司)
- 轨道交通考试试题及答案
- 时事政治考试题(含答案)
- 生物标本课程讲解
- 专八备考单词讲解
- 面试必 备:援藏事业编面试题目全解析
- 2024-2025学年七年级数学下学期期末测试卷(人教版)原卷版
- 2025年生猪屠宰检疫竞赛题库
- 2025法拍房屋代理竞买合同范本:专业中介服务
- 2025年中级银行从业资格之中级风险管理真题及答案详解(基础+提升)
- 数控加工程序管理办法
- 2025年综合类-农艺师考试-农艺师考试-园艺工考试-高级花卉工考试历年真题摘选带答案(5卷100题)
- 小学六年级综合实践环境保护计划
评论
0/150
提交评论