软件工程课程设计 联系客服

发布时间 : 星期四 文章软件工程课程设计更新完毕开始阅读1013fb35a6c30c2259019e41

5.3.1系统设计理论分析

此系统的使用对象为经理,售后服务人员,销售人员三种用户类型,不同类型的用户就有对系统不同的使用权限,不可能让销售人员执行删除产品,修改信息等操作。这明显会造成系统的混乱,产生不稳定性、低安全性、易破坏性,因此必须将各个类型用户使用的范围加以限定,而这样的操作放在用户登录时就加以限制是最适合的。可以利用在通常登录的模式下增加一项用户类型的选择,在登录后便自然将用户使用权限确定,使系统具有快捷、方便和安全的性能。

登录系统之后,由于不同类型有着不同的操作权限,因此在用户越权操作时,系统就应该提示该用户不能进行此项操作并做相应的出错处理或页面跳转等。在正常操作情况下,员工只能进行查看信息,登记销售记录等操作,如果执行了权限以外的操作,便会弹出对话框提醒操作者。 5.3.2系统总体设计

理论分析的基础上,根据该系统是网上系统的特点,必然涉及到许多页面的跳转问题,这是首先需要明确的。那么随意地挑选一个页面来设计并完成,这显然是很盲目的和失效的做法,通常会事倍功半。从总体来说,一条有效的办法是从首页,即登录页面开始, 到主页面,产品管理页面,销售管理页面,销售记录管理页面,员工管理页面,客户管理页面等一条主线加分支页面的设计来完成的。这先要初步建立起后台数据库并对相关的数据表进行数据存储,接着开始前端应用页面的开发并且在设计的过程中不断修改数据库和其它相关的内容,逐步完善系统的开发与设计。

同时,系统的总体设计也可以通过图8很好地体现出来。

图8系统流程图

11

企业销售管理系统

5.4 数据库建设

5.4.1数据库应用的构架

对于设计人员来说,要想比较好的创建并使用数据库的话,作者认为首先应该弄清楚的就是数据库应用的构架[10],在此用一个简单的构架图9表示如下:

图9数据库应用架构图

5.4.2逻辑结构设计

通过在第四章系统分析里的图,可以获得以下对数据库的逻辑设计,鉴于本系统设计的数据表比较多,在此只列出设计效果:

客户信息表(Customer)(客户编号、客户姓名、性别、联系电话、地址、邮编、E-mail)

产品列表(Product)(产品编号、产品名称、规格、生产厂商、产品进价、备注)

销售信息表(Sell)(销售编号、产品编号、客户编号、销售人员编号、销售日期、销售单价、销售量)

售后服务信息表(Service)(售后编号、销售编号、市场人员编号、服务类型、详细情况、是否完成、客户满意度)

5.5模块设计及实施

作为系统基础的数据库创建好后,从用户的角度出发,这属于后台的管理,对于用户而言是不可见的,而用户只是关心页面的设计及功能的实现,因此,接下来就应该转入前台的开发了。

12

在上一章里,已经分析了整个系统的模块划分,即登录模块、产品管理模块、销售管理模块、公告管理模块、员工管理模块、客户管理模块六个模块,以下就分别对这些模块及其功能进行详细说明。 5.5.1登陆模块

(1)模块功能描述

该模块主要实现对用户能否进入系统的确认以及对进入系统的用户权限的设定;因为本系统涉及到三类使用者,不可能每一类用户都具有相同的操作权限,如前所说,必然会早成系统的混乱和崩溃,严重影响其安全性和有效性。所以采取在通常的登录模式下加上用户类型的选择,非常简洁地就完成了对用户类型的区别及权限的划分。

(2)在模块的详细设计后,便能得出实现该部分的具体流程,如图10。

图10登录模块程序流程图

(3)算法设计:从上面的程序流程图可以看出,此部分主要的算法设计在于一个匹配查询,通过嵌套的IF条件语句来得以实现。

(4)主要程序:由于该模块的主要实现在于条件的判断及匹配查询。 用户登陆界面如图11。

13

企业销售管理系统

图11用户登陆界面

部分代码如下: public

static

User

validate(String

username,

String

password)

throws

UserNotFoundException, PasswordNotCorrectException{

Connection conn=null; ResultSet rs=null; User u=new User(); try{

conn=DB.getConn();

String sql=\rs=DB.executeQuery(conn, sql); if(!rs.next()){

throw new UserNotFoundException();

}else if(!rs.getString(\

throw new PasswordNotCorrectException(sql);

}else{ }

14

u.setId(rs.getInt(\

u.setUsername(rs.getString(%u.setPassword(rs.getString(%u.setPhone(rs.getString(%u.setAddr(rs.getString(%u.setRdate(rs.getTimestamp(\