《软件工程课程设计》
项目名称: 影片租赁系统的设计与实现
班 级 12计本
小组成员 范占强、汤羊羊、占艳锋
学 号 120703050、120703069、120703081
完成日期 2015年6月25日
小组成员分工说明:
目 录
1.引言 2.可行性分析 3.系统分析
3.1 功能需求说明 3.2 用例模型 3.3 用例说明 3.4 性能需求说明 3.5 运行环境说明
3.6 数据库概念设计(ER图) 4.系统概要设计 4.1 系统功能模块图 4.2 系统功能模块说明 4.3 类图及说明 4.4 时序图
4.5 数据库物理设计 5.系统详细设计
5.1 主要模块的算法(活动图或流程图表示) 5.2 界面设计 5.3 数据输入/出设计 6.实现(关键性代码) 7.总结
1.引言
随着时代的进步,社会生产力高速发展,新技术层出不穷信息量急剧膨胀,整个人类社会已成为信息化的社会人们对信息和数据的利用和处理已经进入自动化、网络化和社会化的阶段。如在查找情报资料、处理银行帐目、仓库管理、科研生产等方面,无不需要利用大量的信息资源。因此,如何有效地进行数据信息的管理和利用,已经成为人们普遍关注的课题。
互联网发展速度迅猛,电子商务成为21世纪商务发展道路上的一大热点,随着宽带网络的普及及互联网应用方式的发展,电子商务正以前所未有的速度对传统的商务方式及理论造成可很大的冲击。并对以往的商务方式所进行的行业进行可很大程度的渗透。
电子商务以其低廉的成本,相对方便的应用,以及互联网络所带来的前所未有的宣传效应,正成为商务活动发展的一个至关重要的平台。因此我们想开发一个在线的影片租赁系统,以此来表达我们对电子商务发展的拥护和对其前景的看好。
2.可行性分析
2.1经济可行性分析 1、成本:
成本较低,无需大量资金,现已有一部分计算机等所需设备,可充分利用,节约不少设备资金。 2、直接经济效益:
1)提高工作效率,减少影片管理时消耗的时间,降低时间成本; 2)及时掌握影片的租赁信息,以减少因影片归还延期或不还造成的经济损失;
3)便于影片的集中管理,提高查询速度随时了解不同时期影片的购入情况和库存量。
2.2操作可行性分析
如今的计算机已经走进千家万户,硬件成本的下降,导致计算机购买成本的降低. 系统有友好的用户界面、有良好的安全性设置、有详细的操作说明书,这样更使各类用户很快地掌握系统的使用方法,操作友好因此在操作上是可行的。 2.3技术可行性分析
从目前IT业界比较流行的数据库开发、管理软件来看,对于比较简单的中小型数据库,ASP.Net和ACCESS数据库的结合无疑是在实际应用中较为成功的一种解决方案。为用户提供了业界软件开发一直坚持的非常友好、操作简单的用户界面、完善强大的数据库操作功能和简洁明了的数据库接口。所以技术实行起来相对会容易。
3.系统分析
3.1 功能需求说明
传统的影片出租方式是以客户到固定的店面进行挑选,确定后找店员进行登记,交押金以后才能把片子带走,这种出租方式过程中的一些过程非常烦琐,给客户和店主带来的许多的不便。比如:商店的选址,客户在遇到业务繁忙的情况等等,这就容易造成一些本来可以避免的错误的发生。
因此,我们在开发在线的影片租赁系统的时,应对传统出租过程中的一些问题进行分析,并对其进行修改。
综上所述,影片租赁系统客户界面部分在开发的时候主要的功能、大致如下: 客户界面部分 用户的登陆和注册 个人信息的查看修改 影片的浏览 影片的预定 租赁信息的查看 3.2用例模型 3.2.1参与者
用户租赁用户后台管理员普通管理员系统管理员
图3.1 参与者
参与者由用户、租赁用户、普通管理员、系统管理员组成。
3.2.2后台管理
< 图3.2 后台管理 后台管理主要包括普通管理员和系统管理员的管理权限,以及各自主要的工作。普通管理员拥有管理影片、影片库存、影片的类型、用户的支付方式以及管理订单。系统管理员拥有管理影片供应商的信息、管理普通管理员团、管理租赁用户、统计数据、发布公告、初始化系统、恢复数据、备份数据、导入导出数据等权限。 3.2.3前台租赁 +the搜索影片搜索影片+the添加影片到购物车 < 图3.3前台租赁 租赁用户搜索要租赁的影片,把影片添加到购物车,租赁用户可以向购物车添加影片和删除影片,并可以修改购物车内影片的数量,生成订单,进入结算中 心。 3.2.4 租赁用户的管理 注册帐号登录系统< 图3.4租赁用户的管理 租赁用户注册并登陆系统可查看和修改个人资料,也可查看自己所订的影片信息(查看历史订单和当前订单)。系统管理员拥有删除租赁用户的权限。 3.3用例说明 本用例描述用户租赁的过程 事件流 1.基本流 1.用户查看影片信息来确认影片的名字价格、基本内容,租借时间。 2.用户通过影片租赁系统来确认影片的状态。 3.用户通过影片租赁系统向管理者租借影片。 4.系统确认用户的请求并由管理员收取费用。 5.管理人员在数据服务器上管理电影信息(修改,添加,删除) 6.将管理人员所做的改动返回数据服务器 7.系统保存管理人员所做改动,并备份原数据 备选流 2a如果用户想要租借的影片已被租借完,给出提示,并返回。 4a如果管理员确认用户的请求失败,给出提示,并返回。 用例名称:用户注册 描述:在租赁影片前,用户必须先在该系统中注册一个账号,以便于系统更好的管理用户,每一个账号只能针对以为用户,这样方便于系统对客户进行一对一管理。 前置条件:无 部署约束:无 正常事件流 (1) 进入注册界面 (2) 填写账号和密码 (3) 填写用户信息 (4) 确认用户信息 (5) 注册成功,进入系统主页面 异常事件流 (1) 用户账号或密码不符合系统要求,返回注册界面 (2) 用户信息不符合系统要求,返回用户填写信息界面 用例名称:用户登录 描述:用户在使用系统之前,必须先要通过自己注册的账号登陆。 前置条件:用户已注册 部署约束:无 正常事件流 (1) 进入登陆界面 (2) 输入账号密码等待系统确认 (3) 登陆成功,进入搜索界面 异常事件流 (1) 用户密码错误,返回登陆界面 (2) 用户验证码错误,返回登陆界面 (3) 等待响应事件过长,系统没有响应 用例名称:查询影片 描述:用户根据自己的需要按要求筛选自己所需要的影片 前置条件:无 部署约束:无 (1) 进入搜索界面 (2) 输入影片的名字 (3) 浏览所需影片的信息 (4) 返回搜索界面 用例名称:用户租赁 描述:用户利用该系统租赁影片 前置条件:用户已登陆 部署约束:无 正常事件流: (1)用户进入搜索界面 (3)用户查找和浏览所需影片 (4)显示所需影片 (5)返回查找界面 (6)查找到所需影片,进行预租 (7)进入预租界面 (8)加入购物车 (9)是否继续查找影片 (10)确认预租订单 (11)选择付款方式 (12)支付订单款 (13)支付成功,等待订单的处理 (14)返回主界面 异常事件流 异常事件:登陆失败 (1) 密码错误返回登陆界面 (2) 验证码错误返回登陆界面 异常事件:预租失败 (1)该影片被租借完,返回预租界面 (2)该影片不存在,返回搜索界面 (3)网络异常支付押金失败,返回支付界面 (4)账户金额不足,支付预租失败 可选事件:影片不存在 (1) 查找影片不存在 (2) 向管理者提出请求 (3) 提供该影片名字 (4) 发送请求 用例名称:修改用户信息 描述:修改自己账号的个人信息 前置条件:用户已登陆 部署约束:无 正常事件流 (1) 进入个人信息管理 (2) 查询个人信息 (3) 修改个人信息 (4) 确认修改信息 (5) 修改成功 用例名称:查询订单 描述:用户登陆系统后,可以查询当前订单还有历史订单 前置条件:用户有租赁记录 部署约束:无 正常事件流 (1) 进入查询界面 (2) 查询已租借订单信息 (3) 查看租借影片的详细信息 用例名称:删除历史订单 描述:用户登陆自己的账号后,可以删除历史订单 前置条件:用户已登陆 部署约束:无 正常事件流 (1) 进入已租赁订单界面 (2) 删除已归还影片订单 (3) 删除成功,返回以租赁订单界面 用例名称:退出登陆 描述:使用户的账号安全退出 前置条件:用户已登录 部署约束:无 正常事件流 (1) 进入主界面 (2) 退出系统 (3) 确定退出登陆 (4) 成功退出登陆 用户模板表 编号 1 用例名称 用户注册 描述 在租赁影片前,用户必须先在该系统中注册一个账号,以便于系统更好的管理用户,每一个账号只能针对以为用户,这样方便于系统对客户进行一对一管理。 2 3 4 5 6 7 8 用户登录 用户租赁 查询影片 查看当前订单 删除历史订单 修改个人信息 退出登陆 用户在使用系统之前,必须先要通过自己注册的账号登陆 用户利用该系统进行租赁 用户根据自己的需要按要求筛选自己所需要的影片 用户登陆系统后,可以查询当前订单还有历史订单 用户登陆自己的账号后,可以删除历史订单 修改自己账号的个人信息 用户的账号安全退出 表3.1用户模板表 用例名称:管理员注册 描述:管理员在对系统进行操作前,需要注册一个账号,一位管理员只能使用一 个账号,这样方便区分是哪一个管理员对系统进行管理等操作。 前置条件:无 部署约束:无 正常事件流 (6) 进入注册界面 (7) 填写账号和密码 (8) 确认密码 (9) 注册成功,进入搜索界面 异常事件流 (3) 管理员密码不符合系统要求,返回注册界面 (4) 用户信息不符合系统要求,返回用户填写信息界面 用例名称:管理员登录 描述:用户在使用系统之前,必须先要通过自己注册的账号登陆。 前置条件:管理员已注册 部署约束:无 正常事件流 (4) 进入登陆界面 (5) 输入账号密码等待系统确认 (6) 登陆成功,进入搜索界面 异常事件流 (4) 用户密码错误,返回登陆界面 (5) 用户验证码错误,返回登陆界面 (6) 等待响应事件过长,系统没有响应 用例名称:管理租赁订单 描述:对用户订单处理的操作 前置条件:用户提出订单 部署约束:无 正常事件流 (1) 进入管理界面 (2) 接受用户的订单 (3) 更新影片的数据库 (4) 提示用户已接受订单 用例名称:管理用户信息 描述:管理者对用户的信息进行管理等操作 前置条件:管理者登陆成功 部署约束:无 正常事件流 (1) 进入查询界面 (2) 查询用户信息 (3) 对逾期未满一个月的客户,发出提示进行催促。 (4) 对逾期未还超过三个月的客户,删除它的租借订单 (5) 返回查询界面 异常事件流 (1) 操作不成功,返回操作界面 (2) 网络异常,系统没用响应 用例名称:管理影片信息 描述:管理者对影片进行更新,删除等操作 前置条件:无 部署约束:无 正常事件流 (1) 进入管理界面 (2) 上传新影片的信息 (3) 上传成功 (4) 更新数据库 (5) 返回上传界面 用例名称:退出登陆 描述:使管理者的账号安全退出 前置条件:管理者已登录 部署约束:无 正常事件流 (1) 进入主界面 (2) 退出系统 (3) 确定退出登陆 (4) 成功退出登陆 管理员模板表 编号 1 用例名称 管理者注册 描述 管理员在对系统进行操作前,需要注册一个账号,一位管理员只能使用一个账号,这样方便区分是哪一个管理员对系统进行管理等操作。 2 管理者登陆 用户在使用系统之前,必须先要通过自己注册的账号登陆 3 4 5 6 处理用户租赁订单 管理用户信息 管理数据库 退出登陆 对用户订单处理的操作 管理者对用户的信息进行管理的操作 管理者对影片进行更新,删除等操作 管理者的账号安全退出 表3.2管理员模板表 3.4性能需求说明 开发环境:windows操作系统 服务器:IIS5.X 开发工具:ASP、ACCESS数据库、Dreamweaver 运行环境的基本需求:IE浏览器 3.5运行环境说明 软件运行环境:WindowsXP专业版 内存:128MB 硬盘:20G 3.6数据库概念设计 数据库概念结构设计阶段是在需求分析的基础上,依照需求分析中的信息要 求,对用户信息加以分类、聚集、和概括,建立信息模型。下面是根据数据库概念设计,得出的实体E-R图: (1) 供应商:供应商ID 供应商地址 电话 e-mail邮箱 (2) 影片:影片类型 影片ID 简介 图片 (3) 顾客:顾客ID 电话 地址 身份证号码 (4) 租赁信息:租借时间 影片ID 用户ID 归还时间 押金 退还金额 (5) 用户分为普通用户和管理员用户 影片从属与影片类型 一个用户可以拥有多个预定和租借关系 一部影片也可以同时拥有多个用户租赁和预定 一个租赁关系只能拥有一个相对应的租赁信息 还片时间退还金额错误信息影片租赁客户属于起租时间押金日期影片类型 图3.5总E-R图 ID管理员密码姓名类型 图3.6 管理员E-R图 ID影片类别描述图片类型 图3.7 影片类别E-R图 影片数量订单ID订单详情歌库ID供应商ID影片价格 图3.8订单详情E-R图 姓名ID注册用户身份证号地址电话邮箱登录密码 图3.9注册用户E-R图 租赁ID顾客ID租赁信息租赁数量租赁日期归还日期退还金额押金 图3.10租赁信息E-R图 名字ID影片信息供应商ID简介价格图片 图3.11影片信息E-R图 名字ID供应商电话地址E-mail 图3.12供应商E-R图 支付宝支付方式现金网银 图3.13支付方式E-R图 4.系统概要设计 4.1系统功能模块图 登陆用户登陆管理员登陆图4.1 登陆模块 用户租赁信息查看修改个人信息筛选影片预定影片影片预览支付租金图4.2用户模块 普通管理员查看用户租赁信息查看当前订单关闭账号删除租赁用户管理影片图4.3普通管理员模块 系统管理员配置系统备份数据发布公告管理普通管理员恢复数据 图4.4 系统管理员模块 4.2系统功能模块说明 (1)登陆:登陆界面分为两种用户登陆。用户登陆和管理员登陆 (2)租赁信息:顾客可以了解租赁的时间,租赁多久返还,价格数量,如果是 会员的话租赁时间可以比普通客户租赁时间长一个星期。 (3)查看修改个人信息:顾客在注册之后可以通过登陆系统查看自己的信息和 修改自己的信息。 (4)筛选影片:顾客登陆系统后,可一按条件筛选自己需要的影片。 (5)预定影片:顾客可以通过系统预定要租赁的影片。 (6)影片预览:顾客在租赁前可以先预览影片前十分钟。 (7)支付租金:顾客在确定支付后,根据需要选择不同的支付方式(支付宝、 银行卡)支付一定的租金。 (8)查看用户租赁信息:管理员可以查看客户租赁的具体影片,租赁时间,返 还时间,如果客户没有在规定的日期返还影片,管理员可以根据逾期时间扣除客户相应的押金。 (9)查看当前订单:管理员可以查看客户已租赁的影片和已预订的影片。 (10)关闭账号:管理员可以关闭系统账号。 (11)删除租赁用户:如果客户逾期(1月以上)没有返还影片或者长时间(一 年以上)管理员可以删除租赁用户。 (12)管理影片:普通管理员将影片分类,管理影片的库存。 (13)配置系统:系统管理员可以对系统进行配置。 (14)备份数据:系统管理员在修复或者更新系统是可以备份数据。 (15)发布公告:系统管理员可以在系统中发布公告,比如暂停租赁,系统维护中等。 (16)管理普通管理员:系统管理员可以新增和删除普通管理员。 (17)恢复数据:如果系统出现故障,系统管理员可以恢复系统中的所有数据。 4.3类图及说明 4.3.1、实体类图 图4.5 实体类图 实体类名称 管理员 影片类别 属性 ID、姓名、密码、类型 ID、类型、描述、图片 订单详情 订单ID、顾客ID、影片价格、供应商ID、影片数量 注册用户 ID、姓名身份证号、地址、电话、邮箱、登录密码 影片信息 ID、名字、供应商ID、价格、简介、图片 租赁信息 顾客ID、租赁ID、租赁日期、租赁数量、归还日期、退还金额、押金 供应商 支付方式 ID、名字、地址、电话、e-mail 支付宝、现金、网银 表4.1实体类表属性 4.3.2、控制类图 处理注册查询个人资料处理登录查询当前订单查询历史订单显示当前帐号处理帐号关闭检查未处理订单 图4.6控制类图 控制类名称 查询当前订单 查询个人资料 查询历史订单 控制类属性 当前订单、注册用户、租赁 个人资料页面、注册用户、查看当前订单、查看历史订单 历史订单、注册用户、租赁 处理登录 检查未处理订单 处理账号关闭 处理注册 显示当前账号 注册页面、注册用户 租赁用户、租赁 显示当前账号、注册用户 注册页面、注册用户 关闭账号页面、处理账号关闭、删除用户页面、注册用户 表4.2控制类表属性 4.3.3边界类图 注册页面登录页面个人资料页面关闭帐号页面当前订单历史订单删除用户页面 图4.7 边界类图 边界类名称 当前订单 登录页面 个人资料页面 边界类属性 租赁用户、查询当前订单 租赁用户、处理登录 租赁用户、注册用户、查看当前订单、查看历史订单、查询个人资料 关闭账号页面 历史订单 删除用户页面 注册页面 租赁用户、显示当前账号 租赁用户、查询历史订单、 系统管理员、显示当前账号、关闭账号 租赁用户、处理注册 表4.3边界类图属性 4.4 时序图 4.4.1 查看当前订单 注册用户 : 用户1: 2: 3: 4: 5: 6: 7: 8: : 当前订单 : 查询当前订单租赁 图4.8查看当前订单 用户登录个人注册的账号进入当前订单页面可以查询当前的订单,又从最后一层把信息逐一反馈给用户。 4.4.2查看个人资料 注册用户 : 个人资料页面 : 查询个人资料 : 租赁用户1: 2: 当前订单3: 历史订单 图4.9查看个人资料 租赁用户登录账号后,进入资料设置页面查看自己的资料,个人资料中包括 个人基本信息、当前订单和历史订单。 4.4.3删除用户 租赁用户 : 系统管理员1: : 删除用户页面 : 显示当前帐号 : 处理账号删除 图4.10 删除用户 系统管理员登录系统系统可以对已经注册的用户进行删除管理,进入删除用户页面,页面中显示要删除的用户当前账号,再处理删除就完成了用户账号的删除。 4.4.4用户登录 注册用户 : 租赁用户1: 2: 输入用户名和密码3: 输入验证码4: 登陆成功 : 登录页面 : 处理登录 图4.11用户登录 租赁用户登录账号,首先点击进入登录页面,输入用户名和密码最后输入验证码,反馈信息登陆成功。 4.4.5注册用户 注册用户 : 租赁用户1: 确定注册2: 提交注册信息3: 注册4: 确认用户输入5: 填写必填信息6: 注册成功 : 注册页面 : 处理注册 图4.12注册用户 租赁用户确定注册账号后,进入注册账号页面,填写进本信息,系统会自动处理注册,提示提醒用户填入必填的信息,用户填写完后系统处理注册,最后把注册用户确认输入的信息,用户确认后系统再成功这条信息反馈给用户。 4.4.6注销登陆 注册用户 : 租赁用户 : 关闭帐号页面1: 2: 3: 4: 成功注销 : 处理帐号关闭 图4.13 注销登录 租赁用户登录后,也可以关闭账号即退出登录。用户进入关闭账号页面,选择关闭后,系统处理账号关闭,提示用户是否确认关闭,确认后关闭账号,把成功注销这条信息反馈给租赁用户。 4.5数据库物理设计 系统的物理结构如下: 租价方案表: 字段名 PMT_ID_N 描述 租价方案ID 键 ● 类型 长度 空值 默认值 autocount Not Null PMT_Price_N PMT_Deposit_N 日租价 押金 single single varchar 50 Not Null 0 Not Null Not Null 0 PMT_Description_N 租价方案描述 PMT_LateFee_N 滞纳金 single Not Null 0 供应商信息表: 字段名 PI_ID_N 描述 供应商ID 键 ● 类型 长度 空值 默认值 autocount Not Null PI_Name_S 名称 varchar varchar Not Null 250 PI_Description_S 描述 系统信息表: 字段名 描述 键 类型 长度 空值 默认值 SI_Owner_S 系统使用者 ● varchar 250 SI_Copyright_N 版权所有者 SI_About_S 关于 varchar 200 varchar 250 SI_Logo_S Logo SI_Content_S 地址 联系人 varchar varchar 250 250 租赁信息表: 字段名 描述 键 类型 长度 空值 默认值 TAC_ID_N 租赁号 ● auto count Not Null TAC_VI_ID_FN 租赁影片ID ○ int Not Null TAC_UI_ID_FN 租赁用户ID ○ int Not Null TAC_ReserveTime_D 预定时间 datetime Not Null TAC_TimeOut_B 是否超时 datetime Not Null False TAC_Return_B 是否返还 boolean Not Null False TAC_StartTime_D 起租时间 datetime TAC_Lease_N 租期 int 1 TAC_EndTime_D 结租时间 datetime TAC_UserPayment_N 用户付款数 single 0 TAC_Status_N 租赁状态 int Not Null 影片承载介质表: 字段名 TI_ID_N 描述 介质ID 键 ● 类型 长度 空值 默认值 autocount varchar 100 Not Null Not Null TI_Description_S 介质名 影片信息表: 字段名 VI_ID_N VI_TI_ID_FN 描述 影片ID 影片介质键 ● ○ 类型 长度 空值 Not Null Not 默认值 autocount int ID VI_VS_ID_FN 影片类型ID VI_PMT_ID_FN 租价方案ID VI_PI_ID_FN 供应商ID ○ int ○ int ○ int Null Not Null Not Null Not Null VI_Title_S 影片名 varchar 50 Not Null VI_Content_S 内容 big 50 Not Null VI_Director_S 导演 VI_Issuer_S 发行商 VI_Rank_N VI_RentCount_N VI_Count_N 评价 varchar varchar 100 int int Not Null Not Null 1 0 出租次数 浏览计数 int Not Null 0 VI_Status_N 影片状态 int Not Null 1 VI_AddTime_D 添加时间 datetime Not Null Now() VI_Img_S 图片地址 varchar 150 影片类型表: 字段名 描述 键 类型 长度 空值 默认值 VS_ID_N 影片类型ID ● autocount Not Null VS_Description_S 描述 VS_Count_N 类型浏览技术 VS_RentCount_N 类型租赁计数 varchar int 50 Not Null Not Null 0 int Not Null 0 用户信息表: 字段名 字段名 UI_PI_ID_FN UI_Name_S UI_IsLock_B 描述 用户ID 键 ● 类型 autocount int varchar boolean 长度 100 空值 默认值 Not Null Not Null 0 Not Null Not Null False 供应商ID ○ 密码 用户是否锁定 UI_CerRank_N 信用级别 int boolean Not Null 0 Not Null False UI_IsProvider_B 用户是否为供应商 UI_Email_S UI_QQ_S UI_IsAdmin_B Email QQ 用户是否为管理员 UI_RentCount_N 用户租赁计数 varchar varchar boolean 50 20 Not Null Not Null False int Not Null 0 5.系统详细设计 5.1主要模块的算法(活动图或流程图表示) 5.1.1租赁流程活动图 进入网站用户登录登录成功?登录成功登录失败查看影片搜索影片中止租赁添加影片到购物车查看购物车提供网上银行信息提交订单帐号信息错误帐号有效?帐号无效派送货物关闭订单订单结束 图5.1租赁流程活动图 用户通过注册的账号登陆,登陆成功可以查看影片,通过系统的帅选功能搜索到自己想要的影片,然后添加到购物车,提交订单成功,会提供网上银行信息,用户自己选择付款方式,租赁成功后商家就会立即发货。 5.1.2 商品状态图 从购物车中删除备选放入购物车被选确认购物车被订租赁用户付款备送指定派货入库采购影片缺货[ 数量<=5 ]出库do/ ^Undefined 图5.2商品状态图 租赁用户选定影片加入购物车,租赁用户可删除也可加入购物车内的影片,当确认购物车内的影片时,确认生成订单,选择付款方式,支付成功,影片出库,如果影片缺货,有管理员采购影片并发货。 5.1.3租赁订单处理活动图 确认支付方式电话联系租赁用户(from State/Activ...修改订单信息(f...授受订单修改支付方式(f...检查支付方式检查库存取消订单派送货物处理付款 图5.3租赁订单处理活动图 租赁用户提交订单,管理员联系租赁用户确认支付方式,并修改订单信息。租赁用户提交订单时,管理员检查订单,并检查库存,修改订单。 5.1.4租赁用户的账号管理 重新登录注册帐号可用登录在线退出离线关闭帐号注销 图5.4租赁用户的账号管理 用户注册账号,登陆系统,当在线时间过长或账号出现异常,账号自动离线,并要求重新登陆。 5.2界面设计 用户界面信息 用户资料管理界面 用户租赁信息界面 用户预订影片界面 6.实现(关键性代码) 6.1用户注册代码 If Request(\"IsReg\")<>\"\" Then '判断用户输入的合法性 „用户名、密码、确认密码、Email不能为空 If Request(\"UserName\")=\"\" Or Request(\"UserPassword\")=\"\"&_ Or Request(\"ConfirmPassword\")=\"\" Or Request(\"Email\")=\"\" Then ResultMsg(\"必填的项目没有填写,请返回重新填写完整的信息!\") Response.End End If „用户名不能为一排空格 Dim tmpUserName For i=1 To Len(Request(\"UserName\")) tmpUserName=tmpUserName&\" \" Next If tmpUserName=Request(\"UserName\") Then ResultMsg(\"请不要输入空格代替必填项目,请返回重新填写完整的信息!\") Response.End End If „密码与确认密码的输入必须匹配 If Request(\"UserPassword\")<>Request(\"ConfirmPassword\") Then ResultMsg(\"两次输入的密码不匹配,请返回重新输入!\") Response.End End If „Email必须符合格式 If IsValidEmail(Request(\"Email\"))=False Then ResultMsg(\"Email输入不符合规范,请返回重新输入!\") Response.End End If „若QQ号不为空,则输入必须为数字 If Request(\"QQ\")<>\"\" Then If IsNumeric(Request(\"QQ\"))=False Then ResultMsg(\"QQ号码必须为数字,请返回重新输入!\") Response.End End If End If „用户名与密码中不能包含SQL字符“‟” If InStr(Request(\"UserName\"),\"'\")>0 Or InStr(Request(\"UserPassword\"),\"'\")>0 Then ResultMsg(\"字符“'”为非法输入,请去掉此字符!\") Response.End End If „用户名、密码、Email和QQ的字符数量不能超过数据库项目的数据类型的限制 If Len(Request(\"UserName\"))>20 Or Len(Request(\"UserPassword\"))>20&_ Or Len(Request(\"Email\"))>50 Or Len(Request(\"QQ\"))>20 Then ResultMsg(\"输入超出了最大字符数量限制(用户名20字符以内”&_ ”,密码20字符以内,Email 50字符以内,QQ 20字符以内。)\") Response.End End If '取得用户输入 Dim UserName,UserPassword,Email,QQ UserName=Server.HTMLEncode(Request(\"UserName\")) '根据用户名判断用户是否已存在 strSQL=\"SELECT UI_Name_S FROM [UserInfo]”&_ ” WHERE UI_Name_S='\"&Request(\"UserName\")&\"'\" Set objRS=Server.CreateObject(\"ADODB.RecordSet\") objRS.Open strSQL,objConn,1,3 „如果没有找到任何用户,则输出操作信息 If Not objRS.BOF Or Not objRS.BOF Then ResultMsg(\"所注册的用户名已存在,请更换用户重新注册!\") Response.End End If objRS.Close '将用户信息写入数据库 strSQL=\"INSERT INTO [UserInfo] (UI_PI_ID_FN,UI_Name_S,UI_Password_S”&_ ”,UI_IsLocked_B””,UI_CerRank_N,UI_IsProvider_B,UI_Email_S,UI_QQ_S,”&_ ”UI_IsAdmin_B,UI_RentCount_N)VALUES(0,'\"&UserName&\"','\"&UserPassword&_ \"',False,0,False,'\"&Email&\"','\"&QQ&\"',False,0)\" objConn.Execute(strSQL) ResultMsg(\"您的注册已成功!\") Set objRS=Nothing CloseDatabase Else 6.1.2用户登录界面代码 Dim strSQL,objRS Set objRS=Server.CreateObject(\"ADODB.RecordSet\") '取得用户文件名、密码 Dim UserName,UserPassword '过滤SQL字符,防止SQL漏洞注入 UserName=ChkSQL(Request(\"UserName\")) „UserPassword= Request(\"UserPassword\") '在数据库中查找用户 strSQL=\"SELECT * FROM [UserInfo] WHERE UI_Name_S='\"&UserName&\"'\" objRS.Open strSQL,objConn,1,3 '判断用户是否存在 '若用户不存在则通过GetErr()函数提交并显示错误代码 If objRS.BOF Or objrs.EOF Then objRS.Close Set objRS=Nothing Response.Write GetErr(3) Response.End Else '若用户存在,则检测用户密码的正误 If objRS(\"UI_Password_S\")<>UserPassword Then objRS.Close Set objRS=Nothing Response.Write GetErr(4) Response.End End IF '判断用户是否被锁定 If objRS(\"UI_IsLocked_B\")=True Then objRS.Close Set objRS=Nothing Response.Write GetErr(5) Response.End End If '建立用户私有变量 Session.Timeout =30 Session(\"UserID\")=objRS(\"UI_ID_N\") objRS.Close '每当有用户登录则刷新数据库,判断是否有影片的预订超时或超期未还 strSQL=\"SELECT TAC_ReserveTime_D,TAC_StartTime_D FROM [Tenancy]”&_ ” WHERE TAC_StartTime_D IS NULL\" objRS.Open strSQL,objConn,1,3 For i=1 To objRS.RecordCount '有超时的预订则删除 If IsNull(objRS(\"TAC_StartTime_D\"))=True And&_ DateDiff(\"h\ objRS.Delete End If objRS.MoveNext Next objRS.Close strSQL=\"SELECT * FROM [Tenancy] WHERE TAC_StartTime_D”&_ ” IS NOT NULL AND TAC_EndTime_D IS NULL\" objRS.Open strSQL,objConn,1,3 Dim MsgUser For i=1 To objRS.RecordCount '有超期租赁的则标注 If DateDiff(\"d\ objRS(\"TAC_StartTime_D\")),Now())=>objRS(\"TAC_Lease_N\") Then strSQL=\"UPDATE [Tenancy] SET TAC_TimeOut_B=True,”&_ ”TAC_MsgUser_B=True WHERE TAC_ID_N=\"&objRS(\"TAC_ID_N\") objConn.Execute(strSQL) End If objRS.MoveNext Next objRS.Close '跳转回主页 Response.Redirect \"index.asp\" End If 7.总结 经过一个多月的设计和开发,影片租赁系统的设计基本搞定。虽然过程中比较苦,但完成之后,又觉得吃苦使必要的。其功能基本符合系现实工作中的实际需求,能够完成影片的查找与租赁等功能,使影片出租者方便进行影片的出租管理和影片的管理,实现了影片管理的半自动化,但是由于设计时间较短,所以该系统还有很的不足的地方,还有待进一步的改善。 在本次设计中,我们从知道老师身上学到了很多东西。老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我受益匪浅。他们无论在理论上还是实践中,都给我们很大的帮助,使我们得到不少的提高,这对与我们以后的工作和学习都有一种巨大的帮助,感谢他们耐心的辅导。 成绩: 1.引言(5%), 得分: 2.可行性分析(5%), 得分: 3.系统分析共:(40%), 得分: 4.系统概要设计共: (30%), 得分: 5.系统详细设计共: (20%), 得分: 6.实现(关键性代码) (5%), 得分: 7.总结(5%), 得分: 小组成员成绩: 范占强 : 汤羊羊 : 占艳锋 : 因篇幅问题不能全部显示,请点此查看更多更全内容