客户信息管理系统毕业论文 - 范文中心

客户信息管理系统毕业论文

02/04

青岛理工大学琴岛学院

毕 业 设 计 (论 文)

专 业 计算机科学与技术专业 班 级 专升本(11-21) 学生姓名 孙际斌 学 号 课 题 客户信息管理系统 指导教师 王世广

2013年 5 月 30 日

摘要

当今社会,随着计算机的的领域不断扩张,人们越来越离不开计算机的同时,对计算机软件的需求也不断提高。以往生活中软件都是在大的企业中得到应用,现在却大不一样了,因为互联网在现实生活中的不断扩展,人们的知识领域的增加,同样伴有的就是中小型企业的成长,例如现在电子商务的普遍,中小卖家就会应用到大小不一的ERP 系统。 ERP 是针对物资资源管理(物流)、人力资源管理(人流)、财务资源管理(财流)、信息资源管理(信息流)集成一体化的企业管理软件。它将包含客户/服务 架构,使用图形用户接口,应用开放系统制作。除了已有的标准功能,它还包括其它特性,如品质、过程运作管理、以及调整报告等。既然如此,那么这些方面的提高必定对我们现有生活发挥大的作用。同样现在面临的ERP 系统价钱都是相当高昂的,对于小型企业来讲这样的负担还是相当重的,紧迫中开发一款简单而又实际结合中小企业需求的这样一款软件也是迫在眉睫,而对于Java 简易的开发模式势在必行。

关键词:Java ERP 人力资源管理 客户管理 电子商务

I

Abstract

Nowadays, with the continuous expansion of the field of computer, more and more people cannot do without the computer at the same time, the computer software requirements is also rising. Past life of software is applied in large enterprises, now is not the same, because the Internet in real life, to increase people's knowledge, also with is the growth of small and

medium-sized enterprises, such as e-commerce is now generally, small sellers will be applied to the different sizes of the ERP system.

ERP is for the material resource management (logistics), human resource management (people), the management of financial resources (financial flows), information resources management (information flow) integration of enterprise management software. It will include the client / server architecture, using a graphical user interface, making use of open system. In addition to the existing standard features, it also includes other characteristics, such as quality, process operations management, and regulatory reporting. If so, then these aspects to improve our existing life is bound to play a big role. The price of ERP system also faces are quite high, for small businesses that burden is heavy, the actual combination is imminent needs of SMEs in the development of such a software pressing a simple yet, but for simple Java development model be imperative.

Keywords: Java ERP human resource management customer management e-commerce

II

目录

第1章 绪论 . ................................................................................................................................ 1

1.1 系统开发背景 . ................................................................................................................. 1

1.2 系统现实价值 . ................................................................................................................. 1

第2章 需求分析 . ........................................................................................................................ 3

2.1 用例图 . ............................................................................................................................. 3

2.2 相关用例 . ......................................................................................................................... 4

第3章 概要设计 . ........................................................................................................................ 6

3.1 流程图 . ............................................................................................................................. 7

3.2 数据结构 . ......................................................................................................................... 7

第4章 数据库设计 . .................................................................................................................. 10

4.1 信息表 . ........................................................................................................................... 10

4.2 ER图 . .............................................................................................................................. 11

第5章 界面设计 . ...................................................................................................................... 12

5.1 软件界面 . ....................................................................................................................... 12

5.2 界面跳转关系 . ............................................................................................................... 13

第6章 详细设计与实现 . .......................................................................................................... 15

6.1 系统执行流程 . ............................................................................................................... 15

6.2 编码规范 . ....................................................................................................................... 22

总结: . .......................................................................................................................................... 28

致谢: . .......................................................................................................................................... 29

参考文献: . .................................................................................................................................. 30

III

第1章 绪论

1.1 系统开发背景

ERP 是Enterprise Resource Planning(企业资源计划)的简称,是上个世纪90年代美国一家IT 公 司根据当时计算机信息、IT 技术发展及企业对供应链管理的需求,预测在今后信息时代企业管理信息系统的发展趋势和即将发生变革,而提出了这个概念。 现如今,ERP 是针对物资资源管理(物流)、人力资源管理(人流)、财务资源管理(财流)、信息资源管理(信息流)集成一体化的企业管理软件。而现如今的ERP 系统已经在企业中占据了相当重要地位,其中我们今天开发的客户信息管理系统也是ERP 系统中的一部分。在我们企业中,现在由于人际交往的复杂已经面临的多重问题,客户的地位在一家企业中是尤为重要的,而更多的人为了服务好顾客,甚至会为顾客很多工作以外的事情,比如在顾客的生日上送上祝福和礼物,在这样的基础上,客户可能会跟这家企业走的更近,这就是服务型企业的到位之处。同样面临的问题就是,仅凭一个人的脑子去记忆如此庞大的信息系统那是不够的,所以我们就紧迫需要一款这样的记忆系统来帮助我们整理客户的信息,更重要的是在必要的时间弹出窗口来提醒我们,是顾客的生意了,那么我们就要提前做好准备给我们的顾客一个意外的惊喜。在这样的激励下,就有了我们客户新管理系统这一款软件的诞生。

1.2 系统现实价值

客户信息管理系统实际应用中更重要的是应该体现其“管理工具”的本质。系统主要宗旨是对企业所有客户、信息、时间和空间等综合资源进行综合平衡和优化管理,所以,该系统首先是一个软件,同时是一个管理工具。该软件是IT 技术与管理思想的融合体,系统也就是先进的管理思想借助电脑,来达成企业的管理目标。它具有整合性,把所有可能的潜在客户备份到系统当中来,所以在量上实现了整合,同样具备便利性,因为凡属有客户在本月或者在近几日生日,那么系统就会自动弹出提醒框来加以提示,所以远比我们去单个查找要来的方便,所以在这一点上也体现出了它的实时性。

对个人来讲,客户是使我们有工作的人,客户不必依赖我们,我们却必须依赖客户;对企业来讲,客户购买企业提供的产品和专业服务,是企业是最重要的资源,是企业赖以生存的根本。客户对所进行的交易总有所期望,比如花的钱最值得,得到的服务最满意,如果期望得不到满足,客户就会寻找其他渠道以满足需要。因为客户有选择的权利。据国外一位知名心理医生统计,对一段不愉快的经历,平均每个人会告诉他身边的20个人,假如是一段愉快的经历,则平均会告诉5个人。由此看来,只要赶走了一个客户,就等于赶走了潜在的20个客户。如果你一天内遇到了50个客户,其中有两个客户对你的服务产生了不愉快的感受(这也许是我们企业常见的事情),那么一年后,由于连锁反应,可能有5000个人再也不愿意与我们打交道。而失去的客户,则成为竞争对手得到的客户。试想这样的企业,将何以在市场中立足?!联系到我们公司,该怎样来为客户提供物有所值甚至

物超所值的产品和服务呢?接待人员是企业的第一个窗口,据调查客户不满意的原因有36%是 由受到的接待引起的。我们要把自己置身于客户的角度,准确了解客户的需要,真正做到将“无微不至的关怀”送给客户。要和客户保持良好的关系,还要做好跟踪 服务。由于这样那样的原因,我们的工作中难免会出现失误而引起客户的不满。有关资料显示,当我们主动与客户联系并解决问题时,客户的满意程度就会提高30%。定期对客户进行回访,根据反馈的信息迅速做出回应,让客户时刻感受到体贴和关怀,一定会有良好的收效。所以一款好的客户管理系统,跟客户之间拉近距离是我们首选的。

第2章 需求分析

2.1 用例图

图2-1 系统用例图

根据我们系统的需求分析,Admin 需要通过见客户建立关系,那么我们系统的运行最初端口MainLoad.java 开始,通过我们的输入的用户名和密码直接跳转我们的系统主界面,即InSystem.java 。当然进入系统之前系统是需要判断的,比如我们的用户名和密码错误或者是其它异常等等,这里我们采用的方式就是Label 提醒,就是改变Label 的文字内容和其颜色来提示我们的信息错误,一旦填写错误并且提交之后,系统就会做出相应的提示,并且重新输入用户名和密码。用户名和密码正确我们的系统Progress 进程块运行完毕正常跳转InSystemn.java. 进入我们的系统之后,从菜单栏文件开始,那么点击“注册”将会直接跳转到RegWindow.java ,即我们的注册用户窗口。因为注册窗口我们关闭之后我们的接下来的程序就是重新登录,那么我们就重新回到了MainLoad(),如此循环到主系统界面,我们进入切换窗口。切换窗口的功能就是登录不同账号,点击切换按钮后,我们又关闭了当前的系统,即dispose(),然后重new 一个MainLoad(),那么同样的还是回到MainLoad ,这

里我们可以更改不同的账号进行登录。添加账户信息:直接跳转AddInform.java ,这里将会填入相关的客户信息,添加之后关闭添加的界面,回到主主界面。搜索:跳入的是NameSearchInform.java ,这里确定后是检索的过程,然后通过主界面的表格来显示,所以关闭当前的搜索窗口。最近生日:跳入BirthInform.java ,统计最近生日列表。最近生日:跳入的是 BirthInform.java ,这里只需要在工具栏上点击“最近生日”即可生成最近生日的窗口。并且该窗口是定时出现的,即使我们现时间关闭了。

我们的用户具有的管理模块如下:

权限管理:实现我们一些低级管理员的权限修正,比如我们的高级管理员具有一切管理权限,我们的普通管理员具有添加但不具备删除和修改功能,而信息阅览的管理员是只能阅览的。

添加客户:添加客户相关信息这个也是最直观的的了,当然该模块只能在高级管理和普通管理下操作。

客户备注:客户备注就是添加信息中的一个信息块,主要为备注客户生日时所要做的事情,以提醒的用途。

查询信息:完成对客户信息的检索功能,直接输入客户的姓名,我们可以通过该功能直接搜索客户所有信息。

注册管理员:该管理功能只有在高级管理员下方可执行的,可以为高级管理员、普通管理员和信息阅览实现与用户注册。

2.2 相关用例

表2-2 系统登录

系统登陆模块是在我们系统首次运行所要输入的密钥界面,即我们需要提供已经在数据库中存在的用户名和密码,数据库中核对存在并且正确后,将会登陆成功;如果不成功,界面中Label 将会显示为红色字体以提示密码错误。如表2-2 系统登录所示。

表2-3 添加客户信息

添加客户信息模块,我们会需要在我们系统数据库中的所有信息,比如客户姓名、生日、产品、成交信息和备注信息等等。我们需要填写用户的相关信息提交就可以了,前提是该客户信息不存在,否则将会有相关的异常信息,同样地、如果提交成功,我们的数据库将会新增一条客户信息,同样地,我们也会通过showMessageDialog 来做出成功添加信息提示。如表2-3 所示。

表2-4

搜索客户信息

搜索客户信息,我们需要提供两种途径,分别是通过姓名和月份,通过直接输入姓名查询出客户信息即可通过系统列表显示出相应搜索名的信息列表。或者输入在某几个月份之内的所有客户信息,我们可以输入多个月份,例如输入“1-12”,意思就是显示当前客户

列表中生日在1-12个月的信息,意思就是显示所有客户信息了。也可以输入一个月份的信息,同样提交就会显示相应的客户提示信息列表。如果相关信息不存在,列表显示为空,如表2-4搜索客户信息所示。

表2-5 注册用户

注册用户,在注册用户之前我们要确定用户不存在,否则我们无法提交用户信息到数据库。成功提交用户信息,将会在数据库中存储,并提示“注册成功” 这样的提示信息。如表2-5 注册用户所示。

表2-6 删除客户信息

删除客户信息只需要选中我们列表中的某一条信息,点击“删除”按钮即可删除的,如果无法删除将会有系统提示信息。如表2-6 删除客户信息所示。

第3章 概要设计

3.1 流程图

图3-1 系统流程图

图3-1系统的全程流程图描述了系统的各个模块,以及操作的执行顺序,我们后面将根据我们的需求和描述安排,对系统设计和开发。

3.2 数据结构

数据结构是指数据相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。

系统模块包括多个信息元素,其中包括系统的登陆、用户注册、修改密码、切换用户、 添加客户信息、删除客户信息、搜索客户信息、最近生日和切换用户等等,如图3-2 所示:

图3-2 系统结构图

表3-3描述了系统的数据结构表组成关系和属性信息,其中包括用户、添加、删除、注册和搜索信息。如表3-3所示:

表3-3数据结构表

第4章 数据库设计

4.1 信息表

表4-1 reguser

reguser 表是我们注册用户的数据库表格,存储信息即为我们所有注册用户信息。其中包括user 、password 和id 。其中这里id 是char 类型的,但是这里我们的选项只有1、2和3,其中1将会代表高级权限、2代表普通权限和3代表我们的信息阅览用户。如表4-1 reguser所示;

表4-2 inf

表inf 的存储内容是我们客户的信息存储一栏,其中字段包括name 、year 、month 、day 、pro 、source 、sale ;分别对应的字段名称是姓名、年、月、日、产品、客户来源和达成交易。其中年月日的类型是使用的int 类型,其中在此因为涉及到判断月份信息,所以int 是必不可少的。如表4-2 inf所示;

4.2 ER图

图4-3 ER图

系统设定了两个表格,数据库db ,包括reguser 和inf 两个表格。其中reguser 为我们

的注册用户表,而inf 就是我们的客户信息管理表格。两个表格对应的关系就是用户可以查看inf 的信息,并可以对用户信息作出修改。Reguser 包括的字段分别为:账号、密码和ID 。ID 实现了用户的权限管理,我们这里使用的1代表我们的最高权限即我们的“高级管理”、2代表我们的普通管理权限即我们的“普通管理”,最后是我们的“信息阅读”也就是3了,它只能够实现我们的普通阅读的功能。如图4-3 ER图所示。

每个用户都可以访问我们的客户信息。客户信息字段包括:姓名、年月日、达成交易、客户来源和产品、数据库分别对应的是:name 、year 、month 、day 、sale 、source 和pro 。

第5章 界面设计

5.1 软件界面

登陆界面:为了体现界面的美观度,对于登陆窗口的设计采用了分层面板,普通的contentPane 是无法实现背景图片的展现,而在这里我们就采用了分从面板,这样子我们很容易的将我们登陆面板加入了美观的背景图片;布局方式则采用的是FlowLayout ,即我们默认的布局方式,这里的好处是可以按照SetBounds 来随意调整其想要安排的位置,相对而言也是体现一种美观和数据的精确度上。对于我们标题“客户信息管理系统”我们采用的是"Dialog" 字体类型, 并且设置大小为26,因为标题都是比较大的,所以我们设置的相对较大,而其它的选填框则采用的是默认的字体大小。在这里大家都知道,我们要输入的是用户名和密码,那么不可避免地,我们经常会碰到用户名或密码错误的提示,那么在这里也是一样的,只是我们采用的风格不太一样,如果我们的密码或者是用户名错误,那么我们的Label 也就是我们的“用户名:”和“密码:”都会变成红色,并且显示的相关信息则是“用户名!”和“密码!”,并且是红色的字体,这样做的好处是变得醒目和加以提示。而当通过时,其字体将会恢复到最初的状态,即“用户名:”和“密码:”。 •

系统中心界面:系统界面的布局就相对要复杂一些了,上面的菜单栏、工具栏和下面的Frame 都是默认方式,也就是FlowLayout ,那么下面的Frame 里面的内容也就是一个表格和一个Text 文本的排序new GridLayout(2, 1),并且一分为二,那么其中一部分是我们的表格信息,另一部分则是我们的系统显示和本月生日框信息,我们的字体都是默认字体大小。我们在系统上添加了很多的功能,其中就包括注册账户、添加信息等等。我们的字体统一的都是系统默认字体大小,如果在系统遇到异常信息或者是某些需要提醒时我们采用的显示方式均为JOptionPane.showMessageDialog(null, "XX")这样的方式,XX 就是我们提示的信息内容。 •

添加客户信息界面:添加界面相对比较简单,我们的布局模式就是默认的FlowLayout ,所以这样添加的每一个控件都会被按照顺序相应地添加进来,其中我们包括的模块如下:JTextField nameField,JTextField yearField,JTextField monthField,JTextField

dayField,JTextField productField,JTextField sourceField和JTextField saleField,分别对应的关系为:" 姓名", "年-月-日 ", "产品", "客户来源", "达成交易" 。以及我们后面添加的两个按钮JButton addButton = new JButton("添加");JButton cancelButton = new JButton("取消"); 两个按钮就已经显而易见了,实现的操作就是当我们输入相关的信息,添加按钮将会触发事件actionListener ,然后通过或许相关信息添加到数据库中。 •

搜索姓名界面:搜索只需要两个控件,分别是姓名选框和搜索按钮,这里还是比较容易实现的。系统搜索会检索我们所输入的姓名,数据库中的SQL 语句如下:"select * from inf where name = '"+ s +"'",这样我们就获得了我们需要的搜索信息,并且我们会

将我们搜索的信息捕捉并新建一个InSystem 的类,而这个类中table 中所显示的列表信息就是我们所搜索的信息了。 •

最近生日界面:int w=(int) (scrSize.getWidth()-260);int h=(int)

(scrSize.getHeight()-235);setBounds(w, h, 260, 190);这是我们的边界设计,窗口的大小是根据我们不同计算机显示器的分辨率不同来计算的,其中显示的位置坐标的起始位置是(scrSize.getWidth()-260)和(scrSize.getHeight()-235),即也就是长和高的位置了。另外我们固定的大小分别是260*190的尺寸。我们起始位置的设定也是有根据的,因为我们希望我们的系统提醒的窗口是在我们计算机的右下角显示的,所以我们需要根据不同的计算机分辨率来设计其固有的位置,所以我们就要获取系统的分辨率值,这也是我们所有界面中唯一考虑到计算机分辨率大小的一点。

5.2 界面跳转关系

图5.2 界面跳转关系

我们系统的运行最初端口MainLoad.java 开始,通过我们的输入的用户名和密码直接跳转我们的系统主界面,即InSystem.java 。当然进入系统之前系统是需要判断的,比如我们的用户名和密码错误或者是其它异常等等,这里我们采用的方式就是Label 提醒,就是改变Label 的文字内容和其颜色来提示我们的信息错误,一旦填写错误并且提交之后,系统就会做出相应的提示,并且重新输入用户名和密码。用户名和密码正确我们的系统Progress 进程块运行完毕正常跳转InSystemn.java.

进入我们的系统之后,从菜单栏文件开始,那么点击“注册”将会直接跳转到

RegWindow.java ,即我们的注册用户窗口。因为注册窗口我们关闭之后我们的接下来的程序就是重新登录,那么我们就重新回到了MainLoad(),如此循环到主系统界面,我们进入切换窗口。

切换窗口的功能就是登录不同账号,点击切换按钮后,我们又关闭了当前的系统,即dispose(),然后重new 一个MainLoad(),那么同样的还是回到MainLoad ,这里我们可以更改不同的账号进行登录。

添加账户信息:直接跳转AddInform.java ,这里将会填入相关的客户信息,添加之后关闭添加的界面,回到主主界面。

搜索:跳入的是NameSearchInform.java ,这里确定后是检索的过程,然后通过主界面的表格来显示,所以关闭当前的搜索窗口。最近生日:跳入BirthInform.java ,统计最近生日列表。

最近生日:跳入的是 BirthInform.java ,这里只需要在工具栏上点击“最近生日”即可生成最近生日的窗口。并且该窗口是定时出现的,即使我们现时间关闭了。如图5.2 界面跳转关系。

• •

第6章 详细设计与实现

6.1 系统执行流程

6.1.1登陆模块

系统的运行是从MainLoad 开始执行的,执行显示的就是我们的初始登录界面,我们需要在这里输入我们数据库中已经存在的用户名和密码。如果用户名和密码的信息是正确的,那么将会跳转到系统管理界面,并且会弹出“最近生日提醒”.同样地,如果是用户名和密码错误,系统将会显示相应的提醒信息,我们这里的提醒信息比较直观,我们直接将“用户名”和“密码”的text 文本显示为红色和“用户名!”,”密码!”这样的格式,在重新输入后,我们的系统将会对其进行检测,如果正确,那么之前的红色文字“用户名!”,“密码!”将会恢复原有的“用户名”和“密码”。并且跳转。

图6-1登陆模块

if (userText .getText().trim().equals("" ) || passWord.equals("" )) {

JOptionPane. showMessageDialog (this , " 您尚未输入用户名或密码" );} else {

try {

while (rs .next()) {

if (userText .getText().trim()

.equals(rs .getString("user" ))

&& passWord.equals(rs .getString("password" ))) { userLabel .setText(" 用户名:" ); userLabel .setForeground(Color.black ); passLabel .setText(" 密 码:" ); passLabel .setForeground(Color.black ); grant =rs .getString("id" ); timer .start(); break ;

} else {

if (userText .getText().trim()

.equals(rs .getString("user" ))) {

passLabel .setText(" 密码错误" ); passLabel .setForeground(Color.red );

} else {

userLabel .setText(" 用户名!" ); userLabel .setForeground(Color.red ); passLabel .setText(" 密 码!" ); passLabel .setForeground(Color.red );

}}} } catch (SQLException e1) {

e1.printStackTrace();}}

该方法的独特之处在于改变了Label 的相关显示方式,以往我们更多采用的是

ShowMessageDialog 这样的显示方式,而在这里,我们直接利用我们的显示信息做出改变,这样是不是会变得更加直观呢,是的,下面介绍其工作的流程和方式。

首先if (userText.getText().trim().equals("") || passWord.equals(""))该条语句实现的是判断我们的用户名和密码的输入是否为“”空,如果为空,后面就有了语句

JOptionPane.showMessageDialog(this, "您尚未输入用户名或密码") ,当然看到这里的语句提示,其实我们就大概知道了,这条语句就是为了提示我们输入用户名和密码,因为我们之前的操作一定是有用户名或密码没有填写。那么除了为空,还有其它的可能,比如说输入的密码错误或者用户名错误或者是我们干脆登陆成功了,那么else 后面将一一解释。

下一步自然就是通过我们的数据库来检索了,利用rs.getString("user")来获得我们数据库中的用户名信息,userText.getText().trim()而这里是获得我们输入的用户名信息,以及passWord.equals(rs.getString("password"))来判断我们输入的密码和我们检索到的用户名密码是否对应。userLabel.setForeground(Color.black); passLabel.setForeground(Color.black);而这里之所以用到就是为了密码错误后,Label 被修改为不同字体和颜色了,此处为恢复正常,虽然我们还没到密码错误的状态,但是这里是必须的,否则一旦密码错误后,这里就颜色就是红色了,红色的实现在这下面的操作的,下面介绍:

if (userText.getText().trim().equals(rs.getString("user"))),这里我们将会判断我们的用户名信息,同样和我们的数据库来做对比,如果是正确的,那么这里将会设置passLabel.setText("密码错误") ,密码Label 显示为密码错误,颜色设置passLabel.setForeground(Color.red);这里为什么是用户名和数据库用户名对应正确后还显示密码错误呢?因为我们前面判断了,如果系统无法正常登陆,并且我们的用户名正确的话,很显然就是我们的密码错误了。同样地,如果用户名有问题那么就是设置userLabel.setText("用户名!"); 这里的用户名文字被修改为了“用户名!”,而userLabel.setForeground(Color.red);将会设置用户名的颜色为红色,passLabel.setText("密 码!");passLabel.setForeground(Color.red);同样的password 也要被设置为红色和“密码!”的形式,因为用户名错误密码就更不用说了。

那么回过头来前面流程中我们之所以设置器恢复默认的颜色就是在这里了,因为我们这次可能出现了问题,那么颜色设置了红色并且不同的文字,那么下次登录的时候如果还是现实密码错误等等之类的文字的话那就不太直观和人性化了,所以我们让这里默认重新设置一次,即使上次没有过这样的密码错误问题,那么在初始化的同时也做了一次这样的操作,其实这样在程序优化上就可以有的操作了,当然,对于我们的小程序,这简短的操作还是可以忽略的。

6.1.2密码修改模块

图6-2密码修改模块

密码修改的模块是在系统控制中心的文件菜单栏里进入的,进来之后,直接输入用户名和新的用户密码就可以修改的,这里为了减少繁琐就省去了检测原有密码的成分。只要输入的用户名正确,这里我们就可以用过我们的新密码直接修正成功。那么修改之后,我们的系统会转入“登陆界面”,这里将会实现重新登录,因为我们修改密码后系统所在的状态如果还是原有的密码状态下是不安全的,所以我们要重新登陆以确认密码的修改无误。如图6-2所示;

6.1.3注册用户模块

图6-3注册用户模块

注册用户模块相对也是比较直观和简单的。注册模块也是通过系统控制中心通过菜单栏的“注册用户”进来的。输入用户名和密码,确认。前提是用户名不存在,如果用户名已经存在,那么就会报错的,系统的提示就是“用户名已经存在,请更换用户名”,所以就会再次清空用户名和密码,这时我们要做的就是更换用户名,并输入密码,确认,那么数据库中就有了我们新的用户名信息,下次登录就可以直接使用了。如上图如图6-3注册用户模块所示:

6.1.4切换用户模块

切换用户的原理就更简单了,其实我们只需要将我们当前的系统控制中心dispose()掉,然后重新new 一个MainLoad 那我们就实现了用户的切换,这时候其实就是相当于再输入一个其它的用户名和密码,那我们就登陆进了系统控制中心,那我们就已经完成了系统的用户切换。切换用户点击,直接登陆窗口,如图6.2.4切换用户模块。

图6-4切换用户模块

6.1.5添加客户信息端模块

图6-5添加客户信息端模块

添加客户信息端设计的文本框要多一些,但是这些还是统一的,所以相对而言也是比较简易的。其实在添加模块的建立之前,系统就已经自动为我们链接好了数据库,这个是由类的构造方法最初调用的connect()方法。我们的信息将会在输入框中通过field 方法nameField.getText()获取到,同样地,我们还会利用insert into inf values(?,?,?,?,?,?,?)来插入

数据到数据库,这时候我们的数据库将会检索我们的信息是否已经在数据库中存在,以及信息的数据长度和类型等等进行判断,如果是错误的将会相应的异常信息来提醒,如果正确的,就会直接添加到我们的数据库,这时候系统就已经添加成功了。不过在我们的系统界面中我们不能在第一时间就能看到新添加的数据信息,系统是不能够再次自动刷新系统的,所以我们添加了一个按钮“更新”,其实这里更新不是更新软件系统,而是更新我们的数据信息,在我们添加信息后,我们可以通过“更新”来实现信息的事实展现。如图6-5添加客户信息端模块。

6.1.6最近生日模块

图6-6最近生日模块

最近生日模块是由BirthInform.java 实现的,其实该模块的调用是通过多种途径的,其中之一就是系统开启的第一时间就会有“最近生日”模块自动弹出的,这样的设计就是方便我们的实时提醒。同时“最近生日”模块还有在工具栏上有所体现,因为我们平常的开机后系统是自动运行的,不同的时间我们可能有兴致想要查看则可以通过“最近生日”按钮直接点击查看;而另外一种方式就是自动间隔提醒了,可以设置几个小时提醒一次或者多久。系统进入之后通过最近生日,系统就会在数据库中检索最近3日内生日的客户信息,最后返回到最近生日窗口中。

6.1.7删除模块

图6-7删除模块

删除模块更多的技术重点就是我们在列表中需要选中某一行数据,而选中的这行数据,在我们点击“删除”按钮后就会被删除掉,所以我们就从table 的相关方法入手了。int row = jt.getSelectedRow(),我们是通过该条语句获得的我们的系统行,获得的系统行,我们会通过数据库的检索来查询该行语句的相关内容,然后再数据库中继续检索该条信息,并利用语句“delete from inf where name=? and sale=?”实现对相关选中项信息的删除搜索,我们的判断条件是加上了“name”和“sale”两个字段属性,我们之所以用两个字段的目的就是为了避免同名的信息被误删除,所以该处我们用了两个字段。

6.1.8搜索模块

搜索模块的路径是有多条的,其中可以通过工具栏直接进入,当然也可以通过菜单栏。我们这里的搜索只需要输入我们要查找的客户姓名,确认之后会通过系统连接数据库检索数据库中是否存在该姓名,如果存在的话,那么信息将会显示在我们的系统可控制中的列表中,假如此时我们搜索的是客户“孙际斌”,那么系统列表中将会展现有关客户“孙际斌”的信息。如果我们所搜索的客户信息是不存在的,那么同样的列表中也会展现,只是展现的内容为空。如图6.2.7搜索模块:

图6-8搜索模块

6.1.9刷新模块

图6-9刷新模块

系统中的数显模块主要为刷新我们的数据显示,因为我们有时候更新了数据,系统不能实时更新显示在我们的当前列表中,所以我们就要通过我们的手动操作来实现我们的数据更新操作。我们这里采用的方法也是比较傻瓜式的,那就是新建一个类,这个类就是InSystem(),那么系统就重新检索数据库了,所以我们这里的数据就一定会被显示出来的。操作很简单,直接点击工具栏上的“更新”按钮即可实现系统显示数据的操作功能,此时我们可能会发现有两个系统类的窗口同时出现。

6.2 编码规范

6.2.1变量命名

变量名的命名我们都是采用首个单词利用小写,后面单词利用大写首字母的方式。这样的有利于更加直观地表现我们该个变量到底是用作在什么用的表现方式上。比如我们的logButton ,其实我们可以通过Button 知道我们的这个变量一定是一个按钮,而log 就是登录的意思,那么很显然,这个变量要操作的就是登录按钮。而在以上的代码中第一块中我们实现的是我们系统的登陆页面。登陆页面的变量有load ,logButton,

regButton,userText,passText,grant,userLabel , passLabel , sysLabel ,authorLabel , timer , timer2,timer3,timer4;其中load 我们是进度条的类别,我们用来检测系统的进度情况,进度条完成到100%,系统加载成功,那么将会实现new 一个新的InSystem 实现系统控制中心的登陆操作。这里的label 也是比较有特色的,按照以往的定义Label 就是规定的定义,并且不会有怎样特殊的变动,而这次在我们这里,我们的Label 也会根据我们的相关条件和异常而变动,比如说当我们在输入用户名和密码的时候,我们可能会遇到密码或者用户名错误的情况,那么为了更好地提示用户具体发生了什么,那么我们会因用户名或密码错误而改变我们这里的Label 变量,让它们在原有的文字或者颜色上发生了变动,比如“用户名”会直接变成“用户名!”,并且后者的颜色是红色的,而原有的是黑色。那么在我们登陆成功以后,那么我们的变量名还会回到原有的字体和颜色,这是不是很奇妙的哦。

nameField,yearField,monthField,dayField,productField,sourceField 以上关键词主要实现了我们的文本选框,同样的命名方式也是一样的,我们的添加客户信息框的信息就主要应用到了这里的相关变量信息。该段对应的相关变量分别为:姓名、年-月-日、产品、客户来源和搭建成交易。

6.2.2系统中心构造方法

public InSystem(String sql) { } if (!sql.equals("select * from inf")) this .dispose(); timer1 = new Timer(); now_timerTask1 = new ExTimer1(); timer1.schedule(now_timerTask1, 60 * 1000, 360 * 1000); connect (); con .setLayout(new BorderLayout(0, 1)); menuBar(); toolBar(); area (sql); con .add(panel [0]); setTitle(" 客户信息管理系统——Albin.Sun" ); setBounds(360, 100, 620, 560); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true );

另外InSystem 是我们系统管理中心一个至关重要的构造方法,该方法的加载是需要传递参数的,我们默认的参数是"select * from inf",如果不是该参数的话,那么我们的系统再次将不会被加载。另外我们设置了定时器timer ,timer 的使用是为了我们“最近生日”窗口的定时跳出而设置的。因为我们的系统会定时提醒我们的用户某一个客户就要生日了,也有可能会在忽视掉,所以在我们开机的阶段中可以根据我们个人的习惯或配置来设计跳出的时间,1000为一秒,60*1000就是一分钟了,在这里这个60的参数其实是在第一次系统执行时该窗口在什么时间会跳出第一次,我们默认的设置就是1分钟了。而我们后面的360*1000其实为的就是我们系统的跳出时间间隔所设计的了,这里的360就是6分钟了。也就是说,在我们的系统运行后,我们的系统会根据最近生日情况在6分钟一个间隔不断

地提醒,当然6分钟就有点频繁了,这里完全可以设置时间为几个小时,这样更利于我们的方便和操作。

connect()方法在这里就直接被应用起来了,系统在调用该构造方法的初始阶段我们就调用了connect()方法,也就是我们上面最初介绍的方法,那么这个时候不出意外,我们的系统就与我们的db 数据库建立了链接,后面如果需要,就可以随时使用了。

con.setLayout(new BorderLayout(0, 1))设置我们的系统空中中心界面的布局模式,我们使用的BoderLayout 。

紧接着我们的menuBar()就上场了,我们系统设置之初除了最后后台的工作外就是配置我们的前台界面了。因为我们的菜单栏的设置是在我们系统的最上端的,所以我们让我们的构造方法先调用了我们的menuBar()方法,系统调用menuBar()方法会在该方法中实现相应的菜单模式和属性,在这里就已经生成了我们的菜单栏,接下来呢,我们要操作的就是工具栏了。

工具栏就是我们的toolBar()方法了,该方法跟上面的menuBar()一样,在调用后就自动生成了我们的工具栏,其中我们的工具栏包括:”添加”,”删除”,”保存”,”最近生日”,”搜索”, ”退出”和 ”更新”。其中我们可以介绍一下相应的功能,添加、删除和保存就不用介绍了。我们来简单地说一下我们的“最近生日”、“搜索”和我们的“更新”功能。

最近生日是响应了一个事件,在我们该按钮被点击的时候,监听事件会相应的new 一个新的类,而这个类就是我们的BirthInform ,我们这个类的初始化就会直接检索我们最近3日内生日的客户,如果存在,我们的BirthInform 窗口将会列出相应的客户生日信息。如果该信息是不存在的,那么我们的系统默认值是”最近没有客户生日”,我们这里的方法调用是这样实现的:new BirthInform(birthPeople),birthPeople 的最初值是“最近没有客户生日”,但是在new 类BirthPeople 的之前,我们事先对birthPeople = boxName + boxYear + "-"+ boxMonth + "-" + boxDay + "\n"做了工作,如果boxName 不存在,也就是我们最近没有过生日,那么birthPeople = boxName + boxYear + "-"+ boxMonth + "-" + boxDay + "\n"根本不会被执行,那么birthPeople 的默认值还是”最近没有客户生日”,所以在这里就实现了,如果存在则会显示,如果不存在,则会显示”最近没有客户生日”,这样就相对比较人性化了。 搜索也是new 一个新的类NameSearchInform ,那么在这里我们直接输入我们的姓名,我们的系统将会在数据库中开始检索我们的姓名是否存在,如果存在,我们的系统将会new 一个新的InSystemn ,而我们这个新的客户信息列表将会显示的是我们的刚刚搜索出姓名的信息,如果搜索“孙际斌”,那么也就是会显示“孙际斌”的相关信息了。同样地,如果我们的系统不存在所搜索的生日信息,那么我们这个新的操作窗口列表也就是显示为空了。 更新实质上的宗旨就是刷新我们的数据显示,因为我们有时候更新了数据,系统不能实时更新显示在我们的当前列表中,所以我们就要通过我们的手动操作来实现我们的数据更新操作。我们这里采用的方法也是比较傻瓜式的,那就是新建一个类,那么系统就重新检索数据库了,所以我们这里的数据就一定会被显示出来的。

setTitle("客户信息管理系统——Albin.Sun") 对我们的系统标题设置为" 客户信息管理系

统——Albin.Sun" ,这个设置是在系统初始化时,即在我们的构造方法中时出现的,如果其它情况下将不会有效了。

setBounds(360, 100, 620, 560)设置我们的布局大小,其中左边开始的距离是360,上面的距离是100,另外我们的系统的界面大小是620*560,这里实现了我们的大小定义。 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) 当然也很明了了,在java 窗口开发中如果缺乏了该条语句,我们的窗口通过右上角的关闭按钮是无法正常关闭的,所以我们会借用系统已经拥有的该方法来实现右上角关闭功能的生效,所以现在我们点击关闭按钮即可正常关闭窗口。

setVisible(true ) ,系统可见的,如果是false 的话,那么理所当然,这个窗口也就不会被正常显示了。

6.2.3添加客户信息模块监听器

public void actionPerformed(ActionEvent e) {

if (e.getSource() == addButton) {

if (nameField.getText().equals("")) {

nameField.setText("尚未填写姓名呢~");

nameField.setCaretColor(Color.red);

} else {

try {

String sqlIn = "insert into inf values(?,?,?,?,?,?,?)";

PreparedStatement stmt = conn.prepareStatement(sqlIn);

stmt.setString(1, nameField.getText());

stmt.setString(2, yearField.getText());

stmt.setString(3, monthField.getText());

stmt.setString(4, dayField.getText());

stmt.setString(5, productField.getText());

stmt.setString(6, sourceField.getText());

stmt.setString(7, saleField.getText());

stmt.executeUpdate();

JOptionPane.showMessageDialog(this, "添加成功");

//super.dispose();

this.dispose();

// this.dispose();

new InSystem( "select * from inf");

} catch (SQLException ex) {

ex.printStackTrace();

} catch (NumberFormatException ex) {

// JOptionPane.showMessageDialog(null, "添加失败");

}

}

} } else this.dispose();

actionPerformed 方法使我们的监听器,监听器执行的开端首先要判断该事件的来源是哪里,所以我们if (e.getSource() == addButton)的目的就是为了判断事件来源是否为“添加”按钮,如果判断正确的话我们将会执行下面的语句if (nameField.getText().equals(""))这里是为了判断我们的客户名是否为空,如果没有填写的话,我们的nameField 的文本信息将会显示“尚未填写姓名呢~”,其实这里的目的就是为了提示用户没有填写客户名,因为客户名是所必需的,并且我们还有设置了nameField 为红色。其它情况下我们默认都是正确的,我们执行String sqlIn = "insert into inf values(?,?,?,?,?,?,?)"和PreparedStatement stmt = conn.prepareStatement(sqlIn),其实我们这里就是要插入信息,而问号的内容就在后面通过stmt.setString(2, yearField.getText())这样的设置,有几个问号就设置到了几个,最后通过stmt.executeUpdate()开始执行插入操作,这个时候会有添加成功的提示,添加成功后我们希望在一个新的列表中能够显示我们刚刚添加的客户信息,所以这里我们new 了一个新的InSystem( "select * from inf");如果我们的添加过程中遇到了异常信息,很显然就是添加失败的,我们的通过JOptionPane.showMessageDialog(null, "添加失败") 提示错误信息。

6.2.4 KeyEvent.VK_ENTER的使用

系统的设计我们都依赖于鼠标的操作和执行命令的下达,而我们的实际生活中可能会更多应用键盘来操作,因为当我们在进行键盘操作的时候我们不习惯再去拿起鼠标和放下鼠标继续键盘这样的操作,所以在我们的软件系统中,我们在很多模块中就已经加入了回车执行以上命令的操作。

其实加入“Enter”执行的模块包括如下:登陆按钮、添加客户按钮和搜索客户信息按钮。我们的Enter 操作是建立在该模块最终选框的事件之上的,现在举例说明如下:

在我们的登陆模块中,我们输入完用户名就是密码了,密码之后就是确认登陆的按钮,那么我们就在密码这个文本框上做工作,添加了密码.addKeyListener(new KeyAdapter(),添加这个监听器后,我们在这里面添加了一个新的方法叫做public void keyPressed(KeyEvent e) ,这个方法就是用来坚挺回车键的操作,那么监听到的按键将会被e.getKeyCode()获取,然后与我们的系统回车键,也就是KeyEvent.VK_ENTER来做比较,

if (e.getKeyCode()==KeyEvent.VK_ENTER) 也就是说明我们当前的操作键是“Enter”,好了,我们将会执行这样的操作,logButton.doClick()。logButton 是我们的登陆按钮,通过doClick()方法实现了我们的登陆按钮的自动点击,言外之意就是说明我们按下回车键的操作就相当于用鼠标点击了我们的logButton ,所以回车执行我们的操作。

添加客户按钮的回车操作,我们是在saleField 文本框中添加了addKeyListener(new KeyAdapter(),同样地操作,添加这个监听器后,我们在这里面添加了一个新的方法叫做public void keyPressed(KeyEvent e),这个方法就是用来坚挺回车键的操作,那么监听到的按键将会被e.getKeyCode()获取,然后与我们的系统回车键,也就是KeyEvent.VK_ENTER来做比较,if(e.getKeyCode()==KeyEvent.VK_ENTER)也就是说明我们当前的操作键是“Enter”,好了,我们将会执行这样的操作,addButton.doClick()。

搜索客户信息的search ,我们是在nameField 文本框中添加了addKeyListener(new KeyAdapter(),同样地操作,添加这个监听器后,我们在这里面添加了一个新的方法叫做public void keyPressed(KeyEvent e),这个方法就是用来坚挺回车键的操作,那么监听到的按键将会被e.getKeyCode()获取,然后与我们的系统回车键,也就是KeyEvent.VK_ENTER来做比较,if(e.getKeyCode()==KeyEvent.VK_ENTER)也就是说明我们当前的操作键是“Enter”,好了,我们将会执行这样的操作,searchButton.doClick()。

6.2.5 关于getLayeredPane()方法的使用

我们在大部分你学习和教程中更多地接触到的或许是get Content Pane()方法,

ContentPane 应该是最简易的一种获取当前面板的方式了,不过大多情况下如果我们需要在我们面板上加入背景再加入控件可能就无法实现了,那是因为我们是在同一个层次上添加的,一个层次上一个面板上如果背景已经够大了再添加其它的肯定是看不到的,所以我们就引入了多层次面板。即可以利用getLayeredPane()来获取到了。具体实现方法如下: 这里我们通过getLayeredPane()添加(logButton),然后继续通过getLayeredPane()添加(backlabel),其实这里是之前已经定义好的ImageIcon ,也就是图片了。那么我们这样就可以在不同的层次上添加了不同的控件,那么我们就实现了在拥有背景的窗口上继续添加其它的控件,这样对我们的系统界面而言就会更加美观了。

6.2.6 权限管理的实现

创建注册窗口RegWindow 类:

引入的控件的如下:JTextField userText, passText; JButton regButton; JLabel userLabel, passLabel; JRadioButton HighButton = new JRadioButton("高级管理

");JRadioButton CenterButton = new JRadioButton("普通管理");JRadioButton LowButton = new JRadioButton("信息阅览"); 而这里我们用到了三个RadioButton, 分别是HighButton 、CerterButton 和LowButton ,分别对应的关系为高级管理、普通管理和信息阅览。其实我们在这里只需要判断我们的用户到底是哪个管理权限,在我们登陆过程中我们就可以指定我们不同权限的不同类来实现我们InSystem 中的功能。我们系统中对应着三个不同权限的类目:InSystem.java 、InSystemSimple 和InSystemRead 。

总结:

系统的开发是一个不断地渐进和改进的过程,从系统最开始的系统分析到系统的设计,最后再到系统的开发完成这都是一个渐进的过程,同样地,再此过程中,以及接下来的时间我们都要对系统进行不断地修正和更新。更新基于系统的异常错误以及系统的功能改革等等。系统在后期的使用或者检测中,我们都会发现可能因为数据库输入的数据或者是因为更多的系统不可接受的参数引起的异常问题,我们都会对我们的系统进行改进,如我们可以通过try 来抛出相关异常信息,我们同样还可以在此过程中加入ShowMessageDialog 来显示相关的错误信息,这样就对我们的使用起到好的提醒作用,以便我们更好地改进。系统的更新部分,在开发初始阶段,我们的系统曾经是不具备系统提醒功能的,只是在系统的中心列表中会有所提示或展现,为了更方便和直观,我们在桌面的右下角加入了我们的系统提醒部分,即BirthInform.java ,通过这样的改进,系统就更加便携了。当然在后期中我们继续改进,系统的提醒功能在开始设计的时候只有一次性,即提醒后我们关闭将不会再次出现,再后来为了更加及时性,所以在后面,我们用到了Timer ,Timer 很方便的一点就是为我们的定时提醒,即定时弹出窗口。同样地,右下角的系统提醒以往都是显示相关的最近生日信息,如果不存在,我们这边的窗口我们同样可以显示“最近无客户生日”这样的记录。以及在我们的表格使用中,为了让我们的列表数据能够更加直观,我们采用的表格使用的隔行显示不同背景颜色的信息,这里我们用到的浅蓝色和白色,这些就都属于我们系统的优化操作了。

虽然系统的基本功能都已实现,但还是存在系统不稳定等多个问题尚待解决。这个系统主要是自行开发的,但也得到了老师和同学的很大帮助。我正在做系统的过程中遇到了很多问题,有的是知识存储不足,有的是考虑不够周全,之所以能够顺利实现基本功功能,离不开老师和同学的大力相助。事实证明,只靠自己是不能顺利完成一套功能完整的系统的,必须充分利用团队的力量。开发一套系统,最重要的是细心,并不是一定要做到面面俱到,但也要充分考虑到客户的需求和现实意义,不管什么系统,只用运用到实际应用中,才具有先现实意 义。所以在准备工作中要正确分析社会需求了解现实应用,画出流程图,把大体框架做好,然后再逐一细化。我们不可能做到面面俱到,但一定要做到步步扎实,作 为一个程序编程人员,要保持清醒的头脑,以现实为依据,让自己的每一行代码都能实现自己的意义。 通过这次课程设计,我收获的不仅仅是课程上的知识得到实际应用,还有编程的基本习惯和开发系统时应注意的流程。

致谢:

本论文是在王世广老师的悉心指导下完成的。王老师作为一名优秀的、经验丰富的教师,具有丰富的网络知识和计算机开发经验,在整个论文实验和论文写作过程中,对我进行了耐心的指导和帮助,提出严格要求,引导我不断开阔思路,为我答疑解惑,鼓励我大胆创新,使我在这一段宝贵的时光中,既增长了知识、开阔了视野、锻炼了心态,又培养了良好的实验习惯和科研精神。在此,我向我的指导老师表示最诚挚的谢意!在论文即将完成之际,我的心情久久无法平静,从开始选题到顺利论文完成,有不知多少多少可敬的师长、同学、朋友给了我无数的帮助。感谢计算机工程系系全体老师给予我丰富的专业知识和各个方面的关心和帮助,感谢小组长的认真负责,感谢合作组员的热心协助。同时也要感谢全班全体同学,正是由于你们的帮助和支持,我才能一个一个克服困难、解明疑惑,直至本文顺利完成,在这里请接受我诚挚的谢意!最后我还要感谢培养我长大含辛茹苦的父母,谢谢你们!

参考文献:

[1].张桂珠 刘丽 陈爱国 Java 面向对象程序设计(第2版)北京邮电大学出版社

[2]毕广吉.Java 程序设计实例教程[M]. 北京:冶金工业出版社,2007年

[3].王保罗.Java 面向对象程序设计[M]. 北京:清华大学出版社,2003年

[4].高林,周海燕.Jsp 网上书店系统与案例分析[M]. 北京:人民邮电出版社,2004年

[5].刘腾红,孙细明. 信息系统分析与设计[M]. 北京:科学出版社,2003年

[6].Bruce Eckel,《Thinking in Java 4》,American :Prentice Hall PTR

[7].O’reilly,《Java Programming》,American :Sernni Yey

[8].O'Reilly & Associates, Inc 《Java Cookbook》in the United States or Canada

[9].林邦杰,彻底研究java. 北京:电子工业出版社,2002年

[10].埃克尔,java 变成思想第三版. 北京:机械工业出版社,2006年


相关内容

  • 毕业论文-第三方物流及客户关系管理
    [最新资料,WORD文档,可编辑修改] 目 录 一.引 言 ........................................................... 2 二.第三方物流及客户关系管理 ............. ...
  • 汽车销售网站管理系统毕业论文
    毕 业 设 计 (说 明 书) 题 目:汽车销售网站管理系统的设计与实现 姓 名: 编 号: 平顶山工业职业技术学院 年 月 日 平顶山工业职业技术学院 毕 业 设 计 (论 文) 任 务 书 姓名 ___徐凤芹_____ 专业 __计算机 ...
  • 国际贸易实务专业毕业论文
    毕业论文 目 录 一.XX服装有限公司的基本情况介绍-------------1 二.在XX有限公司业务员岗位上的基本工作情况-------1 三.在岗位实习过程中遇到的问题及其思考和对策-----------2 (一)成本持续攀升,应提高 ...
  • 中华人民共和国反洗钱法
    中华人民共和国主席令 (第56号) (相关资料: 法律2篇 行政法规1篇 部门规章44篇 其他规范性文件7篇 地方法规81篇 裁判文书2篇 相关论文36篇 英文译本) <中华人民共和国反洗钱法>已由中华人民共和国第十届全国人民代 ...
  • 关于销售毕业论文
    太原工业学院毕业论文 毕 业 论 文 企业生产与销售的财务分析 --浅析名人有限责任公司 产品生产及销售 作者姓名: 学 号: 067091101 专 业: 会 计 指导教师: 完成时间: 太原工业学院 Taiyuan Institute ...
  • 第三方支付法律监管问题--周厚军
    网络第三方支付法律监管问题的研究 摘要:近年来,随着我国互联网支付业务的快速发展,第三方支付也发展迅猛,并不断创新:与此同时,伴随着第三方支付市场的繁荣而引起的层出不穷的第三方支付的套现与安全问题 受到了各方关注,要求加强对第三方支付机构监 ...
  • 毕业设计:基于JSP的留言簿系统的设计与制作
    编号 毕业设计论文 题目: 留言簿系统的设计与制作 摘 要 Internet是目前世界上最大的计算机互联网络,它遍布全球,将世界各地各种规模的网络连接成一个整体.作为Internet上一种先进的,易于被人们所接受的信息检索手段,World ...
  • 电力企业市场营销管理与发展论文
    电力企业市场营销管理与发展论文 [摘要]随着我国经济结构体制的不断完善,社会各界都迫切需求一个能够满足供求双方平衡的电力市场.为此,电力企业应切实加强管理,并努力探索寻求满足自身发展的营销策略,进而开拓市场,带动和刺激电力消费的增长,获得良 ...
  • 我国金融机构道德风险的现状和识别精选.
    我国金融机构道德风险的表现和识别 摘要:在我国商业银行所面对的诸多风险中,道德风险无疑是一个相当重要的部分,它给银行的经营管理与发展带来了巨大的威胁.本篇论文就基于此事实,具体阐述了我国商业银行道德风险的表现并且比较详细的分类解释了商业银行 ...
  • 学信贷款案例
    个人征信系统在提高大学生信用意识.促进国家助学贷款政策实施方面的事例 国家助学贷款是国家对贫困家庭学生的一种资助,也是商业银行发放的一种信用贷款.人民银行个人信用信息基础数据库(以下简称"个人征信系统")正式运行后,为每 ...