计算机技术基础c语言课程设计 花店经营管理系统 2Word文档下载推荐.docx
《计算机技术基础c语言课程设计 花店经营管理系统 2Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《计算机技术基础c语言课程设计 花店经营管理系统 2Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。
#include"
stdio.h"
stdlib.h"
string.h"
dos.h"
#defineSIZE8
#defineCMDSIZE5
typedefenum/*枚举类型定义*/
{
red,white,yellow,purple,orange
}COLOR;
typedefstruct/*结构体定义*/
charname[20];
COLORcolor;
floatrate;
intamount;
}FLOWER;
char*Dcmd[]={"
buy"
"
put"
look"
find"
help"
};
/*定义了5项命令的指针类型*/
voidenter_data(FLOWERflower[]);
/*定义库存输入函数*/
floatbuy(FLOWERflower[]);
/*定义销售函数*/
voidput_data(FLOWERflower[]);
/*定义库存输出函数*/
voidfindflower(FLOWERflower[]);
/*定义查询函数*/
intchangecmd(charcmd[]);
/*定义命令解释函数*/
voidmain()
FLOWERflower[SIZE];
floatprice;
charcmd[5]={'
\0'
'
charexits[5]="
quit"
;
intrecmd=0;
inti;
for(i=0;
i<
SIZE;
i++)
{
memset(flower[i].name,0,20);
/*成员设置,各类型初始化*/
flower[i].rate=0;
flower[i].amount=0;
flower[i].color=white;
}
printf("
花店经营管理系统\n"
);
\nYoucaninput'
buy'
look'
put'
help'
find'
:
\n"
while
(1)/*命令转换,把字符转换为数字*/
scanf("
%s"
cmd);
if(strcmp(cmd,exits)==0)
exit
(1);
recmd=changecmd(cmd);
switch(recmd)
{
case0:
printf("
abadcommandpleaseinputacorrcetcmd\n"
/*输入了错误信息的提示*/
break;
case1:
price=buy(flower);
if(price==0)
printf("
\nSorry,buyerror"
else
\nOK,Pleasepaymoney%f\n"
price);
case2:
enter_data(flower);
case3:
put_data(flower);
case4:
findflower(flower);
case5:
\nYoucaninput'
}
}
/*命令解释函数*/
/*该函数处理接收到的命令通过与命令数组里的预定义命令比较返回命令在数组中的位置*/
intchangecmd(charcmd[])
inti=0;
CMDSIZE;
if(strcmp(cmd,Dcmd[i])==0)
returni+1;
return0;
/*库存输入函数*/
/*该函数接受键盘输入把输入数据与库存对应*/
voidenter_data(FLOWERflower[])
inti,flag;
printf("
Pleaseentertheflowers:
Flowernameis:
flower[i].name);
Flowerrateis:
%f"
&
flower[i].rate);
Floweramountis:
%d"
flower[i].amount);
flag=1;
while(flag)/*接受用户选择的颜色*/
0->
red\t1->
white\t2->
yellow\t3->
purple\t4->
orante\n"
Pleasechooseacolor:
scanf("
flower[i].color);
if(flower[i].color>
=0&
&
flower[i].color<
=4)
flag=0;
Nothavethiscolor\n"
/*输出现有库存的鲜花数据的函数定义*/
voidput_data(FLOWERflower[])
\nNameColorRateAmount\n"
%-12s"
switch(flower[i].color)
casered:
%-8s"
red"
casewhite:
white"
caseyellow:
yellow"
casepurple:
purple"
caseorange:
orange"
%-10.2f%-10d\n"
flower[i].rate,flower[i].amount);
/*询问用户购买的鲜花的种类和株的数量,计算总的价格的函数定义*/
floatbuy(FLOWERflower[])
floatrate,price;
intamount,flag;
\nPleaseenternameandrateyouwanttobuy:
/*输出需要的鲜花的名字和价格*/
scanf("
%s%f"
name,&
rate);
flag=1;
while(flag)/*客户购买花的情况*/
color);
if(color>
color<
flag=0;
else
Pleaseamountyouwanttobuy:
/*输出需要的花的数量*/
amount);
if(flower[i].rate==rate&
strcmp(flower[i].name,name)==0&
flower[i].color==color)
if(i==SIZE)
\nNotfountthefloweryoubuy\n"
/*没有要买的花*/
price=0;
elseif(flower[i].amount<
amount)/*所购花数量不够*/
\nAmountnotenought\n"
price=0;
else
flower[i].amount=flower[i].amount-amount;
price=flower[i].rate*amount;
/*找到,剩余数量够,可以买花,并计算总价格*/
returnprice;
/*对于库存鲜花的的查询方式的定义*/
voidfindflower(FLOWERflower[])
inti,rcmd;
Pleasechooseanumber:
/*输出查询的方式*/
findasname\t1->
findasrate\t2->
findascolor\n"
scanf("
rcmd);
switch(rcmd)
case0:
/*按花名查询*/
Inputaflowername:
name);
for(i=0;
if(flower[i].name==name)
%s\t%d\t%f\t%d\n"
flower[i].name,flower[i].color,flower[i].rate,flower[i].amount);
break;
case1:
/*按数量查询*/
Inputaflowerrate:
if(flower[i].rate==rate)
case2:
/*按颜色查询*/
Inputaflowercolor:
if(flower[i].color==color)
六.总结、设计结果说明
一.通过本程序的练习,可以让读者了解结构体的定义和函数的调用,对程序中各种语句的运用更加熟练把握。
二.本程序虽然简短,但可以简单地运用到花店的经营管理中,通过这个操作,让花店经营得有条理,方便了顾客,也方便了自己。