工资管理系统源代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include
#include
#include
#include
#include
#define MONTH_NUM 5 /* 最多的月份*/
struct worker
{
int number; /* 每个工人的工号*/
char name[15]; /* 每个工人的姓名*/
int salary[MONTH_NUM]; /* 每个工人M月的工资*/ int sum; /* 每个工人的总工资*/ float average; /* 每个工人的平均工资*/ struct worker *next; //下一个节点的地址
};
typedef struct worker STU;
char Menu(void);
int Ascending(int a, int b);
int Descending(int a, int b);
void IntSwap(int *pt1, int *pt2);
void CharSwap(char *pt1, char *pt2);
void FloatSwap(float *pt1, float *pt2);
STU *AppendNode(STU *head, const int m);
STU *DeleteNode(STU *head, int nodeNum);
STU *ModifyNode(STU *head, int nodeNum, const int m); STU *SearchNode(STU *head, int nodeNum);
STU *Appendsalary(STU *head, const int m);
void Totalsalary(STU *head, const int m);
void Printsalary(STU *head, const int m);
STU *Deletesalary(STU *head, const int m);
void Modifysalary(STU *head, const int m);
void Sortsalary(STU *head, const int m, int (*compare)(int a, int b));
void Searchsalary(STU *head, const int m);
void DeleteMemory(STU *head);
void numberSwap(STU *head);
main()
{
char ch,b;
int m,a;
STU *head = NULL;
printf("\n\n\n\n\n\n\n\n\n");
printf("``╭╮╭╮╭╮\n");
printf("``│││││└╮\n");
printf("╭┴┴———————┴┴╮~└—╯\n");
printf("││╭—————╮\n");
printf("│││哈│\n");
printf("│●●│╭╮│喽! │\n");
printf("│○╰┬┬┬╯○│o╰╯╰—————╯\n");
printf("│╰—╯│\n");
printf("╰——┬o———o┬——╯\n");
printf(" ╭╮╭╮\n");
printf(" ╰┴————┴╯\n");
Sleep(3000);
system("cls");
printf("\n\n\n\n\n\n\n\n\n\n\n ≈~☆输入要记录的月份个数(m<10)☆~~`≈: "); scanf("%d", &m);
system("cls");
while (1)
{
ch = Menu();
switch (ch)
{
case'1':head = Appendsalary(head, m);
Totalsalary(head, m);
break;
case'2':Modifysalary(head, m);
Totalsalary(head, m);
printf("\nAfter modified\n");
Printsalary(head, m);
Sleep(1000);
break;
case'3':head = Deletesalary(head, m);
printf("\nAfter deleted\n");
Printsalary(head, m);
break;
case'4':do{
Searchsalary(head, m);
printf("\(≧▽≦)/ 是否要继续查询?Y or N:");
scanf(" %c",&b);
}while(b=='y'||b=='Y');
break;
case'5':Printsalary(head, m);
printf("\(≧▽≦)/ 是否要选择排列方式?Y or N:");
scanf(" %c",&b);
while(b=='y'||b=='Y')
{