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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

客户管理系统2.docx

1、客户管理系统23三级实践课题设计任务书姓 名 题 目客户管理系统的开发设计任务开发一个比较完善的基于JAVA的客户管理服务系统,主要任务是用计算机对企业客户进行日常管理,如企业客户信息的添加、删除、修改、查询。系统还区分了客户端与服务器端。可以实现多台计算机同时访问服务器进行客户的管理工作。主要功能包括:1. 对客户的基本管理功能,系统界面的组建(独立完成)2. 区分客户端与服务器端。3. 对数据库中的数据进行基本操作,实现系统的管理功能开发工具:Photoshop、MySQL时间进度第1周(2012-02-202012-02-24):学习编写客户管理系统中所需要的相关的知识,为后两周的课题的

2、编写打下基础。第2周(2012-02-272012-03-02):开始编写程序的界面代码,参考各种资料,逐个实现程序的功能。第3周(2012-03-052012-03-09):测试已编好的程序,找到程序中的不知,修改程序,使程序更加完善。原 主始 要资 参料 考与 文 献01(美)梁(Liang,Y.D.). JAVA语言程序设计基础篇(原书第6版)M:机械工业出版社 2008.602 凯德纳黑德, 勒迈, 陈武. 21天学通Java 2:专业参考版.M 人民邮电出版社 2004.0103 洪维恩 何嘉. JAVA 2面向对象程序设计.M 中国铁道出版社2005.0104 张靓 顾慧敏. JA

3、VA案例开发.M 中国水利水电出版社.2005.01指导教师签字: 年 月 日客户管理系统摘 要企业是一个生产、管理的集散地,生产资料和企业客户资料繁多,包含很多信息数据的管理。在过去的企业中用书面管理信息,在修改、查询、添加企业客户信息方面都没有很好的发挥它的效益,企业客户资料管理复杂、工作量大比较突出,不能利用多种途径查询企业客户资料,修改后不能同步更改所有档案资料。这就是企业客户管理系统开发的基本环境。设计处理查询方式单一,添加不能与统计同步,出错率高,出错后不易更改。由于信息比较多,企业客户信息管理比较混乱;一般客户情况是记录的,资料的数目和内容记录在文件中,资料室的工作人员和管理人员

4、也只能当时比较清楚,时间一长,如再有进行查询,查找了造成查询费时,费力。如果对很长时间以前的资料进行更改就更加困难了。基于此类问题,我组认为有必要建立一个企业客户管理系统,使资料管理工作规范化,程序化,避免资料管理随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询、修改和保存资料情况。管理人员必须以管理员身份登录,保证了系统的安全性。系统的总体任务是使企业管理人员可以轻松快捷地完成对企业客户管理的任务。有利于提高管理效率。关键词:客户信息管理、通讯录、系统管理目 录摘 要 1第1章 项目分析 11.1问题描述 11.2技术分析 1第2章 数据库设计 22.1数据库图表设计 22.2

5、数据库图表 2第3章 程序界面构建 33.1程序界面板块 53.2程序界面代码讲解 5第4章 结束语 12附录: 主要源程序 17第1章 项目分析本系统用于企业的客户资料管理。主要任务是用计算机对企业客户进行日常管理,如企业客户信息的添加、删除、修改、查询。能进行单条件的企业客户信息查询的查询。1.1问题描述程序需要有一个简洁的界面,使管理者一看便知怎么操作。程序还需要实现增加、修改、删除、查询功能。项目中我组用到了My SQL数据库实现客户信息的储存。同时设置了登录功能只有管理员才能对客户进行相关的操作。为解决这些问题我们就得查询个方面的资料,为更好的解决问题做好准备。1.2技术分析考虑到本

6、系统的性能要求,和现有的条件,我选择了WINDOWS XP中文版作为开发、测试和运行的平台。因为WINDOWS操作系统是目前应用最广的操作系统,它以全新的图形界面,简单快捷的操作方式,支持多媒体功能等特点而成为软件发展的流行趋势,选用它作为开发平台,易于功能的扩展和软件升级。针对目前世界上流行的大量软件和开发工具,经过认真分析其优缺点并根据平时所学的知识,结合企业客户管理系统的需要和目前的硬件环境,我选用Eclipse作为软件开发工具。本程序主要是利用JAVA语言编写,具有良好的可移植性。能够适用于多种平台,对系统的推广有很大的作用。本系统的数据库也是使用的最简单的数据库,My SQL 它具有

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

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

9、。TableModeldemo.java:这主要是系统的主界面。它联系了程序的个个类。NewRecordDialog.java:这个类是系统的添加界面。NewSelect.java:这个类者是系统的查找界面。User.java:这个类是系统的管理员信息类,储存管理员的信息。DB.java:它主要实现系统的功能,以及对数据库的各种操作。程序界面构造主要用到JTable类,JSplitPane类。JTable主要用于建立表格以显示客户基本信息,JSplitPane类主要用于设置界面的分隔栏。程序的主要流程如下图:图3.1 程序的主流程图 程序中的个个类之间也存在这各种的关系如下图:图3.2 程序各

10、类之间的调用关系下面将为你讲解我们程序功能实现的详细细节。3.1程序界面板块图3.3程序主界面截图3.2程序界面代码讲解public static JTable jTable1 =new JTable(tableModel);JTable是一个Swing组件,在二维网格的行列中显示数据。JTable不直接支持滚动。要创建一个可滚动的表格,需要创建滚动窗格JScrollPane,并把JTable的实例添加到该滚动窗格中,它的列首将不可见,因为列首存放在滚动面板的首部。JTable有三个支持模型:表格模型、列模型和列表选择模型。表格模型用来存储和处理数据;列模型用来表示表格种的所有列;列表选择模型

11、与JList中使用的相同,用来在表格中选择行、列和单元格。JTable也有两个有用的支持类TableColumn和JTableHeader。TableColumn包含一个具体列的信息,JTableHeader包含JTable表头的信息。每列都有一个默认的编辑器和绘制器。也可以通过实现TableCellEditor接口来创建一个自定义的编辑器,通过实现TableCellReaderer接口来创建一个自定义绘制器。private Date date = new Date();一个包装了毫秒值的瘦包装器 (thin wrapper),它允许 JDBC 将毫秒值标识为 SQL DATE 值。毫秒值表示

12、自 1970 年 1 月 1 日 00:00:00 GMT 以来经过的毫秒数。为了与 SQL DATE 的定义一致,由 java.sql.Date 实例包装的毫秒值必须通过将小时、分钟、秒和毫秒设置为与该实例相关的特定时区中的零来“规范化”。 private JLabel jlblStatus1= new JLabel();public static JLabel jlblStatus2 = new JLabel();jlblStatus1此组件用于为系统显示各种提示信息。jlblStatus2 此组件用于为系统显示用户所在行数。 private DB db=new DB();为功能函数DB创

13、建一个实类。public TableModeldemo() setTitle(*客户管理系统*);为程序主界面设置标题 JPanel panel1 = new JPanel(); panel1.setLayout(new GridLayout(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); pan

14、el1组件为系统中的各个按键 JPanel panel2 = new Imagee(); panel2.setForeground(Color.red); panel2.setFont(new Font(Courier,Font.BOLD,35);panel2组件为系统的欢迎界面,组件重新构造了JPanel类。 JPanel panel3 = new JPanel(); panel3.setLayout(new BorderLayout(); panel3.add(jlblStatus2,BorderLayout.SOUTH); panel3.add(new JScrollPane(jTabl

15、e1),BorderLayout.CENTER); panel3.setPreferredSize(new Dimension(400,200);panel3用于显示客户信息的界面 JSplitPane jSplitPane2 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,panel1,panel3); JSplitPane jSplitPane1 = new JSplitPane(JSplitPane.VERTICAL_SPLIT,panel2,jSplitPane2);分隔窗格JSplitPane是一个方便的Swing容器,它包含用分隔栏(div

16、ider)分隔开的两个组件。分隔栏可以水平或垂直地分隔容器,拖动分隔栏可以改变每个组件所占空间的大小。指定该容器被水平分隔或垂直分隔,可能的取值有:JSplitPane.HORIZONTAL_SPLIT和JSlitPane.VERTICAL_SPLIT,默认值为JSplitPane.HORIZONTAL_SPLIT,它把容器分成左半部分和右半部分右边或底部的组件。add(jSplitPane1,BorderLayout.CENTER); add(jlblStatus1,BorderLayout.SOUTH); 此句为把已分配好的各个面板添加到JFrame上完成界面的构建。 jTable1.se

17、tSelectionMode(ListSelectionModel.SINGLE_SELECTION); setSize(750, 550); 此句为设置主界面的大小 setLocationRelativeTo(null); 此句为设置页面居中选项 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 此句为设置页面关闭后的操作 setVisible(true); 此句为设置页面显示 jbtconnection.addActionListener(new ActionListener()public void actionPerformed(Actio

18、nEvent e) try db.setConnection(); jlblStatus1.setText(time+数据库以成功链接!); catch(Exception ex) ex.printStackTrace(); );此句为与书据库建立连接按键的监听,并调用主函数的setConnection方法,以取得与数据库的连接。 jbtAddRow.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) try db.insert(); jlblStatus1.setText(time

19、+添加成功!); catch (SQLException ex) jlblStatus1.setText(ex.toString(); JOptionPane.showMessageDialog(null, 添加失败!); );此句为添加客户信息按键设置监听,调用功能函数中的添加方法insert,以实现对客户信息的添加功能。 jbtDeleteRow.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e) if(jTable1.getSelectedRow()=0) tableModel.

20、removeRow(jTable1.getSelectedRow(); try db.delete(); jlblStatus1.setText(time+删除成功!); catch (SQLException ex) jlblStatus1.setText(ex.toString(); JOptionPane.showMessageDialog(null, 删除失败!); );此句为删除客户信息按键设置监听,调用功能函数中的添加方法delete,以实现对客户信息的删除功能。jbtupdate.addActionListener(new ActionListener()public void

21、actionPerformed(ActionEvent e) try db.update(); jlblStatus1.setText(time+修改成功!); catch(Exception ex) jlblStatus1.setText(ex.toString(); JOptionPane.showMessageDialog(null, 修改失败!); );此句为修改客户信息按键设置监听,调用功能函数中的修改方法update,以实现对客户信息的修改功能。jbtseek.addActionListener(new ActionListener()public void actionPerfo

22、rmed(ActionEvent e) try new NewSelect(); jlblStatus1.setText(time+查询!); catch(Exception ex) jlblStatus1.setText(ex.toString(); );此句为查询客户信息按键设置监听,调用函数NewSelect,显示查找界面,以实现对客户信息的查询功能。jbtRestore.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e) try db.setConnection(); jlbl

23、Status1.setText(time+以重新排序!); catch (Exception ex) jlblStatus1.setText(ex.toString(); );此句为重新加载客户信息按键设置监听,调用功能函数中的修改方法setConnection,以实现对客户信息的重新加载功能。jbtnext.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) JOptionPane.showMessageDialog(null, 欢迎下次使用!); System.exit(0);

24、);此句为退出按键设置监听,实现退出功能。 listSelectionModel.addListSelectionListener(new ListSelectionListener()public void valueChanged(ListSelectionEvent e) db.listSelectionModel_valueChanged(e); );监听JTable中鼠标按键所选行数的变化。 class Imagee extends JPanel ImageIcon iamgeIcon = new ImageIcon(1.jpg); java.awt.Image iamge =iam

25、geIcon.getImage(); public void paintComponent(Graphics g) super.paintComponent(g); if(iamge!=null) g.drawImage(iamge, 0, 0, getWidth(), getHeight(),this); FontMetrics fm =g.getFontMetrics(); int stringWidth = fm.stringWidth(欢迎使用客户管理系统); int stringAscent = fm.getAscent(); int x = getWidth()/2-stringW

26、idth/2; int y = getHeight()/2+stringAscent/2; g.drawString(欢迎使用客户管理系统, x, y); 重新编写JPanel,在JPanel添加图片1.jpg,作为程序欢迎使用界面的背景,并在背景上画出欢迎使用客户管理系统字样。 第4章 结束语本次的课题已经较好的完成,在本学期的开学初期,我们在学校机房进行了为期三周的JAVA实训。现在即将结束了,回首本学期的java学习,重点还是在学习概念等一些常识性的东西,通过这次为期三周的实训,遇到了很多自己感兴趣的问题,就会很有兴趣,当然学知识可不能凭自己的爱好和一时兴趣,不能遇到自己不敢兴趣的问题就

27、把它抛给同学,要学会自己踏踏实实认真的去解决问题。要一步一个脚印,认认真真,踏踏实实,理论与实践相结合,在扎实掌握课本实例和内容之后,有一定的扩展阅读和课外学习,充分全面的了解JAVA的应用和扩展运用。本次我们小组所做的程序是“客户管理系统”基本功能已经较好的完成,可是还是有一些不完善,比如我们的通讯录没有能够做到把通讯录里所储存的信息以列表的形式展现出来,所以还是有些不完善,我们的指导老师对我们的程序作出了大体评价,发现我们的思想还是处于一个比较简单的过程当中,老师的几句简单评价,就带给我们无与伦比的冲击性,由于我们写程序的经验尚且较少,很多东西无法考虑到位,老师的点评,使我们认识到了不足与

28、今后的前进方向与目标,使我们更加具有动力与激情,拥有了继续认真学习JAVA的信心,拥有了成为一位合格的高级程序员的壮志,在编写程序的过程当中,我们在一开始就遇到了问题,一直在纠结与是使用数据库连接还是使用文件,经过老师的耐心讲解,我们了解到了尚未接触到的Jar包等一些列名词,但是经过第二个问题就是我们的程序在进行按钮新窗口的链接,在新窗口弹出时,无法将老窗口关闭,纠结了好久,询问老师,老师还给我用了“父子”的生动例子来讲解,最终我们查找JDK,查找类的用法终于完美解决!甚是兴奋!本次的课题已经较好的完成,只有部分功能没有实现。还得通过以后的继续学习来慢慢的完善。整个程序的效果还是很好的简单使用

29、,没有错误。可以帮助用户建立完善的通信录。程序中还有很多的不足,比如程序没有模糊查询的功能,只有用户输入与文本中出入的相同的信息,系统才会检索出来该联系人。程序中还没有列出所有联系人的信息,这不方便用户的各项操作。程序的添加功能也存在一定的不足,只有用回把说有的信息输入以后才能添加成功。在我所学的语言当中,我自认为JAVA是一门比较强大的面向对象的编程语言,不仅仅因为它的跨平台性,更多的是因为它的灵活多变和实用性较强,可以说比较的经典和强悍。所以学好java语言有很大的用处,这次实训,面对一道陌生的题目和要求时,不应慌张和无措,首先应该想到这和课本上的哪些知识具有结合点,回忆和分析这种结构的算法和具体实施方法,综合考虑其他的方面,例如:该题的易写性和易懂性及其他的问题的可利用性。在编写时,一个小小的符号,一个常量变量的设定,这都无不考量着我们的细心和严谨,所以学习JAVA,不仅对我们以后学习其他语言有很大的好处,而且也让我们知道了和理解了作为一个编程人员首先应具有的良好心理素质,那就是冷静思考和专心致志。对待学术知识应该是严谨和认真。这次实训,我们更多学到的是不懂就问和自己应该尽自己的全力去尝试,哪怕失败,只要自己尽自己的全力,和身边同学一起探讨而不是抄袭,团结合作,发挥团队意识,最后在自己的努力下,终于运行成功,这种成就感美不可言,心情愉悦至极。据我

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

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