自动售货机管理程序Word文档格式.docx
《自动售货机管理程序Word文档格式.docx》由会员分享,可在线阅读,更多相关《自动售货机管理程序Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
并且如果消费者输入的购买数量大于库存数量,程序将自动返回到商品的数量选择界面下,还有如果消费者的付款金额小于消费金额时,程序将自动返回到付款界面。
(4)找钱模块
将消费者付款金额进行判断后,进行一定运算后按50元、20元、10元、1元的分类分别找对。
程序由上述几个模块组成,能帮助消费者以自助的方式完成所需商品的购买并且有效地减少购物时间。
另外还能节省售货者的管理时间,大大的提高管理的效率。
3详细设计
3.1输出模块
本模块主要有输出函数printf()构成,printf()函数是C语言系统提供的格式化输出函数,用于向标准输出设备(通常为显示器)按规定格式输出信息,这是程序中使用最多的标准函数之一。
它的使用格式如下:
printf(“格式化字符串”,表达式表);
“表达式表”是要输出的一系列表达式,各表达式之间用“,”分隔。
“格式化字符串”用于说明要输出表达式的形式,包括两部分内容:
一部分是以“%”开头的格式控制参数,它规定对应表达式的输出格式;
另一部分是普通字符或转义字符,对普通字符按原样输出,对转义字符,输出的是其转义后的形式。
例如:
inta=5,b=10;
printf(“Sum=%d\n”,a+b);
输出结果为:
Sum=15。
在自动售货机程序中,其输出模块源代码为:
printf("
\n欢迎光临
\n"
);
请选择:
1.百事可乐2.可口可乐3.非常可乐\n"
1听式百事可乐(3元每听)剩%d听,2.瓶装百事可乐(8元每瓶)剩%d听\n"
a1,a2);
数量?
"
商品数量不足,请重新输入:
)
printf("
请选择:
1继续购物,2停止购物\n"
请您结账"
金额不够请重新输入:
找您50元1张,20元%d张,10元%d张,1元%d张"
m,q,l);
找您20元%d张,10元%d张,1元%d张"
请您收好!
购物结束,谢谢光临"
输出流程图如下;
图1
输出流程图
其运行时图如下:
图2
输出模块运行时截图
3.2输入模块
本模块主要有输出函数scanf()构成,它是格式化输出函数,即从标准输入设备(键盘)为变量输入数据。
它也是程序中使用最多的一个标准函数。
其使用格式如下:
scanf(“格式化字符串”,变量地址表);
“格式化字符串”中控制参数的个数必须与变量地址的个数一致;
可以在格式化字符串中的“%”和格式控制符之间加入一个整数,表示任何读操作中的最大位数。
Main()
{
Intm,n;
Scanf(“%3d%2d”,&
m,&
n);
Printf(“m=%d,n=%d\n”,m,n);
}
输入数据流:
123456789
m=123,n=45。
在自动售货机程序中,输入模块流程图如下:
图3
输入模块流程图
在自动售货机程序中,其输入模块源代码为:
scanf("
%d"
&
a);
用于输入选择的购买品牌。
b);
用于输入所选品牌下的商品。
用于输入所选品牌下的商品的数量
scanf("
用于输入是否继续购物。
Money);
用于输入付款金额。
其输入截图如下:
图4
输入模块运行时截图
3.3返回模块
本模块if语句和goto语句构成,if语句简单形式如下:
语句结构为:
If(表达式)
{语句组}
其中的“语句组”是若干个C语句,当它只有一个语句时,花括号{}可以省略。
该if语句的过程是:
若表达式的值非0(即真),则执行{语句组},然后执行if语句的下一个语句;
否则不执行{语句组}之下的语句,即if语句的下一个语句。
简言之该if语句的功能就是根据条件(表达式的值),决定是否执行{语句组},如下图所示:
图5
if语句逻辑结构示意图
goto语句是一种无条件转移语句,主要用于控制程序的执行方向,也可以利用它反复执行同一段程序。
它的用法比较简单。
一般格式如下:
goto语句标号;
语句标号是一个标识符,它的语句之间以“:
”分隔,可以单独的占一个程序行,也可以和程序语句处于同一行上。
执行goto语句后,程序将跳转到该标号处,并执行其后的语句。
在自动售货机程序设计时,其流程图如下:
图6
返回模块流程图
在自动售货机程序中,其源代码如下:
loop:
i=p=0;
loop1:
i++;
m=q=0;
if(a!
=1&
&
a!
=2&
=3)
{gotoloop;
运行时截图如下:
图7
返回模块运行时截图
3.4找钱模块
本模块由if-elseif结构构成,它属于if-else结构的嵌套形式,它的一般结构如下:
If(表达式1)
{语句组1}
elseIf(表达式2)
{语句组2}
……
从上到下逐个对条件进行判断,一旦发现条件满足就执行与它有关语句组,其下的所有条件都不在判断,当然它们的语句组也不在执行;
执行最后一个语句组。
最后这个else常起着“默认条件”的作用。
在自动售货机程序设计中,找钱模块流程图如下:
图8
找钱模块流程图
在自动售货机程序中,起源代码为:
if(p<
Money)
{c=Money-p;
j=c/10;
l=c%10;
if(j>
=5)
{k=j-5;
if(k/2>
=1)
{m=k/2;
q=k-2*m;
else
{k=j;
{m=k/2;
其运行时截面图如下:
图8
找钱模块运行时截图
4结论
通过对C程序设计基础的学习,我掌握了一些基本的编程方法和思路,出色的完成了这次自动售货机管理程序课程设计,这次课程设计是对我接触C语言这个新事物以来的第一次比较系统的检验,我很重视,也很刻苦的钻研自己的课题,当然,通过努力完成设计的也不只我一个人,大家都很出色,都很优秀,这次设计对我以后学习编程都有着深远的影响,所以,完成这次课程设计,我很高兴,这也为我以后的学习增加了很多信心,在以后的学习生活中,我一定会努力钻研C语言,为以后的发展铺下宽广的道路.。
通过这次实训,增加了我学习软件技术的兴趣,虽然还不明确软件技术包含的具体内容,但从C语言这门课程开始,已发现程序设计的乐趣,在学习C语言的过程中也学到了许多计算机应用基础知识,对计算机的机体也有了一个大体的了解。
这次课设先做简单的输出模块、输入模块,一步步的再做其它功能,如返回模块、找钱模块。
在实际操作过程中犯的一些错误还会有意外的收获,感觉课设很有意思。
例如在找钱模块中,刚开始程序找钱不对,我便反复的寻找错误的原因,终于发现“p=Money”中的“=”是赋值而非等于的意思,应该用“==”。
在具体操作中对这学期所学的C语言的理论知识得到巩固,达到实训的基本目的,也发现自己的不足之出,在以后的上机中应更加注意,同时体会到C语言具有的语句简洁,使用灵活,执行效率高等特点。
发现课设的重要作用,对C语言有了更深刻的理解。
在此希望以后应多增加练习,加长时间,培养独立思考问题的能力,提高实际操作水平。
在这次设计中我学到了很多,也发现了自己的不足,也难免有错误之处,敬请老师提出!
参考文献
[1]张磊.C语言程序设计[M].北京:
高等教育出版社,2006
[2]吕凤煮.C语言基础教程——基础理论与案例[M].北京:
清华大学出版社,2005
[3]黄明、梁旭、万洪莉.C语言课程设计[M].北京:
电子工业出版社,2006
附录:
自动售货机管理程序源代码
#include<
stdio.h>
voidmain()
{
intMoney;
intn,a,b,c,a1,a2,a3,a4,a5,a6,p,q,i,j,k,m,l;
intsum[4]={0,0,0};
a1=a2=a3=a4=a5=a6=50;
switch(a)
case1:
printf("
loop2:
if(b==1&
n<
=a1||b==2&
=a2)
switch(b)
sum[i]=3*n;
a1=a1-n;
break;
case2:
sum[i]=8*n;
a2=a2-n;
else
{printf("
商品数量不足,请重新输入:
gotoloop2;
小瓶可口可乐(2元每瓶)剩%d瓶,2.大瓶(7元每瓶)剩%d瓶\n"
a3,a4);
loop3:
=a3||b==2&
=a4)
sum[i]=2*n;
a3=a3-n;
a4=a4-n;
{
gotoloop3;
case3:
1听式非常可乐(3元每听)剩%d听,2.小瓶非常可乐(4元每瓶)剩%d听\n"
a5,a6);
loop4:
=a5||b==2&
=a6)
sum[i]=1*n;
a5=a5-n;
a6=a6-n;
gotoloop4;
if(i<
10)
gotoloop1;
for(i=0;
i<
=3;
i++)
p=p+sum[i];
共消费%d元"
p);
loop5:
请输入金额:
if(p>
gotoloop5;
if(p==Money)
c=Money-p;
k=j-5;
k=j;
m=k/2;
gotoloop;