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