定义整型变量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函数*/
#include "bios.h" /*ROM基本输入输出函数*/
#include "dos.h" /*dos接口函数*/
#include "conio.h" /*屏幕操作函数*/
#include "stdlib.h" /*其它说明*/
#include "string.h" /*字符串函数*/
#include "mem.h" /*内存操作函数*/
#include "ctype.h" /*字符操作函数*/
#include "alloc.h" /*动态地址分配函数*/
/****变量定义*******/
typedef struct z1 /*定义数据结构*/
{
char no[11]; /*编号*/
char name[15]; /*姓名*/
char danwei[15]; /*单位*/
float jbgz; /*基本工资*/
float koukuan; /*扣款*/
float yfgz; /*应发工资*/
float shuijin; /*税金*/
float sfgz; /*实发工资*/
struct z1 *prior; /*前驱指针*/
struct z1 *next; /*后继指针*/
}SALARY; /*结构体类型名*/
struct z1 *First; /*双链表头指针*/
struct z1 *Last; /*双链表尾指针*/
/******函数原型*********/
void init(); /*初始化*/
void create(); /*创建链表*/
void calc(); /*计算应发工资*/
void delete(); /*删除*/
void search(); /*查找*/
void save(); /*保存文件*/
void load(); /*读取文件*/
void computer(); /*计算所需各种票面张数*/
void insert(); /*插入*/
void append(); /*追加*/
void copy(); /*复制文件*/
void sort(); /*排序*/
void index(); /*索引*/
void total(); /*分类合计*/
void list(); /*显示所有数据*/
void print(SALARY *p);/*输出单条记录*/
void display(); /*随意逐条显示*/
float fax(float x); /*计算税金*/
int menu_select(); /*主菜单*/
/*******主函数开始**********/
main()
{
int i;
clrscr();
for(;;)
{
switch(menu_select()) /*调用菜单函数返回一个整数值*/
{
case 0:calc();break; /*计算实发工资*/
case 1:search();break; /*查找职工信息数据*/
case 2:delete();break; /*删除记录*/
case 3:insert();break; /*插入记录*/
case 4:save();break; /*保存文件*/
case 5:sort();break; /*按实发工资升序排序*/
case 6:exit(0); /*退出*/
}
}
}
/*菜单函数,函数返回值为整型,代表所选的菜单项*/
menu_select()
{
char *f[]=
{
/*定义菜单字符串数组*/
"**************MENU*************", /*菜单的标题行*/
" 0. Calc the salary", /*计算实发工资*/
" 1. Search record on name", /*查找记录*/
" 2. Delete a record", /*删除记录*/
" 3. Insert record to list", /*插入记录*/
" 4. Save data to the file", /*保存文件*/
" 5. Sort on sfgz", /*排序*/
" 6. Quit", /*退出*/
};
char s[80];
int i;
int key=0; /*记录所压键值*/
int c=0;
gotoxy(1,25); /*移动光标*/
printf("press any key enter menu......\n");/*压任意键进入主菜单*/
getch();
clrscr(); /*清屏*/
textcolor(YELLOW); /*设置文本颜色为黄色*/
textbackground(RED); /*设置背景颜色为红色*/
gotoxy(10,2);
putch(0xda); /*输出左上角边框┏*/
for(i=1;i<44;i++)
putch(0xc4); /*输出上边框水平线*/
putch(0xbf); /*输出右上角边框 ┓*/
for(i=3;i<22;i++) /*输出左右两边的垂直线*/
{
gotoxy(10,i);putch(0xb3);
gotoxy(54,i);putch(0xb3);
}
gotoxy(10,22);putch(0xc0); /*输出左上角边框┗*/
for(i=1;i<44;i++)
putch(0xc4); /*输出下边框水平线*/
putch(0xd9); /*输出右下角边框┛*/
window(11,3,53,21); /* 制作显示菜单的窗口,大小根据菜单条数设计*/
clrscr(); /*清屏*/
for(i=0;i<8;i++)
{
gotoxy(10,i+1);
cprintf("%s",f[i]); /*输出菜单项数组*/
}
i=1;
gotoxy(10,2); /*设置默认选项在第一项*/
textbackground(LIGHTGREEN); /*设置背景颜色为浅绿*/
cprintf("%s",f[1]); /*输出菜单项,表示选中*/
gotoxy(10,2); /*移动光标到菜单的第一项*/
while(key!=13) /*所压键不是回车键时*/
{
上一页 [1] [2] [3] [4] [5] [6] 下一页