单位文秘网 2020-08-25 16:57:41 点击: 次
(金融保险)银行自动取款系统
《数据库》
课程设计
**银行自动系统
学院:
专业:
姓名:
指导老师:
前言
【摘要】
自动化技术是当代发展迅速,应用广泛,最引人瞩目的高技术之壹。银行ATM取款机
系统是自动化应用于银行金融业务的典型事例。随着经济的不断发展,人们对于银行的交易量要求增高,相对于繁忙的银行柜台业务及繁琐的交易手续来说,ATM取款机系统充分发挥了其自动化的特征。且由于其便于安装,在很大程度上给银行客户提供了方便快捷的服务,使得自动取款机系统越来越受人们的青睐。本文在总结人们熟悉的ATM操作的基础上,分析其具体需求,提出系统的总体设计目标、系统总体架构和功能模块的设计。采用JSP+JavaBean的模式来构建系统。系统使用具体的权限设置等逻辑功能,使得系统的安全性、可维护性、重用性和可扩展性都大大提高。
【技术背景和发展状况】
随着自动化系统在人们生活中越来越广泛及有效的应用,银行ATM自动取款机系统从当初逐步进入人们的视野,到今天在城市的各个角落都有其身影及使用者,它在人们的理财生活中发挥了重要的作用。
第壹台ATM机于1967年6月27日出当下伦敦北部的巴克莱银行。由于只需要把卡片插入自动取款机,且输入户头密码及取款额,自动取款机就能很快送出现款。极大的方便了银行用户及工作人员。1987年,中国银行在上海安装中国第壹台ATM机,数月内不见有人取钱,直至ATM机的工作效率开始引起人们的兴趣。当下已有首台驾车提速自动取款机落户北京。如今,ATM机在迅速的发展,且由于使用客户的增多,对其安全性等方面的要求也逐渐提高,但按其本质来说,仍是银行数据库和人员(包括用户和银行管理人员)操作紧密联系的过程。本文将搭建壹个ATM操作平台和银行后台管理的平台。
【关键词】
Postgres,MVC,JavaBean,ATM,客户,管理者,账户交易
目录 TOC \o "1-3" \h \z
前言1
壹 系统分析1
1.1 需求分析2
1.2 可行性分析2
二 总体设计2
2.1 项目规划2
2.2 系统功能结构图3
三 系统设计5
3.1 设计目标5
3.2 开发及运行环境5
3.3 数据库设计5
3.3.1数据库需求分析…………………………………………………………….4
3.3.2数据库概念结构设计……………………………………………………….4
3.3.3数据库逻辑结构设计……………………………………………………….4
3.3.4数据库的生成和配置……………………………………………………...4
四 经理管理界面功能模块详细设计8
4.1 **银行用户选择登陆模式界面8
4.2 用户登录模块设计8
4.3 经理管理客户帐户功能模块设计8
4.4 英文管理界面模块设计9
五 用户操作界面功能模块详细设计10
5.1 **银行客户登陆模式设计10
5.2 客户操作功能模块设计12
5.3英文客户操作功能模块设计…………………………………………………..13
六组件的编写…………………………………………………………………………....15
6.1公用模块…………………………………………………………………………….15
6.1.1数据库的连接………………………………………………………….15
6.1.2字符处理…………………………………………………………….15
6.2信息实体………………………………………………………………………..15
6.2.1银行客户实体…………………………………………………………………15
6.2.2服务经理信息实体……………………………………………………………15
6.3管理信息实体…………………………………………………………………….16
6.3.1管理用户登录………………………………………………………….16
6.3.2管理用户信息………………………………………………………………16
七相关技术配置………………………………………………………………………….15
7.1开发环境配置…………………………………………………………………………15
7.2系统安装配置…………………………………………………………………………15
附录A参考文献………………………………………………………………………….17
附录B数据表…………………………………………………………………………….18
八**银行自动取款系统实验总结…………………………………………………………15
壹系统分析
1.1需求分析
经过客户长期使用银行自动取款系统的需求分析,确认银行ATM机系统应具有如下功能:
⑴客户界面部分
◆提取金额
◆查询账户信息
◆修改密码
其中最重要的是每壹步所必须设置的用户权限,即银行操作的安全性要求。
⑵管理界面部分
◆查询客户余额
◆查询客户密码
◆柜台操作后修改客户金额
◆修改用户密码
◆增加新用户
◆删除客户账户
其中对客户账户所进行的修改都是已由客户授权,或是按银行系统的功能对其进行相
关操作。由此每壹个客户都有壹个其所属的服务经理,负责该账户信息在银行管理后台
的更新。
1.2可行性分析
自动取款系统为用户操作提供了信息查询,账户操作,修改密码等功能,且提供了管理人员对账户相应的管理措施。银行ATM机最重要的要求是安全性。其功能应全面,且重在实时操作性。此外考虑银行客户的多样性,本文为用户提供了中英文俩个使用界面,其使用功能壹样,只是针对使用不同语言的用户。通过对ATM机之上使用需求的分析,本文所搭建的汇旗银行自动取款系统有其可行性。
二总体设计
2.1项目规划
ATM机自动取款系统是银行的专业服务系统,它由用户操作界面和后台管理界面
俩部分组成。①用户操作界面。主要涉及查询用户个人信息,查询密码,提取金额等
功能。由于银行安全性要求,且自动取款系统的主要目的功能为方便用户提取现金。
除了密码修改的实时性需求外,用户自身不能在ATM机上修改其他个人信息,此项功
能由其服务经理在管理后台实现。②经理管理界面。管理人员操作主要包括查询客户
余额,查询客户密码,柜台操作后修改客户帐户金额,修改客户密码,增加新的用户,
删除客户帐户。
2.2系统功能结构图
根据之上分析画出系统的功能模块即客户操作界面和经理管理界面图。
客户操作界面功能结构图,如图1所示。
图1用户操作界面的功能结构图
后台管理界面功能结构如图
图2后台管理界面功能结构图
系统结构图如图3所示。
图3系统结构设计图
三系统设计
3.1设计目标
汇旗银行自动取款系统将对之上功能需求进行实现
3.2开发及运行环境
硬件平台:
◆CPU:IntelCeleronMProcessor;
◆内存:512MB之上。
◆软件平台:
◆操作系统:WindowsXP;
◆数据库:Postgres8.1.2;
◆开发工具包:JDKVersion5.0,Eclipse3.1;
◆JSP服务器:Tomcat4.1;
◆浏览器:IE6.0;
◆分辨率:最佳效果1024*768像素。
3.3数据库设计
3.3.1数据库需求分析
银行用户的需求具体体当下帐户信息的提供、保存、更新和查询上,这就要求数据库结构能充分满足各种信息的输入和输出。收集基本数据、数据结构及数据处理的流程,使操作人员能按自己的需求对数据库记录信息进行操作。
通过上述系统功能分析,针对ATM自动取款系统的使用,总结出如下的需求信息。
①ATM机用户分为银行客户和管理员用户。
②每壹个客户都有服务经理为其服务,即每个客户从属于壹个服务经理。
③壹个用户在ATM机上只能对自己的账号金额及密码进行操作。
④壹个用户对应壹张用户列表。
⑤壹张用户列表对应多个用户。
通过之上对系统功能和需求的分析,设计如下面的数据项和数据结构。
1服务经理信息:用户帐号、密码
2银行客户:为其服务的经理账号、用户帐号、用户名、账户金额、密码
3.3.2数据库概念结构设计
得到自动取款系统的数据项和数据结构以后,能够设计出能够满足用户需求的各种实体以及实体间的联系,为后面的逻辑结构设计打下基础。这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。
通过之上设计规划,得出实体有:服务经理信息实体、银行客户信息实体。其中用户通过取款对自己的帐户进行操作。
实体之间关系的E-R图如图4所示。
图4实体间关系的E-R
服务经理信息实体的E-R图如图5所示。
客户信息实体的E-R图如图6所示。
四经理管理界面功能模块详细设计
4.1汇旗银行用户选择登陆模式界面
用户选择登陆模式界面没有涉及到具体的数据库操作,用户首先根据自己使用的语言选择中文或英文登陆页面,且随后根据自己的身份选择经理登陆或客户登陆。本文先选择中文操作界面对系统进行阐释,中英文对应界面的操作功能相同。为了提高代码的可操作性,用壹个简单的JSP文件bankindex.jsp实现首页的页面效果。
4.2用户登录模块设计
用户登陆时系统将输入的帐号和密码和数据库连接。关键sql操作语言及java代码如下:
Stringurl="jdbc:postgresql://localhost/postgres";
Stringuser="postgres";
Stringpassword="dbms";
Stringq="SELECTsuperm_num,super_passwordFROMsuper_managerwheresuperm_num='"+name_m+"'ANDsuper_password='"+password_m+"';
Class.forName("org.postgresql.Driver").newInstance();
Connectioncon=DriverManager.getConnection(url,user,password);
Statementstmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSetrs=stmt.executeQuery(q);
4.3经理管理帐户功能模块设计
服务经理登陆后有查询余额,查询密码,修改金额,修改密码,新增用户,删除用户等功能模块选项。以查询余额为例,sql语言如下:
Class.forName("org.postgresql.Driver").newInstance();
Connectioncon=DriverManager.getConnection(url,user,password);
Statementstmt3=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
Stringsql="selectsuperm_num,card_num,user_name,cashfromcustomswherecard_num='"+card_n+"'";
stmt3.executeQuery(sql);
ResultSetrs=stmt3.executeQuery(sql);
以新增用户功能为例,其模块结果如图:
4.4英文管理界面模块设计
英文界面适用于使用语言非中文的用户,满足银行用户多样化的特征。其实现原理同其对应的中文管理界面。
五用户操作界面功能模块详细设计
5.1汇旗银行客户登陆模式设计
其关键代码如下:
Stringurl="jdbc:postgresql://localhost/postgres";
Stringuser="postgres";
Stringpassword="dbms";
Stringq="SELECTcard_num,custom_passwordFROMcustomswherecard_num='"+stunum+"'ANDcustom_password='"+spassword1+"';
Class.forName("org.postgresql.Driver").newInstance();
Connectioncon=DriverManager.getConnection(url,user,password);
Statementstmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSetrs1=stmt.executeQuery(q);
5.2客户操作功能模块设计
客户登陆界面后,通过帐号和密码和数据库连接,对自己的帐户进行操作,包括查询信息,提取现金,修改密码基本操作。
Sql语句:
updatecustomssetcash=cash-'"+money_i+"'wherecard_num='"+card_i+"'
其中参数为用户输入的提取金额;
Updatecustomssetpassword=’+password_i+"'wherecard_num='"+card_i+"'
参数为用户输入的新密码,用户需要输入新密码,且再次确认后才能成功修改。
提取现金后数据库中数据会相应变化,且将结果显示至用户操作的界面。
5.3英文客户操作功能模块设计
类似于经理管理英文界面操作功能:英文界面适用于使用语言非中文的用户,满足银行用户多样化的特征。其实现原理也同其对应的中文管理界面。
六组建的编写
6.1公用模块
6.1.1数据库的连接
1.JDBC(JavaDatabaseConnection)驱动
JDBC驱动的获取
用静态方法Class.forName().
Example:
importjava.sql.*;
StringjdbcDriverName="org.postgresql.Driver";
Driverdriver=(Driver)Class.forName(jdbcClassName).newInstance();
DriverManager.registerDriver(driver);
2.连接数据库
JDBC驱动载入后,能够用Connection类建立和数据库的连接
连接时必须指定URL,数据库用户及其密码
URL的格式:jdbc:postgres://[locahost][:port]:dbname[?param=value][…]
Example:
Stringurl=”jdbc:postgresql:postgres”;
Stringuser=”postgres”;
Stringpass=”dbms”;
Connectiondbcon=DriverManager.getConnection(url,user,pass);
打开的连接需要关闭时调用:dbcon.close().
Statement类用于执行无参SQL语句
首先createStatement
Statementst=dbcon.createStatement();
更新Update:
intnrows=st.executeUpdate(sqlStr);
查询Select:得到结果集
ResultSetrs=st.executeQuery(sqlStr);
注:sqlStr是你要查询或修改数据库所写SQL语句。
查询的结果是壹个集合,能够使用游标从ResultSet对象中壹次取壹行
Stringrfname,rlname;
while(res2.next())
{num=rs.getString("num");
password=rs.getString("password");
System.out.println(num+""+password);
}
6.1.2字符处理的编写
主要方法:
publicstaticStringtoHtml(Strings);
PublicstaticStringstrReplace(StringsBody,StringsForm,StringsTo);
PublicstaticStringparseReturn(StringsBody,StringsEndwith);
PublicstaticStringtoHtmlInput(Stringstr);
PublicstaticStringtoSql(Stringstr);
6.2信息实体
6.2.1银行客户信息实体
银行客户信息实体
6.2.2服务经理信息实体
服务经理信息实体:数据结构为帐号和密码
6.3管理信息实体
6.3.1管理用户登录
Super_manager:sqlStr=”select*fromsuper_managerwheresuperm_num='"+name_m+"'ANDsuper_password='"+password_m+"';
Custom:sqlStr=”select*fromcustomswherecard_num='"+stunum+"'ANDcustom_password='"+spassword1+"';
6.3.2管理用户信息
1.在数据库用户表中增加新的用户
sqlStr="insertintocustoms(superm_num,card_num,custom_password,user_name,cash)values('"+tnumber+"','"+snumber+"','"+password1+"','"+sname+"','"+money+"')";
2.在数据库用户表中删除某壹存在的用户
sqlStr="deletefromcustomswherecard_num='"+card_n+"'";
3.在客户信息实体中更改某壹属性
SqlStr="updatecustomssetcustom_password='"+card_pass+"'wherecard_num='"+card_n+"'";
sqlStr="updatecustomssetcash=cash+'"+money_i+"'wherecard_num='"+card_number+"'";
七相关技术的配置
7.1开发环境配置
数据库的安装
PostgreSQL8.1在Windows2000/XPFAT32的安装步骤:
1.启动安装,修改默认安装目录,例如改为c:\pgsql,在安装为服务时不选,即只安装程序,不初始化数据库,也不安装为服务。
2.在启动控制面板/管理工具/计算机管理/本地用户和组,增加壹个普通用户,如postgres,密码123,设为永不过期。
3.系统环境变量的PATH增加c:\pgsql\bin。
4.以Administrator身份进入command窗,输入命令
runas/user:postgrescmd,
输入密码,成功后进入c:\pgsql。输入命令
initdb-EUTF-8-Ddata。
5.以Administrator再次身份进入command窗,输入命令:
pg_ctlregister-Npostgres-Dc:\pgsql\data-Upostgres-P123
6.如5成功,启动控制面板/管理工具/服务,能够见到名为postgres的服务。将其启动类型改为手动,在属性/登录标签下输入密码和确认密码123。
7.启动服务。
8.以postgres身份输入命令psql可进入客户端。
Java开发包
1.下载Java开发包jdk-1_5_0_05-windows-i586-p.exe
2.下载完成后,即可安装到D:\JDK目录下(安装目录能够是自选目录)。
3.配置环境变量如下:
JAVA_HOME=D:\JDK
PATH=%JAVA_HOME%\bin;%JAVA_HOME%\lib;%JAVA_HOME%\jre\lib;
CLASSPATH=%JAVA_HOME%\lib;%JAVA_HOME%\jre\lib;
4.检测是否安装成功:在command窗口中,输入命令:javac
IDE集成开发环境
下载软件eclipse-SDK-3.1.2-win32.zip直接解压即可运行。如解压到D:\Eclipse
应用服务器
下载软件jakarta-tomcat-4.1.31.exe
双击安装(直接按照提示安装)将安装路径改为你喜欢的路径如:D:\Tomcat
设置环境变量:新建环境变量TOMCAT_HOME=D:\Tomcat
检测是否安装成功:启动服务器,在浏览器中输入
http://localhost:8080/
如能见到Apache的主页,则安装成功。
7.2系统安装配置
1.将源程序文件夹Bank复制到目录:D:\work\。能够是任选目录,但如下配置也要做相应修改。
2.修改Tomcat的conf目录下的server.xml文件,增加相应的<Context>标签:
<Contextpath="/Bank"docBase="d:/work/Bank/web"debug="0"
reloadable="true"crossContext="true"/>
3.修改Tomcat的conf目录下的web.xml文件,将invoker的servletmapping前后注释去掉。
<!--
<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
-->
4.配置完成测试。
启动Tomcat,URL为:http://localhost:8080/Bank。
七汇旗银行自动取款系统实验总结
~
~感谢阅读~
1、
1、鸣筝金粟柱,素手玉房前。
TIME \@ "yy.M.d" 20.6.29 DATE \@ "M.d.yyyy" 6.29.2020 DATE \@ "HH:mm" 12:46 DATE \@ "HH:mm:ss" 12:46:27 DATE \@ "MMM-yy" Jun-20 DATE \@ "HH:mm" 12:46
2、宫中艳丽的花儿在寂寞寥落中开放。
TIME \@ "EEEE年O月A日" 二〇二〇年六月二十九日 TIME \@ "yyyy年M月d日星期W" 2020年6月29日星期一
3、幸存的几个满头白发的宫女。
DATE \@ "HH:mm" 12:46 DATE \@ "M.d.yyyy" 6.29.2020 DATE \@ "HH:mm" 12:46 DATE \@ "M.d.yyyy" 6.29.2020 DATE \@ "HH:mm" 12:46 DATE \@ "HH:mm:ss" 12:46:27 DATE \@ "M.d.yyyy" 6.29.2020 DATE \@ "HH:mm" 12:46 DATE \@ "M.d.yyyy" 6.29.2020
4、闲坐无事只能谈论着玄宗轶事。
DATE \@ "M.d.yyyy" 6.29.2020 DATE \@ "M.d.yyyy" 6.29.2020 DATE \@ "HH:mm" 12:46 DATE \@ "HH:mm" 12:46 DATE \@ "HH:mm:ss" 12:46:27 DATE \@ "HH:mm:ss" 12:46:27
5、皇帝在京城之外的宫殿。
DATE \@ "MMMM yy" June 20 DATE \@ "dddd, MMMM d, yyyy" Monday, June 29, 2020 DATE \@ "M/d/yyyy" 6/29/2020
6、这里指当时东都洛阳的皇帝行宫上阳宫。
TIME \@ "h时m分" 12时46分 TIME \@ "h时m分" 12时46分 DATE \@ "d-MMM-yy" 29-Jun-20 DATE \@ "M.d.yyyy" 6.29.2020
7、行宫里的花。
TIME \@ "yy.M.d" 20.6.29 TIME \@ "yy.M.d" 20.6.29 TIME \@ "yy.M.d" 20.6.29。
TIME \@ "yyyy年M月d日星期W" 2020年6月29日星期一 TIME \@ "EEEE年O月A日" 二〇二〇年六月二十九日
8、一些宫女天宝末年被“潜配”到上阳宫。
DATE \@ "HH:mm" 12:46 DATE \@ "HH:mm:ss" 12:46:27 DATE \@ "M.d.yyyy" 6.29.2020 DATE \@ "dddd, MMMM d, yyyy" Monday, June 29, 2020
1、在这冷宫里一闭四十多年。
TIME \@ "yy.M.d" 20.6.29 DATE \@ "M.d.yyyy" 6.29.2020 DATE \@ "HH:mm" 12:46 DATE \@ "HH:mm:ss" 12:46:27 DATE \@ "MMM-yy" Jun-20 DATE \@ "HH:mm" 12:46
2、成了白发宫人。
TIME \@ "EEEE年O月A日" 二〇二〇年六月二十九日 TIME \@ "yyyy年M月d日星期W" 2020年6月29日星期一
3、白日依山尽。
DATE \@ "HH:mm" 12:46 DATE \@ "M.d.yyyy" 6.29.2020 DATE \@ "HH:mm" 12:46 DATE \@ "M.d.yyyy" 6.29.2020 DATE \@ "HH:mm" 12:46 DATE \@ "HH:mm:ss" 12:46:27 DATE \@ "M.d.yyyy" 6.29.2020 DATE \@ "HH:mm" 12:46 DATE \@ "M.d.yyyy" 6.29.2020
4、黄河入海流。
DATE \@ "M.d.yyyy" 6.29.2020 DATE \@ "M.d.yyyy" 6.29.2020 DATE \@ "HH:mm" 12:46 DATE \@ "HH:mm" 12:46 DATE \@ "HH:mm:ss" 12:46:27 DATE \@ "HH:mm:ss" 12:46:27
5、欲穷千里目。
DATE \@ "MMMM yy" June 20 DATE \@ "dddd, MMMM d, yyyy" Monday, June 29, 2020 DATE \@ "M/d/yyyy" 6/29/2020
6、夕阳依傍着山峦慢慢沉落。
TIME \@ "h时m分" 12时46分 TIME \@ "h时m分" 12时46分 DATE \@ "d-MMM-yy" 29-Jun-20 DATE \@ "M.d.yyyy" 6.29.2020
7、滔滔黄河朝着大海汹涌奔流。
TIME \@ "yy.M.d" 20.6.29 TIME \@ "yy.M.d" 20.6.29 TIME \@ "yy.M.d" 20.6.29。
TIME \@ "yyyy年M月d日星期W" 2020年6月29日星期一 TIME \@ "EEEE年O月A日" 二〇二〇年六月二十九日
8、想要看到千里之外的风光。
DATE \@ "HH:mm" 12:46 DATE \@ "HH:mm:ss" 12:46:27 DATE \@ "M.d.yyyy" 6.29.2020 DATE \@ "dddd, MMMM d, yyyy" Monday, June 29, 2020
1、那就要再登上更高的一层城楼。
TIME \@ "yy.M.d" 20.6.29 DATE \@ "M.d.yyyy" 6.29.2020 DATE \@ "HH:mm" 12:46 DATE \@ "HH:mm:ss" 12:46:27 DATE \@ "MMM-yy" Jun-20 DATE \@ "HH:mm" 12:46
2、旧址在山西永济县。
TIME \@ "EEEE年O月A日" 二〇二〇年六月二十九日 TIME \@ "yyyy年M月d日星期W" 2020年6月29日星期一
3、楼高三层,前对中条山。
DATE \@ "HH:mm" 12:46 DATE \@ "M.d.yyyy" 6.29.2020 DATE \@ "HH:mm" 12:46 DATE \@ "M.d.yyyy" 6.29.2020 DATE \@ "HH:mm" 12:46 DATE \@ "HH:mm:ss" 12:46:27 DATE \@ "M.d.yyyy" 6.29.2020 DATE \@ "HH:mm" 12:46 DATE \@ "M.d.yyyy" 6.29.2020
4、下临黄河。传说常有鹳雀在此停留。
DATE \@ "M.d.yyyy" 6.29.2020 DATE \@ "M.d.yyyy" 6.29.2020 DATE \@ "HH:mm" 12:46 DATE \@ "HH:mm" 12:46 DATE \@ "HH:mm:ss" 12:46:27 DATE \@ "HH:mm:ss" 12:46:27
5、故有此名。
DATE \@ "MMMM yy" June 20 DATE \@ "dddd, MMMM d, yyyy" Monday, June 29, 2020 DATE \@ "M/d/yyyy" 6/29/2020
6、消失。
这句话是说太阳依傍山峦沉落。
TIME \@ "h时m分" 12时46分 TIME \@ "h时m分" 12时46分 DATE \@ "d-MMM-yy" 29-Jun-20 DATE \@ "M.d.yyyy" 6.29.2020
7、想要得到某种东西或达到某种目的的愿望。
TIME \@ "yy.M.d" 20.6.29 TIME \@ "yy.M.d" 20.6.29 TIME \@ "yy.M.d" 20.6.29。
TIME \@ "yyyy年M月d日星期W" 2020年6月29日星期一 TIME \@ "EEEE年O月A日" 二〇二〇年六月二十九日
8、但也有希望、想要的意思。
DATE \@ "HH:mm" 12:46 DATE \@ "HH:mm:ss" 12:46:27 DATE \@ "M.d.yyyy" 6.29.2020 DATE \@ "dddd, MMMM d, yyyy" Monday, June 29, 2020
(责任编辑:单位文秘网) )地址:https://www.kgf8887.com/show-160-13524-1.html
上一篇:市长在银行成立六周年座谈会上讲话
下一篇:医院环境卫生工作计划规划方案例文
版权声明:
本站由单位文秘网原创策划制作,欢迎订阅或转载,但请注明出处。违者必究。单位文秘网独家运营 版权所有 未经许可不得转载使用