C语言员工薪资管理系统设计
一、项目要求
设计一款员工薪资管理系统,管理公司员工的编号、姓名、基本工资、奖金、税款和实发工资信息。
二、数据结构
1. 需要定义结构体存储员工编号、姓名、基本工资、奖金、税款和实发工资。
用typedef定义该结构体类型的别名SALARYM,作为该结构体类型的名称。
例如:
typedef  struct  salary
{
char num[4];//编号
char name[10];//姓名
float jbgz;  //基本工资
float jj;    //奖金
float sk;    //税款
float sfgz;  //实发工资
}SALARYM;
2. 需要定义结构体数组,存储员工薪资信息。
例如:SALARYM  salarym[N];
3. 需要定义1个全局变量,例如int  saveflag=0;,其值初始化为
0,当员工薪资信息有改变时,设置saveflag=1;可以根据saveflag 的值确定是否需要调用保存函数save实现存盘,即将数据写入保存员工薪资信息的文本文件。
三、项目功能模块及设计
员工薪资管理系统,主要利用结构体数组,实现员工编号、姓名、基本工资、奖金、税款和实发工资信息的管理。整个系统包括如下几大功能模块:录入、输出、保存、插入、修改、删除、排序、查询、统计、退出等10个功能。
1. main函数执行流程
(1)定义SALARYM类型的数组,用于存储员工薪资的信息,例如:SALARYM  salarym[N];  N是定义的符号常量。
(2)打开存放员工薪资信息的文本文件(以什么方式打开?),只要不是文件尾,循环从文件读取记录,1次读取1条员工薪资信息记录,可以使用fread函数,同时用计数变量计数。关闭文件。
(3)输出文件打开后信息,“==>文件成功打开,总记录数是: X ”。第一次运行调试好的软件,没有记录。
当录入记录、保存后,再运行员工薪资管理系统,显示如下:
(4)调用菜单函数,显示操作选择菜单,例如:menu();
(5)根据您的选择,调用不同的自定义函数,实现各种功能。
提示:
●如果想实现选择的反复操作,如何实现。
●在退出系统设计中,需要根据saveflag值,确定是否需要保
存数据。如果saveflag==1,说明结构体数组数据有修改且未
进行存盘,需要调用save函数实现记录的保存。在调用save
函数保存前,输出提示信息:“==>是否保存修改?(y/n):”,根
自定义函数怎么用c语言
据输入字符,确定是否调用save函数。
●可以使用getchar()函数,实现等待,让用户看清输出,实现
选择。当按任意键时,继续后面操作。
●可以使用system(“cls”),在需要时清屏。
2. Menu菜单函数
输出操作选择菜单。效果如图所示。
3.Disp函数,输出员工薪资信息
设计思路:根据员工薪资记录数,实现输出。如果没有员工薪资信息,即员工薪资记录数为0,输出提示信息,例如:“=====>系统中没有员工薪资记录!”,否则逐条输出员工薪资信息。输出界面效果如下图所示。
提示:
●disp输出函数形参用什么?调用Disp函数时实参是什么?
●这里输出的是结构体数组每个元素的各个成员,这里包括num、
name是字符数组,jbgz、jj、sk、sfgz 4个都是float变量,
分别应该怎么输出。
●注意如何实现格式化输出数据。
4. Add添加员工薪资函数,实现录入员工薪资信息
设计思路:用scanf函数,从键盘输入编号、姓名、基本工资、奖金,根据利率分段计算税款,最后计算实发工资。
(1)在选择操作菜单界面,输入1,如果保存员工薪资信息的文本文件中,没有记录,输出入下图所示。
按提示,依次输入编号、姓名、基本工资和奖金。
如果继续添加,继续输入编号、姓名、基本工资和奖金。如果不想继续录入,按0,返回操作菜单选择界面。
(2)税款、实发工资成员的计算
以基本工资为计算标准,jbgz>=10000,r=2.0;
jbgz>=5000,r=1.5 ;jbgz>=3000,r=1.2;jbgz<3000,r=0;
根据实发工资=基本工资+奖金-税款;
(3)添加记录后,返回主菜单,可以主动选择8,保存员工薪资信息。运行界面如下图所示。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。