第一篇:食堂刷卡系统报告
食堂消费监控系统仿真
食堂是一个集体单位、企业等不可缺少的一部分,尤其是学校,学校一直以来都是人群集中比较密集的地方,再随着高校的扩招,学生的密集程度更是急剧增长,故高校食堂的增多是不可避免的。再加上学生没有经济来源,去餐馆消费是几乎消费不起的,所以食堂的存在,给广大的学生们带来了很多的方便及好处,同时也给提供餐饮方带来了极大的方便。又因为食堂一般都使用刷卡系统来进行收取金额,所以免去了找零钱退额的过程,同时也避免了现金在流通过程中的丢失、假钞、破钞等问题,省去了现金的兑换、回笼、清点、保管等环节上的人力、物力、财力,提高管理层次,同时大大降低了打发和找零的环节中病菌交叉感染的机率,增强了餐饮的卫生程度。再因为刷卡系统的存在,同时也增加了消费过程的速度。为统一的管理带来了极大的方便。
以下是有关食堂刷卡系统的设计原理及过程:
一、对食堂消费监控系统相关介绍:
1、与刷卡系统相关的人员及设备的权限介绍:
1),持卡人(持有的权利):
申请新卡、查询余额、刷卡、挂失、更改卡的密码、注销。2), 刷卡机:
a.显示卡上余额;
b.判断卡中金额是否足够工作人员输入的金额。若足够,则减去工作人 员输入的金额(并伴着一声滴声);若不够,则发出连续的滴滴声
3), 工作人员:
输入所需刷的金额并按确定。4), 管理员(持有的权利):
a负责操作计算机,完成计算机系统的功能 b.处理刷卡机的活动;c.统计食堂当天的营业额, 统计和打印每天的每台刷卡机的总额;d.处理新卡申请、充值、挂失、注销、增加用户、取消用户。
其相应的结构图如下:
5), 数据库系统:保存所有数据。
2、刷卡系统主要实现以下的管理:饭卡管理、餐费管理、统计管理。
1),饭卡管理有以下几个方面:饭卡充值、饭卡挂失、解除挂失、补发新卡以及退卡;
2),餐费管理有:刷卡消费管理;
3),统计管理有:个人存款余额的查询、挂失人员查询、退卡人员查询、消费金额查询。务管理日清月结,用户可按时间段、按日统计,也可按周、月、季、阶段、年统计,有账户操作统计、营业情况统计、班次情况统计,做到真正的日清月结。并可以打印报表。
3、食堂消费系统中所存的相应信息
1),所存的学生信息:
该计算机系统只存有我们该组11个人的基本信息,只有计算机里存有信息的学生卡号,才能够在该刷卡系统上应用。
计算机中所存的学生信息如图所示:
2),所存的饭卡信息及管理:
当刷卡放到刷卡机上时,刷卡机读取你的卡号,然后把卡号传送至食堂的电脑,电脑从食堂的数据库中读取你的帐户余额,然后传送到刷卡机上,你就看到你的余额了。
帐户管理系统全面,具有开户配卡、换卡、挂失、解挂、帐目查询、纠错、特征修改、撤户、误撤恢复、帐户统计、补助发放等功能。
计算机中饭卡所包含的信息如图所示:
3),各个点消费的情况存储信息:
各个消费点的消费情况传送给计算机后,计算机根据各自的需求及存在的问题进行处理和实施,之后在回送到消费点上,4、刷卡机的工作原理:
每个食堂有很多台刷卡机,于是食堂需要一台计算机来和这些刷卡机通信,当食堂的工作人员通过数字按键(例如一碗粉5块,当他按下5.00,并按确定后),该扣钱信息便向机房的计算机发送命令。当你把饭卡放到刷卡机上后(注意:饭卡离刷卡机3cm内,刷卡机才能感应到),首先读卡器读取卡上的信息(学号、卡号、金额等),再将信息转发到计算机上确定卡的合法性.如果不合法(卡到期、卡挂失、卡禁用)时,会发出嘀嘀嘀滴的报警声;如果卡可以用,则计算机根据这个帐号调出数据库(里面存储着你的使用信息和余额信息等),然后判断你的卡上余额是否足够扣除,如果足够扣除,则再根据刚刚接到的工作人员所发出扣除信号,迅速扣除相应金额(同时发出一声滴的响声),并迅速将你的卡上余额返回刷卡机的显示窗口,同时更新数据库的金额信息,最后退出系统;如果不够扣除,便会发出嘀嘀嘀的连续响声,以警告卡上余额不足。如果你的卡在刷卡机没有放好,刷卡及没能读出你的卡上信息,便没有相应的扣除你的金额,这时,当你收回卡时,刷卡机也会发出连续的嘀嘀嘀声,警告饭卡没有刷上。
当工作人员没有输入扣钱金额,即刷卡机便没有给计算机发送扣钱的指令信息,这时当学生把卡放在刷卡机上时,刷卡机读取卡号信息并立即传给计算机,然后计算机将该卡的卡上余额信息返送给刷卡机并显示余额。
其相应的工作原理的结构图为:
5、充卡的实现过程:
首先把卡刚在充款机上,这时充款机相应的读取出你的卡上信息并将信号发送给计算机,然后当工作人员输入所充的金额时,其信息也立刻传给计算机,然后计算机进行相应的处理,即使该卡的余额增加所输的金额,之后将卡上的余额信息返送给充款机,显示卡上余额,同时更新数据库中的数据。
其相应的流程框图如图所示:
6、卡的相关查询:
可对每一次消费情况进行实时记录,可查询卡内余额或消费记录;
二、刷卡系统在组态软件中的实现:
1、食堂刷卡系统的总体图为:
各个窗口的刷卡机是通过通过数据线和电脑连接起来的,饭卡不存储卡的帐
户信息,卡的帐户信息是存储在电脑里的。
2、组态软件监控系统画面:
1), 组态处理的相关过程:
画好相应的设备图后,给各个对象设置相应的数字对象名称(方便对象设置处理),然后对各个对象进行编程处理,并将卡上余额同扣除金额和增加金额进行连接。比如:在卡上余额中进行如下编程: Double leave,add,sub;if(add=scanf(“d%”,add))leave=leave+add;When(sub=scanf(“d%”,sub))Leave=leave-sub;
刷卡系统的组成及特点:
一、系统组成
1、计算机房
在食堂适当地点设置机房,机房内设置消费系统工作站,工作站配有发卡器,就餐卡消费管理系统工作站用于接待就餐卡持卡人的卡片业务,如查询、挂失、解挂、换卡、查询(如独立使用还具有开户、撤户、补助)等操作,同时也负责监控管理各商业网点的POS机和营业控制、统计。
2、骨干网
从机房引出干线到各个消费点,该干线上的物理协议为CAN总线, CAN总线一般以屏蔽双绞线为介质,最长可以达到2000米,可以方便地引出分支,因而布线简单,施工难度较小。
3、POS机群
各消费点采用总线的方式布置POS机群,现有挂式POS机、台式POS机,都可以联在统一的CAN总线上,相互之间可以灵活互换,目前我们针对实际情况选择不同功能的消费机
二、系统特点
1、从企业管理角度出发:杜决了餐券、现金流通过程中的丢失、假钞、破钞,节省了餐券、现金的兑换、回笼、清点、保管等环节上的人力、物力、财力,提高管理层次。
2、从企业投资角度出发:该系统可扩展为企业一卡通,实现食堂售饭、考勤门禁、、节水控制消费等企业内消费、管理使用一张卡全部完成的功能,避免重复投资。
3、从饮食卫生的角度出发:避免了一手找零钱,一手打饭菜的现象,减少了餐券、现金流通环节病菌交叉感染的机率。
4、从食堂管理角度出发:堵塞资金漏洞;节省人力,物力;便于消费统计;加快售饭速度,提高效率。
5、从帐务的角度出发: 持卡人在校消费能清楚查询任何时间在任一网点的消费明细,保证消费安全;限额消费密码保护完善资金安全管理。刷卡消费系统同时还具有以下特点:
1、功能性 刷卡系统的功能强。
2、实时性
刷卡系统的实时性也特别强。一方面,在任何一处消费网点都能做到卡片立即结算,反应时间小于一秒。另一方面,对卡片的消费、存款、开户、撤户、挂失、解挂、换卡、补卡、修改密码、补助等账户操作都可以在几秒种内在全网立即生效。
3、安全性
刷卡系统较好地考虑了安全性。首先,系统的骨干网为专有网络,不与校园网、公用网相连,保证了不受黑客的攻击;其次,借助WINDOWS NT平台可以使系统达到较高的安全标准;同时,系统对数据库的数据直接在内存中运行,在数据库及运行目录下均采用压缩加密存放,使用严格的校验措施使得数据不能随意更改。另一方面,我们对每一笔操作都留有日志备查,按照功能的重要性分为不同的级别权限,使用不同的密码、卡片来控制操作权限。
4、可靠性
刷卡系统还具有很高的可靠性。首先,从系统软件来说,开发过程依据软件工程国际规范,采用底层编程技术对系统的可控性良好,开发经历了从系统分析、总体设计、概要设计、编码、单元调试、系统联调、实验室阿尔法测试、用户贝塔测试、小规模运行、产品定型推广的生命周期,每阶段都经历了严格的评审与把关,目前,系统已经在国内众多大型院校、企业可靠运行。
系统可以满足系统的在一部分出现故障时不影响其它部分,当网络出现故障时POS机可以脱机工作,当系统掉电时,自动启动消费机后备电池进行供电,而不影响正常消费,使系统能够可靠地、稳定地运行。
5、可操作性
该系统的可操作性强,从系统的软件界面操作到POS机的键盘操作都十分友好,比如一个功能可以用菜单、图标、快捷键三种方式调出,软件的操作习惯与微软的办公软件一致,POS机键盘操作可以用价格表、现金、固定品种三种方式操作,等等。
6、可维护性
系统在可维护性上的措施也很多,比如软件中设置了在线通讯情况监测、数据监测维护等功能,读卡头采用可拔插替换方式,等等,使得在现场维护十分方便。
7、可扩展性
我们提出的总体方案可扩展性很强,今后再增加新的应用时,系统可以平滑过渡,以保护用户的投资。
三、系统的安全性
1、机器初始化认证:需用管理员系统卡和管理密码授权使用
2、采集数据的传输:数据与地址都经过内部实时加密
3、卡片使用的权限:卡权限和设置的食堂售饭机权限相符的才允许进行交易
4、卡片挂失的处理:卡挂失为黑名单卡则不能进行交易,黑名单实时下载
5、卡消费总额限制:限制卡每天最大消费总额,遗失卡时最大限度保护持卡人利益
6、刷卡不当的处理:刷卡出现故障消费食堂售饭机会自动锁卡,可再次刷卡解锁或到卡中心解锁
7、卡片的使用期限:可设置卡使用期限,防止超期使用
四、刷卡机的参数及特性:
1、技术参数
⑴电源:电压 AC220V;功率 <5W;
⑵工作环境:温度:0℃~70℃ ;湿度:10%~90%;
⑶读卡类型:IC系列为MIFARE ONE卡;
⑷读卡频率:IC系列为13.56MHZ;
⑸读写距离:≥30mm;
⑹读写时间:≤100ms;
⑺存储容量:3万多条记录;
⑻黑、白名单存储数量:6万多条;
⑼通讯方式:CAN/RS232(自动切换);
⑽通讯距离:2千米左右(CAN通讯方式);
⑾传输速率:20Kbps~50Kbps(可根据用户要求自行设置,CAN)或38.4Kbps(RS232)
2、产品特性
(1)数码管双排显示,操作方便,显示直观。消费方式:直接输入金额/定额消费方式/定次消费方式
(2)有定值、自由、编号菜单等多种消费模式,方便消费操作,且可自由切换;
(3)有日消费限额、次消费限额、脱机消费次限额等,提高用户卡的安全性;
(4)系统传输距离远,可达到2公里左右,还可以增加中继器延长通讯距离;
(5)系统发卡量100万张;
(6)系统每个端口可接入150台以上消费终端机;
(7)系统存储容量大,可存储3万多条记录(液晶消费机存储15000条);
(8)可用U盘导出POS机内的脱机数据和各种配置信息,也可通过U盘导入黑、白名单及配置信息,保证系统数据的安全(选配功能);
(9)通讯方式先进,系统采用CAN总线通讯方式,较传统的RS485通讯在通讯模式、速度、距离及稳定性方面,都有较大提升;
(10)系统备用电池可连续放电4-6小时(选配),有打印小票功能可选;
(11)可以进行消费分组设置,指定不同分组的用户卡在相应的收费机消费。
(12)速率、距离及稳定性方面,都有较大提升;
(13)持卡人可在任意一台连接到网络中的终端机上,进行在线挂式或修改密码,并在较短时间内全网生效;
(14)通讯模块增加了抗强电冲击和防雷功能,通讯过程更安全、可靠;
(15)消费机键盘为易损件,为方便用户使用和维护,挂式消费终端机键盘具有全防水、可拆卸功能;
学习心得:
此次设计的过程中,我们遇到了很多很多的问题,比如说去询问食堂系统的过程中处处碰壁,很多都是说对该系统不了解,甚至有的工作人员对我们不理不睬,但不管怎么样,我们最后还是拥有很多收获。通过这次的调研过程,我进一步的知道,要想做好一件事,就必须的厚着脸皮向别人学习,不管人家什么脸色,都的慢慢忍耐。这一点是我们在校园里面在课程上学不到的收获。
在开始设计的过程中,感觉无从下手,在经过几天的摸索后,才开始有了头绪。但是当运用组态软件去实现时,真的处处碰壁,这个问题还没解决,下一个问题接着跟随而来,尤其是在编程的过程中遇到了很多的问题,有些程序觉得应该是这样编,同学们也觉得这样编没错,但就是得不到相应的实现结果,或者是在编译的时候就报错。甚至有些地方都不知道该怎样去编程。这导致到最后,该监控都没有得到所需要的监控实现,觉得很遗憾。
这次设计存在这么多的不足,我觉得最主要的还是我们对组态软件系统的监控连接还不是很熟悉,然后对刷卡系统的实施控制并不是很了解,所以导致了设计时困难重重。今后我会更加的努力,尽全力的做好老师或者领导布置下来的任务,首先在任务布置下来之后,要及时的去了解并熟悉的掌握所要应用的知识和技术,然后在开始实施,这样在实施的过程中才能够不那么多的处处碰壁,增加实施的效率及质量。
第二篇:食堂刷卡制度
员工就餐刷卡管理办法
根据我公司实际情况,就食堂(零利润经营)用餐管理办法作出以下规定:
一、员工餐定义、餐标:
1、工作午餐:公司提供4.5元/人的菜金补贴,标准为米饭2格,菜为一荤二素。超出部分自付费:米饭0.5元/格(按整格计费,不拆分)、荤菜2元/份、素菜0.5元/份。(油盐酱醋调料及汤等其他需成本0.5元)。最低消费为4.5元/人。
2、早晚餐:自付费;
3、客餐:自付费,由对口部门带到综管部办理临时用餐劵。
二、工作餐卡发放、充值与管理:
1、员工考勤卡充当用餐卡,除公司副总以上领导,所有员工一律必须实行刷卡考勤、就餐。
2、用餐卡统一由综管部管理,员工应于每月1-3日(后勤管理人员1日、生产一线人员2-3日)到综管部将公司伙食补贴定额打入员工个人用餐卡。第一次充值时多充15元/卡,作为充值日用餐预支。费用自行控制,超出自付。
4、用餐卡余额不足的,应及时到财务部交纳现金,凭财务部收款收据到综管部充值。
5、用餐卡中金额只进不退。公司补贴金额按出勤打卡天数计算。卡内剩余金额每月定期清零,6、保洁工、门卫等应于午餐前在考勤机上打卡,否则视为放弃午餐补贴。
7、当天外出办事人员在外吃午餐的,返岗后应请部门领导在“外出单”上签字并交综管部考勤员,方可视为出勤。
8、员工自费充值的可结转使用。
三、晚餐、客餐管理:
1、早晚餐不属于工作餐,应自付费。用餐须在当日12:20-12:40及17:20-17:40向厨房订晚餐及次日早餐。
2、外来人员用餐,由对口部门带到综管部办理现金临时用餐劵。
四、用卡管理和注意事项:
1、每月初综管部应对上月工作餐、客餐进行汇总统计汇总表连同现金一并交财务部。
2、员工入职时由综管部发放考勤卡,并在综管部充值;离职时交回综管部。
3、用餐卡请妥善保管,如有丢失请及时到综管部挂失补办并交纳20元补办费。未及时挂失造成卡内金额被消费的损失自行承担。
4、磁卡不要弯折,或与强磁器具同时存放。
五、本暂行管理办法未尽之处,待持续改进
五、此暂行管理办法自2012年8月1日起暂行。
综管部 2012年7月27日
第三篇:关于实施食堂刷卡就餐方案的报告
关于实施食堂刷卡就餐方案的报告
一、目的:为维护公司员工根本利益,保障员工正常用餐,进一步提高工作效率,规范食堂就餐管理,准确统计用餐数据,严格控制成本。
二、预想方案:刷卡消费制度,不再使用纸质餐券,就餐卡内预充一定金额,按次计算就餐金额,照实扣费,按月进行结算。
方案相关内容:
1、制作两种形式的餐卡:个人卡、部门卡,并根据实际消费金额刷卡就餐。
个人卡:***内职工个人就餐卡,仅限本人使用,每月预充一定费用,按次刷卡消费。
部门卡:费用归结到***内企业的各相关部门,由各企业部门(车间)指定人员负责保管、发放登记,部门负责人签批方可领用并在食堂按次计费。
部门卡预计设置计划如下(可根据企业要求进行调整)
2、就餐种类:
分别按早餐、中餐、晚餐、三个就餐时间段进行相关标准的设置和结算。
员工餐:凭个人卡进行按次计费扣除;
宾客餐:可由各企业用部门卡进行按次计费扣除; 外协单位餐:可由各企业用部门卡进行按次计费扣除; 新进人员在一周内必须凭个人卡就行消费,3、使用说明:物管中心按各部门/各项目提交的个人卡以及部门卡的充值金额,由物管中心进行统一卡内充值。单次刷卡金额按员工对应的就餐种类的餐费标准进行实际扣除。
4、结算方法:物管中心每月1日汇总上月刷卡机消费记录,包括有个人卡以及部门卡的就餐金额、次数以及就餐种类,并向各企业收取。
物管中心同时会汇总当天刷卡就餐信息,次日交***内企业相关部门,方便各企业对于员工的用餐资格、数量以及用餐费用进行统计和监查。
5、食堂就餐有效刷卡时间段:
早餐07:00-07:45;中餐11:20-12:30 晚餐17:30-18:45;夜宵23:00-24:00;
需在食堂开餐时间段到食堂刷卡消费,其它时间段刷卡无效,特殊情况需企业相关部门书面通知物管中心。
6、实行午餐分时就餐制(参照食堂消费系统相关模块设置)
拟采取分时就餐时间段:***车间:11:20-11:40 ***车间:11:40-12:00 相关职能部门:12:00-12:30
7、个人卡、部门卡的消费金额以月为结算单位,卡内余额到月底一律作清零处理。
8、除部门卡外,个人就餐卡每餐只限刷一次,每天不得超过三次。
9、个人就餐卡遗失问题--请到物管中心办理挂失登记手续后进行补卡,原卡内余额将转入新卡,在未办理遗失登记前造成的就餐卡被盗刷以及卡内金额的减少由本人负责。
10、个人就餐卡忘记携带问题—可到本人所在部门、车间负责人处申请,待批准后就餐可纳入部门卡使用范围。
2011年12月2日
第四篇:食堂就餐刷卡管理规定
食堂就餐刷卡管理规定范文3篇
一、目的:为规范餐厅管理。
二、适用范围:各车间/各职能部门。
三、内容说明:
3-1:饭卡办理及回收:
3-1-1:员工持厂牌人事行政部网管进行现金充值,首次需收空卡押金___元(在离职时退还);
3-1-2:饭卡折损无法使用或丢失,员工需持有效证件到人事行政部网管进行
挂失并进行补办,需收取空卡费___元/张,消磁无法使用则免费补卡,办卡处将电脑显示余额全部转移到新饭卡内;
3-1-3:冲卡时间:办公系统上班时间
3-1-4:员工单次冲卡不得少于___元。
3-1-5:对于拾到他人饭卡须主动将卡上交人事行政部或员工本人,盗用他人
饭卡,一经发现将处罚___倍盗刷金额,情节严重的解除劳动合同。
3-1-6:如果因为丢失饭卡,没有及时挂失补办,导致饭卡金额损失的,其责任由持卡人自行承担;
3-1-7:退卡退款办理:员工离职需持已签好的离职申请单到人事行政部网管进行退款办理。
3-2:饭卡使用:
3-2-1:从___年___月___日开始,员工每个月补贴___元直接打入员工薪资中,请病事假扣___元/天,具体参考《补贴管理办法》;
3-2-2:消费限额:每次不高于___元,每天不高于___元
3-2-3:员工持饭卡依据自己的口味进行点菜,餐厅不收取现金;
3-2-4:员工使用饭卡在刷卡机上刷卡,餐厅刷卡人员根据员工打菜价格确认后进行消费金额输入。
3-2-5:来宾餐为总部办事人员和来宾等用餐,由人事行政部统一登记后发放
来宾专用饭卡或饭票进行用餐消费,饭卡使用完成后需交还人事行政部;
3-2-6:保安人员:因保安人员薪资由保安公司发放,故公司对保安每人每月
充值___元卡进行消费,超过金额部分保安自费到人事行政部进行充值。
3-3:餐厅作业:
3-3-1:餐厅与供应商签订采购合同,根据员工充值金额状况进行采购作业,制定的各种菜色的价格原则上餐厅不允许盈利;
3-3-2:餐厅提供早,午,晚餐,每日对每种菜色价格进行明显标示,菜价为
___元一个梯次,以利刷卡计算便利;
3-3-3:如有停机、转班等情况致用餐人数变化较多时,各单位、各部门需将
就餐人数提前通知餐厅,餐厅人员应按照就餐人数合理配餐。
3-4:本办法____年___月___日起执行。
食堂就餐刷卡管理规定范文(二)
一、目的食堂是公司为员工提供的一种福利,为了规范就餐卡发放、使用管理,保证用餐的良好秩序,特制定本规定。
二、适用范围
持就餐卡的所有员工。
三、职责
行政部:负责食堂刷卡设备及就餐卡的使用管理、充值等。
人力资源部:负责就餐卡的发放、回收工作。
四、管理办法
(一)就餐卡的办理及回收
1、就餐卡由人力资源部负责办理,首次办卡需缴纳___元押金。
2、员工离职时需将就餐卡交还人力资源部,由人力资源部将就餐卡押金退还员工,就餐卡丢失的应给予赔偿。
(二)就餐卡的充值
1、就餐卡首次充值:人力资源部根据持卡员工的工作情况,核算实际就餐次数后,由行政部进行首次充值。
2、就餐卡定期充值:按照核定的每月就餐次数,每月最后一日由行政部充值。充值时,卡内剩余次数全部核销,不做隔月使用。
3、员工因工作调整,就餐情况有变化时,人力资源部及时通知行政部,对就餐卡充值次数进行变更。
(三)就餐卡的使用及管理
1、一人一卡刷卡就餐,无卡或忘记带卡的,食堂有权停止供餐;
2、使用过程中,持卡人要爱惜就餐卡,妥善保管。不得转借他人使用,不得留存于食堂,不得出现故意弯折、乱涂乱刻等损害就餐卡的行为出现。一经发现上述情况,将取消该员工所有福利待遇并追偿其经济责任。
3、行政部要定期检查就餐卡使用情况,合理充值,及时纠正就餐卡使用中出现的问题,保证食堂刷卡就餐的正常进行。
4、刷卡设备故障时,食堂要第一时间报行政部,行政部及时维修,并做好用餐记录工作,保障食堂记录的连续。
(四)就餐卡挂失与补办
1、就餐卡丢失及损坏后,持卡人应及时到人力资源部挂失、补办新卡。
2、就餐卡丢失或损坏,没有及时挂失补办,出现一切后果,其责任由个人承担。
3、就餐卡丢失或人为损坏,补办按工本费___元/张收取。
4、拾到他人就餐卡应主动上交行政部或本人。
本制度自发布之日起执行。
食堂就餐刷卡管理规定范文(三)
1、此卡只限于本校教职工在本校食堂使用。
2、禁止此卡转借他人使用。
3、此卡每月充值最少___元,只能在食堂消费,否则次月不予充值。
4、妥善保管此卡,如有遗失,尽快到后勤处挂失补办。
5、员工应自觉按顺序排队就餐,做到注意礼让、有序,严禁插队。
6、做到文明用餐,餐厅内不得随地吐痰、吸烟、赤膊、不得穿拖鞋进入餐厅,自觉排队、正规排队、正规刷卡、禁止喧哗、按规定取食,避免浪费。
7、在刷卡后,同时液晶屏将显示消费金额,即表示此次刷卡成功,否则,重新刷卡,确认。
8、非餐厅工作人员禁止进入厨房内部。
9、爱护公物及餐具,非正常损耗的物品损坏由当事人照价赔偿。
10、防止水池堵塞,保持卫生应将剩菜剩饭倒入指定的泔水桶内,严禁将剩菜剩饭倒入水池或泼洒在地上。
本制度自规定之日起执行。
妥善保管此卡,如有遗失,尽快到有关部门挂失补办。
第五篇:c语言课程设计(食堂刷卡)
#include “stdafx.h” #include
int kh;//学生卡号
char bm[33];//学生卡编码
float cash;//金额
float xf;//消费 };void menu();void _10_2(Stu*);void Register(Stu*);void CZ();void XF();void Award();void Tj();int InitVoice(){ CComPtr
return 0;for(i=0;i<1;i++)//这里可以根据已安装的语音库,多循环几次以变更语音
{
pVoiceToken.Release();
pEnum->Next(1, &pVoiceToken, NULL);} if(FAILED(hr=pVoice.CoCreateInstance(CLSID_SpVoice)))
return 0;if(FAILED(hr = pVoice->SetVoice(pVoiceToken)))
return 0;return 1;} void ReleaseVoice(){ pVoice.Release();CoUninitialize();} void Speak(char *Txt){ CSpDynamicString s(Txt);pVoice->Speak(s,0,0);} void main()
{ menu();} void menu()//主菜单 { Stu strStu;char ch;loop:
system(“cls”);
printf(“ *********************************n”);
printf(“ * 1: 卡登记 * n”);
printf(“ * 2: 饭卡充值 * n”);
printf(“ * 3: 食堂消费 * n”);
printf(“ * 4: 有奖消费 * n”);
printf(“ * 5: 财务统计 * n”);
printf(“ * 6: 退出 * n”);
printf(“ *********************************n”);
printf(“ n”);
printf(“ 请选择输入选项[123456]:>”);if(!InitVoice())return;Speak(“请 选 择 输 入 选 项”);ReleaseVoice();
while(ch=getch())
{
switch(ch)
{
case '1': Register(&strStu);goto loop;
case '2': CZ();
case '3': XF();
case '4': Award();
case '5': Tj();
case '6': exit(0);
}
} goto loop;} void Register(Stu *a)//卡登记 { FILE *fp;system(“cls”);a->xf=0;printf(“**********卡登记***************n”);if(!InitVoice())
return;Speak(“卡登记”);ReleaseVoice();printf(“输入姓名:”);if(!InitVoice())
return;Speak(“输入姓名”);ReleaseVoice();scanf(“%s”,a->name);printf(“输入卡号:”);if(!InitVoice())
return;Speak(“输入卡号”);ReleaseVoice();
scanf(“%d”,&a->kh);printf(“输入初始金额:”);if(!InitVoice())
return;Speak(“输入初始金额”);ReleaseVoice();scanf(“%f”,&a->cash);_10_2(a);printf(“你的二进制卡编码是:%s”,a->bm);if(!InitVoice())
return;Speak(“你的二进制卡编码是”);ReleaseVoice();if(!InitVoice())
return;Speak(a->bm);ReleaseVoice();if((fp=fopen(“stu.txt”,“a”))==NULL){
printf(“ERRORn”);
exit(0);} fprintf(fp,“%st%dt%st%.2ft%.2f”,a->name,a->kh,a->bm,a->cash,a->xf);fputc('n',fp);fclose(fp);} void _10_2(Stu*a)//10 进制转2进制 { int n,i,t=1;n=a->kh;getchar();for(a->bm[0]='1',i=1;n;i++){
a->bm[i]=n%2+48;
n/=2;
if(a->bm[i]=='1')t++;} if(t%2==1)a->bm[31]='1';else a->bm[31]='0';for(i;i<31;i++)
a->bm[i]='0';a->bm[32]=' ';} void CZ()//饭卡充值 { FILE *fp;char bm[33];Stu strshare[MAX];float cash;int nNum=0,i;system(“cls”);printf(“**************饭卡充值**************n”);if(!InitVoice())
return;Speak(“饭卡充值”);ReleaseVoice();printf(“请输入你的卡编码:”);if(!InitVoice())
return;Speak(“请输入你的卡编码”);ReleaseVoice();gets(bm);if((fp=fopen(“stu.txt”,“r”))==NULL){
printf(“ERRORn”);
exit(0);} while(!feof(fp)){
fscanf(fp,“%s%*c%d%*c%s%*c%f%*c%f%*c”,strshare[nNum].name,&strshare[nNum].kh,strshare[nNum].bm,&strshare[nNum].cash,&strshare[nNum].xf);
nNum++;} nNum--;fclose(fp);for(i=0;i if(strcmp(strshare[i].bm,bm)==0) { printf(“请输入充值金额:”);if(!InitVoice())return;Speak(“请输入充值金额”);ReleaseVoice(); scanf(“%f”,&cash); strshare[i].cash+=cash;if((fp=fopen(“stu.txt”,“w”))==NULL) { printf(“ERRORn”);exit(0); } for(i=0;i fprintf(fp,“%st%dt%st%.2ft%.2fn”,strshare[i].name,strshare[i].kh,strshare[i].bm,strshare[i].cash,strshare[i].xf); fclose(fp); menu(); } } if(i>=nNum){ printf(“你尚未登记!n”);if(!InitVoice()) return;Speak(“你尚未登记”);ReleaseVoice();menu();} menu();} void XF()// 卡消费 { FILE *fp;char bm[33];Stu strshare[MAX]; float xf;int nNum=0,i;system(“cls”);printf(“**************食堂消费**************n”);if(!InitVoice()) return;Speak(“食堂消费”);ReleaseVoice();printf(“请输入你的卡编码:”);if(!InitVoice()) return;Speak(“请输入你的卡编码”);ReleaseVoice();gets(bm);if((fp=fopen(“stu.txt”,“r”))==NULL){ printf(“ERRORn”); exit(0);} while(!feof(fp)){ fscanf(fp,“%s%*c%d%*c%s%*c%f%*c%f%*c”,strshare[nNum].name,&strshare[nNum].kh,strshare[nNum].bm,&strshare[nNum].cash,&strshare[nNum].xf); nNum++;} nNum--;fclose(fp);for(i=0;i if(strcmp(strshare[i].bm,bm)==0) { printf(“请输入消费金额:”);if(!InitVoice())return;Speak(“请输入消费金额”);ReleaseVoice(); scanf(“%f”,&xf); strshare[i].xf+=xf; strshare[i].cash-=strshare[i].xf;if((fp=fopen(“stu.txt”,“w”))==NULL) { printf(“ERRORn”);exit(0); } for(i=0;i fprintf(fp,“%st%dt%st%.2ft%.2fn”,strshare[i].name,strshare[i].kh,strshare[i].bm,strshare[i].cash,strshare[i].xf); fclose(fp); menu(); } } if(i>=nNum){ printf(“你尚未登记!n”);if(!InitVoice())return; Speak(“你尚未登记”);ReleaseVoice(); menu();} menu();} void Award()//有奖消费 { FILE *fp;Stu strshare[MAX],*p[MAX],*temp=NULL;int nNum=0,i,j;system(“cls”);printf(“********有奖消费****************n”);if(!InitVoice())return;Speak(“有奖消费”);ReleaseVoice();if((fp=fopen(“stu.txt”,“r”))==NULL){ printf(“ERROR!n”); exit(0);} while(!feof(fp)){ fscanf(fp,“%s%*c%d%*c%s%*c%f%*c%f%*c”,strshare[nNum].name,&strshare[nNum].kh,strshare[nNum].bm,&strshare[nNum].cash,&strshare[nNum].xf); nNum++;} nNum--;fclose(fp);for(i=0;i p[i]=&strshare[i];for(i=0;i for(j=0;j if(p[j]->xf xf) { temp=p[j]; p[j]=p[j+1]; p[j+1]=temp; } for(i=0;i<3;i++) p[i]->cash+=(p[i]->xf)/100*5;printf(“今日大胃王:n”);if(!InitVoice())return;Speak(“今日大胃王”);ReleaseVoice();for(i=0;i<3;i++) printf(“%st%dt%st%.2ft%.2fn”,p[i]->name,p[i]->kh,p[i]->bm,p[i]->cash,p[i]->xf);if((fp=fopen(“stu.txt”,“w”))==NULL){ printf(“ERROR!n”); exit(0);} for(i=0;i fprintf(fp,“%st%dt%st%.2ft%.2fn”,strshare[i].name,strshare[i].kh,strshare[i].bm,strshare[i].cash,strshare[i].xf);fclose(fp);menu();} void Tj()//财务统计 { FILE *fp;Stu strshare[MAX];int nNum=0,i;float total=0,ave;system(“cls”);printf(“*******校方统计****************n”);if(!InitVoice())return;Speak(“校方统计”);ReleaseVoice();if((fp=fopen(“stu.txt”,“r”))==NULL){ printf(“ERROR!n”); exit(0);} while(!feof(fp)){ fscanf(fp,“%s%*c%d%*c%s%*c%f%*c%f%*c”,strshare[nNum].name,&strshare[nNum].kh,strshare[nNum].bm,&strshare[nNum].cash,&strshare[nNum].xf); nNum++;} nNum--;fclose(fp);for(i=0;i total+=strshare[i].xf;ave=total/nNum;printf(“今日消费总额:%.2fn学生平均消费水平:%.2fn”,total,ave);}