资源描述
《CS系统设计与开发》
实训报告
系统名称: 供热缴费管理系统的设计与实现
专 业: 计算机科学与技术
姓 名:
班 级:
学 号:
指导教师:
成 绩:
完成日期: 年 月 日
任 务 书
题目:供热缴费系统的设计与实现
设计内容及要求:
1、 学生必须仔细阅读实训任务书,根据要求完成程序设计,有问题及时主动通过各种方式与教师联系沟通。
2、 学生要发挥自主学习的能力,充分利用时间,安排好设计的时间计划,并在设计 过程中不断检测自己的计划完成情况,及时向教师展示软件设计情况。
3、 设计按照教学要求需要4周时间完成,每周要上20小时的机来调试设计的程序,总共至少要上机调试程序80小时。
4、 功能要求:要求利用Java和SQL Server进行CS系统程序设计与实现。
设计环境:
MyEclipse、Java、SQLServer2008
实现目标:
最终完成供热缴费系统应用程序的开发,以及实训报告的书写。
1、数据管理模块
(1)基本信息管理模块
(2)缴费信息管理模块
2、系统管理模块
(1)供热单价设置:可以对该系统中的供热费单价进行添加、修改、删除操作。
(2)年度设置:可以对该系统中的缴费年度进行添加、修改、删除操作。
(3)供热单位设置:可以对该系统中的供热单位进行添加、修改、删除操作。
3、用户管理模块
(1)修改个人信息:可以对当前登陆账户的密码及真实姓名进行修改。
(2)用户添加:管理员账户可以添加使用该系统的账户,并指定该账户的密码,若当前登陆用户非管理员用户,则无此功能操作权限。
(3)用户删除:管理员账户可以对该管理系统的用户进行删除操作,若当前登陆用户非管理员用户,则无此功能操作权限。
1 系统分析与设计
1.1 需求分析
供热缴费管理系统对于一个供暖运营商来说是不可缺少的一部分。传统的手工缴费记录方式效率低且容易出错,且工作流程繁琐。供热缴费管理系统,可以是吸纳计算机化的供热缴费管理,能够提供方便的用户个人信息添加、修改、查询,以及用户缴费记录的添加、查询,并可以根据不同条件对缴费记录进行导出到Excel表格操作,并且该系统可以对供暖费单价、供暖公司信息进行修改,方便供暖公司实现缴费操作电子化。要求系统具备以下特点:
●操作简单,易用
●数据存储可靠,具备较高的处理效率。
●系统安全,稳定。
●开发技术先进,功能完备,扩展性强
1.2 系统功能设计
1.2.1 供热缴费管理系统功能结构设计
1、数据管理模块
(1)基本信息管理模块
1)基本信息录入、修改模块:可以对用户的基本信息进行增加、修改、删除操作,为了方便操作,对数据的增、改、删操作均在表格中进行。
2)基本信息查询:可以针对用户的个人基本信息中不同的字段进行多条件查询。为了方便操作,录入查询条件之后,查询结果值会返回到基本信息增加修改删除界面进行显示。
(2)缴费信息管理模块
1)缴费记录添加:可以将某用户的缴费记录添加到数据库中。
2)缴费记录查询:可以按照用户编号或姓名、缴费年度进行多条件查询,并可以将结果导出到Excel表格。
2、系统管理模块
(1)供热单价设置:可以对该系统中的供热费单价进行添加、修改、删除操作。
(2)年度设置:可以对该系统中的缴费年度进行添加、修改、删除操作。
(3)供热单位设置:可以对该系统中的供热单位进行添加、修改、删除操作。
3、用户管理模块
(1)修改个人信息:可以对当前登陆账户的密码及真实姓名进行修改。
(2)用户添加:管理员账户可以添加使用该系统的账户,并指定该账户的密码,若当前登陆用户非管理员用户,则无此功能操作权限。
(3)用户删除:管理员账户可以对该管理系统的用户进行删除操作,若当前登陆用户非管理员用户,则无此功能操作权限。
1.2.2 供热缴费管理系统功能模块图
供热缴费管理系统功能模块图如图1.1所示:
图1.1 系统功能模块图
1.3 数据库设计
供热缴费管理系统采用SQL Server 2008数据库管理系统,数据库及表组织结构如图1.2所示:
图1.2 数据库及表组织结构图
基本信息表如表1.1所示,包含用户编号、姓名、性别、单位、家庭住址、面积、供暖单位、身份证号等信息,其中用户编号为主键。
表1.1 基本信息表 basic_info
字段名
数据类型
长度
是否为空
描述
userno
char
20
否
用户编号(主键)
name
char
10
否
姓名
sex
char
2
否
性别
dept
varchar
30
否
单位
addr
varchar
50
否
家庭住址
area
numeric
否
面积
heatunit
nvarchar
20
否
供暖单位
idno
char
18
否
身份证号
other
varchar
50
是
备注
缴费信息表如表1.2所示,包含用户编号、单价、金额、缴费年度、操作员姓名等信息,其中用户编号为主键。
表1.2 缴费信息表 pay_info
字段名
数据类型
长度
是否为空
描述
userno
char
20
否
用户编号(主键)
unitprice
money
否
单价
price
money
否
金额
yearinfo
char
10
否
缴费年度
operator
varchar
10
否
操作员姓名
单价表如表1.3所示,包含单价编号、单价等信息,其中单价编号为主键。
表1.3 单价表 unitprice
字段名
数据类型
长度
是否为空
描述
priceid
int
否
单价编号(主键)
price
money
否
单价
缴费年度表如表1.4所示,包含年度编号、年度等信息,其中年度编号为主键。
表1.4 缴费年度表 year_info
字段名
数据类型
长度
是否为空
描述
yearid
int
否
年度编号(主键)
yearinfo
char
10
否
年度
供暖单位表如表1.5所示,包含供暖单位编号、供暖单位名称等信息,其中供暖单位编号为主键。
表1.5 供暖单位表 heatunit
字段名
数据类型
长度
是否为空
描述
unitid
int
否
供暖单位编号(主键)
unitname
char
20
否
供暖单位名称
用户表如表1.6所示,包含用户名、该用户真实姓名、登陆密码等信息,其中用户名为主键。
表1.6 用户表 users
字段名
数据类型
长度
是否为空
描述
username
char
20
否
用户名(主键)
turename
varchar
10
否
该用户真实姓名
pwd
char
20
否
密码
2 系统实现
2.1 系统框架
该系统前端采用MyEclipse9.0编写,项目结构图如图2.1所示,com.bbm.db包为该系统数据访问类,com.bbm.model包为该系统的实体类,com.bbm.staticview包为该系统界面,img文件夹用来存储该系统所需要的图片, Referenced Libraries则用来存放该系统所需要的额外的jar包,包括用于与SQL Server2008数据库连接的sqljdbc4.jar及用于操作Excel文件的jxl.jar。
图2.1 系统功能结构图
com.hm.db包中,Dao.java文件为已封装好的实现Java前端界面与SQLServer连接的方法,其他方法调用该方法即可,BasicInfoDao.java中为基本信息模块中需要调用的数据库方法,PayInfoDao.java中为缴费信息模块中需要调用的数据库方法,SetDao.java为相应系统参数设置中需要调用的数据库方法,UserDao.java中为用户登录及用户管理模块中需要调用的数据库方法
com.hm.model包中,BasicInfo_model.java为数据库中BasicInfo表相应字段在Java中的实体类(get和set方法),其他文件同为数据库中相应的表在Java中对应的实体类。
com.hm.view包中,BasicInfo.java为基本信息添加、修改、删除界面,BasicInfoSelect.java为基本信息多条件查询界面,查询结果返回到BasicInfo界面,Loading.java为系统初始化载入界面,Login.java为系统登录界面,Main.java为系统主界面,所有功能均可从主界面打开,PayInfo.java为缴费信息添加界面,PayInfoSelect.java为缴费信息查询界面,SetHeatingUnit.java、SetUnitPrice.java、SetYearInfo.java分别为供暖单位、单价、年度设置界面,在此界面中可以对相应信息进行增、删、改、查操作,UserAdd.java为添加用户界面,UserDel.java为删除用户界面,这两个界面只有在登陆用户为管理员时方可使用,UserUpdate.java为用户密码及真实姓名修改界面。
2.2 系统主界面的实现
用户登录系统后,在主界面可以对该系统三大主要模块:数据管理、系统管理、用户管理中的不同功能进行操作,系统化三大主要功能模块以选项卡的形式放置,每个功能模块中的功能均以按钮的形式放置在相应选项卡中。系统主界面如图2.2所示。
图2.2 系统主界面
2.3 基本信息管理模块的实现
2.3.1 基本信息录入、修改功能实现
用户点击编辑按钮后,编辑按钮变为不可用状态,新增、添加、修改、删除按钮变为可用状态。
点击新增按钮,表格自动在最尾行添加一行空白行,光标自动定位到第一列,用户依次录入数据后,点击添加按钮,将数据保存到数据库中。
若需修改信息,点击编辑后修改相应行的信息后,点击修改按钮,将修改后的结果保存到数据库中。
若需删除信息,在编辑状态下选择需要删除的行,点击删除按钮即可从数据中删除该条记录。基本信息录入、修改功能如图2.3所示。
图2.3 基本信息录入、修改界面
功能描述:
编写editJBAction监听器,用户点击编辑按钮后,将编辑按钮变为不可用状态,新增、添加、修改、删除按钮变为可用状态,同时将供暖单位选择下拉框从不可用状态设置成可用状态。代码如下:
editJB.setEnabled(false);
addJB.setEnabled(true);
updateJB.setEnabled(true);
deleteJB.setEnabled(true);
jcb.setEnabled(true);
将该监听器添加到编辑按钮。
编写addJBAction监听器,点击新增按钮,表格自动在最尾行添加一行空白行,代码如下:
DefaultTableModel tablemodel = new DefaultTableModel(
getData(BasicInfoDao.selectBasicInfo()), columnName);
String data[] = {};
tablemodel.addRow(data);
jtable.setModel(tablemodel);
并将该监听器添加到新增按钮。
编写insertJBAction监听器,数据录入后,使用getText方法获取表格中新录入的数据,调用BasicInfoDao中的insert方法将数据插入到数据库中。并重置表格中显示数据
Object[][] data = getData(BasicInfoDao.selectBasicInfo());
jtable = new JTable(data, columnName);
将该监听器添加给添加按钮。
修改记录时,选择要修改的行,修改数据后通过JTable中的getSelectedRow获得当前选中行,将表格中数据依次取出,调用BasicInfoDao中update方法,实现数据的修改。
编写删除按钮事件监听器deleteJBAction,下通过JTable中的getSelectedRow获得当前选中行,调用BasicInfoDao中delete方法,即可从数据中删除该条记录。
2.3.2 基本信息查询功能实现
用户在基本信息录入、修改界面点击查询按钮后,会弹出查询窗口,用户可根据自身需求选择查询筛选条件,查询后会将查询结果返回到基本信息录入、修改界面的表格中。基本信息查询功能如图2.4所示。
图2.4 基本信息查询界面
该查询为多条件组合查询,该功能的实现方法是先将要查询的SQL语句写好:
StringBuffer sql = new StringBuffer();
sql.append("select * from basic_info where ");
然后依次判断查询界面中每个条件是否为空,若不为空则将该条件加到已经定义好的SQL语句sql字符串后面,以用户编号为例:
if (!usernoJTF.getText().trim().isEmpty()) {
String userno = usernoJTF.getText().trim();
sql.append("userno = '"+userno+"' and ");
}
所有条件判断结束后的sql字符串即为要在数据库中查询的SQL语句。
2.4 缴费信息管理模块的实现
2.4.1 缴费信息添加功能实现
打开缴费信息管理,系统会将数据库中所有的用户信息显示在界面上方表格中,可以通过缴费用户编号通过界面上方用户编号查询,可查询指定用户信息,并将结果显示在下方表格中,点击表格中相应记录,会将信息自动显示到下方对应文本框中,通过选择单价,系统后台会自动计算该用户需缴费金额,并将金额显示在对应文本框中。用户选择供暖年度后,点击缴费按钮,就会将该用户缴费记录添加到数据库中,点击重置按钮,会将未保存的缴费信息相应文本框重置,以方便用户更改信息。缴费信息添加界面如图2.5所示。
图2.5 缴费信息添加界面
功能实现:
界面上方用户编号查询,文本框中输入用户编号后,点击查询按钮,通过查询按钮监听器中PayInfoDao中的select方法,在数据中查询指定编号用户信息,并通过
Object[][] data = getData(PayInfoDao.selectPayInfoFromID(userno));
jtable = new JTable(data, columnName);
jsp.setViewportView(jtable);
将结果显示在下方表格中。点击表格中相应记录,通过JTableAction鼠标监听器获取当前选中行,将信息自动显示到下方对应文本框中。
编写单价下拉框监听器,通过获取当前编号用户的住房面积及下拉列表中被选择的单价,计算该用户需缴费金额,并通过setText方法将金额显示在缴费金额文本框中。用户选择供暖年度后,点击缴费按钮,通过缴费按钮payAction事件监听器调用PayInfo中的insert方法,将该用户缴费记录添加到数据库中。
2、点击重置按钮,通过JTextField中的setText方法及JComboBox中的setSelectIndex方法将文本框及下拉列表重置,以方便用户更改信息。
2.4.2 缴费信息查询功能实现
用户在缴费信息录入窗口中,点击查询按钮后,会弹出缴费信息查询窗口,用户可根据自身需求选择根据用户编号查询还是用户姓名查询,并且可以查询指定用户编号或姓名的某一年度的缴费记录。并可以将查询结果或者全部缴费通过界面中的“导出到Excel”按钮保存为Excel电子表格文件,方便对数据进行统计、分析及保存。缴费信息查询界面如图2.6所示。
图2.6 缴费信息查询界面
该查询为多条件组合查询,实现方法与基本信息查询类似,首先将查询的SQL语句写好:
String sql = "select basic_info.userno, basic_info.name, basic_info.addr, basic_info.area, pay_info.yearinfo, pay_info.price from basic_info join pay_info on basic_info.userno = pay_info.userno";
然后通过判断查询条件,向sql字符串结尾添加查询条件,所有条件判断结束后的sql字符串即为要在数据库中查询的SQL语句。
Excel导出功能通过调用jxl.jar包来实现Excel文件生成功能,并通过JFileChooser来实现文件保存选择功能。
2.5 供热费单价设置模块的实现
在供热费单价设置中,用户可以对供热费单价进行增加、删除、修改、查询操作,供热费单价数据保存在数据库中,方便其他模块对其调用。用户输入单价编号及单价后点击添加按钮,即可将单价信息添加到数据库中,用户点击表格中相应记录,即可将单价信息显示在下方文本框中,用户修改单价信息后,点击修改按钮即可将修改结果保存到数据库中,用户点击表格中想要删除的记录,点击删除按钮即可从数据库中将相应单价信息删除。供热费单价设置界面如图2.7所示。
2.7 供热费单价设置界面
功能实现:
打开窗口后,通过SetDao中selectUnitPrice方法将数据库中单价表中所有数据显示在JTable中。
若要添加数据,在文本框中输入相应数据后,点击添加按钮,通过SetDao中insert方法将数据插入到数据库。
若要修改数据,点击表中相应行,通过获取当前行数据的鼠标监听器将值显示在文本框中,修改后点击修改按钮通过SetDao中update方法将数据在数据库中进行修改
若要删除数据,点击要删除的行,通过鼠标监听器获取当前行的编号,点击删除按钮,通过SetDao中的delete方法对数据库中对应记录进行删除操作。
2.6 年度设置模块的实现
在年度设置中,用户可以对缴费年度进行增加、删除、修改、查询操作,缴费年度数据保存在数据库中,方便其他模块对其调用。年度设置界面如图2.8所示。
图2.8 年度设置界面
功能实现与2.5模块功能实现相同。
2.7 供暖单位设置模块的实现
在供暖单位设置中,用户可以对供暖单位进行增加、删除、修改、查询操作,供暖单位数据保存在数据库中,方便其他模块对其调用。供暖单位设置界面如图2.9所示。
图2.9 供暖单位设置界面
功能实现与2.5模块功能实现相同。
2.8 用户信息修改模块的实现
当前登陆用户可以通过用户信息修改功能修改自己的密码和真实姓名。用户信息修改界面如图2.9所示。
图2.9 用户信息修改界面
功能实现:
设置用户名文本框为不可编辑状态,并通过setText方法将当前登陆用户名及当前登陆用户名对应的操作员姓名显示在文本框中,进行密码修改后,点击修改按钮,调用UserDao中update方法对当前登陆用户的密码及操作员姓名进行修改。
2.9 用户添加模块的实现
管理员用户可以添加该系统使用用户,并设置用户名、密码、操作员姓名。用户添加界面如图2.11所示。
图2.11 用户添加界面
功能实现:
点击添加按钮后,通过getText及getPassword方法获取新增用户的用户名、密码及操作员姓名,并通过UserDao中insert方法插入到数据库中。
2.10 用户管理模块的实现
管理员用户登录后,可以对当前系统所有的用户进行查看密码、真实姓名以及用户操作。用户管理模块如图2.12所示。
图2.12 用户管理模块界面
功能实现:
打开该界面时,通过UserDao中select方法获取系统数据中全部用户信息,并显示在JTable中,若要删除某用户,选择该用户,通过JTable中getSelectedRow方法获取当前选择行,然后通过getValueAt(seleteRow, 0)获取当前选择用户的用户名,通过UserDao中delete方法在数据库中进行删除。
18
展开阅读全文