完整c语言工资管理系统.doc
《完整c语言工资管理系统.doc》由会员分享,可在线阅读,更多相关《完整c语言工资管理系统.doc(19页珍藏版)》请在三一办公上搜索。
1、完整c语言工资管理系统#include<stdio.h>#include<stdlib.h>#include<string.h>#include<malloc.h>#include<conio.h>#define LEN sizeof(wor)struct workerlong kahao;/*员工工资卡号*/char name10;/*员工姓名*/int month;/月份float yfgz;/*应发工资*/float sf;/*水费*/float df;/*电费*/float sj;/*税金*/float sfgz;/*实发工资
2、*/struct worker *next;typedef struct worker wor;int num; void userId();/用户登录函数char menu(void);/主菜单wor *read(wor *head);/加载函数int save(wor *head);/保存函数void inputMenu(wor *head);/输入菜单void input(wor *head);/输入员工信息void searchMenu(wor *head);/查询菜单int numSearch(wor *pNew);/卡号查询方式函数int nameSearch(wor *pNew)
3、;/姓名查询方式函数void search(wor *head);/查询功能void deleteSal(wor *head);/删除员工信息wor *deleteNode(wor *head, long nodeNum);/找到删除节点void printSal(wor *head);/打印员工信息void totalSalMenu(wor *head);/统计工资菜单void totalSal(wor *head);/*统计员工某时间段的实发工资总和*/void DeleteMemory(wor *head);/删除内存void order(wor *head);/排序浏览函数char m
4、enu1(void);/排序浏览菜单void modify(wor *head);/修改函数,修改完后保存信息void modifyNode(wor *head);/查找节点并修改信息 /*=*/int main()/*主函数main,功能:通过调用各函数,实现员工工资信息管理系统的功能*/char ch;wor *head=NULL;system("color f2");printf("n");printf("n");printf("n");printf("n");printf("n
5、");printf("n");printf(" n");printf(" n");printf(" 欢 迎 进 入 系 统 n");printf(" n");printf(" n");printf(" n");printf(" n");getchar();userId();system("cls"); while(1)ch=menu();switch(ch)/*用switch语句实现功能选择*/case 1
6、:head=read(head);inputMenu(head);break;/*调用创建链表函数,添加员工工资信息,并保存到文件夹中*/case 2:head=read(head);searchMenu(head);break;/*调用信息查询函数,查询员工工资信息*/case 3: head=read(head); deleteSal(head); break;/*调用删除信息函数,删除员工工资信息*/ case 4: head=read(head); printSal(head); break;/*调用显示信息资料函数*/ case 5: head=read(head); totalSa
7、lMenu(head); break;/*统计某时间段员工工资信息*/ case 6: head=read(head); order(head); break;/*按照卡号对员工进行排序浏览*/ case 7: head=read(head); modify(head); break;/修改员工工资信息 case 0: system("cls"); printf("nnnnn"); printf("ttn"); printf("tt n"); printf("tt n"); printf(&qu
8、ot;tt 感 谢 使 用 n"); printf("tt n"); printf("tt n"); printf("tt n"); printf("tt n"); printf("nnnnn"); printf("tttttttt12 软件1班n"); printf("tttttttt 蔡文豪n"); printf("tttttttt201241404120nnn"); getchar(); exit(0);/*退出系统,返
9、回主界面*/ DeleteMemory(head); /*释放所有已分配的printf("End of program!"); break; default: printf("输入错误,请重试!n"); save(head);return 0;/*=*/char menu(void)/*函数menu,功能:主菜单选择界面*/char ch;printf(" 工资信息管理系统 n");printf("n");printf("-1 * 输入员工工资信息 *- nn");printf("t-
10、2 * 查询员工工资信息 *- nn");printf("-3 * 删除员工工资信息 *- nn");printf("t-4 * 浏览员工工资信息 *- nn");printf("-5 * 统计实发工资总额 *- nn ");printf("t-6 * 工资信息排序处理 *- n");printf("-7 * 修改员工工资信息 *- nn ");printf("t-0 * 退出工资管理系统 *- n");/*菜单选择界面*/printf("n")
11、;printf("请输入您的选择:");scanf(" %c",&ch);/*选择操作*/return ch;/*=*/void userId()int count=0;char q5="1234"char b5;char c;int i=0;part1:printf("请输入您的密码:");while(c=getch()!=13)putchar(*);bi=c;i+;printf("n");bi=0;if(strcmp(q,b)!=0)printf("密码错误,请重新输入!n
12、");getchar();count+;if(count>=3)printf("您已经三次输入用户名或密码错误,系统自动退出!n"); exit(0); /*退出系统*/goto part1;printf("n");/*=*/wor *read(wor *head)FILE *fp;wor *s;wor *p;int n;fp=fopen("D:1.txt","rb");/以制度方式打开一个二进制文件if(NULL=fp)/如果打开失败就返回-1;printf("打开文件失败!n"
13、;);head=NULL;return NULL;head=(wor *)malloc(sizeof(wor);p=head;while(!feof(fp)/为下个节点分配内存空间s=(wor *)malloc(sizeof(wor);n=fread(s,sizeof(wor),1,fp);/从文件读取数据到节点if(n<1)free(s);p->next=NULL;/最后一个节点为NULLbreak;num+;p->next=s;/保存下个节点p=p->next;/切换至下个节点p->next=NULL;/最后一个节点为NULLfclose(fp);return
14、 head;/*=*/int save(wor *head)FILE *fp;wor *p;fp=fopen("D:1.txt","wb");if(NULL=fp)printf("打开文件失败!n");return -1;p=head->next;dofwrite(p,LEN,1,fp);/把数据保存到fp指向的文件中p=p->next;while(p!=NULL);fflush(fp);fclose(fp);return 0;/*=*/void inputMenu(wor *head)char ch;int i=0;do
15、input(&head);printf("是否继续添加(Y/N)?n");printf("请输入您的选择:");scanf(" %c",&ch);i+;while(ch=y|ch=Y);printf("您添加了%d个员工信息!n",i);/*=*/void input(wor *head)wor *s;wor *p;if(*head=NULL)/如果表头为空,先为它分配内存*head=(wor *)malloc(LEN);p=*head;else/否则说明有内容,直接切换到尾节点p=*head;wh
16、ile(p->next)p=p->next;s=(wor *)malloc(LEN);/为这个节点分配内存printf("请输入员工工资卡号(6位):n");scanf("%ld",&s->kahao);while(s->kahao<100000|s->kahao>=1000000)printf("输入错误,请重新输入6位员工编号:");scanf("%d",&s->kahao);printf("请输入员工姓名:");scanf(&
17、quot;%s",s->name);printf("请输入您要建立的月份:");scanf("%d",&s->month);printf("请输入此人该月应发工资:");scanf("%f",&s->yfgz);printf("请输入此人该月水费:");scanf("%f",&s->sf);printf("请输入电费:");scanf("%f",&s->df);if
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 语言 工资管理 系统
链接地址:https://www.31ppt.com/p-2385379.html