数据结构工资管理系统课程设计报告

合集下载

数据结构课程设计工资管理系统

数据结构课程设计工资管理系统

海南大学信息科学技术学院数据结构课程设计题目: 工资管理系统学院:信息科学技术学院专业:09 通信工程姓名:学号:指导老师:吴泽晖二零一一年十二月目录一、设计目的 (4)二、功能描述 (4)三、总体设计 (6)3.1功能模块设计 (6)1.主控函数执行流程 (7)2.输入记录模块 (8)3.查询记录模块 (8)4.更新记录模块 (9)1)修改记录 (9)2)删除记录 (9)3)插入记录 (9)4)排序记录 (10)5.统计记录模块 (11)6.输出记录模块 (12)3.2数据结构设计 (12)3.3函数功能描述 (13)四、程序实现 (15)1.程序预处理 (15)2.主函数main() (17)3.主菜单界面 (18)4.表格形式显示记录 (18)5.记录查找定位 (19)6.格式化输入数据 (20)7.增加记录 (21)8.查询记录 (22)9.删除记录 (23)10.修改记录 (25)11.插入记录 (26)12.统计记录 (28)13.排序记录 (29)14.存储记录 (31)5.运行结果1.主界面 (31)2.输入记录 (32)3.显示记录 (33)4.删除记录 (34)5.查询记录 (35)6.修改记录 (36)7.插入记录 (36)8.统计记录 (37)9.排序记录 (37)10.保存记录 (38)六.心得体会 (39)七.参考文献 (39)一、设计目的本程序旨在训练基本的编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和结构数组的各种基本操作。

本程序中涉及结构体、数组、文件等方面的知识。

通过本程序的训练,使我对C 语言的文件操作有了一个更深刻的了解,掌握利用数组存储结构实现工资管理的原理,为进一步开发出高质量的信息管理管理系统打下坚实的基础。

二、功能描述如后图所示,与利用单链表实现的学生管理系统不同的是,此工资管理系统主要利用数组来实现,其数组元素是结构体类型。

整个系统由如下几大功能模块组成。

数据结构工资管理系统课程设计

数据结构工资管理系统课程设计

数据结构工资管理系统课程设计一、引言工资管理是每个企业都必须面对的重要问题,它涉及到员工的薪资核算、社保福利、考勤管理等多个方面。

为了提高工资管理的效率和准确性,我们设计了一个数据结构工资管理系统。

本文将详细介绍该系统的设计原理、功能模块以及数据结构的选择和实现。

二、系统设计原理1. 系统目标该系统的目标是实现自动化的工资管理,包括员工信息的录入、薪资核算、社保福利的管理、考勤记录的统计以及报表的生成等功能。

通过该系统,企业能够提高工资管理的效率和准确性,减少人力资源的投入。

2. 系统架构该系统采用客户端-服务器架构,客户端提供了用户界面,服务器负责处理业务逻辑和数据存储。

客户端和服务器之间通过网络进行通信,实现数据的传输和交互。

3. 数据库设计系统的数据库采用关系型数据库,用于存储员工信息、薪资数据、社保福利数据和考勤记录等。

数据库的设计包括表的定义、字段的设置以及索引的建立,以提高数据的查询效率。

三、功能模块设计1. 员工信息管理模块该模块用于录入和管理员工的基本信息,包括姓名、性别、年龄、职位、部门等。

管理员可以通过该模块添加、修改和删除员工信息。

2. 薪资核算模块该模块用于计算员工的薪资,根据员工的职位、工作时长、绩效评估等因素进行计算。

系统会自动生成薪资单,并将薪资信息存储到数据库中。

3. 社保福利管理模块该模块用于管理员工的社保和福利信息,包括社保缴纳情况、福利待遇等。

管理员可以通过该模块录入和修改员工的社保福利信息。

4. 考勤记录模块该模块用于记录员工的考勤情况,包括上班打卡时间、下班打卡时间等。

系统会自动计算员工的工作时长,并将考勤记录存储到数据库中。

5. 报表生成模块该模块用于生成各种报表,包括薪资报表、社保福利报表、考勤统计报表等。

管理员可以根据需要选择不同的报表进行生成和导出。

四、数据结构选择和实现1. 员工信息的存储员工信息可以使用链表或数组来存储,链表适用于频繁插入和删除操作,数组适用于频繁查询操作。

工资管理系统-课程设计报告报告

工资管理系统-课程设计报告报告

《工资管理系统》课程设计报告题目:工资管理系统专业:网络工程班级::指导教师:成绩:计算机学院2017年12月8日目录一、工资管理系统数据库设计 (1)1、项目背景介绍 (1)1.1 数据需求分析及数据字典 (1)1.2 概念结构设计 (2)1.3 逻辑结构设计 (3)1.4 数据库物理设计 (5)二、工资管理系统数据库实施步骤 (5)1、项目实践 (5)1.1 数据库的创建 (5)1.2 表对象的创建 (6)1.3 索引对象的创建 (13)1.4 视图对象的创建 (14)1.5 登录用户的创建 (15)三、工资管理系统数据库管理 (16)1、案例实践 (16)1.1 案例试验数据 (16)1.2 表数据的编辑 (17)1.3 表数据的简单查询 (21)1.4 表数据的联接查询 (18)四、项目总结 (22)五、参考文献 (23)一、工资管理系统数据库设计1、项目介绍工资管理系统的功能是收集员工的个人信息,以便实现按照科室录入个人的基本资料,向各科室发放个人工资和计算个人的实际发放工资,可以让相关财务部门及领导查看各科室人数情况和工资金额,还可以让员工用自己的员工号去查看自己的工资和扣除金额的情况。

工资管理系统的主要功能有:(1)、按照科室录入个人的基本资料,工资和扣除金额的数据;(2)、计算个人的实际发放工资;(3)、按科室、职业分类统计人数和工资金额;(4)、实现员工个人信息和工资的分类查询;(5)、能够删除辞职人员的数据;工资管理:包括与工资发放相关的各种数据处理,以及对这些处理的有机组织规划;人事管理:主要指对各种员工人事信息的管理,包括员工的基本情况和升迁离职情况;工资项目:影响工资计算的各种因素,如:基本工资,福利补贴和奖励工资,扣除的事业保险和住房公积金等等。

用户登录管理:2种权限,一种是管理员权限,可以做任何操作;一种是普通用户权限只可以查看自己的工资及基本信息,不能编辑,也不能查看其他用户信息。

数据结构工资管理系统课程设计

数据结构工资管理系统课程设计

数据结构工资管理系统课程设计随着信息技术的不断发展,数据结构作为计算机科学的基础课程之一,在实际应用中扮演着重要的角色。

本文将探讨数据结构在工资管理系统课程设计中的应用。

一、引言工资管理是企业管理中的重要组成部分,对于企业的正常运营和员工的积极性激励起着至关重要的作用。

设计一个高效可靠的工资管理系统,不仅能提高工资计算的准确性和效率,还能为企业提供决策支持。

数据结构作为一种组织和存储数据的方式,能够帮助我们解决工资管理系统中的各种问题。

二、需求分析在开始设计工资管理系统之前,我们需要进行需求分析,明确系统的功能和特点。

工资管理系统需要实现以下功能:1. 员工信息管理:包括员工的基本信息、薪资等级、考勤记录等。

2. 工资计算:根据员工的考勤记录和薪资等级,自动计算出员工的工资。

3. 工资查询:员工和管理员可以根据不同的条件查询工资信息。

4. 统计报表:生成各种统计报表,如员工工资分布、部门工资统计等。

三、数据结构设计在工资管理系统中,我们需要使用不同的数据结构来存储和组织数据。

以下是几种常用的数据结构及其应用:1. 数组:用于存储员工的基本信息和薪资等级。

2. 链表:用于存储员工的考勤记录,每个节点表示一天的考勤情况。

3. 栈:用于计算员工的工资,通过将考勤记录和薪资等级进行计算。

4. 队列:用于生成统计报表,按照不同的条件将员工工资进行分类和排序。

四、算法设计在工资管理系统中,我们需要设计一些算法来实现系统的各种功能。

以下是几种常用的算法及其应用:1. 遍历算法:用于遍历数组和链表,查找员工的信息和计算工资。

2. 排序算法:用于对员工的工资进行排序,生成统计报表。

3. 查找算法:用于根据不同的条件查询员工的工资信息。

五、系统实现在系统实现过程中,我们需要根据需求分析、数据结构设计和算法设计来编写代码。

在编写代码之前,我们需要进行系统的测试和调试,确保系统的稳定性和功能的正确性。

六、系统优化在系统实现完成后,我们可以对系统进行优化,提高系统的性能和用户体验。

工资管理系统课程设计报告

工资管理系统课程设计报告

工资管理需求。
02
存在问题
系统在处理大量数据时可能会出现性能瓶颈,需要进一步优化数据库设
计和查询算法。
03
改进建议
可以考虑采用分布式数据库或云计算技术来提高系统处理能力和扩展性
;同时,可以加强对系统的监控和日志分析,及时发现并解决问题。
06
课程设计总结与展望
课程设计成果总结
工资管理系统的设计与实现
服务器:Tomcat
04
05
操作系统:Windows 10
编码实现
数据模型设计
设计工资条、员工、部 门等数据模型,并实现 数据模型之间的关系。
数据库操作
使用JDBC连接MySQL 数据库,实现数据的增
删改查操作。
业务逻辑实现
实现工资计算、工资条 生成、员工管理、部门
管理等业务逻辑。
界面设计
使用Java Swing设计用 户界面,包括登录界面 、主界面、工资条界面
选用MySQL数据库,保证数据的稳定性和安全性。
数据表设计
设计员工信息表、工资条表、考勤表、奖惩表等数据表,定义字段 、数据类型、约束等属性,实现数据的规范化存储。
数据关系
通过外键关联实现数据表之间的关联,保证数据的一致性和完整性 。
界面设计
01
02
03
界面风格
采用简洁、大气的设计风 格,符合企业用户的审美 习惯。
报告范围
系统需求分析
对工资管理系统的需求进行详细分析 ,包括功能需求、性能需求、安全需 求等。
01
02
系统设计
根据需求分析结果,设计系统的整体 架构、数据库结构、功能模块等。
03
系统实现
依据系统设计,采用合适的编程语言 和开发工具进行系统编码和实现。

工资管理系统课程设计报告

工资管理系统课程设计报告

目录1:课程设计介绍 (1)2:开发环境 (1)3:设计目的 (1)4:设计要求: (1)5:流程图和模块图 (2)6:设计内容: (4)6.1.数据库与数据表的设计 (4)6.2.创建工资管理系统基本框架 (5)6.3.开发工资处理界面 (5)6.4.主对话框IDD_MY_FORM中控件的加入与布局 (6)6.5.为编辑框控件建立数据字段映射 (8)6.6.为命令按钮增加函数并编制过程代码 (9)7:调试 (12)8.程序清单 (16)9.心得体会 (23)参考文献 (23)1:课程设计介绍设计题目:工资管理系统设计介绍:利用所学知识,开发小型应用系统,使学生掌握运用可视化编程技术编写调试应用系统程序,训练学生独立开发应用系统、进行数据处理的综合能力,理解工程的概念和头文件的使用,熟悉封装、继承和多态性等这些面向对象编程的特点。

2:开发环境系统环境:操作系统需要Windows Xp以上版本;开发工具Microsoft Visual c++6.0;数据库使用Microsoft office Access2003;3:设计目的(1)、进一步巩固、加深学生所学专业课程《可视化程序设计》的基本理论知识,理论联系实际。

(2)、利用所学知识,开发小型应用系统,掌握运用VC++语言编写调试应用系统程序。

(3)、熟练掌握C++语言的基本语法,灵活运用各种数据类型。

(4)、进一步掌握在集成环境下如何调试程序(单步调试,设置断点、观察表达式,分块调试)和修改程序。

4:设计要求:(1)、创建类并使用类对象完成相应的任务。

(2)、深入理解封装、继承和多态这的等面向对象的编程的特点。

(3)、设计的小型工资管理系统可以收集、处理、存储信息,拥有查阅、增添、删除、修改等功能。

5:流程图和模块图设计步骤:模块图:主模块:工资信息模块:统计模块:查阅模块:增删操作模块:6:设计内容:6.1.数据库与数据表的设计作为工资管理系统,它是数据库应用系统数据处理的典范,数据库应用系统开发的前提是首先开发数据库和数据库中的数据表。

数据结构课程设计之职工工资管理系统(2)

数据结构课程设计之职工工资管理系统(2)

**大学数据结构课程设计报告题目:院(系):计算机工程学院学生姓名:班级:学号:起迄日期:2011.6.20-2011.7.01指导教师:2010—2011年度第 2 学期一、需求分析1.问题描述对单位的职工进行管理,包括插入、删除、查找、排序等功能。

2.基本功能要求职工对象包括姓名、性别、出生年月、工作年月、学历、职务、住址、电话等信息。

(1)新增一名职工:将新增职工对象按姓名以字典方式职工管理文件中。

(2)删除一名职工:从职工管理文件中删除一名职工对象。

(3)查询:从职工管理文件中查询符合某些条件的职工。

(4)修改:检索某个职工对象,对其某些属性进行修改。

(5)排序:按某种需要对职工对象文件进行排序。

3.输入和输出输入和输出,根据输入提示,输入数字或输入长度最长10字符串二、概要设计1.设计思路根据职工管理系统问题的描述和详细需求分析,要达到上述功能,链表的数据结构来存储职工信息,并对其进行相应的插入、删除、修改、查询、排序、保存等操作。

(1)输入功能的实现:要想实现职工管理系统的输入,必须要建立一个职工信息系统的抽象数据类型,其中职工信息以链表的存储方式实现。

(2)系统处理功能的实现:系统管理员根据公司的人员流动情况,在提示信息的提示下,选择相应的服务进行操作。

(3)输出的实现:根据选择的操作,输出与之对应的信息。

(4)根据职工管理系统问题的分析和设计要求,可以得到该职工管理系统可以分为五个模块:职工信息添加模块、职工信息修改模块、职工信息删除模块、职工信息查询模块、职工信息排序模块2.数据结构设计依据给定的数据格式,个人信息由九个字段来组成,即编号、姓名、性别、生日、学历、工龄,职务、电话和住址,外加一个判断关键字。

使用线性结构来组织数据,因为数据占据空间比较大,要对表中某项数据进行操作,所以使用链表比较方便。

(1)定义头结点typedef struct node{char id[10];char name[10];char sex[10];char birth[10]char gl[10];char xueli[10];char zhiwu[10];char phone[10];char address[10];struct node *next;}node,*linklist;(2)基本操作操作int initlist(linklist &L) //建立链表int creatlist(linklist &L) //创建职工信息:int del(linklist &L,char id[10]) //删除职工信息:int searchid(linklist &L,char id[10])//查找职工信息void display(linklist &L)//显示职工信息:3.软件结构设计三、详细设计1.程序中所用到的函数原型,操作实现//初始化链表int initlist(linklist &L){L=(linklist)malloc(sizeof(node));if(!L)return (0);L->next=NULL;return 1;}//创建链表信息int creatlist(linklist &L){ linklist p;p=(linklist)malloc(sizeof(node));scanf(q->data); }p->next=L->next;L->next=p;return(0);}//显示函数实现void display(linklist &L){linklist p;for(p=L->next;p;p=p->next){ printf(p-.>data)//输出职工信息}}//删除int del(linklist &L,char a[10]) //按id删除4{ node *p, *r;声明节点指针p=L->next;r=L;while(p)//节点不为空{if(strcmp(p->a,a)==0){ i=1; r->next=p->next;free(p);//释放查找到的节点printf("删除成功\n");break;}r=p;p=p->next;}if(i==0)printf ("找不到需要删除的信息!\n");return 1;}//查找操作的实现int searchid(linklist &L,char a[10]){node *p;p=L;while(p){if(strcmp(p->a,a)==0){printf(p-.>data)//输出职工信息}p=p->next;}return 1;}2.主函数和其他函数的伪码算法;2.(1)主函数的伪码void main(){ linklist L;initlist(L);while(x)//{ scanf(y) //输入选择数字switch(y){case 1: creatlist(L);break;case 2: scanf(,&id);//输入员工编号xiugai(L,id);//调用修改函数case 3:scanf("%s",&id);// 输入删除员工编号del(L,id);//调用删除函数case 4:scanf(,&a);// 请输入查询方式if(a==1){scanf(&id);//输入员工编号searchid(L,id);//调用查找函数if(a==2){scanf(&name);// 输入查询员工姓名searchname(L,name); //调用查找函数}case 5:scanf("%d",&k)//输入排序方式switch(k)//输入选择{ case 1: sortid(L)//调用排序函数case 2: sortnm(L) //调用排序函数case 3: sortgl(L) //调用排序函数}case 6: display(L)//调用显示函数case 7: save(L);// /调用保存函数case8 :xinlist(L);//调用修改函数case 9:L=load(L); 调用载入函数}2.1新增信息int xinlist(linklist &L)//职工信息的插入姓名并按照升序排列{q=(linklist)malloc(sizeof(node));//申请新节点{scanf(,q->data) //输入员工信息}if(L->next==NULL)//如果只有链表的头结点,没有其他的结点,直接插入在头结点后面{L->next=q;q->next=NULL;}else{if(strcmp(L->next->name,q->name)>0)//位于链表头结点之后的位置{q->next=L->next;L->next=q;}for(p=L->next;p;p=p->next){ if(p->next!=NULL){if(strcmp(p->name,q->name)<0&&strcmp(p->next->name,q->name)>0)//位于两个结点之间{q->next=p->next;p->next=q; }else if(strcmp(p->name,q->name)<0&&p->next==NULL)//链表非空,并且在排序中是最后一个{p->next=q;q->next=NULL;break;}}}}return (0);}2.2修改信息int xiugai(linklist &L,char a[10]){ node *p;//声明节点指针p=L;while(p){if(strcmp(p->a,a)==0)//查找符合要求的员工信息{ i=1; //找到后i=i,做标志scanf(q->data) //输入员工信息p=p->next;}if(i==0)printf("不存在修改的学生!\n");elseprintf("修改成功!\n");return 1;}2.3排序信息程序void sort(linklist &L){linklist La;//声明节点指针linklist p,q,m;//声明节点指针La=(linklist)malloc(sizeof(node));申请新节点La->next =NULL;while(L->next){for(q=L->next ,p=L->next ;p->next ;p=p->next )//依次选出工龄最大的节点{if((strcmp( p->next->a,q->a ))>0 ){m=p;q=p->next ; }}if(q==L->next)//删除符合的节点{L->next =L->next->next ;}else{m->next =q->next ;}q->next =La->next ;//建立新链表La->next =q ;}L=La;display(L);//调用显示函数}2.4保存信息伪码void save(linklist &L) //7保存{FILE *fp; //定义指向文件的指针node *p; // 定义移动指针scanf(outfile)// 提示文件名格式信息if((fp=fopen(outfile,"wb"))==NULL) //为输出打开一个二进制文件,如没有则建立{printf("can not open file\n");exit(1);} p=L; //移动指针从头指针开始while(p!=NULL) //如p不为空{fwrite(p,sizeof(node),1,fp);//写入一条记录p=p->next; //指针后移 }fclose(fp); //关闭文件}2.5载入信息伪码node *load(node *L) //9载入信息{node *p,*q,*h=NULL; //定义记录指针变量FILE *fp; // 定义指向文件的指针char infile[10]; //保存文件名scanf,infile); //输入文件名if((fp=fopen(infile,"rb"))==NULL) //打开一个二进制文件,为读方式{exit(1); }p=(node *)malloc(sizeof(node)); //申请空间h=p; //申请到空间,将其作为头指针while(!feof(fp)) //循环读数据直到文件尾结束{ if(1!=fread(p,sizeof(node),1,fp))break; //如果没读到数据,跳出循环p->next=(node *)malloc(sizeof(node)); //为下一个结点申请空间q=p; //保存当前结点的指针,作为下一结点的前驱p=p->next; //指针后移,新读入数据链到当前表尾 } q->next=NULL; //最后一个结点的后继指针为空fclose(fp); //关闭文件return h; /*返回头指针*/ }3.1新增信息在新增信息中,对按姓名关键字的链表进行插入新节点。

工资管理系统课程设计报告

工资管理系统课程设计报告

工资管理系统课程设计报告一、项目简介本项目旨在设计和开发一个工资管理系统,能够提供完整的工资管理流程、数据,并优化整个工资计算流程的效率,为企业的财务及人力资源管理部门提供一个方便、高效、安全、准确的管理工具。

二、项目背景现今企业对于工资管理的要求越来越高,因此,构筑一个可靠的工资管理系统比以前更为重要。

在实现优秀管理的过程中,一些企业已经采用了人工数据处理的方法,在其效率、准确性、安全性及成本方面却有着很大的不足。

所以,设计和开发一个可靠的工资管理系统,成为了如今的一项紧迫的任务。

三、系统需求1. 基本管理功能工资管理系统必须要有可靠的基本管理功能,包括用户管理和部门管理。

2. 工资计算该系统可对每个员工的薪资进行计算、审核处理、计算员工工资税金等。

3. 社会保险缴费人员信息管理该系统可建立缴费人员档案、代办社保卡、分析员工社保基数及税前扣除标准。

4. 各类报表生成该系统可自动生成各类报表,如工资表、税前个人所得税申报表等,并可自动生成各种纪录,如薪资变动记录、离职员工记录等。

5. 安全性取消对员工和工资数据的无意中的修改及意外删除,以确保系统数据的完整和可靠性。

四、设计思路本设计主张采用MVC(Model-View-Controller)架构,即将系统分为三个主要的部分:Model,View 和Controller。

MVC设计思路是将数据逻辑,用户界面以及控制逻辑分别独立起来,使一个部分的变化不会影响到其他部分,使项目的结构更加简单。

五、实现技术本项目使用的技术包括Java、JQuery、Spring、Mybatis和Bootstrap等。

同时,利用Java进行后端业务逻辑和数据处理,Mybatis作为数据访问框架,使用Spring框架实现Controller的业务逻辑和管理服务,JQuery作为前端的特效处理,Bootstrap 完成系统界面的构建和响应式设计。

六、系统功能与实现1. 登录页面登录页面是整个系统的起点,访问系统的任何功能都需要首先进行登录。

工资管理系统数据库课程设计报告

工资管理系统数据库课程设计报告

数据库课程设计报告姓名:* *班级:计科0613 学号:0902061307 指导老师:刘嫔时间:2010年1 月目录第一章概述1.1项目背景 (3)1.2编写目的 (3)1.3软件定义 (3)第二章需求分析2.1数据库需求分析 (4)2.2功能陈述 (4)2.3数据流图 (4)2.4功能流程图 (6)2.5E-R 模型图 (7)第三章数据库逻辑设计3.1表的定义 (10)第四章系统模块的具体实现 (12)第五章结束语5.1系统运行与测试 (25)5.2心得体会 (25)参考文献 (26)第一章概述1.1项目背景随着我国国民经济建设的蓬勃发展和具有中国特色的社会主义市场经济体制的迅速完善,各个行业都在积极使用现代化的手段,不断改善服务质量,提高工作效率,这些都在很大程度上给企业提出越来越严峻的挑战,对企业体系无论是在行政职能、企业管理水平以及优质服务上都提出更高的要求。

建设一个科学高效的信息管理系统是解决这一问题的必由之路。

企业内部财务管理是该企业运用现代化技术创造更多更高的经济效益的主要因素之一。

工资管理作为企业内部的一种财务管理也是如此,由于企业职工人数较多,每一位职工的具体实际情况也不尽相同,各项工资条款的发放,如果没有一个完整的工资管理系统对员工工资等进行系统的管理,很难实现企业高效运转。

1.2编写目的巩固课堂知识,加深对数据库系统的了解领会数据库理论与软件开发实践的关系培养良好的编程习惯,熟悉软件开发的基本流程1.3软件定义1.3.1软件名称工资管理系统1.3.2系统的主要功能此工资管理系统的主要任务是用计算机对各种工资信息进行日常的管理,如查询、修改、增加、删除以及存储等,迅速准确地完成各种工资信息的统计计算和汇总工作,快速打印出工资报表,针对系统服务对象的具体要求,设计了企业工资管理系统。

企业工资管理系统主要有以下几大功能:对单位人员的变动进行处理。

一个单位的职工不会是一成不变的,总是在不断的变化:有调出、有调入、也有职工在本单位内部调动。

数据库设计报告——工资管理系统

数据库设计报告——工资管理系统

一、设计目的和要求通过两周的课程设计,加深对数据库技术相关理论的理解,增强动手能力,掌握使用现行较为流行的数据库理论和数据库开发工具进行数据库管理操作(如建库、建立完整性约束,对数据库中数据进行查询,更改等操作)的方法;具体应用方面,设计一个工资管理系统,实现对员工工资的管理及查询功能。

最终结果为设计和完成具有较完善功能和一定规模的数据库应用系统(后台),为此后的软件工程课程设计和毕业设计作准备。

二、设计内容2.1概述项目背景:当今的科技迅速发展,管理系统已经完全通过计算机实现,因此需要根据外界的不断变化来完善管理系统,设计适应其发展的数据库管理系统,提高其性能,完善其功能。

编写目的:用SQL Server 2000建立一个工资管理系统数据库,在该数据库中建立员工基本信息表、员工工种信息表、员工考勤情况表、员工津贴信息表、员工月工资表、年终奖金表、工资等级表、奖金等级表。

按照要求设置好属性和各表的主键,并实现一下功能:(1)员工每个工种基本工资的设定(2)加班津贴管理,根据加班时间和类型给予不同的加班津贴;(3)按照不同工种的基本工资情况、员工的考勤情况产生员工的每月的月工资;(4)员工年终奖金的生成,员工的年终奖金计算公式=(员工本年度的工资总和+津贴的总和)/12;(5)企业工资报表。

能够查询单个员工的工资情况、每个部门的工资情况、按月的工资统计,并能够打印2.2需求分析1.问题陈述:随着现代化技术的发展,员工管理已经完全通过计算机来实现了,为了高效率的完成员工工资的管理,满足对员工工资的查询及其他相关操作的实现,决定开发设计工资管理系统,并通过使用工资管理系统,使工资管理工作系统化、规范化、自动化,从而达到提高管理效率的目的。

使办公人员可以轻松快捷地完成工资管理的任务。

系统后台采用SQL Server 2000建立数据库及其相关表和关系,运用SQL语句实现查询,计算等共能;后台采用Visual Basic所为界面输出,可提供添加删除等更新操作。

数据库工资管理系统课程设计(大作业)报告

数据库工资管理系统课程设计(大作业)报告

课程设计(大作业)报告课程名称:数据库原理与技术设计题目:工资管理系统院系:信息技术学院班级:2010级应用技术班设计者:马素丹学号:201011020122指导教师:设计时间:2012-6-18——2012-6-21信息技术学院昆明学院课程设计(大作业)任务书课程设计(大作业)报告一、题目分析1、数据:·职工(职工编号、职工姓名、性别、年龄、职称、部门)·工资(职工编号、基本工资、岗位工资、职务工资、交通补贴、误餐补贴、应发工资、养老保险、医疗保险、住房公积金、个人所得税、实发工资)·部门(部门编号、名称、编制、负责人、电话)2、工资管理规则:一名职工只能属于一个部门,一个部门可以有多个职工。

每名职工每月的工资组成为“应发工资=基本工资+岗位工资+职务工资+交通补贴+误餐补贴;实发工资=应发工资-养老保险-医疗保险-住房公积金-扣税;个人所得税应发工资2000元起征:2000元内无税,2500元内的征收超过2000部分的5%,3500元内的征收超过2000元不到2500元的5%及超过2500元的10%,5000元内的15%,5000元以上的征收超过2000元不到2500元的5%、超过2500元不到3500元的10%、超过3500元不到5000元15%,及5000元以上的20%。

可以对各种信息进行增加、修改、删除和查询,如:更新各种基本信息、查询职工的各种相关信息、统计职工当月实发工资等。

二、总体设计i.系统概述论坛管理系统:使用SQL数据库实现后台的添加、修改、删除和查询各项基本信息。

ii.数据流程图3、逻辑模型设计:·职工(职工编号、职工姓名、性别、年龄、职称、部门)·工资(职工编号、基本工资、岗位工资、职务工资、交通补贴、误餐补贴、应发工资、养老保险、医疗保险、住房公积金、个人所得税、实发工资)·部门(部门编号、名称、编制、负责人、电话)4、工资管理系统E-R图:三、实验器材Windows XPMicrosoft SQL sever 2005四、实验步骤1、分析题目,项目主管制定出合理的后台数据库设计项目计划。

工资管理系统课程设计报告

工资管理系统课程设计报告

工资管理系统课程设计报告一、引言随着社会经济的发展,企业经营及工资管理越来越复杂,这就要求企业要有一个完善的工资管理信息系统,以达到快速、准确地处理工资信息,保障工资发放的公平、透明性和制度的规范性,提高员工的工作积极性和满意度,维护企业的稳定和发展。

本文将围绕着工资管理系统课程设计报告展开阐述。

二、需求分析1.功能要求①基本资料维护:包括员工的基本信息、家庭成员信息、薪资方案的维护等。

② 工资核算:工资管理系统要支持社保、公积金、个税等扣除项的计算,同时根据薪资方案自动计算出本月的应发工资和扣除项。

③ 工资结算:工资管理系统要能支持工资的结算,包括银行代发工资、现金工资发放及工资信息的打印等。

④ 报表查询:工资管理系统要提供查询工资信息的功能,包括个人工资明细,社保公积金明细,个税明细等。

2.约束条件① 手动调整工资:工资管理系统中,不能支持人工修正工资信息,一旦出现问题,需要通过反复审核才能解决。

② 加密存储信息:工资管理系统需要保护员工的隐私和企业的商业秘密,存储的信息要加密,并且只有授权的人员才能访问和操作系统。

三、系统设计与实现1.系统架构设计本系统采用B/S结构,由浏览器与远程应用服务器组成,满足跨平台、分布式的特点。

远程应用服务器采用JavaWeb三层架构,分别为表示层、控制层和数据访问层,实现各层模块化之后的交互性、可伸缩性和可维护性。

2.系统功能模块①登录模块:用户登录、修改密码等操作。

②基础数据管理模块:包括员工信息、薪资方案维护等。

③ 薪资核算模块:实现工资项目的计算,以及工资项目之间的相互影响。

④ 工资结算模块:包括银行代发、现金发放,以及发放信息的打印等。

⑤ 工资报表模块:包括员工工资明细、公司核心报表、个人工资条等。

⑥ 系统管理模块:包括权限设置、数据备份、系统审核等。

3.系统实现技术本系统采用JSP+Struts2+Spring+Hibernate (SSH)框架,实现基于MVC,协调数据模型、视图和控制器,采用Java语言开发,使用MySQL数据库,使用了JFreeChart图表库,实现图表可视化展示。

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

. ... .. word ..《数据结构》课程设计报告题目: 人事工资管理系统 专业: 数字媒体技术 班级: 姓名: 指导教师: 成绩:学年 第 学期.word 专业资料计算机与信息工程系年月日1、设计目的 (2)2、设计容与要求 (2)1.1设计容 (2)2.2设计要求 (2)3、总流程图设计 (3)4、程序详细功能设计 (4)5、程序调试 (7)6、设计小结 (7)7、参考文献 (8)附录 (9)1、设计目的在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增、删、改、统计、输出等操作。

进一步掌握利用C语言进行程序设计的能力;进一步理解和运用结构化程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用流程图表示算法。

《工资管理系统》的设计与实现,此次程序设计主要利用c语言的基础知识开发一个简单的职工工资管理系统。

工资管理系统是一个企业不可缺少的一部分,它利用计算机对职工工资进行统一管理,实现工资管理工作的系统化、规化和自动化,为企业提高工作效率。

2、设计容与要求2.1设计容主要利用c语言的文件操作能力设计开发一个小型的管理信息系统,至少具有如下功能:对职工信息的录入、修改或删除,通过职工姓名或工号进行查找,并逐项列出相信的职工工资信息,另外也可以查看所有职工目前的工资状况。

有一个文本菜单来调用各个功能的函数及一个主菜单来提示用户如何操作。

10.2.2设计要求在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增、删、改、统计、输出等操作。

3、总体流程图设计word 专业资料4、程序详细功能设计1、设计一个能够记录公司职工工资的数据结构,每条记录包括:职工号,姓名,基本工资,职务工资,津贴。

2、应用文件保存工资管理数据。

3、新增:能将所有输入的职工工资数据保存到文件中,并可选择继续输入或退出。

104、查看:查看所有职工信息,包括职工号,姓名,基本工资,职务工资,津贴。

5、查找:输入职工的职工号或姓名,并在文件中查找。

若找到,则显示该职工的工资详情;否则提示未找到。

无论查找成功否,应还可选择继续查找或退出。

word 专业资料6、删除:输入职工的职工号,并在文件中查找。

若找到,提示是否确定删除。

若选择是,则删除文件中该职工信息;若选择否,则取消。

若未找到则提示无此职工信息。

无论查找成功否,应还可选择继续查找或退出。

7、修改:输入职工的职工号在文件中查找。

若找到,显示该职工的所有信息,否10.则提示无此职工信息。

无论查找成功否,应还可选择继续查找或退出。

8、统计:分类汇总并输出所有职工的总工资,并计算出平均工资。

9、退出:退出程序。

word 专业资料5、程序调试程序调试的任务是排除程序中的错误,使程序能顺利地运行并得到预期的效果。

程序的调试阶段不仅要发现和消除语法上的错误,还要发现和消除逻辑错误和运行错误。

要正确利用编辑时提示的错误信息。

调试阶段出现了很多的问题,主要如下:1、在定义和运用数据类型时出现问题,不清楚字符串的输出用s,而错用为c。

2、忘记“;”或把“;”用错误的输入法输入,造成的错误。

3、大括号混乱造成错误。

4、用文件保存职工信息时,对printf不熟悉,造成使用格式错误,输出容不符合,通过仔细核对书上的格式才改掉。

5、在读取信息时,不会用scanf,是程序的运行结果混乱,造成职工信息错位,或是直接输出0.00等。

6、设计小结通过这几天的努力,职工工资管理系统的设计已基本完成。

在本次课程设计中,10.我充分领略了C语言功能的强大,包括函数、数组、指针、结构体、文件等。

职工工资管理系统是一个很实用并且使用广泛的操作系统。

此系统可以减少很多工作量,做到设计合理,便于使用,易于操作;界面友好,容错性高,可在很短的时间,查找出所需的职工工资资料,提高工作效率。

该系统具有添加、显示、查询、修改、删除等基本功能,以方便对工资的各项管理操作。

每一条记录包括一个职工的工号、姓名、工资等信息,系统的各个功能模块都用函数的形式来实现,可以将职工信息保存在文件中,并从文件中读取出来。

在本次课程设计中,我也发现了自己很多的不足,并学到了许多的知识。

对以前课本中学到的知识有了更深刻的理解,和灵活的运用。

不再像以前一样,知识浅显的明白,死板的套用。

编写程序的过程,让我感觉到了无限的快乐,不仅仅是因为可以将以前学到的相关知识灵活运用,还因为在这个过程中学到了太多以前所没有掌握的东西。

最后我还掌握到了写复杂程序的技巧,在写大程序时应遵守“自顶向下,逐步细化,模块化”的方法进行设计;c语言提供了丰富的数据库和各种功能的函数,我们要善于使用,使我们的程序达到最简洁的这将对我以后的c程序学习产生重要的影响。

通过这次程序设计,使我加深了对C语言的认识,进一步熟悉了对C语言功能的灵活运用,而且加深了我对程序的理解和编写能力,通过文献资料和网络资料的帮助,使我对C语言程序设计这一基础学科又一次加深了认识,也意识到了其具有的强大功能和发展前景。

这会对以后的学习有所帮助。

7、参考文献[1]谭浩强. 《C程序设计》(第三版)北京:清华大学出版社2006.3.word 专业资料[2]王为青等.《C语言高级编程及实例剖析》北京:人民邮电出版社2007.3.[3]黄明等.《C语言课程设计》北京:电子工业出版社2006.3.附录〈源程序〉#include <stdio.h>#include <stdlib.h>#include <string.h>struct worker{char name[30];char ID[10];int salary1,salary2,salary3;};int dq(struct worker wo[]);void show();void bc(struct worker wo[]);void add();void see();void search();void ghcz();void xmcz();void del();void xmsc();void ghsc();void statistics();void modify();void ghxg();void xmxg();void reserve();void back();void author();struct worker wo[100]; //保存所有的职工信息int Number=0; //记录总的职工人数void main(){int choose=0;while(true){show();printf("\t\t====>请选择:");scanf("%d",&choose);system("cls");switch(choose){case 0: exit(0);//退出break;case 1: add();10back();//添加职工信息break;case 2: see();back();//查看职工信息break;case 3: search();back();// 查找职工信息break;case 4: del();back();//删除职工信息break;case 5: statistics();back();//统计职工工资break;case 6: modify();back();//修改职工信息break;case 7:reserve();back();//保存数据break;case 8:author();back();//作者信息break;default:break;}fflush(stdin);getchar();system("cls");}}int dq(struct worker wo[]){FILE *fp=NULL;int i=0;fp=fopen("C://worker.dat","rb");while(fread(&wo[i],sizeof(struct worker),1,fp))i++;fclose(fp);return i;}void show(){printf("\n");printf("\t****************职工工资管理系统****************\n\n");printf("\t*☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆*\n\n");printf("\t^^^^^^^^^^^^^^^[1] 添加职工信息^^^^^^^^^^^^^^^^^\n");printf("\t^^^^^^^^^^^^^^^[2] 查看职工信息word 专业资料^^^^^^^^^^^^^^^^^\n");printf("\t^^^^^^^^^^^^^^^[3] 查找职工信息^^^^^^^^^^^^^^^^^\n");printf("\t^^^^^^^^^^^^^^^[4] 删除职工信息^^^^^^^^^^^^^^^^^\n");printf("\t^^^^^^^^^^^^^^^[5] 统计职工工资^^^^^^^^^^^^^^^^^\n");printf("\t^^^^^^^^^^^^^^^[6] 修改职工信息^^^^^^^^^^^^^^^^^\n");printf("\t^^^^^^^^^^^^^^^[7] 保存数据^^^^^^^^^^^^^^^^^\n");printf("\t^^^^^^^^^^^^^^^[8] 作者信息^^^^^^^^^^^^^^^^^\n");printf("\t^^^^^^^^^^^^^^^[0] 退出系统^^^^^^^^^^^^^^^^^\n\n");printf("\t*★★★★★★★★★★★★★★★★★★★★★★★*\n");}void bc(struct worker *wo){FILE *fp=NULL;fp=fopen("C://worker.dat","ab+");fwrite(wo,sizeof(struct worker),1,fp);fclose(fp);}//添加职工信息void add(){int numberTemp=0;int i=0;struct worker temp;printf("请输入要添加职工个数:");scanf("%d",&numberTemp);for(i=0;i<numberTemp;i++){printf("输入第%d个职工信息\n",i+1);printf("姓名:");scanf("%s",);printf("工号:");scanf("%s",temp.ID);printf("基本工资:");scanf("%d",&temp.salary1);printf("职务工资:");scanf("%d",&temp.salary2);printf("津贴:");scanf("%d",&temp.salary3);wo[Number++]=temp; //写入到数组bc(&temp); //写入到文件}printf("添加成功\n");}10//查看职工信息void see(){int i=0;printf("以下是全部职工\n");printf("\t姓名\t工号\t基本工资\t职务工资\t津贴\n");while(i<Number){printf("\t%s\t%s\t%d\t\t%d\t\t%d\n",wo[i].name,wo[i].ID,wo[i].salary1,wo[i].salary2,wo[i]. salary3);i++;}}//查找职工信息void search(){int n=0;printf("1 按姓名查找\n");printf("2 按工号查找\n");scanf("%d",&n);switch(n){case 1: xmcz();break;case 2: ghcz();break;default: printf("输入错误!\n");break;}}void xmcz()//按姓名查找{char name[30];int i=0;printf("请输入要查找职工姓名:");scanf("%s",name);system("cls");printf("\t姓名\t工号\t基本工资\t职务工资\t津贴\n");for (i=0;i<Number;i++){if (strcmp(name,wo[i].name)==0){printf("\t%s\t%s\t%d\t\t%d\t\t%d\n",wo[i].name,wo[i].ID,wo[i].salary1,wo[i].salary2,wo[i]. salary3);}}}void ghcz()//按工号查找{char id[10];int i=0;word 专业资料printf("请输入要查找职工工号:");scanf("%s",id);system("cls");printf("\t姓名\t工号\t基本工资\t职务工资\t津贴\n");for (i=0;i<Number;i++){if (strcmp(id,wo[i].ID)==0){printf("\t%s\t%s\t%d\t\t%d\t\t%d\n",wo[i].name,wo[i].ID,wo[i].salary1,wo[i].salary2,wo[i]. salary3);}}}//删除职工信息void del(){int n=0;printf("1 按姓名删除\n");printf("2 按工号删除\n");scanf("%d",&n);switch(n){case 1: xmsc();break;case 2: ghsc();break;}}void xmsc()//按姓名删除{FILE *fp=NULL;char name[30];int i=0;int j=0;printf("请输入要删除的职工姓名:");scanf("%s",name);for(i=0;i<Number;i++){if (strcmp(name,wo[i].name)==0){for (j=i;j<Number-1;j++){wo[j]=wo[j+1];}Number--;}}//将剩余数据写入文件擦除以前的数据fp=fopen("C://worker.dat","wb");for (i=0;i<Number;i++)10{fwrite(&wo[i],sizeof(struct worker),1,fp);}fclose(fp);printf("删除成功;\n");}void ghsc()//按工号删除{FILE *fp=NULL;char id[60];int i=0;int j=0;printf("请输入要删除的职工工号:");scanf("%s",id);for(i=0;i<Number;i++){if (strcmp(id,wo[i].ID)==0){for (j=i;j<Number-1;j++){wo[j]=wo[j+1];}Number--;}}//将剩余数据写入文件擦除以前的数据fp=fopen("C://worker.dat","wb");for (i=0;i<Number;i++){fwrite(&wo[i],sizeof(struct worker),1,fp);}fclose(fp);printf("删除成功;\n");}//统计职工工资void statistics(){int i=0;double s=0.0;double sum[100];for(i=0;i<Number;i++){sum[i]=wo[i].salary1+wo[i].salary2+wo[i].salary3; printf("%s的总工资为:%f\n",wo[i].name,sum[i]); }for(i=0;i<Number;i++){s+=sum[i];}word 专业资料printf("平均工资为:%f\n",s/Number);}//修改职工信息void modify(){int mode=0;printf("请选择修改查找方式\n");printf("1 按姓名查找修改\n");printf("2 按工号查找修改\n");scanf("%d",&mode);switch(mode){case 1: xmxg();break;case 2: ghxg();break;default: printf("输入错误!\n");break;}}void xmxg()//按姓名修改{FILE *fp=NULL;char name[30];int i=0;printf("请输入要修改的职工姓名:");scanf("%s",name);for (i=0;i<Number;i++){if (strcmp(name,wo[i].name));elsebreak;}printf("\t姓名\t工号\t基本工资\t职务工资\t津贴\n");printf("\t%s\t%s\t%d\t\t%d\t\t%d\n",wo[i].name,wo[i].ID,wo[i].salary1,wo[i].salary2,wo[i]. salary3);printf("请重新输入该职工信息");printf("姓名:");scanf("%s",wo[i].name);printf("工号:");scanf("%s",wo[i].ID);printf("基本工资:");scanf("%d",&wo[i].salary1);printf("职务工资:");scanf("%d",&wo[i].salary2);printf("津贴:");scanf("%d",&wo[i].salary3);//信息修改后重新更新文件里面的数据以保持数据一致性fp=fopen("C://worker.dat","wb");for (i=0;i<Number;i++)10fwrite(&wo[i],sizeof(struct worker),1,fp);}fclose(fp);}void ghxg()//按工号修改{FILE *fp=NULL;char id[30];int i=0;printf("请输入要修改的职工工号:");scanf("%s",id);for (i=0;i<Number;i++){if (strcmp(id,wo[i].ID));elsebreak;}printf("\t姓名\t工号\t基本工资\t职务工资\t津贴\n");printf("\t%s\t%s\t%d\t\t%d\t\t%d\n",wo[i].name,wo[i].ID,wo[i].salary1,wo[i].salary2,wo[i]. salary3);printf("请重新输入该职工信息");printf("姓名:");printf("姓名:");scanf("%s",wo[i].name);printf("工号:");scanf("%s",wo[i].ID);printf("基本工资:");scanf("%d",&wo[i].salary1);printf("职务工资:");scanf("%d",&wo[i].salary2);printf("津贴:");scanf("%d",&wo[i].salary3);//信息修改后重新更新文件里面的数据以保持数据一致性fp=fopen("C://worker.dat","wb");for (i=0;i<Number;i++){fwrite(&wo[i],sizeof(struct worker),1,fp);}fclose(fp);printf("\t=======>修改成功\n");}//保存数据void reserve(){printf("\t=====程序在运行时已自动保存.....\n");}void back(){printf("\t===>按Enter键返回主菜单\n");word 专业资料//作者信息void author(){printf("\t***☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆***\n\n");printf("\t^^^^^^^^^^^^^^^学校名称^^^^^^^^^^^^^\n\n"); printf("\t^^^^^^^^^^^^^^学院班级^^^^^^^^^^^^^\n\n"); printf("\t^^^^^^^^^^^^^^^XXX制作^^^^^^^^^^^^^\n\n"); printf("\t***★★★★★★★★★★★★★★★★***\n\n");}10。

相关文档
最新文档