Java专业实践报告##二手车交易系统.docx

上传人:牧羊曲112 文档编号:4885611 上传时间:2023-05-21 格式:DOCX 页数:37 大小:303.68KB
返回 下载 相关 举报
Java专业实践报告##二手车交易系统.docx_第1页
第1页 / 共37页
Java专业实践报告##二手车交易系统.docx_第2页
第2页 / 共37页
Java专业实践报告##二手车交易系统.docx_第3页
第3页 / 共37页
Java专业实践报告##二手车交易系统.docx_第4页
第4页 / 共37页
Java专业实践报告##二手车交易系统.docx_第5页
第5页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Java专业实践报告##二手车交易系统.docx》由会员分享,可在线阅读,更多相关《Java专业实践报告##二手车交易系统.docx(37页珍藏版)》请在三一办公上搜索。

1、Java专业实践报告题目:#二手车交易系统学院:计算机工程学院班级:#指导教师:#学生姓名:#同组人:#组长:#完成日期:#-#-#目录第1章背景11.1目的11.2术语11.3参考资料1第二章系统需求分析12.1系统功能需求22.1.1系统用例模型22.1.2系统用例描述22.2系统非功能需求42.2.1性能需求42.2.2界面需求42.2.3接口需求52.3约束条件52.3.1开发技术52.3.2运行环境52.3.2时间进度5第三章系统设计63.1架构设计63.2功能实现73.2.1管理车辆功能错误!未定义书签。3.2.2发布出售车辆功能错误!未定义书签。3.3共通功能设计143.4数据模

2、型设计143.5页面设计错误!未定义书签。第四章系统实现154.1 共通功能实现 174.2系统功能实现184.2.1管理车辆功能错误!未定义书签。4.2.2车辆管理功能错误!未定义书签。第五章系统测试285.1测试目的285.2测试数据设计错误!未定义书签。5.2.1功能测试数据295.2.2非功能测试数据错误!未定义书签。5.3测试报告29第六章总结346.1收获与不足34第七章成绩评定357.1分工明细357.2 成绩 35第1章背景1.1目的近几年随着国民经济的快速增长和汽车保有量的迅速提升 二手车市场已经进入到一个快速发 展的阶段。在发达国家,二手车市场已经发展的相当成熟,二手车的交

3、易量已经达到新车交易量的 2-3倍。而我国的二手车交易量仅为新车交易量的三分之一,我国二手车市场的潜力空间的发展是非 常巨大。鉴于二手车交易市场目前现状,开发此二手车交易系统,命名为KK二手车交易网,以在互联 网上提供一个更方便,更快捷的二手车交易信息服务平台。1.2术语担保交易:网站提供的第三方交易保障,由于功能限制暂无法进行收费担保,只提供交易 信息给管理员审核。1.3参考资料第二章系统需求分析2.1系统功能需求2.1.1系统用例模型.注册用户管理求购车辆信息用例图如下:图2-1注册用户管理求购车辆信息用例图.概述:角色划分:、买家、卖家、企业商家、管理员2.1.2系统用例描述1发布求购车

4、辆执行者用户前置条件登录成功主成功场景1、用户点击添加求购车辆2、系统显示添加求购车辆贝面3、用户输入求购车辆信息,点击添加按钮4、系统保存求购车辆信息5、系统显示添加成功,跳回添加面扩展1a、求购车辆已存在1b1、重新添加用户页面,并提示错误信息”求购车辆已存在”1b2、返回步骤1备注2查看求购车辆执行者用户前置条件登录成功主成功场景1、进入用户页面,点击查询按钮2、显示查询贝面3、输入查询求购车辆信息4、系统查询信息5、系统显示已发布求购车辆信息页面扩展2a无此求购车辆信息2a1、重新显示查询页面,并提示错误信息” 请重新输入查询信息2a2、返回步骤2备注3修改求购车辆执行者用户前置条件登

5、录成功主成功场景1、进入用户页面,点击求购车辆列表2、显示求购车辆列表,点击对应的修改链接3、系统显示修改求购车辆贝面4、输入求购车辆新信息,点击修改5、系统保存修改信息6、系统显示修改成功,跳回主页面扩展3a求购车辆不符合要求3a1、重新显示修改求购车辆页面,并提示错 误信息”求购车辆不符合要求”3a2、返回步骤3备注4删除求购车辆执行者用户前置条件登录成功主成功场景1、用户点击求购车辆列表2、系统显示求购车辆列表页面3、用户点击需要删除求购车辆,点击删除按 钮4、系统删除求购车辆信息5、系统显示删除成功跳回求购车辆列表页面扩展4a取消删除4a1、系统返回主成功场景2备注2系统非功能需求2.

6、2.1性能需求1、功能性a)准确性:得到正确或者相符的结果或者效果。b)互操作性:与其他指定系统进行交互的能力。c)安全性:用户权限、动态口令、数据库字段加密。2、可靠性具体包括:a)成熟性:与有软件故障引起失效的频度低。b)易恢复性:与在是小发生后重建其性能水平并恢复直接受影响数据的能力, 以及为达到此目的所需时间和努力有关的软件属性。如表单数据自动保存等。3、易用性具体包括:a)易理解性:与用户为人质逻辑概念即其应用范围所花的努力少。b)易学习性:与用户为学习软件应用所花的努力多。c)易操作性:易操作。如带首字母筛选功能的下拉列表等。4、维护性具体包括:a)易分析性:与为诊断缺陷或者失效原

7、因及为判定待修改的部分所需努力有关 的软件属性。如日志记录系统等。b)易改变性:与进行修改排除错误或者适应环境变化所需努力有关的软件属性。c)易测试性:容易测试2.2.2界面需求界面的原则要求,方便,简洁,美观,一致。需求名称详细要求母窗体显示位置窗体初次启动时在屏幕位置居中,窗体最大化子窗体显示位置窗体初次启动时在母窗体居中界面风格界面为“Metal”观感界面字体颜色黑色为主2.3约束条件2.3.1开发技术本系统采用JSP+Struts+Oracle进行开发。采用MVC模式进行编写2.3.2运行环境服务器:Apache Tomcat 6;数据库:Oracle 10g;操作系统:Windows

8、 XP;2.3.2时间进度2010年9月7日,完成需求分析。2010年9月9日,完成系统分析。2010年9月10日,完成数据库设计。2010年9月11日,完成开发环境搭建。2010年9月17日,完成代码部分和页面设计。2010年9月18日,完成测试。第三章系统设计3.1架构设计本系统采用MVC模式,系统层次结构如下图所示:在架构建模设计过程中,同样遵循ALM的过程定义(理解代码、域理解、控制维护、扩展性 等)。我们可以根据系统所针对的问题,将通过上图中的4个主题的方式来分析此建模功能过程。3.2功能实现3.2. 1发布求购车辆图3-1发布求购车辆类图图3-2发布求购车辆主成功时序图发布求购车辆

9、的控制类ContactAdd.java说明属性无方法dopost()返回类型:void逻辑步骤:(1)读取提交表单数据(2)创建模型层对象(3)调用contact对象的validate ()方法, 验证用户输入的求购车辆信息,如验 证失败则将contact保存在request 对象中,然后重新转发到 contactAdd.jsp,并提示相应的错误 信息(4)调用contact对象的add()方法, 如增加失败则将contact保存在 request对象中,然后重新转发到 contactAdd.jsp,并提示错误信息(5)增加成功跳转到新的发布求购车辆 页面 ContactAdd.jsp求购车辆

10、信息的模型类 contact.java说明属性Car汽车名称Colour汽车颜色Output排量Brand汽车品牌ID汽车号码方法Validate数据格式验证方法返回类型:boolean参数:无逻辑步骤:按照输入数据格式要求验证求购车辆的相 关信息,如验证通过则返回true,否则返回 falseAdd发布求购车辆方法返回类型:Boolean参数:无逻辑步骤:(1)创建数据库访问对象contactDAO(2)调用 contactDAO 的 savaContact() 方法,如返回值true,则返回true, 否则返回falsesaveContact保存求购车辆信息返回类型:Boolean参数:c

11、ontact,求购车辆对象逻辑步骤:根据传入参数组织数据库语句,如插入成功 则返回true,否则返回falseContactQuerydoPostOPages (from:鱼妙lata: List totalpages : int currentpage : int 扇start: int end: int previous : boolean 备next: boolean 扇lines: intbackQ: void forwardQ : void calculateO : voidPageControlfrom .doGetf): void图3-3查看求购车辆类图图3-4查看求购车辆主成功

12、时序图查询联系人的控制类ContaQuery.java说明:方法doPost返回类型:void逻辑步骤:(1)读取提交表单数据(2)创建模型层对象user(3)调用user对象的queryContact()方法,如查 询失败则将user保存在request对象中,然 后重新转发到xontactQuery.jsp,并提示错 误信息、(4)查新成功创建分页对象pages(5)调用pages的calculate()方法进行分页计 算(6)跳转到联系人列表信息页面contacts.jsp获取数据库连接类DBFactory.java说明:属性无方法getConn获取数据库连接返回类型:Connectio

13、n逻辑步骤:(1)查找数据源(2)获取连接并返回Pagesf m 惧.data : List totalpages : int curre ntpage : int 备start: int 备end : intContactQuery电previous : boolean 电next: boolean 备lines: int(from垃司backQ: void forwardf): void calculate。: voiddoPosM)图3-5修改求购车辆类图图3-6修改求购车辆主成功时序图修改联系人的控制类ContactModify.java说明属性无方法doPost返回类型:void逻辑

14、步骤:(1)读取提交表单数据(2)创建模型层对新contact(3)调用contact对象的validate()方法,验证用 户输入的联系人信息,如验证并提示相应 的错误信息(4)调用contact的modify()方法,如修改失败 则将contact保存在request对象中,然后重 新转发到contactModify.jsp,并提示错误信 息、(5)创建模型层对象user,调用user的 queryContact()方法,跳转到 contacts 页面求购车辆信息的模型类Contactjava属性Car汽车名称Colour汽车颜色Output排量Brand汽车品牌ID汽车号码方法Valid

15、ateaddmodify增加联系人方法返回类型:boolean参数:无逻辑步骤:(1)创建数据库访问对象 contactDAO(2)调 用 contactDAO 的 updateContact ()方法,如返回值 为true,则返回true,否则返回 false求购车辆信息的数据库访问类ContactDAO.java说明属性无方法SavaContactupdateContact修改求购车辆信息返回类型:boolean参数:contact,求购车辆对象逻辑步骤:根据传入参数组织数据库语句,如修改成 功则返回true,否则返回false3.2. 4删除求购车辆图3-7删除求购车辆类图图3-8删除求

16、购车辆主成功时序图删除求购车辆的控制类contactdelete.java说明属性无方法DoPost返回类型:void逻辑步骤:(1)读取提交表单数据(2)创建模型层对象contact(3)调用contact对象delete()方法(4)创建模型层对象user,调用user的 queryContact ()方法, 跳转至U contacts.jsp 页面求购车辆信息的模型类Contact.java说明属性Car汽车名称Colour汽车颜色Output排量Brand汽车品牌ID汽车号码方法Validate略Add略Modify略Delete删除求购车辆方法返回类型:Boolean参数:无逻辑步骤

17、:(1)创建数据库访问对象contactDAO(2)调用 contactDAO 的 deleteContact() 方法,如返回值为true,则返回true, 否则返回false求购车辆信息的数据库访问类ContactDAO.jsp说明属性无方法saveContact略updateContact略deleteContact删除求购车辆信息返回类型:Boolean参数:contact,求购车辆对象逻辑步骤:根据传入参数组织数据库语句,如删除成功 则返回true,否则返回false3.3共通功能设计3.3.1.数据库连接图3-9数据库连接图Load类实现属性无无方法init()1. 调用持久层的业

18、务方法, 取得需要初始化的性别 信息2. 将所取得信息保存LoadInfoDAo 类实现属性无无方法loadGenders()1. 与数据库交互,取得性别信息列表2. 将所取得信息保存3.4数据模型设计概念模型c:elte:1hIII c:=Lfin us er III price di scripti oncarbrandc :=Lt_brc:rbr :hli1carcapacitycarinfov c ar c ap ac i tylD c:al- c ap :ac i tycarfactory1c:=LractoryID c:ii_ factory图3-12概念模型图数据库表设计:车辆信

19、息表carinfo字段注释数据类型长度约束Car汽车名称Varchar220主键Colour汽车颜色Varchar220Output排量Varchar220Brand汽车品牌Varchar220ID汽车号码Varchar220Carpl排量Varchar220数字字符Ps卖车人类型Varchar220Szd所在地Varchar220Carxz车辆性质Varchar220Cd产地Varchar220Km公里数Varchar220数字字符Year使用时间Varchar220数字字符Cxiang车厢Varchar220数字字符oil百公里耗油Varchar220数字字符Pzszd牌照所在地Varch

20、ar220Carmess车辆描述Varchar2200Pg是否评估Varchar2200Db是否担保Varchar2200Status状态:出售、求购Varchar2200Photo照片Blob200第四章系统实现4.1共通功能实现登录功能登录用例组建描述组件说明过滤器这里指的是过滤器,包含 I18nFilter、AccessControlFilter 和 CharsetFilterindex.jsp已实现main.jsp系统的主界面,显示系统功能菜单Login登录验证控制器,实现doPost()方法处理登录要求User用户模型类,已存在,增加validateLogin数据验证方法和login

21、登录验证方法UserDao用户信息的数据库访问类;已存在,登录所需要的getUserByEmail查询方法已实现public class loginServlet extends HttpServlet (public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException (request.setCharacterEncoding(gbk);/读取表单信息String email=request.getParameter(email);S

22、tring pass=request.getParameter(password);/创建User对象,封装信息User user=new User();user.setEmail(email);user.setPassword(pass);/调用validateLogin和login方法,任何一个方法失败都重新转发到登陆页面if(!user.validateLogin()request.setAttribute(u, user);request.getRequestDispatcher(/page/index.jsp).forward(request, response);else if(!

23、user.login()request.setAttribute(u, user);request.getRequestDispatcher(/page/index.jsp).forward(request, response);else (将user对象存储到session范围,修改基本信息、修改密码以及访问安全过滤都会用到这 个user对象HttpSession session=request.getSession();session.setAttribute(user, user);request.getRequestDispatcher(/page/main.jsp).forward(

24、request, response);4.2系统功能实现4.2.1发布求购车辆功能发布求购车辆用力组件描述组件说明过滤器这里指的是过滤组,包含 I18nFilter,AccessControlFilter 和 CharsetFilter 由于这个功能是爱用户登录系统后才能使用,因此未经登录验证的用户无 法执仃该操作,这是汇转发到relogin.jspcontactAdd.jsp发布求购车辆贝面contactAdd发布求购车辆控制器,实现dooPost ()方法处理求购车辆发布请求Contact求购车辆模型类增加validate数据验证方法和add发布求购车辆方法contactDAO用户信息的数

25、据库访问类,实现saveContact ()方法addContactServlet.jsppackage c;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import module.Contact;import module.User;public cla

26、ss addContactServlet extends HttpServlet (public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, lOException (/读取session中保存的user对象request.setCharacterEncoding(gbk);User uEm = (User) request.getSession().getAttribute(user);String userID=uEm.getId();/读取表单信

27、息String name=request.getParameter(username);String qq=request.getParameter(qq);String phone=request.getParameter(telphone);String email=request.getParameter(email);String gender=request.getParameter(gender);/创建contact对象,封装信息Contact contact=new Contact();contact.setEmail(email);contact.setName(name);

28、contact.setPhone(phone);contact.setQq(qq);contact.setGender(gender);contact.setUserID(userID);在工程web的business包中创建java类,类名package module;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import dao.ContactDAO;public class Contact (private String Carlx;/ 汽车类型 idprivate String C

29、arpp;/ 汽车品牌private String Carxl;/ 汽车系列private String Carcx;/ 汽车车型private String Carpl;/ 排量private String Ps;/ 卖车人类型private String Szd;/ 所在地private String Carxz;/ 车辆性质private String Color;/ 颜色private String Cd;/ 产地private String Km;/ 公里数private String Year;/ 使用时间private String Cxiang;/ 车厢private Stri

30、ng oil;/ 百公里耗油private String Pzszd;/ 牌照所在地private String Carmess;/ 车辆描述private String Pg;/ 是否评估private String Db;/ 是否担保private String Status;/ 状态:求购private String Photo;/ 照片private HashMap errors = new HashMap();/ 保存错误信息public HashMap getErrors() (return errors;public void setErrors(HashMap errors)

31、(this.errors = errors; /属性的get()和set()方法public String getEmail() (return email; public void setEmail(String email) (this.email = email;public String getGender() (return gender;public void setGender(String gender) (this.gender = gender;public String getId() (return id;public void setId(String id) (th

32、is.id = id;public String getName() (return name; public void setName(String name) (this.name = name; public String getPhone() (return phone; public void setPhone(String phone) (this.phone = phone; public String getQq() (return qq; public void setQq(String qq) (this.qq = qq; public String getUserID()

33、 (return userID; public void setUserID(String userID) ( this.userID = userID; 发布求购车辆方法public boolean add(Contact contact,String userID)( boolean flag=true;if(!ContactDAO.saveContact(contact, userID)( errors.put(add,添加不成功); flag=false;return flag;4.2.2查看求购车辆功能实现查看求购车辆用例组件描述组件说明过滤器这里指的是过滤器组,包含 I18nFil

34、ter、AccessControlFilter 和 CharsertFilter 由于这个功能是在用户登录系统后才能使用,因此未登录验证的用户无 法执行该操作,这时会转发到relogin.jsprelogin.jsp提示用户登录页面,已实现contactQuery.jsp查询条件输入页面ContactQuery.jsp查询求购车辆控制器,实现doPost()方法处理求购车辆查询请求Contacts.jsp查询结果页面User.java用户模型类;已存在,增加queryContact()方法UserDAO.java用户信息的数据库访问类;已存在,增加queryContact()方法queryCo

35、nract.javapackage c;public class queryContact extends HttpServlet (public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException (读取session中保存的user对象request.setCharacterEncoding(gbk);User uEm = (User) request.getSession().getAttribute(user);读取表单信息,保

36、存在User对象中String userID=uEm.getId();String contactName=request.getParameter(contactName);List list=new ArrayList();if(ContactDAO.queryContact(userID, contactName)=null)(list=null;list=ContactDAO.queryContact(userID, contactName);request.setAttribute(queryContactList”, list);request.getRequestDispatch

37、er(/page/queryedContactList.jsp).forward(request, response);数据库访问组件Package dao;public class ContactDAOpublic static List queryContact(String id,String contactName) List list=new ArrayList();String name=%+contactName+%;int i=0;tryClass.forName(oracle.jdbc.OracleDriver);Connection conn=DriverManager.g

38、etConnection( jdbc:oracle:thin:192.168.3.131:1521:orcl,training,a123);PreparedStatement ps=conn.prepareStatement(select * from TBLCONTACT where NAME like ? and USERID=?);ps.setString(1, name);System.out.println();ps.setDouble(2, Double.parseDouble(id);ResultSet rs=ps.executeQuery();while(rs.next()(C

39、ontact contact=new Contact();contact.setEmail(rs.getString(EMAIL);contact.setGender(rs.getString(GENDER);contact.setName(rs.getString(NAME);contact.setPhone(rs.getString(PHONE);contact.setQq(rs.getString(QQ);contact.setId(rs.getString(ID);contact.setUserID(rs.getString(USERID);list.add(contact);i+;c

40、onn.close();catch(Exception e)(System.out.println(e.getMessage();if(i=0)(return null;return list;public static List queryContact(String id)(List list=new ArrayList();int i=0;try(Class.forName(oracle.jdbc.OracleDriver);Connection conn=DriverManager.getConnection( jdbc:oracle:thin:192.168.3.131:1521:o

41、rcl,training,a123);PreparedStatement ps=conn.prepareStatement(select * from TBLCONTACT where USERID=?);ps.setDouble(1, Double.parseDouble(id);ResultSet rs=ps.executeQuery();while(rs.next()(Contact contact=new Contact();contact.setEmail(rs.getString(EMAIL);contact.setGender(rs.getString(GENDER);conta

42、ct.setName(rs.getString(NAME);contact.setPhone(rs.getString(PHONE);contact.setQq(rs.getString(QQ);contact.setId(rs.getString(ID);contact.setUserID(rs.getString(USERID);list.add(contact);i+;conn.close();catch(Exception e)(System.out.println(e.getMessage()+); if(i=0)(return null;return list;4.2.3 .修改求购车辆功能实现组件说明过滤器这里指的是过滤器组,包含I18nFilter、AccessControlFilter和CharsertFilter由于这个功能是在用户登录系统后才能使用,因此未经登录验证 的用户无法执行该操作,这时会转发到relogin.jspcontactModify.jsp修改求购车辆页面Fa

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号