《程序设计基础课程设计自动售货机系统》由会员分享,可在线阅读,更多相关《程序设计基础课程设计自动售货机系统(22页珍藏版)》请在金锄头文库上搜索。
1、xxxxxx课程设计报告 院(系):_电子信息工程学院_ 班 级: xxxxx 学生姓名: x x x 学 号: xxxxx 设计地点(单位)_ _ 设计题目:_ 自动售货机系统 _ _ 完成日期: 20011 年 11月 27 日 指导教师评语: _ _ _ 成绩(五级记分制):_ _ 教师签名:_xxxxxx程序设计基础课程设计报告重庆科技学院课程设计任务书设计题目:自动售货机系统学生姓名xxxxx课程名称程序设计基础课程设计专业班级xxxx地 点起止时间设计内容及要求某公司请你为其生产的自动售货机编写软件。这种无人值守自动售货机贩卖价值为A、B、C的三种商品,价格分别为2元,3元和6元。
2、顾客投入10元的纸币,然后选择购买3种商品之一,自动售货机吐出商品,并且找给用户零钱。如果商品已经卖完,或者无法找零,则给出用户一个提示,商品已售完,并且退还纸币。 自然,你的售货机用户希望尽可能地给用户找零,以免流失顾客。为了调查用户的喜好,希望得到三种商品的每日消费数据,由此来调整货柜中三种货物的存贮量。你的程序将实现以下功能: 库存查询:检索当前三种商品的储存量 商品上架:为三种商品增加或者减少储量 销售查询:分别统计今天每种商品的销售量和销售额 会计查询:打印当天的往来帐目以及剩余零钞数目 结算功能:取出今天所有的10元纸币,并且分别设置零钞的数目 销售界面:顾客投入纸币,选择商品,获
3、得商品和零钱;或者直接显示错误并退还纸币 【题目要求】 (1)为各项操作功能设计一个菜单。应用程序运行后,先显示这个菜单,然后操作员通过菜单项选择希望进行的操作项目; (2)你的售货机用户不希望每一位顾客都有权限执行以上功能,因此一旦进入销售界面,就不应当退回到系统界面,但是应允许顾客反复购买,前一个顾客购买完毕后应停留在销售界面里允许下一个顾客操作。直到某位特殊的顾客(超级顾客)输入特殊的商品代号(密码)方可回到主控界面。 (3)计算机安排的找零算法应该合理,不要出现某一种零钱找光的情况。同时顾客也不喜欢明明有5元零钞,却被找给5个一元的零钞。尽量满足这两个要求。 (3)、要求以上功能分别用
4、函数实现。并要求用C语言的文件操作语句将以上所有结果保存在文件XX.out。 【输入/输出要求】 (1)应用程序运行后,先显示一个菜单,然后用户根据需要选择相应的操作项目。进入每个操作后,根据程序的提示输入相应的信息; (2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课程设计报告。设计参数(1)系统分析、设计正确。(2)结果以图表方式显示。(3)界面简洁、美观。(4)报告格式规范。进度要求周一:明确设计任务,学习相关基础知识周二:熟悉各知识点,进行基础练习周三:根据题目要求,进行设计
5、和实现周四:根据题目要求,进行设计和实现周五:撰写报告,进行答辩参考资料1何钦铭 颜晖.语言程序设计.高等教育出版社.2008年2谭浩强 张基温.语言程序设计教程.高等教育出版社.2006年其它难点提示:1、首先分析题目的数据结构,看看要操作那些值(商品数据,金额数据,甚至需要保存每一笔用户的交易);然后根据题意设计操作对象的结构。可以使用结构体来描述其中较为复杂的对象例如往来帐目;确定结构体的定义;可以使用数组来保存商品数据和已收款,剩余零钞数目这样的数据,使用结构体数组来保存往来帐目数据。2、找零算法一种简单的算法是优先找给大额的零钞,用完再找给小额零钞。但是这种算法充其量只能保证服务最多
6、的顾客,但是后来的顾客就只能拿1元的硬币了。因此可以采用动态最优化算法,剩余的零钞哪个最多,优先找哪个。说明.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。.若填写内容较多可另纸附后。3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。教研室主任: 指导教师:伍建全 2011年9 月14日摘要有史以来,人类发明了无数的信息技术来扩展自身的信息交流、处理和记忆能力。然而,以1946年世界第一台电子计算机的出现为开端,信息技术开始走向一个全新的数字时代。50年多年来,计算机技术飞速发展,日新月异。人们发现起初为解决计算问题而发明的计算机用途越来越
7、广,几乎渗透到涉及信息活动的一切领域。计算机软件的开发更是帮助到各个领域对计算机的使用,更加优化了计算机的功能。根据本次课程设计内容及要求,完成自动售货机系统的设计。这种无人值守自动售货机贩卖价值为A、B、C的三种商品,价格分别为2元,3元和6元。顾客投入10元的纸币,然后选择购买3种商品之一,自动售货机吐出商品,并且找给用户零钱。如果商品已经卖完,或者无法找零,则给出用户一个提示,商品已售完,并且退还纸币。在自动售货机系统中,数据的固化采用.out文件格式进行储存。关键词:计算机 自动售货机 储存II目录摘要I1 设计内容和要求12 概要设计22.1 管理员模块22.2 用户模块32.3 数
8、据固化33 详细设计53.1 管理员模块的详细设计53.2 用户模块的详细设计64 系统测试84.1 管理模式下功能测试94.2库存查询功能测试104.3 商品上架功能测试114.4 销售查询功能测试124.5 销售功能测试125 总结14致谢15参考文献161 设计内容和要求某公司请你为其生产的自动售货机编写软件。这种无人值守自动售货机贩卖价值为A、B、C的三种商品,价格分别为2元,3元和6元。顾客投入10元的纸币,然后选择购买3种商品之一,自动售货机吐出商品,并且找给用户零钱。如果商品已经卖完,或者无法找零,则给出用户一个提示,商品已售完,并且退还纸币。 自然,你的售货机用户希望尽可能地给
9、用户找零,以免流失顾客。为了调查用户的喜好,希望得到三种商品的每日消费数据,由此来调整货柜中三种货物的存贮量。你的程序将实现以下功能: 库存查询:检索当前三种商品的储存量 商品上架:为三种商品增加或者减少储量 销售查询:分别统计今天每种商品的销售量和销售额 会计查询:打印当天的往来帐目以及剩余零钞数目 结算功能:取出今天所有的10元纸币,并且分别设置零钞的数目 销售界面:顾客投入纸币,选择商品,获得商品和零钱;或者直接显示错误并退还纸币 162 概要设计本自动售货机系统有两类用户权限,第一类管理员、第二类普通用户。根据各类权限的不同将系统分为了两个模块。自动售货机系统销售模块管理模块图2.1
10、自动售货机系统模块图它们各具有的功能将在下面的章节中进行介绍。2.1 管理员模块管理员是自动售货机系统中权限最高的用户。在管理员工作模式下,管理员可以进行货物进行上/下架操作、商品库存信息查询、销售信息查询、会计查询、结算功能、切换到销售界面几大操作。管理员模块下的功能结构图,如下:管理员模块库存查询商品上架会计查询销售查询结算功能销售界面切 换图2.2 管理员模块图2.2 用户模块用户模块下主要提供的是商品的销售功能及切换至管理工作模式的功能,结构图如下:用户模块销售商品切换至管理模式图2.3 用户模块图2.3 数据固化数据:在计算机系统中,各种字母、数字符号的组合、语音、图形、图像等统称为
11、数据,数据经过加工后就成为信息。在本系统中涉及的数据只是一些简单的字符和数字的组合,对于它的数据固化也将采用比较简单的文本方式进行存储。但是,文件中的数据存储格式必须是我们程序员给出定义的。在自动售货机系统的使用到的文件是goods.out,用以存储货物的基本信息,他们的具体含义如下:1)商品的数据定义以行为单位,描述一类商品,数据格式为:商品名 商品总量 商品价格(以空格隔开)3 详细设计3.1 管理员模块的详细设计管理员是整个图书管理系统中拥有最多权限的一个系统角色。现在我们就来看看它的详细设计是怎么样的?它是怎么样完成预定的功能的?管理员选择库存查询商品上架销售查询销售界面切 换浏览增减
12、浏览结束图3.1 管理员模块流程图库存查询和销售查询处理流程大概相同,下面只给出商品上架的流程图。读取文件录入商品编号商品编号存在否更新数量完成各项商品信息录入写入文件图3.2 商品上架流程图3.2 用户模块的详细设计用户模块主要是销售商品的界面。销售商品的整个过程是,用户输入商品代号,然后投入货币,然后进行找零等操作,最后放出商品,完成交易。下面来看一下用户模块的流程。用户选择商品A商品B商品C投币投币投币写入文件图3.3 用户模块流程图4 系统测试它的的任务是尽可能彻底地检查出程序中的错误,提高软件系统的可靠性,其目的是检验系统做得怎样?。这阶段又可分为三个步骤:模块测试,测试每个模块的程
13、序是否有错误;组装测试,测试模块之间的接口是否正确;确认测试,测试整个软件系统是否满足用户功能和性能的要求。该阶段结束应交付测试报告,说明测试数据的选择,测试用例以及测试结果是否符合预期结果。测试发现问题之后要经过调试找出错误原因和位置,然后进行改正。是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不相符合或与之矛盾的地方。系统启动选择界面。图4.1系统启动选择界面4.1 管理模式下功能测试要进入管理模式,必须得到系统管理口令验证。系统正确的管理口令是“admin”图 4.2 管理验证界面图输入“admin123”错误口令,测试错误的正确结果。输入“admin”正确口令,测试正确的结果,进入管理员模式。图 4.3 管理员模式下的主界面