c语言工资管理系统输出错误,员工工资管理系统(c语言编程).docx

#include#define null 0

typedef struct Info1

{

char num[10];

char name[10];

char depar[10];

char yfsalary[10];

char aband[10];

char tax[10];

char sfsalary[10];

struct Info1 *next;

}Info2;

typedef struct Info1 *Info;

Info head;

void display();

void find();

void modify();

void add();

void del();

void list();

void listOne(Info s);

Info isExists(char *num);

void init();

void init()

{

head=(Info)malloc(sizeof(Info2));

head->next=null;

}

void main()

{

init();

while(1)

{

char c;

display();

scanf("%c",&c);

switch(c)

{

case '1':find();break;

case '2':add();break;

case '3':modify();break;

case '4':del();break;

case '5':list();break;

case '6':printf("\t\t...退出系统!\n");return;

default: printf("\t\t输入错误!请按任意键返回重新选择(1-7)\n");getchar();

}

}

}

void display()

{

printf("\n\t** 欢迎使用员工信息管理系统 **\n\n");

printf("\t请选(1-7):\n");

printf("\t============================================\n");

printf("\t\t1.查询员工信息\n");

printf("\t\t2.录入员工信息\n");

printf("\t\t3.修改员工信息\n");

printf("\t\t4.删除员工信息\n");

printf("\t\t6.显示所有员工信息\n");

printf("\t\t7.退出系统\n");

printf("\t============================================\n");

printf("\t您的选择是: ");

}

void listOne(Info p)

{

printf("\n该员工信息记录如下: ");

printf("\n==========================================================\n\n");

printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n","员工编号","姓名","部门","应付工资","保险","税金","实付工资");

printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n",p->num,p->name,p->depar,p->yfsalary,p->aband,p->tax,p->sfsalary);

}

Info isExists(char *num)

{

Info p,q;

p=head;

q=p->next;

while(q!=null)

{

if(strcmp(q->num,num)==0)

return p;

p=q;

q=p->next;

}

return p;

}

void add()

{

Info p,q;

char num[10];

q=(Info)malloc(sizeof(Info2));

printf("\t\t请输入员工编号: ");

scanf("%s",num);

p=isExists(num);

if (p->next==null)

{

strcpy(q->num,num);

printf("\t\t请输入员工姓名: ");

scanf("%s",q->name);

printf("\t\t请输入该员工的部门: ");

scanf("%s",q->depar);

printf("\t\t请输入该员工的应付工资金额: ");

scanf("%s", q->yfsalary);

printf("\t\t请输入该员工的保险金额: ");

scanf("%s", q->aband);

printf("\t\t请输入该员工的税金金额: ");

scanf("%s",q->tax);

printf("\t\t请输入该员工的实付工资: ");

scanf("%s",q->sfsalary);

q->next=null;

p->next=q;

}

else

printf("\n\t\t您所输入的员工编号以存在! ");

printf("\n\t\t按任意键返回住菜单......");

getchar();

}

void del()

{

Info p,q;

char num[10];

if (head->next==null)

{

printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");

getchar();

return;

}

printf("\t\t请输入员工编号: ");

scanf("%s",num);

p=isExists(num);

q=p->next;

if (q!=null)

{

q=q->next;

p->next=q;

printf("\n\t\t删除成功! ");

}

else

printf("\n\t\t您所输入的员工编号有误或不存在! ");

printf("\n\t\t按任意键返回主菜单......");

getchar();

}

void modify()

{

Info p,q;

char num[10];

if (head->next==null)

{

printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");

getchar();

return;

}

printf("\t\t请输入员工编号: ");

scanf("%s",num);

p=isExists(num);

q=p->next;

if(q!=null)

{

listOne(q);

printf("\t\t请输入该员工的新姓名: ");

scanf("%s",q->name);

printf("\t\t请输入该员工的部门: ");

scanf("%s",q->depar);

printf("\t\t请输入该员工的应付工资金额: ");

scanf("%s",q->yfsalary);

printf("\t\t请输入该员工的保险: ");

scanf("%s",q->aband);

printf("\t\t请输入该员工的新税金金额: ");

scanf("%s",q->tax);

printf("\t\t请输入该员工的新实付工资: ");

scanf("%s",q->sfsalary);

}

else

printf("\n\t\t您所输入的员工编号有误或不存在!");

printf("\n\t\t按任意键返回主菜单......");

getchar();

}

void list()

{

Info p;

if (head->next==null)

{

printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");

getchar();

return;

}

printf("\n所有员工信息记录如下: ");

printf("\n========================================================================\n\n");

printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n","员工编号","姓名","部门","应付工资","保险","税金","实付金额");

p=head->next;

while(p!=null)

{

printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n",p->num,p->name,p->depar,p->yfsalary,p->aband,p->tax,p->sfsalary);

p=p->next;

}

printf("\n\t\t按任意键返回主菜单......");

getchar();

}

void find()

{

Info p;

char num[10];

if (head->next==null)

{

printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");

getchar();

return;

}

printf("\t\t输入员工编号: ");

scanf("%s",num);

p=isExists(num);

p=p->next;

if(p!=null)

listOne(p);

else

printf("\n\t\t您所输入的员工信息有误或不存在!");

printf("\n\t\t按任意键返回主菜单......");

getchar();

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
//职工管理程序 //问题描述: //请设计一个职工信息管理程序,以方便人事部门对本单位职工的管理,该程序应该具有以下功能: //(1)能从键盘输入职工的信息 。 //(2)给定职工号,显示职工的信息。 //(3)给定工作部门,显示该部门的职工信息。 //(4)给定职工号,修改职工的信息。 //(5)给定职工号,删除职工信息。 //题目要求: //(1)按照分析、设计、编码、调试、测试的软件过程完成这个应用程序。 //(2)职工信息应该包含职工号、姓名、工作部门、职称、入厂时间、工资。 //(3)为各项操作功能设计一个菜单,应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。 //输入要求: // (1)应用程序运行后在屏幕上显示一个菜单。用户可以根据需求,选定相应的操作项目。进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。程序根据用户输入的信息完成相应的处理,实现要求的功能。 // (2)能对输入的数据进行简单的校验,例如,入厂时间必须是合法的日期格式,职工号是唯一的(一个职工号对应一个职工职工信息)。 //输出要求: // (1)应用程序运行后,要在屏幕上显示一个菜单。 // (2)要求用户输入数据时,给出清晰、明确的提示信息,包括输入的数据内容、格式以及结束方式等。 //(3)在程序完成处理后,要清楚地给出程序的处理结果。例如,在给定职工号删除职工信息时,如果该职工不存在,要提示没能删除,如果删除成功要提示删除成功。 //实现要求: // (1)在程序中使用链表存储职工信息。 // (2)采用模块化程序设计的方法,将程序中的各项功能用函数实现。 //提示: // (1)使用结构体表示职工信息,一个结点保存一条职工信息。 //扩展功能: // (1)提供一些统计功能。例如统计每个部门的人数,统计平均工资、统计各职称的人数。 // (2)职工信息从文件读入。 // (3)将职工信息保存到文件中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值