本篇文章主要讲述的是利用 C 语言在 VC6.0编译器下开发的企业职工工资管理系统,在所开发的管理系统中,可以实现录入、修改、查询、删除、排序和将信息保存到文件,以及从文件中读出信息的功能。具体的内容可查看本文章,欢迎广大朋友们前来学习和指教。如果有需要源代码的朋友们可点击博主的主页资源页面进行下载。

一、设计思路

(1)采用 C 语言来进行企业职工工资管理系统的开发设计;
(2)利用结构体数组实现企业职工工资管理系统的数据结构设计;
(3)系统具有输入、修改、查询、删除、排序和将信息保存到文件,以及从文件中读出信息的功能;
(4)系统在实现增、删、改、查、读入文件和读出文件的各个功能用函数的形式来实现;
(5)利用 do…while 循环语句来建立各个功能模块之间的连接,并且有简单的功能选择操作界面,用户可以通过数字选择功能;

二、模块设计

1.数据宏定义

宏定义则是设置了结构体数组中数组的下标,表示可以输入的数组数据的最大范围。

#define MAX 1000//企业职工最大人数
#define NUM 30//结构体数组的下标
#define ADD 20//地址的长度
#define NUM1 10//学历,职位,姓名的长度
#define SEX 5//性别的长度

2.数据库设计

采用结构体数组来实现职工信息数据的存储,同时在结构体数组中存放了职工对象的属性信息。

//*****声明结构体*******//
struct person
{int num;//职工号char name[NUM1];//姓名char position[NUM1];//职位char gread[NUM1];//学历char sex[SEX];//性别char birth[NUM];//出生char add[ADD];//住址double paid;//基本工资double extra;//奖金double discount;//扣款double pay;//实发工资
};
struct person per[MAX];
int now_per=0;

3.函数模块声明

(1)声明主体函数

void star(int n);//输出*函数
void begin();//登陆界面函数
void display();//主界面函数
void input();//输入信息函数
void find();//查询信息函数
void modify();//修改信息函数
void glance();//浏览信息函数
void sort();//排序信息函数
void insert();//插入信息函数
void dele();//删除信息函数

(2)声明局部函数

void find_name();//按姓名查找
void find_num();//按编号查找
void find_paid();//按工资查找
void modify_num();//按编号修改
void modify_name();//按姓名修改
void sortnum();//按编号排序
void sortpaid();//按工资排序
void dele_num();//按编号删除
void dele_name();//按姓名删除
void dele_paid();//按工资删除
void read();//读入信息文件函数
void save();//保存信息到文件函数

4.系统流程图

本系统流程图介绍了企业职工工资管理系统能完成的基本功能,以及基本功能下所具备的子功能模块。系统各个功能之间的操作流畅,根据所选择的数字信息便可以实现其对应的操作。

三、函数功能模块

1.主菜单函数

企业职工工资管理系统的主菜单页面,通过这个页面可以查看系统所具备的所有基本功能。

void display()//主菜单函数
{int choose; char ch;system("cls");do{printf("\n\n\t");star(60);printf("\n\n\t\t\t"); printf("欢迎登陆企业工资管理系统");printf("\n\n\t");star(60);printf("\n\n\n");printf("\t\t\t1   录入职工信息        \n");printf("\t\t\t2   查询职工信息        \n");printf("\t\t\t3   修改职工信息        \n");printf("\t\t\t4   浏览职工信息        \n");printf("\t\t\t5   排序职工信息        \n");printf("\t\t\t6   插入职工信息        \n");printf("\t\t\t7   删除职工信息        \n");printf("\t\t\t8   文件读入信息        \n");printf("\t\t\t9   安全退出系统        \n");printf("\n\t");star(60);printf("\n\n\t");printf("你选择的是(1-9):");fflush(stdin);scanf("%d",&choose);ch=getchar();switch(choose){case 1:input();break;case 2:find();break;case 3:modify();break;case 4:glance();break;case 5:sort();break;case 6:insert();break;case 7:dele();break;case 8:read();break;case 9:system("cls");printf("\n\n\t\t你已经安全退出!\n\n\t\t");exit(0);break;default:printf("请正确输入!");break;}}while(1);
}

2.录入职工信息

根据页面提示信息,可以录入职工的基本数据信息。

void input()//输入信息函数
{int i=0;char ch;system("cls");do{printf("\n\n\t");star(60);printf("\n\n\t\t\t\t");printf("录入职工信息");printf("\n\n\t");star(60);printf("\n\n\n\t输入第%d个职工的信息:\n",i+1);printf("\n\t输入职工编号:\t");fflush(stdin);scanf("%d",&per[i].num);printf("\n\t输入职工姓名:\t");fflush(stdin);gets(per[i].name);printf("\n\t输入职工性别:\t");fflush(stdin);gets(per[i].sex);printf("\n\t输入职工出生:\t");fflush(stdin);gets(per[i].birth);printf("\n\t输入职工住址:\t");fflush(stdin);gets(per[i].add);printf("\n\t输入职工学历:\t");fflush(stdin);gets(per[i].gread);printf("\n\t输入职工职位:\t");fflush(stdin);gets(per[i].position);printf("\n\t输入职工基本工资:\t");fflush(stdin);scanf("%lf",&per[i].paid);printf("\n\t输入职工奖金:\t");fflush(stdin);scanf("%lf",&per[i].extra);printf("\n\t输入职工扣款:\t");fflush(stdin);scanf("%lf",&per[i].discount);printf("\n\n");i++;now_per=i;save();printf("\n\n\t是否继续输入?(Y/N):");fflush(stdin);ch=getchar();system("cls");}while(ch!='n'&&ch!='N');system("cls");
}

3.查找职工信息

主要是显示查找职工信息主功能模块下所具备的子功能模块信息。

void find()//查找信息函数
{int i=0;int choose;char ch;system("cls");do{printf("\n\t");star(60);printf("\n\n\t\t\t查询职工信息");printf("\n\n\t");star(60);printf("\n");printf("\n\t1  按编号查找");printf("\n\t2  按姓名查找");printf("\n\t3  按基本工资查找");printf("\n\t4  返回上一层");printf("\n\n\n\t");star(60);printf("\n\n\t你选择的是(1-4):\t");fflush(stdin);scanf("%d",&choose);ch=getchar();switch(choose){case 1:find_num();break;case 2:find_name();break;case 3:find_paid();break;case 4:display();break;default:printf("请正确输入!");break;}}while(1);
}

4.修改职工信息

主要是显示修改职工信息主功能模块下所具备的子功能模块信息。

void modify()//修改信息函数
{int choose;char ch;system("cls");do{ printf("\n\n\t");star(60);printf("\n\n\t\t\t排序职工信息");printf("\n\n\t");star(60);printf("\n\n\t");printf("1  按编号修改\n\t");printf("2  按姓名排序\n\t");printf("3  返回上一层");printf("\n\n\t");star(60);printf("\n\n\t\t你的选择是(1-3):\t");fflush(stdin);scanf("%d",&choose);ch=getchar();switch(choose){case 1:modify_num();break;case 2:modify_name();break;case 3:display();break;default:printf("请正确选择!");break;}}while(1);
}

5.浏览职工信息

主要是统计所有职工的工资信息,并且显示在页面上。

void glance()//浏览信息函数
{int i;char ch;system("cls");do{printf("\n\t");star(95);printf("\n\n\t\t\t\t\t浏览全部职工信息");printf("\n\n\t");star(95);printf("\n\n\t");printf("编号\t姓名\t性别\t出生\t住址\t学历\t职位\t基本工资\t奖金\t扣款\t实发工资\n\n");for(i=0;i<now_per;i++){per[i].pay=per[i].paid+per[i].extra-per[i].discount;printf("\t%-d\t%-s\t%-s\t%-s\t%-s\t%-s\t%-s\t%-.2lf\t\t%-.2lf\t%-.2lf\t%-.2lf\n\n",per[i].num,per[i].name,per[i].sex,per[i].birth,per[i].add,per[i].gread,per[i].position,per[i].paid,per[i].extra,per[i].discount,per[i].pay);}printf("\n\t");star(95);printf("\n\n\t按任意键继续...\n");ch=getchar();}while(!ch);system("cls");
}

6.职工信息排序

主要是显示职工信息排序主功能模块下所具备的子功能模块信息。

void sort()//排序信息函数
{int choose;char ch;system("cls");do{ printf("\n\n\t");star(60);printf("\n\n\t\t\t排序职工信息");printf("\n\n\t");star(60);printf("\n\n\t");printf("1  按编号排序\n\t");printf("2  按基本工资排序\n\t");printf("3  返回上一层");printf("\n\n\t");star(60);printf("\n\n\t\t你的选择是(1-3):\t");fflush(stdin);scanf("%d",&choose);ch=getchar();switch(choose){case 1:sortnum();break;case 2:sortpaid();break;case 3:display();break;default:printf("请正确选择!");break;}}while(1);
}

7.插入职工信息

主要是显示插入职工信息主功能模块下所具备的子功能模块信息。

void insert()//插入信息函数
{char ch;system("cls");do{printf("\n\t");star(60);printf("\n\n\t\t\t插入职工信息");printf("\n\n\t");star(60);printf("\n\n\t");printf("输入插入的职工信息:\n");printf("\n\t输入职工编号:\t");fflush(stdin);scanf("%d",&per[now_per].num);printf("\n\t输入职工姓名:\t");fflush(stdin);gets(per[now_per].name);printf("\n\t输入职工性别:\t");fflush(stdin);gets(per[now_per].sex);printf("\n\t输入职工出生:\t");fflush(stdin);gets(per[now_per].birth);printf("\n\t输入职工住址:\t");fflush(stdin);gets(per[now_per].add);printf("\n\t输入职工学历:\t");fflush(stdin);gets(per[now_per].gread);printf("\n\t输入职工职位:\t");fflush(stdin);gets(per[now_per].position);printf("\n\t输入职工基本工资:\t");fflush(stdin);scanf("%lf",&per[now_per].paid);printf("\n\t输入职工奖金:\t");fflush(stdin);scanf("%lf",&per[now_per].extra);printf("\n\t输入职工扣款:\t");fflush(stdin);scanf("%lf",&per[now_per].discount);now_per+=1;save();printf("\n\n\t是否需要继续输入?(Y/N):");fflush(stdin);ch=getchar();system("cls");}while(ch!='n'&&ch!='N');
}

8.删除职工信息

主要是显示删除职工信息主功能模块下所具备的子功能模块信息。

void dele()//删除信息函数
{ int choose;char ch;system("cls");do{ printf("\n\n\t\t");star(60);printf("\n\n\t\t\t\t删除职工信息");printf("\n\n\t\t");star(60);printf("\n\n\t\t");printf("1  按编号删除\n\t\t");printf("2  按姓名删除\n\t\t");printf("3  按基本工资删除\n\t\t");printf("4  返回上一层\n\t\t");printf("\n\n\t\t");star(60);printf("\n\n\t\t你的选择是(1-4):\t");fflush(stdin);scanf("%d",&choose);ch=getchar();switch(choose){case 1:dele_num();break;case 2:dele_name();break;case 3:dele_paid();break;case 4:display();break;default:printf("请正确选择!");break;}}while(1);
}

9.数据读入文件

该功能主要是将所输入的所有职工数据全部存入文件,可以根据自己的需要指定需要存储的文件路径。

void save()//保存信息到文件函数
{int i;char ch;char file[10];FILE *fp;system("cls");printf("\n\n\t请输入要保存的文件路径:\t");fflush(stdin);gets(file);if((fp=fopen(file,"w"))==NULL){printf("\n\n\t保存失败!");ch=getchar();exit(0);}for(i=0;i<now_per;i++)fprintf(fp,"%-d\t%-s\t%-s\t%-s\t%-s\t%-s\t%-s\t%-.2lf\t\t%-.2lf\t%-.2lf\n\n",per[i].num,per[i].name,per[i].sex,per[i].birth,per[i].add,per[i].gread,per[i].position,per[i].paid,per[i].extra,per[i].discount);fclose(fp);printf("\n\n\t正在保存,请稍后");printf(".");Sleep(500);printf(".");Sleep(500);printf(".");Sleep(500);system("cls");printf("\n\n\t职工信息已成功保存在 %s !\n\n",file);Sleep(500);system("cls");
}

10.数据读出文件

该功能主要实现的是从文件中读出所有职工数据信息,系统关闭之后,下一次打开该系统后,点击该功能后,输入需要读取的数据文件,点击确定即可成功将数据信息读入本职工工资管理系统。

void read()//从文件读取信息函数
{int i;char ch;char file[10];FILE *fp;system("cls");printf("\n\n\t请输入要读入职工信息的文件路径:\t");fflush(stdin);gets(file);if((fp=fopen(file,"r"))==NULL){printf("文件读入失败!");ch=getchar();display();}now_per=0;for(i=0;i<MAX&&!feof(fp);i++) {fscanf(fp,"%d%s%s%s%s%s%s%lf%lf%lf\n\n",&per[i].num,per[i].name,per[i].sex,per[i].birth,per[i].add,per[i].gread,per[i].position,&per[i].paid,&per[i].extra,&per[i].discount);now_per++;}   fclose(fp);printf("\n\n\t正在文件中读取职工信息,请稍后");printf(".");Sleep(500);printf(".");Sleep(500);printf(".");system("cls");Sleep(500);system("cls");printf("\n\n\n\n\t%s 文件中职工信息读取成功!",file);Sleep(600);printf("\n\n\t请按任意键继续....");ch=getchar();system("cls");
}

四、功能模块展示

1.功能页面展示

2.录入职工信息

3.查询职工信息



4.修改职工信息


5.浏览职工信息

6. 职工信息排序



7.插入职工信息


8.删除职工信息




9.数据读入文件


10.数据读出文件


非常感谢广大朋友们的查看,如果对本篇文章有任何问题或者有什么不足之处,还请广大朋友们的不吝赐教。如果有喜欢本篇文章的朋友们还请给博主一个一键三连吧。

【课程设计】企业职工工资管理系统 C语言版相关推荐

  1. c语言 输入职工工资资料,通过结构体的数组来进行操作 报告,c语言课程设计报告-职工工资管理系统...

    <c语言课程设计报告-职工工资管理系统>由会员分享,可在线阅读,更多相关<c语言课程设计报告-职工工资管理系统(33页珍藏版)>请在人人文库网上搜索. 1.c 语言课程设计报告 ...

  2. C语言课程设计_职工工资管理系统

    要求 设计一个职工工资管理系统: (1)输入记录:将每一个职工的姓名.ID号以及基本工资.职务工资.岗位津贴.医疗保险.公积金的数据作为一个记录.该软件能建立一个新的数据文件或给已建立好的数据文件增加 ...

  3. 职工工资程序c语言doc,职工工资管理系统C语言程序课程设计方案.doc

    职工工资管理系统C语言程序课程设计方案 1 课 程 设 计 报 告 课程名称 C语言程序设计 课题名称 职工工资管理系统 专 业 机械电子 班 级 1101班 学 号 1 姓 名 王贝贝 指导教师 肖 ...

  4. c语言银行卡管理系统程序设计报告,《c语言程序设计》课程设计报告-职工信息管理系统.doc...

    <c语言程序设计>课程设计报告-职工信息管理系统.doc 还剩 24页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环 ...

  5. c语言课程设计 职工工资处理系统,院职工工资管理系统_C语言课程设计-2017年10月.doc...

    信息科学与技术学院 课程设计报告 2012-2013学年第一学期 课程名称:C语言课程设计上机 设计题目:院职工工资管理系统 学 号:__________________ 姓 名:__________ ...

  6. 数据结构课程设计报告-职工信息管理系统

    "数据结构"课程设计报告 系 (院):           信息工程学院 设计题目:           员工管理系统 专业班级:          计算机科学与技术1401B 小 ...

  7. 海南大学-数据库课程设计-企业人事档案管理系统

    本人大二下学期学习数据库和java,碰巧学校要求做一个数据库系统,要求有界面的交互....正好借此机会我想着看能不能把这两个学到的东西都用起来,所以就创建了此系统 操作平台:idea.mysql 系统 ...

  8. 直流电机调速c语言程序,课程设计_直流电机调速(C语言版).doc

    单片机课程设计 学院:电气与信息工程学院 班级:07级电气工程及其自动化3班 设计者: 设计名称:直流电机调速 指导老师:张志文 教授 目录 一. 课程设计题目及其实现目标--------3 二. 设 ...

  9. 二叉链表和职工管理系统结合_C语言课程设计_职工信息管理系统_单链表实现程序源代码...

    有 %d 条记录已经保存 .)\n",count); saveflag=0; } else { system("cls"); printf(" 保存文件失败, ...

  10. C语言源码做的职工工资管理系统课程设计(源码+课程设计报告)

    一.课程设计的目的: C语言课程设计是计算机科学与技术专业重要的实践性教学环节之一,本次设计结合实际应用的要求,使课程设计既覆盖C语言程序设计的知识点,又接近工程实际需要.本次设计的目的是通过课程设计 ...

最新文章

  1. asp在线压缩和解压缩文件(文件夹)
  2. Google 是如何定制 Material 主题的?
  3. 蓝桥杯java第六届决赛第四题--穿越雷区
  4. 全球与中国压延铜箔市场发展调研及投资前景战略建议报告2022-2028年版
  5. 动作分析 姿态估计_单人或多人的人体姿态骨架估计算法概述
  6. 七十七、SpringBoot整合Rabbitmq
  7. DCMTK:测试程序中定义的功能和类 ofmem.h(OF shared_ptr)
  8. C#基于LibUsbDotNet实现USB通信(一)
  9. 连接真机开发安卓(Android)移动app MUI框架 完善购物车订单等页面——混合式开发(五)
  10. c语言 gt 5u,Linux之sar命令-php面向对象实例-WinFrom控件库|.net开源控件库|HZHControls官网...
  11. redis迁移至linux,redis几种数据导出导入方式
  12. 基于struts2的web系统中的返回功能
  13. MySQL创建新连接时,不能成功连接的问题
  14. 蒙特卡洛—赌博模型笔记
  15. 推荐算法之协同过滤算法详解(原理,流程,步骤,适用场景)
  16. 泛微E-Office v9任意文件上传(CNVD-2021-49104)复现
  17. Layabox 1 layabox的项目文件以及项目配置
  18. 不能被编辑的html文档,word不能编辑怎么办 Word文档怎么设置成不可编辑?
  19. easybcd卸载linux系统,Windows 8.1和Ubuntu 14.04双系统卸载Ubuntu参考教程
  20. python破解wifi密码软件下载-python暴力获取wifi密码

热门文章

  1. 2017java考证_Sun认证Java程序员考试试题
  2. ios功耗测试软件,iOS 性能优化 Instruments 检测 App 耗电量实战
  3. Yaml:基本语法使用
  4. 进行日常记账后,怎样导出表格
  5. 2020网易游戏测试面试二面面经(上海春招)
  6. 3dmax2014 uv用法_3dmax中UV贴图的使用方法
  7. Matlab笔记-取整/生成随机数
  8. AD Undeclared identifier: GetFontID 问题解决方法
  9. 2021中青杯数学建模A题 (论文+代码) 超详细
  10. oracle年龄计算函数天 月 年,如何使用Oracle获得年龄,月份和天数的年龄