📄 find.cpp
字号:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <graphics.h>
#include <strstrea.h>
#include <iostream.h>
#include <fstream.h>
#include <iomanip.h>
#include "item.h"
#include "employee.h"
#include "labour.h"
#include "manager.h"
#include "commis.h"
#include "piece.h"
#include "hourly.h"
#include "lpiece.h"
extern void MessageBox(char *);
extern void judgeKey(Item *);
extern int jkey(char *,int);
int fn(Employee *p,char *f,char *l)
{
int flag=0;
for(;p;p=p->getNext())
if(strcmp(p->getFirstName(),f)==0&&strcmp(p->getLastName(),l)==0)
{
cout<<*p<<endl;
flag=1;
if(wherey()>22)
{
cout<<"Press space to continue"<<endl;
while(getch()!=32);
setfillstyle(1,BLACK);
bar(0,0,470,458);
gotoxy(1,1);
}
}
if(flag) return 1;
return 0;
};
int fs(Employee *p,char x,int s)
{
int flag=1;
switch(x)
{
case '>':for(;p;p=p->getNext())
if(p->getSalary()>s)
{
cout<<*p<<endl;flag=0;
if(wherey()>22)
{
cout<<"Press space to continue"<<endl;
while(getch()!=32);
setfillstyle(1,BLACK);
bar(0,0,470,458);
gotoxy(1,1);}
}
if(flag) return 0;
break;
case '<':for(;p;p=p->getNext())
if(p->getSalary()<s)
{
cout<<*p<<endl;flag=0;
if(wherey()>22)
{
cout<<"Press space to continue"<<endl;
while(getch()!=32);
setfillstyle(1,BLACK);
bar(0,0,470,458);
gotoxy(1,1);
}
}
if(flag) return 0;
break;
case '=':for(;p;p=p->getNext())
if(p->getSalary()==s)
{
cout<<*p<<endl;flag=0;
if(wherey()>22)
{
cout<<"Press space to continue"<<endl;
while(getch()!=32);
setfillstyle(1,BLACK);
bar(0,0,470,458);
gotoxy(1,1);
}
}
if(flag) return 0;
break;
default:return 0;
}
return 1;
};
void fNameFun()
{
int x1=150,y1=80,x2=400,y2=200,flag1=1,flag2=1;
char fName[10],lName[10];
setcolor(GREEN);
rectangle(x1,y1,x2,y2);
setfillstyle(1,CYAN);
floodfill(x1+2,y1+2,GREEN);
setfillstyle(1,BLACK);
bar(x1+20,y2+1,x2+20,y2+20);
bar(x2+1,y1+20,x2+20,y2);
setcolor(BLUE);
settextjustify(CENTER_TEXT,CENTER_TEXT);
settextstyle(0,0,2);
outtextxy(275,110,"Find With Name");
settextstyle(0,0,1);
outtextxy(220,146,"First Name:");
outtextxy(220,178,"Last Name:");
while(flag1&&flag2)
{
setfillstyle(1,BLACK);
bar(280,138,380,162);
setfillstyle(1,CYAN);
bar(280,170,380,194);
gotoxy(37,10);
if(jkey(fName,10)) flag1=0;
if(flag1)
{
setfillstyle(1,BLACK);
bar(280,170,380,194);
gotoxy(37,12);
if(jkey(lName,10)) flag1=0;
}
if(flag1)
{
setfillstyle(1,BLACK);
bar(0,0,470,458);
gotoxy(1,1);
Manager *pm=Manager::getFirst();
if(fn(pm,fName,lName)) flag2=0;
CommissionWorker *pc=CommissionWorker::getFirst();
if(fn(pc,fName,lName)) flag2=0;
HourlyWorker *ph=HourlyWorker::getFirst();
if(fn(ph,fName,lName)) flag2=0;
PieceWorker *pp=PieceWorker::getFirst();
if(fn(pp,fName,lName)) flag2=0;
LabourWorker *pl=LabourWorker::getFirst();
if(fn(pl,fName,lName)) flag2=0;
LabourAndPiece *pu=LabourAndPiece::getFirst();
if(fn(pu,fName,lName)) flag2=0;
if(flag2){MessageBox("Sorry,Not Found!");}
else
{
cout<<"Press space to continue"<<endl;
while(getch()!=32);
}
}
}
setfillstyle(1,BLUE);
bar(0,0,470,458);
};
void fSaFun()
{
int x1=130,y1=80,x2=420,y2=170,flag1=1,flag2=0,salary;
char temp[10],*t;
setcolor(GREEN);
rectangle(x1,y1,x2,y2);
setfillstyle(1,CYAN);
floodfill(x1+2,y1+2,GREEN);
setfillstyle(1,BLACK);
bar(x1+20,y2+1,x2+20,y2+20);
bar(x2+1,y1+20,x2+20,y2);
setcolor(BLUE);
settextjustify(CENTER_TEXT,CENTER_TEXT);
settextstyle(0,0,2);
outtextxy(275,110,"Find With Salary");
settextstyle(0,0,1);
outtextxy(220,146,"using <,=,> as \">100\"");
while(flag1)
{
flag2=0;
setfillstyle(1,BLACK);
bar(310,138,410,162);
gotoxy(40,10);
for(int k=0;k<10;k++) temp[k]=0;
if(jkey(temp,10)) flag1=0;
else
{
if((temp[0]==60)||(temp[0]==61)||(temp[0]==62))
{
for(int i=1;temp[i];i++)
if((temp[i]<48)||(temp[i]>57)){ flag2=1;break;}
}
else flag2=1;
if(flag2) MessageBox("Error:input like \">1000\"");
else
{
t=&temp[1];
salary=strtol(t,0,10);
setfillstyle(1,BLACK);
bar(0,0,470,458);
gotoxy(1,1);
Manager *pm=Manager::getFirst();
if(fs(pm,temp[0],salary)) flag1=0;
CommissionWorker *pc=CommissionWorker::getFirst();
if(fs(pc,temp[0],salary)) flag1=0;
HourlyWorker *ph=HourlyWorker::getFirst();
if(fs(ph,temp[0],salary)) flag1=0;
PieceWorker *pp=PieceWorker::getFirst();
if(fs(pp,temp[0],salary)) flag1=0;
LabourWorker *pl=LabourWorker::getFirst();
if(fs(pl,temp[0],salary)) flag1=0;
LabourAndPiece *pu=LabourAndPiece::getFirst();
if(fs(pu,temp[0],salary)) flag1=0;
if(flag1)
{
MessageBox("Sorry,Not Found!");
break;
}
else
{
cout<<"Press space to continue"<<endl;
while(getch()!=32);
}
}
}
}
setfillstyle(1,BLUE);
bar(0,0,470,458);
};
void findFun()
{
int x1=480,y1=200,x2=635,y2=220;
Item fName(x1,y1+20,x2,y2+20,15,14,9,"Name Searching",fNameFun);
fName.drawItem();
Item fSa(x1,y1+40,x2,y2+40,15,14,9,"Salary Searching",fSaFun);
fSa.drawItem();
fName.changeBK(7);
Item *po;
po=po->getFirst();
judgeKey(po);
setfillstyle(1,BLUE);
bar(480,220,635,260);
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -