Java面向对象程序设计购物管理系统实训报告.doc_第1页
Java面向对象程序设计购物管理系统实训报告.doc_第2页
Java面向对象程序设计购物管理系统实训报告.doc_第3页
Java面向对象程序设计购物管理系统实训报告.doc_第4页
Java面向对象程序设计购物管理系统实训报告.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java面向对象程序设计购物管理系统实训报告班 级: 软 件1001 指导教师: 宋 全 记 学 生: 陈 杨 欢 实训时间: 2011年秋期 四川建筑职业技术学院计算机工程系 2011年 12月 29日一、 Java的特点Java具有面向对象、与平台无关、安全、稳定和多线程等优良特性,是目前软件设计中优秀的编程语言。Java不仅可以用来开发大型的应用程序,而且特别适合于Internet的应用开发。Java确实具备了“一旦写成,处处可用”的特点,这也是Java最初风靡全球的主要原因。Java不仅是一门正在被广泛使用的编程语言,而且许多新的领域都涉及了Java语言,Java已成为网络时代最重要的语言之一。二、 实训要求1. 开发环境需要有良好的计算机硬件配置及MyEclipse和Office软件。2. 按实训任务书与指导书的要求,借助教材和所提供的素材认真思考,独立完成项目案例。3. 第一、二天,菜单功能的实现,购物、小票、积分和工资模块;第三、四天,录入、抽奖、切换和折扣模块;第五、六天,查询、统计、录入、验证模块;第七、八天,管理、礼品、密码、馈赠模块;第九、十天,系统信息定义与初始化,系统整体效果,测试与完善。三、 实训目的培养编程的思想,加深对Java这门专业知识的了解,锻炼个人独立思考和逻辑思维能力,为今后步入工作岗位打下能吃苦耐劳、不气不馁的精神基础。四、 主要步骤分析1.用户首先要登录后才能进入系统,因此在登录页面需设置验证用户的用户名和登录密码。2.当用户登录后进入系统主页面,在系统主页面列出“1.客户信息管理”、“2.我要购物”、“3.真情回馈”等选项,当用户选择不同的数字时就进入相应的页面。3.在客户信息管理页面设置“1.所有客户信息”、“2.添加客户信息”、“3.修改客户信息”、“4.查询客户信息”等选项以使管理员能有效且方便地管理整个客户信息系统。4. 用Office办公软件中的Access建立客户信息数据库,以让上面第3点的操作顺利进行。5. 在客户信息管理中,当管理员输入不同的数字后,返回不同的页面供管理员对客户信息进行增、删、改、查等操作。6. 在系统主页面选择“2.我要购物”后,首先显示后台所建数据库的所有的商品信息。然后请顾客输入商品编号和对应编号的商品数量,并询问顾客是否继续购买,当用户选择“y”时继续重复前面的步骤,直到用户选择“n”时进入购物结算页面。7. 在购物结算页面显示该用户的消费单,消费单包括商品名称、个数、折扣、金额、金额总计、实际交费、找钱和所获积分。8. 当用户在购物系统主页输入数字“3”时跳转到真情回馈页面,在真情回馈页面有“1.幸运抽奖”和“2.返回”两项,当用户输入数字“1”时进入幸运抽奖页面,然后询问用户“是否开始?”,当选择“y”后再请用户输入会员卡号和会员积分,后台判断积分在哪个范围,不同的范围返回不同的礼品,积分不够的不返回。五、 主要代码和运行效果1.进入我行我素购物管理系统图1.从登录页面跳转到系统管理页面2. 显示“所有客户信息”的主要代码和运行效果Connection con;Statement sql;ResultSet rs;System.out.println(* * * * * * * * * * * * * * * * * * * * * * * * * * * *);System.out.println(我行我素购物管理系统客户信息管理所有客户信息);System.out.println(会员号 生日 积分);System.out.println(-|-|-);try /建立桥接器Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch (ClassNotFoundException e) System.out.print(e);try /与数据源建立连接con=(Connection)DriverManager.getConnection(jdbc:odbc:star2, );sql = (java.sql.Connection) con).createStatement();rs = sql.executeQuery(SELECT*FROM CustomerInformation); /从数据表中进行查寻命令while (rs.next() /将客户所有信息以特定的格式输出来int custNo = rs.getInt(1);String date = rs.getString(custBirth);long custScore = rs.getLong(custScore);System.out.printf(%-7s, custNo);System.out.printf(%-10s, date);System.out.printf(%6sn, custScore);con.close();catch (SQLException e) System.out.print(e);图2.显示所有客户信息3.“添加客户信息”的主要代码和运行效果System.out.print(请输入会员号(整数):);custNo = input2.nextInt();/读入会员号System.out.print(请输入会员生日(月/日):);String custBirth = input2.next();/读入会员生日System.out.print(请输入积分:);custScore = input2.nextInt();/读入积分AddCustomerLink man = new AddCustomerLink();man.setDatasourceName(star2);/数据源名称为“star2”String backMess;man.setSQL(INSERT INTO CustomerInformation VALUES( + custNo + ,+ custBirth + , + custScore + );/ 将从键盘输入的会员号、会员生日和积分录入数据库表中backMess = man.modifyRecord();System.out.println(backMess);System.out.print(已录入的会员信息是:n + custNo + t + custBirth + t+ custScore);图3.向客户信息表中插入客户信息4.“修改客户信息”的主要代码String datasourceName = ;String SQL, message = ;public ModifyCustomerLink() try / 建立JDBC-ODBC桥接器Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver); catch (Exception e) public void setSQL(String SQL) this.SQL = SQL;public void setDatasourceName(String s) datasourceName = s.trim();public String modifyRecord() Connection con;Statement sql = null;try String uri = jdbc:odbc: + datasourceName;String id = ;String password = ;con = (Connection) DriverManager.getConnection(uri, id, password);/ 与数据库建立连接sql = con.createStatement();sql.execute(SQL);message = 修改用户成功!;con.close(); catch (SQLException e) message = e.toString();return message;System.out.print(请输入要修改的客户的会员号:);CustNo1 = member.nextInt();System.out.print(将此客户原来的生日修改为:);CustBirth1 = member.next();System.out.print(将此客户原来的积分修改为:);CustScore1 = member.nextInt();ModifyCustomerLink link = new ModifyCustomerLink();link.setDatasourceName(star2);/数据源名称为“star2”String backMess;link.setSQL(UPDATE CustomerInformation SET custBirth= + CustBirth1+ where custNo= + CustNo1);/ 查询对应会员号的客户并将对应的会员生日和积分做修改link.setSQL(UPDATE CustomerInformation SET custScore= + CustScore1+ where custNo= + CustNo1);backMess = link.modifyRecord();System.out.println(backMess);5.由于查询和删除客户信息与此类似,在这里不做详细说明。6.购物系统图4.选择进入“我要购物”页面7.“购物结算”菜单的主要代码及运行效果System.out.println(我行我素管理系统我要购物购物结算);System.out.println(* * * * * * * * * * * * 您的消费单 * * * * * * * * * * * *);System.out.println(物品-单价-折扣-个数-金额);System.out.println(goodsList);/ 打印出该客户购买的所有商品情况以供客户浏览System.out.println(n金额总计:t + ¥ + sum);System.out.print(实际交费:t);float payment;Scanner pa = new Scanner(System.in);payment = pa.nextFloat();System.out.println(找钱:t + ¥ + (payment - sum);int score = (int) sum / 2;/积分的算法为总消费的一半System.out.println(你本次购物所获积分是: + score);int CustNo1;String number2;Scanner member = new Scanner(System.in);System.out.print(n下面请查询你的积分,请输入你的会员号:);CustNo1 = member.nextInt();ModifyCustomerLink link = new ModifyCustomerLink();link.setDatasourceName(star2);/数据源名称为“star2”String backMess;link.setSQL(UPDATE CustomerInformation SET custScore= + custScore+ score + where custNo= + CustNo1);/ 更新该会员的积分图5.打印消费单8“真情回馈”主要代码及运行效果int custScore = rs.getInt(custScore);if (number1 != custScore) System.out.println(抱歉,没有对应的积分!); else if (number1 = custScore)& (number1 = 1000) & (number1 = 2000) & (number1 = 3000) & (number1 = 4000) & (number1 = 5000) System.out.println(恭喜你获得一台价值¥5200的笔记本电脑!); else System.out.println(抱歉,你的积分不足!);图6.幸运抽奖六、 总结1. 实训期间遇到的问题及解决办法 要将显示效果达到像任务书上的那样并不容易,需要一次次地更正。我在设置购物页面的显示效果时,在控制台上显示的编号、商品名称、单价和折扣总是不能与标题对齐,后来从任务书上看到了使用“t”来打印横向跳格,然后才纠正了过来。 后台数据库中数据的类型与我前台编制的代码设置的输入类型不一致,导致错误。根据显示的错误我用百度查后,找到了问题的所在,然后更正了。 最先我没注意到类的取名,没做到见名知意,在使用类的时候有混淆的情况,后来又逐一做了修改。 与数据库有关的代码我本以为只有一种,后来查阅了课本,才知道有两种。查寻数据用的一种,添加、修改等操作则使用了另一种。前一种只需一个类,后一种使用了两个类来完成相关操作。 对于直接关系到添加、修改、删除等操作的关键代码,最初我对相关语句很陌生,无从下手,后经查阅课本和网络上的资料,多番调试后终于得到了解决。 关于当用户输入错误的信息时,需要弹出错误提示并请用户重新输入,这块程序的编写需要一定的逻辑思维,比如什么时候弹出,如何调用类和方法,该使用何种循环等,不得不考虑。有好几次我在调试时,弹出错误的地方都不对,而且有时还弹不出来,此时我不得不停下来静思,分析前因后果,逐步改正。2. 实训感受及收获本次实训,让我学到了平时自己没有学会的Java知识。平时老师虽

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论