食堂刷卡管理系统(毕业论文).doc
编号 毕 业 论 文(设 计) 课题题目: 食堂刷卡管理系统 系 部: 计算机科学系 专 业: 软件技术 学 号:A113GZ053020107姓 名: 指导教师: 2013年10月摘 要食堂刷卡管理系统是为了实现食堂自动化管理而设计的,它完全取代了原来食堂管理一直使用的人工处理的工作方式,并且避免了由于管理人员的工作疏忽以及管理质量问题所造成的各种错误,为及时、准确、高效的完成食堂管理工作提供了强有力的工具和管理手段。食堂是一个集体单位、企业等不可缺少的一部分,尤其是学校,学校一直以来都是人群集中比较密集的地方,再随着高校的扩招,学生的密集程度更是急剧增长,故高校食堂的增多是不可避免的。再加上学生没有经济来源,去餐馆消费是几乎消费不起的,所以食堂的存在,给广大的学生们带来了很多的方便及好处,同时也给提供餐饮方带来了极大的方便。又因为食堂一般都使用刷卡系统来进行收取金额,所以免去了找零钱退额的过程,同时也避免了现金在流通过程中的丢失、假钞、破钞等问题,省去了现金的兑换、回笼、清点、保管等环节上的人力、物力、财力,提高管理层次,同时大大降低了打发和找零的环节中病菌交叉感染的机率,增强了餐饮的卫生程度。再因为刷卡系统的存在,同时也增加了消费过程的速度。为统一的管理带来了极大的方便。针对传统的食堂管理带来的诸多不便,文章介绍了新型的食堂管理模式。在开发食堂管理系统中,采用采用了 SQL Server 2005数据库管理系统及Microsoft Visual Studio 2010主流开发技术进行了实现实现流程规范化,数据灵活化配置一套食堂管理系统。通过系统的开发掌握软件的基本的开发流程,了解了系统的业务。从而掌握软件开发整体过程,把知识运用实际生产中。 关键词:数据库管理系统,食堂管理系统,Microsoft Visual Studio 2010 SQL Server 2005目录第一章 食堂刷卡管理系统的开发背景41.1 开发背景41.2 开发工具和相关技术简介4第二章 系统定义与系统需求62.1 系统定义62.2 系统需求分析7第三章 系统总体设计83.1 系统功能模块的划分83.2 管理员权限模块划分93.3 系统流程分析103.4 数据库设计103.4.1 数据库规划103.4.2 E-R图113.4.3 数据表的设计13第四章 系统详细设计174.1 数据库174.1.1 数据库的链接174.2 系统的登录与取消184.2.1 管理员登陆模块的实现194.2.2 用户主窗体模块的实现214.2.2主窗体模块214.3.1 用户充值264.4.1消费充值模块294.5用户信息管理294.5.1 客户信息的添加294.5.2 用户信息修改314.6.1 用户信息的查询与删除334.6.1用户查询删除模块334.6.2用户充值的查询354.6.3 用户消费查询364.7 卡号的的核对374.8 用户开户时间处理39总 结40谢 辞41第一章 食堂刷卡管理系统的开发背景1.1 开发背景传统的食堂刷卡管理现在已经很难应对当今社会对食堂的管理要求,它与现在的基于计算机技术发展起来的食堂信息管理系统对比,有以下几大不同:便捷性方面:传统的人工对食堂信息进行管理,如:顾客信息管理,消费信息管理和记账信息的管理,都是很繁琐的过程,其中的任何一步过程都要浪费大量的时间,而随着计算机技术的发展,这些原本繁琐的问题都会变得轻而易举。安全性方面:传统的纸质记录方式查询起来很麻烦,而且保密性很差,并且容易磨损丢失,对于金钱的管理是非常不利的。但如果采用的是电子文档的方式进行数据的保存,这一切都变得非常简便,你可以方便的对数据信息进行备份查询,并且数据的安全性可以得到最大程度的保证。准确性方面:传统的人工记账容易出错,如果采用这种方式来处理现在的含有打折信息的消费结算会使得工作量很大,如果计算出错将严重影响自己的声誉。而如果使用软件系统,这些问题都将不会出现,计算机的错误率几乎为零。鉴于以上传统的人工管理方式的种种缺陷,我设计了方便工厂食堂,学校食堂使用的应用程序,通过它,管理者可以基本解决以上所遇到的种种问题,而且还对金钱的计算有的很大的方便。1.2 开发工具和相关技术简介开发工具:硬件:lenovo 电脑软件:Windows 7Microsoft Visual Studio 2010Microsoft SQL Server 2005本系统是采用 VB.NET技术结合SQL Server数据库设计并实现的。VB.NET的开发工具为Microsoft Visual Studio 2010,数据库使用的是SQL Server 2005 Express Edition.Microsoft Visual Studio 2010Microsoft Visual Studio 2010 使开发人员能够快速创建高质量、用户体验丰富而又紧密联系的应用程序,充分展示了 Microsoft 开发智能客户端应用程序的构想。借助 Visual Studio 2010,采集和分析信息将变得更为简单便捷,业务决策也会因此变得更为有效。任何规模的组织都可以使用 Visual Studio 2010 快速创建能够利用 Windows Vista和 2007 Office system 的更安全、更易于管理并且更可靠的应用程序。 Visual Studio 2010 包括各种增强功能,例如可视化设计器(使用 .NET Framework 3.5 加速开发)、对 Web 开发工具的大量改进,以及能够加速开发和处理所有类型数据的语言增强功能。Visual Studio 2010 为开发人员提供了所有相关的工具和框架支持,帮助创建引人注目的、令人印象深刻并支持 AJAX 的 Web 应用程序。开发人员能够利用这些丰富的客户端和服务器端框架轻松构建以客户为中心的 Web 应用程序,这些应用程序可以集成任何后端数据提供程序、在任何当前浏览器内运行并完全访问 ASP.NET 应用程序服务和 Microsoft 平台。SQL Server 2005 Express Edition(仅适用于 32 位)SQL Server Express 是一个免费、易用且便于管理的数据库。SQL Server Express 与 Microsoft Visual Studio 2005 集成在一起,可以轻松开发功能丰富、存储安全、可快速部署的数据驱动应用程序。SQL Server Express 是免费的,可以再分发(受制于协议),还可以起到客户端数据库以及基本服务器数据库的作用。SQL Server Express 是低端 ISV、低端服务器用户、创建 Web 应用程序的非专业开发人员以及创建客户端应用程序的编程爱好者的理想选择。第二章 系统定义与系统需求2.1 系统定义随着21世纪的到来,人们更深切地感受到了计算机在生活和工作中的作用越来越重要,越来越多职业需要具有计算机的应用技能。掌握计算机是职业的雪要,更是事业发展的需要。信息在社会和经济的发展中所起的作用越来越为人们所重视。信息资源的开发利用水平已成为衡量一个国家综合国力的重要标志之一。在计算机的三大主要应用领域(科学计算、数据处理与过程控制)中,数据处理的比重占70%左右。计算机作为信息处理的工具,为适应数据处理需求的迅速提高,满足各类系统对数据处理的要求,在文件系统的基础上发展起了数据库系统。随着计算机计算机技术的飞速发展,计算机在企业管理中应用及普及,利用计算机实现企业信息管理势在必行。本课题以高等院校为对象,作为高效要面对大量的课程设计项目及相关信息的处理,这就需要一个课程设计管理系统来提高管理工作的效率。通过本系统,可以做到信息的规范管理、科学统计和快速查询,从而减少管理工作方面的工作量。数据处理技术已深入到我们工作和生活的方方面面,而数据库技术是数据处理不可缺少的手段。随着数据库技术的发展,面向对象的数据库、分布式数据库、多媒体数据库、数据库开发工具的研究方兴未艾,这些技术的发展使用软件的开发速度更快、成本更低、质量更好、功能更强。管理信息系统是一门新兴的、集管理科学、信息科学、系统科学及计算机科学为一体的综合性学科,研究的是信息管理活动的全过程,以便有效的管理信息,提供各类管理决策信息,辅助企业进行现代化管理。管理信息系统它具备数据处理、计划、控制、预测和辅助决策功能,具体作用如下5点内容:(1)用统一标准处理和提供信息,排除使用前后矛盾的不完整的数据。(2)完整、及时提供在管理及决策中需要的数据。(3)利用指定的数据关系分析数据,客观预测未来。(4)向各级管理机构提供不同详细程度的报告,缩短分析和解释的时间。(5)用最低的费用最短的时间提供尽可能精确、可靠的信息,以便使决策者选择最佳的实施方案,以提高企业的经济效益。2.2 系统需求分析系统开发的总体任务是受用 计算机信息管理技术,实现食堂各种信息的系统化,规范化,自动化,提高食堂管理的效率。对应用系统项目的开发,首先要对程序要实现的功能和目标进行整体分析和规划,确保在后期开发中不会出现遗漏或重大缺陷。因此在软件开发中,要严格按照软件工程的流程进行系统的分析和设计系统功能分析是在系统开发的总体任务的基本上完成的。管理员使用本食堂刷卡管理系统应可以实现以下功能:1. 添加修改查询客户会员信息(修改客户信息需客户确认)2. 管理员可以在用户的账户里充值3. 管理员可以对用户的帐户里消费4.可以查询使用户的现金收款金额除了实现以上功能外,本系统还需要方便用户地使用,使得用户可以很快地熟练掌握,从而可以让用户快速的投入工作。并且要避免逻辑错误的出现。第三章 系统总体设计3.1 系统功能模块的划分根据以上需求,餐饮信息管理系统功能被划分为以下模块,如图3.1所示:管理员登录用户充值用户消费用户信息查询信息管理员信息图3.1 食堂刷卡管理系统功能模块图系统登录退出模块:本模块是被用于用户登录,退出。模块根据管理员的要求可以操作所以的功能模块客户信息管理模块:本模块将食堂松散的用户资源加以整合,通过标准化的管理操作,将客户资料加以收集。用户使用本模块可以方便的查询客户的所有资料和客户消费信息。充值结算管理模块:通过此模块,管理员可以方便的为用户提供充值结算服务,充值收取的现金将会计入用户的金额现金中,便于管理员结算时核对收款金额。结算方式账户余额结算,账户余额结算的金额会从客户的账户里扣除。管理员模块:本模块只限于管理员使用,管理员使用它,可以添加删除用户。用户类型管理员。管理员删除用户时,如果要删除的是管理员信息,系统将直接执行命令,如果要删除的是管理员账户,系统会先查看剩下的管理员账户数量,最少保留一个管理员账户,以便下次的登录。如果删除的用户是管理员本人,则在删除账户后,系统将会要求使用者重新登录。3.2 管理员权限模块划分管理员权限划分如图3.2所示:管理员修改密码修改充值用户删除查询消费添加查询查询删除删除图3.2 管理员权限模块图管理员使用本系统将能使用系统的所有功能。3.3 系统流程分析系统流程分析如图3.3所示:管理员登录用户充值用户消费用户信息查询信息管理员信息用户消费与删除用户添加用户查询与修改充值查询消费查询用户查询密码修改图3.3系统流程分析流程图简介:管理员登录系统后为用户添加基本信息,用户可以根据需要在开通的账户里充值(增加用户的收款金额)。用户通过食堂刷卡管理系统进行消费。用户点完餐后刷卡,用户可以选择使用现金或者从用户余额里扣除,支付成功会增加用户的已消费金额。若余额不足,系统将会提示,那么用户只能使用现金支付。管理员登录的话可以使用所有功能,而且可以对用户信息进行增删改查,以及管理员信息。3.4 数据库设计3.4.1 数据库规划根据以上模块划分图分析,针对食堂刷卡管理系统,分别对用户、客户这几个实体进行详细的调研和分析。数据库的设计采用一库多表式设计。即设计了一个数据库。把每个使用到的独立的对象设计为独立的应用实体。3.4.2 E-R图管理员密码管理员ID管理员ER图图3.4.2 管理员E-R图主要存储一些管理员信息,如管理员的账号、密码,主要用于管理员登录。用户金额开户时间用户ID身份证号性别姓名图3.4.3用户E-R图主要存储一些客户信息,如客户的账号、性别、身份证号和金额情况等等,主要用于用户充值和结算,使用于添加预定。用户充值金额充值金额用户ID身份证号姓名图3.4.4 用户充值E-R图主要存储一些充值信息,如用户的账号、充值金额与充值后的金额等等,会使用到用户信息。用户消费金额消费金额用户ID消费时间身份证号姓名图3.4.5 折扣E-R图主要存储一些消费信息,如客户的账号、消费金额与消费后的金额,时间等等,会使用到用户信息。3.4.3 数据表的设计1、 guanliyuan_Info(管理员表)表3.1 guanliyuan_Info序号字段名称字段描述字段类型长度备注1guanliyuan_ID管理员编号nvarchar(50)20不允许空2guanliyuan_Mima管理员密码nvarchar(10)20不允许空管理员表主要用于存储一些管理员信息,如用户的账号、密码,主要用于用户登录。数据库表2、 yonghu_Info(用户表)表3.2 yonghu_Info序号字段名称字段描述字段类型长度备注1yonghu_ID用户编号nvarchar(20)20不允许空2yonghu_Name用户姓名nvarchar(20)20不允许空3yonghu_Sex用户性别nvarchar(8)50不允许空4yonghu_Sfzh用户身份证号nvarchar(18)20不允许空5yonghu_Kaihushijian开户时间nvarchar(20)20不允许空6yonghu_Yue金额nvarchar(6)20不允许空用户表主要用于存储一些客户信息,如用户的账号、身份证号、开户时间和金额等等。数据库表3、 yonghuchongzhi_Info(充值表)表3.2 yonghuchongzhi_Info序号字段名称字段描述字段类型长度备注1chongzhi_ID编号int不允许空2yonghu_ID用户编号nvarchar(20)20不允许空3yonghu_Name用户姓名nvarchar(20)20不允许空4yonghu_Sfzh用户身份证号nvarchar(18)20不允许空5yonghu_chongzhijine充值金额nvarchar(20)20不允许空6yonghu_Yue金额nvarchar(6)20不允许空充值表主要用于存储一些客户信息,如用户的账号、身份证号、充值金额和金额等等。数据库表4、 yonghuxiaofei_Info(消费表)表3.2 yonghuxiaofei_Info序号字段名称字段描述字段类型长度备注1chongzhi_ID编号int不允许空2yonghu_ID用户编号nvarchar(20)20不允许空3yonghu_Name用户姓名nvarchar(20)20不允许空4yonghu_Sfzh用户身份证号nvarchar(18)20不允许空5yonghu_Xiaofeishijian消费时间varchar(50)29不允许空6yonghu_Kaihushijian消费金额nvarchar(20)20不允许空7yonghu_Yue金额nvarchar(6)20不允许空充值表主要用于存储一些客户信息,如用户的账号、身份证号、消费金额和金额等等。数据库表第四章 系统详细设计4.1 数据库4.1.1 数据库的链接为了便于用户使用和维护,我们将与数据库的连接,单独写出来并进行编译,这样系统在新的环境使用时,只需改动一处数据库连接代码,即可立即使用,连接关键代码如下:public class DBHelper / 数据库连接字符串 private string connString = "Data Source=.;Initial Catalog=STGLXT;User ID=sa;Password=123" / 数据库连接 Connection 对象 private SqlConnection connection; / <summary> / Connection对象 / </summary> public SqlConnection Connection get if (connection = null) connection = new SqlConnection(connString); return connection; / <summary> / 打开数据库连接 / </summary> public void OpenConnection() if (Connection.State = ConnectionState.Closed) Connection.Open(); else if (Connection.State = ConnectionState.Broken) Connection.Close(); Connection.Open(); 4.2 系统的登录与取消4.2.1 管理员登陆模块的实现图4.2.1 管理员登录管理员登陆模块是防止非法用户登陆的第一道防线,通过它可以保护后台数据库的安全性,当用户要进行系统操作时,首先要进入的就是身份验证界面,只有在密码正确的情况下才能进行以后的操作,如果输入的密码不正确,则不能进行登录对系统进行操作。 private void btnLogin_Click(object sender, EventArgs e) /用户名、密码和用户类型不为空 if (CheckInput() string message = string.Empty;/表示验证的消息 /检索用户名、密码是否存在 if (CheckUser(ref message) /创建一个用户对象,代表当前登录的用户 ClassInfo. User user = new ClassInfo. User(); /显示系统管理员主窗体 frmMain frm = new frmMain(); user.Guanliyuan_ID = txtUserName.Text.Trim(); user.Guanliyuan_Mima = txtPwd.Text.Trim(); frm.StartPosition = FormStartPosition.CenterScreen; frm.Show(); this.Hide(); else /弹出消息提示框 MessageBox.Show(message, "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Information); #region 输入验证 / <summary> / 用户名、密码和用户类型的非空验证 / </summary> / <returns>true:都不为空,false:其中一个为空</returns> public bool CheckInput() /用户名为空 if (this.txtUserName.Text.Trim() = "") MessageBox.Show("请输入用户名", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtUserName.Focus(); return false; /密码为空 else if (this.txtPwd.Text.Trim().Equals(string.Empty) MessageBox.Show("请输入密码", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtPwd.Focus(); return false; else return true; 系统先进行数据库操作,判断是否存在用户名、用户密码和用户类型完全符合要求的数据,如果存在,则说明用户可以登录,同时把登录的用户类型和用户名告诉需要用到用户类型和用户名数据的模块如系统主界面。4.2.2 用户主窗体模块的实现图4.2.2主窗体模块用户主窗体模块的代码如下: private void 用户充值ToolStripMenuItem_Click(object sender, EventArgs e) frmYonghu.frmyonghuchongzhi chongzhi = new frmYonghu.frmyonghuchongzhi(); chongzhi.Show(); private void 用户消费查询与删除ToolStripMenuItem_Click(object sender, EventArgs e) frmYonghu.frmyonghuxiaofei xiaofei = new frmYonghu.frmyonghuxiaofei(); xiaofei.Show(); private void 用户添加ToolStripMenuItem_Click(object sender, EventArgs e) frmYonghu.femyonghuzhuce tianjia = new frmYonghu.femyonghuzhuce(); tianjia.Show(); private void 用户查询与修改ToolStripMenuItem_Click(object sender, EventArgs e) frmYonghu.frmyonghuxiougai xiougai = new frmYonghu.frmyonghuxiougai(); xiougai.Show(); private void 管理员密码修改ToolStripMenuItem_Click(object sender, EventArgs e) frmOther.frmMima mima = new frmOther.frmMima(); mima.Show(); private void 充值查询ToolStripMenuItem_Click(object sender, EventArgs e) frmYonghu.frmczcxsc chongzhicx = new frmYonghu.frmczcxsc(); chongzhicx.Show(); private void 消费查询ToolStripMenuItem_Click(object sender, EventArgs e) frmYonghu.frmyonghuxiaofeichaxuen xiaofeicx = new frmYonghu.frmyonghuxiaofeichaxuen(); xiaofeicx.Show(); private void txtyonghu_Click(object sender, EventArgs e) frmYonghu.frmyonghuxiaofeichaxuen yonghucx = new frmYonghu.frmyonghuxiaofeichaxuen(); yonghucx.Show(); private void button1_Click(object sender, EventArgs e) DialogResult result = MessageBox.Show("确认取消吗?", "操作提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result = DialogResult.Yes) this.Close(); private void 用户充值ToolStripMenuItem_Click(object sender, EventArgs e) frmYonghu.frmyonghuchongzhi chongzhi = new frmYonghu.frmyonghuchongzhi(); chongzhi.Show(); private void 用户消费查询与删除ToolStripMenuItem_Click(object sender, EventArgs e) frmYonghu.frmyonghuxiaofei xiaofei = new frmYonghu.frmyonghuxiaofei(); xiaofei.Show(); private void 用户添加ToolStripMenuItem_Click(object sender, EventArgs e) frmYonghu.femyonghuzhuce tianjia = new frmYonghu.femyonghuzhuce(); tianjia.Show(); private void 用户查询与修改ToolStripMenuItem_Click(object sender, EventArgs e) frmYonghu.frmyonghuxiougai xiougai = new frmYonghu.frmyonghuxiougai(); xiougai.Show(); private void 管理员密码修改ToolStripMenuItem_Click(object sender, EventArgs e) frmOther.frmMima mima = new frmOther.frmMima(); mima.Show(); private void 充值查询ToolStripMenuItem_Click(object sender, EventArgs e) frmYonghu.frmczcxsc chongzhicx = new frmYonghu.frmczcxsc(); chongzhicx.Show(); private void 消费查询ToolStripMenuItem_Click(object sender, EventArgs e) frmYonghu.frmyonghuxiaofeichaxuen xiaofeicx = new frmYonghu.frmyonghuxiaofeichaxuen(); xiaofeicx.Show(); private void txtyonghu_Click(object sender, EventArgs e) frmYonghu.frmyonghuxiaofeichaxuen yonghucx = new frmYonghu.frmyonghuxiaofeichaxuen(); yonghucx.Show(); private void button1_Click(object sender, EventArgs e) DialogResult result = MessageBox.Show("确认取消吗?", "操作提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result = DialogResult.Yes) this.Close(); 用户通过本模块可以充值,消费,查询,修改等功能。4.3 用户充值管理4.3.1 用户充值图4.3.1 用户充值