📄 edit.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 <ctype.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 eFun(Employee *p,char *text,int num)
{
int x1=130,y1=80,x2=420,y2=200+32*num,flag=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,text);
settextstyle(0,0,1);
outtextxy(220,150,"First Name:");
outtextxy(220,182,"Last Name:");
while(flag)
{
setfillstyle(1,BLACK);
bar(280,138,380,162);
gotoxy(37,10);
if(jkey(fName,10)) return 0;
setfillstyle(1,BLACK);
bar(280,170,380,194);
gotoxy(37,12);
if(jkey(lName,10)) return 0;
for(;p;p=p->getNext())
if(strcmp(p->getFirstName(),fName)==0&&strcmp(p->getLastName(),lName)==0) {flag=0;break;}
if(flag) MessageBox("No found:Edit Fail");
}
return 1;
};
void emanFun()
{
Manager *p;
p=p->getFirst();
int wages,subsidy,flag=1,j;
char *d,temp[12],t;
if(eFun(p,"MANAGER",2))
{
settextstyle(0,0,1);
outtextxy(220,214,"Base Wages:");
outtextxy(220,246,"Subsidy:");
while(flag)
{
for(int k=0;k<12;k++) temp[k]=0;
setfillstyle(1,BLACK);
bar(280,138+32*2,380,162+32*2);
gotoxy(37,14);
if(jkey(temp,5)) flag=0;
else
{
for(d=temp;*d;d++)
if(!(*d>47&&*d<58)){MessageBox("Error:Base Wages must be integer");break;}
if(!*d) {wages=strtol(temp,0,10);break;}
}
}
while(flag)
{
for(int k=0;k<12;k++) temp[k]=0;
setfillstyle(1,BLACK);
bar(280,138+32*3,380,162+32*3);
gotoxy(37,16);
if(jkey(temp,6)) flag=0;
else
{
for(d=temp;*d;d++)
if(!(*d>47&&*d<58)){MessageBox("Error:Subsidy must be integer");break;}
if(!*d) {subsidy=strtol(temp,0,10);break;}
}
}
if(flag)
{
p->setWages(wages);
p->setSubsidy(subsidy);
MessageBox("Edit Completed");
}
}
setfillstyle(1,BLUE);
bar(130,80,440,160+32*4);
};
void ecomFun()
{
CommissionWorker *p;
p=p->getFirst();
int quantity,flag=1;
char type,*d,temp[12];
if(eFun(p,"Commission Worker",2))
{
settextstyle(0,0,1);
outtextxy(220,214,"Type(A,B):");
outtextxy(220,246,"Quantity:");
while(flag)
{
for(int k=0;k<12;k++) temp[k]=0;
setfillstyle(1,BLACK);
bar(280,138+32*2,380,162+32*2);
gotoxy(37,14);
if(jkey(temp,1)) flag=0;
else
if((temp[0]!='a')&&(temp[0]!='b')&&(temp[0]!='A')&&(temp[0]!='B')) MessageBox("Error:Type must be A or B");
else {type=toupper(temp[0]);break;}
}
while(flag)
{
for(int k=0;k<12;k++) temp[k]=0;
setfillstyle(1,BLACK);
bar(280,138+32*3,380,162+32*3);
gotoxy(37,16);
if(jkey(temp,5)) flag=0;
else
{
for(d=temp;*d;d++)
if(!(*d>47&&*d<58)){MessageBox("Error:Quantity must be integer");break;}
if(!*d) {quantity=strtol(temp,0,10);break;}
}
}
if(flag)
{
p->setType(type);
p->setQuantity(quantity);
MessageBox("Edit Completed");
}
}
setfillstyle(1,BLUE);
bar(130,80,440,160+32*4);
};
void ehourFun()
{
int hours,flag=1;
char *d,temp[12];
HourlyWorker *p;
p=p->getFirst();
if(eFun(p,"HOURLY WORKER",1))
{
settextstyle(0,0,1);
outtextxy(220,214,"Hours:");
while(flag)
{
for(int k=0;k<12;k++) temp[k]=0;
setfillstyle(1,BLACK);
bar(280,138+32*2,380,162+32*2);
gotoxy(37,14);
if(jkey(temp,3)) flag=0;
else
{
for(d=temp;*d;d++)
if(!(*d>47&&*d<58)){MessageBox("Error:Hours must be integer");break;}
if(!*d) {hours=strtol(temp,0,10);break;}
}
}
if(flag)
{
p->setHours(hours);
MessageBox("Edit Completed");
}
}
setfillstyle(1,BLUE);
bar(130,80,440,160+32*3);
};
void epieceFun()
{
int quantity,flag=1;
char type,*d,temp[12];
PieceWorker *p;
p=p->getFirst();
if(eFun(p,"PIECE WORKER",2))
{
settextstyle(0,0,1);
outtextxy(220,214,"Type(A,B):");
outtextxy(220,246,"Quantity:");
while(flag)
{
for(int k=0;k<12;k++) temp[k]=0;
setfillstyle(1,BLACK);
bar(280,138+32*2,380,162+32*2);
gotoxy(37,14);
if(jkey(temp,1)) flag=0;
else
if((temp[0]!='a')&&(temp[0]!='b')&&(temp[0]!='A')&&(temp[0]!='B')) MessageBox("Error:Type must be A or B");
else {type=toupper(temp[0]);break;}
}
while(flag)
{
for(int k=0;k<12;k++) temp[k]=0;
setfillstyle(1,BLACK);
bar(280,138+32*3,380,162+32*3);
gotoxy(37,16);
if(jkey(temp,5)) flag=0;
else
{
for(d=temp;*d;d++)
if(!(*d>47&&*d<58)){MessageBox("Error:Quantity must be integer");break;}
if(!*d) {quantity=strtol(temp,0,10);break;}
}
}
if(flag)
{
p->setType(type);
p->setQuantity(quantity);
MessageBox("Edit Completed");
}
}
setfillstyle(1,BLUE);
bar(130,80,440,160+32*4);
};
void elabFun()
{
int bonus,flag=1;
char *d,temp[12];
LabourWorker *p;
p=p->getFirst();
if(eFun(p,"LABOUR WORKER",1))
{
settextstyle(0,0,1);
outtextxy(220,214,"Bonus:");
while(flag)
{
for(int k=0;k<12;k++) temp[k]=0;
setfillstyle(1,BLACK);
bar(280,138+32*2,380,162+32*2);
gotoxy(37,14);
if(jkey(temp,5)) flag=0;
else
{
for(d=temp;*d;d++)
if(!(*d>47&&*d<58)){MessageBox("Error:Bonus must be integer");break;}
if(!*d) {bonus=strtol(temp,0,10);break;}
}
}
if(flag)
{
p->setBonus(bonus);
MessageBox("Create Completed");
}
}
setfillstyle(1,BLUE);
bar(130,80,440,160+32*3);
};
void eunitFun()
{
int bonus,quantity,flag=1;
char type,*d,temp[12];
LabourAndPiece *p;
p=p->getFirst();
if(eFun(p,"LABOUR AND PIECE",3))
{
settextstyle(0,0,1);
outtextxy(220,214,"Bonus:");
outtextxy(220,246,"Type(A,B):");
outtextxy(220,278,"Quantity:");
while(flag)
{
for(int k=0;k<12;k++) temp[k]=0;
setfillstyle(1,BLACK);
bar(280,138+32*2,380,162+32*2);
gotoxy(37,14);
if(jkey(temp,5)) flag=0;
else
{
for(d=temp;*d;d++)
if(!(*d>47&&*d<58)){MessageBox("Error:Bonus must be integer");break;}
if(!*d) {bonus=strtol(temp,0,10);break;}
}
}
while(flag)
{
for(int k=0;k<12;k++) temp[k]=0;
setfillstyle(1,BLACK);
bar(280,138+32*3,380,162+32*3);
gotoxy(37,16);
if(jkey(temp,1)) flag=0;
else
if((temp[0]!='a')&&(temp[0]!='b')&&(temp[0]!='A')&&(temp[0]!='B')) MessageBox("Error:Type must be A or B");
else {type=toupper(temp[0]);break;}
}
while(flag)
{
for(int k=0;k<12;k++) temp[k]=0;
setfillstyle(1,BLACK);
bar(280,138+32*4,380,162+32*4);
gotoxy(37,18);
if(jkey(temp,5)) flag=0;
else
{
for(d=temp;*d;d++)
if(!(*d>47&&*d<58)){MessageBox("Error:Quantity must be integer");break;}
if(!*d) {quantity=strtol(temp,0,10);break;}
}
}
if(flag)
{
p->setBonus(bonus);
p->setType(type);
p->setQuantity(quantity);
MessageBox("Edit Completed");
}
}
setfillstyle(1,BLUE);
bar(130,80,440,160+32*5);
};
void editFun()
{
int x1=480,y1=200,x2=635,y2=220;
Item eman(x1,y1+20,x2,y2+20,15,14,9,"Manager",emanFun);
eman.drawItem();
Item ecom(x1,y1+40,x2,y2+40,15,14,9,"Commission Worker",ecomFun);
ecom.drawItem();
Item ehour(x1,y1+60,x2,y2+60,15,14,9,"Hourly Worker",ehourFun);
ehour.drawItem();
Item epiece(x1,y1+80,x2,y2+80,15,14,9,"Piece Worker",epieceFun);
epiece.drawItem();
Item elab(x1,y1+100,x2,y2+100,15,14,9,"Labour Worker",elabFun);
elab.drawItem();
Item eunit(x1,y1+120,x2,y2+120,15,14,9,"Unit:Labour&Piece",eunitFun);
eunit.drawItem();
eman.changeBK(7);
Item *pc;
pc=pc->getFirst();
judgeKey(pc);
setfillstyle(1,BLUE);
bar(480,220,635,380);
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -