#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<string.h>
#define maxsize 20
typedef struct
{
int number;//工号
char name[10];
char sex[10];
char section[10];
int wage[10];//从这里面我们分成基本工资,绩效,奖金
int total;//这是总工资
}list;
typedef struct
{
list stu[maxsize];
int len;
}linklist;
yanshi(char *p)
{
while (1)
{
if (*p!=0)
printf("%c",*p++);
else
break;
Sleep(10); //延时控制间断语句
}
}
void insert(linklist &q,int &n)
{
int i=0;
for(i=0;i<n;i++)
{
printf("输入第%d职工的数据 工号 姓名 性别 部门 基本工资 绩效工资 奖金: \n",i+1);
scanf("%d",&q.stu[i].number);//这是工号
scanf("%s",&q.stu[i].name);
scanf("%s",&q.stu[i].sex);
scanf("%s",&q.stu[i].section);
for(int j=0;j<3;j++)
{
scanf("%d",&q.stu[i].wage[j]);
q.stu[i].total=q.stu[i].wage[j]+q.stu[i].total;
}
}
}
void xiugai(linklist &q)
{
printf("输入要修改的职工工号:\n");
int i,j;
scanf("%d",&i);
for( j=0;j<q.len;j++)
{
if(i==q.stu[j].number)
{
break;
}
}
printf("输入要修改的数据 1.工号 2.姓名 3.性别 4.部门 5.基本工资 6.绩效工资 7.奖金: \n");
int x;
scanf("%d",&x);
switch(x)
{
case 1: printf("输入修改后的工号: \n");
scanf("%d",&q.stu[j].number);
break;
case 2: printf("输入修改后的姓名: \n");
scanf("%s",&q.stu[j].name);
break;
case 3: printf("输入修改后的性别: \n");
scanf("%s",&q.stu[j].sex);
break;
case 4: printf("输入修改后的部门: \n");
scanf("%s",&q.stu[j].section);
break;
case 5: printf("输入修改后的基本工资: \n");
scanf("%d",&q.stu[j].wage[0]);
break;
case 6: printf("输入修改后的绩效工资: \n");
scanf("%d",&q.stu[j].wage[1]);
break;
case 7: printf("输入修改后的奖金: \n");
scanf("%d",&q.stu[j].wage[2]);
break;
}
q.stu[j].total=0;
for(int s=0;s<3;s++)
{
q.stu[j].total=q.stu[j].wage[s]+q.stu[j].total;
}
printf("1.工号 2.姓名 3.性别 4.部门 5.基本工资 6.绩效工资 7.奖金 8.应发工资\n");
for(int j=0;j<q.len;j++)
{
printf("%d ",q.stu[j].number);
printf("%s ",q.stu[j].name);
printf("%s ",q.stu[j].sex);
printf("%s ",q.stu[j].section);
for(int x=0;x<3;x++)
{
printf("%d ",q.stu[j].wage[x]);
}
printf("%d \n",q.stu[j].total);
}
}
void sort(linklist q)
{
list p;
int i,j;
for(i=0;i<q.len;i++)
{
if(q.stu[i].number>q.stu[i+1].number)
{
p=q.stu[i];
q.stu[i]=q.stu[i+1];
q.stu[i+1]=p;
}
}
printf("这是按照升序进行排序的: \n");
printf("1.工号 2.姓名 3.性别 4.部门 5.基本工资 6.绩效工资 7.奖金 8.应发工资\n");
for( j=0;j<q.len;j++)
{
printf("%d ",q.stu[j].number);
printf("%s ",q.stu[j].name);
printf("%s ",q.stu[j].sex);
printf("%s ",q.stu[j].section);
for(int x=0;x<3;x++)
{
printf("%d ",q.stu[j].wage[x]);
}
printf("%d \n",q.stu[j].total);
}
}
void chaxun(linklist q)
{
printf("输入要查询的工号: \n");
int i,j;
scanf("%d",&i);
for( j=0;j<q.len;j++)
{
if(i==q.stu[j].number)
{
break;
}
}
printf("1.工号 2.姓名 3.性别 4.部门 5.基本工资 6.绩效工资 7.奖金 8.应发工资\n");
printf("%d ",q.stu[j].number);
printf("%s ",q.stu[j].name);
printf("%s ",q.stu[j].sex);
printf("%s ",q.stu[j].section);
for(int x=0;x<3;x++)
{
printf("%d ",q.stu[j].wage[x]);
}
printf("%d \n",q.stu[j].total);
}
void output(linklist q)
{
printf("1.工号 2.姓名 3.性别 4.部门 5.基本工资 6.绩效工资 7.奖金 8.应发工资\n");
for(int j=0;j<q.len;j++)
{
printf("%d ",q.stu[j].number);
printf("%s ",q.stu[j].name);
printf("%s ",q.stu[j].sex);
printf("%s ",q.stu[j].section);
for(int x=0;x<3;x++)
{
printf("%d ",q.stu[j].wage[x]);
}
printf("%d \n",q.stu[j].total);
}
}
int main()
{
system("color b");
yanshi(" --------------小型工资管理系统------------\n");
printf(" 1.数据输入\n");
printf(" 2.数据修改\n");
printf(" 3.数据处理(查询,排序)\n");
printf(" 4.数据输出\n");
printf(" 5.退出\n");
int x;
linklist q;
printf("输入要进行的操作: \n");
scanf("%d",&x);
while(x!=-1)
{
switch(x)
{
case 1:printf("输入要要输入的职工数据人数: \n");
scanf("%d",&q.len);
insert(q,q.len);
break;
case 2:xiugai(q);
break;
case 3: printf("输入要处理的是 1.排序 2.查询: \n");
int num;
scanf("%d",&num);
switch(num)
{
case 1: sort(q);
break;
case 2: chaxun(q);
break;
}
break;
case 4: output(q);
break;
case 5: printf("欢迎下次再次使用系统哦!\n");
break;
}
printf("选择下一步要进行的操作: \n");
scanf("%d",&x);
}
return 0;
}
C语言程序设计课设——小型工资管理系统
最新推荐文章于 2023-07-22 21:13:42 发布