C语言课程设计.docx
《C语言课程设计.docx》由会员分享,可在线阅读,更多相关《C语言课程设计.docx(24页珍藏版)》请在冰豆网上搜索。
![C语言课程设计.docx](https://file1.bdocx.com/fileroot1/2022-12/7/20c206fe-ee26-441a-b0a3-a8a91bf88e32/20c206fe-ee26-441a-b0a3-a8a91bf88e321.gif)
C语言课程设计
#includestdio.h
#includestdlib.h
#includeconio.h
#includestring.h
#includemath.h
#defineLENsizeof(structshangpin)大小测试
#defineLEN1sizeof(structguke)
#defineNULL0
structshangpin商品结构体
{intJG,xcl;
charHMJXH[20],pinpai[20],baoxouqi[20];
structshangpinnext;
};
structguke顾客结构体
{
intzhenghao;
charmingzi[20],SHriqi[20],zHMJXH[20];
structgukenext;
};
voidmainmenu()显示主菜单
{system(cls);
printf(t家t电t自t助t服t务t系t统n);
printf();
printf(^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^);
printf(tttt1.管理及查询入口nn);
printf(tttt2.订单及退订系统nn);
printf(tttt3.退出系统nn);
printf(ttt请按键选择,回车确定n);
printf(^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^);
printf();
system(color3F);
return;
}
voidmenu1()显示管理及查询菜单
{system(cls);
printf();
printf(^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^);
printf(tttt1.商品信息输入nn);
printf(tttt2.清除库存nn);
printf(tttt3.商品查询nn);
printf(tttt4.库存一览nn);
printf(tttt5.返回上一层nn);
printf(ttt请按键选择,回车确定n);
printf(^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^);
printf();
system(color3F);
return;
}
voidmenu2()显示查询菜单
{system(cls);
printf();
printf(^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^);
printf(tttt1.价格查询nn);
printf(tttt2.货名及型号查询nn);
printf(tttt3.品牌查询nn);
printf(tttt4.保修期查询nn);
printf(ttt请按键选择,回车确定n);
printf(^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^);
printf();
system(color3F);
return;
}
voidmima1()
{
FILEfp;
chars1[10],s2[10];
if((fp=fopen(F家电自助服务系统密码.txt,r+))==NULL)
printf(获取密码失败。
n);
else
{
fgets(s1,10,fp);
do
{
printf(请输入密码n);
gets(s2);
}while(strcmp(s1,s2)!
=0);
printf(密码正确!
);
}
fclose(fp);
}
main()主函数,调用main1
{voidmain1();
main1();}
voidmain1()main1函数
{voidgljcxrk();声明管理及查询函数
voidDDJTD();声明订单及退订函数
charchoose;
mainmenu();
scanf(%c,&choose);
switch(choose)功能函数选择
{case'1'gljcxrk();break;
case'2'DDJTD();break;
case'3'system(cls);printf(nnnnnnnnntttByebye...);printf(nnnnnnnnnttt欢迎使用本软件!
!
!
);getch();exit(0);system(cls);system(color3F);break;
}
}
voidgljcxrk()管理及查询函数
{voidspjinku();
voidshanchu();
voidspchaxun();
voidxianshikucun();函数声明
charchoose;
menu1();调用菜单函数
scanf(%c,&choose);
scanf(%c,&choose);
for(;;)
switch(choose)功能函数选择
{case'1'spjinku();break;
case'2'shanchu();break;
case'3'spchaxun();break;
case'4'xianshikucun();break;
case'5'main1();break;
}
}
inttjzs()统计文本个数函数
{FILEfp;
inttJG=0,txcl=0,n;
chartHMJXH[20]={'0'},tpinpai[20]={'0'},tbaoxouqi[20]={'0'};
fp=fopen(F家电自助服务系统商品.txt,r);打开文件
for(n=0;!
feof(fp);n++)逐个读文件
fscanf(fp,%d%s%s%s%d,&tJG,tHMJXH,tpinpai,tbaoxouqi,&txcl);
n--;
fclose(fp);关闭文件
return(n);返回个数
}
inttjdzzs()统计文本个数函数
{FILEfp;
intzhenghao=0,n;
charmingzi[20]={'0'},SHriqi[20]={'0'},zHMJXH[20]={'0'};
fp=fopen(F家电自助服务系统顾客.txt,r);打开文件
for(n=0;!
feof(fp);n++)逐个读文件
fscanf(fp,%d%s%s%s,&zhenghao,&mingzi,&SHriqi,&zHMJXH);
fclose(fp);关闭文件
return(n);返回个数
}
voidspjinku()商品进库函数
{
mima1();
FILEfp;
intJG=0,xcl=0,n=0;
charHMJXH[20]={'0'},pinpai[20]={'0'},baoxouqi[20]={'0'};
charhitkey;
system(cls);
if((fp=fopen(F家电自助服务系统商品.txt,r))==NULL)打开商品文件,不存在此文件则新建
{fp=fopen(F家电自助服务系统商品.txt,w);
fclose(fp);
}
fp=fopen(F家电自助服务系统商品.txt,a);
printf(nnnnnnttt请按以下格式输入商品信息:
tttttt价格货名及型号品牌保修期进库量n请输入:
);按格式输入商品信息
system(color3F);
for(;hitkey!
=27;)循环输入
{if(n!
=0)
printf(请输入);
scanf(%d%s%s%s%d,&JG,HMJXH,pinpai,baoxouqi,&xcl);
fprintf(fp,%d%s%s%s%dn,JG,HMJXH,pinpai,baoxouqi,xcl);
printf(继续输入请按回车,结束输入请按escn);
system(color3F);
n++;
hitkey=getch();
for(;hitkey!
=13&&hitkey!
=27;)
hitkey=getch();
}
fclose(fp);
printf(nnnnnnttt保存成功,按任意键返回上一层!
);
system(color3F);
getch();
gljcxrk();返回上一层
}
voidshanchu()删除商品信息函数
{
mima1();
structshangpinhead=NULL;
structshangpinp,p1,p2;
inttJG=0,txcl=0,n=0,j,i;
chartHMJXH[20]={'0'},tpinpai[20]={'0'},tbaoxouqi[20]={'0'},ttHMJXH[20]={'0'};
charhitkey;
FILEfp;
if((fp=fopen(F家电自助服务系统商品.txt,r))==NULL)打开文件
{system(cls);
printf(nnnnnnnnnttt记录文件不存在!
按任意键返回...);
system(color3F);
getch();
gljcxrk();
}
else
{system(cls);
printf(nnnnnnnntt请输入你要删除的货名及型号);输入删除商品货名型号
system(color3F);
scanf(%s,&ttHMJXH);
printf(tt确认删除请回车,取消请按escn);
system(color3F);
hitkey=getch();
for(;hitkey!
=13&&hitkey!
=27;)
hitkey=getch();
if(hitkey==27)
gljcxrk();
fp=fopen(F家电自助服务系统商品.txt,r);
for(j=0;!
feof(fp);)读文件夹信息,统计个数
{j++;
fscanf(fp,%d%s%s%s%d,&tJG,tHMJXH,tpinpai,tbaoxouqi,&txcl);
}
fclose(fp);
fp=fopen(F家电自助服务系统商品.txt,r);
for(i=1;ij;i++)
{fscanf(fp,%d%s%s%s%d,&tJG,tHMJXH,tpinpai,tbaoxouqi,&txcl);
if(strcmp(ttHMJXH,tHMJXH))比较名字,将不同名字的信息复制到链表
{n++;
if(n==1)建立链表
{p1=p2=(structshangpin)malloc(LEN);
head=p1;
}
else
{p2-next=p1;
p2=p1;
p1=(structshangpin)malloc(LEN);新建链表
}
p1-JG=tJG;复制价格
strcpy(p1-HMJXH,tHMJXH);复制货名及型号
strcpy(p1-pinpai,tpinpai);复制品牌
strcpy(p1-baoxouqi,tbaoxouqi);复制保修期
p1-xcl=txcl;复制个数
}
}
if(n==0)
{head=NULL;
}
else
{
p2-next=p1;
p1-next=NULL;
fclose(fp);
}
}
fp=fopen(F家电自助服务系统商品.txt,w);清空文件
fclose(fp);
fp=fopen(F家电自助服务系统商品.txt,a);追加文件
p=head;
for(;p!
=NULL;)把链表内容覆盖到文件
{
fprintf(fp,%d%s%s%s%dn,p-JG,p-HMJXH,p-pinpai,p-baoxouqi,p-xcl);
p=p-next;
}
fclose(fp);关闭文件
system(cls);
printf(nnnnnnnntt删除成功ntt按任意键返回上一层n);
system(color3F);
getch();返回上一层
gljcxrk();
}
voidspchaxun()查询函数
{
FILEfp;
charchoose;
intttJG=0,tJG=0,txcl=0,n=0,k=0,i,l;
chartHMJXH[20]={'0'},ttpinpai[20]={'0'},tpinpai[20]={'0'},ttbaoxouqi[20]={'0'},tbaoxouqi[20]={'0'},ttHMJXH[20]={'0'};
if((fp=fopen(F家电自助服务系统商品.txt,r))==NULL)打开文件
{system(cls);
printf(nnnnnnnnnttt记录文件不存在!
按任意键返回...);
system(color3F);
getch();
gljcxrk();
}
l=tjzs();获得文件个数
menu2();调用菜单函数
scanf(%c,&choose);scanf(%c,&choose);选择查询方式
if(choose=='5')
return;
elseif(choose=='1')价格查询
{system(cls);
printf(请输入价格);
system(color3F);
scanf(%d,&ttJG);
}
else
if(choose=='2')货名及型号查询
{system(cls);
printf(请输入货名及型号);
system(color3F);
scanf(%s,ttHMJXH);
}
else
if(choose=='3')品牌查询
{system(cls);
printf(请输入品牌);
system(color3F);
scanf(%s,ttpinpai);
}
else
if(choose=='4')保修期查询
{system(cls);
printf(请输入保修期);
system(color3F);
scanf(%s,ttbaoxouqi);
}
system(cls);
for(i=0;il;i++)
{fscanf(fp,%d%s%s%s%d,&tJG,tHMJXH,tpinpai,tbaoxouqi,&txcl);读文件信息
if(ttJG==tJG!
strcmp(ttHMJXH,tHMJXH)!
strcmp(ttpinpai,tpinpai)!
strcmp(ttbaoxouqi,tbaoxouqi))输出查询信息
{
if(k==0)
{
printf(tttt查询结果nn);
printf(t价格货名及型号品牌保修期现存量n);
system(color3F);
}
printf(t%-4d%-8s%-8s%-8s%-4dn,tJG,tHMJXH,tpinpai,tbaoxouqi,txcl);
k++;
}
}
if(k==0)文件夹为空则输出无记录
{system(cls);
printf(nnnnnnntttt无符合记录!
n);
system(color3F);
getch();
gljcxrk();
}
fclose(fp);
getch();返回
gljcxrk();
}
voidxianshikucun()现实库存信息
{
FILEfp;
intJG=0,xcl=0,n=0,i=0,j=0;
charHMJXH[20]={'0'},pinpai[20]={'0'},baoxouqi[20]={'0'};
if((fp=fopen(F家电自助服务系统商品.txt,r))==NULL)打开文件夹
{
system(cls);
printf(nnnnnnnnnttt记录文件不存在!
);
system(color3F);
}
n=tjzs();
if(n==0)
{system(cls);
printf(nnnnnnnnnttt无任何记录!
);
system(color3F);
}
fp=fopen(F家电自助服务系统商品.txt,r);
system(cls);
printf();
printf(t价格货名及型号品牌保修期现存量n);
printf();
system(color3F);
for(i=0;in;i++)输出信息
{
fscanf(fp,%d%s%s%s%d,&JG,HMJXH,pinpai,baoxouqi,&xcl);
printf(t%-4d%-8s%-8s%-8s%-4dn,JG,HMJXH,pinpai,baoxouqi,xcl);
}
fclose(fp);
printf(tttt按任意键返回n);
system(color3F);
getch();返回
gljcxrk();
}
voidmenu3()显示订单系统主菜单
{system(cls);
printf();
printf(^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^);
printf(tttt1.订单登记nn);
printf(tttt2.退订登记nn);
printf(tttt3.订单情况查看nn);
printf(tttt4.返回上一层nn);
printf(ttt请按键选择,回车确定n);
printf(^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^);
printf();
system(color3F);
return;
}
voidDDJTD()订单系统函数
{voiddingdan();声明订单登记函数
voidtuiding();声明退订登记函数
voiddingdanCX();声明订单查询函数
charchoose;
menu3();
scanf(%c,&choose);
scanf(%c,&choose);选择功能
for(;;)
switch(choose)调用函数
{case'1'dingdan();break;
case'2'tuiding();break;
case'3'dingdanCX();break;
case'4'main1();break;
}
}
voiddingdan()订单函数
{
FILEfp,fp3;
structshangpinhead=NULL;
structshangpinp,p1,p2;
inttJG=0,txcl=0,i,loop,zhenghao=0,n=0,k=0,t=0,flag=0;
chartHMJXH[20]={'0'},tpinpai[20]={'0'},tbaoxouqi[20]={'0'},ttHMJXH[20]={'0'},mingzi[20]={'0'},SHriqi[20]={'0'},zHMJXH[20]={'0'};
charhitkey=0;
system(cls);
{
if((fp=fopen(F家电自助服务系统商品.txt,r))==NULL)打开商品文件
{
system(cls);
printf(nnnnnnnnntt本店无库存!
按任意键退出!
);
system(color3F);
getch();
exit(0);
}
else
{
{
printf(nnnnnnttt请输入订单货名型号:
ttttttn请输入:
);输入书货名及型号
system(color3F);
scanf(%s,zHMJXH);
k=tjzs();统计商品文件个数
for(i=0;ik;i++)读入商品信息,存储到链表
{
fscanf(fp,%d%s%s%s%d,&tJG,tHMJXH,tpinpai,tbaoxouqi,&txcl);
n++;
if(n==1)
{p1=p2=(structshangpin)malloc(LEN);
head=p1;
}
else
{p2-next=p1;
p2=p1;
p1=(structshangpin)malloc(LEN);新建链表
}
p1-JG=tJG;复制价格
strcpy(p1-HMJXH,tHMJXH);复制货名及型号
strcpy(p1-pinpai,tpinpai);复制品牌
strcpy(p1-baoxouqi,tbaoxouqi);复制保修期
p1-xcl=txcl;复制现存量
}
if(n==0)
head=NULL;
else
{
p2-next=p1;
p1-next=NULL;
fclose(fp);
}
}
}
p=head;
for(;p!
=NULL;)读链表
{
if(!
(strcmp(p-HMJXH,zHMJXH)))名字相同
{flag=1;标记取1
loop=p-xcl;现存量减1
(p-xcl)--;}
p=p-next;
}
if(flag&&(loop0))存在订单货物且现存量大于0
{fp=fopen(F家电自助服务系统商品.txt,w);
fclose(fp);
fp=fopen(F家电自助服务系统商品.txt,a);
p=head;
for(;p!
=NULL;)
{
fprintf(fp,%d%s%s%s%dn,p-JG,p-HMJXH,p-pinpai,p-baox