汽车零件采购系统源代码.docx
《汽车零件采购系统源代码.docx》由会员分享,可在线阅读,更多相关《汽车零件采购系统源代码.docx(16页珍藏版)》请在冰豆网上搜索。
汽车零件采购系统源代码
汽车零件采购系统源代码
-----------运用C语言编写
#include
#include
#include
#include
#include
#defineNUM100
#defineN20
voidreadfile();
voidsearch();
voidwrit();
voidqueren();
voidxiugai();
voidshanchu();
voidbaocun();
typedefstructgoods{
charNo[20];
charName[20];
chargongchang[20];
chardate[20];
intnum;
}GOODS;
GOODSs[NUM]={0};
typedefstructpoint{
intx;
inty;
}p[10];
externWINBASEAPIHWNDWINAPIGetConsoleWindow();
intmain()
{
inti;
HWNDhwnd;//窗口句柄
HDChdc;//画图设备
intxy=0;
COORDpos2_1={1,8};
//,p[2]={36,2},p[3]={36,3},p[4]={36,4},p[5]={36,5};//光标坐标
INPUT_RECORDmouseRec;
DWORDstate=0,res=0;
POINTpt;
HPENpn;
RECTrt,rt0,rt1,rt2,rt3,rt4,rt5,rt6,rt7,rt8,rt9;
HANDLEhOut;
HANDLEhIn;
hwnd=GetConsoleWindow();//得到控制台窗口句柄
hdc=GetDC(hwnd);//得到画图设备句柄
rt0.top=5;
rt0.left=10;
rt0.right=100;
rt0.bottom=30;
rt1.top=35;
rt1.left=110;
rt1.right=200;
rt1.bottom=60;
rt2.top=35;
rt2.left=310;
rt2.right=400;
rt2.bottom=60;
rt3.top=35;
rt3.left=10;
rt3.right=100;
rt3.bottom=60;
/*rt4.top=35;
rt4.left=110;
rt4.right=200;
rt4.bottom=60;*/
rt5.top=35;
rt5.left=210;
rt5.right=300;
rt5.bottom=60;
rt6.top=65;
rt6.left=10;
rt6.right=100;
rt6.bottom=90;
rt7.top=65;
rt7.left=110;
rt7.right=200;
rt7.bottom=90;
rt8.top=65;
rt8.left=210;
rt8.right=300;
rt8.bottom=90;
rt9.top=95;
rt9.left=10;
rt9.right=400;
rt9.bottom=120;
hOut=GetStdHandle(STD_OUTPUT_HANDLE);//得到标准的输出设备句柄(显示器等)
hIn=GetStdHandle(STD_INPUT_HANDLE);//得到标准的输入设备句柄(鼠标、键盘等)
pn=CreatePen(PS_SOLID,1,RGB(200,10,200));
GetClientRect(hwnd,&rt);//得到控制台客户区的大小
SelectObject(hdc,pn);//选画笔
SetTextColor(hdc,250);////设颜色
SetBkMode(hdc,TRANSPARENT);//设置背景保持方式
MoveToEx(hdc,0,35,NULL);
LineTo(hdc,400,35);
Rectangle(hdc,rt1.left,rt1.top,rt1.right,rt1.bottom);
Rectangle(hdc,rt2.left,rt2.top,rt2.right,rt2.bottom);
Rectangle(hdc,rt3.left,rt3.top,rt3.right,rt3.bottom);
//Rectangle(hdc,rt4.left,rt4.top,rt4.right,rt4.bottom);
Rectangle(hdc,rt5.left,rt5.top,rt5.right,rt5.bottom);
Rectangle(hdc,rt6.left,rt6.top,rt6.right,rt6.bottom);
Rectangle(hdc,rt7.left,rt7.top,rt7.right,rt7.bottom);
Rectangle(hdc,rt8.left,rt8.top,rt8.right,rt8.bottom);
//Rectangle(hdc,rt9.left,rt9.top,rt9.right,rt9.bottom);
DrawText(hdc,"汽车零件采购管理系统",20,&rt0,NULL);
DrawText(hdc,"读出采购表",10,&rt1,NULL);
DrawText(hdc,"查询采购表",10,&rt2,NULL);
DrawText(hdc,"输入采购信息",12,&rt3,NULL);
//DrawText(hdc,"由零件型号,采购日期确认收货",28,&rt4,NULL);
DrawText(hdc,"修改采购信息",12,&rt5,NULL);
DrawText(hdc,"删除采购信息",12,&rt6,NULL);
DrawText(hdc,"保存采购信息",12,&rt7,NULL);
DrawText(hdc,"退出",4,&rt8,NULL);
DrawText(hdc,"零件型号零件名称生产厂家采购日期采购数量",52,&rt9,NULL);
ShowWindow(hwnd,SW_SHOW);
for(;;)//循环
{
//读取输入的信息
ReadConsoleInput(hIn,&mouseRec,1,&res);
Sleep(100);
if(mouseRec.EventType==MOUSE_EVENT)
{
//if(mouseRec.Event.MouseEvent.dwEventFlags==DOUBLE_CLICK)break;
//双击鼠标退出循环
if(mouseRec.Event.MouseEvent.dwButtonState==FROM_LEFT_1ST_BUTTON_PRESSED)
{
//
GetCursorPos(&pt);
ScreenToClient(hwnd,&pt);
if(pt.x>rt1.left&&pt.xrt1.top&&pt.y{
SetConsoleTextAttribute(hOut,7);
SetConsoleCursorPosition(hOut,pos2_1);//设置光标位置
for(i=1;iprintf("\n");
SetConsoleCursorPosition(hOut,pos2_1);//设置光标位置
readfile();
continue;
}
elseif(pt.x>rt2.left&&pt.xrt2.top&&pt.y{
SetConsoleTextAttribute(hOut,7);
SetConsoleCursorPosition(hOut,pos2_1);//设置光标位置
for(i=1;i{
printf("\n");
}
SetConsoleCursorPosition(hOut,pos2_1);//设置光标位置
readfile();
search();
continue;
}
elseif(pt.x>rt3.left&&pt.xrt3.top&&pt.y{
SetConsoleTextAttribute(hOut,7);
SetConsoleCursorPosition(hOut,pos2_1);//设置光标位置
for(i=1;i{
printf("\n");
}
SetConsoleCursorPosition(hOut,pos2_1);//设置光标位置
readfile();
writ();
readfile();
continue;
}
/*elseif(pt.x>rt4.left&&pt.xrt4.top&&pt.y{
SetConsoleTextAttribute(hOut,7);
SetConsoleCursorPosition(hOut,pos2_1);//设置光标位置
for(i=1;i{
printf("\n");
}
SetConsoleCursorPosition(hOut,pos2_1);//设置光标位置
queren();
continue;
}
*/
elseif(pt.x>rt5.left&&pt.xrt5.top&&pt.y{
SetConsoleTextAttribute(hOut,7);
SetConsoleCursorPosition(hOut,pos2_1);//设置光标位置
for(i=1;i{
printf("\n");
}
SetConsoleCursorPosition(hOut,pos2_1);//设置光标位置
readfile();
xiugai();
readfile();
continue;
}
elseif(pt.x>rt6.left&&pt.xrt6.top&&pt.y{
SetConsoleTextAttribute(hOut,7);
SetConsoleCursorPosition(hOut,pos2_1);//设置光标位置
for(i=1;i{
printf("\n");
}
SetConsoleCursorPosition(hOut,pos2_1);//设置光标位置
readfile();
shanchu();
readfile();
continue;
}
elseif(pt.x>rt7.left&&pt.xrt7.top&&pt.y{
SetConsoleTextAttribute(hOut,7);
SetConsoleCursorPosition(hOut,pos2_1);//设置光标位置
for(i=1;i{
printf("\n");
}
SetConsoleCursorPosition(hOut,pos2_1);//设置光标位置
baocun();
continue;
}
elseif(pt.x>rt8.left&&pt.xrt8.top&&pt.y{
SetConsoleTextAttribute(hOut,7);
SetConsoleCursorPosition(hOut,pos2_1);//设置光标位置
for(i=1;iprintf("\n");
}
break;
}
else{
}
};
}
}
return0;
}
voidreadfile()/******************************读文件函数*******************************/
{
intii=0;
inti=0;
charret;
FILE*fp;
if((fp=fopen("采购表.txt","r"))==NULL){
printf("\ncannotopen采购表.txt");}
while(!
feof(fp))
{
ii=fscanf(fp,"%s%s%s%s%d",s[i].No,s[i].Name,s[i].gongchang,s[i].date,&s[i].num);
if(ii!
=-1){
printf("%s%s%s%s%d\n",s[i].No,s[i].Name,s[i].gongchang,s[i].date,s[i].num);
i++;
}
}
fclose(fp);
}
voidsearch()/*******************************查询函数**********************************/
{
inti=0,ii=0;
charret,str1[20],str2[20];
FILE*fp;
if((fp=fopen("采购表.txt","r"))==NULL){
printf("\ncannotopen采购表.txt");}
printf("输入零件型号和采购日期\n");
scanf("%s%s",str1,str2);
printf("查询结果:
\n");
while(!
feof(fp))
{
ii=fscanf(fp,"%s%s%s%s%d",s[i].No,s[i].Name,s[i].gongchang,s[i].date,&s[i].num);
if(strcmp(str1,s[i].No)==0&&strcmp(str2,s[i].date)==0&&ii!
=-1)
{
printf("\n%s%s%s%s%d\n",s[i].No,s[i].Name,s[i].gongchang,s[i].date,s[i].num);
}
i++;
}
fclose(fp);
}
voidwrit()/**********************************输入函数**********************************/
{
inti,m=100,ii=0;
FILE*fp;
if((fp=fopen("采购表.txt","a"))==NULL){
printf("\ncannotopen采购表.txt");
}
//printf("输入要添加的行数\n");
//scanf("%d",&m);
//if(scanf("%d",&m)==0){
//printf("输入错误默认为一行\n");
//}
printf("输入零件型号零件名称生产厂家采购日期采购数量(输入-999结束输入)\n");
for(i=0;i{
ii=scanf("%s%s%s%s%d",s[i].No,s[i].Name,s[i].gongchang,s[i].date,&s[i].num);
if(ii!
=5)
{
printf("输入错误\n");
continue;
}
if(s[i].No==-999)
break;
if(ii!
=-1)
fprintf(fp,"%s%s%s%s%d\n",s[i].No,s[i].Name,s[i].gongchang,s[i].date,s[i].num);
}
fflush(stdin);
printf("输入完毕\n");
fclose(fp);
}
voidqueren()/*********************************确认函数**********************************/
{
inti=0;
charret,str1[20],str2[20],str3[20];
FILE*fp;
if((fp=fopen("采购表.txt","r"))==NULL){
printf("\ncannotopen采购表.txt");}
printf("输入零件型号.采购日期和今日日期(如2012-02-03)\n");
scanf("%s%s%s",str1,str2,str3);
printf("到货零件有:
\n");
while(!
feof(fp))
{
fscanf(fp,"%s%c%s%c%s%c%s%c%d%c",s[i].No,&ret,s[i].Name,&ret,s[i].gongchang,&ret,s[i].date,&ret,&s[i].num,&ret);
if(strcmp(str1,s[i].No)==0&&strcmp(str2,s[i].date)==0&&strcmp(str3,s[i].date)>0)
{
printf("\n%s%s%s%s%d\n",s[i].No,s[i].Name,s[i].gongchang,s[i].date,s[i].num);
}
i++;
}
fclose(fp);
}
voidxiugai()/***********************************修改函数***********************************/
{
inti=0,n=0,ii=0;
charstr1[20],str2[20];
FILE*fp1,*fp2,*fp3,*fp4;
if((fp1=fopen("采购表.txt","r"))==NULL){
printf("\ncannotopen采购表.txt");}
if((fp2=fopen("采购表2.txt","w"))==NULL){
printf("\ncannotopen采购表2.txt");}
printf("输入零件型号和采购日期\n");
scanf("%s%s",str1,str2);
while(!
feof(fp1))
{
ii=fscanf(fp1,"%s%s%s%s%d",s[i].No,s[i].Name,s[i].gongchang,s[i].date,&s[i].num);
if(strcmp(str1,s[i].No)==0&&strcmp(str2,s[i].date)==0&&ii!
=-1)
{
//printf("修改未收货采购信息\n");
printf("输入修改后的零件型号零件名称生产厂家采购日期采购数量\n");
scanf("%s%s%s%s%d",s[i].No,s[i].Name,s[i].gongchang,s[i].date,&s[i].num);
fprintf(fp2,"%s%s%s%s%d\n",s[i].No,s[i].Name,s[i].gongchang,s[i].date,s[i].num);
n++;
}
elseif(ii!
=-1){
fprintf(fp2,"%s%s%s%s%d\n",s[i].No,s[i].Name,s[i].gongchang,s[i].date,s[i].num);
}
i++;
}
if(n==0)
printf("无该型号的零件\n");
else{
printf("修改零件信息完成\n");
//printf("%d",n);
}
fclose(fp1);
fclose(fp2);
i=0;
ii=0;
if((fp3=fopen("采购表.txt","w"))==NULL){
printf("\ncannotopen采购表.txt");}
if((fp4=fopen("采购表2.txt","r"))==NULL){
printf("\ncannotopen采购表2.txt");}
while(!
feof(fp4))
{
ii=fscanf(fp4,"%s%s%s%s%d\n",s[i].No,s[i].Name,s[i].gongchang,s[i].date,&s[i].num);