ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:483.10KB ,
资源ID:16547043      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16547043.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(客户管理本科三级实训报告Word文档下载推荐.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

客户管理本科三级实训报告Word文档下载推荐.docx

1、料 考与 文 献01(美)梁(Liang,Y.D.). JAVA语言程序设计基础篇(原书第6版)M:机械工业出版社 2008.602 凯德纳黑德, 勒迈, 陈武. 21天学通Java 2:专业参考版.M 人民邮电出版社 2004.0103 洪维恩 何嘉. JAVA 2面向对象程序设计.M 中国铁道出版社2005.0104 张靓 顾慧敏. JAVA案例开发.M 中国水利水电出版社.2005.01指导教师签字: 年 月 日客户管理系统摘 要企业是一个生产、管理的集散地,生产资料和企业客户资料繁多,包含很多信息数据的管理。在过去的企业中用书面管理信息,在修改、查询、添加企业客户信息方面都没有很好的发

2、挥它的效益,企业客户资料管理复杂、工作量大比较突出,不能利用多种途径查询企业客户资料,修改后不能同步更改所有档案资料。这就是企业客户管理系统开发的基本环境。设计处理查询方式单一,添加不能与统计同步,出错率高,出错后不易更改。由于信息比较多,企业客户信息管理比较混乱;一般客户情况是记录的,资料的数目和内容记录在文件中,资料室的工作人员和管理人员也只能当时比较清楚,时间一长,如再有进行查询,查找了造成查询费时,费力。如果对很长时间以前的资料进行更改就更加困难了。基于此类问题,我组认为有必要建立一个企业客户管理系统,使资料管理工作规范化,程序化,避免资料管理随意性,提高信息处理的速度和准确性,能够及

3、时、准确、有效的查询、修改和保存资料情况。管理人员必须以管理员身份登录,保证了系统的安全性。系统的总体任务是使企业管理人员可以轻松快捷地完成对企业客户管理的任务。有利于提高管理效率。关键词:客户信息管理、通讯录、系统管理第1章 项目分析本系统用于企业的客户资料管理。主要任务是用计算机对企业客户进行日常管理,如企业客户信息的添加、删除、修改、查询。能进行单条件的企业客户信息查询的查询。1.1问题描述程序需要有一个简洁的界面,使管理者一看便知怎么操作。程序还需要实现增加、修改、删除、查询功能。项目中我组用到了My SQL数据库实现客户信息的储存。同时设置了登录功能只有管理员才能对客户进行相关的操作

4、。为解决这些问题我们就得查询个方面的资料,为更好的解决问题做好准备。1.2技术分析考虑到本系统的性能要求,和现有的条件,我选择了WINDOWS XP中文版作为开发、测试和运行的平台。因为WINDOWS操作系统是目前应用最广的操作系统,它以全新的图形界面,简单快捷的操作方式,支持多媒体功能等特点而成为软件发展的流行趋势,选用它作为开发平台,易于功能的扩展和软件升级。针对目前世界上流行的大量软件和开发工具,经过认真分析其优缺点并根据平时所学的知识,结合企业客户管理系统的需要和目前的硬件环境,我选用Eclipse作为软件开发工具。本程序主要是利用JAVA语言编写,具有良好的可移植性。能够适用于多种平

5、台,对系统的推广有很大的作用。本系统的数据库也是使用的最简单的数据库,My SQL 它具有简单的界面方便的操作,可以让我们远离那些大型数据库的繁琐操作。第2章 数据库设计数据库设计是应用系统开发的一个重要环节,数据库结构的好坏将直接对应用系统的效率及实现结果产生重要影响。在数据库设计的开始阶段应尽量全面考虑用户的各种需求,收集基础数据、数据结构及数据处理流程。2.1数据库图表设计数据库中主要是存储的客户信息,由于时间有限本系统中的管理员只有一个默认的。无法修改管理员的ID为admin 密码为admin 。并没有用到数据库来存储管理员的信息。数据库中的表为custom,表中的主要数据为id、na

6、me、phone、address。2.2数据库图表表中个变量的属性如图:图2.1 custom表中的变量及其属性Custom表中数据情况如图:图2.2 custom表中数据情况数据库中还要对用户进行设置,如果不进行设置其他的计算机就无法与服务器的数据库进行连接,也就无法得到数据库中相应的数据。在第二周程序制作的时候遇到了这样的问题,在老师的细心帮助之下我们得到了良好的解决。第3章 系统实现由于客户管理系统的众多要求,我组决定进行分工。主要有程序界面的开发,程序中服务器及客户端的开发以及程序与数据库之间的通信。我主要负责的为程序与数据库之间通信的部分,也就是程序功能实现的部分。这部分的设计主要是

7、实现:显示现有数据库中所有客户的信息,重新加载客户的信息,对客户信息的增加,删除,修改,查询。客户端系统主要有7个类:Land.java:实现系统的登录页面。Client.java:实现与服务器端的通信功能。TableModeldemo.java:这主要是系统的主界面。它联系了程序的个个类。NewRecordDialog.java:这个类是系统的添加界面。NewSelect.java:这个类者是系统的查找界面。User.java:这个类是系统的管理员信息类,储存管理员的信息。DB.java:它主要实现系统的功能,以及对数据库的各种操作。程序的主要流程如下图:图3.1 程序的主流程图 程序中的个

8、个类之间也存在这各种的关系如下图:图3.2 程序各类之间的调用关系下面将为你讲解我们程序功能实现的详细细节。3.1程序与数据库连接模块程序首先由Land.java登录,然后程序进入主界面也就是由TableModeldemo.java实现的部分。程序中连接数据库主要是通过jbtconnection按键进行监听。当按下jbtconnection按键时会调用DB.java中的setConection()方法实现对数据库的连接。3.1.1流程图程序数据库连接运行的主要流程如下:图3.1.1 数据库调用流程3.1.2数据库连接界面 程序数据库连接成功出现的界面:图3.1.2程序连接数据库成功并显示相关数

9、据3.1.3代码讲解程序中的数据库连接就是通过DB.java中setConnection()方法实现代码如下:public void setConnection() throws ClassNotFoundException, SQLException Class.forName(com.mysql.jdbc.Driver); connection = DriverManager.getConnection(jdbc:mysql:/localhost/test statement = connection.createStatement( ResultSet.TYPE_SCROLL_INSEN

10、SITIVE, ResultSet.CONCUR_UPDATABLE); showTable(); 程序中用到了throws。throws是用来声明一个方法可能抛出的所有异常信息,注意,是可能的,所有的异常信息,在Java 里面,大家很熟悉什么是类和对象,在这里,throws 要抛出的就是一个异常类,因为它并不知道具体会出现哪种异常,所以就简单抛出一个异常类,包含这个异常类下面所有可能的异常。throws 通常不用显示的捕获异常,而是由系统自动将所有捕获到的异常信息抛给上级方法来处理,举个简单的例子来说:A类声明抛出了一个异常类,如果系统捕获到该异常类下面某个具体的异常对象,则上交给A的父类B

11、来处理,假如B不做处理,那么B继续上抛,上抛给B的父类C来处理,以此类推,直至问题解决。Class.forName(在连接数据库之前,还必须要加载一个合适的驱动程序,驱动程序是一个实现接口java.sql.Driver的具体类。MySQL JDBC驱动程序包含在文件mysqljbc.jar中。com.mysql.jdbc.Driver是mysqljdbc.jar中的一个类。这个类由JDBC使用,但不直接由JDBC程序员使用。当你在程序中明确使用某个类时,它被JVM自动加载。但是驱动程序类不在程序中明确的使用,因此,必须编写代码告诉JVM加载它们。connection = DriverManag

12、er.getConnection(为了连接一个数据库,需要使用DriverManager类中的静态方法getConnection(databaseURL),databaseURL是数据库在Internet上的唯一标识符。MySQL数据库的databaseURL指定定位数据库的主机名和数据库名。statement = connection.createStatement(如果把一个Connection对象想象成一个连接程序和数据库的缆道,那么Statement对象或它的子类可以看作一辆缆车,它为数据库传输SQL语句,并把运行结果带回程序。一旦创建了Connection对象,就可以创建执行SQL语

13、句的语句。ResultSet.TYPE_SCROLL_INSENSITIVE设置结果集是可滚动的,但是对数据库中的变化不敏感。ResultSet.CONCUR_UPDATABLE设置可以使用结果集更新数据库。调用类DB.java中的showTable();方法,使table中显示数据库中的结果集。3.2程序客户显示模块程序连接数据库成功以后要调用DB.java中的showTable()方法,显示数据库中的客户信息。显示模块在程序中多次调用,是一个很重要的方法。3.2.1流程图显示模块运行的流程图:图3.2.1 程序界面系统的流程图3.2.2显示模块界面如图3-1-2。3.2.3代码讲解程序中的

14、数据库连接就是通过DB.java中showTable()方法实现代码如下:public void showTable() throws SQLException rowVectors.clear(); columnHeaderVector.clear(); resultSet = statement.executeQuery(select* from custom; columnCount = resultSet.getMetaData().getColumnCount(); while (resultSet.next() Vector singleRow = new Vector(); fo

15、r (int i = 0; i columnCount; i+) singleRow.addElement(resultSet.getObject(i + 1); rowVectors.addElement(singleRow); for (int i = 1;= columnCount; columnHeaderVector.addElement(resultSet.getMetaData() .getColumnName(i); TableModeldemo.tableModel.setDataVector(rowVectors, columnHeaderVector); TableMod

16、eldemo.tableModel.setColumnIdentifiers(columnNames);rowVectors.clear();columnHeaderVector.clear();首先要清除图标中的信息。resultSet = statement.executeQuery(SQL查询语句可以使用executeQuery(String sql)来执行,查询结果在rerultSet中返回。结果集ResultSet存有一个表,该表的当前行可以访问。当前行的初始位置是null,可以使用next方法移动到下一行,可以使用各种get方法从当前行检索值。columnCount = resul

17、tSet.getMetaData().getColumnCount();RseultSetMetaData接口描述与结果集相关的信息。ResultSetMetaData对象能够用于结果集ResultSet中找出关于列的类型和属性的信息。要得到ResultSetMetaData的一个实例,通过结果集使用getMetaData方法。使用getColumnCount()方法可以在结果集中求得列的数目,使用getColumnName(int)方法可以求的列名。while (resultSet.next() 这段代码就是从结果集中得到相关的数据,并赋值给相应的图表。for (int i = 1;得到相应

18、的列名并赋值给相应的图表。TableModeldemo.tableModel.setDataVector(rowVectors, columnHeaderVector);TableModeldemo.tableModel.setColumnIdentifiers(columnNames);调用TableModeldemo.java类中的tableModel变量,从新赋值,是table表中显示数据可中得到的客户信息。3.3 重载客户信息模块重载客户信息模块就是重新查询了一下数据库,根据加进去的新客户信息,数据库会自动的从新排序,从新加载也就相当于从新进行排序了。3.3.1代码讲解private

19、void refreshResultSet() try resultSet = statement.executeQuery( catch (SQLException ex) ex.printStackTrace();重新在数据库中进行查找。3.4 程序客户信息添加模块程序中的添加模块是通过TableModeldemo.java中,jbtAddRow按键进行监听的。通过调用BD.java 中的insert方法来实现添加。在insert中还需要调用NewRecordDialog来弹出添加窗口。3.4.1流程图增加方法的流程图:图3.4.1增加方法流程图3.4.2添加显示界面添加客户信息时出现的界

20、面:图3.4.2 添加客户信息界面3.4.3代码讲解方法insert的实现如下:public void insert() throws SQLException newRecordDialog = new NewRecordDialog(); newRecordDialog.displayTable(columnNames); Vector newRecord = newRecordDialog.getNewRecord(); if (newRecord = null) return; resultSet.moveToInsertRow(); for (int i = 1; i+) resul

21、tSet.updateObject(i, newRecord.elementAt(i - 1); resultSet.insertRow(); refreshResultSet(); TableModeldemo.tableModel.addRow(newRecord);Vector 类可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件。但是,Vector 的大小可以根据需要增大或缩小,以适应创建 Vector 后进行添加或移除项的操作。 resultSet.moveToInsertRow();让程序移动到添加行。这句话必须要有,刚开始写代码的时候没有这句话,调试怎么也

22、通不过,添加的数据把原来表中的数据给替代了,并没有添加到相应的下一行。添加按键的处理涉及到显示接收新记录的添加对话框(newRecordDialog)。输入新记录之后,单击确定按钮关闭对话框。调用newRecordDialog.getNewRecord()方法得到新的记录。为了将新记录插入到数据库中,调用updateObject方法更新域,然后调用insetRow方法将记录插入到数据库表中。最后,需要重新执行查询来刷新结果集。理论上,没有必要刷新结果集,驱动程序应该自动地将数据库中的变化反馈到结果集中,但是,刷新结果集更可靠。3.5 程序客户信息删除模块程序的删除模块主要是先通过鼠标的定为确定

23、相应的删除行。然后调用相关的删除命令,表模型以及数据库中的相应信息删除。3.5.1流程图删除功能的流程比较的简单只是调用了DB.java类中的delete方法实现数据库中信息的删除。图3.5.1 添加客户信息界面3.5.2程序删除显示界面图3.5.2 添加客户信息界面 程序的下方会显示你所选定的行数,程序会根据你选定的行进行删除操作。删除后同样重新加载。3.5.3代码讲解public void delete() throws SQLException resultSet.deleteRow(); refreshResultSet();deleteRow方法为从此 ResultSet 对象和底层

24、数据库中删除当前行。也就是删除数据库中相应的客户信息。调用tablemodel中的removeRow方法从jTable1中删除一行。3.6 程序客户信息修改模块这个程序的修改功能是你直接在程序的窗口中对客户的信息进行修改,修改后点击修改按键。程序自动修改数据库中客户的信息。修改功能的实现也是通过调用DB.java中的方法实现的。本次调用的是update方法。3.6.1修改模块流程图程序的流程比较的简单没有制作流程图的必要。就是修改表模型中的数据,然后进行数据库中数据的修改。所以本部分的流程图略。3.6.2修改程序界面图3.6.1 修改客户信息界面3.6.3代码讲解public void upd

25、ate() throws SQLException int row = TableModeldemo.jTable1.getSelectedRow();= resultSet.getMetaData().getColumnCount(); resultSet.updateObject(i, TableModeldemo.tableModel.getValueAt(row, i - 1); resultSet.updateRow();本段代码首先通过getSelectedRow方法得到光标所在的相应行。用 Object 值更新指定列。更新方法用于更新当前行或插入行中的列值,并不会更新底层数据库;

26、更新数据库要调用 updateRow 或 insertRow 方法。更新后重新加载数据库。3.7 程序客户信息查询模块程序的客户信息查询分为根据客户的姓名和根据客户的编号进行查询。根据客户姓名查询调用的是DB.java中的selectname方法,根据客户编号查询调用的是DB.java中selectid方法。3.7.1查询模块流程图首先是程序中的查询按键被点击,调用出Newselect.java这个类来实现查询界面的显示,根据不同的选择调用DB.java中不同的方法来实现不同的查找。图3.7.1 查询客户信息流程图3.7.2查询功能界面图3.7.2 查询客户信息界面图3.7.3 查询客户信息结

27、果3.7.3代码讲解 public ResultSet selectid(String id) throws SQLException ResultSet result = null; Statement st = null; Connection con = null; con = DriverManager.getConnection( String sql = select * from custom where id= + + id + ; st = con.createStatement(); result = st.executeQuery(sql); catch (Exception e) e.printStackTrace(); return result; public ResultSet selectname(String name) throws SQLException C

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1