工资管理Word下载.docx
《工资管理Word下载.docx》由会员分享,可在线阅读,更多相关《工资管理Word下载.docx(10页珍藏版)》请在冰豆网上搜索。
入:
主菜单选择项
出:
整个所有学生的信息
处理:
1.
按以下格式显示主菜单和提示使用者选择:
工资管理系统:
0计算实发工资
1查找记录
2删除记录
3插入记录
4保存文件
5按实发工资升序排序
6退出
请选择(0,2,3,4,5,6):
2.
接收主菜单选择项
如果选择项的值为0,调用计算实发工资子模块。
如果选择项的值为1,调用查找记录子模块。
如果选择项的值为2,调用删除记录子模块。
如果选择项的值为3,调用插入记录子模块。
如果选择项的值为4,调用保存文件子模块。
如果选择项的值为5,调用按实发工资升序排序子模块。
如果选择项的值为6,结束操作,退出本系统。
B.
插入工资记录子模块说明书
插入工资记录模块
根据给定员工的号码,姓名,基本工资进行添加
该员工的工资信息
按以下格式显示子菜单和提示使用者选择:
插入员工工资系统
⑴请按提示输入要插入的员工的号码
⑵在第二菜单中输入员工的号码,姓名,基本工资
⑶回车返回主菜单
C.保存文件子模块说明书
保存文件子模块
所需保存的员工的姓名
保存成功该员工资料
处理:
按以下格式显示子菜单和提示使用者选择:
保存文件系统
⑴请按提示输入要保存的员工资料的员工姓名(此员工资料之前已经确定插入)
⑵回车显示保存成功
D.计算实发工资子模块说明书
计算实发工资子模块
员工的工资扣款
员工的应发工资,税金,实发工资
计算实发工资系统
⑴首先,要先插入、保存好员工的工资信息
⑵按号码排序提示,输入该员工的扣款,回车得到员工的应发工资,税金,实发工资
⑶依次填入其它员工的扣款即得到所有员工的应发工资
⑷计算完后回车返回主菜单
E.查找记录子模块说明书
查找员工工资记录子模块
要查找的员工姓名
所要查找的员工的工资信息
1.按以下格式显示子菜单和提示使用者选择:
查找员工工资系统
输入所要查找的员工工资的姓名,回车
2.⑴显示出所查员工的工资信息,回车返回主菜单
⑵显示不出所查员工任何信息,出现查不到的情况,回车返回主菜单
F.删除记录子模块说明书
删除员工工资记录子模块
根据给定员工的号码进行删除
整个员工的所有工资资料
删除员工工资记录系统
⑴请输入要删除的员工工资的员工号码
⑵回车确定删除
⑶再次回车返回主菜单
G.按实发工资升序排序子模块说明书
按实发工资升序排序子模块
根据给定的学生的实发工资从小到大进行排序
已经排好序的员工实发工资的序列
按实发工资升序排序系统
⑴对已经保存过的员工资料,按提示回车
⑵系统自动完成对员工实发工资由小到大的顺序进行排序
三、详细设计
1.“工资管理系统总控模块”的详细设计
⑴概述
本模块的详细设计依据是:
总体设计中的“A.工资管理系统的总控模块说明书”。
⑶程序流程图如下169
C语言课程设计
2.“计算实发工资子模块”的详细设计
⑴本模块的详细设计的依据是:
总体设计中的“D.计算实发工资子模块”的模块说明书。
⑵程序流程图如下:
开始
定义整型变量x=0
显示操作项目让使用者
选择,输入员工号码
如果存在,输入扣
不存在
款,返回得实发工资
返回
3.“查找记录子模块”的详细设计
⑴本模块的详细设计的依据是:
总体设计中的“E.查找记录子模块”的模块说明书。
⑵程序流程图如下:
开始
定义整型变量x=1
输入所要查找的员工
工资姓名
显示查找结果
显示不存在
返回
4.“删除记录子模块”的详细设计
总体设计中的“F.删除记录子模块”的模块说明书。
开始
定义整型变量x=2
输入要删除的员工工资
的员工号码
存在对象,回车确定
不存在该对象
删除
5.“插入工资记录子模块”的详细设计
总体设计中的“B.插入工资记录子模块”的模块说明书。
定义整型变量x=3
输入要插入的员工的号码
输入员工的号码,姓名,
基本工资
确定,退出保存
输入错误
6.“保存文件子模块”的详细设计
总体设计中的“C.保存文件子模块”的模块说明书。
定义整型变量x=4
输入所需保存的员工的姓名
保存员工工
保存不成功
资资料成功
7.“按实发工资升序排序子模块”的详细设计
总体设计中的“G.按实发工资升序排序子模块”的模块说明书。
定义整型变量x=5
根据给定的学生的实发
工资从小到大进行排序
回车排序成功
四、编码
1.说明
“工资管理系统总控模块”的功能由menu_select函数实现,根据“工资管理系统总控模块”的程序流程图编写menu_select函数。
“计算实发工资子模块”的功能由calc函数实现,根据“计算实发工资子模块”的程序流程图编写calc函数。
“查找记录子模块”的功能由search函数实现,根据“查找记录子模块”的程序流程图编写search函数。
“删除记录子模块”的功能由delete函数实现,根据“删除记录子模块”的程序流程图编写delete函数。
“插入记录子模块”的功能由insert函数实现,根据“插入记录子模块”的程序流程图编写insert函数。
“保存记录子模块”的功能由save函数实现,根据“插入记录子模块”的程序流程图编写save函数。
“按实发工资升序排序子模块”的功能由sort函数实现,根据“按实发工资升序排序子模块”的程序流程图编写sort函数。
2.选择编写程序语言
/******头文件(.h)***********/
#include"
stdio.h"
/*I/O函数*/
bios.h"
/*ROM基本输入输出函数*/
dos.h"
/*dos接口函数*/
conio.h"
/*屏幕操作函数*/
stdlib.h"
/*其它说明*/
string.h"
/*字符串函数*/
mem.h"
/*内存操作函数*/
ctype.h"
/*字符操作函数*/
alloc.h"
/*动态地址分配函数*/
/****变量定义*******/
typedefstructz1
/*定义数据结构*/
{
charno[11];
/*编号*/
charname[15];
/*姓名*/
chardanwei[15];
/*单位*/
floatjbgz;
/*基本工资*/
floatkoukuan;
/*扣款*/
floatyfgz;
/*应发工资*/
floatshuijin;
/*税金*/
floatsfgz;
/*实发工资*/
structz1*prior;
/*前驱指针*/
structz1*next;
/*后继指针*/
}SALARY;
/*结构体类型名*/
structz1*First;
/*双链表头指针*/
structz1*Last;
/*双链表尾指针*/
/******函数原型*********/
voidinit();
/*初始化*/
voidcreate();
/*创建链表*/
voidcalc();
/*计算应发工资*/
voiddelete();
/*删除*/
voidsearch();
/*查找*/
voidsave();
/*保存文件*/
voidload();
/*读取文件*/
voidcomputer();
/*计算所需各种票面张数*/
voidinsert();
/*插入*/
voidappend();
/*追加*/
voidcopy();
/*复制文件*/
voidsort();
/*排序*/
voidindex();
/*索引*/
voidtotal();
/*分类合计*/
voidlist();
/*显示所有数据*/
voidprint(SALARY*p);
/*输出单条记录*/
voiddisplay();
/*随意逐条显示*/
floatfax(floatx);
/*计算税金*/
intmenu_select();
/*主菜单*/
/*******主函数开始**********/
main()
inti;
clrscr();
for(;
;
)
{
switch(menu_select())
/*调用菜单函数返回一个整数值*/
case0:
calc();
break;
/*计算实发工资*/
case1:
search();
/*查找职工信息数据*/
case2:
delete();
/*删除记录*/
case3:
insert();
/*插入记录*/
case4:
save();
case5:
sort();
/*按实发工资升序排序*/
case6:
exit(0);
/*退出*/
}
}
/*菜单函数,函数返回值为整型,代表所选的菜单项*/
menu_select()
char*f[]=
{
/*定义菜单字符串数组*/
"
**************MENU*************"
/*菜单的标题行*/
0.Calcthesalary"
1.Searchrecordonname"
/*查找记录*/
2.Deletearecord"
3.Insertrecordtolist"
4.Savedatatothefile"
5.Sortonsfgz"
6.Quit"
};
chars[80];
int
i;
intkey=0;
/*记录所压键值*/
intc=0;
gotoxy(1,25);
/*移动光标*/
printf("
pressanykeyentermenu......\n"
);
/*压任意键进入主菜单*/
getch();
/*清屏*/
textcolor(YELLOW);
/*设置文本颜色为黄色*/
textbackground(RED);
/*设置背景颜色为红色*/
gotoxy(10,2);
putch(0xda);
/*输出左上角边框┏*/
for(i=1;
i<
44;
i++)
putch(0xc4);
/*输出上边框水平线*/
putch(0xbf);
/*输出右上角边框
┓*/
for(i=3;
22;
i++)
/*输出左右两边的垂直线*/
gotoxy(10,i);
putch(0xb3);
gotoxy(54,i);
gotoxy(10,22);
putch(0xc0);
/*输出左上角边框┗*/
/*输出下边框水平线*/
putch(0xd9);
/*输出右下角边框┛*/
window(11,3,53,21);
/*制作显示菜单的窗口,大小根据菜单条数设计*/
for(i=0;
8;
gotoxy(10,i+1);
cprintf("
%s"
f[i]);
/*输出菜单项数组*/
i=1;
/*设置默认选项在第一项*/
textbackground(LIGHTGREEN);
/*设置背景颜色为浅绿*/
f);
/*输出菜单项,表示选中*/
/*移动光标到菜单的第一项*/
while(key!
=13)
/*所压键不是回车键时*/
C语言课程设计-工资管理系统
while(bioskey
(1)==0);
/*查询是否压下了一个键*/
key=bioskey(0);
/*返回下一个在键盘压下的键*/
key=key&
0xff?
key&
0xff:
key>
>
/*对所压的键进行判断*/
textbackground(BLUE);
/*设置背景颜色为蓝色*/
/*输出菜单项*/
if(key==72)i=i==1?
17:
i-1;
/*如压向上光标键↑,i减1,如已到第一行再上移,则到最后一行*/
if(key==80)i=i==17?
1:
i+1;
/*如压向下光标键↓,i加1,如已到最后一行再下移,则到第一行*/