工资管理系统数据结构李建鹏

合集下载

c++工资管理系统课程设计

c++工资管理系统课程设计

c++工资管理系统课程设计一、课程设计背景及要求随着现代企业管理的日益规范,工资管理系统已成为企业必不可少的一部分。

本课程设计旨在实现一个简单的C++工资管理系统,用于计算职工当月工资、存储档案信息,并满足不同职位工资差异的需求。

系统主要涉及五种职位:技术人员、销售人员、文秘、技术经理和销售经理。

二、系统功能概述1.职工信息管理:存储职工的职工号、姓名、月工资、年龄、性别等信息。

2.工资计算:根据不同职位和业绩,计算职工的工资。

- 技术人员:按小时计算,每小时工资为40元。

- 销售人员:按销售总额的5%计算提成。

- 文秘:设有4000元底薪,奖金根据当月工作情况而定。

- 技术经理:固定月薪为5000元,根据工作业绩分为三个等级,每级有1000元奖金。

- 销售经理:固定月薪为5000元,按团队销售总额的0.3%计算奖金。

3.查询与统计:提供职工信息的查询、统计功能,如按条件筛选、显示员工数目、工资总数等。

4.数据保存与加载:利用文件系统保存职工信息,以便在系统下次运行时继续使用。

三、设计思路与实现1.设计合适的数据结构,如结构体数组、链表等,用于存储职工信息和计算工资。

2.确定文件存储格式(如文本或二进制)和文件名,实现数据的读写操作。

3.采用自顶向下的设计方法,划分模块,编写函数,实现各项功能。

四、程序清单及运行结果1.程序清单:列举程序中涉及的主要函数和关键代码。

2.运行结果:展示程序运行时的输出,如职工信息显示、工资计算结果等。

五、程序使用说明1.管理员登录:输入密码进入系统。

2.录入职工信息:按照提示录入职工信息,包括职工号、姓名、月工资、年龄、性别等。

3.查询职工信息:根据工号或姓名查询职工信息。

4.计算工资:根据职工类型和业绩,计算工资并显示。

5.统计信息:显示职工总数、工资总数等。

6.退出系统:完成操作后,选择退出系统。

六、总结与心得体会1.掌握C++语言的基本语法和编程技巧,提高编程能力。

某大学工资管理信息系统开发

某大学工资管理信息系统开发

某大学工资管理信息系统开发一、系统分析部分1、业务流程图图1-1 工资系统业务流程图2、数据流程图图1-2 工资系统数据流程图4、数据字典Ⅰ、数据流的描述数据流编号:D-01数据流名称:工资信息表数据流来源:系统管理员数据流去向:录入分类数据项组成:职工编号+职工姓名+职工所在部门代号+职工所在部门名称+工资情况数据流量:约1张/月Ⅱ、处理逻辑的描述处理逻辑编号:P-01处理逻辑名称:录入分类输入的数据流:工资信息表处理描述:根据人事部提供的信息情况,对工资信息表进行分类整理,对于该加的工资加上去,该扣的扣了,完成操作后,放入员工基本信息管理。

输出的数据流:员工基本信息管理处理频率:1次/月6、某大学工资管理信息系统流程设想图(新系统模型)图1-3 工资管理信息系统流程设想图二、系统设计部分1、功能结构图设计图2-1工资管理子系统功能结构图2、新系统信息处理流程设计图2-2 工资管理子系统的信息系统流程图3、输出设计(主要指打印输出设计)图2-3 工资表的输出设计4、存储文件格式设计(数据库结构设计)数据库的概念逻辑设计可以用ER模型来表示。

图2-4 工资系统的ER模型其中各自的属性为:教职工:部门代码、教师工号、姓名、工资人事部:部门号、个人工号、姓名财务处:部门号、个人工号、姓名图2-5 教职工个人信息的数据录入卡设计6、代码设计(职工证号和部门代号)如下是职工证号及其所在部门代码设计:字段字段名称类型宽度小数说明1 ZGZH Character 6 0 职工证号2 ZGXM Character 12 0 职工姓名3 BMDM Character4 0 部门代码4 BMMC Character 12 0 部门名称三、系统实施部分1、模拟运行数据2、源程序#include <stdio.h>#include <stdlib.h>#include <malloc.h>#include <string.h>#include <conio.h>#define TITLE "\n 月份工号姓名应发工资各种折扣实发工资\n #define DATA" %2d %4ld %-10s %6.1f %6.1f %6.1f\n",p1->month,p1->num,p1->name,p1->should_pay,p1->rebate,p1->actual_pay typedef struct pay{short month;char name[20];float gw,jn,zw,zl,jt,yj;float should_pay;float fz,gj,sd,others;float rebate;float actual_pay;struct pay *next;}PAY;FILE *fp;PAY *p1=NULL,*p2=NULL,*head=NULL;void menu();PAY *input();void output();void save(PAY *head);PAY *open();PAY *insert();void search();PAY *del();PAY *revise();/*主程序模块*/void main(void){short sel;do{menu();scanf("%d",&sel);switch(sel){case 1:head=input(); //输入模块break;case 2:head=insert(); //插入模块break;case 3:head=revise(); //修改模块break;case 4:head=del(); //删除模块break;case 5:search(); //查找模块break;case 6:output(); //输出模块case 7:save(head); //保存模块break;case 0:break;}}while(sel!=0);}/*菜单*/void menu(){printf("\n\n\n\n\n\n\n");printf("\t\t\t\t *主菜单选项*\n\n");printf("\t\t\t\t1.创建工资档案\n");printf("\t\t\t\t2.新增工资信息\n");printf("\t\t\t\t3.修改工资信息\n");printf("\t\t\t\t4.删除工资信息\n");printf("\t\t\t\t5.查找工资信息\n");printf("\t\t\t\t6.分类信息列表\n");printf("\t\t\t\t7.保存信息\n");printf("\t\t\t\t0.退出\n");printf("\n\n\n\n\n\n\n\n");}/*输入模块*/PAY *input(){short n=1;p1=(PAY*)malloc(sizeof(PAY));if(p1==NULL){printf("内存不足,无法创建链表!");getch();}printf("\n请输入第%d位职工的信息(以工号为0结束):\n",n); printf(" 工号:");scanf("%d",&p1->num);if(p1->num==0){printf("按任意键返回!");getch();free(p1);return 0;}getchar();printf(" 姓名:");gets(p1->name);printf(" 工资月份:");scanf("%d",&p1->month);printf(" 岗位工资,技能工资,职务津贴,职龄津贴,交通补贴,业绩津贴:\n"); scanf("%f,%f,%f,%f,%f,%f",&p1->gw,&p1->jn,&p1->zw,&p1->zl,&p1->jt,&p1->yj);printf(" 房租扣款,公积金,水电费,其它扣款:\n");scanf("%f,%f,%f,%f",&p1->fz,&p1->gj,&p1->sd,&p1->others);p1->should_pay=p1->gw+p1->jn+p1->zw+p1->zl+p1->jt+p1->yj;p1->rebate=p1->fz+p1->gj+p1->sd+p1->others;p1->actual_pay=p1->should_pay-p1->rebate;while(p1!=NULL){if(n==1)head=p1;elsep2->next=p1;n++;p2=p1;p1=(PAY*)malloc(sizeof(PAY));if(p1==NULL){printf("内存不足,无法创建链表!");getch();}printf("请输入第%d位职工的信息(以工号为0结束):\n",n);printf(" 工号:");scanf("%d",&p1->num);getchar();if(p1->num==0){p1=NULL;break;}printf(" 姓名:");gets(p1->name);printf(" 工资月份:");scanf("%d",&p1->month);printf(" 岗位工资,技能工资,职务津贴,职龄津贴,交通补贴,业绩津贴:\n"); scanf("%f,%f,%f,%f,%f,%f",&p1->gw,&p1->jn,&p1->zw,&p1->zl,&p1->jt,&p1->yj); printf(" 房租扣款,公积金,水电费,其它扣款:\n");scanf("%f,%f,%f,%f",&p1->fz,&p1->gj,&p1->sd,&p1->others);p1->should_pay=p1->gw+p1->jn+p1->zw+p1->zl+p1->jt+p1->yj;p1->rebate=p1->fz+p1->gj+p1->sd+p1->others;p1->actual_pay=p1->should_pay-p1->rebate;}p2->next=NULL;//edit by Yan-Xingyu Class Network-021printf("职工信息已输入,请按任意键返回,并存盘……");getch();return head;}/*输出模块*/void output(){short sel,flag,month;float min,max;do{do{printf("\n\n请选择您的列表方式:\n");printf("\t\t1.全部清单\n");printf("\t\t2.按月输出\n");printf("\t\t3.按工资段输出\n");printf("\t\t0.返回\n");scanf("%d",&sel);}while(sel!=1&&sel!=2&&sel!=3&&sel!=0);head=open();if(head==NULL)return;elseswitch(sel){case 1:printf("\n\t\t\t ******全部清单******\n");printf(TITLE);p1=head;do{printf(DATA);p1=p1->next;}while(p1!=NULL);break;case 2:flag=0;printf("输入要查的月份:");scanf("%d",&month);printf("\n\t\t\t******第%d月工资清单******\n",month); printf(TITLE);p1=head;do{if(p1->month==month){printf(DATA);p1=p1->next;flag=1;}elsep1=p1->next;}while(p1!=NULL);if(flag==0)printf("没有该月清单\n");break;case 3:flag=0;printf("输入最低工资:");scanf("%f",&min);printf("输入最高工资:");scanf("%f",&max);printf("\n\t\t ******%5.1f到%5.1f工资的名单******\n",min,max); printf(TITLE);p1=head;do{if(p1->actual_pay>min&&p1->actual_pay<max){printf(DATA);p1=p1->next;flag=1;}elsep1=p1->next;}while(p1!=NULL);if(flag==0)printf("没有该工资段的职工\n");break;case 0:break;}}while(sel!=0);}/*保存文件*/void save(PAY *head){short write;fp=fopen("pay.txt","w");if(fp==NULL){printf("创建文件失败!");getch();return;}p1=p2=head;while(p1!=NULL){write=fwrite(p1,sizeof(PAY),1,fp);if(!write){printf("无法写入文件!");getch();return;}p1=p1->next;}fclose(fp);printf("成功存盘!");getch();}/*打开文件*/PAY *open(){short n=1,read;fp=fopen("pay.txt","r");if(fp==NULL){printf("无法打开档案文件!");getch();return NULL;}if((p1=p2=(PAY*)malloc(sizeof(PAY)))==NULL) {printf("内存不足!");getch();return NULL;}read=fread(p1,sizeof(PAY),1,fp);if(!read){printf("文件读取出错!1");getch();return NULL;}if(p1->next==NULL)head=p1;else{do{if(n==1)head=p1;elsep2->next=p1;n++;p2=p1;if((p1=(PAY*)malloc(sizeof(PAY)))==NULL) {printf("内存不足!");getch();return NULL;}read=fread(p1,sizeof(PAY),1,fp);if(!read){printf("文件读取出错!2");getch();return NULL;}}while(p1->next!=NULL);p2->next=p1;}return head;fclose(fp);}/*插入模块*/PAY *insert(){PAY *p3=NULL;char sel;head=open();if(head==NULL)return NULL;elsedo{printf("请输入要插入的职工信息:\n");p3=(PAY*)malloc(sizeof(PAY));if(p3==NULL){printf("内存不足,无法创建链表!");getch();}printf(" 工号:");scanf("%d",&p3->num);getchar();printf(" 姓名:");gets(p3->name);printf(" 工资月份:");scanf("%d",&p3->month);printf(" 岗位工资,技能工资,职务津贴,职龄津贴,交通补贴,业绩津贴:\n"); scanf("%f,%f,%f,%f,%f,%f",&p3->gw,&p3->jn,&p3->zw,&p3->zl,&p3->jt,&p3->yj); printf(" 房租扣款,公积金,水电费,其它扣款:\n");scanf("%f,%f,%f,%f",&p3->fz,&p3->gj,&p3->sd,&p3->others);p3->should_pay=p3->gw+p3->jn+p3->zw+p3->zl+p3->jt+p3->yj;p3->rebate=p3->fz+p3->gj+p3->sd+p3->others;p3->actual_pay=p3->should_pay-p3->rebate;p1=head;while(p1!=NULL){p2=p1;p1=p1->next;}p2->next=p3;p3->next=NULL;printf("成功插入,是否继续?是(Y)否(N)\n");sel=getch();}while(sel=='Y'||sel=='y');printf("\n任意键返回,并存盘……\n");getch();return head;}/*查找模块*/void search(){short sel;long num;char name[20],choose;head=open();if(head==NULL)return;elsedo{do{printf("\n选择查找方式:\n");printf("\t\t1.按工号查找\n");printf("\t\t2.按姓名查找\n");scanf("%d",&sel);getchar();}while(sel!=1&&sel!=2);switch(sel){case 1:printf("输入要查的工号:");scanf("%ld",&num);break;case 2:printf("输入要查的姓名:");gets(name);break;}p1=head;while((p1->next!=NULL)&&(p1->num!=num)&&(strcmp(p1->name,name)!=0)) //用成p1!=NULL有问题?p1=p1->next;if((p1->num==num)||strcmp(p1->name,name)==0){printf("您要查找的信息如下:\n");printf(TITLE);printf(DATA);}elseprintf("没有该信息!\n");printf("是否继续?是(Y)否(N)\n");choose=getch();}while(choose=='Y'||choose=='y');printf("任意键返回");getch();}/*删除模块*/PAY *del(){short sel;long num;char name[20],choose;head=open();if(head==NULL)return NULL;elsedo{do{printf("\n选择删除方式:\n");printf("\t\t1.按工号删除\n");printf("\t\t2.按姓名删除\n");scanf("%d",&sel);getchar();}while(sel!=1&&sel!=2);switch(sel){case 1:printf("输入要删除的工号:");scanf("%ld",&num);break;case 2:printf("输入要删除的姓名:");gets(name);break;}p1=head;if((p1->num==num)||strcmp(p1->name,name)==0){head=p1->next;printf("删除信息成功!");}else{while((p1->next!=NULL)&&(p1->num!=num)&&(strcmp(p1->name,name)!=0)) {p2=p1;p1=p1->next;}if((p1->num==num)||strcmp(p1->name,name)==0){p2->next=p1->next;free(p1);printf("\n删除信息成功!\n");}elseprintf("\n没有该信息!\n");}printf("是否继续?是(Y)否(N)\n");choose=getch();}while(choose=='Y'||choose=='y');printf("任意键返回,并存盘……");getch();return head;}/*修改模块*/PAY *revise(){short sel;long num;char name[20],choose;head=open();if(head==NULL)return NULL;elsedo{do{printf("\n查找要修改的对象:\n");printf("\t\t1.按工号查找\n");printf("\t\t2.按姓名查找\n");scanf("%d",&sel);getchar();}while(sel!=1&&sel!=2);switch(sel){case 1:printf("输入要查的工号:");scanf("%ld",&num);break;case 2:printf("输入要查的姓名:");gets(name);break;}p1=head;while((p1->next!=NULL)&&(p1->num!=num)&&(strcmp(p1->name,name)!=0)) //用成p1!=NULL有问题?p1=p1->next;if((p1->num==num)||strcmp(p1->name,name)==0){printf("您要修改的原始信息如下:\n");printf(TITLE);printf(DATA);printf("\n将上述信息改为如下信息:\n");printf(" 工号:");scanf("%d",&p1->num);getchar();printf(" 姓名:");gets(p1->name);printf(" 工资月份:");scanf("%d",&p1->month);printf(" 岗位工资,技能工资,职务津贴,职龄津贴,交通补贴,业绩津贴:\n"); scanf("%f,%f,%f,%f,%f,%f",&p1->gw,&p1->jn,&p1->zw,&p1->zl,&p1->jt,&p1->yj); printf(" 房租扣款,公积金,水电费,其它扣款:\n");scanf("%f,%f,%f,%f",&p1->fz,&p1->gj,&p1->sd,&p1->others);p1->should_pay=p1->gw+p1->jn+p1->zw+p1->zl+p1->jt+p1->yj;p1->rebate=p1->fz+p1->gj+p1->sd+p1->others;p1->actual_pay=p1->should_pay-p1->rebate;}elseprintf("你要修改的信息不存在!\n");printf("是否继续?是(Y)否(N)\n");choose=getch();}while(choose=='Y'||choose=='y');printf("任意键返回,并存盘……");getch();return head;}。

工资管理系统课程设计c语言

工资管理系统课程设计c语言

工资管理系统课程设计c语言一、课程目标知识目标:1. 学生能够理解工资管理系统的基本功能需求,掌握C语言实现工资管理系统所需的基本语法和结构;2. 学生能够运用结构体、数组、文件操作等C语言知识模块,实现工资管理系统中数据的存储、查询、修改和删除等功能;3. 学生了解并掌握C语言中的模块化编程思想,将工资管理系统划分为独立的功能模块,提高代码的可读性和可维护性。

技能目标:1. 学生能够运用所学知识,独立完成一个简单的工资管理系统的设计、编码和调试;2. 学生掌握利用C语言进行系统分析、设计和实现的基本方法,具备基本的编程实践能力;3. 学生能够运用调试工具和技巧,对程序进行调试和优化,提高程序运行的稳定性和效率。

情感态度价值观目标:1. 学生通过本课程的学习,培养对编程的兴趣,提高问题解决能力和创新意识;2. 学生在团队协作中,学会沟通、分享和合作,培养良好的团队精神和职业素养;3. 学生认识到编程在工资管理系统等实际应用中的重要性,激发其学习热情,培养积极的学习态度。

课程性质:本课程为高年级C语言程序设计课程的实践环节,旨在让学生通过实际项目的开发,巩固所学知识,提高编程能力。

学生特点:学生已经具备一定的C语言基础,了解基本语法和编程技巧,但实际项目经验不足。

教学要求:结合学生特点,课程设计应注重实践性、实用性和综合性,引导学生运用所学知识解决实际问题,提高编程实践能力。

在教学过程中,关注学生的个体差异,提供适当的指导和帮助,确保学生能够达到预定的学习目标。

通过课程目标的分解,为后续教学设计和评估提供明确的方向。

二、教学内容1. 工资管理系统需求分析:介绍工资管理系统的基本功能,如员工信息管理、工资计算、数据存储与查询等。

教材章节:《C语言程序设计》第十章——文件。

2. C语言基础知识回顾:回顾结构体、数组、指针等基本概念及其在工资管理系统中的应用。

教材章节:《C语言程序设计》第三章——结构体与联合;《C语言程序设计》第四章——数组与字符串;《C语言程序设计》第五章——指针。

职工工资管理系统c++程序设计报告

职工工资管理系统c++程序设计报告

职工工资管理系统c++程序设计报告职工工资管理系统是一种用于管理员工薪资的软件系统。

下面是一个使用C++编写的职工工资管理系统的程序设计报告。

## 设计与实现### 设计该系统的设计主要考虑到以下几个方面:1. 功能需求:设计一个能够记录职工的基本信息、薪资信息、请假信息、加班信息等的系统。

2. 数据库设计:设计一个可以存储数据的数据结构,包括表格和字段。

3. 界面设计:设计一个用户友好的界面,方便用户进行操作。

4. 安全性:设计一个安全性措施,保证数据的安全性和隐私性。

### 实现1. 数据库设计:使用MySQL数据库进行数据存储。

2. 界面设计:使用Qt Creator开发界面。

3. 程序实现:使用C++语言进行程序实现。

#### 功能实现1. 记录职工基本信息:包括职工ID、姓名、性别、出生日期、身份证号码、联系方式等。

2. 记录薪资信息:包括基本工资、基本工资+津贴、基本工资+补贴、奖金等。

3. 记录请假信息:包括请假日期、请假原因、请假时间等。

4. 记录加班信息:包括加班日期、加班时间、加班地点、加班原因等。

5. 记录职工基本信息与薪资信息的关联关系。

6. 记录加班信息与请假信息的关联关系。

7. 显示当前职工的工资信息、请假信息、加班信息等。

8. 允许用户对职工的工资信息、请假信息、加班信息等进行编辑和删除。

## 性能测试为了测试系统的性能和稳定性,我们使用了以下方法:1. 模拟大量数据的操作:在系统中添加大量数据,并对其进行各种操作。

2. 进行并发测试:在系统中添加并发用户,并对系统进行各种操作。

3. 进行压力测试:在系统中添加大量压力,并通过增加并发用户等方式对系统进行压力测试。

通过以上方法,我们测试了系统的性能和稳定性,并得到了以下结果:- 系统在高并发情况下能够稳定运行。

- 系统在低并发情况下也能够流畅运行。

- 系统在高压力情况下能够快速响应,并保持稳定运行。

- 系统在低压力情况下也能够流畅运行。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

数据结构课程设计之职工工资管理系统(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、检查空间:确保升级数据结构需要的磁盘空间充足,如果空间不足,应及时清理磁盘或者增加磁盘空间。

三、操作步骤1、下载数据结构升级软件:用户可以在工资统发系统官网上下载最新版本的数据结构升级软件,并保存在本地磁盘中。

2、运行数据结构升级软件:双击打开下载的升级软件文件,运行数据结构升级程序。

3、选择数据升级目录:在升级程序中,用户需要选择待升级的数据文件目录,保证程序能够找到需要升级的数据文件。

一般工资统发系统的数据文件目录在“C:\ProgramFiles\SalarySystem\”下。

4、选择升级方式:在数据结构升级程序中,用户需要选择“升级”方式,点击“下一步”按钮,填写一些必要的升级操作信息。

5、等待升级完成并重启系统:系统会进行数据文件的升级操作,如果升级成功,系统会提示用户重启工资统发系统,以确保升级后的数据结构能够正常运行。

四、操作注意事项1、在操作过程中,确保网络和电源状态良好,以免造成不必要的数据和系统损失。

2、不要操作正在运行中的工资统发系统,保证工资统发系统处于关闭状态,以便升级程序能够顺利访问待升级的数据文件。

3、在进行数据结构升级操作之前,必须先备份工资统发系统的相关数据,以防操作中出现问题导致数据损失。

4、操作过程中,如遇到程序异常或其他问题,请不要随意重启电脑或强制关闭软件程序,应先保存操作数据,再寻求技术支持。

C课程设计《工资管理系统》

C课程设计《工资管理系统》

C 课程设计《工资管理系统》一、教学目标本课程的教学目标是使学生掌握工资管理系统的核心概念、设计和实现方法。

通过本课程的学习,学生应能够理解工资管理的基本流程,熟悉工资管理系统的关键组成部分,如员工信息管理、工资计算、税款扣除等,并能够运用面向对象的设计方法,独立设计和实现一个简单的工资管理系统。

具体来说,知识目标包括:掌握工资管理的基本概念和流程;了解工资管理系统的主要组成部分及其功能;熟悉面向对象的设计方法和原则。

技能目标包括:能够使用面向对象的语言进行编程;能够根据实际需求设计和实现一个简单的工资管理系统。

情感态度价值观目标包括:培养学生的团队协作意识,使其能够积极参与团队项目;培养学生的问题解决能力,使其能够通过分析和设计解决实际问题。

二、教学内容本课程的教学内容主要包括工资管理系统的核心概念、设计和实现方法。

具体包括以下几个部分:1.工资管理的基本概念和流程:介绍工资管理的基本概念,如工资、奖金、扣款等,以及工资管理的基本流程,如员工信息管理、工资计算、税款扣除等。

2.工资管理系统的主要组成部分及其功能:介绍工资管理系统的主要组成部分,如员工信息管理模块、工资计算模块、税款扣除模块等,以及各部分的功能和作用。

3.面向对象的设计方法:介绍面向对象的设计方法,包括类的设计、对象的创建和使用、继承和多态等概念和方法。

4.工资管理系统的实现:通过实际案例,引导学生运用面向对象的设计方法,独立设计和实现一个简单的工资管理系统。

三、教学方法为了达到本课程的教学目标,我们将采用多种教学方法,如讲授法、案例分析法、实验法等。

具体来说:1.讲授法:通过讲解工资管理的基本概念、流程和面向对象的设计方法,使学生掌握相关知识。

2.案例分析法:通过分析实际案例,使学生了解工资管理系统的设计和实现过程,提高学生的实际操作能力。

3.实验法:让学生亲自动手设计和实现一个简单的工资管理系统,培养学生的实际编程能力和问题解决能力。

以Visual FoxPro数据库为基础开发高校人事工资管理系统

以Visual FoxPro数据库为基础开发高校人事工资管理系统

以Visual FoxPro数据库为基础开发高校人事工资管理系统Visual FoxPro是一个强大的数据库开发工具,它能够快速、高效地开发出各种类型的应用程序。

在高校人事工资管理系统的开发过程中,Visual FoxPro可以为我们提供强有力的支持和帮助。

首先,我们需要明确高校人事工资管理系统的功能需求。

该系统应包括以下功能:1. 基础数据管理:包括员工基本信息、职务信息、部门信息等。

2. 工资管理:包括工资计算、社保管理、公积金管理等。

3. 绩效管理:包括考勤管理、工作绩效考核等。

4. 报表管理:包括各种统计报表、工资单等。

在设计数据库之前,我们需要根据需求分析,确定系统的数据结构。

以下是高校人事工资管理系统的数据结构:1. 员工信息表员工编号、姓名、性别、出生日期、籍贯、入职日期、身份证号码、驾照号码、电话号码、邮箱、家庭住址、学历、专业、毕业院校、部门名称、职务、职称等。

2. 部门信息表部门编号、部门名称、部门电话、部门地址、部门负责人、上级部门等。

3. 工资信息表员工编号、部门名称、上岗日期、基本工资、津贴、扣除项、社保费、公积金等。

4. 绩效考核表员工编号、考勤日期、迟到次数、早退次数、缺勤次数、工作任务完成情况、绩效等级等。

5. 报表统计表员工编号、姓名、部门名称、本月工资、社保费、公积金、所得税、实际发放工资等。

以上数据表是高校人事工资管理系统的核心数据,通过Visual FoxPro可以方便地创建和管理该系统所需的所有数据。

在设计数据库之后,我们需要根据需求分析,编写系统的各个模块。

以下是高校人事工资管理系统的主要模块:1. 基础数据管理模块该模块主要用于管理员工基本信息、职务信息、部门信息等。

管理员可以通过该模块进行添加、修改、删除员工、职务、部门等操作。

2. 工资管理模块该模块主要用于管理员工工资信息。

管理员可以通过该模块实现工资计算、社保管理、公积金管理等操作。

3. 绩效管理模块该模块主要用于管理员工考勤和绩效评估情况。

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

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

海南大学信息科学技术学院数据结构课程设计题目: 工资管理系统学院:信息科学技术学院专业: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 语言的文件操作有了一个更深刻的了解,掌握利用数组存储结构实现工资管理的原理,为进一步开发出高质量的信息管理管理系统打下坚实的基础。

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

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

高校工资管理系统的设计与实现

高校工资管理系统的设计与实现

高校工资管理系统的设计与实现作者:谭辉来源:《科技资讯》 2012年第7期谭辉(广东石油化工学院广东茂名 525000)摘要:某高校的工资管理系统是基于Microsoft Office Access 2003和SQL server 2000的信息管理系统。

从该系统的需求分析、可行性分析、体系结构设计等方面,阐述一个信息管理系统的设计和实现的过程。

关键词:工资管理数据库 ACCESS 2003 SQL中图分类号:F239 文献标识码:A 文章编号:1672-3791(2012)03(a)-0190-011 需求分析工资管理系统的开发意图是利用计算机数据库技术,减少人工操作失误造成的错误,确保工资数据准确和安全,使学校教职工工资管理更加科学、规范,安全。

通过本系统,能帮助劳资管理人员利用计算机快速、方便的对教职工工资数据进行信息管理、数据输入、报表输出、查询等操作,同时利用操作人员的权限和密码管理,确保工资数据的安全。

2 可行性分析(1)技术可行性:本系统使用者主要是该校劳资科的两位工作人员;现在已有日常工资网上查询系统在运行,需每月提供EXCELL表格上传即可;同时考虑到数据安全性,因此无需使用B/S模式,单机版即可。

Microsoft? Office Access 2003是一种关系数据库管理系统软件,它的后端可以与SQL挂接,为数据库管理提供了简单易用而又功能强大的平台。

与其他数据库管理系统相比,Access具有界面规范易于掌握的特点。

我们选择开发平台的原则是“不追求技术先进、够用合适就是最好”。

对于开发这种单机版的小型数据库Access是足已的。

(2)经济可行性:本系统基于Access 2003开发设计,Access 2003操作简单、易于开发的特点,可以较好地缩短开发周期;使用人员对Office 2003熟悉,可以大大减少日后培训时间和维护成本。

(3)运行可行性:本系统是基于详细的需求分析,功能模块是依据劳资管理人员的需求设计,系统界面是按照劳资管理人员的操作习惯设计。

(完整版)工资管理系统(论文范文,JSP,JAVA,毕业设计)

(完整版)工资管理系统(论文范文,JSP,JAVA,毕业设计)

摘要我们小组的课程设计是某公司的工资管理系统。

在这个计算机快速发展的世界里,计算机为信息处理提供了物美价廉的手段,对于推动我国管理信息处理现代化起到了重要作用。

工资管理是一项琐碎、复杂而又十分细致的工作,工资计算、发放、核算的工作量很大,一般不允许出错,如果实行手工操作,每月发放工资须手工填制大量的表格,这就会耗费工作人员大量的时间和精力,计算机进行工资发放工作,不仅能够保证工资核算准确无误、快速输出,而且还可以利用计算机对有关工资的各种信息进行统计,既方便又快捷地完成员工工资的发放。

我们组在课程设计过程中根据设计中的需求及对工资管理系统采用了模块化的设计思想,在机房我们在Windows XP操作系统环境下,采用myeclipse7作为开发工具,主要连接Access数据库来实现公司的工资管理系统的主要功能。

在设计过程中,我们首先小组首先对整体的思路进行分析,然后进行分工。

对数据库和类进行设计,实现了工资管理系统的功能。

其功能主要包括公司用户管理、人员管理、部门管理、工资管理等功能。

本系统运用了数据库技术,可以大量的存储信息。

又实现了人机交互,不但缩短工资发放的时间,又避免了传统时代的人工计算错误。

总而言之,该系统在工资管理方面考虑周全,功能齐全,极大地提高了公司对员工工资管理的效率。

关键词工资管理系统,Access数据库,Java目录摘要 (I)目录............................................................................................................................... I I 第1章绪论. (1)1.1项目背景 (1)1.2项目开发环境 (1)1.2.1 硬件环境 (1)1.2.2 软件环境 (1)第2章相关技术 (1)2.1系统所涉及到的语言 (1)2.1.2 Java (1)2.2开发工具 (1)2.2.1 MyEclipse (1)2.2.1 Access (2)第3章系统分析及组内分工 (1)3.1需求概述 (1)3.2需求分析 (1)3.2.1 理解需求 (1)3.2.2 分析需求 (1)3.2.3可行性分析 (2)3.3设计思想 (2)3.4系统功能结构图 (3)3.5组内分工 (4)第4章数据库设计 (5)4.1数据库需求分析 (5)4.2数据流图 (5)4.2数据字典 (6)4.3概念结构设计 (9)4.3.1概念结构设计方法 (9)4.3.2概念模型设计 (9)第5章系统详细模块设计与实现 (10)5.1用户登录及主界面 (10)5.2用户管理功能实现 (18)5.3人员管理功能实现 (24)5.4部门管理功能实现 (39)5.5工资管理功能实现 (45)5.6帮助功能实现 (50)5.7退出系统功能实现 (51)结论 (52)致谢 (53)参考文献 (54)第1章绪论1.1 项目背景借助现代信息技术和管理理论,建立企业管理信息系统是当今社会的重要趋势。

工资管理信息系统课程设计

工资管理信息系统课程设计

工资管理信息系统课程设计工资治理信息体系课程设计班级工商治理0801姓名×××学号08020501××设计日期:2011年5月25日目次1体系概述 (3)1.1体系查询拜望分析 (3)1.2体系设计的目标 (3)1.3体系需求 (3)1.4可行性研究 (4)1.4.1技巧上的可行性 (4)1.4.2经济上的可行性 (4)1.4.3治理上的可行性 (4)1.4.4社会可行性 (5)2体系分析部分 (5)2.1营业流程图 (5)2.2数据流程图 (6)2.3功能分析图 (7)2.4数据字典 (7)2.5数据加工处理的描述 (7)2.6治理信息体系流程假想图 (8)3体系设计部分 (8)3.1功能构造图设计 (9)3.2新体系信息处理流程设计(ER图) (9)3.3输出设计 (10)3.3.1工资表 (10)3.3.2扣款表 (10)3.3.3工资汇总表 (11)3.4储备文件格局设计 (11)3.5输入设计 (11)3.5.1数据库中的对象设计 (11)3.5.2表构造设计 (12)3.6代码设计(见源法度榜样) (13)3.7法度榜样设计说明书(体系赞助) (14)4体系实施部分 (14)4.1-4.5 ................................................................................................................. 错误!未定义书签。

1 封面 (14)2 工资表 (15)3 扣款表 (15)4 工资汇总表 (16)5 工资表源法度榜样 (16)6 扣款表源法度榜样 (17)7 工资汇总表源法度榜样 (17)8 关于 (18)5附录或参考材料: (18)6 心得领会 (18)治理信息体系课程设计心得 (18)1体系概述1.1体系查询拜望分析治理信息体系是为了适应现代化治理的须要,在治理科学、体系科学、信息科学和运算机科学等学科的差不多上形成的一门科学,它研究治理体系中信息处理和决定打算的全部过程,并商量运算机的实现方法。

(薪酬管理)数据结构与算法工资管理系统综合实验报告

(薪酬管理)数据结构与算法工资管理系统综合实验报告

(薪酬管理)数据结构与算法工资管理系统综合实验报告《数据结构与算法》综合实验报告课程名称:《数据结构与算法》综合实验专业:计算机科学与技术班级学号:11321116姓名:王娇指导教师:孙承福成绩:完成日期:2012 年月日一、实验题目工资管理系统二、实验时间地时间:2012/6/10地点:506ATA 机室三、实验目的1.理解线性表的定义、线性表的顺序存储结构和链式存储结构。

2.理解线性表的逻辑结构特征3.深入掌握线性表的两种存储方法,即顺序表和链式表。

体会这两种存储结构之间的差异。

4.重点掌握线性表和链表上各种基本运算的实现。

5.综合运用线性表解决一些复杂的实际问题。

四、实验内容(一)、功能关系介绍1添加功能,通过它可以添加新的员工信息,非常方便,输入 1 即可进入添加页面,添加完以后,输入 4 保存。

2查询功能,通过它可以查询是否有这个员工,他可以通过两种方式进行查询,一是id 号查询,二是姓名查询。

3删除功能,通过它可以删除离开的员工,它也可以通过两种方式进行删除,一是通过id 删除,二是通过姓名删除。

6 修改功能,通过它可以修改员工信息,譬如电话,工资等,可输入 id 号进行修改,修改完以后返回主页面输入 4 进行保存。

5 插入功能,与添加功能有区别,它可选择性的插入,随意插,他也是添加新的员工,非常方便,返回主页面,输入 4 保存。

4 保存功能,它可保存添加,插入和修改的员工信息。

7 显示功能,通过它可以显示所有员工的详细信息。

0 返回功能,通过它可返回主页面,进行其他操作。

(二)、采用数据结构该员工工资管理系统采用了单链表的建立,输入,插入,查找,删除,输出等功能(三)、语言工具C 语言编程五、预习内容(一)、单链表分线性单链表和静态的单链表。

线性单链表是用一组不连续的存储单元来存放线性表中的数据,因此链表中结点的逻辑次序和物理次序不一定相同。

为了正确的表示结点间的逻辑关系,在存储线、性表时,存储每个数据元素值的同时,还要存储指示其后继结点的地址信息,这两部分信息组成的存储映像称为结点。

工资管理系统(C# 数据库课程设计

工资管理系统(C# 数据库课程设计

数据库课程设计设计题目:工资管理系统班级: BX0901学号:姓名:目录一绪论 (3)二需求分析 (3)三概要设计 (4)四物理设计 (5)五详细设计 (6)六调试分析 (9)七小结 (16)八参考文献 (16)一、绪论随着计算机技术的飞速发展和经济体制改革的不断深入,传统企业管理方法、手段以及工作效率已不能适应新的发展需要,无法很好地完成员工工资管理工作。

提高公司企业管理水平的主要途径是更新管理者的思想,增强对管理活动的科学认识.基于C#与SQL server数据库技术建立一个通用工资管理系统,该系统为提供了查询、增加记录、删除等功能,功能比较的齐全,并对工资进行了统计如津贴管理、报表统计等。

基本上能满足管理员和公司的要求。

此次数据库课程设计的主要设计如下:原理分析、程序设计过程、程序实现和程序调试以及数据库的设计.需求分析、概要结构设计、逻辑结构设计、物理结构设计和数据库的实施和维护。

主要包括三大功能模块:1.进入界面设计。

2.员工管理界面设计。

二、 需求分析功能需求分析:该通用工资管理系统具备下列功能:管理员通过输入用户名和密码进下该系统后,可以进行一些基本查询(员工信息查询、部门领导信息查询、工资奖金信息查询)、工资管理(基本工资及津贴奖金设定、计算总工资、津贴管理、加班工资管理);通过输入密码,可以进行查询员工的数据(工资,奖金津贴,加班情况)。

具体功能的详细描述如下1.用户名和密码即可进入[工资管理]功能窗体,在其中输入员工的相关信息, 按[查询]就可查找信息。

2.点击[工资查询界面]功能窗体,输入员工号即可查询员工工资信息。

3.点击[津贴查询界面]功能窗体,输入员工号即可查询员工津贴信息. 4.点击[添加员工]功能窗体,输入员工号,点击快速添加即可添加员工。

5.点击[删除员工]功能窗体,输入员工号,即可删除员工。

数据流需求分析:寻找信息 数据库需求分析-—数据流图三、概要设计根据需求分析阶段得到的功能需求,管理员、员工通过输入用户名号和密码进下该系统后,可以进行一些基本查询(员工工资信息查询、津贴信息查询)、还可以进行员工删除和添加员工的操作,员工通过登录并输入密码,可以进行查询自己的数据(工资,津贴)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
来实现密码隐藏,字符串的使用,文件的写入等功能;
3、详细设计及实现
主要叙述自己承担部分的那些模块的算法和数据结构,并给出程序调试和测试情况。画出主要模块的算法流程图,配合运行界面抓图和文字说明进行描述。
【1】在此程序中运用到的算法有:排序算法,字符串的逐个比较算法,文件写入算法,类数组中成员数据的插入和删除等操作。
cout<<"|-------8.菜单-------|"<<endl;
cout<<"|-------9.写入-------|"<<endl;
cout<<"|-------0.退出-------|"<<endl;
cout<<"|--------------------|"<<endl;
}
//添加函数
void add(company *stu,int &a){
2)具体完成的设计内容,主要叙述自己完成了哪几个功能模块,每个模块的规模,自己是否有创新点并添加了哪些其他有用的功能,如果有,进行简要说明。
【1】开发一个小型工资管理系统,工资信息包括:员工编号,姓名,基本工资,岗位工资,奖励,应发工资,公积金,扣税,实发工资等。
系统功能说明如下:
(1)密码验证功能:主要实现登陆密码的验证工作。
for(i=0;i<a;i++){
for(j=i+1;j<a;j++){
if(stu[i].thp>stu[j].thp){
tmp=stu[i];
stu[i]=stu[j];
stu[j]=tmp;
}
}
}
cout<<"按实发工资排序成功"<<endl;
}
//输出函数
void output(company *stu,int a){
程序设计
课程设计报告
学号
姓名
成绩
徐顺利
惠安德
1606010314
李建鹏
1606010315
刘邓
计算16 -- 3班第2组
课程设计报告的基本内容
1、概述
1)设计的任务和需要的知识点。主要阐述所选题目的设计完成哪些任务?
【1】工资管理系统
需要的知识点:类的定义和使用,类外函数的定义和使用。比较排序,case的使用,写入文件的操作方法
int m;
m=mmyz();
if(m==3){
printf("..........................\n");
}
else{ //当密码正确时
int i;
int n; //功能序号
int a; //输入员工个数
company st[100];//定义类数组
company *stu=st;//让类指针指向数组首地址
【1】在设计此程序过程中,类数组的使用及形参与实参的转化和文件的写入成为了一个难点,后来通过小组各成员查阅教材及商讨成功解决了该问题。
【2】心得体会:在本次程序设计中,让我们每位小组成员都不同程度的发现了自己在学习中的知识盲点,发现了自己的不足并及时通过讨论和查阅资料填补了自己的知识漏洞,并从中得到教训和经验。
{
cout<<"密码正确"<<endl;
cout<<"成功进入系统"<<endl;
break;
}
else
{
cout<<endl<<"密码错误,请重新输入"<<endl;
z++;
}
if(z==3)
{
cout<<"禁止登陆"<<endl;
break;
}
}
return(z);
}
//输入函数
void company::setdata(){
4、结论
即说明自己设计的程序是否达到了设计题目的要求,功能是否完善,有何特点,有什么不足之处,有何建议和改善等
【1】设计程序已达到设计题目的所有要求,功能也已完善,在程序中也体现了c++的封装性思维。只是程序中编程规范问题还需多加注意,养成良好的变成习惯。
5、结束语
即在设计过程中遇到了哪些困难,如何解决的,通过本次课程设计得到了哪些收获,写出心得体会等。
}
fs.close();
cout<<"写入成功"<<endl;
}
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char** argv) {
e=e+stu[i].thp;
}
cout<<"员工总工资为:" <<e<<endl;
}
//查找函数
void search(company *stu,int a){
int f,i;
cout<<"输入要查询的员工编号"<<endl;
cin>>f;
for(i=0;i<a;i++){
if(stu[i].num==f){
break;
}
}
if(i==a){
cout<<"输入的员工编号无效"<<endl;
}
for(i=0;i<a;i++){
if(stu[i].num==f){
stu[i].display();
}
}
}
//排序函数
void sort(company *stu,int a){
int i,j;
company tmp;
3)分工说明
徐顺利:功能三:信息查询功能四:信息统计显示输出
惠安德:功能二:对数据进行维护,包括数据录入、添加、修改、删除、
李建鹏:功能一:密码验证功能六:具有退出系统功能
刘邓:功能五:信息保存到文件功能七:对实发工资排序
2、总体设计
根据需求,阐述本软件系统的整体设计思路,确定软件系统的体系结构。
1)软件结构设计。采用自顶向下、逐步细化的方法,将整个软件系统进行逐层分解,并画出该软件系统的总体模块结构图,即进行模块划分,并对主要功能模块进行简要说明。
company(int n,string na,int ba,int po,int bo,int sa,int f,float de,float th):num(n),name(na),basicwage(ba),postwage(po),bonus(bo),salary(sa),funds(f),deduthetax(de),thp(th){}
6、程序清单
列出整个软件系统的程序清单。程序清单要具有易读性。
#include <iostream>
#include <conio.h>
#include <fstream>
#include <string>
using namespace std;
class company{ //建立一个类
public:
int b,i;
cout<<"请输入插入个数"<<endl;
cin>>b;
cout<<"输入插入数据:"<<endl;
for(i=a;i<a+b;i++){
stu[i].setdata();
}
a=a+b;
}
//修改函数
void change(company *stu,int a){
int c,i;
cout<<"输入要修改的员工编号"<<endl;
}
}
}
//删除函数
void delet(company *stu,int &a){
int d,i;
cout<<"输入要删除的员工编号"<<endl;
cin>>d;
for(i=0;i<a;i++){
if(stu[i].num==d){
break;
}
}
if(i==a){
cout<<"输入的员工编号无效"<<endl;
int i;
for(i=0;i<a;i++){
stu[i].display();
}
}
//写入文件
void save(company *stu,int a){
int i=0;
fstream fs;
fs.open("f:\\stud.txt",ios_base::out);
fs<<"工号姓名基础工资岗位工资奖金应发工资公积金税收实发ຫໍສະໝຸດ 资"<<endl;
cout<<"税收:"<<deduthetax<<endl;
cout<<"实发工资:"<<thp<<endl;
相关文档
最新文档