📄 gongzi.cpp
字号:
}
per[i].sum=per[i].paid-per[i].discount+per[i].extra;
per[i].realpaid=per[i].paid-per[i].discount;
fprintf(fp," %6d %8s \t%5.1f \t%5.1f \t%5.1f \t%5.1f \t%5.1f\n",per[i].num,per[i].name,per[i].paid,per[i].discount,per[i].extra,per[i].realpaid,per[i].sum);
getch();
}
}
void Sortper(struct person per[]) //排序函数
{
int i,j,chose; //i,j为循环变量 chose为接收用户输入的排序方式
struct person temp;
printf("排序前的数据为\n");
printf("\n职工编号 职工姓名 基本工资 扣款 奖金 实发工资 总工资\n");
for(i=0;i<shuru;i++)
{
printf("\n %6d %8s %7.1f\t %5.1f\t %5.1f\t %5.1f\t %6.1f\t\n",per[i].num,per[i].name,per[i].paid,per[i].discount,per[i].extra,per[i].realpaid,per[i].sum);
}
printf("\n1.按职工编号排序\t2.按总工资(高→低)排序\n");
printf("\n请您正确选择:");
fflush(stdin);
scanf("%d",&chose);
if(chose==1)
{
for(i=0;i<shuru-1;i++)
{
for(j=i+1;j<shuru;j++)
{
if(per[i].num>per[j].num)
{
temp=per[i];
per[i]=per[j];
per[j]=temp;
}
}
}
printf("\n职工编号 职工姓名 基本工资 扣款 奖金 实发工资 总工资\n");
for(i=0;i<shuru;i++)
{
printf("\n %6d %8s %7.1f\t %5.1f\t %5.1f\t %5.1f\t %6.1f\t\n",per[i].num,per[i].name,per[i].paid,per[i].discount,per[i].extra,per[i].realpaid,per[i].sum);
}
system("pause");
}
else if(chose==2)
{
for(i=0;i<shuru-1;i++)
{
for(j=i+1;j<shuru;j++)
{
if(per[i].sum<per[j].sum)
{
temp=per[i];
per[i]=per[j];
per[j]=temp;
}
}
}
printf("\n职工编号 职工姓名 基本工资 扣款 奖金 实发工资 总工资\n");
for(i=0;i<shuru;i++)
{
printf("\n %6d %8s %7.1f\t %5.1f\t %5.1f\t %5.1f\t %6.1f\n",per[i].num,per[i].name,per[i].paid,per[i].discount,per[i].extra,per[i].realpaid,per[i].sum);
}
system("pause");
}
}
void Password() //密码验证函数
{
char *pass=NULL; //初始化指针
int i,count;
time_t start,end; //时间函数
pass=(char *)malloc(255*sizeof(char)); //分配内存
while(1)
{
count=0;
printf("\n\n\n\n\n\t\t\t职 工 工 资 管 理 系 统 \n");
printf("\n\t\t UserName:Fangfangff \n");
printf("\n\t\t PassWord:");
while((count>=0)&&(pass[count++]=getch())!=13) //密码输入
{
if(pass[0]=='\b')
{
count=0;
continue;
}
else if(pass[count-1]=='\b')
{
printf("%c%c%c",'\b','\0','\b');
count-=2;
}
else
putchar('*');
}
pass[--count]='\0';
if(!strcmp(pass,PASSWORD)) //开始验证
{
printf("\n\n\t\t\t\t\t\tLogining");
for(i=0;i<=25;i++)
{
Sleep(250);
printf(".");
}
system("cls");
printf("\n\n\n\n\n\n\n\n\n\t\t\t");
printf(" 欢 迎 登 陆 职 工 工 资 管 理 系 统 !\n\n");
start=time(NULL);
end=time(NULL);
while(end-start<2) //延时2秒执行以下程序
{
end=time(NULL);
}
system("cls");
free(pass); //释放储存密码的内存
return ;
}
free(pass); //释放密码错误的那块内存
pass=(char *)malloc(255*sizeof(char)); //重新分配储存密码内存
system("cls");
printf("\a\n\n\n\n\n\n\n\n\t\t\t\t密 码 错 误 !");
getch();
system("cls");
}
}
void Menu()
{
struct person per[50]; //最大职工人数
struct person *p; //声明一个结构指针
p=per; //指针指向结构变量per
int i,in; //接收用户的选择
char ch; //用于判断是否继续
do
{
system("cls");
printf("\n\n");
printf("\t\t =============================================\n");
printf("\t\t * 职 工 工 资 管 理 系 统 *\n");
printf("\t\t *===========================================*\n");
printf("\t\t * 1. 录入职工工资 *\n");
printf("\t\t * *\n");
printf("\t\t * 2. 修改职工工资 *\n");
printf("\t\t * *\n");
printf("\t\t * 3. 查询职工工资 *\n");
printf("\t\t * *\n");
printf("\t\t * 4. 浏览职工工资 *\n");
printf("\t\t * *\n");
printf("\t\t * 5. 删除职工工资 *\n");
printf("\t\t * *\n");
printf("\t\t * 6. 插入职工工资 *\n");
printf("\t\t * *\n");
printf("\t\t * 7. 职工工资排序 *\n");
printf("\t\t * *\n");
printf("\t\t * 8. 保存职工工资 *\n");
printf("\t\t * *\n");
printf("\t\t * 9. 安全退出系统 *\n");
printf("\t\t =============================================\n");
printf("\t\t 请您正确选择: ");
if(!(scanf("%d",&in)==1))
{
while((ch=getchar())!='\n')
putchar(ch);
printf(" 没有此选项,请正确选择!");
getch();
continue;
}
fflush(stdin);
switch(in)
{
case 1:
Inputper(per); //调用录入职工工资函数
break;
case 2:
Modifyper(per); //调用修改职工工资函函数
break;
case 3:
Findper(per); //调用查询职工工资函数
break;
case 4:
Listper(per); //调用浏览职工工资函数
break;
case 5:
Delper(per); //调用删除职工工资函数
break;
case 6:
Insertper(per); //插入职工工资信息
break;
case 7:
Sortper(per); //调用职工工资排序函数
break;
case 8:
Save(per); //保存职工工资函数
break;
case 9: //退出系统
break;
default:
printf("没有此选项,请正确选择!");
getch();
break;
}
}while(in!=9);
system("cls");
printf("\n\n\n\n\n\n\n\n\t\t\t");
printf("谢 谢 使 用 本 系 统 !\n\n");
printf("\n\n\t\t\t\t\tEnding");
for(i=0;i<=30;i++)
{
Sleep(300);
printf(".");
}
printf("\n");
}
void Help()
{
printf("====================================================================\n");
printf("\n\n\t\t\t\t系 统 信 息\n");
printf("====================================================================\n");
printf("\n\n\t\t本系统是职工工资管理系统,在职工的姓名栏可以输入汉字");
printf("\n\t\t如果在输入中没看到任何信息则是因为输入错误或无信息");
printf("\n\t\t系统中的 :实发工资 = 基本工资 - 扣款 ,不需要输入");
printf("\n\t\t实发工资 , 就可以直接输出实发工资,系统中的 : ");
printf("\n\t\t总工资 = 基本工资 - 扣款 + 奖金。");
printf("\n\t\t本系统制作者 : fangfangff \t QQ : 380177873");
printf("\n\t\t E_mail : liyyanyan@126.com ");
printf("\n\t\t\t Made By VC6.0++\t 2007年6月28日\n");
printf("===================================================================\n");
printf("\n\n\t\t\t\t按<Enter>进入");
getchar();
}
void Save(struct person per[]) //职工工资保存函数
{
int i,j;
pp=per; //指针指向结构
system("cls");
printf("\n\n\n\t\t正在保存信息,请耐心等候!!\n");
printf("\n\n\t\t\tSaving");
for(j=0;j<20;j++)
{
Sleep(300);
printf(".");
}
if((fp=fopen("per_list2.doc","wb+"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
fprintf(fp,"职工编号 职工姓名 基本工资 扣款 奖金 实发工资 总工资\n");
for(i=0;i<shuru;i++)
{
per[i].sum=per[i].paid-per[i].discount+per[i].extra;
per[i].realpaid=per[i].paid-per[i].discount;
fprintf(fp," %6d %8s %7.1f\t %5.1f\t %5.1f\t %5.1f\t %6.1f\t\n",per[i].num,per[i].name,per[i].paid,per[i].discount,per[i].extra,per[i].realpaid,per[i].sum);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -