文章目录
目录
一、系统设计
面对企业办公自动化的现状和发展趋势,应孝感药都医药公司的要求,本小组有针对性的为该公司开发一套办公自动化系统,借助该自动化系统,提高了办公过程的自动化程度,也提高员工日常工作效率,减少了纸张浪费和规范管理层的工作。
一套软件,首先要能够满足用户的使用要求,这是基本条件。诚然,经过这么多年的发展,时常上的进销存软件的功能都已经非常完整,可以说基本上可以满足一般企业的仓库管理要求。
了解到该医药公司的业务流程特点,结合现代企业的先进管理思想和模式,采用了Client/Server的可靠、高效系统作为平台,该系统包括了七大功能模块:系统管理、基本信息设置、进货信息管理、售货信息管理、库存信息管理、财务信息管理、系统帮助。
开发软件使用Jbuilder开发工具,SQL2000数据库系统作为后台数据库,整体系统采用传统的C/S(Client/Server,客户端/服务器)够架。在客户端为用户提供了一个高集成度的服务和应用体系。
对于一般的企业,采用相应的安全措施,没有可能权限的用户不能直接大开文件查看数据,有足够安全措施。从而构成了严密的权限保护系统。
创建面向整个公司所处理的数据对象的数据结构,从而减少、消除相同数据多次重复录入,数据一直性差、冗余的现象,以保证数据准确性、安全性提高工作的时效性。
5.1系统的目标
市场竞争的激烈意味着管理工作的重要性,药品种类和数量的增加也就意味着销售管理的重要性。本医药公司销售管理系统的目标大体有:
1.为该公司提供一体化解决方案涵盖物流的整个过程,满足业内各种经营模式和特性。
2.适合特色管理和经营,针对该行业经营品种繁多,对药品的有效期,批准文号,合格证等要有比较严格的管理。
5.3 系统功能模块设计
系统开发的总体任务是实现各种信息的系统化,规范化和自动化。该公司的销售管理系统完成功能的设计如下:
1系统管理用于管理本系统用户的增加、删除和修改用户密码等操作。
二、系统实现
面向对象分析首要的高能工作,是建立问题域的对象模型,这个模型描述了现实世界的“类—&----对象”以及它们之间的关系,表示了目标系统的静态数据结构,静态数据结构对应细节以来较少,比较容易确定;当用户的需求变化时,静态数据结构相对来说比较稳定。因此,用面向对象开发的决大多数软件时,都首先建立对象模型,然后再建立子模型。
类和对象是对应用领域中的概念的标识,是系统分析及软件的复用的基础,这一过程需要考虑多种情况,正确的表示类—对象,以形成下一步软件的复用性,提高软件质量及生产效率。例如,在办公自动化系统中,文档是整个软件的基础,如果没有标识此类对象,一旦文档稍有改变,则整个系统就会面临重建的风险。
OOA系统的属性层包括对象的属性及对象间的实例连接(关系),属性为对象的一些静态信息,它是对象的内部资料描述,即内部封装的资料。
对象所能执行的操作称为服务或方法。在属性层讨论是应用领域的静态方面。而对象间的动态关系及对象实例间的消息连接构成了服务层。
结合面向对象的语言,就非常符合实际的情况。应用户在各种处理方面的需求,以及针对系统功能的具体设计将得到如下所示的本系统所要处理的数据流程图。
5.4.1 用户登陆模块的创建
运行本系统后将出现一个对话框如图6所示,提供用户输入用户名和密码,验证用户的合法性。如果用户3次输入登陆信息错误,将退出系统。这个模块包括三个类:LoginSystem.java、CheckUser.java和Main.java。其中Main.java是系统启动后运行的第一个类,在该类中初始化登陆窗口(Longinsystem.java)并将它显示出来,CheckUser.java封装了登陆和验证中一些公用的方法。
在CheckUser类中用JDBC连接数据库,提供了验证用户,也实现了为以后添加用户和修改密码的功能。
packagecom.csbook.restaurant.utility;
import java.sql.*;
import javax.swing.*;
public class CheckUser{
//构造数据库连接参数
//private Stringurl="jdbc:odbc:yumen","","";
public CheckUser() {
try {
//装载数据库驱动程序
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch (Exception ex) {
ex.printStackTrace();
}
}
//检查指定用户是否为合法用户
public boolean isValidUser(Stringoperator,String password)
{
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
boolean isValid=false;
try{
con =DriverManager.getConnection("jdbc:odbc:yumen","","");
String queryStr = "select * fromoperator WHERE id=? and password=?";
ps = con.prepareStatement(queryStr);
ps.setString(1, operator);
ps.setString(2, password);
rs = ps.executeQuery();
if (rs.next())
isValid = true;
}
catch(SQLException exc){
exc.printStackTrace();
}
finally{
if (rs != null) try { rs.close();}catch (SQLException ignore) {}
if (ps != null) try{ ps.close();}catch (SQLException ignore) {}
if (con != null)try{con.close();}catch (SQLException ignore) {}
}
return isValid;
}
//更改用户密码
public void updatePassword(String operator,Stringpassword)
{
Connection con=null;
PreparedStatementps=null;
try{
//con =DriverManager.getConnection(url);
con =DriverManager.getConnection("jdbc:odbc:yumen","","");
String updateStr = "updateoperator set password=? WHERE id=?";
ps = con.prepareStatement(updateStr);
ps.setString(1, password);
ps.setString(2, operator);
ps.executeUpdate();
}
catch(SQLException exc){
exc.printStackTrace();
}
finally{
if (ps != null)try{ ps.close();}catch (SQLExceptionignore) {}
if (con != null) try{con.close();}catch (SQLException ignore) {}
}
}
//检查指定用户是否存在
public boolean userExist(String userID)
{
Connection con = null;
PreparedStatement ps = null;
ResultSet rs=null;
boolean exist=false;
try{
// con =DriverManager.getConnection(url);
con =DriverManager.getConnection("jdbc:odbc:yumen","","");
StringselectStr = "select id from operator where id=?";
ps = con.prepareStatement(selectStr);
ps.setString(1, userID);
rs=ps.executeQuery();
if(rs.next())
exist=true;
}
catch(SQLException exc){
exc.printStackTrace();
}
finally{
if (rs != null)try{ rs.close();}catch (SQLExceptionignore) {}
if (ps != null)try{ ps.close();}catch (SQLExceptionignore) {}
if (con != null) try{con.close();}catch(SQLException ignore) {}
}
return exist;
}
//添加新用户
public void addOperator(StringuserID,String username,String userType,String password,String PICNo,Stringtel,String addr,String remark)
{
Connection con=null;
PreparedStatement ps=null;
try{
//con = DriverManager.getConnection(url);
con =DriverManager.getConnection("jdbc:odbc:yumen","","");
String updateStr = "insert intooperator(id,password,name,type,tel,addr,PICNo,remark)values(?,?,?,?,?,?,?,?)";
ps = con.prepareStatement(updateStr);
ps.setString(1, userID);
ps.setString(2, password);
ps.setString(3,username);
ps.setString(4,userType);
ps.setString(5,tel);
ps.setString(6,addr);
ps.setString(7,PICNo);
ps.setString(8,remark);
ps.executeUpdate();
}
catch(SQLException exc){
exc.printStackTrace();
}
finally{
if (ps != null) try{ ps.close();}catch (SQLException ignore) {}
if (con != null)try{con.close();}catch (SQLException ignore) {}
}
}
//删除用户
public boolean deleteOperator(StringuserID)
{
Connection con=null;
PreparedStatement ps=null;
boolean succeed=true;
try{
//con =DriverManager.getConnection(url);
con = DriverManager.getConnection("jdbc:odbc:yumen","","");
String deleteStr="delete fromoperator where id=?";
ps=con.prepareStatement(deleteStr);
ps.setString(1,userID);
ps.executeUpdate();
}
catch(SQLException exc){
succeed=false;
}
finally{
if (ps != null) try{ ps.close();}catch (SQLException ignore) {}
if (con != null)try{con.close();}catch (SQLException ignore) {}
}
return succeed;
}
//获得用户类型
public String getUserType(String user)
{
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
String userType="";
try{
//con = DriverManager.getConnection(url);
con = DriverManager.getConnection("jdbc:odbc:yumen","","");
String queryStr = "select * from operator WHERE id=?";
ps = con.prepareStatement(queryStr);
ps.setString(1, user);
rs = ps.executeQuery();
if (rs.next())
userType =rs.getString("type");
}
catch(SQLException exc){
exc.printStackTrace();
}
finally{
if (rs != null) try { rs.close();}catch (SQLException ignore) {}
if (ps != null) try{ ps.close();}catch(SQLException ignore) {}
if (con != null) try{con.close();}catch (SQLException ignore) {}
}
return userType;
}
}