客户管理系统3.docx

上传人:b****5 文档编号:7908469 上传时间:2023-01-27 格式:DOCX 页数:23 大小:80.14KB
下载 相关 举报
客户管理系统3.docx_第1页
第1页 / 共23页
客户管理系统3.docx_第2页
第2页 / 共23页
客户管理系统3.docx_第3页
第3页 / 共23页
客户管理系统3.docx_第4页
第4页 / 共23页
客户管理系统3.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

客户管理系统3.docx

《客户管理系统3.docx》由会员分享,可在线阅读,更多相关《客户管理系统3.docx(23页珍藏版)》请在冰豆网上搜索。

客户管理系统3.docx

客户管理系统3

三级实践课题设计任务书

姓名

题目

客户管理系统的开发

开发一个比较完善的基于JAVA的客户管理服务系统,主要任务是用计算机对企业客户进行日常管理,如企业客户信息的添加、删除、修改、查询。

系统还区分了客户端与服务器端。

可以实现多台计算机同时访问服务器进行客户的管理工作。

主要功能包括:

1.对客户的基本管理功能,系统界面的组建(独立完成)

2.区分客户端与服务器端。

3.对数据库中的数据进行基本操作,实现系统的管理功能

开发工具:

JAVA、Photoshop、MySQL

第1周(2012-02-20~2012-02-24):

学习编写客户管理系统中所需要的相关的知识,为后两周的课题的编写打下基础。

第2周(2012-02-27~2012-03-02):

开始编写程序的界面代码,参考各种资料,逐个实现程序的功能。

第3周(2012-03-05~2012-03-09):

测试已编好的程序,找到程序中的不知,修改程序,使程序更加完善。

原主

始要

资参

料考

与文

[01](美)梁(Liang,Y.D.).JAVA语言程序设计基础篇(原书第6版)[M]:

机械工业出版社2008.6

[02]凯德纳黑德,勒迈,陈武.21天学通Java2:

专业参考版.[M]人民邮电出版社2004.01

[03]洪维恩何嘉.JAVA2面向对象程序设计.[M]中国铁道出版社2005.01

[04]张靓顾慧敏.JAVA案例开发.[M]中国水利水电出版社.2005.01

指导教师签字:

年月日

客户管理系统

摘要

企业是一个生产、管理的集散地,生产资料和企业客户资料繁多,包含很多信息数据的管理。

在过去的企业中用书面管理信息,在修改、查询、添加企业客户信息方面都没有很好的发挥它的效益,企业客户资料管理复杂、工作量大比较突出,不能利用多种途径查询企业客户资料,修改后不能同步更改所有档案资料。

这就是企业客户管理系统开发的基本环境。

设计处理查询方式单一,添加不能与统计同步,出错率高,出错后不易更改。

由于信息比较多,企业客户信息管理比较混乱;一般客户情况是记录的,资料的数目和内容记录在文件中,资料室的工作人员和管理人员也只能当时比较清楚,时间一长,如再有进行查询,查找了造成查询费时,费力。

如果对很长时间以前的资料进行更改就更加困难了。

基于此类问题,我组认为有必要建立一个企业客户管理系统,使资料管理工作规范化,程序化,避免资料管理随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询、修改和保存资料情况。

管理人员必须以管理员身份登录,保证了系统的安全性。

系统的总体任务是使企业管理人员可以轻松快捷地完成对企业客户管理的任务。

有利于提高管理效率。

关键词:

客户信息管理、通讯录、系统管理

目录

摘要1

第1章项目分析1

1.1问题描述1

1.2技术分析1

第2章数据库设计2

2.1数据库图表设计2

2.2数据库图表2

第3章系统实现3

3.1程序与数据库连接模块4

3.1.1流程图4

3.1.2数据库连接界面5

3.1.3代码讲解6

3.2程序客户显示模块7

3.2.1流程图8

3.2.2显示模块界面8

3.2.3代码讲解8

3.3重载客户信息模块10

3.3.1代码讲解10

3.4程序客户信息添加模块10

3.4.1流程图10

3.4.2添加显示界面11

3.4.3代码讲解12

3.5程序客户信息删除模块13

3.5.1流程图13

3.5.2程序删除显示界面14

3.5.3代码讲解14

3.6程序客户信息修改模块15

3.6.1修改模块流程图15

3.6.2修改程序界面15

3.6.3代码讲解16

3.7程序客户信息查询模块17

3.7.1查询模块流程图17

3.7.2查询功能界面17

3.7.3代码讲解18

第4章结束语21

附录:

主要源程序25

第1章项目分析

本系统用于企业的客户资料管理。

主要任务是用计算机对企业客户进行日常管理,如企业客户信息的添加、删除、修改、查询。

能进行单条件的企业客户信息查询的查询。

1.1问题描述

程序需要有一个简洁的界面,使管理者一看便知怎么操作。

程序还需要实现增加、修改、删除、查询功能。

项目中我组用到了MySQL数据库实现客户信息的储存。

同时设置了登录功能只有管理员才能对客户进行相关的操作。

为解决这些问题我们就得查询个方面的资料,为更好的解决问题做好准备。

1.2技术分析

考虑到本系统的性能要求,和现有的条件,我选择了WINDOWSXP中文版作为开发、测试和运行的平台。

因为WINDOWS操作系统是目前应用最广的操作系统,它以全新的图形界面,简单快捷的操作方式,支持多媒体功能等特点而成为软件发展的流行趋势,选用它作为开发平台,易于功能的扩展和软件升级。

针对目前世界上流行的大量软件和开发工具,经过认真分析其优缺点并根据平时所学的知识,结合企业客户管理系统的需要和目前的硬件环境,我选用Eclipse作为软件开发工具。

本程序主要是利用JAVA语言编写,具有良好的可移植性。

能够适用于多种平台,对系统的推广有很大的作用。

本系统的数据库也是使用的最简单的数据库,MySQL它具有简单的界面方便的操作,可以让我们远离那些大型数据库的繁琐操作。

第2章数据库设计

数据库设计是应用系统开发的一个重要环节,数据库结构的好坏将直接对应用系统的效率及实现结果产生重要影响。

在数据库设计的开始阶段应尽量全面考虑用户的各种需求,收集基础数据、数据结构及数据处理流程。

2.1数据库图表设计

数据库中主要是存储的客户信息,由于时间有限本系统中的管理员只有一个默认的。

无法修改管理员的ID为admin密码为admin。

并没有用到数据库来存储管理员的信息。

数据库中的表为custom,表中的主要数据为id、name、phone、address。

2.2数据库图表

表中个变量的属性如图:

图2.1custom表中的变量及其属性

Custom表中数据情况如图:

图2.2custom表中数据情况

数据库中还要对用户进行设置,如果不进行设置其他的计算机就无法与服务器的数据库进行连接,也就无法得到数据库中相应的数据。

在第二周程序制作的时候遇到了这样的问题,在老师的细心帮助之下我们得到了良好的解决。

第3章程序界面构建

由于客户管理系统的众多要求,我组决定进行分工。

主要有程序界面的开发,程序中服务器及客户端的开发以及程序与数据库之间的通信。

我主要负责的是程序界面构建这部分的设计主要是实现:

系统界面客户端系统主要有7个类:

Land.java:

实现系统的登录页面。

Client.java:

实现与服务器端的通信功能。

TableModeldemo.java:

这主要是系统的主界面。

它联系了程序的个个类。

NewRecordDialog.java:

这个类是系统的添加界面。

NewSelect.java:

这个类者是系统的查找界面。

User.java:

这个类是系统的管理员信息类,储存管理员的信息。

DB.java:

它主要实现系统的功能,以及对数据库的各种操作。

程序的主要流程如下图:

 

图3.1程序的主流程图

程序中的个个类之间也存在这各种的关系如下图:

 

图3.2程序各类之间的调用关系

下面将为你讲解我们程序功能实现的详细细节。

3.1程序界面板块

importjava.awt.BorderLayout;

importjava.awt.Color;

importjava.awt.Dimension;

importjava.awt.FlowLayout;

importjava.awt.Font;

importjava.awt.FontMetrics;

importjava.awt.Graphics;

importjava.awt.GridLayout;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.sql.SQLException;

importjava.util.Date;

importjavax.swing.*;

importjavax.swing.event.ListSelectionEvent;

importjavax.swing.event.ListSelectionListener;

importjavax.swing.table.DefaultTableModel;

publicclassTableModeldemoextendsJFrame{

publicstaticDefaultTableModeltableModel=newDefaultTableModel();

publicstaticDefaultListSelectionModellistSelectionModel=newDefaultListSelectionModel();

publicstaticJTablejTable1=newJTable(tableModel);

privateJButtonjbtAddRow=newJButton("添加新客户");

privateJButtonjbtDeleteRow=newJButton("删除选定客户");

privateJButtonjbtseek=newJButton("查找客户");

privateJButtonjbtupdate=newJButton("修改客户信息");

privateJButtonjbtconnection=newJButton("显示现有客户");

privateJButtonjbtRestore=newJButton("按客户编号排序");

privateJButtonjbtnext=newJButton("退出程序");

privateDatedate=newDate();

privateStringtime;

privateJLabeljlblStatus1=newJLabel();

publicstaticJLabeljlblStatus2=newJLabel();

privateDBdb=newDB();

publicTableModeldemo(){

setTitle("****客户管理系统****");

JPanelpanel1=newJPanel();

panel1.setLayout(newGridLayout(7,1,0,5));

panel1.add(jbtconnection);

panel1.add(jbtRestore);

panel1.add(jbtAddRow);

panel1.add(jbtDeleteRow);

panel1.add(jbtupdate);

panel1.add(jbtseek);

panel1.add(jbtnext);

JPanelpanel2=newImagee();

panel2.setForeground(Color.red);

panel2.setFont(newFont("Courier",Font.BOLD,35));

JPanelpanel3=newJPanel();

panel3.setLayout(newBorderLayout());

panel3.add(jlblStatus2,BorderLayout.SOUTH);

panel3.add(newJScrollPane(jTable1),BorderLayout.CENTER);

panel3.setPreferredSize(newDimension(400,200));

JSplitPanejSplitPane2=newJSplitPane(JSplitPane.HORIZONTAL_SPLIT,panel1,panel3);

JSplitPanejSplitPane1=newJSplitPane(JSplitPane.VERTICAL_SPLIT,panel2,jSplitPane2);

add(jSplitPane1,BorderLayout.CENTER);

add(jlblStatus1,BorderLayout.SOUTH);

jTable1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

setSize(750,550);

setLocationRelativeTo(null);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setVisible(true);

time=date.toString();

jTable1.setSelectionModel(listSelectionModel);

jbtconnection.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

try{

db.setConnection();

jlblStatus1.setText(time+"数据库以成功链接!

");

}

catch(Exceptionex){

ex.printStackTrace();

}

}

});

jbtAddRow.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

try{

db.insert();

jlblStatus1.setText(time+"添加成功!

");

}catch(SQLExceptionex){

jlblStatus1.setText(ex.toString());

JOptionPane.showMessageDialog(null,"添加失败!

");

}

}

});

jbtDeleteRow.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

if(jTable1.getSelectedRow()>=0){

tableModel.removeRow(jTable1.getSelectedRow());

try{

db.delete();

jlblStatus1.setText(time+"删除成功!

");

}catch(SQLExceptionex){

jlblStatus1.setText(ex.toString());

JOptionPane.showMessageDialog(null,"删除失败!

");

}

}

}

});

jbtupdate.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

try{

db.update();

jlblStatus1.setText(time+"修改成功!

");

}

catch(Exceptionex){

jlblStatus1.setText(ex.toString());

JOptionPane.showMessageDialog(null,"修改失败!

");

}

}

});

jbtseek.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

try{

newNewSelect();

jlblStatus1.setText(time+"查询!

");

}

catch(Exceptionex){

jlblStatus1.setText(ex.toString());

}

}

});

jbtRestore.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

try{

db.setConnection();

jlblStatus1.setText(time+"以重新排序!

");

}catch(Exceptionex){

jlblStatus1.setText(ex.toString());

}

}

});

jbtnext.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

JOptionPane.showMessageDialog(null,"欢迎下次使用!

");

System.exit(0);

}

});

listSelectionModel.addListSelectionListener(newListSelectionListener(){

publicvoidvalueChanged(ListSelectionEvente){

db.listSelectionModel_valueChanged(e);

}

});

}

classImageeextendsJPanel{

ImageIconiamgeIcon=newImageIcon("1.jpg");

java.awt.Imageiamge=iamgeIcon.getImage();

publicvoidpaintComponent(Graphicsg){

super.paintComponent(g);

if(iamge!

=null)

g.drawImage(iamge,0,0,getWidth(),getHeight(),this);

FontMetricsfm=g.getFontMetrics();

intstringWidth=fm.stringWidth("欢迎使用客户管理系统");

intstringAscent=fm.getAscent();

intx=getWidth()/2-stringWidth/2;

inty=getHeight()/2+stringAscent/2;

g.drawString("欢迎使用客户管理系统",x,y);

}

}

}

第4章结束语

本次的课题已经较好的完成,只有部分功能没有实现。

在本学期的开学初期,我们在学校机房进行了为期三周的JAVA实训。

现在即将结束了,回首本学期的java学习,重点还是在学习概念等一些常识性的东西,通过这次为期三周的实训,遇到了很多自己感兴趣的问题,就会很有兴趣,当然学知识可不能凭自己的爱好和一时兴趣,不能遇到自己不敢兴趣的问题就把它抛给同学,要学会自己踏踏实实认真的去解决问题。

要一步一个脚印,认认真真,踏踏实实,理论与实践相结合,在扎实掌握课本实例和内容之后,有一定的扩展阅读和课外学习,充分全面的了解JAVA的应用和扩展运用。

本次我们小组所做的程序是“客户管理系统”基本功能已经较好的完成,可是还是有一些不完善,比如我们的通讯录没有能够做到把通讯录里所储存的信息以列表的形式展现出来,所以还是有些不完善,,我们的指导老师对我们的程序作出了大体评价,发现我们的思想还是处于一个比较简单的过程当中,老师的几句简单评价,就带给我们无与伦比的冲击性,由于我们写程序的经验尚且较少,很多东西无法考虑到位,老师的点评,使我们认识到了不足与今后的前进方向与目标,使我们更加具有动力与激情,拥有了继续认真学习JAVA的信心,拥有了成为一位合格的高级程序员的壮志,在编写程序的过程当中,我们在一开始就遇到了问题,一直在纠结与是使用数据库连接还是使用文件,经过老师的耐心讲解,我们了解到了尚未接触到的Jar包等一些列名词,但是经过数据库的抒写与连接发现SQL2000与SQL2005无法同步,所以最终我们选择了使用文件来进行这次程序的编写,第二个问题就是我们的程序在进行按钮新窗口的链接,在新窗口弹出时,无法将老窗口关闭,纠结了好久,询问老师,老师还给我用了“父子”的生动例子来讲解,最终我们查找JDK,查找类的用法终于完美解决!

甚是兴奋!

本次的课题已经较好的完成,只有部分功能没有实现。

还得通过以后的继续学习来慢慢的完善。

整个程序的效果还是很好的简单使用,没有错误。

可以帮助用户建立完善的通信录。

程序中还有很多的不足,比如程序没有模糊查询的功能,只有用户输入与文本中出入的相同的信息,系统才会检索出来该联系人。

程序中还没有列出所有联系人的信息,这不方便用户的各项操作。

程序的添加功能也存在一定的不足,只有用回把说有的信息输入以后

才能添加成功。

在我所学的语言当中,我自认为JAVA是一门比较强大的面向对象的编程语言,不仅仅因为它的跨平台性,更多的是因为它的灵活多变和实用性较强,可以说比较的经典和强悍。

所以学好java语言有很大的用处,这次实训,面对一道陌生的题目和要求时,不应慌张和无措,首先应该想到这和课本上的哪些知识具有结合点,回忆和分析这种结构的算法和具体实施方法,综合考虑其他的方面,例如:

该题的易写性和易懂性及其他的问题的可利用性。

在编写时

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

当前位置:首页 > 农林牧渔 > 水产渔业

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

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