自动售货机报告C语言课程设计
自动售货机报告c语言课程设计报告报告
- -自动售货机图形模拟系统需求分析课题名称:自动售货机图形模拟系统小组成员:朱伟鑫U201314490班级:测控1301班指导老师:周纯杰、何顶新、刚、周凯波上交日期:贰零壹肆年玖月贰拾壹日目录1.引言--现实中的自动售货机 (2)2.运行环境 (3)3.功能设计 (3)3.1触摸屏 (3)3.2自动换零 (3)3.3销量统计 (3)3.4提前补货 (4)3.5显示商品信息 (4)3.6自动售货机网络 (4)3.7无响应自动处理 (4)4.软件系统需求分析 (4)4.1图形显示 (4)4.2菜单模块 (5)4.3交易模块 (5)4.4管理模块 (5)5.系统流程图 (5)6.时间安排...........................................6自动售货机图形模拟系统朱伟鑫课题要求以自动售货机为对象,图形化模拟投币、找零、出货的基本流程;能对售货机的商品进行管理:补货、查询、统计等功能。
1引言--现实中的自动售货机自动售货机是能根据投入的钱币自动付货的机器。
自动售货机是商业自动化的常用设备,它不受时间、地点的限制,能节省人力、方便交易。
是一种全新的商业零售形式,又被称为24小时营业的微型超市。
能分为三种:饮料自动售货机、食品自动售货机、综合自动售货机。
从自动售货机的发展趋势来看,它的出现是由于劳动密集型的产业构造向技术密集型社会转变的产物。
大量生产、大量消费以及消费模式和销售环境的变化,要求出现新的流通渠道;而相对的超市、百货购物中心等新的流通渠道的产生,人工费用也不断上升;再加上场地的局限性以及购物的便利性等这些因素的制约,无人自动售货机作为一种必须的机器便应运而生了。
从广义来讲投入硬币、纸币、信用卡等后便可以销售商品的机械,从狭义来讲就是自动销售商品的机械。
从供给的条件看,自动售货机可以充分补充人力资源的不足,适应消费环境和消费模式的变化,24小时无人售货的系统可以更省力,运营时需要的资本少、面积小,有吸引人们购买好奇心的自身性能,可以很好地解决人工费用上升的问题等各项优点。
自动饮料售货机课程设计报告
学生姓名:专业班级:指导教师:工作单位:题目: 自动售货饮料机控制电路的设计与实现初始条件:本设计既可以使用计数器、比较器、脉冲发生器等和必要的门电路等,也可以使用单片机系统构建。
用数码管、LED灯显示结果。
要求完成的主要任务: (包括课程设计工作量及技术要求,以及说明书撰写等具体要求)1、课程设计工作量:1周。
2、技术要求:1)售货机只接受5角和1元的硬币,可以用按钮代替硬币的投入。
投入硬币的总金额用两位数码管显示,最大投入金额为9.5元。
2)售货机可以自动出售3种饮料,售价分别是0.5元,1元和1.5元。
当顾客完成投币后,根据投入金额,各饮料对应的LED将亮起(如投入1元硬币,0.5元和1元饮料的LED亮起,表示可以购买0.5元或1元饮料)。
3)顾客根据自身需要按下各饮料对应的按钮,每按一次掉出一瓶饮料,两位数码管显示剩余金额,LED继续指示可购饮料的种类;4)顾客按下“找零”按钮将使机器发出找零信号,两位数码管清零。
5)确定设计方案,按功能模块的划分选择元、器件和中小规模集成电路,设计分电路,画出总体电路原理图,阐述基本原理。
3、查阅至少5篇参考文献。
按《武汉理工大学课程设计工作规范》要求撰写设计报告书。
全文用A4纸打印,图纸应符合绘图规范。
时间安排:1、 2013 年 5 月 16日,布置课设具体实施计划与课程设计报告格式的要求说明。
2、 2013 年 6 月 28 日至 2013 年 6 月 30 日,方案选择和电路设计。
3、 2013 年 7 月 1 日至 2013 年 7 月 3 日,电路调试和设计说明书撰写。
4、 2013 年 7 月 5 日,上交课程设计成果及报告,同时进行答辩。
指导教师签名:年月日系主任(或责任教师)签名:年月日摘要本文设计了一种以INTEL 公司的AT89C52单片机为核心的自动饮料售货机装置的控制系统,详细介绍了自动饮料售货机控制系统的方案设计、硬件选择、软件规划和编写,并重点描述了自动饮料售货机控制系统的工作原理、系统设计、软件编程的原则和技巧。
自动售货机系统-《C语言程序设计》课程设计报告
money.wy=50;
money.sy=0;
a.xsje=a.sc*2;
b.xsje=b.sc*3;
c.xsje=c.sc*6;
fp=fopen("jilu.txt","a");
do{printf("\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^\n");
结算功能:取出今天所有的10元纸币,并且分别设置零钞的数目
销售界面:顾客投入纸币,选择商品,获得商品和零钱;或者直接显示错误并退还纸币
【题目要求】
(1)为各项操作功能设计一个菜单。应用程序运行后,先显示这个菜单,然后操作员通过菜单项选择希望进行的操作项目;
(2)你的售货机用户不希望每一位顾客都有权限执行以上功能,因此一旦进入销售界面,就不应当退回到系统界面,但是应允许顾客反复购买,前一个顾客购买完毕后应停留在销售界面里允许下一个顾客操作。直到某位特殊的顾客(超级顾客)输入特殊的商品代号(密码)方可回到主控界面。
在自动售货机系统中,数据的固化采用.out文件格式进行储存。
关键词:计算机自动售货机储存
1 设计内容和要求
某公司请你为其生产的自动售货机编写软件。这种无人值守自动售货机贩卖价值为A、B、C的三种商品,价格分别为2元,3元和6元。顾客投入10元的纸币,然后选择购买3种商品之一,自动售货机吐出商品,并且找给用户零钱。如果商品已经卖完,或者无法找零,则给出用户一个提示,商品已售完,并且退还纸币。
7月4日9:00~12:00学生课程设计答辩,14:00~17:00学生提交课程设计报告
考
参考资料
C语言实现最全自动售货机
C语⾔实现最全⾃动售货机拥有所有功能⾃动售货机C语⾔主要功能:欢迎页⾯、通过⽂本⽂件读⼊货物信息、上货、卖货(包含找零,付款不⾜等多种情况)、增加新品种、按单价从⾼到低排序、按序号排序、退出前将所有货物信息回写进⽂本⽂档实际代码⾮常简单使⽤环境VS2017编译运⾏正常;DEV C++删除第⼀⾏(#define _CRT_SECURE_NO_WARNINGS)注意事项1.第⼀次使⽤需要进⼊系统维护录⼊所有信息.2.在使⽤时会在桌⾯创建⼀个⽂本⽂件记录数据,下次运⾏也会有数据.3.录⼊数据时⼀定注意按照系统提⽰,⼀定要先输⼊编号再进⾏创建新的品种,可以输⼊中⽂名称,如农夫⼭泉.//初次使⽤请进⾏系统维护并录⼊商品信息#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#define SIZE 100000#include<string.h>#include<stdlib.h>#include<conio.h>//货物数据结构struct huowu{int n; //编号char name[10]; //名称int Price; //价格int Maths; //剩余数量}s[SIZE];/*录⼊数据*/void finput(){FILE *fp;int i, t, x = 1;fp = fopen("fs+", "w"); //printf("已进⼊重新录⼊数据界⾯,之前数据将被清除!\n\n请按提⽰输⼊编号\n");for (i = 0; i < SIZE; i++){printf(" 第%d个请输⼊编号(请与左⽅编号⼀致,按回车键进⼊下⼀步,当输⼊i=-1时,完成录⼊商品信息)\n", x++);//需要逐⼀⼿动先输⼊编号scanf("%d", &t);i = t;if (i == -1){fclose(fp);return;}else{i = t - 1;printf("请输⼊名称价格及添加的库存,⽤空格间隔开,按回车键继续\n");scanf("%s %d %d", &s[i].name, &s[i].Price, &s[i].Maths);s[i].n = i + 1;fwrite(&s[i], sizeof(struct huowu), 1, fp);}}fclose(fp);}/*输出数据*/void flist(){FILE *fp;printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf(" 列表\n");printf("-----------------------------------------------------------\n");printf("序号名称价格库存 \n");printf("-----------------------------------------------------------\n");for (i = 0; fread(&s[i], sizeof(struct huowu), 1, fp) == 1; i++){printf("%d%18s%16d%16d\n", s[i].n, s[i].name, s[i].Price, s[i].Maths); }printf("-----------------------------------------------------------\n\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");fclose(fp);}/*修改数据*/void fchange(){FILE *fp;int k;fp = fopen("fs+", "r");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf(" 列表\n");printf("-----------------------------------------------------------\n");printf("序号名称价格库存 \n");printf("-----------------------------------------------------------\n");for (k = 0; fread(&s[k], sizeof(struct huowu), 1, fp) == 1; k++){printf("%d%18s%16d%16d\n", s[k].n, s[k].name, s[k].Price, s[k].Maths); }printf("-----------------------------------------------------------\n\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");int i, n;int flag = 0;printf("请输⼊要修改商品的序号:");scanf("%d", &n);for (i = 0; i <= SIZE; i++)if (s[i].n == n){printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf(" 列表\n");printf("-----------------------------------------------------------\n");printf("序号名称价格\n");printf("-----------------------------------------------------------\n");printf("%d%32s%25d\n", s[i].n, s[i].name, s[i].Price);printf("-----------------------------------------------------------\n\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); n = i;flag = 1;break;}if (flag == 0){printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf(" 输⼊错误!\n");printf(" 请重新选择!\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");return;}printf("\n\n\n");fp = fopen("fs+", "r+");fseek(fp, n * sizeof(struct huowu), 0);printf("请输⼊新的名称价格:");scanf("%s%d", s[i].name, &s[i].Price);fwrite(&s[i], sizeof(struct huowu), 1, fp);fclose(fp);fp = fopen("fs+", "r");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf(" 列表\n");printf("-----------------------------------------------------------\n");printf("序号名称价格\n");printf("-----------------------------------------------------------\n");for (i = 0; fread(&s[i], sizeof(struct huowu), 1, fp) == 1; i++){printf("%d%28s%28d\n", s[i].n, s[i].name, s[i].Price);printf("-----------------------------------------------------------\n\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");fclose(fp);}/* 排序*/void ftaxis(){int i, j, n;FILE *fp;struct huowu t;fp = fopen("f.s+", "r");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf(" 列表\n");printf("-----------------------------------------------------------\n");printf("序号名称价格\n");printf("-----------------------------------------------------------\n");for (i = 0; fread(&s[i], sizeof(struct huowu), 1, fp) == 1; i++){printf("%d%28s%28d\n", s[i].n, s[i].name, s[i].Price);}printf("-----------------------------------------------------------\n\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");fclose(fp);n = i;for (i = 0; i < n; i++)for (j = i + 1; j < n; j++)if (s[i].Price < s[j].Price){t = s[i];s[i] = s[j];s[j] = t;}fp = fopen("fss+", "w");printf("\n\n\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf(" 列表 \n");printf("-----------------------------------------------------------\n");printf("序号名称价格\n");printf("-----------------------------------------------------------\n");for (i = 0; i < n; i++){fwrite(&s[i], sizeof(struct huowu), 1, fp);printf("%d%28s%28d\n", s[i].n, s[i].name, s[i].Price);}printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");fclose(fp);}//添加库存int fadd(){FILE *fp;int i, num, n;int flag = 0;printf("请输⼊要补货商品的序号:");scanf("%d", &n);for (i = 0; i <= SIZE; i++)if (s[i].n == n){printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf(" 列表\n");printf("-----------------------------------------------------------\n");printf("序号名称库存\n");printf("-----------------------------------------------------------\n");printf("%d%8s%8d\n", s[i].n, s[i].name, s[i].Maths);printf("-----------------------------------------------------------\n\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); n = i;flag = 1;break;}if (flag == 0)printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf(" 输⼊错误!\n");printf(" 请返回!\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");return 0;}printf("\n\n\n");fp = fopen("fs+", "r+");fseek(fp, n * sizeof(struct huowu), 0);printf("请输⼊添加后此商品总个数");scanf("%d", &s[i].Maths);fwrite(&s[i], sizeof(struct huowu), 1, fp);fclose(fp);fp = fopen("fs+", "r");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf(" 列表\n");printf("-----------------------------------------------------------\n");printf("序号名称库存\n");printf("-----------------------------------------------------------\n");for (i = 0; fread(&s[i], sizeof(struct huowu), 1, fp) == 1; i++){printf("%d%8s%8d\n", s[i].n, s[i].name, s[i].Maths);}printf("------------------------补货完成-------------------------\n\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");fclose(fp);}/*内部操作systeam*/int neibu(){system("cls");int n;for (;;){printf("\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf("※※\n");printf("※欢迎进⼊⾃动售货机(内部) ※\n");printf("※※\n");printf("※※\n");printf("※主菜单※\n");printf("※※\n");printf("※▲1.重新所有录⼊数据▲※\n");printf("※▲2.展⽰商品信息▲※\n");printf("※▲3.补充库存▲※\n");printf("※▲4.修改数据▲※\n");printf("※▲5.按照价格排序并⽣成另⼀个⽂件▲※\n");printf("※▲6.退出系统▲※\n");printf("※※\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n\n"); printf("请输⼊选择项(1-6):");scanf("%d", &n);printf("\n\n\n\n");if (n > 0 && n < 8){switch (n){case 1:finput(); break;case 2:flist(); break;case 3:fadd(); break;case 4:fchange(); break;case 5:ftaxis(); break;case 6:printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("※※\n");printf("※谢谢使⽤! ※\n");printf("※再见! ※\n");printf("※※\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");system("pause");system("cls"); //清空屏幕return 0;// exit(0);}else{printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("※※\n");printf("※输⼊错误! ※\n");printf("※请退出! ※\n");printf("※※\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");break;}}system("cls"); //清空屏幕}/*购买*/void buy(){FILE *fp;int i;system("cls");fp = fopen("fs+", "r");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf(" 列表\n");printf("-----------------------------------------------------------\n");printf("序号名称价格库存 \n");printf("-----------------------------------------------------------\n");for (i = 0; fread(&s[i], sizeof(struct huowu), 1, fp) == 1; i++){printf("%d%18s%16d%18d\n", s[i].n, s[i].name, s[i].Price, s[i].Maths); }printf("----------------请输⼊需要的商品按回车继续-----------------\n");printf("-----------------------------------------------------------\n\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");int num, n, B = 1;float money = 0.0, m = 0;int flag = 0;restar:printf("请输⼊要购买商品的序号:");scanf("%d", &n);for (i = 0; i <= SIZE; i++)if (s[i].n == n){printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf("-----------------------------------------------------------\n");printf("序号名称价格\n");printf("-----------------------------------------------------------\n");printf("%d%30s%26d元\n", s[i].n, s[i].name, s[i].Price);printf("-----------------------------------------------------------\n\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); n = i;flag = 1;break;}if (flag == 0){printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf(" 输⼊错误!\n");printf(" 请返回!\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); return;}printf("\n\n\n");fp = fopen("fs+", "r+");fseek(fp, n * sizeof(struct huowu), 0);s[i].Maths = s[i].Maths - 1;fwrite(&s[i], sizeof(struct huowu), 1, fp);fclose(fp);fp = fopen("fs+", "r");if (s[i].Maths <= 0){printf("存货不⾜,请购买其他商品!\n");s[i].Maths = 0;goto restar;}printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("-----------------------------------------------------------\n");printf(" 请⽀付 %d 元(仅限⼀元以上⾯额)\n", s[i].Price);printf("-----------------------------------------------------------\n\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");while (B){scanf("%f", &money);m += money;if (m < s[i].Price){printf("⾦额不⾜,请继续⽀付\n\n");}if (m == s[i].Price){printf("付款成功\n\n");B = 0;break;s[i].Maths = s[i].Maths - 1;}if (m > s[i].Price){money = m - s[i].Price;printf(" 付款成功,找零%f请您收好\n\n\n\n 欢迎下次使⽤\n\n\n", money);B = 0;break;s[i].Maths = s[i].Maths - 1;}}fclose(fp);system("pause");}//主函数int main(){char sr;//定义电脑接受的字符system("color F0");start://起始位置system("cls");printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("※欢迎使⽤⾃动售货机(初始试⽤版)※\n");printf("※※\n");printf("※请输⼊选项※\n");printf("※ a.⽤户购买※\n");printf("※ b.系统维护※\n");printf("※※\n");printf("※按回车继续。
自动售货机实验报告
软件课程设计实验报告课题:自动售货机班级:电信作者:学号:课程设计实验报告第一部分程序代码 (7)第二部分软件设计文档 (15)一、软件需求说明书 (15)1引言 (15)1.1编写目的 (15)1.2背景 (15)1.3定义 (15)1.4参考资料 (16)2任务概述 (16)2.1目标 (16)2.2用户的特点 (16)2.3假定和约束 (16)3需求规定 (16)3.1对功能的规定 (17)3.2对性能的规定 (17)3.3输人输出要求 (18)3.4数据管理能力要求 (18)3.5故障处理要求 (18)3.6其他专门要求 (19)4运行环境规定 (19)4.1设备 (19)4.2支持软件 (19)4.3接口 (19)4.4控制 (19)二、概要设计说明书 (20)1引言 (20)1.1编写目的 (20)1.2背景 (20)1.3定义 (20)1.4参考资料 (20)2 需求说明 (21)2.1需求规定 (21)2.2运行环境 (21)2.3基本设计概念和处理流程 (21)2.5功能器求与程序的关系 (22)2.6人工处理过程 (23)2.7尚未解决的问题 (23)3接口设计 (23)3.1用户接口 (23)3.2外部接口 (23)3.3内部接口 (23)4运行设计 (23)4.1运行模块组合 (23)4.2运行控制 (24)4.3运行时间 (24)5系统数据结构设计 (24)5.1逻辑结构设计要点 (24)5.2物理结构设计要点 (24)5.3数据结构与程序的关系 (24)6系统出错处理设计 (25)6.1出错信息 (25)6.2补救措施 (25)三、详细设计说明 (26)1引言 (26)1.1编写目的 (26)1.2背景 (26)1.3定义 (26)1.4参考资料 (26)2程序系统的结构 (27)3投币模块 (27)3.1程序描述 (27)3.2功能 (27)3.3性能 (27)3.4输入项 (28)3.5输出项 (28)3.6算法 (28)3.7流程逻辑 (28)3.8接口 (28)3.9存储分配 (29)3.10注释设计 (29)3.11限制条件 (29)3.12测试计划 (29)4退币模块 (30)4.1程序描述 (30)4.2功能 (30)4.3性能 (30)4.4输入项 (30)4.5输出项 (30)4.6算法 (30)4.7流程逻辑 (31)4.8接口 (31)4.9存储分配 (31)4.10注释设计 (31)4.11限制条件 (32)4.12测试计划 (32)4.13尚未解决的问题 (32)5取货模块 (32)5.1程序描述 (32)5.2功能 (32)5.3性能 (32)5.4输入项 (32)5.5输出项 (33)5.6算法 (33)5.7流程逻辑 (33)5.8接口 (33)5.9存储分配 (34)5.10注释设计 (34)5.11限制条件 (34)5.12测试计划 (34)5.13尚未解决的问题 (34)6购买模块 (35)6.1程序描述 (35)6.2功能 (35)6.3性能 (35)6.4输入项 (35)6.5输出项 (35)6.6算法 (36)6.7流程逻辑 (36)6.8接口 (37)6.10注释设计 (38)6.11限制条件 (38)6.12测试计划 (38)6.13尚未解决的问题 (38)四、测试分析报告 (39)1引言 (39)1.1编写目的 (39)1.2背景 (39)1.3定义 (39)1.4参考资料 (39)2测试概要 (39)3测试结果及发现 (40)3.1测试1(启动系统) (40)3.2测试2(退出系统) (42)3.3测试3(货品展示) (42)3.4测试4(投币购买) (42).5测试5(取出物品) (43)3.6测试6(找零) (44)3.7测试7(退币) (44)3.8测试8(报错) (45)4对软件功能的结论 (45)4.1功能 (45)4.2能力 (46)4.3限制 (46)5分析摘要 (46)5.1能力 (46)5.2缺陷和限制 (46)5.3建议 (46)5.4评价 (47)6测试资源消耗 (47)五、项目开发总结报告 (48)1引言 (48)1.1编写目的 (48)1.2背景 (48)1.3定义 (48)1.4参考资料 (48)2实际开发结果 (49)2.1产品 (49)2.2主要功能和性能 (50)2.3基本流程 (50)2.4进度 (50)3开发工作评价 (52)3.1对生产效率的评价 (52)3.2对产品质量的评价 (52)3.3对技术方法的评价 (52)3.4出错原因的分析 (52)4经验与教训 (53)第一部分程序代码//引入awt、swing包import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;//类Seller的定义,用于实现所有的功能public class Seller extends JFrame implements ActionListener{private static final long serialVersionUID = 6843588200041215448L;private double money = 0.0;//"money"表示用户余额private boolean occupy; //"occupy=false"表示出货口未满,用户可以购买;//"occupy=true"表示出货口已满,用户必须取完货才能继续购买。
c课程设计自助售货机
c 课程设计自助售货机一、教学目标本课程的教学目标是让学生了解和掌握自助售货机的基本原理和操作方法。
知识目标包括了解自助售货机的历史、结构和功能,掌握自助售货机的操作流程和维护方法。
技能目标包括能够独立操作自助售货机,解决基本的故障问题。
情感态度价值观目标包括培养学生对科技创新的兴趣和好奇心,增强学生对自助售货机的使用和维护的责任感。
二、教学内容本课程的教学内容主要包括自助售货机的历史、结构、功能和操作维护方法。
首先,介绍自助售货机的发展历程和现状,使学生了解自助售货机的历史背景和市场发展。
其次,详细讲解自助售货机的结构组成,包括硬件设备和软件系统,使学生了解自助售货机的工作原理。
然后,介绍自助售货机的功能特点,包括商品选择、支付方式、售后服务等,使学生了解自助售货机的使用方式。
最后,教授学生自助售货机的操作维护方法,包括机器启动、商品摆放、故障排除等,使学生能够独立操作和维护自助售货机。
三、教学方法为了实现教学目标,本课程将采用多种教学方法,包括讲授法、演示法、实践法等。
首先,通过讲授法向学生传授自助售货机的基本知识和操作方法。
其次,通过演示法展示自助售货机的实际操作过程,使学生能够直观地了解和模仿。
然后,通过实践法让学生亲自动手操作自助售货机,巩固所学知识和技能。
此外,还可以采用小组讨论法,让学生分组讨论自助售货机的使用和维护问题,培养学生的团队合作意识和问题解决能力。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备多种教学资源。
教材方面,选择内容丰富、结构清晰的自助售货机教材,为学生提供系统的学习材料。
参考书方面,提供一些自助售货机的相关书籍,供学生进一步深入学习和参考。
多媒体资料方面,制作一些自助售货机的操作视频和教学PPT,通过图像和动画的形式展示自助售货机的工作原理和操作方法。
实验设备方面,准备一些实际的自助售货机,供学生在实践环节中实际操作和体验。
此外,还可以利用网络资源,提供一些自助售货机的新闻案例和在线教程,供学生拓展学习和参考。
c语言课程设计超市购物系统
c语言课程设计超市购物系统一、教学目标本课程的目标是使学生掌握C语言编程的基本知识,能够运用C语言设计并实现一个简单的超市购物系统。
在知识目标方面,要求学生掌握C语言的基本语法、数据类型、运算符、控制结构等。
在技能目标方面,要求学生能够熟练使用C语言进行程序设计,具备解决实际问题的能力。
在情感态度价值观目标方面,要求学生培养对编程的兴趣和热情,培养团队合作意识和自主学习能力。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构等。
具体安排如下:1.第一章:C语言概述,介绍C语言的发展历程、特点及应用领域。
2.第二章:基本数据类型和运算符,介绍整型、浮点型、字符型数据及其运算符。
3.第三章:控制结构,介绍顺序结构、选择结构、循环结构。
4.第四章:函数,介绍函数的定义、声明、调用及返回值。
5.第五章:数组和字符串,介绍一维数组、多维数组、字符串的基本操作。
6.第六章:指针,介绍指针的概念、运算及应用。
7.第七章:结构体和联合体,介绍结构体、联合体的定义和应用。
8.第八章:文件操作,介绍文件的基本操作及其应用。
三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法。
在讲授法中,教师通过讲解、示范等方式传授知识;在案例分析法中,教师通过分析实际案例,引导学生运用所学知识解决问题;在实验法中,学生通过动手实践,加深对知识的理解和运用。
四、教学资源本课程的教学资源包括教材、多媒体资料和实验设备。
教材选用《C程序设计原理与应用》,多媒体资料包括教学PPT、视频教程等,实验设备包括计算机、网络设备等。
这些资源将有助于学生更好地学习C语言,提高编程能力。
五、教学评估本课程的评估方式包括平时表现、作业、考试等。
平时表现主要评估学生的课堂参与度、提问回答、团队合作等情况,占总评的30%。
作业主要评估学生的编程能力和理解力,占总评的30%。
考试分为期中考试和期末考试,期中考试占40%,期末考试占60%,考试内容主要包括理论知识及编程实践。
自动贩卖机课程设计
自动贩卖机课程设计一、课程目标知识目标:1. 学生能理解自动贩卖机的基本工作原理,掌握其内部构造及各部件功能。
2. 学生能掌握自动贩卖机中涉及的数据处理和运算过程,如货币识别、找零计算等。
3. 学生了解自动贩卖机在现代社会中的应用场景及其优势。
技能目标:1. 学生能运用所学知识,设计并制作一个简易自动贩卖机模型,展示其工作过程。
2. 学生通过实际操作,提高动手实践能力和团队合作能力,培养解决问题的技巧。
情感态度价值观目标:1. 学生培养对自动贩卖机及相关技术的兴趣,激发创新意识和探索精神。
2. 学生认识到科技发展对生活的改善,增强社会责任感和时代使命感。
3. 学生在学习过程中,树立正确的消费观和价值观,关注生活中的实际问题,培养关爱社会的情感。
二、教学内容本课程依据课程目标,结合教材第四章《简易自动贩卖机的设计与制作》展开,教学内容分为以下三个部分:1. 自动贩卖机原理及构造- 了解自动贩卖机的历史发展、应用场景。
- 学习自动贩卖机的基本构造,包括货道、传感器、控制单元、显示屏等部件的功能和工作原理。
- 探究货币识别、找零系统、商品推送等关键环节的技术原理。
2. 简易自动贩卖机设计与制作- 分析并设计一个简易自动贩卖机的模型,明确各部分功能和要求。
- 学习并运用相关编程软件,编写自动贩卖机的控制程序。
- 学习电路连接、部件组装等实践操作,完成简易自动贩卖机模型的制作。
3. 自动贩卖机项目实践与评价- 以小组合作形式,完成自动贩卖机模型的调试、优化和展示。
- 对项目过程进行总结评价,分析优点和不足,提出改进措施。
- 分享学习心得,培养团队合作精神,提高创新意识和实际操作能力。
教学内容安排和进度:共4课时,第1课时学习自动贩卖机原理及构造;第2课时设计简易自动贩卖机模型;第3课时进行制作和调试;第4课时进行项目评价和总结。
三、教学方法本课程采用多样化的教学方法,结合课本内容,旨在激发学生的学习兴趣,提高学生的主动性和实践能力。
课程设计报告自动售货机
《软件工程》课程设计报告目录:序 (2)一、问题描述 (3)(一)关于自动售货机 (3)(二)自动售货机的设计 (3)二、需求分析 (3)(一)UML自动售货机系统功能需求: (3)(二)UML自动售货机系统操纵要求: (4)(三)业务流程图 (6)(四)数据流程图 (7)三、各类UML图型及其分析 (8)(一)用例图 (8)(二)类图 (9)(三)序列图 (10)(四)协作图 (15)(五)状态图 (18)(六)活动图 (20)(七)组件图 (24)(八)配置图 (24)(九)数据模型图 (25)四、心得体会 (25)序一.目的软件工程课程设计是软件工程专业一个综合性的实践教学环节,其目的在于增进学生温习和巩固运算机软件设计知识,加深对软件设计方式、软件设计技术和设计思想的明白得,并能运用所学软件设计知识和面向对象技术进行综合软件设计,提高学生的综合应用能力。
通过这次课程设计,要把握UML(统一建模语言),并能运用UML在Rational Rose中建模。
二.要求:一人一组。
熟悉Rose开发环境。
把握UML的大体模型元素(如角色、用例、类等)。
熟悉UML,要紧了解UML中的9大图:Use case diagram(用例图)、Class diagram(类图)、Sequence diagram(序列图)、Collaboration diagram(协作图)、Statechart diagram(状态图)、Activity diagram(活动图)、Component diagram(组件图)、Deployment diagram(配置图)、datamodel diagram(数据模型图)。
进行系统需求分析与系统功能模块设计,绘出系统详细的业务流程图和数据流程图,成立完整的系统数据库的逻辑模型。
完成对系统的建模实现。
进行检查,并提交设计报告。
三.报告要求:实验题目、实验目的、实验要求、实验内容、系统设计的源程序和文档(包括说明)、心得体会四.参考资料:Wendy Boggs & Michael Boggs 著邱仲潘译《UML与Rational Rose2002从入门到精通》电子工业出版社Martin Fowler & Kendall Scott:UML Distilled Second Edition A Brief Guide to the Standard Object Modeling LanguageUML参考手册Jason T. Roff 著张瑜杨继萍等译《UML基础教程》清华大学出版社参见本中心效劳器ftp:\\s@172.16.38.223软件开发基础或《软件工程课程设计》目录下的相关文档。
自动饮料售货机(C语言程序设计)
源码在后面! 一、需求分析本程序为饮料自动售货机的程序,能实现饮料的自动销售,并采用文件的形式记录购买数据,能起到节约人力、减少成本的目的。
二、总体设计本设计主要分为两大系统(顾客购买以及管理员管理系统)以及放于d 盘中“饮料.txt ”的文件系统,每个系统分别执行一些特定的功能。
如下图所示:图一 总体设计概念图三、详细设计3.1 管理员模块管理员是自动售货机系统中权限最高的用户。
在管理员工作模式下,管理员可以进行货物进行补充操作、商品库存信息查询、销售额信息查询、切换到销售界面几大操作。
自动饮料售货机顾客购买系统管理员管理系统选择饮料投币找币记录数据登录界面查询销售额查询剩余数量补货管理员模块的功能结构图,如下:图3.1 管理员操作流程图3.2 顾客购买模块用户模块主要是销售商品的界面。
销售商品的整个过程是,用户投入货币,然后输入商品代号,然后进行找零等操作,最后放出商品,完成交易。
下面来看一下用户模块的流程。
管理员输入密码选择商品库存信息查询销售额信息查询货物补充操作结束图3.2 顾客购买饮料流程图四、系统调试分析它的的任务是尽可能彻底地检查出程序中的错误,提高软件系统的可靠性,其目的是检验系统”做得怎样?”。
这阶段又可分为三个步骤:模块测试,测试每个模块的程序是否有错误;组装测试,测试模块之间的接口是否正确:确认测试,测试整个软件系统是否满足用户功能和性能的要求。
该阶段结束应交付测试报告,说明测试数据的选择,测试用例以及测试结果是否符合预期结果。
测试发现问题之后要经过调试找出错误原因和位置,然后进行改正。
是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。
系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不相符合或与之矛盾的地方。
4.1 系统启动主界面如图,由用户选择执行某一个操作。
用户选择投币饮料d饮料a......饮料d饮料和零钱图4.1系统启动主界面图4.2 顾客购买饮料操作测试在主界面下,输入口令“1”,进入购买饮料模块。
c语言自动售货机实验报告
课程设计课程名称 C 语言高级程序设计学院xxx小组成员1XXX小组成员2XXX小组成员3XXX任课教师XXX2016——2017学年第1学期一.所选题目与要求自动售货机问题情景:分析学校教学楼自动售货机的功能,设计一个自动售货系统。
功能要求:1. 系统能提供所售商品的清单(编号,名称,单价,数量)2. 客户输入商品编号及购买数量,系统显示应付的金额,输入客户实付的钱数,系统计算应找的钱数系统如果没有足够的库存或零钱时,现实应返还客户已付的金额。
(不考虑用支付宝付款的情况)3. 可增加商品种类,增加商品库存,查询商品库存,查询商品销售量及销售额。
成果要求:通过网络教学平台中的“研究型教学”建立分组,每组2-3人,通过小组讨论,确定每人的分工,并确定系统设计方案。
各小组成员在网络教学平台上进行讨论、并完成最终的报告,整个过程作为小组及个人工作评价的重要依据。
各小组成员根据系统设计方案分模块进行编程,在系统各模块编码完成后集成调试,并最终完成整个系统的测试。
根据下面的报告模板完成综合实验总结报告,并打印成纸质报告,作为大作业课程结束时上交。
附:综合实验总结报告应包含的内容:1. 系统功能说明2. 程序结构程序结构说明重要数据说明函数清单/* 每个函数的书写格式 */函数名:所在文件名函数功能参数说明算法描述或程序代码3. 系统运行结果4. 系统设计难点及其解决方法5. 不足之处6. 人员分工说明二.问题分析及算法设计主函数void main() //主函数模块{do{system("pause");show(); //显示屏幕函数,商品清单loop1:printf("现在你有%.1f元\n你可以选择商品序号开始选购或按0 退出\n",M);input(); //输入函数if(M-goods[n-1].price>v) {t=0;printf("对不起,售货机没有足够的零钱了\n谢谢光临!退还%.1f元\n",M);break;} //判断售货机是否有足够的零钱,0表无if(n==0){ //确认用户是选择离开还是买东西开始购买t=1;change(M);} //找零函数else {loop2:sell(n,M,1,1); //购买函数if(A==0)//货没有了怎么办input(); //输入函数………………………………………………………………………..if(n==0) //没货离开change(M); //找钱函数else //继续购买其它商品{……………………………………………goto loop2;返回至购买函数} //else} //ifelse if(B==0)//没钱了怎么办{…………………………………..if(m1==0) //离开change(M);返回至找零函数else //加钱{…………………………………………..goto loop1;返回至再次购买} //else} //else ifelse//有钱又有货,继续选goto loop1;返回至购买程序} //else}while(1);} //main结构体定义struct goods//定义物品清单{int number;char name[10];float price;int quantity;}goods[9]={{1,"可口可乐",3,5},{2,"拿铁咖啡",4,5},{3,"橙汁",3,5},{4,"奶茶",4,5},{5,"雪碧",2.5,5},{6,"矿泉水",2,5},{7,"椰子汁",2.5,5},{8,"格瓦斯",3,5}};struct money//定义钱的种类,数量用于记录找零的某值张数{float moneys;int mount;}money[2]={{1,0},{0.5,0}};被调用的函数float show() //显示模块--屏幕{……………………………}int input() //输入模块{…………………………..}}int sell(int n,float m,int a,int b) //出售模块n为序号,m钱,{……………………………if(goods[i].quantity>0) //表示有货{………………………………..}elseA=0; //表示没货了}elseB=0; //表示没钱了if(M==0) B=0;//判断出钱已用光return(a);return(b);}void change(float m) //找钱模块{……………………………switch(a){case 1花光…………………………………….case 2:找零……………………………………………………………………………}}三.程序源代码#include<stdio.h>#include<conio.h>float M;//M为投入的钱数int A=1,B=1,t; //A为数量标记,B为金钱标记,1表示有,0表示没有,t用于标记售货机是否能完成退款int i,n,v=100; //i用于循环显示商品列表,n用于记录输入的货号,v用于保存售货机内可以找零的钱数,初设为v=100//结构体定义struct goods //定义物品清单{int number;char name[10];float price;int quantity;}goods[9]={{1,"可口可乐",3,5},{2,"拿铁咖啡",4,5},{3,"橙汁",3,5},{4,"奶茶",4,5},{5,"雪碧",2.5,5},{6,"矿泉水",2,5},{7,"椰子汁",2.5,5},{8,"格瓦斯",3,5}};struct money //定义钱的种类,数量用于记录找零的某值张数{float moneys;int mount;}money[2]={{1,0},{0.5,0}};float show() //显示模块--屏幕{system("pause");putch('\n');for(i=0;i<8;i++){printf(" |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|\n");printf(" |%d%8s%7.1f元...剩余%7d|\n",goods[i].number,goods[i].name,goods[i].price,goods[i].quantity);} printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");printf("购买东西前,请投入money!(支持1元,5元,10元和20元)\n《温馨提示,投入money过多可能无法完成退币》\n");scanf("%f",&M);return M;}int input() //输入模块{for(;;){scanf("%d",&n);if(n<0||n>8)printf("输入错误,请重新输入商品序号开始选购或按0 退出\n");else {return n;break;}}}int sell(int n,float m,int a,int b) //出售模块n为序号,m钱,{int i=0;while(n!=goods[i].number) i++;if(m>=goods[i].price){if(goods[i].quantity>0){goods[i].quantity--;M=m-goods[i].price;for(i=0;i<8;i++){printf(" |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|\n");printf(" |%d%8s%7.1f元...剩余%7d|\n",goods[i].number,goods[i].name,goods[i].price,goods[i].quantity);} printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");printf("你的商品%d %s 已经出货了\n",goods[n-1].number,goods[n-1].name);}elseA=0; //表示没货了}elseB=0; //表示钱了if(M==0) B=0;//判断出钱已用光return(a);return(b);}void change(float m) /钱模块{int i,a;//用于辅助输出if(m==0) a=1;if(m!=0.0&&t!=1) a=2;switch(a){case 1:printf("钱用光了哦\n谢谢光临!");break;case 2:{for(i=0;i<2;i++)if(money[i].moneys<=m){m=m-money[i].moneys;money[i].mount++;i--;}//继续检索当前的面额是否符合条件,才会有相同面值出现printf(" 谢谢光临!\n找零\n");for(i=0;i<2;i++)if(money[i].mount>0)printf("%d张%.1f元\t\n",money[i].mount,money[i].moneys);m=0;M=0;};money[0].mount=0;break;}}void main() //主函数模块{do{int t=1; //用于标记售货机是否能完成退款,1表能float m1; //m1用于记录用户再次加的钱show(); //显示--屏幕loop1:printf("现在你有%.1f元\n你可以选择商品序号开始选购或按0 退出\n",M);input(); //输入函数if(M-goods[n-1].price>v) {t=0;printf("对不起,售货机没有足够的零钱了\n 谢谢光临!退还%.1f元\n",M);break;} //判断售货机是否有足够的零钱,0表无if(n==0){ //确认用户是选择离开还是买东西开始购买t=1;change(M);} /零函数else {loop2:sell(n,M,1,1);if(A==0)//货没有了怎么办{printf("可惜了,商品%d 已卖完了\n你还有%.1f元\n你可以买其它商品(直接输入商品序号)或按0 离开\n",n,M);input(); //输入函数if(n==0)change(M); /钱函数else{A=1;B=1;//要将标记归位goto loop2;} //else} //ifelse if(B==0)//没钱了怎么办{printf("噢,,,没钱了,你可以继续投入money购买,或按0 离开\n");scanf("%f",&m1);if(m1==0)change(M);else{M=M+m1;A=1;B=1;//标记要归位goto loop1;} //else} //else ifelse//有钱又有货,继续选goto loop1;} //else}while(1);} //main四.系统功能及运行效果图一,系统提供商品清单,并提示购买前投入money二,如果用户投入的money过多,售货机无足够硬币完成退币,自动退还用户已付金额三,用户投入money购买,确定购买商品后,系统显示如下。
【报告】饮料自动售货机带C程序和设计报告
【关键字】报告(C++)作业姓名:夏亮亮学号:班级:电子二班●设计报告(1)《需求分析》:本程序为饮料自动售货机的程序,能实现饮料的自动销售,能起到节约人力、减少成本的目的。
(2)《项目设计》:(3)《尝试报告》:1、主界面:2、选择完成之后:3、付款有误画面:4、正确付款画面:●源代码#include <iostream>using namespace std;void kaishi();void chalei(),qishui(),guozhi();int xuanzhe[3]={0};int xuanzhe_qishui[2]={0};int xuanzhe_chalei[2]={0};void kaishi(){cout <<" ********************************************"<<endl;cout <<" ***** *****"<<endl;cout <<" ***** 饮料自动售货机*****"<<endl;cout <<" ***** *****"<<endl;cout <<" ********************************************"<<endl;}void guozhi(){cout <<" 输入对应数字并按确定"<<endl;cout <<" ---------------------------------------------------"<<endl;cout <<" ------- 1.橙汁(单价3元) 2.桃汁(单价2.5元)--------"<<endl;cout <<" ------- 3.冰糖雪梨(单价4元) 4.完成----------------"<<endl;cout <<" ---------------------------------------------------"<<endl;}void qishui(){cout <<" 输入对应数字并按确定"<<endl;cout <<" ---------------------------------------------------"<<endl;cout <<" ------- 1.雪碧(单价3元) 2.可乐(单价3元)----"<<endl;cout <<" ------- 3.完成------------"<<endl;cout <<" ---------------------------------------------------"<<endl;}void chalei(){cout <<" 输入对应数字并按确定"<<endl;cout <<" ---------------------------------------------------"<<endl;cout <<" ------- 1.绿茶(单价2.5元) 2.冰红茶(单价3元)-----------"<<endl;cout <<" ------- 3.完成------------"<<endl;cout <<" ---------------------------------------------------"<<endl;}class yinliao{public:yinliao();void xuanz_qishui();void xuanz_chalei();void shuqian();void add();void xuanz();void print();protected:int sum;//总钱数};yinliao::yinliao(){sum = 0;}void yinliao::xuanz_qishui(){int p;int i;for(i = 0;i<4;i++){cout <<" ";cin >> p;if( p == 3) //当输入3的时候,返回主页{break;}else{xuanzhe_qishui[i] = p;}}}void yinliao::xuanz_chalei(){int q;int i;for(i = 0;i<4;i++){cout <<" ";cin >> q;if( q == 3) //当输入3的时候,返回主页{break;}else{xuanzhe_chalei[i] = q;}}}void yinliao::xuanz(){int i;int n;for(i = 0;i<4;i++){cout <<" ";cin >> n;if( n == 4){break;}else{xuanzhe[i] = n;}}}void yinliao::print(){int m;int j = 0;int k = 0;int q = 0;cout << " 您选择的为:"<<endl;for(m = 0;m<4;m++){if(xuanzhe[j] == 0){break;}else{switch(xuanzhe[j++]){case 1:cout << " **橙汁** "<<endl;break;case 2:cout << " **桃汁**"<<endl;break;case 3:cout << " **冰糖雪梨**"<<endl;break;case 4:cout << " **苹果汁**"<<endl;break;}}}for(m = 0;m<3;m++)//对点过的饮品进行打印{if(xuanzhe_qishui[k] == 0){break;}else{switch(xuanzhe_qishui[k++]){case 1:cout << " **雪碧** "<<endl;break;case 2:cout << " **可乐**"<<endl;break;}}}for(m = 0;m<3;m++){if(xuanzhe_chalei[q] == 0){break;}else{switch(xuanzhe_chalei[q++]){case 1:cout << " **绿茶** "<<endl;break;case 2:cout << " **冰红茶**"<<endl;break;}}}}void yinliao::add() //计算总钱数{int a;int j = 0;int k = 0;int q = 0;for(a= 0;a<4;a++){if(xuanzhe[j] == 0){break;}else{switch(xuanzhe[j++]){case 1:sum = sum + 3;break;case 2:sum = sum + 2.5;break;case 3:sum = sum + 4;break;case 4:sum = sum + 2.5;break;}}}for(a= 0;a<2;a++){if(xuanzhe_qishui[k] == 0){break;}else{switch(xuanzhe_qishui[k++]){case 1:sum = sum+3;break;case 2:sum = sum+3;break;}}}for(a= 0;a<2;a++){if(xuanzhe_chalei[q] == 0){break;}else{switch(xuanzhe_chalei[q++]){case 1:sum =sum+2.5;break;case 2:sum =sum+3;break;}}}cout << " 总钱数为:"<< sum <<"元"<<endl;}void yinliao::shuqian(){int money;while(1){cout << " 请输入钱数并按确定"<<endl;cout <<" ";cin >> money;if(money >= sum){break;}else{cout <<" ";cout << "您输入的钱数有误,请重新输入"<<endl;}}cout <<" ";cout << "您输入的钱数为:"<<money<<"元,找零"<<money - sum <<"元"<<endl;}int main(){yinliao yl;int w;kaishi();while(1){cout <<endl<<" 请选择..."<<endl;cout <<" ----------------------------------------------"<<endl;cout <<" ------ 1.果汁类 2.汽水类 3.茶类 4.结账付款----"<<endl;cout <<" ----------------------------------------------"<<endl;cout <<" 输入对应数字并按确定"<<endl;cout <<" ";cin >> w;switch(w){case 1:guozhi();yl.xuanz();break;case 2:qishui();yl.xuanz_qishui();break;case 3:chalei();yl.xuanz_chalei();break;case 4:yl.print();yl.add();goto fk;}}fk:yl.shuqian();cout <<" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"<<endl;cout <<" ^^^^^ ^^^^^"<<endl;cout <<" ^^^^^ 欢迎再次光临!^^^^^"<<endl;cout <<" ^^^^^ ^^^^^"<<endl;cout <<" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"<<endl;system("pause");return 0;}此文档是由网络收集并进行重新排版整理.word可编辑版本!。
教学自动售货机设计方案
一、项目背景随着科技的不断发展和人们生活节奏的加快,自动售货机已成为现代生活中不可或缺的一部分。
自动售货机以其便捷、高效、智能的特点,受到了广大消费者的喜爱。
为了培养学生的创新能力和实践能力,提高学生的综合素质,我们设计了一款教学自动售货机。
二、设计目标1. 培养学生的创新意识和实践能力。
2. 提高学生的电子、机械、编程等专业知识水平。
3. 设计一款功能齐全、操作简便、美观实用的教学自动售货机。
三、设计内容1. 硬件设计(1)机箱设计:机箱采用高强度、耐腐蚀材料,外观设计简洁大方,尺寸为500mm×300mm×200mm。
(2)选货系统:采用红外传感器进行选货,当用户选择商品时,红外传感器检测到商品,触发选货系统。
(3)机械臂设计:机械臂采用伺服电机驱动,实现商品的抓取和放置。
机械臂结构简单,易于操作和维护。
(4)支付系统:支持多种支付方式,如现金、支付宝、微信支付等。
支付模块采用高精度传感器,确保支付安全。
(5)温度控制系统:采用温湿度传感器,实时监测机内温度和湿度,确保商品质量。
2. 软件设计(1)控制系统:采用C语言进行编程,实现自动售货机的核心功能,如选货、支付、机械臂控制等。
(2)用户界面:采用图形化界面设计,操作简便,用户可以轻松完成选货、支付等操作。
(3)数据存储:采用SD卡存储用户购买记录、库存信息等数据,便于数据分析和维护。
四、功能特点1. 多种支付方式:支持现金、支付宝、微信支付等多种支付方式,方便用户购买。
2. 温湿度控制:实时监测机内温度和湿度,确保商品质量。
3. 语音提示:操作过程中,自动售货机会发出语音提示,方便用户了解操作步骤。
4. 红外传感器选货:选货准确,操作简便。
5. 机械臂抓取:机械臂结构简单,易于操作和维护。
6. 数据统计:自动统计用户购买记录、库存信息等数据,便于分析和管理。
五、实施步骤1. 硬件采购:根据设计要求,采购相关硬件设备,如机箱、红外传感器、伺服电机等。
电子课程设计报告--自动售货机
电子技术基础课程设计题目名称:自动售货机姓名:学号:组员姓名:班级:指导教师:评语:成绩:教师签名:摘要自动售货机是商业自动化的常用设备,它不受时间、地点的限制,能节省人力、方便交易。
1925年美国研制出售香烟的自动售货机,此后又出现了出售邮票、车票的各种现代自动售货机。
一般的自动售货机由钱币装置、指示装置、贮藏售货装置等组成。
钱币装置是售货机的核心,其主要功能是确认投入钱币的真伪,分选钱币的种类,计算金额。
如果投入的金额达到购买物品的数值即发出售货信号,并找出余钱。
指示装置用以指示顾客所选商品的品种。
贮藏售货装置保存商品,接收出售指示信号,把顾客选择的商品送至付货口。
一般售货机的钱币装置由投币口、选别装置、确认钱币真伪的检查装置、计算金额的计算装置和找钱装置组成。
而本次课程设计的内容就是在学习相关Verilog代码之后,再结合本学期学习的数字电子技术及其实验的相关知识,通过画出状态图等方式,清楚其逻辑关系和运算过程,编写一个简单的自动售货机程序,实现投入不同的硬币数量和面值,可以得到相应的实际结果,包括出货、找零等功能。
并且利用ModelSim软件来实现程序的测试,以及结果的输出和检验。
关键字:自动售货机 Verilog ModelSim软件状态图目录1 设计目的 (1)2 设计题目 (1)3 设计要求 (1)4 设计内容 (2)4.1有限状态机的描述 (2)4.2状态变化图 (2)4.3定义时钟信号 (3)4.4定义输入和输出端口 (3)4.5V ERILOG代码编写 (4)4.5.1 主程序:用Verilog语言的case语句 (4)4.5.2 测试程序 (6)4.6有限状态机图 (8)5 设计内容仿真实验结果 (9)5.1运行过程 (9)5.2波形分析 (10)6 参考文献 (12)电子课程设计总结与体会 (13)1 设计目的(1)掌握有限状态机的概念和描述方法;(2)掌握时序电路系统的设计方法;(3)学些和掌握Verilog描述数字系统的方法;(4)学习和掌握ModelSim等软件的使用方法;(5)学习和了解IC设计的基本流程。
自动售货机的课程设计报告书
*************学院自动售货机课程设计题目:自动售货机课程设计:专业:学号:日期:摘要自动售货机是台机电一体化的自动化装置,再接收到货币已输入的前提下,靠触摸控制按钮输入信号使控制器启动相关位置的机械装置完成规定动作,将货物输出。
当顾客按下需要买的商品所对应的按键时,数码管上显示出该商品的的价格,然后顾客需要将货币投入投币口,数码管上显示出所投币额。
当按下确认键,则自动售货机将对投入的货币与商品的价格进行比较。
如果投入的币额足够时,则自动送出商品,并且把多余的钱找回,在数码管上显示出来。
如果两者币的相等,则直接送出商品。
如果投入的币额不足时则报警,报警时间3秒。
当顾客一旦按下确认键3秒后,自动售货机将自动恢复到初始状态,此时顾客才可以进行下一次购货操作。
售货机还具有工伤假使用累加货币的功能,累加的货币在数码管上显示出,此累加器只能有商家可以控制清零。
次售货机还有商家控制的整体复位功能。
该售货机使用方便,结构简单,灵活通用等优点,因此在销售业,食品产业得到广泛的应用。
本文设计的自动售货机,主要应用到BCD码编码器74HC147、加法器74HC283、寄存器74HC374、74HC4511七段码限制显示译码器、供阳极七段码显示器,555定时器等芯片,通过建立电路图、反馈连接组成一个自动售货机模型。
该售货机可以实现显示商品价格和投入货币的币额、比较两者的大小、相减、输出商品、延时3秒电路等各个作业环节。
关键字:自动售货机、商品价格,投币币额、加法寄存电路、比较电路、减法电路、数码显示、控制清零目录第1章绪论 (1)1.1 自动售货机的设计概论 (1)1.2 自动售货机的研究意义 (1)1.3 自动售货机的发展历史 (1)第2章自动售货机原理电路分析 (2)2.1 自动售货机设计要求 (2)2.2 自动售货机的设计原理 (2)2.3 自动售货机元器件选择 (2)2.4 自动售货机元器件选择电路设计各部分组成及其工作原理 (4)2.4.1 商品选择价格显示电路 (4)2.4.2 投入货币累加显示电路 (4)2.4.3 比较相减输出商品电路 (5)2.4.4 延时反馈清零电路 (6)2.4.5 累加卖货额查看电路 (7)2.5 元器件清单 (8)2.6 自动售货机电路总图及原理 (8)2.7 自动售货机设计的方案方案的优缺点,改进意见和展望 (8)第3章心得体会 (9)第1章绪论自动售货机是能够根据投入的钱币自动复活的机器,它是商业自动化的常用设备,不受时间、地点的限制,能节省人力、方便交易。
plc课程设计自动售货机
plc课程设计自动售货机一、课程目标知识目标:1. 理解PLC(可编程逻辑控制器)的基本原理,掌握自动售货机的基本工作流程;2. 学习并掌握PLC编程软件的使用,能够进行简单的程序编写与调试;3. 了解自动售货机的电气控制系统,理解传感器、执行器与PLC之间的协同工作原理。
技能目标:1. 能够运用PLC编程软件设计自动售货机的控制程序,实现货物自动售卖功能;2. 学会分析自动售货机控制系统中的问题,并进行故障排查与解决;3. 培养学生的团队协作能力,通过小组合作完成自动售货机PLC控制系统的设计与实现。
情感态度价值观目标:1. 培养学生对PLC技术及自动售货机行业的兴趣,激发他们探索未知、勇于创新的热情;2. 增强学生的环保意识,让他们认识到自动化技术在节能减排方面的重要性;3. 培养学生的诚信意识和责任感,使他们明白作为一名技术人才应承担的社会责任。
课程性质:本课程为实践性较强的课程,结合理论教学与实际操作,旨在培养学生的PLC编程能力和自动售货机控制系统设计与实施能力。
学生特点:学生具备一定的电子技术基础和计算机操作能力,对PLC技术有一定了解,但对自动售货机控制系统整体设计尚感陌生。
教学要求:结合学生特点,注重理论与实践相结合,提高学生的动手能力和解决问题的能力。
通过小组合作、项目驱动等方式,激发学生的学习兴趣,培养他们的团队协作能力和创新精神。
在教学过程中,关注学生的学习进度,及时调整教学策略,确保课程目标的达成。
二、教学内容1. PLC基本原理及编程基础- PLC的组成、工作原理- PLC编程语言(LD、IL、FBD等)- 常用PLC指令及其功能2. 自动售货机工作原理与控制系统设计- 自动售货机的基本结构及功能- 自动售货机的电气控制系统- PLC在自动售货机中的应用3. PLC编程软件操作与程序编写- 编程软件的安装与使用- 程序的编写、下载与调试- 常见故障分析及解决方法4. 自动售货机PLC控制系统实践- 设计自动售货机控制程序- 连接传感器、执行器与PLC- 系统调试与优化5. 教学案例分析与讨论- 分析实际案例,了解自动售货机行业现状与发展趋势- 讨论PLC在不同场景下的应用与技术创新- 探讨自动售货机控制系统中的节能环保措施教学内容安排与进度:第一周:PLC基本原理及编程基础第二周:自动售货机工作原理与控制系统设计第三周:PLC编程软件操作与程序编写第四周:自动售货机PLC控制系统实践第五周:教学案例分析与讨论教材章节:《PLC原理与应用》第一章:PLC概述《PLC原理与应用》第二章:PLC编程语言与指令系统《自动售货机设计与实践》第三章:自动售货机控制系统设计《自动售货机设计与实践》第四章:自动售货机PLC控制系统实践教学内容确保与课程目标紧密关联,注重理论与实践相结合,使学生能够掌握PLC技术在自动售货机控制系统中的应用。
C语言实现自动售货机
C语⾔实现⾃动售货机本⽂实例为⼤家分享了C语⾔实现⾃动售货机的具体代码,供⼤家参考,具体内容如下如图所⽰的简易⾃动售货机,物品架1、2上共有10样商品,按顺序进⾏编号分别为1-10,标有价格与名称,⼀个编号对应⼀个可操作按钮,供选择商品使⽤。
如果物架上的商品被⽤户买⾛,储物柜中会⾃动取出商品送到物架上,保证物品架上⼀定会有商品。
⽤户可以⼀次投⼊较多钱币,并可以选择多样商品,售货机可以⼀次性将商品输出并找零钱。
⽤户购买商品的操作⽅法:(1)从“钱币⼊⼝”放⼊钱币,依次放⼊多个硬币或纸币。
钱币可⽀持1元(纸币、硬币)、2元(纸币)、5元(纸币)、10元(纸币),放⼊钱币时,控制器会先对钱币进⾏检验识别出币值,并统计币值总额,显⽰在控制器显⽰屏中,提⽰⽤户确认钱币放⼊完毕;(2)⽤户确认钱币放⼊完毕,便可选择商品,只要⽤⼿指按对应商品外⾯的编号按钮即可。
每选中⼀样商品,售货机控制器会判断钱币是否⾜够购买,如果钱币⾜够,⾃动根据编号将物品进⾏计数和计算所需钱币值,并提⽰余额。
如果钱币不⾜,控制器则提⽰“Insufficient money”。
⽤户可以取消购买,将会把所有放⼊钱币退回给⽤户。
输⼊格式:先输⼊钱币值序列,以-1作为结束,再依次输⼊多个购买商品编号,以-1结束。
输出格式:输出钱币总额与找回零钱,以及所购买商品名称及数量。
输⼊样例:1 12 2 5 5 10 10 -11 2 3 5 1 6 9 10 -1输出样例:Total:36yuan,change:19yuanTable-water:2;Table-water:1;Table-water:1;Milk:1;Beer:1;Oolong-Tea:1;Green-Tea:1;解法⼀:#include<stdio.h>int main(void){char a[10][20] = {"Table-water","Table-water","Table-water","Coca-Cola","Milk","Beer","Orange-Juice","Sprite","Oolong-Tea","Green-Tea"};int b[11] = {0,0,0,0,0,0,0,0,0,0,0};int c[50];int i=1, k, sum = 0, money, SUM = 0, change, flag=0;scanf("%d",&money);//输⼊币值并计算总币值while((money!=-1)&&(money <= 10)){sum = sum + money;scanf("%d",&money);}scanf("%d",&c[i]);while(c[i]!=-1)//将选的货物编号存储到数组c中并计算找零{switch(c[i]){case 1: case 2: case 3: SUM = SUM + 1;break;case 4: case 5: SUM = SUM + 2;break;case 6: case 7: case 8: SUM = SUM + 3;break;case 9: case 10: SUM = SUM + 4;break;default:break;}if(SUM>sum){printf("Insufficient money");flag = 1;}i++;scanf("%d",&c[i]);}change = sum-SUM;//⽤数组b统计各种商品数量i = 1;while(c[i]!=-1){switch(c[i]){case 1: b[1]++;break;case 2: b[2]++;break;case 3: b[3]++;break;case 4: b[4]++;break;case 5: b[5]++;break;case 6: b[6]++;break;case 7: b[7]++;break;case 8: b[8]++;break;case 9: b[9]++;break;case 10: b[10]++;break;default:break;}i++;}//输出结果if(flag==0){printf("Total:%dyuan,change:%dyuan\n",sum, change); for(i=1; i<=10; i++){if(b[i]==0)continue;else{printf("%s:%d;",a[i-1],b[i]);}}}return 0;}解法⼆:#include"stdio.h"struct goods{int num;char name[20];int price;int amount;};int main(){struct goods good[10]={{1,"Table-water",1,0},{2,"Table-water",1,0},{3,"Table-water",1,0},{4,"Coca-Cola",2,0},{5,"Milk",2,0},{6,"Beer",3,0},{7,"Orange-Juice",3,0},{8,"Sprite",3,0},{9,"Oolong-Tea",4,0},{10,"Green-Tea",4,0}};int sum=0,num,change,total=0,money=0,i=0;while(1){scanf("%d",&money);if(money==-1)break;}sum=sum+money;}while(1){scanf("%d",&num);if(num==-1){break;}switch(num){case 1:{total=total+good[0].price;good[0].amount=good[0].amount+1; break;}case 2:{total=total+good[1].price;good[1].amount=good[1].amount+1; break;}case 3:{total=total+good[2].price;good[2].amount=good[2].amount+1; break;}case 4:{total=total+good[3].price;good[3].amount=good[3].amount+1; break;}case 5:{total=total+good[4].price;good[4].amount=good[4].amount+1; break;}case 6:{total=total+good[5].price;good[5].amount=good[5].amount+1; break;}case 7:{total=total+good[6].price;good[6].amount=good[6].amount+1; break;}case 8:{total=total+good[7].price;good[7].amount=good[7].amount+1; break;}case 9:{total=total+good[8].price;good[8].amount=good[8].amount+1;}case 10:{total=total+good[9].price;good[9].amount=good[9].amount+1;break;}}}if(total>sum){printf("Insufficient money");}else{change=sum-total;printf("Total:%dyuan,change:%dyuan\n",sum,change);for(i=0;i<10;i++){if(good[i].amount!=0){printf("%s:%d;",good[i].name,good[i].amount);}}}}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
饮料自动售货机(带C程序和设计报告)
(C++)作业姓名:夏亮亮学号:班级:电子二班设计报告(1)《需求分析》:本程序为饮料自动售货机的程序,能实现饮料的自动销售,能起到节约人力、减少成本的目的。
(2)《项目设计》:(3)《测试报告》:1、主界面:2、选择完成之后:饮料自动售货机果汁类汽水类茶类结账付款橙汁冰糖雪梨苹果汁完成雪碧可乐完成绿茶冰红茶完成钱款正确钱款错误3、付款有误画面:4、正确付款画面:源代码#include <iostream>using namespace std;void kaishi();void chalei(),qishui(),guozhi();int xuanzhe[3]={0};int xuanzhe_qishui[2]={0};int xuanzhe_chalei[2]={0};void kaishi(){cout <<" ********************************************"<<endl;cout <<" ***** *****"<<endl;cout <<" ***** 饮料自动售货机*****"<<endl;cout <<" ***** *****"<<endl;cout <<" ********************************************"<<endl;}void guozhi(){cout <<" 输入对应数字并按确定"<<endl;cout <<"---------------------------------------------------"<<endl;cout <<" ------- 1.橙汁(单价3元) 2.桃汁(单价元)--------"<<endl;cout <<" ------- 3.冰糖雪梨(单价4元) 4.完成----------------"<<endl;cout <<" ---------------------------------------------------"<<endl;}void qishui(){cout <<" 输入对应数字并按确定"<<endl;cout <<"---------------------------------------------------"<<endl;cout <<" ------- 1.雪碧(单价3元) 2.可乐(单价3元)----"<<endl;cout <<" ------- 3.完成 ------------"<<endl;cout <<"---------------------------------------------------"<<endl;}void chalei(){cout <<" 输入对应数字并按确定"<<endl;cout <<"---------------------------------------------------"<<endl;cout <<" ------- 1.绿茶(单价元) 2.冰红茶(单价3元)-----------"<<endl;cout <<" ------- 3.完成 ------------"<<endl;cout <<"---------------------------------------------------"<<endl;}class yinliao{public:yinliao();void xuanz_qishui();void xuanz_chalei();void shuqian();void add();void xuanz();void print();protected:int sum;."<<endl;cout <<" ----------------------------------------------"<<endl;cout <<" ------ 1.果汁类 2.汽水类 3.茶类 4.结账付款----"<<endl;cout <<" ----------------------------------------------"<<endl;cout <<" 输入对应数字并按确定"<<endl;cout <<" ";cin >> w;switch(w){case 1:guozhi();();break;case 2:qishui();();break;case 3:chalei();();break;case 4:();();goto fk;}}fk:();cout <<" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"<<endl;cout <<" ^^^^^ ^^^^^"<<endl;cout <<" ^^^^^ 欢迎再次光临!^^^^^"<<endl;cout <<" ^^^^^ ^^^^^"<<endl;cout <<" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"<<endl;system("pause");return 0;}。
基于C语言实现自动售货机控制的设计
经验交流数码世界 P .142以反映整个生产线的多个数据。
数据处理装置是用来对检测到物理数据进行处理、运算、逻辑分析、积分变换等等,对于被检测量如果为数字量可以作为幅值谱分析、电压、电流、功率及时谱分析完成该任务的前提是利用计算机技术。
数据处理的结果可以将其数据传送到同级处理机构中,当执行机构接受到信号时执行器件继电器、电磁铁、伺服机动系统等等,都要起相应的动作断开、关闭、调节、保护等作用。
在现代许多检测系统都能够将捕获相应的信息比如电压、电流等信号,对自动控制系统的控制信号进行驱动并执行动作。
4 结语随着时代的飞速进步传感器也渐渐的被集成化从大面积变成了非常灵巧的体积,且为了符合时代的发展也不断在更新替代向小型化、智能化发展,其应用范围也在不断的扩大。
检测技术不断地在提高检测系统的精良度、寿命的延长以及运行的可靠性,并在用新的技术扩大检测邻域使网络化传感器检测系统不断的趋向于成熟,实现数据共享服务于生活。
参考文献[1] 贾启生,基于项目化的《传感器与检测技术》课程设计思路 [J] 2014(10):186-187.[2] 蔡鹃,张乐冰,《检测与传感技术》课程教学改革的探索与实践——以怀化学院电子信息工程与技术专业为例 [J] 2018(3):237-238. 作者简介唐悦(1996~),男,辽宁省丹东市凤城市,本科,研究方向:自动化。
张可菊(通讯作者),1978年5月出生,女,汉族,辽宁人,沈阳工学院,副教授。
引言:C 语言是一门通用计算机编程语言,应用广泛。
C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C 语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C 语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
特点如下:(1)C 语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
自动售货机图形模拟系统
需求分析
课题名称:自动售货机图形模拟系统
小组成员:朱伟鑫U201314490
班级:测控1301班
指导老师:周纯杰、何顶新、彭刚、周凯波
上交日期:贰零壹肆年玖月贰拾壹日
目录
1.引言--现实中的自动售货机 (2)
2.运行环境 (3)
3.功能设计 (3)
3.1触摸屏 (3)
3.2自动换零 (3)
3.3销量统计 (3)
3.4提前补货 (4)
3.5显示商品信息 (4)
3.6自动售货机网络 (4)
3.7无响应自动处理 (4)
4.软件系统需求分析 (4)
4.1图形显示 (4)
4.2菜单模块 (5)
4.3交易模块 (5)
4.4管理模块 (5)
5.系统流程图 (5)
6.时间安排 (6)
自动售货机图形模拟系统
朱伟鑫
课题要求
以自动售货机为对象,图形化模拟投币、找零、出货的基本流程;能对售货机的商品进行管理:补货、查询、统计等功能。
1引言--现实中的自动售货机
自动售货机是能根据投入的钱币自动付货的机器。
自动售货机是商业自动化的常用设备,它不受时间、地点的限制,能节省人力、方便交易。
是一种全新的商业零售形式,又被称为24小时营业的微型超市。
能分为三种:饮料自动售货机、食品自动售货机、综合自动售货机。
从自动售货机的发展趋势来看,它的出现是由于劳动密集型的产业构造向技术密集型社会转变的产物。
大量生产、大量消费以及消费模式和销售环境的变化,要求出现新的流通渠道;而相对的超市、百货购物中心等新的流通渠道的产生,人工费用也不断上升;再加上场地的局限性以及购物的便利性等这些因素的制约,无人自动售货机作为一种必须的机器便应运而生了。
从广义来讲投入硬币、纸币、信用卡等后便可以销售商品的机械,从狭义来讲就是自动销售商品的机械。
从供给的条件看,自动售货机可以充分补充人力资源的不足,适应消费环境和消费模式的变化,24小时无人售货的系统可以更省力,运营时需要的资本少、面积小,有吸引人们购买好奇心的自身性能,可以很好地解决人工费用上升的问题等各项优点。
2运行环境
根据课题要求,在DOS环境下,用TC或BC开发软件编写C语言程序模拟自动售货机的工作,因此本系统将会有较高的兼容性,能够在大多数操作系统上运行,包括Windows XP系统和Windows732位系统,但Windows764位操作系统除外。
3功能设计
我们的自动售货机模拟系统虽然是在电脑上模拟自动售货机的工作,但我们的目的一是通过这个课题掌握DOS下的C语言编程技巧,二是改进和完善现在的自动售货机使之更加友好方便人们的生活。
我们除了要实现图形化模拟投币、找零、出货的基本流程和对售货机的商品进行补货、查询、统计管理的功能外还将挑战实现信用卡付款,显示已买商品信息,故障防盗报警和自动售货机与自动售货机、自动售货机与主机的联机交流这四个功能。
3.1触摸屏
我们模拟的是具有触摸屏的自动售货机,主屏幕在空闲的时候可以显示广告,在有操作时显示菜单选择项。
触摸屏可以同时选中多个商品,但是每选中一个商品默认数量是一,并具有修改数量的选项。
触摸屏的使用将大大方便顾客选择和购买商品。
我们将触摸屏加进我们的设计后界面将会更加友好,更加美观,更具创新元素。
3.2自动换零
考虑到现实生活中无人售票车等自助式消费越来越普及,居民对于换零钱的需求越来越大,一些居民就发现了自动售货机的“歪用”,利用退币的功能将大额纸币换成一元硬币。
但是这样的做法会导致购买商品的顾客因不够找零而被机器拒绝,为了解决这个问题减少换零的顾客,我们决定自动换零时加收一定的手续费(具体因换零多少而定)。
我们的退币功能将会更改为原币退回,而不是投进去纸币找出硬币。
3.3销量统计
我们的自动售货机还具有销量统计功能,它能自动记录每样商品的销量和并和时间汇总成一个统计表格,每天12::00通过网络发送给主机。
而且这些数据是带有本台自动售货机的地址信息的,这样甚至可以详细到每一种商品在某个季节某个地方卖出了多少件。
这些数据到了主机那里经过处理将可以很好地为决策者提供详细的参考基础。
3.4提前补货
我们将自动售货机设计成可以根据存货和销量提前向主机发送缺货申请,使得主机尽早通过仓库发货补充商品,避免自动售货机出现断货的情况。
3.5显示商品信息
自动售货机的触摸显示屏上可以显示商品的详细信息,包括产地、生产日期、健康提示等。
3.6自动售货机网络
通过各地的新闻报道,我们了解到实际中的自动售货机常常被破坏,故障率约为10%,而且商品容易过期、顾客买到不满意的商品需要投诉而不适宜花费更多钱来打投诉电话······这些情况我们都可以通过网络解决。
比如顾客发现自动售货机坏了可以在“联系客服”这个菜单里选择“售货机故障”向管理方申请维修,买到过期商品可以通过“联系客服”菜单里的选项直接联系管理方,要买的商品缺货了可以直接通过网络发送补货申请,顾客买到过期商品也可以通过这个网络直接联系管理方。
并且万一发生紧急事件,比如地震等自然灾害,政府可以通过这些遍布大街小巷的自动售货机发布灾害、急救信息以及公告等。
这一功能将充分增强人机互动性,使顾客买商品更加方便,售货机管理更加直接。
3.7无响应自动处理模式
由于我们的自动售货机采用了先选择商品再投币的方式,所以为了避免顾客选了商品因为没付钱而直接离开的情况,我们设计自动售货机在一分钟无任何操作时显示全屏提示并发出提示音,若10秒后仍未有任何响应就将自行取消交易并退钱。
在顾客选择商品时若考虑时间过长而没有任何操作也将出现如上的无响应自动处理,以应对顾客用时过长或中途离开的情况。
4软件系统需求分析
4.1图形显示
利用BC的图形功能画出自动售货机的模拟外观及对话框。
对触屏操作前的初始状态显示为广告或者电子公告,选择商品时在下方栏目里显示商品存货数量、已选数量、价格,购买完成后显示商品信息。
屏幕一角还有两个全程存在的选项“联系客服”和“取消”,方便顾客随时联系客户服务和取消交易离开。
4.2菜单模块
最初的界面会有服务选择“自动换零”、“购买商品”。
点选每一个商品时都会显示相应菜单,在商品陈列栏里的显示的菜单是“添加”、“数量”、“价格”,在下已选商品栏里显示的菜单是“删除”、“修改”、“价格”。
“取消”菜单可以随时终止交易并退钱,以方便顾客因急事离开。
“联系客服”菜单下有“售货机故障”、“商品过期投诉”、“缺货”、“查询”、“帮助”等选项,其中“售货机故障”下有“未能吐币”、“未能吐货”、“外观损坏”这三个选项,其中“外观损坏”选项当顾客选中的次数达到一定数量时维修人员将会到场进行维修或更换。
4.3交易模块
自动售货机提供商品售卖和自动换零的服务。
自动换零服务时投进大额纸币或者刷信用卡可以退出硬币。
商品售卖服务时先选择商品和数量,后进行结算,结算方式也有投币和信用卡付款两种方式。
4.4管理模块
自动售货机将会记录每天的交易,统计每样商品的存货数量以及卖出数量,并在每周将这些信息加上当地的地址信息和时间发送给主机,这些数据可以为决策者提供实时准确的销量信息。
在这些记录的基础上可以通过“联系客服”的菜单下的“查询”选项直接查询现有商品的存货数量、以及过期商品信息。
自动售货机会自动提前向主机发送补货申请,而顾客也可以通过“联系客服”下的“缺货”选项手动提醒主机补货。
“联系客服”菜单下的“帮助”菜单可以查询本售货机的详细操作说明。
5系统流程图
1.投币的活动图
2.择货物的活动图
3.前端的活动图
4.货币记录仪的活动图
5.分配器的活动图
6.时间安排
任务备注第4周系统需求分析与设计报告
第5周界面设计,算法设计
第6周键盘、鼠标接口设计、算法设计
第7周编码实现
第8周编码实现
第9周编码实现、调试
第10周调试、验收、提交报告。