数据库课程设计电力公司收费系统.docx
《数据库课程设计电力公司收费系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计电力公司收费系统.docx(29页珍藏版)》请在三一办公上搜索。
1、数据库课程设计电力公司收费系统数据库课程设计题目某电力公司收费管理信息系统专业班级姓名学号完成日期-12-18一、课程实验目的1. 经过课程设计,使学生进一步巩固所学的知识,考查学生对数据库理论及知识的理解能力和综合运用能力;2. 培养学生自主学习、独立思考的能力,学会查找资料并善于分 析资料的能力;3. 培养学生独立设计、独立调试程序的能力;4. 培养学生初步的软件设计能力,形成良好的编程风格-课程实验要求-、(28)某电力公司收费管理信息系统1. 实现客户信息、用电类型(类别号、类别名、电价)及业务 员管理;2. 实现客户用电信息管理(客户号、月份、用电类别号、用电 度数);3. 实现客户
2、费用管理(客户号、月份、费用、收费标志),收费标志的默认值为未收;4. 实现收费登记(客户、月份、应收费用、实收费用、业务员),并自动修改收费标志(用触发器实现);5. 创立触发器,实现收费时自动更加应收费用和实收费用,计算本次结余,然后修改客户信息表中的结余金额;6. 创立存储过程统计指定月份应收费用和实收费用;7. 创立存储过程查询指定月份未交费的用户信息,以便崔费;8. 创立规则使得月份符合格式“XXXX年XX月”,并邦定 到表中相应字段;9. 建立表间关系。三、课程设计要求1. 在对数据库理论及知识理解的基础上;重点是针对具体的实际 问题选择并设计合适的数据库表加以应用,并在此基础上完
3、成 相关的算法与程序;2. 给出系统的概要设计、详细设计;3. 完成数据流程图,E-R关系图,数据库表、程序流程图、功能 模块图的设计、对功能编程加以实现;4. 设计必要的视图、触发器、存储过程;5. 使用相关的编程工具(C#.NET)和ORACLE编写代码实现设计 的数据库系统;6. 完成规范化的课程设计报告的编写;7. 每个同学完成一个题目,题目由老师安排。四、实验环境VS,SQLsever五、课程设计过程1. 根据题目写出关系模型如下: 客户(客户号、客户名、地址、联系方式) 用电类型(类别号、编号、类别名、电价) 员工(员工号、姓名、性别、联系方式) 用电信息(客户号、月份、类别号、用
4、电度数) 费用管理(客户号、月份、费用、收费标志) 收费登记(客户号、月份、应收费用、实收费用、员工号) 结余登记(客户号、月份、应收费用、实收费用、结余费用)2、根据关系模型绘制出ER模型为:3、创立表1.客户表Create table 客户客户号 char(5) PRIMARY KEY,客户名char(4),地址 varchar(50),联系方式char(10);插入数据:Insert into 客户 values(00001,张三,市南区,0000000);Insert into 客户 values(00002,李四,黄岛区,0000002);Insert into 客户 values(
5、00003,王五,崂山区,0000003);Insert into 客户 values(00004,赵兰,城阳区,0000004);Insert into 客户 values(00005,李青,黄岛区,0000005);Insert into 客户 values(00006,张倩,市南区,0000001);2.用电类型表Create table用电类型(类别号 char(10) PRIMARY KEY,类别名 varchar(50), 电价 money);插入数据:Insert into 用电类型 values(ABC,家庭,1.00);Insert into 用电类型 values(ABD,
6、政府,2.00);Insert into 用电类型 values(ABE,工厂,1.50);Insert into 用电类型 values(ABF,学校,2.50);Insert into 用电类型 values(ABG,医院,0.50);3. 员工表Create table 员工(员工号 char (5) PRIMARY KEY,姓名 char(20),性别 char(10),联系方式char(20);插入数据:Insert into 员工 values(12345,李丽,女,1230000);Insert into 员工 values(12346,王华,男,1230002);Insert
7、into 员工 values(12347,张悦,女,1230003);4. 用电信息表Create table用电信息(客户号char(5),类别号 char(10) ,月份date ,用电度数char(8),primary key (客户号,类别号,月份),foreign key (客户号)references 客户(客户号),foreign key (类别号)references用电类型(类别号);Insert into 用电信息 values(00001,ABC, -12-01,100);Insert into 用电信息 values(00001,ABE, -12-01,220);Ins
8、ert into 用电信息 values(00002,ABC, -12-01,110);Insert into 用电信息 values(00003,ABE, -11-01,125);Insert into 用电信息 values(00003,ABE, -12-01,105);Insert into 用电信息 values(00004,ABC, -12-01,200);Insert into 用电信息 values(00005,ABC, -12-01,102);Insert into 用电信息 values(00006,ABC, -12-01,100);5. 费用管理Create table费用
9、管理(客户号char(5),月份date ,费用 money,收费标志varchar(50),PRIMARY KEY (客户号,月份),foreign key (客户号)references 客户(客户号);6. 收费登记Create table收费登记(客户号char(5),月份date ,应收费用money,实收费用money,员工号char(5),PRIMARY KEY (客户号,月份),foreign key (员工号)references员工(员工号) );7. 结余登记Create table结余登记(客户号 char(5),月份 date ,应收费用 money,实收费用 mon
10、ey,结余费用 money,PRIMARY KEY (客户号,月份));4. 创立触发器触发器1:计算费用create trigger change_trigger1on用电信息for insertasinsertinto费用管理(客户号,月份,费用)SELECT inserted.客户号,inserted.月份,inserted.用电度数*(select 电 价from用电类型,inserted where用电类型.类别号=inserted.类别 号)FROM inserted;触发器2:未收标志create trigger change_trigger on 费用管理for insert
11、asupdate费用管理set收费标志=未收;触发器3:已收标志 create trigger change_trigger3on收费登记for updateasupdate费用管理set收费标志=已收from 费用管理,insertedwhere费用管理.客户号=inserted.客户号and费用管理.月份=inserted.月份;触发器4:结余登记create trigger change_trigger4on收费登记for updateasinsert into 结余登记select inserted.客户号,inserted.月份,inserted.应收费用,inserted.实 收费
12、用,inserted.实收费用-inserted.应收费用from inserted;5. 建立存储存储过程1:应收费用,实收费用create procedure ch_procedure01month dateasbeginselect月份,应收费用,实收费用from收费登记where收费登记.月份=monthendgo存储过程2:未收费create procedure ch_procedure02month dateasbeginselect客户号,月份,结余费用from结余登记where结余登记.月份=monthorder by结余费用endgo6. 表间关系关系田“关孚图.位置呈电力食
13、可收我管理系脱中、-Cloo.l)-六、代码实现过程1. 显示窗体内的内容及表的内容private void Form5_Load(object sender, EventArgs e)stringconsqlserver=DataSource=GXW-PC;InitialCatalog=liqiuyue0;Integrated Security=True;/stringconsqlserver=DataSource=CHEN-PC;InitialCatalog=rl;Integrated Security=True;定义连接数据源string sql = select * from 用电信息
14、;SqlConnection sqlcon = new SqlConnection(consqlserver);sqlcon.Open();SqlDataAdapter da = new SqlDataAdapter(sql, sqlcon);DataSet ds = new DataSet();/shengmingtryda.Fill(ds);if (ds.Tables0.Rows.Count 1)/判断是否有符合条件的数据记录将获得数据源赋予数据库控件dataGridView1.DataSource = ds.Tables0;catch (Exception ex)throw new Ex
15、ception(ex.ToString();finallysqlcon.Close();sqlcon.Dispose();da.Dispose();结果如图所示:0.用电信息客户号类别号月份用电度数客户导000100001000020002OOOC3Q000300003类别号kBCkBCATE顷ACKBCAIEMEIP月份013/9/12013/12/12013/3/32013/10/12013/12/12013/S/102Q13/11/12013/12/1用目LOOLOO400150190120L25105增加修改4T刑除1 2. 插入一行信息的代码private void label3_C
16、lick(object sender, EventArgs e)private void button1_Click(object sender, EventArgs e)string consqlserver = Data Source=GXW-PC;InitialCatalog=liqiuyue0;Integrated Security=True;/ string sql = select * from 客户;SqlConnection sqlcon = new SqlConnection(consqlserver); sqlcon.Open();try/首先判断输入信息是否完全if (t
17、extBox1.Text =)MessageBox.Show(请输入完整的数据信息”,”信息提示”,System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning); else DataSet ds = new DataSet();/在此判断保存重复记录问题string strSqls;strSqls = string.Format(SELECT * FROM 用电信息 where 客户号=+ textBox1.Text.Trim() + and 类别号=+ textBox2.Text
18、.Trim() + and 月份=+ textBox3.Text.Trim() + ;);定义SQL Server连接对象SqlDataAdapter da = new SqlDataAdapter(strSqls, sqlcon);da.Fill(ds);if (ds.Tables0.Rows.Count 1)MessageBox.Show(已经存在,信息提示, System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);elsestrSqls = insert into 用电信息
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 电力 公司 收费 系统
链接地址:https://www.31ppt.com/p-5306450.html