#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<malloc.h>
typedef struct
{
long num;
char name[10];
char date[15];
double pay;
}employee;
typedef struct node
{
employee p;
struct node *pre;
struct node *next;
}node, *linklist;
linklist head, last;
void setdata(linklist p)
{
printf("编号:");
scanf("%ld", &p->p.num);
printf("姓名:");
scanf("%s", p->p.name);
printf("入职日期:");
scanf("%s", p->p.date);
printf("工资:");
scanf("%lf", &p->p.pay);
}
void insert(linklist p)
{
p->next = last;
last->pre->next = p;
p->pre = last->pre;
last->pre = p;
}
void add()
{
char ch;
do
{
linklist q = (linklist)malloc(sizeof(node));
setdata(q);
insert(q);
printf("是否继续添加 (Y键继续)");
getchar();
scanf("%c", &ch);
} while (ch == 'Y' || ch == 'y');
system("pause");
}
linklist find()
{
char Name[10];
char Date[15];
int i;
linklist a=head->next;//临时指针
printf("选择查询方式(1.姓名 2.入职日期)");
scanf("%d", &i);
if (i == 1)
{
printf("请输入需要查找的姓名:");
scanf("%s", Name);
while (a != last)
{
if (strcmp(Name, a->p.name) == 0)
break;
a = a->next;
}
}
if (i == 2)
{
printf("请输入需要查找的入职日期");
scanf("%s", Date);
while (a != last)
{
if (strcmp(Name, a->p.date) == 0)
break;
a = a->next;
}
}
if (a = last)
{
printf("未找到\n");
system("pause");
}
return a;
}
void del()
{
linklist a = NULL;
linklist q = find();
if (q !=last)
{
a = q->pre;//临时指针
q->pre->next = q->next;
q->next->pre = a;
free(q);
}
else
printf("管理系统未收录此信息,删除失败");
system("pause");
}
void modifydata()
{
linklist a;
printf("请按要求输入以下信息");
a = find();
if (a != NULL)
{
setdata(a);
printf("修改成功");
}
else
{
printf("\7管理系统未收录此信息,修改失败");
}
system("pause");
}
void show(linklist p)
{
printf("%ld\t%s\t%s\t%.2lf\n", p->p.num, p->p.name, p->p.date, p->p.pay);
}
void sort()
{
int ch;
linklist a = head->next,b=a->next;
char x[15];
int y;
double z;
printf("请选择排序方式:1.工号 2.姓名 3.入职日期 4.工资\n");
scanf("%d", &ch);
if (ch == 1)
{
for (; a != last; a = a->next)
for (; b != last; b = b->next)
{
if (a->p.num > b->p.num)
{
y = a->p.num;
a->p.num = b->p.num;
b->p.num = y;
}
}
printf("排序成功!\n");
system("pause");
}
else if (ch == 2)
{
for (; a != last;a=a->next)
for (; b != last; b = b->next)
{
if (strcmp(a->p.name, b->p.name)>0)
{
strcpy(x, a->p.name);
strcpy(a->p.name, b->p.name);
strcpy(b->p.name, x);
}
}
printf("排序成功!\n");
}
else if (ch == 3)
{
for (; a != last; a = a->next)
for (; b != last; b = b->next)
{
if (strcmp(a->p.date, b->p.date)>0)
{
strcpy(x, a->p.date);
strcpy(a->p.date, b->p.date);
strcpy(b->p.date, x);
}
}
printf("排序成功!\n");
}
else if (ch == 4)
{
for (; a != last; a = a->next)
for (; b != last; b = b->next)
{
if (a->p.pay > b->p.pay)
{
z = a->p.pay;
a->p.pay = b->p.pay;
b->p.pay = z;
}
}
printf("排序成功!\n");
}
else
printf("输入有误\7\n");
}
void Tongji()
{
linklist a = head->next;
printf("工号\t姓名\t入职日期\t工资\n");
while (a != last)
{
show(a);
a = a->next;
}
system("pause");
}
void meun(void)
{
printf("**********工资管理系统**********\n");
printf("* 1.添加 *\n");
printf("* 2.删除 *\n");
printf("* 3.查询 *\n");
printf("* 4.修改 *\n");
printf("* 5.统计 *\n");
printf("* 6.排序 *\n");
printf("* 0.退出 *\n");
printf("********************************\n");
}
int choose()
{
int i;
scanf("%d", &i);
switch (i)
{
case 1:add(); break;
case 2: del(); break;
case 3: {linklist a = find(); if (a != last){ show(a); system("pause"); } break; }
case 4: modifydata(); break;
case 5: Tongji(); break;
case 6: sort(); break;
case 0: printf("欢迎使用本系统!"); break;
default:printf("输入有误!,请重新操作!\7");
break;
}
return i;
}
void destroy()
{
linklist p = head->next;
while (p != last)
{
head->next = p->next;
free(p);
p = head->next;
}
free(head);
free(last);
}
int main()
{
int i=1;
head = (linklist)malloc(sizeof(node));
last = (linklist)malloc(sizeof(node));
head->next = last;
last->next = NULL;
head->pre = NULL;
last->pre = head;
while (i=1)
{
meun();
i = choose();
system("cls");
}
system("pause");
destroy();
return 0;
}
分享到:
相关推荐
《C语言实现的工资管理系统详解》 在信息技术领域,工资管理是企业运营中不可或缺的一环。为了高效地处理员工的工资信息,开发一个工资管理系统显得尤为重要。本文将深入探讨一个基于C语言编写的工资管理系统,它...
【企业工资管理系统文献综述】 企业工资管理系统是现代人力资源管理的核心组成部分,对于企业而言,有效的人力资源管理是保持竞争优势的关键。人力资源被视为企业的生命线,而工资管理则是人力资源管理中的核心任务...
工资管理系统是一种专为高校设计的自动化工具,旨在解决传统人工工资管理中遇到的复杂性和效率问题。本系统分析报告详细阐述了系统的需求、背景、功能定义及其重要性,旨在为开发人员提供清晰的指导,同时也为使用者...
利用 C 语言开发的职工工资管理系统,采用了文件的方式存储职工的基本工资信息。在职工工资管理系统中,系统功能齐全,主要功能有:录入职工信息、查询职工信息、浏览所有职工信息、修改职工信息、删除职工信息、...
工资管理系统软件设计知识点总结 系统分析 工资管理系统的传统管理方法存在一些问题,如费时费力、容易产生计算上的错误和疏漏。为了解决这些问题,可以使用计算机技术来实现工资管理系统。该系统可以完成日常工资...
【工资管理系统】是一种用于企业或组织管理员工薪资的软件应用,它集成了数据处理、计算、统计和报告等功能,能够高效、准确地处理复杂的薪酬计算和管理任务。在这个基于VC++开发的工资管理系统中,开发者利用了...
【小型公司工资管理系统】是一个专为小型企业设计的软件应用,用于有效管理和追踪员工的薪酬信息。这个系统基于C++编程语言开发,旨在提供一种高效、准确且易于使用的解决方案,帮助企业管理者处理复杂的薪资计算、...
工资管理系统需求分析报告 在信息化日益发达的今天,企业对高效、准确的管理工具有着强烈的需求,其中工资管理系统就是其中一个重要的组成部分。这份报告旨在详细阐述一个工资管理系统的具体需求,以便于开发团队...
【C#工资管理系统源代码】是一个使用C#编程语言在Visual Studio 2010环境下开发的项目,它集成了数据库管理功能,依赖于SQL Server 2008作为后台数据存储。这个系统的设计和实现旨在帮助用户有效地管理和追踪员工的...
工资管理系统课程设计报告模版知识点 一、系统分析 工资管理系统课程设计报告模版的课程设计报告的主要目的是为了设计一个工资管理系统,旨在帮助企业更好地管理工资。系统分析是课程设计报告的核心部分,主要分为...
职工工资管理系统需求分析 职工工资管理系统需求分析是软件开发的重要步骤,旨在理解和表达用户的需求,描述软件的功能和性能。本系统是为提供高效的工资管理而开发的,是一个比较独立的软件,使用在企业内部。 1....
《C语言实现的工资管理系统详解》 在信息技术领域,编程语言是实现各种系统的基础工具,C语言以其高效、灵活的特点,常被用于开发系统级应用。本篇文章将深入探讨一个用C语言编写的工资管理系统,这是一个具有用户...
《员工工资管理系统:基于Struts2与MySQL的JavaWeb实现》 在当今信息化社会,企业对人力资源管理的需求日益增长,特别是在薪资计算与发放这一环节。一个高效、准确的员工工资管理系统能够大大提升企业的运营效率。...
工资管理系统是企业管理中不可或缺的一部分,它主要用于自动化处理员工的薪酬计算、发放以及相关的福利和税务管理。本系统的核心目标是提高效率,减少错误,并确保薪酬处理的公正与透明。下面我们将详细探讨工资管理...
【工资管理系统实验报告】 工资管理系统是一种用于自动化管理企业员工薪资计算、发放以及相关记录的软件应用。本报告针对工资管理系统的实现,旨在通过数据库课程设计加深对数据库技术的理解,掌握数据库应用系统的...
《SQL+C#工资管理系统》是一个综合性的项目,它结合了SQL数据库技术和C#编程语言,旨在实现企业工资的高效管理。这个系统包含了完整的程序代码、数据库结构以及详细的设计报告,确保用户可以理解并运行整个系统。...
《人事工资管理系统详解》 在IT领域,人事工资管理系统是一种重要的企业应用软件,它主要用于管理企业内部员工的薪酬计算、发放以及相关的人事信息。本文将深入探讨标题为“人事工资管理系统”的应用,重点关注其...
《C语言工资管理系统详解》 在信息技术领域,开发一个工资管理系统是常见的实践项目,它能够帮助企业或组织高效地管理员工的薪资数据。本系统以C语言作为编程工具,结合文件操作,实现信息输入、浏览、排序、查询和...
《职工工资管理系统 C++》是一个基于C++编程语言开发的控制台应用程序,旨在帮助企业或组织高效地管理和追踪员工的工资信息。系统的核心功能包括员工信息录入、工资计算、薪资发放记录以及相关的查询与统计功能。...
企业工资管理系统需求分析 在现代企业管理中,工资管理系统扮演着至关重要的角色,它帮助企业高效、准确地处理员工薪酬计算、发放以及相关税务报告等事务。本文将深入探讨一个完整的工资管理系统的需求分析,旨在...