版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 引言21世纪,我们已经进入了信息时代,计算机的使用大大方便了我们的日常生活,超市和网上购物已经不能满足我们对便利生活的要求,不能随时随地购物的缺点不能克服的。在此情况下,就需要一个程序化的自动售货机来满足人们日常生活的需求。在C语言的平台下实现,用户可以方便的进行各项购物操作。C语言是一种程序设计语言,早在20世纪90年代,C语言表现出了强劲的生命力,C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位一级的操作。由于C语言实现了对硬
2、件的编程操作,因此C语言集高级语言和低级语言的功能于一体,既可用于系统软件的开发,也适合于应用软件的开发。此外,C语言还具有效率高,可移植性强等特点。因此可以广泛地移植到了各类型计算机上,从而形成了多种版本的C语言。采用输入函数和输出函数方式,可以完成对待售物品的名称、数量、价格的输出、顾客所选物品的输入、以及其它购物信息显示。122 总体设计在对自动售货机管理程序进行需求分析的过程中,需要确定系统的主要功能,对程序开发的主要目的、程序的使用领域和有关该程序开发的软硬件环境进行详细的分析。下面从系统概述、功能模块描述两个方面进行需求分析。2.1 程序概述自动售货机管理程序是运行于Windows
3、系统下的应用软件,主要用于对待售商品的品名、价钱、数量、生产日期、保质期、编号进行输出等操作。2.2 功能需求自动售货机管理程序为路边的行人提供了一个随时随地进行购物的平台,给消费者提供了一个简单友好的购物窗口,功能需求如下:(1)输出模块程序在消费者购物前将所售商品的品牌输出以供消费者选择品牌,然后将消费者选择的品牌下的商品信息输出让消费者选择所需的商品,最后输出“请你付款班级”提示消费者完成购物。(2)输入模块让将消费者选定的商品的编码输入程序中然后进行价格的输出,以上述的方式让消费者把购物数量输入进程序中,最后将消费者付款金额输入,进而完成找钱。(3)返回模块如果消费者所输入的商品编码自
4、动售货机上没有,则程序自动跳转到商品品牌的选择,提示消费者输入正确的商品编码。并且如果消费者输入的购买数量大于库存数量,程序将自动返回到商品的数量选择界面下,还有如果消费者的付款金额小于消费金额时,程序将自动返回到付款界面。(4)找钱模块将消费者付款金额进行判断后,进行一定运算后按50元、20元、10元、1元的分类分别找对。程序由上述几个模块组成,能帮助消费者以自助的方式完成所需商品的购买并且有效地减少购物时间。另外还能节省售货者的管理时间,大大的提高管理的效率。3 详细设计3.1输出模块本模块主要有输出函数printf()构成,printf()函数是C语言系统提供的格式化输出函数,用于向标准
5、输出设备(通常为显示器)按规定格式输出信息,这是程序中使用最多的标准函数之一。它的使用格式如下:printf(“格式化字符串”表达式表);“表达式表”是要输出的一系列表达式,各表达式之间用“,”分隔。“格式化字符串”用于说明要输出表达式的形式,包括两部分内容:一部分是以“%”开头的格式控制参数,它规定对应表达式的输出格式;另一部分是普通字符或转义字符,对普通字符按原样输出,对转义字符,输出的是其转义后的形式。例如:inta=5,b=10;printf(“Sum=%dn”,a+b);输出结果为:Sum=15。在自动售货机程序中,其输出模块源代码为:printf("n欢迎光临n"
6、;);printf(“请选择:1.百事可乐2.可口可乐3.非常可乐n");printf(”请选择:1听式百事可乐(3元每听)剩d听,2.瓶装百事可乐(8元每瓶)乘lj%d听n",a1,a2);printf(“数量?");printf("商品数量不足,请重新输入:")printf("请选择:1继续购物,2停止购物n");printf(“请您结账");printf("金额不够请重新输入:");printf(“找您50元1张,20元4张,10元4张,1元4张,m,q,l);printf("找
7、您20元4张,10元4张,1元4张,m,q,l);printf(“请您收好!");printf(“购物结束,谢谢光临");输出流程图如下;图1输出流程图其运行时图如下:云匚C:XDocuaemsandSettingsVAdiinistratoreze欢迎光临備违择:疔事可乐氛可匚可乐几非常可乐1障辻择:丄昕式石事可乐0兀琴听).50nr,2.瓶装亡事可乐航每瓶桃训1库违择:i继续胸如涓止啊鷺您结喘共消费9吒请输人全前:1师腾您元张,胴元氓,10亍唏,1元琏请您收妬欢迎光临晴迭择;-百事可乐2.可匚可乐几非常可乐图2输出模块运行时截图3.2 输入模块本模块主要有输出函数sca
8、nf()构成,它是格式化输出函数,即从标准输入设备(键盘)为变量输入数据。它也是程序中使用最多的一个标准函数。其使用格式如下:scanf(“格式化字符串”,变量地址表);“格式化字符串”中控制参数的个数必须与变量地址的个数一致;可以在格式化字符串中的“%”和格式控制符之间加入一个整数,表示任何读操作中的最大位数。例如:Main()Intm,n;Scanf(“%3d%2d”,&m,&n);Printf(“m=%d,n=%dn”,m,n);输入数据流:123456789输出结果为:m=123,n=45。在自动售货机程序中,输入模块流程图如下图3输入模块流程图在自动售货机程序中,其输
9、入模块源代码为scanf("%d",&a);用于输入选择的购买品牌。scanf("%d",&b);用于输入所选品牌下的商品。scanf("%d",&n);用于输入所选品牌下的商品的数量scanf("%d",&b);用于输入是否继续购物scanf("%d",&Money);用于输入付款金额。其输入截图如下:云:C:XDocuaemsandSettinjsXAdiinistratoreze欢迎光临慣违择:i-HV可乐氛可匚可乐九非常可乐虹择:丄昕式非常可乐0兀
10、舸)乘!5训Z八瓶非常可兀g兀每瓶)乘|5训1險量?3惰选择:i继续购如旖止陶物1慣选择:1一百事可乐2一可匚可乐4非常可乐存迭择;1听式百事可乐0元厚听)蒯网巳冬瓶装百事可乐0元每瓶乘恤听kl图4输入模块运行时截图3.3 返回模块本模块if语句和goto语句构成,if语句简单形式如下:语句结构为:If(表达式)语句组其中的“语句组”是若干个C语句,当它只有一个语句时,花括号可以省略。该if语句的过程是:若表达式的值非0(即真),则执行语句组,然后执行if语句的下一个语句;否则不执行语句组之下的语句,即if语句的下一个语句。简言之该if语句的功能就是根据条件(表达式的值),决定是否执行语句组,
11、如下图所示:图5if语句逻辑结构示意图goto语句是一种无条件转移语句,主要用于控制程序的执行方向,也可以利用它反复执行同一段程序。它的用法比较简单。一般格式如下:goto语句标号;语句标号是一个标识符,它的语句之间以“:”分隔,可以单独的占一个程序行,也可以和程序语句处于同一行上。执行goto语句后,程序将跳转到该标号处,并执行其后的语句。在自动售货机程序设计时,其流程图如下:图6返回模块流程图在自动售货机程序中,其源代码如下:loop:i=p=0;printf("n欢迎光临n");loop1:i+;m=q=0;printf("请选择:1.百事可乐2.可口可乐3
12、.非常可乐n");scanf("%d",&a);if(a!=1&&a!=2&&a!=3)gotoloop;运行时截图如下:C:XDocuaentsandSettincsAd>inistratorexe欢迎光临睛违择:-百事可乐氛可匚可乐几非常可乐情辿乖:匚白事可乐2.可可乐冷炸可汗4|欢迎光临睛迭择:百事可乐2一可厂可乐:1_非常可乐欢迎光的请述择:丄.百事可乐缜可匚可乐乳非當可乐图7返回模块运行时截图3.4 找钱模块本模块由if-elseif结构构成,它属于if-else结构的嵌套形式,它的一般结构如下:If(表达式
13、1)语句组1elseIf(表达式2)语句组2从上到下逐个对条件进行判断,一旦发现条件满足就执行与它有关语句组,其下的所有条件都不在判断,当然它们的语句组也不在执行;执行最后一个语句组。最后这个else常起着“默认条件”的作用。在自动售货机程序设计中,找钱模块流程图如下:(开始;输入付款金额按50、20、10、1元找零按20、10、1元找零结束图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;printf(“找您50元1张,20元4张,
14、10元4张,1元d张",m,q,l);elsek=j;if(k/2>=1)m=k/2;q=k-2*m;printf("找您20元4张,10元4张,1元d张",m,q,l);其运行时截面图如下:百事可乐2一可厂可乐帚非常可乐1听式非常可乐0元每听)剩囲听詔.小瓶非常可乐5元每瓶)剩强听丄继续购物.2停止殉物欢迎光临惧选择,駡选择:1*攵堅3猜选择;匚亍C:XDocuaentandSettingsAdBinistratoreze情您结哦共價资3兀清笹入金额险额不竣请重薪输入:誇输入金额:诞肢您社曲胭元2曲lBTLB,1元琳请您收奸,次址允临晴违择:i.白事口、乐
15、2.口匚口、乐3.非常口.1乐图8找钱模块运行时截图4 结论通过对C程序设计基础的学习,我掌握了一些基本的编程方法和思路,出色的完成了这次自动售货机管理程序课程设计,这次课程设计是对我接触C语言这个新事物以来的第一次比较系统的检验,我很重视,也很刻苦的钻研自己的课题,当然,通过努力完成设计的也不只我一个人,大家都很出色,都很优秀,这次设计对我以后学习编程都有着深远的影响,所以,完成这次课程设计,我很高兴,这也为我以后的学习增加了很多信心,在以后的学习生活中,我一定会努力钻研C语言,为以后的发展铺下宽广的道路。通过这次实训,增加了我学习软件技术的兴趣,虽然还不明确软件技术包含的具体内容,但从C语
16、言这门课程开始,已发现程序设计的乐趣,在学习C语言的过程中也学到了许多计算机应用基础知识,对计算机的机体也有了一个大体的了解。这次课设先做简单的输出模块、输入模块,一步步的再做其它功能,如返回模块、找钱模块。在实际操作过程中犯的一些错误还会有意外的收获,感觉课设很有意思。例如在找钱模块中,刚开始程序找钱不对,我便反复的寻找错误的原因,终于发现“p=Money”中的“=”是赋值而非等于的意思,应该用“=”。在具体操作中对这学期所学的C语言的理论知识得到巩固,达到实训的基本目的,也发现自己的不足之出,在以后的上机中应更加注意,同时体会到C语言具有的语句简洁,使用灵活,执行效率高等特点。发现课设的重
17、要作用,对C语言有了更深刻的理解。在此希望以后应多增加练习,加长时间,培养独立思考问题的能力,提高实际操作水平。在这次设计中我学到了很多,也发现了自己的不足,也难免有错误之处,敬请老师提出!参考文献1 张磊.C语言程序设计M.北京:高等教育出版社,20062 吕凤煮.C语言基础教程基础理论与案例M.北京:清华大学出版社,20053 黄明、梁旭、万洪莉.C语言课程设计M.北京:电子工业出版社,200613附录:自动售货机管理程序源代码#include<stdio.h>voidmain()intMoney;intn,a,b,c,a1,a2,a3,a4,a5,a6,p,q,i,j,k,m
18、,l;intsum4=0,0,0;a1=a2=a3=a4=a5=a6=50;loop:i=p=0;printf("n欢迎光临n");loop1:i+;m=q=0;printf("请选择:1.百事可乐2.可口可乐3.非常可乐n");scanf("%d",&a);if(a!=1&&a!=2&&a!=3)gotoloop;switch(a)case1:printf("请选择:1听式百事可乐(3元每听)剩d听,2.瓶装百事可乐(8元每瓶)剩d听n",a1,a2);scanf(&quo
19、t;%d",&b);loop2:printf("数量?");scanf("%d",&n);if(b=1&&n<=a1|b=2&&n<=a2)switch(b)case1:sumi=3*n;a1=a1-n;break;case2:sumi=8*n;a2=a2-n;break;elseprintf("商品数量不足,请重新输入:”);gotoloop2;break;case2:printf("请选择:小瓶可口可乐(2元每瓶)乘lj%d瓶,2.大瓶(7元每瓶)剩4瓶n&qu
20、ot;,a3,a4);scanf("%d",&b);loop3:printf("数量?");scanf("%d",&n);if(b=1&&n<=a3|b=2&&n<=a4)switch(b)case1:sumi=2*n;a3=a3-n;break;case2:sumi=3*n;a4=a4-n;break;elseprintf(嘀品数量不足,请重新输入:”);gotoloop3;break;case3:printf("请选择:1听式非常可乐(3元每听)剩d听,2.小瓶非常可乐(4元每瓶)剩小听n",a5,a6);scanf("%d",&b);loop4:printf("数量?");scanf("%d",&n);if(b=1&&n<=a5|b=2&&n<=a6)switch(b)case1:sumi=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年反射疗法师大赛理论能力检测试卷及完整答案详解(各地真题)
- 2024-2025学年度冶金工业技能鉴定题库(黄金题型)附答案详解
- 2024-2025学年四川文化艺术学院单招《英语》考试彩蛋押题(考点精练)附答案详解
- 2024-2025学年度临床执业医师自我提分评估附完整答案详解(典优)
- 2024-2025学年度医师定期考核考前冲刺练习带答案详解AB卷
- 2024-2025学年度山东华宇工学院电视播音主持期末考试题库试题带答案详解(培优B卷)
- 2024-2025学年度刑法期末考试能力检测试卷含答案详解【培优B卷】
- 2024-2025学年度计算机四级能力检测试卷【A卷】附答案详解
- 2024-2025学年度中医执业医师考试彩蛋押题(有一套)附答案详解
- 2024-2025学年度河北省单招考试一类 《文化素质数学》全真模拟模拟题往年题考附答案详解
- 出口海运工厂集装箱货物绑扎加固指南
- 学前儿童家庭与社区教育(学前教育专业)PPT全套完整教学课件
- 电动机检修作业指导书
- TS30测量机器人Geocom中文说明书
- 化工厂监控系统解决方案
- GB/T 3565.1-2022自行车安全要求第1部分:术语和定义
- GB/T 3452.4-2020液压气动用O形橡胶密封圈第4部分:抗挤压环(挡环)
- GB/T 15382-2021气瓶阀通用技术要求
- 公共管理核心与前沿课件
- 磁粉检测技术(ii级)学习培训模板课件
- 新员工跟进转正面谈记录表
评论
0/150
提交评论