每天记录学习,每天会有好心情。*^_^*

今日思考,完成一个小区电费管理系统项目,需要实现哪些功能?
此类项目常见描述如下:
在计算机普及之前,小区主要用电费管理人员手工记账的方法管理电费财务,这种方式不仅浪费大量的人力、物力、财力。而且不适合整理和存储。随着计算机的普及,大多说小区开始利用计算机来管理小区电费财务以及电费登记,使得小区的电费管理更加高效、便捷,用户对电费的查询更加方便。本小区电费管理系统是单机版电费管理系统。本系统在开发时采用ASP.NET和SQL Server 2008数据库软件作为程序的主要开发语言和工具。实用ASP.NET MVC4框架进行代码编辑、程序设计及具体功能的实现,运用SQL Server 2008数据库软件完成数据库的具体设计和实现。本系统是实现了管理员登陆、注册、修改;用户的信息的快捷录入,方便小区物业公司根据用户的实际用电情况进行登记,然后收取用户电费;用户电表的数据录入,使小区物业公司能够方便快捷的了解用户每月的用电情况;电费管理,能够根据用户用电情况收取用户电费以及用户交电费。本文主要介绍了“小区电费管理系统”的设计思想,并概括地说明了该系统的工能及特点。该系统功能完善、界面良好、操作简单,能够满足不同计算机水平的用户需求,不会因为计算机知识不足而对系统的操作有任何影响。
SSM(MYECLIPSE)框架及其适合本类项目,使用MVC的思想可以极大程度减少重复工作量。和SSM(MYECLIPSE)框架最配的开发工具是MYECLIPSE。MYECLIPSE集成了大量插件,可以更好的使用SSM(MYECLIPSE)进行项目的开发,使得项目开发时事半功倍。
通过对小区电费管理系统系统的仔细分析,可以得出小区电费管理系统系统是一个 后台项目。
在这样一个项目中,系统的登录角色是必不可少的,对每个登录角色设置账号、密码。以确保系统可以正常登录使用。SSM(MYECLIPSE)项目中包含的登录角色有管理员、业主。
在系统的功能中,电费是一个重要的表。这个表使得业主关联了起来。在电费表中电费的业主与业主的mingzi字段对应、电费的业主id与业主的id字段对应
,他们拥有关联关系。缴费记录的存在是为了能更好的结合系统的功能。业主表的联系在这张表中得以体现,其关联关系为缴费记录的业主与业主的mingzi字段对应

总结得出该系统所有数据为:管理员(admin)、业主(yezhu)、电费(dianfei)、缴费记录(jiaofeijilu)

管理员表

字段名 | 类型 | 属性 | 描述
id | INT(11) | PRIMARY KEY | 管理员id
username | VARCHAR(255) | | 账号
password | VARCHAR(255) | | 密码

业主表

字段名 | 类型 | 属性 | 描述
id | INT(11) | PRIMARY KEY | 业主id
mingzi | VARCHAR(255) | | 名字
username | VARCHAR(255) | | 账号
password | VARCHAR(255) | | 密码
zhuzhi | VARCHAR(255) | | 住址

电费表

字段名 | 类型 | 属性 | 描述
id | INT(11) | PRIMARY KEY | 电费id
yuefen | VARCHAR(255) | | 月份
feniyong | VARCHAR(255) | | 费用
yezhu | VARCHAR(255) | | 业主
yezhuid | VARCHAR(255) | | 业主id

缴费记录表

字段名 | 类型 | 属性 | 描述
id | INT(11) | PRIMARY KEY | 缴费记录id
yezhu | VARCHAR(255) | | 业主
yezhuid | VARCHAR(255) | | 业主id
shijian | VARCHAR(255) | | 时间
feiyong | VARCHAR(255) | | 费用
SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------

-- ----------------------------

-- Table structure for ggxiaoqudianfei

-- ----------------------------

DROP TABLE IF EXISTS `t_admin`;

CREATE TABLE `t_admin` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '管理员id',`username` VARCHAR(255) DEFAULT NULL COMMENT '账号',`password` VARCHAR(255) DEFAULT NULL COMMENT '密码',PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='管理员';

-- ----------------------------

DROP TABLE IF EXISTS `t_yezhu`;

CREATE TABLE `t_yezhu` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '业主id',`mingzi` VARCHAR(255) DEFAULT NULL COMMENT '名字',`username` VARCHAR(255) DEFAULT NULL COMMENT '账号',`password` VARCHAR(255) DEFAULT NULL COMMENT '密码',`zhuzhi` VARCHAR(255) DEFAULT NULL COMMENT '住址',PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='业主';

-- ----------------------------

DROP TABLE IF EXISTS `t_dianfei`;

CREATE TABLE `t_dianfei` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '电费id',`yuefen` VARCHAR(255) DEFAULT NULL COMMENT '月份',`feniyong` VARCHAR(255) DEFAULT NULL COMMENT '费用',`yezhu` VARCHAR(255) DEFAULT NULL COMMENT '业主',`yezhuid` INT(11) DEFAULT NULL COMMENT '业主id',PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='电费';

-- ----------------------------

DROP TABLE IF EXISTS `t_jiaofeijilu`;

CREATE TABLE `t_jiaofeijilu` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '缴费记录id',`yezhu` VARCHAR(255) DEFAULT NULL COMMENT '业主',`yezhuid` INT(11) DEFAULT NULL COMMENT '业主id',`shijian` VARCHAR(255) DEFAULT NULL COMMENT '时间',`feiyong` VARCHAR(255) DEFAULT NULL COMMENT '费用',PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='缴费记录';

添加业主模块:

从页面中通过post方法,将业主信息传入到后台服务器中,在tianjiayezhuact

中接收,字段包括名字,账号,密码,住址使用insert方法添加数据,将数据同步到

数据库中,完成添加操作。定义添加成功提示信息,添加业主成功,并保存到request中具体代码如下:

通过yezhudao的insert方法将页面传输的业主添加到数据库中 yezhudao.insert(yezhu);

将添加业主成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "添加业主成功");

返回业主管理界面

return "forward:/tianjiayezhu.action";

查询业主模块:

在后台中定义业主查询模块,在侧边栏中点击业主管理,可以跳转到业主管理界面。在该页面中通过yezhuController中定义yezhuguanli响应业主查询模块。在yezhuguanli中查询出所有信息,返回页面进行循环展示。查询方法为yezhudao中的selectByexample方法。该部分核心代码如下:

生成业主样例类,通过example定义查询条件 YezhuExample example = new YezhuExample();

通过yezhudao的selectByExample方法查询出所有的业主信息 List yezhuall = yezhudao.selectByExample(example);

将业主信息,保存到request中,在页面通过foreach方法进行展示 request.setAttribute("yezhuall", yezhuall);

返回业主管理界面

return "forward:/yezhuguanli.action";

修改业主模块:

对已经上传的业主信息可以进行修改操作,该部分操作在业主管理界面中点击修改按钮可以跳转到业主修改页面。在修改页面中,将初始化所有的业主字段信息,字段信息包括名字,账号,密码,住址。字段信息内容通过业主id获取。修改后的信息传入到yezhuController中接收为yezhu。在yezhuController中包含有提前定义好的yezhudao,该参数为yezhuMapper是实现。yezhuMapper中定义了修改方法,此处使用修改方法为updateByPrimaryKeySelective,该方法可以将修改后信息同步到数据库中,最终将修改成功信息返回页面中。该部分代码如下:

通过yezhudao的修改方法根据id修改对应的业主 yezhudao.updateByPrimaryKeySelective(yezhu);

将修改业主成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "修改业主信息成功");

返回业主管理界面

return "forward:/yezhuguanli.action";

删除业主模块:

删除业主功能实现在yezhuController中,实现方法为shanchuyezhu。在页面中通过get方法shanchuyezhu.action?Id的形式将需要删除的业主id上传到服务器中,响应对应的方法,调用yezhudao中的deleteByPrimaryKey方法,完成删除操作。将删除成功的提示信息返回到页面中,完成删除数据的操作。该部分核心代码:

通过yezhudao的删除方法根据id删除对应的业主 yezhudao.deleteByPrimaryKey(id);

将删除业主成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "删除业主成功");

返回业主管理界面

return "forward:/yezhuguanli.action";

02-14 03:01