某公司自来水收费管理系统

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、课程设计的目的和要求

(1)培养学生运用所学课程《数据库系统原理》的理论知识和技能,深入理解《数据库系统原理》课程相关的理论知识,学会分析实际问题的能力。

(2)培养学生掌握用《数据库系统原理》的知识设计计算机应用课题的思想和方法。(3)培养学生调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。

(4)通过课程课程设计的训练,要求学生在教师的指导下,独立完成大作业要求的相关内容,包括:

①通过调查研究和运用Internet,收集和调查有关资料、最新技术信息。

②基本掌握撰写小论文的基本步骤和写作方法。

③根据课题的要求基本理解和掌握E-R 图的设计方法和关系模式的转换。

④根据课题的要求基本理解和掌握数据流图(DFD)和数据字典(DD)的设计方法。

⑤根据ER 图生成数据库表。

⑥数据库完整性、安全性保证措施

⑦数据库实施维护计划

二、课程设计题目要求:

(1)每组学生(最多两人一组,不允许多组同选一个题目)从下面题目中任选一个作为课程设计,调查分析一个具体的或模拟的实例。选好题目后发给班长或学习委员,产生选题冲突时,由班长和学习委员协调解决;

(2)描述该实例的业务信息和管理工作的要求;

(3)列出实体、联系;

(4)指出实体和联系的属性;

(5)画出E-R 图;

(6)将E-R 图转换成关系模式,并注明主码和外码;

(7)建立数据字典;

(8)创建数据库;

(9)根据题目的要求写查询、存储过程、触发器等。

某自来水公司收费管理系统实现客户信息、用水类型(类别号、类别名、水价)及业务员管理;实现客户用电信息管理(客户号、月份、用水类别号、用水量);实现客户费用管理(客户号、月份、费用、收费标志),收费标志的默认值为…未收‟;实现收费登记(客户、月份、应收费用、实收费用、业务员),并自动修改收费标志(用触发器实现);创建触发器,实现收费时自动更加应收费用和实收费用,计算本次结余,然后修改客户信息表中的结余金额;创建存储过程统计指定月份应收费用和实收费用;创建存储过程查询指定月份未交费的用户信息,以便崔费;创建规则使得月份符合格式“××××年××月”,并邦定到表中相应字段;建立表间关系。

一、问题描述

自来水公司收费管理系统实现客户信息、用水类型及业务员管理;

实现客户用电信息管理;

实现客户费用管理;

实现收费登记并自动修改收费标志(用触发器实现);

创建触发器,实现收费时自动更加应收费用和实收费用,计算本次结余,然后修改客户信息表中的结余金额;

创建存储过程统计指定月份应收费用和实收费用;

创建存储过程查询指定月份未交费的用户信息,以便崔费;

创建规则使得月份符合格式“××××年××月”,并邦定到表中相应字段;建立表间关系。

二、概念模型设计

1、自来水收费管理系统我设计了4张表

I、用水类型(类别号、类别名、水价)。

II、客户用水信息(客户、月份、用水类别号、用水量);

III、客户费用(客户号、月份、费用、收费标志)

IV、收费登记(客户、月份、应收费用、实收费用、业务员)

2、表之间对应的E-R图

2、所有表之间的关系图

创建用水类型表

CREATE TABLE Leixing ( shuijia Number(5),

Leibie V ARCHAR(20), Leiming VARCHAR(20)

);

创建用电信息表

CREATE TABLE Ydxinxi ( Kehao Number(10),

mouth Int(2),

LeibieV ARCHAR(20), Shuiliang V ARCHAR(5),

);

创建客户费用

CREATE TABLE Khfeiyong ( Kehao Number(10),

mouth Int(2),

Feiyong Number(5),

Biao bool(1)

);

创建收费登记表:

CREATE TABLE Dji (

Kehao Number(10),

mouth Int(2),

Yewu Varchar(10),

Yshou Number(5),

Sshou Number(5),

);

自动修改客户费用

create trigger auto_update after insert on Dji for each ROW

begin

declare @kehao varchar(20),

declare @mou int,

declare @remoney int

declare @hekumoney int

set @kehao =(select Feiyong from inserted);

set @mou = (select mouth from tickets where Khfeiyong=@kehao);

set @remoney= (select Sshou from Dji where Kehao=@kehao);

set @kehumoney = (select Feiyong from Khfeiyong where kehao=@kehao);

if(@remonry

begin

print"余额不足";

else

update Khfeiyong set Feiyong=Feiyong-kehumoney where Kehao=@kehao;

end;

end;

根据用水的类型修改收费标准

create trigger shoufeibiaozhun after insert on Dji for each ROW

begin

declare @kehao varchar(20),

declare @mou int,

declare @remoney int

declare @hekumoney int

set @kehao =(select Feiyong from inserted);

set @mou = (select mouth from tickets where Khfeiyong=@kehao);

set @remoney= (select Sshou from Dji where Kehao=@kehao);

set @kehumoney = (select Feiyong from Khfeiyong where kehao=@kehao); update Khfeiyong set Feiyong=Feiyong-kehumoney where Kehao=@kehao;

end;

创建存储过程统计指定月份应收费用和实收费用

create PROCEDURE FeiY(

in mou int

相关文档
最新文档