




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于RFID技术的校园一卡通项目食堂收费系统基于RFID技术的校园一卡通项目实现方案姓名学号班级项目分工何印20061578软件0602饭卡充值、挂失、办卡模块张印20061569软件0602学生消费、管理员管理模块胡成学20061558软件0602项目需求分析、程序纠错模块 指导教师:曾立胜二OO八年十一月八日目录第一章 校园一卡通21.1、概述21.2、基本功能21.2.1、RFID卡的管理31.2.2、功能划分31.2.3、食堂收费系统功能3第二章 食堂收费管理系统设计方案52.1、子模块划分52.1.1、一般管理员模块52.1.2、高级管理员模块52.1.3、刷卡点管理员模块52.2、系统流程62.2.1、消费系统结构图62.2.2、系统流程图62.2.3、E-R图72.3、开发工具的选择72.3.1、开发工具72.3.2、数据库8第三章 食堂收费管理系统实现103.1、运行环境103.2、RFID设备接口103.3、数据库的建立113.3.1、数据库表的建立113.3.2、系统数据库连接设计123.4、代码实现133.4.1、高级管理员登陆的设计和实现133.4.2、一般管理员的登陆的设计与实现253.4.3、学生办卡、充值以及RFID卡的挂失和激活的设计与实现313.4.4、学生消费的代码实现36总结42参考文献43第一章 校园一卡通1.1、概述 一卡通系统是高校信息化、数字化的重要组成部分,是感应智能卡在高校中使用的发展趋势,感应智能卡具有保密性强、容量大、操作便捷、可扩展性强等特性,学生、教职工可以在各自的银行网点或自助终端实现存取款、消费、转账等金融支付;可以代替学生在学校内的所有个人证件(如工作证、图书证、医疗证等),应用于需要身份识别的各种MIS系统;可以通过设在感应智能卡内的电子钱包实现餐饮、购物、上机上网、医疗等内部消费。 一卡通系统涵盖了就餐管理、消费管理、考勤管理、澡堂管理、电教室管理、图书管理、宿舍集中用电、用水、出入门禁管理等。 非接触式RFID卡的主要特点:非接触感应技术基于电磁感应原理,无需物理接触即可完成信息读写,读写所需瞬间能量由读写器提供,相对以前各种读写技术有如下特点: 1.1 读写无需物理接触,避免了物理接触所带来的各种障碍如卡片、读写头擦划受损等。食堂油污和高温对信息读写无影响。 1.2 卡片表面无裸露芯片,避免了芯片脱落、静电击穿、弯曲损坏等现象。 1.3 使用时无需固定方向,方便快捷。 1.4 每张卡片均有不同序号,无法复制,保密性极高。 1.5 存储空间可分为多个存储区,每个存储区均有各自密钥,能满足现代企事业单位或智能楼宇管理的各种功能,实现食堂售饭、门禁、考勤、电子消费、停车场管理等多项功能的一卡通管理。 1.6 每次信息读写过程符合ISO/IEC DIS9789-2标准的三次DES加密要求,安全可靠。1.2、基本功能校园一卡通具有电子身份识别和电子钱包的功能,可以替代校园传统的教师工作证、学生证、借书证、食堂就餐券等证件和现金交易。1.2.1、RFID卡的管理RFID卡的管理主要提供了RFID卡的发卡、充值、挂失、退卡、换卡、回收卡等RFID卡本身流动的管理功能,以及对RFID卡终端设备进行管理和不同系统模块管理员用户的权限限制,同时对这些行为做必要的记录和备档以方便挂失和查询。1.2.2、功能划分(1) 、学校食堂、消费管理(2) 、门禁管理(3) 、考勤管理(4) 、图书馆管理(5) 公寓水控管理等 图1.1 校园一卡通系统体系结构图 1.2.3、食堂收费系统功能 我们主要设计的是食堂收费系统,主要实现以下功能:1. 时间段日消费统计:时间段日消费统计报表指的是选定时间内各天的消费统计情况。 2.日消费明细 :日消费明细报表指的是选定时间内每天每笔的消费情况。 3.限额功能:对卡片进行限额设置,控制用户在一定时间段内的消费活动。 4.卡片开户 功能:对新用户进行卡片开户。 5.卡片充值 功能:对用户卡片进行充值操作。6.部门结算 功能:统计该设备管理部门在上个月的营业情况。 7.个人消费汇总 功能:提供个人消费记录汇总,即在某时间段内个人的消费汇总情况。 8.余额查询 功能:查询到目前为止用户的余额情况。 9.各刷卡点消费汇总 功能:提供某时间段内各刷卡点的消费汇总情况。10饭卡挂失、激活处理。11.提供用户点菜菜单。 第二章 食堂收费管理系统设计方案2.1、子模块划分 在食堂消费系统中,将该系统划分为3个子模块一般管理员模块、高级管理员模块和刷卡点管理员,分别实现不同的功能。2.1.1、一般管理员模块 这里的一般管理员是指在充值点的工作人员,他们的主要功能是: 登陆:输入职工号和密码 充值:充值前,显示当前金额;充值后,显示充值后的金额。此项不需要输入卡号。 查询:可查询用户的基本信息,如:学号、姓名、性别、卡号、专业班级、卡上金额。在学校里一般账号就是学号,而卡号是RFID卡本身的序列号。此外,用户还可以查询一周内的消费金额及清单。 挂失、激活:将RFID卡上的金额和失主信息都冻结,锁定卡号,直至失主重新办理卡,将失主的所有信息转移到新卡上。同时可以实现饭卡挂失后的激活功能,为用户提供方便。 办卡:登记学生的基本信息以及充值。2.1.2、高级管理员模块 高级管理员指的是系统管理员, 查询:当日的充值金额和次数以及学生的总的消费金额,各个商家的总入账金额,以及各个刷卡点的刷卡金额和次数。 限制:限制学生每天在某一时间段刷卡的额度,在这里我们设置了刷卡时间段是早上6:00晚上10点,每次刷卡额度最高为20元。 基本管理:管理一般管理员的基本信息,如职工号、姓名、身份证号等。2.1.3、刷卡点管理员模块在各个刷卡点,都有刷卡的工作人员,他们的功能很简单,就是是刷卡(即扣除卡上的金额),并且可以设定自动刷卡金额,同时还能设定当天的菜名以及才的价格等信息。2.2、系统流程2.2.1、消费系统结构图图2.1 IC卡消费系统结构图2.2.2、系统流程图图2.2 食堂售饭系统流程图2.2.3、E-R图 根据需求分析,一共提取出来了5个实体:高级管理员、一般管理员、刷卡人员、学生和磁卡。他们之间的实体联系图如下图2.3: 图2.3 实体联系图2.3、开发工具的选择2.3.1、开发工具对于此系统来讲,目前有很多种开发工具可供选择,包括VB、PB、C#、C、C+等。我们采用的是VC+6.0编译环境,采用MFC类库。Visual C+不仅仅是一个编译器,更是一个全面的应用程序开发环境。Visual C+作为一种程序设计语言,它同时也是一个集成开发工具,提供了软件代码自动生成和可视化的资源编辑功能。在使用Visual C+开发应用程序的过程中,系统为我们生成了大量的各种类型的文件。Visual C+采用的框架是MFC。MFC不仅仅是人们通常理解的一个类库。MFC是一个很大的、扩展了的C+类层次结构,它能使开发Windows应用程序变得更加容易。MFC的类库可以让我们拥有很多工具方便的进行程序设计,同时还提供许多常用的框架,减少程序员的工作量。MFC 还可以可以实现不同操作系统之间的移植以及不同处理器之间的移植。每当新的Windows版本出现时,MFC也会得到修改以便使旧的编译器和代码能在新的系统中工作。MFC也回得到扩展,添加新的特性、变得更加容易建立应用程序。 使用MFC的最大优点是它为我们做了所有最难做的事。MFC中包含了上成千上万行正确、优化和功能强大的Windows代码。我们所调用的很多成员函数完成了我们自己可能很难完成的工作。从这点上讲,MFC极大地加快了我们的程序开发速度。由于MFC编程方法充分利用了面向对象技术的优点,它使得我们编程时极少需要关心对象方法的实现细节,同时类库中的各种对象的强大功能足以完成我们程序中的绝大部分所需功能,这使得应用程序中程序员所需要编写的代码大为减少,有力地保证了程序的良好的可调试性。最后要指出的是MFC类库在提供的对象的各种属性和方法都是经过谨慎的编写和严格的测试,可靠性很高,保证了使用MFC类库不会影响程序的可靠性和正确性。2.3.2、数据库 数据库的选择,有2种选择,一个是SQL 另外一种是Access,而SQL是适合比较大一点的系统数据库,对于我们的这个食堂收费系统,Access完全够了。而且比起SQL,Access具有如下优点:(1)存储方式单一 Access管理的对象有表、查询、窗体、报表、页、宏和模块,以上对象都存放在后缀为(.mdb)的数据库文件种,便于用户的操作和管理。 (2)面向对象 Access是一个面向对象的开发工具,利用面向对象的方式将数据库系统中的各种功能对象化,将数据库管理的各种功能封装在各类对象中。它将一个应用系统当作是由一系列对象组成的,对每个对象它都定义一组方法和属性,以定义该对象的行为和外国,用户还可以按需要给对象扩展方法和属性。通过对象的方法、属性完成数据库的操作和管理,极大地简化了用户的开发工作。同时,这种基于面向对象的开发方式,使得开发应用程序更为简便。 (3)界面友好、易操作 Access是一个可视化工具,是风格与Windows完全一样,用户想要生成对象并应用,只要使用鼠标进行拖放即可,非常直观方便。系统还提供了表生成器、查询生成器、报表设计器以及数据库向导、表向导、查询向导、窗体向导、报表向导等工具,使得操作简便,容易使用和掌握。 (4)集成环境、处理多种数据信息 Access基于Windows操作系统下的集成开发环境,该环境集成了各种向导和生成器工具,极大地提高了开发人员的工作效率,使得建立数据库、创建表、设计用户界面、设计数据查询、报表打印等可以方便有序地进行。 (5)Access支持ODBC(开发数据库互连,Open Data Base Connectivity),利用Access强大的DDE(动态数据交换)和OLE(对象的联接和嵌入)特性,可以在一个数据表中嵌入位图、声音、Excel表格、Word文档,还可以建立动态的数据库报表和窗体等。Access还可以将程序应用于网络,并与网络上的动态数据相联接。利用数据库访问页对象生成HTML文件,轻松构建Internet/Intranet的应用。第三章 食堂收费管理系统实现3.1、运行环境 windows xp x86 3.2、RFID设备接口该项目采用的读卡器是射频设备D8。VC6.0与RFID射频设备D8是通过D8自带的一个WINDOWS 32位动态库“comRD800.dll”所提供的接口来进行连接的。在此库函数中,提供了有如下主要的接口函数。1. int dc_init(int port,long baud);功 能:初始化通讯口参 数:port:取值为0-19时,表示串口120;为100时,表示USB口通讯,此时波特率无效。 baud:为通讯波特率9600115200返 回:成功则返回串口标识符0,失败返回负值2. int dc_exit(int icdev);功 能:关闭串口参 数:icdev:通讯设备标识符返 回:成功返回03. int dc_card(int icdev,unsigned char _Mode,unsigned long *_Snr);功 能:寻卡,能返回在工作区域内某张卡的序列号参 数:icdev:通讯设备标识符;_Mode:寻卡模式;_Snr:返回的卡序列号4. int dc_beep(int icdev,unsigned int _Msec);功 能:蜂鸣参 数:icdev:通讯设备标识符;unsigned int _Msec:蜂鸣时间,单位是10毫秒返 回:成功则返回 0。3.3、数据库的建立3.3.1、数据库表的建立在系统中,我们采用的是Access数据库,建立了高级管理员表、记录一般管理员信息的Worker表、充值记录表ChargeRecord、专门保存学生信息的表、当天供应的菜单表、记录学生消费记录的StuItem表。表3-1 高级管理员名单表:此表用来记录高级管理员姓名、登陆名和密码。表3-2 Worker表此表记录了一般管理员(即充值工作人员)的信息,包括姓名、登陆密码、家庭住址和性别等。表3-3 充值记录表:此表用来记录学生的充值记录,包括学生名字、充值金额、卡号和充值时间。表3-4 菜单表:此表记录了当天食堂的菜单,包括菜名、价格和某种菜被点次数。表3-5 学生表:该表记录了学生所持的卡的各种信息,包括卡的ID号、学生的学号、学生姓名、卡上的余额、卡的状态(激活或锁定)、卡激活或锁定的时间。表3-6 StuItem表该表记录了学生当天消费的信息,包括IC卡号、学生学号、姓名、消费时间和消费的菜名。3.3.2、系统数据库连接设计 在系统的数据库的连接设计上,我们利用了两个对象:一个是Connection对象,一个是Recordset对象。我们通过Connection对象的Open方法来进行连接数据库的,并且用Recordset对象取得结果记录集进行查询、处理。在头文件中定义HRESULT hr。一、创建Connection对象并连接数据库首先我们在头文件中添加一个指向Connection对象的指针:_ConnectionPtr m_pConnection;函数实现如下:hr = m_pConnection.CreateInstance(ADODB.Connection); /创建Connection对象if(SUCCEEDED(hr)m_pConnection-Open(Provider=Microsoft.Jet.OLEDB.4.0;Data Source= Info.mdb, ,adModeUnknown); /连接数据库二、执行SQL命令并取得结果记录集首先定义了一个指向Recordset对象的指针:_RecordsetPtr m_pRecordset;并为其创建Recordset对象:m_pRecordset.CreateInstance(ADODB.Recordset)函数实现如下:hr = pRecordset.CreateInstance(ADODB.Recordset); /创建Recordset对象pRecordset-Open(SELECT * FROM Student,_variant_t(IDispatch *)m_pConnection, true), adOpenStatic,adLockOptimistic,adCmdText); 3.4、代码实现3.4.1、高级管理员登陆的设计和实现程序使用VC6.0 + Xtreme ToolkitPro 2008 (12.0.2)界面库进行开发,程序分为 综合信息管理、员工信息管理、学生信息管理、菜单管理四个模块。图3.1这是通过Xtreme ToolkitPro 2008的一个类进行建立的CXTPPropertySheet ps(_T(Custom Navigator Sample); CPropertyPageTaskPanelNavigator* pList = new CPropertyPageTaskPanelNavigator(); ps.SetNavigator(pList);/以下分别为Info数据库表;Admin admin;Worker worker;MenuCtrl menu;Affairs affairs;CCtrlStudent stu;ps.AddPage(&admin);ps.AddPage(&worker);ps.AddPage(&affairs);ps.AddPage(&menu);ps.AddPage(&stu);ps.DoModal(); 通过上面的代码我们可以创建上面左边的窗口,窗口右边的信息则是使用CXTListCtr进行创建的,CXTPPropertySheet实际上是将4个窗口进行继承管理,而每个Dialog窗口则改成了CXTPPropertyPage的类型,这个类也是从CDialog派生过来的,每个对话框创建的同时,我们对他进行初始化,包括创建CListCtrl的头部,设置他的风格,设置他的大小,从数据库中读取数据等等,因为程序中大量使用了CListCtrl,因此,将它封装成了一个类进行调用#include StdAfx.h#ifndef MYLISTCTRL#define MYLISTCTRLclass MyListCtrlpublic:MyListCtrl(int n):size(0)void CreateHead(CXTListCtrl& listctrl,CString p, int s )int i = 0;size = s ;for (i = 0; i GetSafeHwnd();header.SubclassWindow(hWndHeader);header.EnableAutoSize(TRUE);header.ResizeColumnsToFit();listctrl.ModifyExtendedStyle(LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT);void InsertMyText(CXTListCtrl& listctrl, int row, CString* context)listctrl.InsertItem(row, context0, 0);for (int i = 1; i size; i +)listctrl.SetItem(row, i, LVIF_TEXT, contexti, 0, NULL, NULL, NULL);void DeleteAll(CXTListCtrl& listctrl)listctrl.DeleteAllItems();protected:int size;#endif共有3个函数,分别是:void SetHeadStyle(CXTListCtrl& listctrl, CXTHeaderCtrl& header) void InsertMyText(CXTListCtrl& listctrl, int row, CString* context)void CreateHead(CXTListCtrl& listctrl,CString p, int s )而CreateHead()用于创建头部:图3.2 SetHeadStyle()用于设置头部的风格,比如上面的5个头信息都是自动设置自己的大小的,他们会根据窗口分配的大小自动进行调整。 InsertMyText()用于像里面添加数据,数据项有一个CString str数组进行存储。 数据的添加涉及到数据库的操作,我们这里是采用的ODBC编程方式,可能ODBC最大的缺点是需要设置数据源,但是我们可以在程序中进行自动设置。代码如下:CString sPath;GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);sPath.ReleaseBuffer();int nPos;nPos=sPath.ReverseFind ();sPath=sPath.Left (nPos);nPos=sPath.ReverseFind(); sPath=sPath.Left (nPos);CString lpszFile = sPath + Info.mdb; char* szDesc;int mlen;szDesc=new char256;sprintf(szDesc,DSN=%s? DESCRIPTION=TOC support source? DBQ=%s? FIL=MicrosoftAccess? DEFAULTDIR=%s? ,Info,lpszFile,sPath);/得到路径mlen = strlen(szDesc); for (int i=0; i= nID )nID = mID + 1;worker.MoveNext(); /分配代码 图3.8 修改信息当然我们每次进行的操作即为数据库操作,因此打开关闭数据库必不可少AddWinfo info ; WorkerInfo worker ;CString lineinfo5 ;CString strSQL = SELECT * FROM Worker;if(!worker.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)AfxMessageBox(Worker表打开失败!);int nID = 0;int mID = 0;while (!worker.IsEOF()mID = atoi(worker.m_ID);if ( mID = nID )nID = mID + 1;worker.MoveNext();CString sID = ;sID.Format(%d, nID);info.m_id = sID ;info.m_sex = 女;info.DoModal();worker.Close();if(!worker.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)AfxMessageBox(Worker表打开失败!);list.DeleteAll(m_ListCtrlWork);CString num = ;int item = 0 ;worker.MoveFirst();while (!worker.IsEOF()num.Format(%d, item);lineinfo0 = num;lineinfo1 = worker.m_Name;lineinfo2 = worker.m_ID;lineinfo3 = worker.m_sex;lineinfo4 = worker.m_ComeFrom;list.InsertMyText(m_ListCtrlWork, item, lineinfo);worker.MoveNext();item + ;worker.Close(); 图3.9 学生管理通过点击右键我们可以锁定或激活该卡,也可以显示学生的信息,包括学生进行过哪些消费。菜单信息:图3.10 菜单信息存储了菜单的信息,它与我们的消费系统相连接,可以根据这个添加一些菜单供学生们选择,而右边的销售情况则是各种菜品在销售中所占的比例,它可以让我们的管理者及时地得知受欢迎以及不受欢迎的菜,以便及时调整价格。3.4.2、一般管理员的登陆的设计与实现一般管理员具有充值、注册新用户、管理饭卡状态等功能,其中每一功能具体实现如下:登录主界面:图3.11 有菜单栏和状态栏,状态栏,菜单栏用于管理员选择进入系统,状态栏用于显示相关信息及系统当前时间,方便管理员操作。管理员登陆后进入下面登录信息验证窗口:图3.12 列表框显示了该充值系统所有在职的管理员姓名,管理员通过双击其姓名,就可添加姓名至用户名编辑框,同时输入密码,验证合格后方能进入系统,以实现充值、注册、挂失操作,其中主要实现功能代码如下:/该函数主要实现对话框相关控件背景色设置,该背景函数在整个系统中通用;HBRUSH CAdiminLogindlg:OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) HBRUSH hbr = CDialog:OnCtlColor(pDC, pWnd, nCtlColor);if(nCtlColor=CTLCOLOR_LISTBOX)/改变列表框的背景色;/pDC-SetBkMode(TRANSPARENT);pDC-SetTextColor(RGB(0,0,0);pDC-SetBkColor(RGB(233,233,220);HBRUSH b=CreateSolidBrush(RGB(233,233,220);return b;else if(nCtlColor=CTLCOLOR_EDIT) /改变编辑框的背景色;/pDC-SetBkMode(TRANSPARENT);pDC-SetTextColor(RGB(0,0,0);pDC-SetBkColor(RGB(233,233,220);HBRUSH b=CreateSolidBrush(RGB(233,233,220);return b;else if(nCtlColor=CTLCOLOR_STATIC) /改变静态文本的背景色;pDC-SetTextColor(RGB(0,0,0);pDC-SetBkColor(RGB(160,180,220);HBRUSH b=CreateSolidBrush(RGB(160,180,220);return b;else if(nCtlColor=CTLCOLOR_DLG) /改变对话框的背景色;pDC-SetTextColor(RGB(0,0,0);pDC-SetBkColor(RGB(160,180,220);HBRUSH b=CreateSolidBrush(RGB(160,180,220);return b;return hbr;/通过调用该函数弹出登录信息验证对话框,同时关闭主对话框;void CAdminOpDlg:OnAdminOpMenu() CAdiminLogindlg logindlg;this-OnCancel();/关闭主对话框;logindlg.DoModal();登录信息验证模块:/该函数实现双击列表框显示相关信息到编辑框功能;void CAdiminLogindlg:OnDblclkList1() CString sname;int curSel = m_list.GetCurSel();/获得当前指针位置;m_list.GetText(curSel,sname); /获得当前位置管理员名字;m_name = sname;UpdateData(false);下面是具体信息验证过程:/获得当前所指位置的用户名;int curSel = m_list.GetCurSel();if(curSel MoveFirst();pRecordset-Move(long(curSel); m_list.GetText(curSel,sname);m_name=sname;var = pRecordset-GetCollect(AdminPass);/依次从数据库表里面去相应管理员名的密码,进行比较;if(var.vt != VT_NULL)savepassword = (LPCSTR)_bstr_t(var);m_password.GetWindowText(spassword);if(spassword.IsEmpty()MessageBox(请输入密码:);m_password.SetFocus();elseif(savepassword=spassword)/如果输入密码与数据库存储的密码相同,则该管理员可以进入系统,同时弹出下一个对话框;CAddMoneyDlg addmdlg;var = pRecordset-GetCollect(ID);addmdlg.m_workerID = var.bstrVal; var = pRecordset-GetCollect(name);addmdlg.m_workerName = var.bstrVal; if(pRecordset - State)/关闭数据库连接;pRecordset-Close();if(m_pConnection - State)m_pConnection-Close();this-OnCancel();addmdlg.DoModal();图3.13如果密码验证不通过,则继续输入密码,但是总共只有三次机会,否则将关闭信息验证对话框;else time+;if(time=3)MessageBox(对不起,你无权限登录系统,请与管理员联系!);/关闭数据库表链接;if(pRecordset - State)pRecordset-Close();if(m_pConnection - State)m_pConnection-Close();this-OnCancel();return;elseMessageBox(您输入的密码不正确,请重新输入:);m_password.SetWindowText();m_password.SetFocus();3.4.3、学生办卡、充值以及RFID卡的挂失和激活的设计与实现1、 办卡 用户只需要填写其姓名、学号等相关信息,便可以实现办卡业务。图3.14如果信息未填完,会自动弹出提示消息;void CRegisterDlg:OnBankaQuerenBt() UpdateData(true);if(m_bkname = | m_bknum = )AfxMessageBox(姓名和学号信息不能为空!);return;try/ 写入各字段值进数据库,并刷新数据库记录;pRecordset-AddNew();pRecordset-PutCollect(StuName, _variant_t(m_bkname);/填写姓名;pRecordset-PutCollect(StudentID,_variant_t(m_bknum); /填写学号;pRecordset-PutCollect(CardID,_variant_t(m_bkcardID);pRecordset-Update();AfxMessageBox(注册成功!);catch(_com_error *e)AfxMessageBox(e-ErrorMessage();二、充值图3.15刷卡后点充值按钮可进入充值界面充值,同时系统也会记录充值时间到学生数据库,并将充值信息放入管理员管理数据库,以便出错时有据可查,具体代码实现如下:if(!CZpRecordset-adoEOF)/在数据库中找到用户卡号;if(m_addmoney=)AfxMessageBox(请输入充值额:);tryCZpRecordset-PutCollect(Money,(atol(m_cmoney)+atol(m_addmoney);/将充值金额存入数据库中;record.AddNew();/添加充值信息进入管理员管理表;record.m_ID = m_workerID ;record.m_name = m_workerName ;record.m_object = m_ccardID ;record.m_amount = m_addmoney ;record.m_time = stime ;record.Update();record.Close();/CZpRecordset-PutCollect(Date, _variant_t(stime);/记录充值时间;CZpRecordset-Update();/刷新数据库;catch(_com_error *e)AfxMessageBox(e-ErrorMessage();/ 显示充值后的金额及充值时间到编辑框中,同时弹出充值成功消息;var = CZpRecordset-GetCollect(Money);m_cmoney=var.bstrVal;var = CZpRecordset-GetCollect(Date);m_cdate=var.bstrVal;UpdateData(FALSE);AfxMessageBox(充值成功!);三、饭卡状态管理(挂失/锁定、激活)主界面:图3.15通过输入学号,可以显示用户的相关信息,这样设计的主要原因是因为挂失的用户一般都是卡已丢失,而且卡号不一定都知道,所以通过学号可以查询其相关信息,并对卡的状态进行管理,方便实现,只需选择单选按钮就可以实现饭卡的状态转换,实现如下:/该函数实现了饭卡挂失功能;void CCguashiDlg:OnQuerenguashiBt() UpdateData(true);pRecordset - MoveFirst();_variant_t var;CString strnum;if(m_gsnum= )/通过学号查找其他相关信息;AfxMessageBox(请输入学号:);var = pRecordset-GetCollect(StudentID);/获得学号;strnum=var.bstrVal;while(!pRecordset-adoEOF & m_gsnum!=strnum)/寻找学号与编辑框相等的记录;var = pRecordset-GetCollect(StudentID); strnum=var.bstrVal;pRecordset-MoveNext();if(!pRecordset-adoEOF)/找到与所输学号相同的记录,进行下一步操作;pRecordset-MovePrevious();
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生物农药在病虫害综合治理中的作用考核试卷
- 航空器飞行数据记录器分析与应用考核试卷
- 2025年耐磨球段项目合作计划书
- 数字智慧方案5473丨人力资源HR信息化解决方案
- 《化学键的性质》课件
- 2025年高密度聚乙烯土工膜项目建议书
- 中学数学课件:正确运用解题方法与技巧
- 找拼音小游戏课件
- 2019-2025年统计师之初级统计工作实务能力提升试卷A卷附答案
- 2019-2025年初级银行从业资格之初级银行管理考前冲刺模拟试卷B卷含答案
- TCAICC 001-2024 张家界莓茶质量等级评价
- 人教版一下数学克的认识公开课课件
- 走进重高-培优讲义-数学-八年级-上册-(浙教版)
- 初中物理竞赛练习题集(共14讲)含答案
- 220kV电力系统继电保护及自动装置设计
- 《24时计时法》素养课件
- 新生儿黄疸护理查房课件
- 30题仪表工程师岗位常见面试问题含HR问题考察点及参考回答
- 《婚姻家庭辅导服务规范》
- 电力安全工作规程发电厂和变电站电气部分
- 数字贸易学 课件 第5章 数字服务贸易
评论
0/150
提交评论