您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 数据库课程设计某电力公司收费系统
数据库课程设计题目某电力公司收费管理信息系统专业班级姓名学号完成日期2013-12-18一、课程实验目的1.通过课程设计,使学生进一步巩固所学的知识,考查学生对数据库理论及知识的理解能力和综合运用能力;2.培养学生自主学习、独立思考的能力,学会查找资料并善于分析资料的能力;3.培养学生独立设计、独立调试程序的能力;4.培养学生初步的软件设计能力,形成良好的编程风格二、课程实验要求(28)某电力公司收费管理信息系统1.实现客户信息、用电类型(类别号、类别名、电价)及业务员管理;2.实现客户用电信息管理(客户号、月份、用电类别号、用电度数);3.实现客户费用管理(客户号、月份、费用、收费标志),收费标志的默认值为‘未收’;4.实现收费登记(客户、月份、应收费用、实收费用、业务员),并自动修改收费标志(用触发器实现);5.创建触发器,实现收费时自动更加应收费用和实收费用,计算本次结余,然后修改客户信息表中的结余金额;6.创建存储过程统计指定月份应收费用和实收费用;7.创建存储过程查询指定月份未交费的用户信息,以便崔费;8.创建规则使得月份符合格式“××××年××月”,并邦定到表中相应字段;9.建立表间关系。三、课程设计要求1.在对数据库理论及知识理解的基础上;重点是针对具体的实际问题选择并设计合适的数据库表加以应用,并在此基础上完成相关的算法与程序;2.给出系统的概要设计、详细设计;3.完成数据流程图,E-R关系图,数据库表、程序流程图、功能模块图的设计、对功能编程加以实现;4.设计必要的视图、触发器、存储过程;5.使用相关的编程工具(C#.NET)和ORACLE编写代码实现设计的数据库系统;6.完成规范化的课程设计报告的编写;7.每个同学完成一个题目,题目由老师安排。四、实验环境VS2010,SQLsever2008五、课程设计过程1.根据题目写出关系模型如下:①客户(客户号、客户名、地址、联系方式)②用电类型(类别号、编号、类别名、电价)③员工(员工号、姓名、性别、联系方式)④用电信息(客户号、月份、类别号、用电度数)⑤费用管理(客户号、月份、费用、收费标志)⑥收费登记(客户号、月份、应收费用、实收费用、员工号)⑦结余登记(客户号、月份、应收费用、实收费用、结余费用)2、根据关系模型绘制出E-R模型为:客户客户号客户名地址联系方式使用用电类型收费登记缴费操作消费总量员工用电信息缴费费用管理客户号月份应收费用员工号实收费用员工号姓名性别联系方式类别号编号类别名电价客户号月份类别号用电度数客户号月份费用收费标志3、创建表1.客户表Createtable客户(客户号char(5)PRIMARYKEY,客户名char(4),地址varchar(50),联系方式char(10));插入数据:Insertinto客户values('00001','张三','市南区','0000000');Insertinto客户values('00002','李四','黄岛区','0000002');Insertinto客户values('00003','王五','崂山区','0000003');Insertinto客户values('00004','赵兰','城阳区','0000004');Insertinto客户values('00005','李青','黄岛区','0000005');Insertinto客户values('00006','张倩','市南区','0000001');2.用电类型表Createtable用电类型(类别号char(10)PRIMARYKEY,类别名varchar(50),电价money);插入数据:Insertinto用电类型values('ABC','家庭','1.00');Insertinto用电类型values('ABD','政府','2.00');Insertinto用电类型values('ABE','工厂','1.50');Insertinto用电类型values('ABF','学校','2.50');Insertinto用电类型values('ABG','医院','0.50');3.员工表Createtable员工(员工号char(5)PRIMARYKEY,姓名char(20),性别char(10),联系方式char(20));插入数据:Insertinto员工values('12345','李丽','女','1230000');Insertinto员工values('12346','王华','男','1230002');Insertinto员工values('12347','张悦','女','1230003');4.用电信息表Createtable用电信息(客户号char(5),类别号char(10),月份date,用电度数char(8),primarykey(客户号,类别号,月份),foreignkey(客户号)references客户(客户号),foreignkey(类别号)references用电类型(类别号));Insertinto用电信息values('00001','ABC','2013-12-01','100');Insertinto用电信息values('00001','ABE','2013-12-01','220');Insertinto用电信息values('00002','ABC','2013-12-01','110');Insertinto用电信息values('00003','ABE','2013-11-01','125');Insertinto用电信息values('00003','ABE','2013-12-01','105');Insertinto用电信息values('00004','ABC','2013-12-01','200');Insertinto用电信息values('00005','ABC','2013-12-01','102');Insertinto用电信息values('00006','ABC','2013-12-01','100');5.费用管理Createtable费用管理(客户号char(5),月份date,费用money,收费标志varchar(50),PRIMARYKEY(客户号,月份),foreignkey(客户号)references客户(客户号));6.收费登记Createtable收费登记(客户号char(5),月份date,应收费用money,实收费用money,员工号char(5),PRIMARYKEY(客户号,月份),foreignkey(员工号)references员工(员工号));7.结余登记Createtable结余登记(客户号char(5),月份date,应收费用money,实收费用money,结余费用money,PRIMARYKEY(客户号,月份));4.创建触发器触发器1:计算费用createtriggerchange_trigger1on用电信息forinsertasinsertinto费用管理(客户号,月份,费用)SELECTinserted.客户号,inserted.月份,inserted.用电度数*(select电价from用电类型,insertedwhere用电类型.类别号=inserted.类别号)FROMinserted;触发器2:未收标志createtriggerchange_triggeron费用管理forinsertasupdate费用管理set收费标志='未收';触发器3:已收标志createtriggerchange_trigger3on收费登记forupdateasupdate费用管理set收费标志='已收'from费用管理,insertedwhere费用管理.客户号=inserted.客户号and费用管理.月份=inserted.月份;触发器4:结余登记createtriggerchange_trigger4on收费登记forupdateasinsertinto结余登记selectinserted.客户号,inserted.月份,inserted.应收费用,inserted.实收费用,inserted.实收费用-inserted.应收费用frominserted;5.建立存储存储过程1:应收费用,实收费用createprocedurech_procedure01@monthdateasbeginselect月份,应收费用,实收费用from收费登记where收费登记.月份=@monthendgo存储过程2:未收费createprocedurech_procedure02@monthdateasbeginselect客户号,月份,结余费用from结余登记where结余登记.月份=@monthorderby结余费用endgo6.表间关系六、代码实现过程1.显示窗体内的内容及表的内容privatevoidForm5_Load(objectsender,EventArgse){stringconsqlserver=DataSource=GXW-PC;InitialCatalog=liqiuyue0;IntegratedSecurity=True;//stringconsqlserver=DataSource=CHEN-PC;InitialCatalog=rl;IntegratedSecurity=True;//定义连接数据源stringsql=select*from用电信息;SqlConnectionsqlcon=newSqlConnection(consqlserver);sqlcon.Open();SqlDataAdapterda=newSqlDataAdapter(sql,sqlcon);DataSetds=newDataSet();//shengmingtry{da.Fill(ds);if(ds.Tables[0].Rows.Count1)//判断是否有符合条件的数据记录{//将获得数据源赋予数据库控件dataGridView1.DataSource=ds.Tables[0];}}catch(Exceptionex){thrownewException(ex.ToString());}finally{sqlcon.Close();sqlcon.Dispose();da.Dispose();}}结果如图所示:2.插入一行信息的代码privatevoidlabel3_Click(objectsender,EventArgse){}privatevoidbutton1_Click(objectsender,EventArgse){stringconsqlserver=DataSource=GXW-PC;InitialCatalog=liqiuyue0;IntegratedSecurity=True;//stringsql=select*from客户;SqlConnectionsqlcon=newSqlConnection(consqlserver);sqlcon.Open();try{//首先判断输入信息是否完全if(textBox1.Text==){MessageBox.Show(请输入完整的数据信息,信息提示,System.Windows.Forms.MessageBoxButtons.OK,System.Windows.Forms.MessageBoxIcon.Warning);}else{DataSetds=newDataSet();//在此判断保存重复记录问题stringstrSqls;strSqls=string.Format(SELECT*FROM用电信息where客户号='+textBox1.Text.Trim()+'and类别号='+textBox2.Text.Trim()+'and月份='+textBox3.Text.Trim()+';);//定义SQLServer连接
本文标题:数据库课程设计某电力公司收费系统
链接地址:https://www.777doc.com/doc-7277720 .html