1、 计算机科学与技术系 课 程 实 验 报 告 专业名称 级软件工程 课程名称 数据库原理与应用 项目名称 劳务代理收费系统 班 级 (2)班 学 号 姓 名 指导教师 实验日期 2015年月日 目 录 一、开发背景…………………………………………………………….3 二
2、功能描述……………………………………………………………4 三、业务流程分析………………………………………………………5 四、数据流程分析………………………………………………………6 4.1数据流程图……………………………………………………6 4.2数据字典……………………………………………………….7 五、概念模型设计………………………………………………………9 六、逻辑模型设计与优化………………………………………………10 七、物理设计和实施……………………………………………………2 八、系统测试……………………………………………………………15 九、课程设计心得体会……
3、……………………………………………23 参考文献………………………………………………………………..24 24 / 24 一、开发背景 90年代中期,人类都是通过手工写来记录劳务代理收费的,比较耗时间和精力,当要查询时还要翻看以前的记录耗费的时间相当的大,而且按某一标准去统计时很会耗费大量的人力,随着现在科技的发展运用计算机来完成这一功能是比较方便的,我们可以轻轻点一下鼠标一切都可以完成。 劳务代理收费系统是在适应市场需求的客观前提下,劳动事务代理收费管理系统是针对各种劳动人事代理机构进行相关业务管理的一套软件。系统界面简洁,菜单功能一目了然。该系统功能集基础信息设置、业务登
4、记、票据打印、数据查询和统计分析于一体。在功能方面它主要包括了基础信息(单位名称和设置、档案类别、托管类型、收费项目设置);业务登记(档案托管登记、缴费登记、档案调转注销);业务查询(档案托管查询、缴费查询、期间缴费统计、最近十日应缴费提醒、按档案类别统计、按托管方式统计、按性别统计、按政治面貌统计、按文化程度统计)。具体包含了劳动人事档案托管登记、缴费登记、缴费提醒、档案调转注销以及相关的统计查询报表和对比分析图形等,有助于各劳动事务代理机构获取决策,提高工作效率,提升服务质量。科学的管理方法会给您带来无限效益,该劳动事务管理系统将是您明智的选择。 该系统提供更方便的操作、更合理
5、的功能设置、更强大的数据查询功能,更有体贴的客户服务。 二、功能描述 经过调研及分析,劳务代理收费系统主要完成以下功能: 1.基础信息管理 (1)提供单位名称设置:合肥市江淮汽车集团。 (2)收费项目:人才流动服务费、集体户口管理费、档案管理费、档案保险费、养老保险、医疗保险、失业保险、工伤保险。 (3)档案类别管理:毕业档案。 (4)托管类型:个人托管、私营企业托管、国有企业托管。 2.业务登记 劳动人事档案托管信息管理、缴费信息管理(以报表形式输出数据)、档案调转注销。 3.业务查询 根据档案编号或身份证号查询
6、档案托管、缴费信息,按时间段呈现出缴费信息、按档案类别统计、按性别统计、按政治面貌统计、按文化程度统计(以上统计全都以报表形式输出)。 三、业务流程分析 劳务代理收费系统主要由单位的基础信息管理、业务登记、业务查询三者主要的部分组成。它可以对公司的主要信息进行查询,对登记者进行档案托管登记、缴费登记、档案调转注销的功能,最主要的是他可以根据条件进行按条件迅速查询。业务流程图如图1所示: 劳务代理收费系统 业务登记 基本信息管理 业务查询 时间
7、段缴费查询 文化程度统计 政治面貌统计 性别统计 档案类别统计 收费项目 档案类别管理 托管类型 档案托管查询 缴费信息查询 档案调转注销 缴费登记 档案托管登记 图1 劳务代理收费主要流程分析 四、数据流程分析 4.1、数据流程图 根据需求分析对劳务代理收费系统进行了数据流的分析,数据流图如图2所示。 打印 打印 查询 P001个人基本信息 D001档案托管登记 登记 被登记人 P002缴费情况 D002缴费信息登记 查询 登记
8、 是 登记 S001注销 F001档案调转注销 消除该人的所有信息 图2 数据流程图 4.2、数据字典 (1)数据流的描述 数据流编号: D001 数据流名称:档案托管登记 简述:查询登记者所有的信息 数据流来源:登记者 数据流去向:登记者的查询个人托管信息 数据流组成:姓名+档案编号+身份证号码等 数据流量:1000/天 高峰流量:3000/天 数据流编号: D002 数据流名称:缴费登记 简述:登记者缴费情况 数据流来源:缴费表 数据流去向:登记者 数据流组成:姓名+档
9、案编号+身份证号码等等 数据流量:100/天 高峰流量:500/天 (2)处理逻辑的描述 处理逻辑编号:P001 处理逻辑名称:托管查询个人信息 简述:根据条件查询登记者的信息 输入的数据流:个人信息 处理描述: 登记者根据所要查询的内容进行按条件查询之后以报表的形式输出 输出的数据流: D001托管登记信息、D002无效提示信息 处理频率: 10次/天 处理逻辑编号:P002 处理逻辑名称:缴费信息查询 简述:查询登记者在一段时间内有没有进行缴费及之前的缴费按时间顺序输出 输入的数据流:D002缴费信息 处理描
10、述:根据登记者想要查询的缴费信息按时间输出看现在是否要缴费以及下次缴费是什么时候 输出的数据流:姓名+档案编号+身份证号码等等 处理频率: 1000次/天 (3)数据存储的描述 数据存储编号:F001 数据存储名称:个人信息 简述:登记者的基本信息 数据存储组成:姓名+档案编号+身份证号码等等 关键字:档案编号号 相关联的处理:P001 数据存储编号:F002 数据存储名称:缴费信息 简述:登记登记人所缴费用的一个信息 数据存储组成:姓名+档案编号+身份证号码+家庭住址等等 关键字:档案编号编号 相关联的处理:P
11、001,P002 (4)外部实体的描述 外部实体编号:S001 外部实体名称:登记者 简 述:档案调转注销 输入的数据流:D001,,D00,2 输出的数据流: 五、概念模型设计 根据系统数据流图和数据字典,得出系统的总体概念模型(E-R)如图3所示。 图 3 系统的总体概念模型 六、逻辑模型设计和优化 根据系统的总体概念设计模型、E-R图向关系模式的转化规则和数据库的范式理论,得到系统优化后的逻辑模型,如表1~表5所示。 1、个人信息表 表1 个人信息表 字段名 类型 长度 约束 姓名 varchar 50
12、 Not null 性别 Varchar 50 Not null 身份证号 Varchar 50 Not null 联系方式 Varchar 50 null 托管方式 Varchar 50 null 档案编号 Varchar 50 Not null 档案类型 Varchar 50 Null 出生日期 Varchar 50 Null 文化程度 Varchar 50 Null 政治面貌 Varchar 50 Null 原单位 Varchar 50 Null 登记日期 Varchar 50 Null 家庭住址
13、 Varchar 50 Null 参加工作时间 Varchar 50 Null 办理退休时间 Varchar 50 Null 托管起始日期 Varchar 50 Null 托管截止日期 Varchar 50 Null 备注 Varchar 100 Null 2、缴费表 表2缴费表 字段名 类型 长度 约束 缴费日期 Varchar 50 Null 缴费月数 Varchar 50 Not null 缴费金额 Varchar 50 Not null 收费员 Varchar 50 Null 备注 Va
14、rchar 50 Null 姓名 Varchar 50 Not null 下次缴费日期 Varchar 50 Null 3、个人缴费表 表3个人缴费表 字段名 类型 长度 约束 姓名 Varchar 50 Not null 缴费项目 Varchar 50 Not null 金额 Varchar 50 Not null 4、缴费项目表 表4缴费项目表 字段名 类型 长度 约束 ID Varchar 50 null 交费项目 Varchar 50 null 费用 Varchar 50 nul
15、l 备注 Varchar 50 null 5、托管类型表 表5托管类型表 字段名 类型 长度 约束 ID Varchar 50 null 托管类型 Varchar 50 null 备注 Varchar 50 null 七、物理设计和实施 得到系统逻辑模型后,就该进行数据库的物理设计和实施数据库了,物理设计主要是要确定数据库的存储路径、存储结构以及如何建立索引等,可以采用系统的默认设置。数据库实施主要包括在具体的DBMS中创建数据库和表的过程,本设计所选用的
16、DBMS为SQL SERVER2010,有关创建数据库和关系表的SQL语句如下所示: (1)创建数据库 /* DataBase:劳务代理收费系统, 创建数据库,数据库名称为劳务代理收费系统*/ /*==============================================================*/ create database 劳务代理收费系统 go (2)创建表 /*==============================================================*/ /* Table:个人信息表 */ /*===
17、/ create table 个人信息表( 姓名 varchar (50) Not null 性别 varchar (50) Not null 身份证号 varchar (50) Not null 联系方式 varchar (50) Null 托管方式 varchar (50) Null 档案编号 varchar (50) Not null 档案类型 varchar (50) Null 出生日期 varchar
18、50) Null 文化程度 varchar (50) Null 政治面貌 varchar (50) Null 原单位 varchar (50) Null 登记日期 varchar (50) Null 家庭住址 varchar (50) Null 参加工作时间 varchar (50) Null 办理退休时间 varchar (50) Null 托管起始日期 varchar (50) Null 托管截止日期 varchar (50) Null 备注 varchar (1000) Null constraint
19、 PK_BORROWREC primary key (ReaderId, TitleId, RecID) /*主键约束*/ ) go /*==============================================================*/ /*Index: /*==============================================================*/ create 缴费表( ReaderId ) go /*=============================================
20、/ /* Table:缴费表,显示登记人所缴费的情况的表 */ /*==============================================================*/ create table 缴费表 ( 缴费日期 varchar (50) Null 缴费月数 varchar (50) Not null 缴费金额 varchar (50) Not null 收费员 varchar (50) Null 备注 varchar (50) Null 姓名 varchar (50) N
21、ot null 下次缴费日期 varchar (50) Null constraint PK_PUBLISHER primary key (PubId) /*主键约束*/ ) go /*==============================================================*/ /* Table:个人缴费表,个人缴费表表*/ /*==============================================================*/ create table 个人缴费表( 姓名 varchar (
22、50) Not null 缴费项目 varchar (50) Not null 金额 varchar (50) Not null constraint PK_READER primary key (ReaderId) /*主键约束*/ ) go /*==============================================================*/ /* Table:缴费项目表,缴费项目表 */ /*==============================================================*/
23、 create table 缴费项目表( ID varchar (50) Null 交费项目 varchar (50) Null 费用 varchar (50) Null 备注 varchar (50) Null constraint PK_TITLES primary key (TypeId, PubId, TitleId) /*主键约束*/ ) go /*==============================================================*/ /* Index: 托管类型表:托管类型 ID属性上创
24、建索引 */ /*==============================================================*/ /* Index:托管类型:托管类型 ID属性上创建索引 */ /*==============================================================*/ /* Table:托管类型表,托管类型表表 */ /*==============================================================*/ create table 托管类型表( ID va
25、rchar (50) Null 托管类型 varchar (50) Null 备注 varchar (50) Null constraint PK_TYPE primary key (TypeId) /*主键约束*/ ) Go 八、代码及结果 1.登录界面 图4 登录页面 代码如下: private void button1_Click(object sender, EventArgs e){ try{ if (textBox1.
26、Text == ""){ //判断用户是否输入用户名 MessageBox.Show("用户名不能为空"); } else{ if (textBox2.Text == ""){ MessageBox.Show("密码不能为空?"); //判断用户是否输入了密码 } else{ SqlConnection con = DBCon.createCon(
27、); con.Open(); SqlCommand cmd = new SqlCommand("select count(*) from 用户表 where 用户名?='" + textBox1.Text + "' and 密码='" + textBox2.Text + "'", con); int i = Convert.ToInt32(cmd.ExecuteScalar()//获取返回值 if (i > 0) {
28、 if (comboBox1.Text == "") { MessageBox.Show("请选择登录界面"); comboBox1.Focus(); return; } else if (comboBox1.Text == "普通用户使用界面"){
29、 frmMain main = new frmMain(); main.adminname = textBox1.Text; main.admintime = DateTime.Now.ToShortDateString(); main.Show(); this.Hide
30、); //隐藏登录窗体 } else if(comboBox1.Text=="后台数据维护界面"){ ptMain ptmain = new ptMain(); ptmain.adminname = textBox2.Text; ptmain.Show();
31、 this.Hide(); } } else{ MessageBox.Show("用户名或者密码错误!"); //弹Ì出提示 } } } } catch (Exc
32、eption ex){ MessageBox.Show(ex.ToString()); } } 2.基本信息管理 图5 基本信息管理的缴费项目页面 代码如下: private void 缴费项目BindingNavigatorSaveItem_Click(object sender, EventArgs e) { this.Validate(); this.缴费项目?BindingSource.EndEdit(); t
33、his.tableAdapterManager.UpdateAll(this.劳务代理收费系统DataSet); } 3.档案托管登记 图6 档案托管登记页面 代码如下: private void button1_Click(object sender, EventArgs e){ SqlConnection con = DBCon.createCon(); con.Open(); string cmd1 = "insert into 个人信息表(姓名,性别,身
34、份证号,联系方式,托管方式,档案编号,档案类型,出生日期,文化程度,政治面貌,原单位,登记日期,家庭住址,参加工作时间,办理退休时间,托管起始日期,托管截止日期,备注 ) values('" + textBox1.Text + "','" + comboBox2.Text + "','" + textBox2.Text + "','" + textBox4.Text + "','" + comboBox6.Text + "','" + textBox6.Text + "','" + comboBox10.Text + "','" + dateTimePicker2.Text + "',
35、'" + comboBox8.Text + "','" + comboBox3.Text + "','" + textBox3.Text + "','" + dateTimePicker1.Text + "','" +textBox5.Text + "','" + dateTimePicker6.Text + "','" + dateTimePicker3.Text + "','" +dateTimePicker4.Text + "','" + dateTimePicker5.Text + "','" + textBox7.Text + "')"; SqlCommand
36、sql = new SqlCommand(cmd1, con); sql.ExecuteNonQuery(); con.Close(); MessageBox.Show("成功"); } 4.缴费登记 图7 缴费登记页面 private void button1_Click(object sender, EventArgs e){ SqlConnection con = DBCon.createCon(); con.Open(); string cmd1= "insert
37、 into 缴费表(缴费日期,缴费月数,缴费金额,收费员,备注,姓名,下次缴费日期²) values('" + dateTimePicker1.Text + "','" + textBox11.Text + "','" + textBox9.Text + "','" + comboBox2.Text + "','" + textBox13.Text + "','" + textBox8.Text + "','" + dateTimePicker2.Text + "')"; SqlCommand sql = new SqlCommand(cmd1, con); s
38、ql.ExecuteNonQuery(); con.Close(); MessageBox.Show("成功"); } private void button2_Click(object sender, EventArgs e){ textBox1.Text = ""; } private void 缴费登记_Load(object sender, EventArgs e){ } private void s
39、how(){ string commandString = "select * from 个人信息表 where 档案编号='" + textBox1.Text + "'"; SqlConnection con = DBCon.createCon(); con.Open(); SqlCommand cmd = new SqlCommand(commandString, con); SqlDataReader re = cmd.ExecuteReader();
40、 while (re.Read()){ textBox8.Text = re[0].ToString(); comboBox1.Text = re[1].ToString(); textBox5.Text = re[2].ToString(); textBox7.Text = re[3].ToString(); comboBox3.Text = re[4].ToString();
41、 dateTimePicker3.Text = re[15].ToString(); } } int Money = 0; private void textBox1_KeyPress(object sender, KeyPressEventArgs e){ if (e.KeyChar == 13){ show(); try{ string commandString =
42、 "select * from 个人缴费项目表 where 姓名= '"+ textBox8.Text +"'"; SqlConnection con = DBCon.createCon(); con.Open(); SqlDataAdapter DataAdapter = new SqlDataAdapter(commandString, con); DataSet DataSet = new DataSet();
43、 DataAdapter.Fill(DataSet, commandString); DataTable datatable = DataSet.Tables[0]; dataGridView1.DataSource = datatable; dataGridView1.Columns[0].Visible = false; SqlCommand cmd=new SqlCommand (co
44、mmandString ,con); SqlDataReader re = cmd.ExecuteReader(); while (re.Read()){ Money += int.Parse(re[2].ToString()); } con.Close(); }catch{} } }
45、 private void textBox11_KeyPress(object sender, KeyPressEventArgs e){ if (e.KeyChar == 13){ textBox9.Text = (Money * (int.Parse(textBox11.Text))).ToString(); } } } } 5.档案托管查询 图8 档案托管查询界面 private void label9_Click(object sender, EventA
46、rgs e) { } private void label3_Click(object sender, EventArgs e) { } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { } private void label4_Click(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) {
47、 if (comboBox2.Text == "是") { SqlConnection con = DBCon.createCon(); con.Open(); string commandString = "delete from 个人信息表 where 档案编号 like '" + textBox1.Text + "' "; SqlCommand sql = new SqlCommand(commandString, con); sql.ExecuteNonQuery();
48、 con.Close(); MessageBox.Show("成功"); } } private void button2_Click(object sender, EventArgs e){ if (MessageBox.Show("确定退出本界面吗?", "提示?"MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk) == DialogResult.OK) { this.Close();//退出界面?
49、 } } private void textBox1_TextChanged(object sender, EventArgs e){} } } 6.政治面貌查询 图9政治面貌查询界面 private void button1_Click(object sender, EventArgs e){ SqlConnection con = DBCon.createCon(); con.Open(); if (radioButton1.Checked){ string commandS
50、tring = "select * from 个人信息表where 政治面貌 like '中共党员' "; SqlDataAdapter DataAdapter = new SqlDataAdapter(commandString, con); DataSet DataSet = new DataSet(); DataAdapter.Fill(DataSet, commandString); DataTable datatable = DataSet.Tables[0]; dataGridV
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818