职工工资报表

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言大作业

组员|:邵国琴王陈桥谢强

题目:职工工资报表

本题主函数通过调用create() 函数建立一个职工链表,每个结点的数据包括职工号和工资。链表建立后主函数又调用list() 函数打印输出链表的全部结点的职工号和工资

代码:

#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]; /*姓名*/

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:init();break; /*初始化*/

case 1:create();break; /*输入数据创建双链表*/

case 2:list();break; /*显示所有数据*/

case 3:display();break; /*单条显示*/

case 4:calc();break; /*计算实发工资*/

case 5:search();break; /*查找职工信息数据*/

case 6:delete();break; /*删除记录*/

case 7:insert();break; /*插入记录*/

case 8:append();break; /*追加记录*/

case 9:save();break; /*保存文件*/

case 10:load(); break; /*读取文件*/

case 11:copy();break; /*复制文件*/

case 12:sort();break; /*按实发工资升序排序*/

case 13:computer();break; /*计算所需票面数*/

case 14:index();break; /*按职工号索引*/

case 15:total();break; /*按部门求合计*/

case 16:exit(0); /*退出*/

}

}

}

/*菜单函数,函数返回值为整型,代表所选的菜单项*/

menu_select()

{

char *f[]= { /*定义菜单字符串数组*/

"**************MENU*************", /*菜单的标题行*/

" 0. init list", /*初始化双链表*/

" 1. Enter list", /*输入数据,创建双链表*/

" 2. List all \n", /*显示所有记录*/

" 3. Display record by step", /*显示单条记录*/

" 4. Calc the salary", /*计算实发工资*/

" 5. Search record on name", /*查找记录*/

" 6. Delete a record", /*删除记录*/

" 7. Insert record to list", /*插入记录*/

" 8. Append record to file", /*追加记录*/

" 9. Save data to the file", /*保存文件*/

" 10. Load data from the file",/*读取文件*/

" 11. Copy the file to new file", /*复制文件*/

" 12. Sort on sfgz", /*排序*/

" 13. Computer ticket number", /*计算所需票面数*/

" 14. Index on number", /*索引*/

" 15. Total on number", /*分类合计*/

" 16. 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(BLUE); /*设置背景颜色为兰色*/

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); /*输出右下角边框┛*/

相关文档
最新文档