基于java-Web-的在线拍卖系统(共13页).doc
-
资源ID:13890230
资源大小:843.50KB
全文页数:13页
- 资源格式: DOC
下载积分:20金币
快捷下载
![游客一键下载](/images/hot.gif)
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
基于java-Web-的在线拍卖系统(共13页).doc
精选优质文档-倾情为你奉上华 北 科 技 学 院课程设计说明书技能训练类(三)学号: 2 班级: 信管B121 姓名: 何欢 设计题目:_在线拍卖系统_设计地点:_基础五_设计时间: 2015.3.10 至 2015.4.17 成绩评定:1、工作量: A( ),B( ),C( ),D( ),F( )2、难易度: A( ),B( ),C( ),D( ),F( )3、答辩情况:基本操作: A( ),B( ),C( ),D( ),F( )代码理解: A( ),B( ),C( ),D( ),F( )4、报告规范度: A( ),B( ),C( ),D( ),F( )5、学习态度: A( ),B( ),C( ),D( ),F( )总评成绩:_指导教师:_1、 课程设计的目的技能训练的内容围绕一个信息管理系统的实际开发过程进行组织,重点在于程序设计开发部分。信息管理系统的题目由教师指定或学生自行拟定,学生根据教师提出的系统在应用环境、系统规模、数据量、业务流程等方面的要求,进行需求分析、数据库设计、数据库实施、程序开发和测试,最终完成系统。技能训练的目的和要求:(1) 使学生巩固和加强java基础与课程的理论知识。(2) 使学生掌握程序设计开发的步骤。(3) 使学生掌握model2以上的开发系统的方法。(4) 使学生掌握使用数据库管理信息数据的方法。(5) 使学生掌握使用JAVA等程序设计语言连接和操作数据库的方法。(6) 使学生掌握调试程序的基本方法及上机操作方法。(7)使学生初步掌握开发一个小型信息管理系统的基本步骤,引导学生根据实际业务流程和需求进行系统分析与设计,并建立需要的数据库,最后通过编写代码和调试完成系统。2、 软件需求分析和总体设计2.1软件功能拍卖系统是一个在线系统,系统设计为B/S模式,用户在浏览器请求服务端的资源。包含的功能有: 查看竟得物品 浏览流拍物品 管理种类 管理物品 浏览拍卖物品 查看自己的竞标功能模块框图下图所示(图2-1-1): 图2-1-12.2设计模式拍卖系统采用Model2设计,即代码结构。JSP+Servlet+JavaBean。 图2-2-1系统通过JSP技术来表现页面,通过Servlet技术来完成大量的事务处理工作。在model2中,Servlet用来处理请求的事务,充当着一个控制者的角色,并负责向客户端发送请求。Servlet创建JSP需要的Bean和对象,然后根据用户的请求行为,决定将哪个JSP页面发送给用户。JSP页面没有任何商业处理逻辑,JSP页面只是简单地检索ervlet先前创建的Bean和对象,再将动态内容插入到预定义的HTML模板中。Model2 符合MVC架构模式,即(Model-View-Controller)。MVC设计模式模式三部分组成。模型是应用对象,没有用户界面;视图表示在屏幕上的显示,代表流向用户的数据;控制器定义用户界面对用户输入的相应方式,负责把用户的动作转成对Model的操作;Model通过更新View的数据来反映数据的变化。 图2-2-2优点:各司其职、互不干涉、有利于开发中的分工、有利于组件的重用缺点:系统结构和实现复杂、视图和控制器过于紧密、适合大型应用程序2.3数据库设计数据库设计为五个表:auction_user、kind、item、bid、state(1)auction_user:用户表。存放用户数据:字段名字段说明字段类型字段约束User_id用户的idintPK Username用户名varchar(50)Not null UNIQUEUserpass用户密码varchar(50)Not nullemail用户emailvarchar(100)Not null表2-3-1(2)kind:种类表,存放种类信息。字段名字段说明字段类型字段约束Kind_id物品种类idintPK auto_incrementKind_name种类名varcharNot nullKind_desc种类描述varcharNot null表2-3-2(3)state:状态表,存放物品状态信息。字段名字段说明字段类型字段约束State_id物品状态idintPK auto_incrementState_name物品状态名varchardefault null表2-3-3(4)item:物品表,存放物品信息外键关联到auction_user,kind,state。字段名字段说明字段类型字段约束Item_id物品idintPK auto_incrementItem_name物品名称varcharNot nullItem_remark物品标注varcharNot nullItem_desc物品描述varchardefault nullKind_id物品的种类IntForeign key Not nullAddtime物品起拍时间dateNot nullEndtime拍卖物品截止时间dateNot nullInit_price物品拍卖底价doubleNot nullMax_price物品拍卖最高价doubleNot nullOwner_id物品的所有者IntForeign key Not nullWiner_id赢取物品者IntForeign key default nullState_id物品的状态intForeign key Not null表2-3-4(5)bid:竞价表。存放用户竞价信息。外键关联到item。字段名字段说明字段类型字段约束Bid_id竞拍id号intPK auto_incrementUser_id用户idintForeign key Not null Item_id物品idintForeign key Not nullBid_price竞拍价格doubleNot nullBid_date竞拍日期dateNot null表2-3-52.4类图设计(1)类主要包括:data类存放封装的数据:图2-4-1Dao类主要存放对数据库操作的代码:图2-4-2Manager类主要存放对实体类的操作代码:图2-4-3Servlet类主要存放处理页面请求的数据的代码:图2-4-4(2)概念类图如下:图2-4-53、 程序实现说明(1) 如果未登录,点击任何连接进入登录界面:图3-1登陆时候用户名与密码不匹配会有提示信息(2) 如果没有账号进入用户注册界面:图3-2关键代码实现:if(aud.findUser(username, userpass)!=null) session.setAttribute("username",username); session.setAttribute("register", "error"); RequestDispatcher rq = request.getRequestDispatcher("/register.jsp"); rq.forward(request, response); else um.addUser(au); session.setAttribute("username",username); session.setAttribute("register","ok"); RequestDispatcher rq = request.getRequestDispatcher("/login.jsp"); rq.forward(request, response); (3) 查看自己竞得物品界面:图3-3配置servlet: <servlet> <servlet-name>ViewWin</servlet-name> <servlet-class>com.blue.servlet.ViewWin</servlet-class> </servlet> <servlet-mapping> <servlet-name>ViewWin</servlet-name> <url-pattern>/ViewWin</url-pattern> </servlet-mapping>(4) 浏览流拍物品界面:图3-4关键代码是对数据库视图查询的操作:public ArrayList<Win> getWinItem(int userid)ArrayList<Win> list = new ArrayList<Win>();Win win = null;double winprice = 0;if(m.createCon()String sql = "select * from win where winer_id="+userid+" and state_id=2"m.query(sql);while(m.next()try item = new Item();item.setItem_name(m.getRs().getString("item_name");kind = new Kind(m.getRs().getString("kind_name");winprice = m.getRs().getDouble("max_price");item.setItem_remark(m.getRs().getString("item_remark");win = new Win(item,kind,winprice);list.add(win); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();m.close();return list;(5) 管理物品种类页面:图3-5添加物品使用了存储过程向数据库添加。if(m.createCon()String sql = "exec Insert_Kind kind_name=?,kind_desc=?"try PreparedStatement ps = m.getCon().prepareStatement(sql);ps.setString(1,kind.getKind_name();ps.setString(2, kind.getKind_desc();int num=ps.executeUpdate(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();(6) 管理物品页面:图3-6添加物品的时候关联种类表,物品种类下拉菜单是动态的。(7) 浏览拍卖物品界面:图3-7(8) 查看自己竞标记录界面:图3-8(9) 当物品到期,就要更新物品的状态id,刷新数据库的实现:public void updateItemState() Date d = new Date(); java.text.SimpleDateFormat dateFormat = new java.text.SimpleDateFormat("yyyy-MM-dd"); String s = dateFormat.format(d); /可以连接一次/将到期的物品如果init_price<max_price则状态更新为2if(m.createCon()String sql="update item set state_id=2 where endtime < '"+s+"' and init_price<max_price "m.update(sql);m.close();/将到期的物品如果init_price=max_price则状态更新为3,说明没有人拍卖if(m.createCon()String sql1="update item set state_id=3 where endtime < '"+s+"' and init_price=max_price "m.update(sql1);m.close();4、 程序测试说明(1)单步方法测试写好一个方法后,在对应类里写一个main方法。测试该方法是否能达到指定功能,如果不能则需要修改代码。这种测试虽然比较费时,但可以避免很多以后的错误。(2)功能点测试完成一个功能后测试还功能情况。经测试基本能正确实现全部功能。 (3)数据测试输入错误数据,测试程序反映。例:当登陆时候出现用户名与密码不匹配的时候提示错误信息:图4-15、 程序总结通过三周的课程设计,我完成了这个简易的拍卖系统,算是完成了自己一个阶段的学习。做这个项目的过程中我收获了很多,具体如下:(1) 做项目时候要认真细心,SQL Server 2008要求比较严格,在执行代码部分获取结果集的时候要严格按照数据库中表的字段顺序接收数据,不然程序就会现“无效的描述错误”;(2) 学会了利用JSP+JavaBean+Servlet的模式开发信息系统;(3) 系统当前时间的获取,不同的数据库有不同的获取时间的语句,如果出现“没有执行可选特性”的错误,获取的时间就会有问题,或者根本获取不到时间,数据插入就会失败;(4) 自己开发的系统页面尽量大方合理,布局合理,代码风格要良好,不然会出现自己要找代码时候写的代码都找不到;(5) 在命名文件名称的时候一定要规范,以方便查找文件;系统不足之处有很多,比如:用户注册登陆时候没有加验证码降低了系统的安全性,再添加种类和物品的时候没有加验证肯会导致数据重复提交降低了系统的可靠性,系统只设置了用户登录并没有身份认证,应该增加管理员与游客身份这样才比较合理。我的建议:我相信老师如果在多多指教,再多给我们几天时间就会做得更好的!专心-专注-专业