




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 沈阳理工大学课程设计专用纸 No22成 绩 评 定 表学生姓名 班级学号 专 业网络工程课程设计题目社会保障管理系统评语组长签字:成绩日期 20 年 月 日课程设计任务书学 院信息学院专 业网络工程学生姓名班级学号课程设计题目社会保障管理系统实践教学要求与任务:1. 任务描述在主控窗体中(MID窗体)点击各菜单实现管理和查询企业员工的社保信息。具体功能包括:养老保险信息:用于设置员工养老保险基础信息,包括职员编号、开始缴费时间、职工月缴费基数、人员类别(公务员,工人)、备注失业保险信息:用于设置员工失业保险基础信息,包括职员编号、个人缴费起始时间、人员类别(公务员,工人)、累计缴费时间、备注
2、。医疗保险信息:用于设置员工医疗保险基础信息,包括职员编号、保险名称、缴费起始时间、缴费终止时间、定点医疗机构1、定点医疗机构2、备注等。2. 具体要求(1)打印报表。(2)显示参加保险的人员清单。(3)实现条件查询和统计查询。工作计划与进度安排:20周第一天:设计数据库,编写应用程序代码。20周第二天:撰写课程设计报告,答辩。指导教师: 201 年 月 日专业负责人:201 年 月 日学院教学副院长:201 年 月 日摘 要数据库的设计是指对一个给定的应用环境,构造数据库模式,建立数据库及其应用系统,满足各种用户需求。作为信息资源开发、管理和服务的一种有效的手段,数据库技术的应用已越来越广泛
3、,从小型的单项事务处理系统到大型的信息系统大都用先进的数据库技术来保持系统数据的安全性、完整性和共享性。对一个实际的系统来说,数据库表的设计在遵循数据库理论的同时,必须能用开发工具来实现用户在各方面提出的功能要求。本社会保障管理系统是经过需求分析、通过概念结构设计与逻辑结构设计等过程后完成的一个小型管理系统,包括对用户养老保险、医疗保险、失业保险的各种基本信息的增、删、改、查等功能。同时对不同的人员授予不同的权利,保证了数据库的安全性。关键词:社会保障管理,需求分析,概念结构设计,逻辑结构设计 目 录1 系统功能概述11.1 数据存储11.2 数据操纵11.3 系统功能结构12数据库设计22.
4、1 需求分析22.2 E-R模型22.3 关系模型42.4 表结构设计43系统各功能模块的详细设计63.1 用户信息管理63.2 养老保险信息管理73.3 条件查询和统计查询83.4 报表功能103.5 关键代码114设计总结和体会22参考文献22沈阳理工大学1 系统功能概述1.1 数据存储系统采用c#语言编写前台管理界面,使用sql数据库存储后台数据。软件通过调用存储过程将用户在前台输入的数据存入数据库中对应的表中。数据库中建立的表有:账号信息表Manager、用户信息表UserInfo、保险信息表InsuranceInfo和用户保险信息表UIInfo。1.2 数据操纵数据操纵即对数据库中数
5、据进行增、删、改、查等操作。软件通过tsql查询语言实现对表中信息的增加、删除、修改、查询等操作,并将处理结果在dataGridView控件中显示出来。社会保障管理系统1.3 系统功能结构条件查询以及统计查询用户失业保险信息管理用户医疗保险信息管理用户养老保险信息管理保险信息管理用户信息管理图1系统功能结构2数据库设计2.1 需求分析(1)信息要求 本系统实现了以下信息: 基本信息模块:包括用户信息、保险信息、用户养老保险信息、用户医疗保险信息、用户失业保险信息。 管理信息模块:用户信息管理、保险信息管理、用户养老保险信息管理、用户医疗保险信息管理、用户失业保险信息管理。(2)处理要求 要求本
6、系统能够投入实际的使用并且满足基本的功能要求。要求具有较高的可靠性、安全性和易维护性,具有较高的可移植性。 具体要求如下: 1)打印报表,显示参加保险的人员清单。2)实现对用户信息、保险信息、用户养老保险信息、用户医疗保险信息和用户失业保险信息的录入、修改、删除等基本操作3)实现条件查询和统计查询。 (3)安全性和完整性要求 该系统对不同人员进行了不同的权限设置:管理员可以查看社会保障数据库中的任何信息、普通用户只能查询及修改个人信息。账户2.2 E-R模型类型密码账号图2 账户E-R图用户性别姓名编号图3用户E-R图保险名称编号图4 保险E-R图职员编号结束时间保险编号开始时间定点机构2定点
7、机构1参与缴费基数缴费基数备注图5 关系“参与”E-R图保险参与用户 n m图6 整体E-R图2.3 关系模型账户(账号,密码,类型)用户(编号,姓名,性别)保险(编号,名称)参与(用户编号,保险编号,开始时间,结束时间,累计时间,缴费基数,定点机构1,定点机构2,备注)2.4 表结构设计(1) 账户表结构编号列名类型说明1账号varchar(10)主键2密码varchar(10)非空3类型varchar(10)非空use Ssmanagerif exists(select *from sysobjects where name='Manager')drop table Man
8、ager-账号表结构create table Manager(Man_account varchar(10) not null primary key ,-账号Man_password varchar(10) not null , -密码Man_category varchar(10) not null, -类型)(2) 用户表结构编号列名类型说明1职员编号varchar(10)主键2职员名称varchar(10)非空3职员类别varchar(10)非空4职员性别char(4)为 '男'或'女'if exists(select *from sysobjects
9、where name='UserInfo')drop table UserInfo-用户表结构create table UserInfo(UInfo_no varchar(10) primary key, -职员编号UInfo_name varchar(10) not null, -职员名称UInfo_sex char(4) constraint ck_sex check (UInfo_sex in('男','女'),UInfo_category varchar(10), -职员类别)(3) 保险表结构编号列名类型说明1保险编号varchar(1
10、0)主键2保险名称varchar(10)非空if exists(select *from sysobjects where name='InsuranceInfo')drop table InsuranceInfo-保险表结构create table InsuranceInfo(IInfo_no varchar(10) primary key, -保险编号IInfo_name varchar(10) not null unique, -保险名称)(4) 用户参与保险表结构编号列名类型说明1职员编号varchar(10)主键2保险编号varchar(10)主键3开始时间datet
11、ime4结束时间datetime5累计时间int6缴费基数int7定点机构1varchar(10)8定点机构2varchar(10)9备注varchar(20)if exists(select *from sysobjects where name='UIInfo')drop table UIInfo-用户参与保险表结构create table UIInfo(UInfo_no varchar(10), -职员编号IInfo_no varchar(10), -保险编号constraint pk_no primary key(UInfo_no,IInfo_no),-设置职员编号和保
12、险编号为主键UIInfo_stime datetime , -开始时间UIInfo_etime datetime , -结束时间UIInfo_ctime int, -累计时间UIInfo_pbase int , -缴费基数UIInfo_state1 varchar(10), -定点机构1UIInfo_state2 varchar(10), -定点机构2UIInfo_note varchar(20), -备注)3系统各功能模块的详细设计3.1 用户信息管理利用datagridview实现数据库表数据的显示。使用SqlDataAdapter和select查询表中数据并将返回的table表显示在da
13、tagridview控件中,使用insert into语句将数据插入表中。图7 社会保障管理系统界面 图8 用户信息添加界面图9 用户信息删除界面3.2 养老保险信息管理利用datagridviewl实现数据库表数据的显示。使用SqlDataAdapter和select查询表中数据并将返回的table表显示在datagridview控件中,使用insert into语句将数据插入养老保险信息表中。并使用update语句修改表中数据,使用delete删除表中一行数据。图10 养老保险信息管理界面图11 养老保险信息添加界面图12 养老保险信息删除界面3.3 条件查询和统计查询利用复选框实现条件选
14、择查询。使用select where and语句按条件查询表中数据,并利用datagridview实现数据库表数据的显示。使用count(*)统计记录条数。图13 条件查询界面图14 统计查询界面3.4 报表功能利用reportViewer控件实现报表功能。使用数据集dataset控件连接数据库并绑定查询表,将数据集作为数据源连接到reportViewe控件,实现报表打印功能。图15 统计查询界面3.5 关键代码/创建数据库工具类,在构造函数中连接数据库class SqlTools string mystr; SqlConnection myconn = new SqlConnection()
15、; /创建一个SqlConnection对象 public SqlTools() mystr ="server =(local); database = Ssmanager; integrated security=SSPI" /建立连接字符串 myconn.ConnectionString = mystr; myconn.Open(); /用Open方法打开连接 /编写登录验证算法,利用SqlCommand和SqlDataReader实现对传入参数的查询数据库/并判断正误。 public bool Login(string account, string password
16、, string category)/登录验证 string str ="select* from Manager where Man_account=账户 and Man_password= 密码 and Man_category= 类型" SqlCommand cmd = new SqlCommand(); cmd.Parameters.Add("账户", SqlDbType.VarChar).Value = account; cmd.Parameters.Add("密码", SqlDbType.VarChar).Value =
17、password; cmd.Parameters.Add("类型", SqlDbType.VarChar).Value = category; cmd.CommandText = str; cmd.Connection = myconn; SqlDataReader reader; reader = cmd.ExecuteReader(); if (reader.Read() UserInfo.Account = Convert.ToString(reader"Man_account"); UserInfo.Category = Convert.ToSt
18、ring(reader"Man_category"); reader.Close(); return true; else reader.Close(); return false; /编写注册算法,实现对传入参数利用SqlCommand和存储过程实现数据的录入。 public bool Register(string account, string password, string category)/注册 SqlCommand cmd = new SqlCommand("dbo.AddManagerInfo", myconn); int n=0; t
19、ry cmd.CommandType = CommandType.StoredProcedure; SqlParameter sqlparme; sqlparme = cmd.Parameters.Add("account", SqlDbType.VarChar); sqlparme.Direction = ParameterDirection.Input; sqlparme.Value = account; sqlparme = cmd.Parameters.Add("password", SqlDbType.VarChar); sqlparme.Di
20、rection = ParameterDirection.Input; sqlparme.Value = password; sqlparme = cmd.Parameters.Add("category", SqlDbType.VarChar); sqlparme.Direction = ParameterDirection.Input; sqlparme.Value = category; n = cmd.ExecuteNonQuery(); catch (Exception ex) MessageBox.Show(ex.ToString(); finally if (
21、cmd != null) cmd.Dispose(); if (n > 0) return true; else return false; public void Close()/关闭连接 if (myconn != null) myconn.Close(); public void InsurancePrint(DataTable ds)/显示保险信息 SqlDataAdapter da = new SqlDataAdapter("select * from InsuranceInfo", mystr); da.Fill(ds); public bool Insu
22、ranceUpdate(string no,string name)/修改保险信息 SqlCommand cmd = new SqlCommand(); int n = 0; try cmd.CommandText = "UPDATE InsuranceInfo set IInfo_name='" + name + "' where IInfo_no='" + no + "'" cmd.Connection = myconn; n = cmd.ExecuteNonQuery(); catch (Exce
23、ption ex) MessageBox.Show(ex.ToString(); finally if (cmd != null) cmd.Dispose(); if (n > 0) return true; else return false; public void InsuranceRead(stringstr)/查询保险信息 int n = 0; SqlCommand cmd = new SqlCommand("select count(*)种数 from InsuranceInfo", myconn); SqlDataReader reader; reade
24、r = cmd.ExecuteReader(); if (reader.Read() n = Convert.ToInt32(reader"种数"); reader.Close(); str=new stringn; /MessageBox.Show(Convert.ToString(n); if (n > 0) for (int i = 1; i < n+1; i+) string st = "select* from InsuranceInfo where IInfo_no=编号" SqlCommand cmd2 = new SqlCom
25、mand(); cmd2.Parameters.Add("编号", SqlDbType.VarChar).Value = Convert.ToString(i); cmd2.CommandText = st; cmd2.Connection = myconn; / MessageBox.Show(Convert.ToString(i); SqlDataReader reader2; reader2 = cmd2.ExecuteReader(); if (reader2.Read() stri= Convert.ToString(reader2"IInfo_name
26、"); MessageBox.Show("afda"); reader2.Close(); else MessageBox.Show("a"); public void UserInfoPrint(ref string str1, ref string str2, ref string str3)/显示用户信息 string str = "select* from UserInfo where UInfo_no=编号 " SqlCommand cmd = new SqlCommand(); cmd.Parameters.Ad
27、d("编号", SqlDbType.VarChar).Value = UserInfo.Id; cmd.CommandText = str; cmd.Connection = myconn; SqlDataReader reader; reader = cmd.ExecuteReader(); if (reader.Read() str1 = Convert.ToString(reader"UInfo_name"); str2 = Convert.ToString(reader"UInfo_sex"); str3 = Convert.
28、ToString(reader"UInfo_category"); reader.Close(); else reader.Close(); public void UserInsInfoPrint(DataTable ds)/显示用户保险信息 SqlDataAdapter da = new SqlDataAdapter("select InsuranceInfo.IInfo_name 已投保险名称,UIInfo.UIInfo_stime 开始时间,UIInfo.UIInfo_etime 结束时间,UIInfo.UIInfo_ctime 持续时间,UIInfo.U
29、IInfo_pbase 月缴费基数,UIInfo.UIInfo_state1 定点机构1,UIInfo.UIInfo_state2 定点机构2,UIInfo.UIInfo_note 备注 from UserInfo left join UIInfo on UIInfo.UInfo_no = UserInfo.UInfo_no left join InsuranceInfo on UIInfo.IInfo_no = InsuranceInfo.IInfo_no where UserInfo.UInfo_no = " + UserInfo.Id.ToString(), mystr); d
30、a.Fill(ds); public bool UserInfoDelete(string no)/删除用户信息 SqlCommand cmd = new SqlCommand(); int n = 0; try cmd.Connection = myconn; cmd.CommandText = "delete from UserInfo where UInfo_no='" + no + "'" n = cmd.ExecuteNonQuery(); catch (Exception ex) MessageBox.Show(ex.ToSt
31、ring(); finally if (cmd != null) cmd.Dispose(); if (n > 0) return true; else return false; public bool UserInfoCheck(string no)/校验用户信息 string str = "select* from UserInfo where UInfo_no=编号 " SqlCommand cmd = new SqlCommand(); cmd.Parameters.Add("编号", SqlDbType.VarChar).Value =
32、 no; cmd.CommandText = str; cmd.Connection = myconn; SqlDataReader reader; reader = cmd.ExecuteReader(); if (reader.Read() UserInfo.Id = no; reader.Close(); return true; else reader.Close(); return false; public void EinsurancePrint(DataTable ds)/显示养老保险信息 SqlDataAdapter da = new SqlDataAdapter("
33、;select * from Einsurance", mystr); da.Fill(ds); public void mainQuery(DataTable ds, string str)/保险条件查询 SqlDataAdapter da = new SqlDataAdapter("select UserInfo.UInfo_no 编号,UserInfo.UInfo_name 姓名,UserInfo.UInfo_sex 性别,UserInfo.UInfo_category 类别,InsuranceInfo.IInfo_name 保险名称 from UserInfo le
34、ft join UIInfo on UIInfo.UInfo_no = UserInfo.UInfo_no left join InsuranceInfo on UIInfo.IInfo_no = InsuranceInfo.IInfo_no where " + str, mystr); da.Fill(ds); public void mainStat1(ref int num1, ref int num2, ref int num3)/保险统计查询 string str1 = "select count(*) from UserInfo " string st
35、r2 = "select count(*) from UserInfo where UInfo_sex='男'" string str3 = "select count(*) from UserInfo where UInfo_sex='女'" SqlCommand cmd = new SqlCommand(); cmd.Connection = myconn; cmd.CommandText = str1; num1 = (int)cmd.ExecuteScalar(); cmd.CommandText = str2;
36、num2 = (int)cmd.ExecuteScalar(); cmd.CommandText = str3; num3 = (int)cmd.ExecuteScalar(); public void mainStat2(ref int num,string str)/保险统计查询 string str1 = "select count(*) from UserInfo left join UIInfo on UIInfo.UInfo_no = UserInfo.UInfo_no left join InsuranceInfo on UIInfo.IInfo_no = Insura
37、nceInfo.IInfo_no where " + str; SqlCommand cmd = new SqlCommand(); cmd.Connection = myconn; cmd.CommandText = str1; num = (int)cmd.ExecuteScalar(); public void Equery(DataTable ds,string str)/养老保险条件查询 SqlDataAdapter da = new SqlDataAdapter("select UserInfo.UInfo_no 编号,UserInfo.UInfo_name 姓
38、名,UserInfo.UInfo_sex 性别,UserInfo.UInfo_category 类别,InsuranceInfo.IInfo_name 保险名称,UIInfo.UIInfo_stime 开始时间,UIInfo.UIInfo_etime 结束时间,UIInfo.UIInfo_ctime 持续时间,UIInfo.UIInfo_pbase 月缴费基数,UIInfo.UIInfo_state1 定点机构1,UIInfo.UIInfo_state2 定点机构2,UIInfo.UIInfo_note 备注 from UserInfo left join UIInfo on UIInfo.U
39、Info_no = UserInfo.UInfo_no left join InsuranceInfo on UIInfo.IInfo_no = InsuranceInfo.IInfo_no where InsuranceInfo.IInfo_name='养老保险'" + str, mystr); da.Fill(ds); public void Estst1(ref int num1,ref int num2,ref int num3,ref int num4)/养老保险统计查询 string str1 = "select count(*) from Us
40、erInfo left join UIInfo on UIInfo.UInfo_no = UserInfo.UInfo_no left join InsuranceInfo on UIInfo.IInfo_no = InsuranceInfo.IInfo_no where InsuranceInfo.IInfo_name='养老保险' and UserInfo.UInfo_sex='男'" string str2 = "select count(*) from UserInfo left join UIInfo on UIInfo.UInfo
41、_no = UserInfo.UInfo_no left join InsuranceInfo on UIInfo.IInfo_no = InsuranceInfo.IInfo_no where InsuranceInfo.IInfo_name='养老保险' and UserInfo.UInfo_sex='女'" string str3 = "select count(*) from UserInfo left join UIInfo on UIInfo.UInfo_no = UserInfo.UInfo_no left join Insur
42、anceInfo on UIInfo.IInfo_no = InsuranceInfo.IInfo_no where InsuranceInfo.IInfo_name='养老保险' and UserInfo.UInfo_category='工人'" string str4 = "select count(*) from UserInfo left join UIInfo on UIInfo.UInfo_no = UserInfo.UInfo_no left join InsuranceInfo on UIInfo.IInfo_no = Ins
43、uranceInfo.IInfo_no where InsuranceInfo.IInfo_name='养老保险' and UserInfo.UInfo_category='公务员'" SqlCommand cmd = new SqlCommand(); cmd.Connection = myconn; cmd.CommandText = str1; num1 = (int)cmd.ExecuteScalar(); cmd.CommandText = str2; num2 = (int)cmd.ExecuteScalar(); cmd.CommandTe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 木聚糖酶产业分析报告
- 《药事管理与法规》课程标准
- 剪发属于合同范本
- 劳务合同范本定制
- 个人原因离职的辞职报告
- 各类模具加工合同范本
- 业务印章自查报告
- 接触网中级工考试模拟题(附答案)
- 二手房房买卖合同范本
- 单位用工合同范本6
- 焦虑自评量表(SAS)
- 患者转运意外应急预案
- 大学生国防教育教案第四章现代战争
- 政治审查表(模板)
- AS9100航空航天质量管理体系-要求培训教材
- 第2课+古代希腊罗马【中职专用】《世界历史》(高教版2023基础模块)
- 电工仪表与测量(第六版)中职技工电工类专业全套教学课件
- 六年级道法下册背诵知识点
- 2024水利五大员知识题库及答案
- TCARM 002-2023 康复医院建设标准
- 部编版一年级语文下册全册教案表格(教学反思二次备课)
评论
0/150
提交评论