📄 create.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);
struct Data
{
char name[20];
char data[12];
};
int cFun(char *text,Data *d,int num)
{
int x1=130,y1=80,x2=420,y2=134+32*num,flag=1;
char temp[12],*x;
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);
setfillstyle(1,BLACK);
settextstyle(0,0,1);
for(int i=0;i<num;i++) outtextxy(220,150+32*i,d[i].name);
for(i=0;i<2;i++)
{
flag=1;
while(flag)
{
for(int k=0;k<12;k++) temp[k]=0;
setfillstyle(1,BLACK);
bar(280,138+32*i,380,162+32*i);
gotoxy(37,10+i*2);
if(jkey(temp,10)) return 0;
if(!temp[0]) MessageBox("Error:name can't be empty");
else
{
for(x=temp;*x;x++)
if((*x<65)||(*x>90&&*x<97)||(*x>122)){MessageBox("Error:it's not a name");break;}
if(!*x) {flag=0;}
}
}
strcpy(d[i].data,temp);
}
return 1;
};
void cmanFun()
{
char *d,temp[12];
int wages,subsidy,flag=1;
Data dl[4]={{"First Name:"},{"Last Name:"},{"Base Wages:"},{"Subsidy:"}};
if(cFun("MANAGER",dl,4))
{
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,6)) 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)
{
new Manager(dl[0].data,dl[1].data,wages,subsidy);
MessageBox("Create Completed");
}
}
setfillstyle(1,BLUE);
bar(130,80,440,160+32*4);
};
void ccomFun()
{
int quantity,flag=1;
char type,*d,temp[12];
Data dl[4]={{"First Name:"},{"Last Name:"},{"Type:(A,B)"},{"Quantity:"}};
if(cFun("COMMISSION WORKER",dl,4))
{
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);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)
{
new CommissionWorker(dl[0].data,dl[1].data,quantity,type);
MessageBox("Create Completed");
}
}
setfillstyle(1,BLUE);
bar(130,80,440,160+32*4);
};
void chourFun()
{
int hours,flag=1;
char *d,temp[12];
Data dl[3]={{"First Name:"},{"Last Name:"},{"Hours:"}};
if(cFun("HOURLY WORKER",dl,3))
{
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)
{
new HourlyWorker(dl[0].data,dl[1].data,hours);
MessageBox("Create Completed");
}
}
setfillstyle(1,BLUE);
bar(130,80,440,160+32*3);
};
void cpieceFun()
{
int quantity,flag=1;
char type,*d,temp[12];
Data dl[4]={{"First Name:"},{"Last Name:"},{"Type:(A,B)"},{"Quantity:"}};
if(cFun("PIECE WORKER",dl,4))
{
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);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)
{
new PieceWorker(dl[0].data,dl[1].data,quantity,type);
MessageBox("Create Completed");
}
}
setfillstyle(1,BLUE);
bar(130,80,440,160+32*4);
};
void clabFun()
{
int bonus,flag=1;
char *d,temp[12];
Data dl[3]={{"First Name:"},{"Last Name:"},{"Bonus:"}};
if(cFun("LABOUR WORKER",dl,3))
{
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)
{
new LabourWorker(dl[0].data,dl[1].data,bonus);
MessageBox("Create Completed");
}
}
setfillstyle(1,BLUE);
bar(130,80,440,160+32*3);
};
void cunitFun()
{
int bonus,quantity,flag=1;
char type,*d,temp[12];
Data dl[5]={{"First Name:"},{"Last Name:"},{"Bonus:"},{"Type:(A,B)"},{"Quantity:"}};
if(cFun("LABOUR AND PIECE",dl,5))
{
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);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)
{
new LabourAndPiece(dl[0].data,dl[1].data,bonus,quantity,type);
MessageBox("Create Completed");
}
}
setfillstyle(1,BLUE);
bar(130,80,440,160+32*5);
};
void createFun()
{
int x1=480,y1=200,x2=635,y2=220;
Item cman(x1,y1+20,x2,y2+20,15,14,9,"Manager",cmanFun);
cman.drawItem();
Item ccom(x1,y1+40,x2,y2+40,15,14,9,"Commission Worker",ccomFun);
ccom.drawItem();
Item chour(x1,y1+60,x2,y2+60,15,14,9,"Hourly Worker",chourFun);
chour.drawItem();
Item cpiece(x1,y1+80,x2,y2+80,15,14,9,"Piece Worker",cpieceFun);
cpiece.drawItem();
Item clab(x1,y1+100,x2,y2+100,15,14,9,"Labour Worker",clabFun);
clab.drawItem();
Item cunit(x1,y1+120,x2,y2+120,15,14,9,"Unit:Labour&Piece",cunitFun);
cunit.drawItem();
Item *pc;
cman.changeBK(7);
pc=pc->getFirst();
judgeKey(pc);
setfillstyle(1,BLUE);
bar(480,220,635,380);
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -