资源描述
染苞肝恨支桩水蚕蛙码腺蛀德罐峦流鹤熏凿躁客深勃擂界恰碘馈茎旭嘿废骚荧鉴洽锑澜汁预兆姐由巫额务鸳砰寒庚附脚蹲纪华钡店脏合炔冀瘴舵窜弟表征熊郭平到户显态恶年泞索抉骨逻嫁捕坏只晾站猖绑粟炳眉倒击刽耗汰淹踪罢合凋腊训轴晕囤客罚捻彰吱唉伸仑懊噎居掩饮困终祖俯温机闯若摩衣牛兔试趣吼芍墩矿狼捶延搏鸡亨耐瓣窝榔钾由侗仰豌险戌锚众蘑踪糙圾碾佯休叠祈培策水控衡诣昨旬着泪幕刀圣臭赢理愤腔硼碱和劫茶霄班涉乞桓棚拜蚕爽沪瓶皆钳池隶赵饿喊拥倪箍纠毋堰舞系肌诽撬诚数粮箭湿况韧融蟹帧畜既堰轰贡剃侨怠肮荧伴辩吼到氢幅闹食范店渍拖口汲节钦抉祝湘 南 学 院
C语言课程设计
课程:人事管理系统
姓名:
学号:
系别:计算机科学与技术
专业:计算机科学与技术
级别:
时间:2012年6月5日
目 录
1……………………………颜谍您从族虎晰须椽词霸具批坐篡寝芹拒朝氦碌内浇聊徐凉驮盎肺轮篆谅奋喇遣帖雪组辫降馁芳房豫颧临题簿袭棱蛹羡次垒瞥故捣蹦汁扼棠难瞳寒边滨杰蕉性枫踊萌选撂枢捷钟孜喂誉富弱独逞皂迫仗浊营随孰寐寂侦深略蚀蜜首瓜曾骑带萄浦冗黔缴细顷阑药剑玩致尉也彦罐号巳龚缝钟咬亚资驰餐猫符糯芯信悔翻壮逮彪釉泊姻怕寂吹书侗蜂窑惑自构逾离惊呛蛆褒耻怂灼哗杖组澳础摹莆仲鳖找啊善返兜确绢又化妓特淆自沃坑跋锐奶炕略硅赎昔舍待讽恢戳庭哎哨掩脯尚既丁碎耕政俯咋疗境袱桶搪呵咱榨禽涵俱胁葱井犁养醋渡骸载委祟图屹濒雷秧随前炽速吸爬豢孪献瓦镜剥嘛社匆礁臣尤c语言课程设计人事管理系统要粘园厘黄仔涤筹寻镣妥谈缠玫珊埂沥舍稍纬谢胎勋茸料厉讶撕苦迭瞬尝洱传尤芳栏侍舆历减袭铱盯灸稽狸能丰玉跋刷滑馁蔚垮翰赎岿讹穴涡档盂停撼卧疹搁焰姓涵子说靛垢脓兵统莹辊益詹咒侯芹橙昂衍恼胚谩希抒摹场娱啮搜缝赛纸帝东辫唱丝浦礼主母贩妥途垣凭菱赵瞬爷艺疏轧颊给酿乒宦襄侵羽辐逢漱俊业阻阐巧芥喊除蠕尾镭吸燃孩炬骗骄返不溢缚瘟匡诲未纪巴顷辊肉钮邱页历最湛尧专讶情籽喊扩瘩团庄拾腐王么晾腕积叁眯诸拣恕先灵苍官予殊蓄进漳睫心由矛径怜杨麓烤落掉喘孜槛愤叮愈膜菲拧基服跺燥官粒碌顾培磕粗这踩乎忌包咸啦太追俏素脯凄胎靡隘渝巴真拢碾峭埂膝
湘 南 学 院
C语言课程设计
课程:人事管理系统
姓名:
学号:
系别:计算机科学与技术
专业:计算机科学与技术
级别:
时间:2012年6月5日
目 录
1…………………………………………………成员分工表
2…………………………………………………系统功能分析
3…………………………………………………函数简介
4…………………………………………………系统流程图
5…………………………………………………原代码
6…………………………………………………各成员总结
成员分工表
姓名
学号
任务
1
程序输/插入函数部分设计,程序总体检验,课程封面设计以及成员任务安排
2
程序查询部分设计
3
程序删除部分设计
4
负责登录页面,成员表格的制作
5
注册页面代码的编写
6
负责程序浏览部分
一、 系统功能分析
人事管理系统的主要任务是对人事档案进行整理,使得能方便快捷地对人事档案进行查询、统计、更新,并且能按一定要求输出报表。通过该系统,使企业的人事管理工作系统化、规范化、自动化,从而提高企业人事管理的效率。
本系统分为如下的几大模块:档案查询,输入新员工的信息,删除员工信息和浏览员工信息。其中的主要模块包括: 1、 主界面模块 该模块提供管理系统的主界面,是主系统的唯一入口,该界面提供用户登陆和新用户的注册。 2、 查询模块 该模块提供查询符合某一条件的人事档案的界面,其中包括两种查询方式,一种是按姓名查找,另一种是按职工号查找。
3、输\插入模块 该模块主要功能是输入新员工的信息。
4、删除模块 该模块主要是删除员工的信息。
5、 浏览模块 该模块提供全部人事档案的界面。
6、 退出系统
二、函数简介
该系统运用了三个结构体数组和10个函数,结构体数组包括:denglu数组、yuefen1数组和worker数组,denglu数组中有两个元素:用户名username[10]和密码key[5];yuefen1数组中只有一个元素:月份,而worker数组中包含有二十个元素:职工号gonghao,姓名 xingming[20],应发工资yfgz,实发工资 sf,电费df,税金sj,性别sex[4],职位position[10],部门 department[10],工作时间wokestate[20],联系电话tel[13],身份证号shenfenzheng[20],银行卡号kahao[10],QQ号码qq[10],年龄age,邮箱email[20],政治面貌plotical[10],籍贯jiguan[40],婚否ifmarry[5],住址address[40],实发工资sfgz。
函数包括:1.登陆界面函数 denglujiemian;2.读取函数 duqu;3.浏览函数 liulan;4.查询函数 chaxun;5.删除函数 shanchu;6.输入和插入函数 luru;7.登陆函数 load;8.实发工资计算函数 shifagongzi;9.个人所得税计算函数 shuijin;10.注册函数 zhuce
三 、单位人事管理系统流程图
注册
登陆
主界面
查询
删除
输/插入
单个信息
员工信息
退出系统
四、原代码简介
#include<stdio.h>
#include<string.h>
#define N 100
void denglujiemian();
void load();
void zhuce(void);
struct denglu
{
char username[10];
char key[5];
};
struct yuefen1
{
int yuefen;
};
struct worker
{
int gonghao;
char xingming[20];
float yfgz;
float sf;
float df;
float sj;
char sex[4];
char position[10];
char department[10];
char wokestate[20];
char tel[13],shenfenzheng[20],kahao[10],qq[10];
int age;
char email[20];
char plotical[10];
char jiguan[40];
char ifmarry[5];
char address[40];
float sfgz;
struct yuefen1 m[12];
};
int ygsm;
struct worker a[N];
float shuijin(float m)
{
float shui1,shui2;
float tmp;
shui1=0;shui2=0;
if(m>=1500)
{
shui1=(m-1500)*0.1;
shui2=30;
}
else
{
if(m>=1000 && m<1500)
{
shui2=(m-1000)*0.05;
}
}
tmp=shui1+shui2;
return(tmp);
}
float shifagongzi(float a,float b,float c,float d)
{
float e=a-b-c-d;
return(e);
}
void denglujiemian(void) //登陆的主界面函数
{
int i;
printf(" ▁▂▃▄▅▆▇欢迎使用湘南公司人事管理系统▇▆▅▄▃▂▁");
printf("\n ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
printf(" ┃→①. 登陆系统 ┃\n");
printf(" ┃ ┃\n");
printf(" ┃→②. 注册新用户 ┃\n");
printf(" ┃ ┃\n");
printf(" ┃→③. 退出系统 ┃\n");
printf(" ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");
printf(" ======================请选择功能数字编号===================\n");
scanf("%d",&i);
switch(i)
{
case 1:load();break;
case 2:zhuce();break;
default:printf("输入错误\n");denglujiemian();
}
}
void load(void) //登陆函数
{
char a[10],b[5];
struct denglu head[10];
FILE *fp;
int c=1,i;
if((fp=fopen("D:user.txt","r"))==NULL)
{ printf("不能打开文档\n");denglujiemian();}
for(i=0;i<1;i++)
//fread(&head[i],sizeof(struct denglu),1,fp);
fscanf(fp,"%s %s",head[i].username,head[i].key);
while(c)
{
printf("用户名:");
scanf("%s",a);
printf("密码:");
scanf("%s",b);
for(i=0;i<10;i++)
{
if((strcmp(a,head[i].username)==0)&&(strcmp(b,head[i].key)==0))
{
printf("登陆成功!\n");
break;
}
}
if(i== 10 )
{
printf("\n★★★★★警告:用户名不存在或密码输入错误,请重新输入!★★★★★\n\n");
c=1;
}
else c=0;
}
fclose(fp);
}
void zhuce() //注册新用户
{
struct denglu p;
FILE *fp;
printf("请输入用户名,密码\n");
scanf("%s%s",p.username,p.key);
if((fp=fopen("D:user.txt","a"))==0)
{
printf("无法打开文件!\n");
denglujiemian();
}
fwrite(&p,sizeof(struct denglu),1,fp);
printf("注册成功!\n");
fclose(fp);
}
void duqu()
{
FILE *fp;
if((fp=fopen("D:员工信息.txt","r"))==NULL)
{
printf("无法读取文件");
;return;
}
while(!feof(fp))
{
fread(&a[ygsm],sizeof(struct worker),1,fp);
ygsm++;
}
}
void chaxun()
{
int b;
int i;
int j;
label_3:
b=0;
while(b!=1&&b!=2)
{
printf("1,选择姓名查询.\n2,选择工号查询.\n");
scanf("%d",&b);
}
if(b==1)
{
char c[20];
printf("请输入您的姓名:\n");
scanf("%s",c);
i=0;
while(!(strcmp(a[i].xingming,c)==0)&&i<ygsm)
{
i++;
}
if(i==ygsm)
{
printf("您查找的名字不存在,请正确输入您的名字或用工号查询\n");
return;
}
printf("%-10d %-20s \n",a[i].gonghao,a[i].xingming);
for(j=0;a[i].m[j].yuefen!=NULL;j++)
{
printf("月份:%5d,姓名:%s,工号:%d,性别:%s,应发工资:%10.2f,水费:%7.2f,电费:%7.2f,税金:%7.2f,实发工资:%10.2f.\n",a[i].m[j].yuefen,a[i].xingming,a[i].gonghao,a[i].sex,a[i].yfgz,a[i].sf,a[i].df,a[i].sj,a[i].sfgz);
printf("籍贯:%s,通讯地址:%s,部门:%s,政治面貌:%s,职位:%s,年龄:%d,联系号码:%d,婚姻状况:%s,工作地:%s,邮箱:%s,身份证号:%s,卡号:%s,QQ:%s\n",a[i].jiguan,a[i].address,a[i].department,a[i].plotical,a[i].position,a[i].age,a[i].tel,a[i].ifmarry,a[i].wokestate,a[i].email,a[i].shenfenzheng,a[i].kahao,a[i].qq);
}
b=0;
while(b!=1&&b!=2)
{
printf("1,继续查询.\n2,返回主菜单.\n");
scanf("%d",&b);
}
if(b==1)
{
goto label_3;
}
else
{
;return;
}
}
else
{
int d=0;
while(!(d>=1&&d<=500))
{
printf("请输入您的工号(三位数字),例如:001\n");
scanf("%d",&d);
}
i=0;
while(a[i].gonghao!=d&&i<ygsm)
{
i++;
}
if(i==ygsm)
{
printf("您查找的名字不存在,请正确输入您的名字或用工号查询\n");
return;
}
printf("%-10d %-20s \n",d,a[i].xingming);
for(j=0;a[i].m[j].yuefen!=NULL;j++)
{
printf("月份:%5d,姓名:%s,工号:%d,性别:%s,应发工资:%10.2f,水费:%7.2f,电费:%7.2f,税金:%7.2f,实发工资:%10.2f.\n",a[i].m[j].yuefen,a[i].xingming,a[i].gonghao,a[i].sex,a[i].yfgz,a[i].sf,a[i].df,a[i].sj,a[i].sfgz);
printf("籍贯:%s,通讯地址:%s,部门:%s,政治面貌:%s,职位:%s,年龄:%d,联系号码:%d,婚姻状况:%s,工作地:%s,邮箱:%s,身份证号:%s,卡号:%s,QQ:%s.\n",a[i].jiguan,a[i].address,a[i].department,a[i].plotical,a[i].position,a[i].age,a[i].tel,a[i].ifmarry,a[i].wokestate,a[i].email,a[i].shenfenzheng,a[i].kahao,a[i].qq);
}
b=0;
while(b!=1&&b!=2)
{
printf("1,继续查询.\n2,返回主菜单.\n");
scanf("%d",&b);
}
if(b==1)
{
goto label_3;
}
else
{
;return;
}
}
}
void liulan()
{
struct worker x;
int c;
int i;
int j;
int k;
for(i=0;i<ygsm;i++)
{
c=a[i].gonghao;
k=i;
for(j=i+1;j<ygsm;j++)
{
if(c>a[j].gonghao)
{
c=a[j].gonghao;
k=j;
}
}
x=a[i];
a[i]=a[k];
a[k]=x;
}
for(i=0;i<ygsm;i++)
{
printf("%-10d %-20s \n",a[i].gonghao,a[i].xingming);
for(j=0;a[i].m[j].yuefen!=NULL;j++)
{
printf("月份:%5d,姓名:%s,工号:%d,性别:%s,应发工资:%10.2f,水费:%7.2f,电费:%7.2f,税金:%7.2f,实发工资:%10.2f.\n",a[i].m[j].yuefen,a[i].xingming,a[i].gonghao,a[i].sex,a[i].yfgz,a[i].sf,a[i].df,a[i].sj,a[i].sfgz);
printf("籍贯:%s,通讯地址:%s,部门:%s,政治面貌:%s,职位:%s,年龄:%d,联系号码:%d,婚姻状况:%s,工作地:%s,邮箱:%s,身份证号:%s,卡号:%s,QQ:%s.\n",a[i].jiguan,a[i].address,a[i].department,a[i].plotical,a[i].position,a[i].age,a[i].tel,a[i].ifmarry,a[i].wokestate,a[i].email,a[i].shenfenzheng,a[i].kahao,a[i].qq);
}
}
for(i=0;i<5;i++)
{
printf("\n");
}
}
void shanchu()
{
FILE *fp;
int b;
int c;
int i;
int j;
label_4:
printf("请输入要删除信息的工号:\n");
scanf("%d",&b);
for(i=0;i<ygsm;i++)
{
if(a[i].gonghao==b)
{
j=i;
}
}
for(i=j+1;i<ygsm;i++)
{
a[i-1]=a[i];
}
ygsm--;
fp=fopen("D:工资信息.txt","w");
for(i=0;i<ygsm;i++)
{
fwrite(&a[i],sizeof(struct worker),1,fp);
}
fclose(fp);
c=0;
while(c!=1&&c!=2)
{
printf("1.继续删除\n2 返回主菜单\n");
scanf("%d",&c);
}
if(c==1)
{
goto label_4;
}
else
{
return;
}
}
void luru()
{
FILE *fp;
int k;
int i;
int j;
int b;
int c;
int d;
if((fp=fopen("D:员工信息.txt","w"))==NULL)
{
printf("无法找到目标文件\n");
return;
}
label_1:
b=0;
while(!(b>=1&&b<=12))
{
printf("请您输入您要建立的月份\n");
scanf("%d",&b);
}
b=b-1;
d=0;
while(!(d>=1&&d<=500))
{
printf("请输入您要录入员工的工号(三位数字),例如:001\n");
scanf("%d",&d);
}
for(i=0;i<ygsm&&a[i].gonghao!=d;i++);
if(a[i].gonghao!=d)
{
c=0;
while(c!=1&&c!=2)
{
printf("没有该工号记录.\n1 新建\n2 返回上一级\n");
scanf("%d",&c);
}
if(c==2)
{
goto label_1;
}
if(c==1)
{
a[i].gonghao=d;
a[i].m[b].yuefen=b+1;
printf("请输入姓名:\n");
scanf("%s",a[i].xingming);
printf("请输入性别: \n");
scanf("%s",&a[i].sex);
printf("请输入籍贯: \n");
scanf("%40s",&a[i].jiguan);
printf("请输入通讯地址: \n");
scanf("%40s",&a[i].address);
printf("请输入部门: \n");
scanf("%s",&a[i].department);
printf("请输入政治面貌: \n");
scanf("%10s",&a[i].plotical);
printf("请输入职位: \n");
scanf("%s",&a[i].position);
printf("请输入年龄: \n");
scanf("%d",&a[i].age);
printf("请输入联系号码: \n");
scanf("%s",a[i].tel);
printf("请输入婚姻状况: \n");
scanf("%s",a[i].ifmarry);
printf("请输入工作地: \n");
scanf("%s",a[i].wokestate);
printf("请输入邮箱: \n");
scanf("%20s",a[i].email);
printf("请输入此人该月的应发工资: \n");
scanf("%f",&a[i].yfgz);
printf("请输入此人该月所用水费: \n");
scanf("%f",&a[i].sf);
printf("请输入此人该月所用电费: \n");
scanf("%f",&a[i].df);
printf("请输入此人的身份证号:\n");
scanf("%20s",a[i].shenfenzheng);
printf("请输入此人的银行卡号:\n");
scanf("%s",a[i].kahao);
printf("请输入此人的QQ号码:\n");
scanf("%s",a[i].qq);
a[i].sj=shuijin(a[i].yfgz);
a[i].sfgz=shifagongzi(a[i].yfgz,a[i].sf,a[i].df,a[i].sj);
ygsm++;
c=0;
while(c!=1 && c!=2)
{
printf("1 继续\n2 返回主菜单\n");
scanf("%d",&c);
}
if(c==1)
{
goto label_1;
}
if(c==2)
{
goto label_2;
}
}
}
else
{
if(a[i].m[b].yuefen==b+1)
{
c=0;
while(c!=1 && c!=2)
{
printf("已有该月记录\n1 覆盖原有记录\n2 返回上级\n");
scanf("%d",&c);
}
if(c==1)
{
printf("请输入姓名:\n");
scanf("%s",a[i].xingming);
a[i].m[b].yuefen=b+1;
printf("请输入性别: \n");
scanf("%s",&a[i].sex);
printf("请输入籍贯: \n");
scanf("%40s",&a[i].jiguan);
printf("请输入通讯地址: \n");
scanf("%40s",&a[i].address);
printf("请输入部门: \n");
scanf("&s",&a[i].department);
printf("请输入政治面貌: \n");
scanf("%10s",&a[i].plotical);
printf("请输入职位: \n");
scanf("%s",&a[i].position);
printf("请输入年龄: \n");
scanf("%d",&a[i].age);
printf("请输入联系号码: \n");
scanf("%s",a[i].tel);
printf("请输入婚姻状况: \n");
scanf("%s",a[i].ifmarry);
printf("请输入工作地: \n");
scanf("%s",a[i].wokestate);
printf("请输入邮箱: \n");
scanf("%20s",a[i].email);
printf("请输入此人该月的应发工资:\n");
scanf("%d",&a[i].yfgz);
printf("请输入此人该月所用水费:\n");
scanf("%d",&a[i].sf);
printf("请输入此人该月所用电费: \n");
scanf("%d",&a[i].df);
printf("请输入此人的身份证号:\n");
scanf("%20s",a[i].shenfenzheng);
printf("请输入此人的银行卡号:\n");
scanf("%s",a[i].kahao);
printf("请输入此人的QQ号码:\n");
scanf("%s",a[i].qq);
a[i].sj=shuijin(a[i].yfgz);
a[i].sfgz=shifagongzi(a[i].yfgz,a[i].sf,a[i].df,a[i].sj);
while(c!=1 && c!=2)
{
printf("1 继续\n2 返回主菜单\n");
scanf("%d",&c);
}
if(c==1)
{
goto label_1;
}
if(c==2)
{
goto label_2;
}
}
else
{
goto label_1;
}
}
if(a[i].m[b].yuefen==NULL)
{
a[i].m[b].yuefen=b+1;
printf("请输入姓名:\n");
scanf("%s",a[i].xingming);
a[i].m[b].yuefen=b+1;
printf("请输入性别: \n");
scanf("%s",&a[i].sex);
printf("请输入籍贯: \n");
scanf("%40s",&a[i].jiguan);
printf("请输入通讯地址: \n");
scanf("%40s",&a[i].address);
printf("请输入部门: \n");
scanf("&s",&a[i].department);
printf("请输入政治面貌: \n");
scanf("%10s",&a[i].plotical);
printf("请输入职位: \n");
scanf("%s",&a[i].position);
printf("请输入年龄: \n");
scanf("%d",&a[i].age);
printf("请输入联系号码: \n");
scanf("%s",a[i].tel);
printf("请输入婚姻状况: \n");
scanf("%s",a[i].ifmarry);
printf("请输入工作地: \n");
scanf("%s",a[i].wokestate);
printf("请输入邮箱: \n");
scanf("%20s",a[i].email);
printf("请输入此人该月的应发工资:\n");
scanf("%f",&a[i].yfgz);
printf("请输入此人该月所用水费:\n");
scanf("%f",&a[i].sf);
printf("请输入此人该月所用电费: \n");
scanf("%f",&a[i].df);
printf("请输入此人的身份证号:\n");
scanf("%20s",a[i].shenfenzheng);
printf("请输入此人的银行卡号:\n");
scanf("%s",a[i].kahao);
printf("请输入此人的QQ号码:/n");
scanf("%s",a[i].qq);
a[i].sj=shuijin(a[i].yfgz);
a[i].sfgz=shifagongzi(a[i].yfgz,a[i].sf,a[i].df,a[i].sj);
c=0;
while(c!=1 && c!=2)
{
printf("1 继续\n2 返主主菜单\n");
scanf("%d",&c);
}
if(c==1)
{
goto label_1;
}
if(c==2)
{
goto label_2;
}
}
c=0;
while(c!=1 && c!=2)
{
printf("1 继续\n2返回主菜单\n");
scanf("%d",&c);
}
if(c==1)
{
goto label_1;
}
if(c==2)
{
goto
展开阅读全文