C语言 职工工资管理系统设计报告Word文件下载.docx

上传人:b****4 文档编号:8296371 上传时间:2023-05-10 格式:DOCX 页数:23 大小:919.27KB
下载 相关 举报
C语言 职工工资管理系统设计报告Word文件下载.docx_第1页
第1页 / 共23页
C语言 职工工资管理系统设计报告Word文件下载.docx_第2页
第2页 / 共23页
C语言 职工工资管理系统设计报告Word文件下载.docx_第3页
第3页 / 共23页
C语言 职工工资管理系统设计报告Word文件下载.docx_第4页
第4页 / 共23页
C语言 职工工资管理系统设计报告Word文件下载.docx_第5页
第5页 / 共23页
C语言 职工工资管理系统设计报告Word文件下载.docx_第6页
第6页 / 共23页
C语言 职工工资管理系统设计报告Word文件下载.docx_第7页
第7页 / 共23页
C语言 职工工资管理系统设计报告Word文件下载.docx_第8页
第8页 / 共23页
C语言 职工工资管理系统设计报告Word文件下载.docx_第9页
第9页 / 共23页
C语言 职工工资管理系统设计报告Word文件下载.docx_第10页
第10页 / 共23页
C语言 职工工资管理系统设计报告Word文件下载.docx_第11页
第11页 / 共23页
C语言 职工工资管理系统设计报告Word文件下载.docx_第12页
第12页 / 共23页
C语言 职工工资管理系统设计报告Word文件下载.docx_第13页
第13页 / 共23页
C语言 职工工资管理系统设计报告Word文件下载.docx_第14页
第14页 / 共23页
C语言 职工工资管理系统设计报告Word文件下载.docx_第15页
第15页 / 共23页
C语言 职工工资管理系统设计报告Word文件下载.docx_第16页
第16页 / 共23页
C语言 职工工资管理系统设计报告Word文件下载.docx_第17页
第17页 / 共23页
C语言 职工工资管理系统设计报告Word文件下载.docx_第18页
第18页 / 共23页
C语言 职工工资管理系统设计报告Word文件下载.docx_第19页
第19页 / 共23页
C语言 职工工资管理系统设计报告Word文件下载.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言 职工工资管理系统设计报告Word文件下载.docx

《C语言 职工工资管理系统设计报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言 职工工资管理系统设计报告Word文件下载.docx(23页珍藏版)》请在冰点文库上搜索。

C语言 职工工资管理系统设计报告Word文件下载.docx

(7)保存数据文件功能。

例如:

职工工资信息表

ID号XX基本工资职务工资津贴医疗保险-公积金-总工资

01望12867941981091352034

02明1185628135941141740

03王小民8954389864731294

04效章13508682101161502162

05彭山7453988461681098

各项平均工资1092.2625.214588.8108

(要求:

1.源文件采用多文件的工程结构2.数据存储采用文件形式3.标准的C输入输出4.功能完善,适当的注释,5.关于文件的容需要自学)

2.3设计环境

(1)WINDOWS2000/2003/XP/7/Vista系统

(2)VisualC++

2.4开发语言

C语言

3分析和设计

从主菜单中选择相对应的数字,使程序进入不同的程序模块,用switch实现其功能,程序共分为六个模块,分别为:

主函数、Input()函数(输入函数)、Display(T)显示函数(计算职工工资信息并输入文件)、Delete(T)删除函数(从文件中读入信息并将其删除),Chick(T)查询模块,Change(T);

修改模块,sum(T);

统计模块

3.1系统模块图

图3.1系统模块图

4具体代码实现

#include"

stdio.h"

#include<

stdlib.h>

conio.h>

string.h>

//头文件

staticintn=0;

//定义静态全局变量,存储已经读入记录的条数。

typedefstruct

{

charid[15];

/*ID号*/

charname[10];

/*XX*/

doublebase;

/*基本工资*/

doubleposition;

/*职务工资*/

doubleallowance;

/*津贴*/

doubleinsurance;

/*医疗保险*/

doublefund;

//公积金

doublewage;

//总工资

}Student;

StudentT[100];

intMenu_Select()

intc;

do{

system("

cls"

);

//清屏

printf("

\t\t******************职工工资管理系统*********************\n"

\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"

\t\t#1.添加记录#\n"

\t\t##\n"

\t\t#2.显示记录#\n"

printf("

\t\t#3.删除记录#\n"

\t\t#4.查询记录#\n"

\t\t#5.修改记录#\n"

\t\t#6.统计记录#\n"

\t\t#0.退出程序#\n"

\t\t#############################################\n"

\t\t\t请您选择(0-6)选择请输入:

"

scanf("

%d"

&

c);

}while(c<

0&

&

c>

=7);

return(c);

}

intInput(Studentstu[])

{

inti=0;

charsign;

while(sign!

='

n'

sign!

N'

\tID:

\t%s"

stu[n+i].id);

\tXX:

stu[n+i].name);

\t基本工资:

\t%lf"

stu[n+i].base);

\t职务工资:

stu[n+i].position);

\t津贴:

stu[n+i].allowance);

\t医疗保险:

stu[n+i].insurance);

\t公积金:

stu[n+i].fund);

stu[n+i].wage=stu[n+i].base+stu[n+i].position+stu[n+i].allowance+stu[n+i].insurance+stu[n+i].fund;

;

\n\t是否继续添加?

(Y/N)"

\t%c"

sign);

i++;

return(n+i);

}

voidDisplay(Studentstu[])

inti;

doublem1=0,m2=0,m3=0,m4=0,m5=0;

\n\n~~~~~~~~~~~~~按照XX进行排序!

\n\n"

------------------------------------------------------------------------------\n"

//显示的格式

IDXX基本工资职务工资津贴医疗保险公积金总工资\n"

for(i=0;

i<

n;

i++)

%-6s%-8s%-11.2lf%-11.2lf%-11.2lf%-11.2lf%-11.2lf%-11.2lf\n"

stu[i].id,stu[i].name,stu[i].base,stu[i].position,stu[i].allowance,stu[i].insurance,stu[i].fund,stu[i].wage);

//-14d%-表示左对齐14表示十四个字节的位置不足用空格补齐

i++)

{

m1+=stu[i].base;

m2+=stu[i].position;

m3+=stu[i].allowance;

m4+=stu[i].insurance;

m5+=stu[i].fund;

}

if(n!

=0)

{

printf("

----------------------------------------------------------------------\n"

各项平均工资:

%-11.2lf%-11.2lf%-11.2lf%-11.2lf%-11.2lf\n\n"

m1/n,m2/n,m3/n,m4/n,m5/n);

pause"

//系统函数停止。

intDelete(Studentstu[])

inti=0,j,x;

charm[10];

\t1.全部删除\n"

\t2.根据ID号删除\n"

\t请选择:

"

x);

if(x==1)

{

for(j=0;

j<

j++)//后一条记录覆盖前一条记录

{

stu[j]=stu[n+1];

}

n=0;

~~~~~已抹掉数据文件中的所有数据!

\n"

system("

}

elseif(x==2)

\t请输入想删除记录中的ID号:

scanf("

%s"

m);

while(strcmp(stu[i].id,m)!

=0&

n)

i++;

if(i==n)

\t职工工资管理系统中没有此人!

else

for(j=i;

n-1;

{

stu[j]=stu[j+1];

}

\t\t\t已经成功删除!

n=n-1;

return(n);

}

voidChick(Studentstu[])

intm;

\t\n请选择查询方式:

//printf输出查询格式

\t**************************************\n"

//格式:

\t**1--XX查询**\n"

\t**2--ID查询**\n"

请选择:

m);

while(m!

=1&

m!

=2)

输入错误,请重新选择:

if(m==1)//此处对名字进行特殊处理

chars[20];

intf=0;

\t请输入想查询的XX:

s);

while(strcmp(stu[i].name,s)!

n)

{//名字如果有重复的也照常输出

if(i==n)

return;

else

%s\n"

stu[i].id);

stu[i].name);

%.2lf\n"

stu[i].base);

stu[i].position);

stu[i].allowance);

stu[i].insurance);

stu[i].fund);

\t总工资:

stu[i].wage);

if(m==2)//用ID作为索引查询

\t请输入想查询的ID:

while(strcmp(stu[i].id,s)!

n)

voidChange(Studentstu[])

\t\n请选择修改方式:

\t**1--ID**\n"

\t**2--XX**\n"

if(m==1)

inti=0;

\t请输入想修改的记录中人的ID:

while(strcmp(stu[i].id,m)!

stu[i].base);

stu[i].position);

stu[i].allowance);

stu[i].insurance);

stu[i].fund);

stu[i].wage=stu[i].base+stu[i].position+stu[i].allowance+stu[i].insurance+stu[i].fund;

\t修改成功!

elseif(m==2)

\t请输入想修改的记录中人的XX:

while(strcmp(stu[i].name,m)!

voidWritetoText(Studentstu[])

FILE*fp;

/*定义文件指针*/

\t保存到文件\n"

/*输入文件名*/

if((fp=fopen("

output"

"

w"

))==NULL)

\t无法打开文件\n"

while(i<

fprintf(fp,"

%s%s%lf%lf%lf%lf%lf%lf\n"

fclose(fp);

/*关闭文件*/

保存成功!

voidRead(Studentstu[])

charfilename[20];

strcpy(filename,"

if((fp=fopen(filename,"

r"

找不到%s文件!

filename);

return;

n=0;

100&

!

feof(fp);

i++)//这里的100是前面已经说明了最多可以存100条记录

fscanf(fp,"

%s%s%lf%lf%lf%lf%lf%lf\n"

stu[i].id,&

stu[i].name,&

stu[i].base,&

stu[i].position,&

stu[i].allowance,&

stu[i].insurance,&

stu[i].fund,&

stu[i].wage);

n++;

//qsort(stu,n,sizeof(Student),p);

//调用qsort排序

读取成功,文件%s中的所有信息已经读入!

intsum(Studentstu[])

doubles=0,m=0,n1,s1;

m=0;

m=stu[i].base+stu[i].position+stu[i].allowance;

if(m>

2000)

s++;

在职工工资前三项之和于2000的占总职工的百分比:

%.2lf\n"

s/n);

return(n);

voidMenu()

while

(1)//让这里程序循环,否则就退出程序了。

switch(Menu_Select())

case1:

\n\t添加记录到职工工资管理系统\n"

/*添加记录*/

n=Input(T);

WritetoText(T);

break;

case2:

\n\t\t\t职工工资管理系统记录表\n"

Read(T);

Display(T);

/*显示记录*/

case3:

\n\t从职工工资管理系统中删除记录\n"

n=Delete(T);

/*删除记录*/

\t"

/*按任

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2